From 98d1893a2b2b73008669a35e64ef6172c52e6354 Mon Sep 17 00:00:00 2001
From: wu <wsjxh1023@163.com>
Date: Sun, 7 Apr 2024 09:13:39 +0800
Subject: [PATCH] =?UTF-8?q?=E9=87=91=E9=B8=A1=E6=B9=96=E8=80=81=E9=A1=B9?=
 =?UTF-8?q?=E7=9B=AE=E7=9A=84=E6=A8=A1=E5=9D=97=E5=90=8C=E6=AD=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 bin/clean.bat                                 |   12 -
 bin/package.bat                               |   12 -
 bin/run.bat                                   |   14 -
 doc/若依环境使用手册.docx                     |  Bin 428430 -> 0 bytes
 .../jjh/common/entity/BaseInfoEntity.java     |   52 +
 .../controller/BmsApprovalInfoController.java |   97 ++
 .../BmsBigStrongAwardController.java          |   99 ++
 .../BmsBrandingAwardController.java           |   99 ++
 ...BmsCarrierConstructionAwardController.java |   99 ++
 .../BmsCreditManagementController.java        |   99 ++
 .../BmsDeclarationRecordsController.java      |  160 +++
 .../BmsEnterpriseBasicInfoController.java     |   98 ++
 .../BmsEnterpriseDirectoryController.java     |   97 ++
 .../controller/BmsFieldInfoController.java    |   97 ++
 .../controller/BmsFileInfoController.java     |   97 ++
 .../BmsFundingDetailController.java           |   97 ++
 .../BmsIndustrialInternetAwardController.java |   99 ++
 .../BmsIntegrationIndustriesController.java   |   99 ++
 ...msLogisticsDevelopmentAwardController.java |   99 ++
 ...sManufacturingServicesAwardController.java |   99 ++
 .../BmsOpenInterfaceController.java           |   54 +
 ...msPlatformConstructionAwardController.java |   99 ++
 .../controller/BmsProcessInfoController.java  |   97 ++
 .../controller/BmsProjectInfoController.java  |   97 ++
 .../BmsProjectSettlementAwardController.java  |   99 ++
 .../BmsSceneOpeningAwardController.java       |   99 ++
 .../controller/BmsTemplateInfoController.java |  106 ++
 .../BmsTemplateRecordController.java          |  107 ++
 .../controller/BsmFundingInfoController.java  |   97 ++
 .../declaration/entity/BmsApprovalInfo.java   |  110 ++
 .../declaration/entity/BmsBigStrongAward.java |  134 +++
 .../declaration/entity/BmsBrandingAward.java  |  119 ++
 .../entity/BmsCarrierConstructionAward.java   |   63 +
 .../entity/BmsCreditManagement.java           |  103 ++
 .../entity/BmsDeclarationRecords.java         |   94 ++
 .../entity/BmsEnterpriseBasicInfo.java        |   83 ++
 .../entity/BmsEnterpriseDirectory.java        |   50 +
 .../jjh/declaration/entity/BmsFieldInfo.java  |   93 ++
 .../jjh/declaration/entity/BmsFileInfo.java   |  107 ++
 .../declaration/entity/BmsFundingDetail.java  |  145 +++
 .../entity/BmsIndustrialInternetAward.java    |   93 ++
 .../entity/BmsIntegrationIndustries.java      |   96 ++
 .../entity/BmsLogisticsDevelopmentAward.java  |  121 ++
 .../entity/BmsManufacturingServicesAward.java |  121 ++
 .../entity/BmsPlatformConstructionAward.java  |   93 ++
 .../declaration/entity/BmsProcessInfo.java    |   73 ++
 .../declaration/entity/BmsProjectInfo.java    |   98 ++
 .../entity/BmsProjectSettlementAward.java     |   86 ++
 .../entity/BmsSceneOpeningAward.java          |   64 +
 .../declaration/entity/BmsTemplateInfo.java   |  144 +++
 .../declaration/entity/BmsTemplateRecord.java |   75 ++
 .../declaration/entity/BsmFundingInfo.java    |  110 ++
 .../entity/dto/AppendixParamDto.java          |   29 +
 .../ApprovalDeclarationRecordsQueryDto.java   |   56 +
 .../entity/dto/BmsApprovalInfoUpdateDto.java  |   43 +
 .../entity/dto/BmsBigStrongAwardAddDto.java   |   44 +
 .../dto/BmsBigStrongAwardUpdateDto.java       |   38 +
 .../entity/dto/BmsBrandingAwardAddDto.java    |   34 +
 .../entity/dto/BmsBrandingAwardUpdateDto.java |   31 +
 .../BmsCarrierConstructionAwardAddDto.java    |   45 +
 .../BmsCarrierConstructionAwardUpdateDto.java |   29 +
 .../entity/dto/BmsCreditManagementAddDto.java |   32 +
 .../dto/BmsCreditManagementUpdateDto.java     |   32 +
 .../dto/BmsDeclarationRecordsAddDto.java      |   60 +
 .../entity/dto/BmsDeclarationRecordsDto.java  |   49 +
 .../dto/BmsEnterpriseBasicInfoAddDto.java     |   61 +
 .../entity/dto/BmsFieldInfoAddDto.java        |   32 +
 .../entity/dto/BmsFileInfoAddDto.java         |   35 +
 .../entity/dto/BmsFundingDetailAddDto.java    |   45 +
 .../entity/dto/BmsFundingDetailUpdateDto.java |   47 +
 .../dto/BmsIndustrialInternetAwardAddDto.java |   30 +
 .../BmsIndustrialInternetAwardUpdateDto.java  |   33 +
 .../dto/BmsIntegrationIndustriesAddDto.java   |   60 +
 .../BmsIntegrationIndustriesUpdateDto.java    |   32 +
 .../BmsLogisticsDevelopmentAwardAddDto.java   |   37 +
 ...BmsLogisticsDevelopmentAwardUpdateDto.java |   31 +
 .../BmsManufacturingServicesAwardAddDto.java  |   38 +
 ...msManufacturingServicesAwardUpdateDto.java |   31 +
 .../dto/BmsMunicipalBureauReviewQueryDto.java |   50 +
 .../BmsPlatformConstructionAwardAddDto.java   |   29 +
 ...BmsPlatformConstructionAwardUpdateDto.java |   31 +
 .../dto/BmsProjectSettlementAwardAddDto.java  |   53 +
 .../BmsProjectSettlementAwardUpdateDto.java   |   39 +
 .../dto/BmsSceneOpeningAwardAddDto.java       |   33 +
 .../dto/BmsSceneOpeningAwardUpdateDto.java    |   28 +
 .../entity/dto/BmsTemplateInfoAddDto.java     |   27 +
 .../entity/dto/BmsTemplateQueryDto.java       |   31 +
 .../entity/dto/BmsTemplateRecordAddDto.java   |   25 +
 .../entity/dto/BmsTemplateRecordQueryDto.java |   52 +
 .../dto/BmsTemplateRecordUpdateDto.java       |   27 +
 .../entity/dto/BsmFundingInfoAddDto.java      |   69 ++
 .../entity/dto/MunicipalReviewDto.java        |   29 +
 .../entity/dto/MunicipalReviewInfoDto.java    |   46 +
 .../entity/dto/OpenInterfaceApplyAddDto.java  |   57 +
 .../jjh/declaration/entity/dto/UploadDto.java |   20 +
 .../vo/ApprovalDeclarationRecordsQueryVo.java |   69 ++
 .../entity/vo/BmsApprovalInfoQueryVo.java     |   58 +
 .../entity/vo/BmsBigStrongAwardQueryVo.java   |   26 +
 .../vo/BmsDeclarationRecordsQueryVo.java      |   89 ++
 .../vo/BmsMunicipalBureauReviewQueryVo.java   |   51 +
 .../vo/BmsProjectSettlementAwardQueryVo.java  |   26 +
 .../vo/BmsProjectSettlementAwardVo.java       |   67 ++
 .../entity/vo/BmsTemplateInfoQueryVo.java     |   23 +
 .../entity/vo/BmsTemplateRecordQueryVo.java   |   69 ++
 .../entity/vo/BmsTemplateRecordVo.java        |   31 +
 .../entity/vo/DeclarationRecordsVo.java       |   62 +
 .../entity/vo/EnterpriseInfoTemplateVo.java   |   35 +
 .../mapper/BmsApprovalInfoMapper.java         |   69 ++
 .../mapper/BmsBigStrongAwardMapper.java       |   63 +
 .../mapper/BmsBrandingAwardMapper.java        |   62 +
 .../BmsCarrierConstructionAwardMapper.java    |   62 +
 .../mapper/BmsCreditManagementMapper.java     |   62 +
 .../mapper/BmsDeclarationRecordsMapper.java   |   85 ++
 .../mapper/BmsEnterpriseBasicInfoMapper.java  |   62 +
 .../mapper/BmsEnterpriseDirectoryMapper.java  |   62 +
 .../mapper/BmsFieldInfoMapper.java            |   62 +
 .../declaration/mapper/BmsFileInfoMapper.java |   62 +
 .../mapper/BmsFundingDetailMapper.java        |   62 +
 .../BmsIndustrialInternetAwardMapper.java     |   62 +
 .../BmsIntegrationIndustriesMapper.java       |   62 +
 .../BmsLogisticsDevelopmentAwardMapper.java   |   62 +
 .../BmsManufacturingServicesAwardMapper.java  |   62 +
 .../BmsPlatformConstructionAwardMapper.java   |   62 +
 .../mapper/BmsProcessInfoMapper.java          |   62 +
 .../mapper/BmsProjectInfoMapper.java          |   65 +
 .../BmsProjectSettlementAwardMapper.java      |   63 +
 .../mapper/BmsSceneOpeningAwardMapper.java    |   62 +
 .../mapper/BmsTemplateInfoMapper.java         |   69 ++
 .../mapper/BmsTemplateRecordMapper.java       |   75 ++
 .../mapper/BsmFundingInfoMapper.java          |   62 +
 .../service/IBmsApprovalInfoService.java      |   69 ++
 .../service/IBmsBigStrongAwardService.java    |   65 +
 .../service/IBmsBrandingAwardService.java     |   64 +
 .../IBmsCarrierConstructionAwardService.java  |   64 +
 .../service/IBmsCreditManagementService.java  |   64 +
 .../IBmsDeclarationRecordsService.java        |  107 ++
 .../IBmsEnterpriseBasicInfoService.java       |   62 +
 .../IBmsEnterpriseDirectoryService.java       |   62 +
 .../service/IBmsFieldInfoService.java         |   62 +
 .../service/IBmsFileInfoService.java          |   62 +
 .../service/IBmsFundingDetailService.java     |   62 +
 .../IBmsIndustrialInternetAwardService.java   |   64 +
 .../IBmsIntegrationIndustriesService.java     |   64 +
 .../IBmsLogisticsDevelopmentAwardService.java |   64 +
 ...IBmsManufacturingServicesAwardService.java |   64 +
 .../IBmsPlatformConstructionAwardService.java |   64 +
 .../service/IBmsProcessInfoService.java       |   62 +
 .../service/IBmsProjectInfoService.java       |   65 +
 .../IBmsProjectSettlementAwardService.java    |   65 +
 .../service/IBmsSceneOpeningAwardService.java |   64 +
 .../service/IBmsTemplateInfoService.java      |   77 ++
 .../service/IBmsTemplateRecordService.java    |   71 ++
 .../service/IBsmFundingInfoService.java       |   62 +
 .../declaration/service/ICommonService.java   |   40 +
 .../service/IOpenInterfaceService.java        |   26 +
 .../impl/BmsApprovalInfoServiceImpl.java      |  105 ++
 .../impl/BmsBigStrongAwardServiceImpl.java    |  168 +++
 .../impl/BmsBrandingAwardServiceImpl.java     |  140 +++
 ...msCarrierConstructionAwardServiceImpl.java |  140 +++
 .../impl/BmsCreditManagementServiceImpl.java  |  141 +++
 .../BmsDeclarationRecordsServiceImpl.java     |  555 +++++++++
 .../BmsEnterpriseBasicInfoServiceImpl.java    |   88 ++
 .../BmsEnterpriseDirectoryServiceImpl.java    |   88 ++
 .../service/impl/BmsFieldInfoServiceImpl.java |   89 ++
 .../service/impl/BmsFileInfoServiceImpl.java  |   89 ++
 .../impl/BmsFundingDetailServiceImpl.java     |   89 ++
 ...BmsIndustrialInternetAwardServiceImpl.java |  141 +++
 .../BmsIntegrationIndustriesServiceImpl.java  |  142 +++
 ...sLogisticsDevelopmentAwardServiceImpl.java |  143 +++
 ...ManufacturingServicesAwardServiceImpl.java |  141 +++
 ...sPlatformConstructionAwardServiceImpl.java |  145 +++
 .../impl/BmsProcessInfoServiceImpl.java       |   88 ++
 .../impl/BmsProjectInfoServiceImpl.java       |   94 ++
 .../BmsProjectSettlementAwardServiceImpl.java |  165 +++
 .../impl/BmsSceneOpeningAwardServiceImpl.java |  141 +++
 .../impl/BmsTemplateInfoServiceImpl.java      |  158 +++
 .../impl/BmsTemplateRecordServiceImpl.java    |  157 +++
 .../impl/BsmFundingInfoServiceImpl.java       |   88 ++
 .../service/impl/CommonServiceImpl.java       |  413 +++++++
 .../impl/OpenInterfaceServiceImpl.java        |  101 ++
 .../ent/controller/JMemorandumController.java |   17 +-
 .../ent/controller/JProjectController.java    |   42 +-
 .../controller/common/CommonController.java   |   99 +-
 .../src/main/resources/application.yml        |    4 +-
 .../jjh/declaration/BmsApprovalInfoMapper.xml |  176 +++
 .../declaration/BmsBigStrongAwardMapper.xml   |  104 ++
 .../declaration/BmsBrandingAwardMapper.xml    |   98 ++
 .../BmsCarrierConstructionAwardMapper.xml     |  151 +++
 .../declaration/BmsCreditManagementMapper.xml |  111 ++
 .../BmsDeclarationRecordsMapper.xml           |  329 +++++
 .../BmsEnterpriseBasicInfoMapper.xml          |  105 ++
 .../BmsEnterpriseDirectoryMapper.xml          |   97 ++
 .../jjh/declaration/BmsFieldInfoMapper.xml    |  105 ++
 .../jjh/declaration/BmsFileInfoMapper.xml     |  111 ++
 .../declaration/BmsFundingDetailMapper.xml    |  128 ++
 .../BmsIndustrialInternetAwardMapper.xml      |  111 ++
 .../BmsIntegrationIndustriesMapper.xml        |  167 +++
 .../BmsLogisticsDevelopmentAwardMapper.xml    |  127 ++
 .../BmsManufacturingServicesAwardMapper.xml   |  120 ++
 .../BmsPlatformConstructionAwardMapper.xml    |  113 ++
 .../jjh/declaration/BmsProcessInfoMapper.xml  |  128 ++
 .../jjh/declaration/BmsProjectInfoMapper.xml  |  176 +++
 .../BmsProjectSettlementAwardMapper.xml       |  134 +++
 .../BmsSceneOpeningAwardMapper.xml            |  114 ++
 .../jjh/declaration/BmsTemplateInfoMapper.xml |  147 +++
 .../declaration/BmsTemplateRecordMapper.xml   |  220 ++++
 .../jjh/declaration/BsmFundingInfoMapper.xml  |  156 +++
 .../jjh/{ => ent}/JMemorandumMapper.xml       |    0
 .../mapper/jjh/{ => ent}/JProjectMapper.xml   |    0
 ruoyi-common/pom.xml                          |   24 +-
 .../common/constant/SecurityConstants.java    |   48 +
 .../common/context/SecurityContextHolder.java |   84 ++
 .../ruoyi/common/core/domain/TreeSelect.java  |   51 +-
 .../common/core/domain/entity/SysDept.java    |  170 +--
 .../common/core/domain/entity/SysRole.java    |  198 ++-
 .../common/core/domain/entity/SysUser.java    |  262 ++--
 .../ruoyi/common/utils/file/FileUtils.java    |  206 ++--
 .../common/utils/poi/ProjectExcelUtil.java    |  389 +++---
 .../common/utils/poi/ProjectValueUtil.java    |  400 +++---
 .../ruoyi/framework/config/CaptchaConfig.java |   34 +-
 .../com/ruoyi/system/domain/SysConfig.java    |   90 +-
 .../ruoyi/system/domain/SysLogininfor.java    |   98 +-
 .../com/ruoyi/system/domain/vo/RouterVo.java  |   60 +-
 .../ruoyi/system/mapper/SysConfigMapper.java  |   24 +-
 .../ruoyi/system/service/ISysMenuService.java |   44 +-
 .../service/impl/SysConfigServiceImpl.java    |  103 +-
 .../service/impl/SysMenuServiceImpl.java      |  261 ++--
 .../mapper/system/SysConfigMapper.xml         |  163 +--
 .../resources/mapper/system/SysDeptMapper.xml |  318 ++---
 .../mapper/system/SysDictDataMapper.xml       |  257 ++--
 .../mapper/system/SysDictTypeMapper.xml       |  197 +--
 .../mapper/system/SysLogininforMapper.xml     |   97 +-
 .../resources/mapper/system/SysMenuMapper.xml |  438 ++++---
 .../mapper/system/SysNoticeMapper.xml         |  133 +-
 .../mapper/system/SysOperLogMapper.xml        |  172 +--
 .../resources/mapper/system/SysPostMapper.xml |  238 ++--
 .../mapper/system/SysRoleDeptMapper.xml       |   60 +-
 .../resources/mapper/system/SysRoleMapper.xml |  300 ++---
 .../mapper/system/SysRoleMenuMapper.xml       |   60 +-
 .../resources/mapper/system/SysUserMapper.xml |  475 ++++----
 .../mapper/system/SysUserPostMapper.xml       |   60 +-
 .../mapper/system/SysUserRoleMapper.xml       |   83 +-
 ruoyi-ui/.editorconfig                        |   22 -
 ruoyi-ui/.env.development                     |   11 -
 ruoyi-ui/.env.production                      |    8 -
 ruoyi-ui/.env.staging                         |   10 -
 ruoyi-ui/.eslintignore                        |   10 -
 ruoyi-ui/.eslintrc.js                         |  199 ---
 ruoyi-ui/.gitignore                           |   23 -
 ruoyi-ui/README.md                            |   30 -
 ruoyi-ui/babel.config.js                      |   13 -
 ruoyi-ui/bin/build.bat                        |   12 -
 ruoyi-ui/bin/package.bat                      |   12 -
 ruoyi-ui/bin/run-web.bat                      |   12 -
 ruoyi-ui/build/index.js                       |   35 -
 ruoyi-ui/package.json                         |   90 --
 ruoyi-ui/public/favicon.ico                   |  Bin 5663 -> 0 bytes
 ruoyi-ui/public/html/ie.html                  |   46 -
 ruoyi-ui/public/index.html                    |  208 ----
 ruoyi-ui/public/robots.txt                    |    2 -
 ruoyi-ui/src/App.vue                          |   28 -
 ruoyi-ui/src/api/login.js                     |   60 -
 ruoyi-ui/src/api/menu.js                      |    9 -
 ruoyi-ui/src/api/monitor/cache.js             |   57 -
 ruoyi-ui/src/api/monitor/job.js               |   71 --
 ruoyi-ui/src/api/monitor/jobLog.js            |   26 -
 ruoyi-ui/src/api/monitor/logininfor.js        |   34 -
 ruoyi-ui/src/api/monitor/online.js            |   18 -
 ruoyi-ui/src/api/monitor/operlog.js           |   26 -
 ruoyi-ui/src/api/monitor/server.js            |    9 -
 ruoyi-ui/src/api/system/config.js             |   60 -
 ruoyi-ui/src/api/system/dept.js               |   52 -
 ruoyi-ui/src/api/system/dict/data.js          |   52 -
 ruoyi-ui/src/api/system/dict/type.js          |   60 -
 ruoyi-ui/src/api/system/menu.js               |   60 -
 ruoyi-ui/src/api/system/notice.js             |   44 -
 ruoyi-ui/src/api/system/post.js               |   44 -
 ruoyi-ui/src/api/system/role.js               |  119 --
 ruoyi-ui/src/api/system/user.js               |  135 ---
 ruoyi-ui/src/api/tool/gen.js                  |   85 --
 ruoyi-ui/src/assets/401_images/401.gif        |  Bin 164227 -> 0 bytes
 ruoyi-ui/src/assets/404_images/404.png        |  Bin 98071 -> 0 bytes
 ruoyi-ui/src/assets/404_images/404_cloud.png  |  Bin 4766 -> 0 bytes
 ruoyi-ui/src/assets/icons/index.js            |    9 -
 ruoyi-ui/src/assets/icons/svg/404.svg         |    1 -
 ruoyi-ui/src/assets/icons/svg/bug.svg         |    1 -
 ruoyi-ui/src/assets/icons/svg/build.svg       |    1 -
 ruoyi-ui/src/assets/icons/svg/button.svg      |    1 -
 ruoyi-ui/src/assets/icons/svg/cascader.svg    |    1 -
 ruoyi-ui/src/assets/icons/svg/chart.svg       |    1 -
 ruoyi-ui/src/assets/icons/svg/checkbox.svg    |    1 -
 ruoyi-ui/src/assets/icons/svg/clipboard.svg   |    1 -
 ruoyi-ui/src/assets/icons/svg/code.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/color.svg       |    1 -
 ruoyi-ui/src/assets/icons/svg/component.svg   |    1 -
 ruoyi-ui/src/assets/icons/svg/dashboard.svg   |    1 -
 ruoyi-ui/src/assets/icons/svg/date-range.svg  |    1 -
 ruoyi-ui/src/assets/icons/svg/date.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/dict.svg        |    1 -
 .../src/assets/icons/svg/documentation.svg    |    1 -
 ruoyi-ui/src/assets/icons/svg/download.svg    |    1 -
 ruoyi-ui/src/assets/icons/svg/drag.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/druid.svg       |    1 -
 ruoyi-ui/src/assets/icons/svg/edit.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/education.svg   |    1 -
 ruoyi-ui/src/assets/icons/svg/email.svg       |    1 -
 ruoyi-ui/src/assets/icons/svg/example.svg     |    1 -
 ruoyi-ui/src/assets/icons/svg/excel.svg       |    1 -
 .../src/assets/icons/svg/exit-fullscreen.svg  |    1 -
 ruoyi-ui/src/assets/icons/svg/eye-open.svg    |    1 -
 ruoyi-ui/src/assets/icons/svg/eye.svg         |    1 -
 ruoyi-ui/src/assets/icons/svg/form.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/fullscreen.svg  |    1 -
 ruoyi-ui/src/assets/icons/svg/github.svg      |    1 -
 ruoyi-ui/src/assets/icons/svg/guide.svg       |    1 -
 ruoyi-ui/src/assets/icons/svg/icon.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/input.svg       |    1 -
 .../src/assets/icons/svg/international.svg    |    1 -
 ruoyi-ui/src/assets/icons/svg/job.svg         |    1 -
 ruoyi-ui/src/assets/icons/svg/language.svg    |    1 -
 ruoyi-ui/src/assets/icons/svg/link.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/list.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/lock.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/log.svg         |    1 -
 ruoyi-ui/src/assets/icons/svg/logininfor.svg  |    1 -
 ruoyi-ui/src/assets/icons/svg/message.svg     |    1 -
 ruoyi-ui/src/assets/icons/svg/money.svg       |    1 -
 ruoyi-ui/src/assets/icons/svg/monitor.svg     |    2 -
 ruoyi-ui/src/assets/icons/svg/nested.svg      |    1 -
 ruoyi-ui/src/assets/icons/svg/number.svg      |    1 -
 ruoyi-ui/src/assets/icons/svg/online.svg      |    1 -
 ruoyi-ui/src/assets/icons/svg/password.svg    |    1 -
 ruoyi-ui/src/assets/icons/svg/pdf.svg         |    1 -
 ruoyi-ui/src/assets/icons/svg/people.svg      |    1 -
 ruoyi-ui/src/assets/icons/svg/peoples.svg     |    1 -
 ruoyi-ui/src/assets/icons/svg/phone.svg       |    1 -
 ruoyi-ui/src/assets/icons/svg/post.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/qq.svg          |    1 -
 ruoyi-ui/src/assets/icons/svg/question.svg    |    1 -
 ruoyi-ui/src/assets/icons/svg/radio.svg       |    1 -
 ruoyi-ui/src/assets/icons/svg/rate.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/redis-list.svg  |    2 -
 ruoyi-ui/src/assets/icons/svg/redis.svg       |    1 -
 ruoyi-ui/src/assets/icons/svg/row.svg         |    1 -
 ruoyi-ui/src/assets/icons/svg/search.svg      |    1 -
 ruoyi-ui/src/assets/icons/svg/select.svg      |    1 -
 ruoyi-ui/src/assets/icons/svg/server.svg      |    1 -
 ruoyi-ui/src/assets/icons/svg/shopping.svg    |    1 -
 ruoyi-ui/src/assets/icons/svg/size.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/skill.svg       |    1 -
 ruoyi-ui/src/assets/icons/svg/slider.svg      |    1 -
 ruoyi-ui/src/assets/icons/svg/star.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/swagger.svg     |    1 -
 ruoyi-ui/src/assets/icons/svg/switch.svg      |    1 -
 ruoyi-ui/src/assets/icons/svg/system.svg      |    2 -
 ruoyi-ui/src/assets/icons/svg/tab.svg         |    1 -
 ruoyi-ui/src/assets/icons/svg/table.svg       |    1 -
 ruoyi-ui/src/assets/icons/svg/textarea.svg    |    1 -
 ruoyi-ui/src/assets/icons/svg/theme.svg       |    1 -
 ruoyi-ui/src/assets/icons/svg/time-range.svg  |    1 -
 ruoyi-ui/src/assets/icons/svg/time.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/tool.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/tree-table.svg  |    1 -
 ruoyi-ui/src/assets/icons/svg/tree.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/upload.svg      |    1 -
 ruoyi-ui/src/assets/icons/svg/user.svg        |    1 -
 ruoyi-ui/src/assets/icons/svg/validCode.svg   |    1 -
 ruoyi-ui/src/assets/icons/svg/wechat.svg      |    1 -
 ruoyi-ui/src/assets/icons/svg/zip.svg         |    1 -
 ruoyi-ui/src/assets/icons/svgo.yml            |   22 -
 ruoyi-ui/src/assets/images/dark.svg           |   39 -
 ruoyi-ui/src/assets/images/light.svg          |   39 -
 .../src/assets/images/login-background.jpg    |  Bin 521275 -> 0 bytes
 ruoyi-ui/src/assets/images/pay.png            |  Bin 140720 -> 0 bytes
 ruoyi-ui/src/assets/images/profile.jpg        |  Bin 81131 -> 0 bytes
 ruoyi-ui/src/assets/logo/logo.png             |  Bin 5663 -> 0 bytes
 ruoyi-ui/src/assets/styles/btn.scss           |   99 --
 ruoyi-ui/src/assets/styles/element-ui.scss    |   92 --
 .../src/assets/styles/element-variables.scss  |   31 -
 ruoyi-ui/src/assets/styles/index.scss         |  182 ---
 ruoyi-ui/src/assets/styles/mixin.scss         |   66 -
 ruoyi-ui/src/assets/styles/ruoyi.scss         |  291 -----
 ruoyi-ui/src/assets/styles/sidebar.scss       |  227 ----
 ruoyi-ui/src/assets/styles/transition.scss    |   49 -
 ruoyi-ui/src/assets/styles/variables.scss     |   54 -
 ruoyi-ui/src/components/Breadcrumb/index.vue  |   74 --
 ruoyi-ui/src/components/Crontab/day.vue       |  161 ---
 ruoyi-ui/src/components/Crontab/hour.vue      |  114 --
 ruoyi-ui/src/components/Crontab/index.vue     |  430 -------
 ruoyi-ui/src/components/Crontab/min.vue       |  116 --
 ruoyi-ui/src/components/Crontab/month.vue     |  114 --
 ruoyi-ui/src/components/Crontab/result.vue    |  559 ---------
 ruoyi-ui/src/components/Crontab/second.vue    |  117 --
 ruoyi-ui/src/components/Crontab/week.vue      |  202 ----
 ruoyi-ui/src/components/Crontab/year.vue      |  131 --
 ruoyi-ui/src/components/DictData/index.js     |   49 -
 ruoyi-ui/src/components/DictTag/index.vue     |   89 --
 ruoyi-ui/src/components/Editor/index.vue      |  274 -----
 ruoyi-ui/src/components/FileUpload/index.vue  |  216 ----
 ruoyi-ui/src/components/Hamburger/index.vue   |   44 -
 .../src/components/HeaderSearch/index.vue     |  198 ---
 ruoyi-ui/src/components/IconSelect/index.vue  |  104 --
 .../src/components/IconSelect/requireIcons.js |   11 -
 .../src/components/ImagePreview/index.vue     |   90 --
 ruoyi-ui/src/components/ImageUpload/index.vue |  226 ----
 ruoyi-ui/src/components/Pagination/index.vue  |  114 --
 ruoyi-ui/src/components/PanThumb/index.vue    |  142 ---
 ruoyi-ui/src/components/ParentView/index.vue  |    3 -
 ruoyi-ui/src/components/RightPanel/index.vue  |  106 --
 .../src/components/RightToolbar/index.vue     |  129 --
 ruoyi-ui/src/components/RuoYi/Doc/index.vue   |   21 -
 ruoyi-ui/src/components/RuoYi/Git/index.vue   |   21 -
 ruoyi-ui/src/components/Screenfull/index.vue  |   57 -
 ruoyi-ui/src/components/SizeSelect/index.vue  |   56 -
 ruoyi-ui/src/components/SvgIcon/index.vue     |   61 -
 ruoyi-ui/src/components/ThemePicker/index.vue |  173 ---
 ruoyi-ui/src/components/TopNav/index.vue      |  195 ---
 ruoyi-ui/src/components/iFrame/index.vue      |   36 -
 ruoyi-ui/src/directive/dialog/drag.js         |   64 -
 ruoyi-ui/src/directive/dialog/dragHeight.js   |   34 -
 ruoyi-ui/src/directive/dialog/dragWidth.js    |   30 -
 ruoyi-ui/src/directive/index.js               |   23 -
 ruoyi-ui/src/directive/module/clipboard.js    |   54 -
 ruoyi-ui/src/directive/permission/hasPermi.js |   28 -
 ruoyi-ui/src/directive/permission/hasRole.js  |   28 -
 ruoyi-ui/src/layout/components/AppMain.vue    |   75 --
 .../layout/components/IframeToggle/index.vue  |   33 -
 .../src/layout/components/InnerLink/index.vue |   47 -
 ruoyi-ui/src/layout/components/Navbar.vue     |  200 ---
 .../src/layout/components/Settings/index.vue  |  260 ----
 .../layout/components/Sidebar/FixiOSBug.js    |   25 -
 .../src/layout/components/Sidebar/Item.vue    |   33 -
 .../src/layout/components/Sidebar/Link.vue    |   43 -
 .../src/layout/components/Sidebar/Logo.vue    |   93 --
 .../layout/components/Sidebar/SidebarItem.vue |  100 --
 .../src/layout/components/Sidebar/index.vue   |   57 -
 .../layout/components/TagsView/ScrollPane.vue |   94 --
 .../src/layout/components/TagsView/index.vue  |  332 -----
 ruoyi-ui/src/layout/components/index.js       |    5 -
 ruoyi-ui/src/layout/index.vue                 |  111 --
 ruoyi-ui/src/layout/mixin/ResizeHandler.js    |   45 -
 ruoyi-ui/src/main.js                          |   86 --
 ruoyi-ui/src/permission.js                    |   58 -
 ruoyi-ui/src/plugins/auth.js                  |   60 -
 ruoyi-ui/src/plugins/cache.js                 |   77 --
 ruoyi-ui/src/plugins/download.js              |   79 --
 ruoyi-ui/src/plugins/index.js                 |   20 -
 ruoyi-ui/src/plugins/modal.js                 |   83 --
 ruoyi-ui/src/plugins/tab.js                   |   71 --
 ruoyi-ui/src/router/index.js                  |  183 ---
 ruoyi-ui/src/settings.js                      |   44 -
 ruoyi-ui/src/store/getters.js                 |   19 -
 ruoyi-ui/src/store/index.js                   |   25 -
 ruoyi-ui/src/store/modules/app.js             |   66 -
 ruoyi-ui/src/store/modules/dict.js            |   50 -
 ruoyi-ui/src/store/modules/permission.js      |  137 ---
 ruoyi-ui/src/store/modules/settings.js        |   42 -
 ruoyi-ui/src/store/modules/tagsView.js        |  228 ----
 ruoyi-ui/src/store/modules/user.js            |  101 --
 ruoyi-ui/src/utils/auth.js                    |   15 -
 ruoyi-ui/src/utils/dict/Dict.js               |   82 --
 ruoyi-ui/src/utils/dict/DictConverter.js      |   17 -
 ruoyi-ui/src/utils/dict/DictData.js           |   13 -
 ruoyi-ui/src/utils/dict/DictMeta.js           |   38 -
 ruoyi-ui/src/utils/dict/DictOptions.js        |   51 -
 ruoyi-ui/src/utils/dict/index.js              |   33 -
 ruoyi-ui/src/utils/errorCode.js               |    6 -
 ruoyi-ui/src/utils/generator/config.js        |  438 -------
 ruoyi-ui/src/utils/generator/css.js           |   18 -
 .../src/utils/generator/drawingDefault.js     |   29 -
 ruoyi-ui/src/utils/generator/html.js          |  359 ------
 ruoyi-ui/src/utils/generator/icon.json        |    1 -
 ruoyi-ui/src/utils/generator/js.js            |  235 ----
 ruoyi-ui/src/utils/generator/render.js        |  126 --
 ruoyi-ui/src/utils/index.js                   |  390 ------
 ruoyi-ui/src/utils/jsencrypt.js               |   30 -
 ruoyi-ui/src/utils/permission.js              |   47 -
 ruoyi-ui/src/utils/request.js                 |  152 ---
 ruoyi-ui/src/utils/ruoyi.js                   |  233 ----
 ruoyi-ui/src/utils/scroll-to.js               |   58 -
 ruoyi-ui/src/utils/validate.js                |   80 --
 ruoyi-ui/src/views/dashboard/BarChart.vue     |  102 --
 ruoyi-ui/src/views/dashboard/LineChart.vue    |  135 ---
 ruoyi-ui/src/views/dashboard/PanelGroup.vue   |  181 ---
 ruoyi-ui/src/views/dashboard/PieChart.vue     |   79 --
 ruoyi-ui/src/views/dashboard/RaddarChart.vue  |  116 --
 ruoyi-ui/src/views/dashboard/mixins/resize.js |   56 -
 ruoyi-ui/src/views/error/401.vue              |   88 --
 ruoyi-ui/src/views/error/404.vue              |  233 ----
 ruoyi-ui/src/views/index.vue                  | 1067 -----------------
 ruoyi-ui/src/views/index_v1.vue               |   98 --
 ruoyi-ui/src/views/login.vue                  |  219 ----
 ruoyi-ui/src/views/monitor/cache/index.vue    |  148 ---
 ruoyi-ui/src/views/monitor/cache/list.vue     |  241 ----
 ruoyi-ui/src/views/monitor/druid/index.vue    |   15 -
 ruoyi-ui/src/views/monitor/job/index.vue      |  513 --------
 ruoyi-ui/src/views/monitor/job/log.vue        |  295 -----
 .../src/views/monitor/logininfor/index.vue    |  246 ----
 ruoyi-ui/src/views/monitor/online/index.vue   |  122 --
 ruoyi-ui/src/views/monitor/operlog/index.vue  |  323 -----
 ruoyi-ui/src/views/monitor/server/index.vue   |  207 ----
 ruoyi-ui/src/views/redirect.vue               |   12 -
 ruoyi-ui/src/views/register.vue               |  210 ----
 ruoyi-ui/src/views/system/config/index.vue    |  343 ------
 ruoyi-ui/src/views/system/dept/index.vue      |  340 ------
 ruoyi-ui/src/views/system/dict/data.vue       |  402 -------
 ruoyi-ui/src/views/system/dict/index.vue      |  347 ------
 ruoyi-ui/src/views/system/menu/index.vue      |  452 -------
 ruoyi-ui/src/views/system/notice/index.vue    |  312 -----
 ruoyi-ui/src/views/system/post/index.vue      |  309 -----
 ruoyi-ui/src/views/system/role/authUser.vue   |  199 ---
 ruoyi-ui/src/views/system/role/index.vue      |  605 ----------
 ruoyi-ui/src/views/system/role/selectUser.vue |  138 ---
 ruoyi-ui/src/views/system/user/authRole.vue   |  117 --
 ruoyi-ui/src/views/system/user/index.vue      |  676 -----------
 .../src/views/system/user/profile/index.vue   |   91 --
 .../views/system/user/profile/resetPwd.vue    |   69 --
 .../views/system/user/profile/userAvatar.vue  |  184 ---
 .../views/system/user/profile/userInfo.vue    |   88 --
 .../src/views/tool/build/CodeTypeDialog.vue   |  106 --
 .../src/views/tool/build/DraggableItem.vue    |  100 --
 ruoyi-ui/src/views/tool/build/IconsDialog.vue |  123 --
 ruoyi-ui/src/views/tool/build/RightPanel.vue  |  946 ---------------
 .../src/views/tool/build/TreeNodeDialog.vue   |  149 ---
 ruoyi-ui/src/views/tool/build/index.vue       |  768 ------------
 ruoyi-ui/src/views/tool/gen/basicInfoForm.vue |   60 -
 ruoyi-ui/src/views/tool/gen/createTable.vue   |   45 -
 ruoyi-ui/src/views/tool/gen/editTable.vue     |  234 ----
 ruoyi-ui/src/views/tool/gen/genInfoForm.vue   |  312 -----
 ruoyi-ui/src/views/tool/gen/importTable.vue   |  120 --
 ruoyi-ui/src/views/tool/gen/index.vue         |  354 ------
 ruoyi-ui/src/views/tool/swagger/index.vue     |   15 -
 ruoyi-ui/vue.config.js                        |  130 --
 ry.bat                                        |   67 --
 ry.sh                                         |   86 --
 sql/quartz.sql                                |  174 ---
 sql/ry_20231130.sql                           |  700 -----------
 537 files changed, 20159 insertions(+), 29828 deletions(-)
 delete mode 100644 bin/clean.bat
 delete mode 100644 bin/package.bat
 delete mode 100644 bin/run.bat
 delete mode 100644 doc/若依环境使用手册.docx
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/common/entity/BaseInfoEntity.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsApprovalInfoController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsBigStrongAwardController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsBrandingAwardController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsCarrierConstructionAwardController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsCreditManagementController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsDeclarationRecordsController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsEnterpriseBasicInfoController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsEnterpriseDirectoryController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsFieldInfoController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsFileInfoController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsFundingDetailController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsIndustrialInternetAwardController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsIntegrationIndustriesController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsLogisticsDevelopmentAwardController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsManufacturingServicesAwardController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsOpenInterfaceController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsPlatformConstructionAwardController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsProcessInfoController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsProjectInfoController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsProjectSettlementAwardController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsSceneOpeningAwardController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsTemplateInfoController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsTemplateRecordController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BsmFundingInfoController.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsApprovalInfo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsBigStrongAward.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsBrandingAward.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsCarrierConstructionAward.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsCreditManagement.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsDeclarationRecords.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsEnterpriseBasicInfo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsEnterpriseDirectory.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsFieldInfo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsFileInfo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsFundingDetail.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsIndustrialInternetAward.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsIntegrationIndustries.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsLogisticsDevelopmentAward.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsManufacturingServicesAward.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsPlatformConstructionAward.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsProcessInfo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsProjectInfo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsProjectSettlementAward.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsSceneOpeningAward.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsTemplateInfo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsTemplateRecord.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BsmFundingInfo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/AppendixParamDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/ApprovalDeclarationRecordsQueryDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsApprovalInfoUpdateDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBigStrongAwardAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBigStrongAwardUpdateDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBrandingAwardAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBrandingAwardUpdateDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCarrierConstructionAwardAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCarrierConstructionAwardUpdateDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCreditManagementAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCreditManagementUpdateDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsDeclarationRecordsAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsDeclarationRecordsDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsEnterpriseBasicInfoAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFieldInfoAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFileInfoAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFundingDetailAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFundingDetailUpdateDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIndustrialInternetAwardAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIndustrialInternetAwardUpdateDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIntegrationIndustriesAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIntegrationIndustriesUpdateDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsLogisticsDevelopmentAwardAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsLogisticsDevelopmentAwardUpdateDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsManufacturingServicesAwardAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsManufacturingServicesAwardUpdateDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsMunicipalBureauReviewQueryDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsPlatformConstructionAwardAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsPlatformConstructionAwardUpdateDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsProjectSettlementAwardAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsProjectSettlementAwardUpdateDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsSceneOpeningAwardAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsSceneOpeningAwardUpdateDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateInfoAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateQueryDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordQueryDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordUpdateDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BsmFundingInfoAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/MunicipalReviewDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/MunicipalReviewInfoDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/OpenInterfaceApplyAddDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/UploadDto.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/ApprovalDeclarationRecordsQueryVo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsApprovalInfoQueryVo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsBigStrongAwardQueryVo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsDeclarationRecordsQueryVo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsMunicipalBureauReviewQueryVo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsProjectSettlementAwardQueryVo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsProjectSettlementAwardVo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsTemplateInfoQueryVo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsTemplateRecordQueryVo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsTemplateRecordVo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/DeclarationRecordsVo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/EnterpriseInfoTemplateVo.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsApprovalInfoMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsBigStrongAwardMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsBrandingAwardMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsCarrierConstructionAwardMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsCreditManagementMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsDeclarationRecordsMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsEnterpriseBasicInfoMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsEnterpriseDirectoryMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsFieldInfoMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsFileInfoMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsFundingDetailMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsIndustrialInternetAwardMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsIntegrationIndustriesMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsLogisticsDevelopmentAwardMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsManufacturingServicesAwardMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsPlatformConstructionAwardMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsProcessInfoMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsProjectInfoMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsProjectSettlementAwardMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsSceneOpeningAwardMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsTemplateInfoMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsTemplateRecordMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BsmFundingInfoMapper.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsApprovalInfoService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsBigStrongAwardService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsBrandingAwardService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsCarrierConstructionAwardService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsCreditManagementService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsDeclarationRecordsService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsEnterpriseBasicInfoService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsEnterpriseDirectoryService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsFieldInfoService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsFileInfoService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsFundingDetailService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsIndustrialInternetAwardService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsIntegrationIndustriesService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsLogisticsDevelopmentAwardService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsManufacturingServicesAwardService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsPlatformConstructionAwardService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsProcessInfoService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsProjectInfoService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsProjectSettlementAwardService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsSceneOpeningAwardService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsTemplateInfoService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsTemplateRecordService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBsmFundingInfoService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/ICommonService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IOpenInterfaceService.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsApprovalInfoServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsBigStrongAwardServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsBrandingAwardServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsCarrierConstructionAwardServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsCreditManagementServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsDeclarationRecordsServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsEnterpriseBasicInfoServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsEnterpriseDirectoryServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsFieldInfoServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsFileInfoServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsFundingDetailServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsIndustrialInternetAwardServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsIntegrationIndustriesServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsLogisticsDevelopmentAwardServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsManufacturingServicesAwardServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsPlatformConstructionAwardServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsProcessInfoServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsProjectInfoServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsProjectSettlementAwardServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsSceneOpeningAwardServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsTemplateInfoServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsTemplateRecordServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BsmFundingInfoServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/CommonServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/OpenInterfaceServiceImpl.java
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsApprovalInfoMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsBigStrongAwardMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsBrandingAwardMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsCarrierConstructionAwardMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsCreditManagementMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsDeclarationRecordsMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsEnterpriseBasicInfoMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsEnterpriseDirectoryMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsFieldInfoMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsFileInfoMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsFundingDetailMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsIndustrialInternetAwardMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsIntegrationIndustriesMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsLogisticsDevelopmentAwardMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsManufacturingServicesAwardMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsPlatformConstructionAwardMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsProcessInfoMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsProjectInfoMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsProjectSettlementAwardMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsSceneOpeningAwardMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsTemplateInfoMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsTemplateRecordMapper.xml
 create mode 100644 ruoyi-admin/src/main/resources/mapper/jjh/declaration/BsmFundingInfoMapper.xml
 rename ruoyi-admin/src/main/resources/mapper/jjh/{ => ent}/JMemorandumMapper.xml (100%)
 rename ruoyi-admin/src/main/resources/mapper/jjh/{ => ent}/JProjectMapper.xml (100%)
 create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/constant/SecurityConstants.java
 create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/context/SecurityContextHolder.java
 delete mode 100644 ruoyi-ui/.editorconfig
 delete mode 100644 ruoyi-ui/.env.development
 delete mode 100644 ruoyi-ui/.env.production
 delete mode 100644 ruoyi-ui/.env.staging
 delete mode 100644 ruoyi-ui/.eslintignore
 delete mode 100644 ruoyi-ui/.eslintrc.js
 delete mode 100644 ruoyi-ui/.gitignore
 delete mode 100644 ruoyi-ui/README.md
 delete mode 100644 ruoyi-ui/babel.config.js
 delete mode 100644 ruoyi-ui/bin/build.bat
 delete mode 100644 ruoyi-ui/bin/package.bat
 delete mode 100644 ruoyi-ui/bin/run-web.bat
 delete mode 100644 ruoyi-ui/build/index.js
 delete mode 100644 ruoyi-ui/package.json
 delete mode 100644 ruoyi-ui/public/favicon.ico
 delete mode 100644 ruoyi-ui/public/html/ie.html
 delete mode 100644 ruoyi-ui/public/index.html
 delete mode 100644 ruoyi-ui/public/robots.txt
 delete mode 100644 ruoyi-ui/src/App.vue
 delete mode 100644 ruoyi-ui/src/api/login.js
 delete mode 100644 ruoyi-ui/src/api/menu.js
 delete mode 100644 ruoyi-ui/src/api/monitor/cache.js
 delete mode 100644 ruoyi-ui/src/api/monitor/job.js
 delete mode 100644 ruoyi-ui/src/api/monitor/jobLog.js
 delete mode 100644 ruoyi-ui/src/api/monitor/logininfor.js
 delete mode 100644 ruoyi-ui/src/api/monitor/online.js
 delete mode 100644 ruoyi-ui/src/api/monitor/operlog.js
 delete mode 100644 ruoyi-ui/src/api/monitor/server.js
 delete mode 100644 ruoyi-ui/src/api/system/config.js
 delete mode 100644 ruoyi-ui/src/api/system/dept.js
 delete mode 100644 ruoyi-ui/src/api/system/dict/data.js
 delete mode 100644 ruoyi-ui/src/api/system/dict/type.js
 delete mode 100644 ruoyi-ui/src/api/system/menu.js
 delete mode 100644 ruoyi-ui/src/api/system/notice.js
 delete mode 100644 ruoyi-ui/src/api/system/post.js
 delete mode 100644 ruoyi-ui/src/api/system/role.js
 delete mode 100644 ruoyi-ui/src/api/system/user.js
 delete mode 100644 ruoyi-ui/src/api/tool/gen.js
 delete mode 100644 ruoyi-ui/src/assets/401_images/401.gif
 delete mode 100644 ruoyi-ui/src/assets/404_images/404.png
 delete mode 100644 ruoyi-ui/src/assets/404_images/404_cloud.png
 delete mode 100644 ruoyi-ui/src/assets/icons/index.js
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/404.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/bug.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/build.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/button.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/cascader.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/chart.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/checkbox.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/clipboard.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/code.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/color.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/component.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/dashboard.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/date-range.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/date.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/dict.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/documentation.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/download.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/drag.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/druid.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/edit.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/education.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/email.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/example.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/excel.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/exit-fullscreen.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/eye-open.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/eye.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/form.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/fullscreen.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/github.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/guide.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/icon.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/input.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/international.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/job.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/language.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/link.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/list.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/lock.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/log.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/logininfor.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/message.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/money.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/monitor.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/nested.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/number.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/online.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/password.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/pdf.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/people.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/peoples.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/phone.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/post.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/qq.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/question.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/radio.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/rate.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/redis-list.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/redis.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/row.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/search.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/select.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/server.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/shopping.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/size.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/skill.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/slider.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/star.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/swagger.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/switch.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/system.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/tab.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/table.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/textarea.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/theme.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/time-range.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/time.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/tool.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/tree-table.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/tree.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/upload.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/user.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/validCode.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/wechat.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svg/zip.svg
 delete mode 100644 ruoyi-ui/src/assets/icons/svgo.yml
 delete mode 100644 ruoyi-ui/src/assets/images/dark.svg
 delete mode 100644 ruoyi-ui/src/assets/images/light.svg
 delete mode 100644 ruoyi-ui/src/assets/images/login-background.jpg
 delete mode 100644 ruoyi-ui/src/assets/images/pay.png
 delete mode 100644 ruoyi-ui/src/assets/images/profile.jpg
 delete mode 100644 ruoyi-ui/src/assets/logo/logo.png
 delete mode 100644 ruoyi-ui/src/assets/styles/btn.scss
 delete mode 100644 ruoyi-ui/src/assets/styles/element-ui.scss
 delete mode 100644 ruoyi-ui/src/assets/styles/element-variables.scss
 delete mode 100644 ruoyi-ui/src/assets/styles/index.scss
 delete mode 100644 ruoyi-ui/src/assets/styles/mixin.scss
 delete mode 100644 ruoyi-ui/src/assets/styles/ruoyi.scss
 delete mode 100644 ruoyi-ui/src/assets/styles/sidebar.scss
 delete mode 100644 ruoyi-ui/src/assets/styles/transition.scss
 delete mode 100644 ruoyi-ui/src/assets/styles/variables.scss
 delete mode 100644 ruoyi-ui/src/components/Breadcrumb/index.vue
 delete mode 100644 ruoyi-ui/src/components/Crontab/day.vue
 delete mode 100644 ruoyi-ui/src/components/Crontab/hour.vue
 delete mode 100644 ruoyi-ui/src/components/Crontab/index.vue
 delete mode 100644 ruoyi-ui/src/components/Crontab/min.vue
 delete mode 100644 ruoyi-ui/src/components/Crontab/month.vue
 delete mode 100644 ruoyi-ui/src/components/Crontab/result.vue
 delete mode 100644 ruoyi-ui/src/components/Crontab/second.vue
 delete mode 100644 ruoyi-ui/src/components/Crontab/week.vue
 delete mode 100644 ruoyi-ui/src/components/Crontab/year.vue
 delete mode 100644 ruoyi-ui/src/components/DictData/index.js
 delete mode 100644 ruoyi-ui/src/components/DictTag/index.vue
 delete mode 100644 ruoyi-ui/src/components/Editor/index.vue
 delete mode 100644 ruoyi-ui/src/components/FileUpload/index.vue
 delete mode 100644 ruoyi-ui/src/components/Hamburger/index.vue
 delete mode 100644 ruoyi-ui/src/components/HeaderSearch/index.vue
 delete mode 100644 ruoyi-ui/src/components/IconSelect/index.vue
 delete mode 100644 ruoyi-ui/src/components/IconSelect/requireIcons.js
 delete mode 100644 ruoyi-ui/src/components/ImagePreview/index.vue
 delete mode 100644 ruoyi-ui/src/components/ImageUpload/index.vue
 delete mode 100644 ruoyi-ui/src/components/Pagination/index.vue
 delete mode 100644 ruoyi-ui/src/components/PanThumb/index.vue
 delete mode 100644 ruoyi-ui/src/components/ParentView/index.vue
 delete mode 100644 ruoyi-ui/src/components/RightPanel/index.vue
 delete mode 100644 ruoyi-ui/src/components/RightToolbar/index.vue
 delete mode 100644 ruoyi-ui/src/components/RuoYi/Doc/index.vue
 delete mode 100644 ruoyi-ui/src/components/RuoYi/Git/index.vue
 delete mode 100644 ruoyi-ui/src/components/Screenfull/index.vue
 delete mode 100644 ruoyi-ui/src/components/SizeSelect/index.vue
 delete mode 100644 ruoyi-ui/src/components/SvgIcon/index.vue
 delete mode 100644 ruoyi-ui/src/components/ThemePicker/index.vue
 delete mode 100644 ruoyi-ui/src/components/TopNav/index.vue
 delete mode 100644 ruoyi-ui/src/components/iFrame/index.vue
 delete mode 100644 ruoyi-ui/src/directive/dialog/drag.js
 delete mode 100644 ruoyi-ui/src/directive/dialog/dragHeight.js
 delete mode 100644 ruoyi-ui/src/directive/dialog/dragWidth.js
 delete mode 100644 ruoyi-ui/src/directive/index.js
 delete mode 100644 ruoyi-ui/src/directive/module/clipboard.js
 delete mode 100644 ruoyi-ui/src/directive/permission/hasPermi.js
 delete mode 100644 ruoyi-ui/src/directive/permission/hasRole.js
 delete mode 100644 ruoyi-ui/src/layout/components/AppMain.vue
 delete mode 100644 ruoyi-ui/src/layout/components/IframeToggle/index.vue
 delete mode 100644 ruoyi-ui/src/layout/components/InnerLink/index.vue
 delete mode 100644 ruoyi-ui/src/layout/components/Navbar.vue
 delete mode 100644 ruoyi-ui/src/layout/components/Settings/index.vue
 delete mode 100644 ruoyi-ui/src/layout/components/Sidebar/FixiOSBug.js
 delete mode 100644 ruoyi-ui/src/layout/components/Sidebar/Item.vue
 delete mode 100644 ruoyi-ui/src/layout/components/Sidebar/Link.vue
 delete mode 100644 ruoyi-ui/src/layout/components/Sidebar/Logo.vue
 delete mode 100644 ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue
 delete mode 100644 ruoyi-ui/src/layout/components/Sidebar/index.vue
 delete mode 100644 ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue
 delete mode 100644 ruoyi-ui/src/layout/components/TagsView/index.vue
 delete mode 100644 ruoyi-ui/src/layout/components/index.js
 delete mode 100644 ruoyi-ui/src/layout/index.vue
 delete mode 100644 ruoyi-ui/src/layout/mixin/ResizeHandler.js
 delete mode 100644 ruoyi-ui/src/main.js
 delete mode 100644 ruoyi-ui/src/permission.js
 delete mode 100644 ruoyi-ui/src/plugins/auth.js
 delete mode 100644 ruoyi-ui/src/plugins/cache.js
 delete mode 100644 ruoyi-ui/src/plugins/download.js
 delete mode 100644 ruoyi-ui/src/plugins/index.js
 delete mode 100644 ruoyi-ui/src/plugins/modal.js
 delete mode 100644 ruoyi-ui/src/plugins/tab.js
 delete mode 100644 ruoyi-ui/src/router/index.js
 delete mode 100644 ruoyi-ui/src/settings.js
 delete mode 100644 ruoyi-ui/src/store/getters.js
 delete mode 100644 ruoyi-ui/src/store/index.js
 delete mode 100644 ruoyi-ui/src/store/modules/app.js
 delete mode 100644 ruoyi-ui/src/store/modules/dict.js
 delete mode 100644 ruoyi-ui/src/store/modules/permission.js
 delete mode 100644 ruoyi-ui/src/store/modules/settings.js
 delete mode 100644 ruoyi-ui/src/store/modules/tagsView.js
 delete mode 100644 ruoyi-ui/src/store/modules/user.js
 delete mode 100644 ruoyi-ui/src/utils/auth.js
 delete mode 100644 ruoyi-ui/src/utils/dict/Dict.js
 delete mode 100644 ruoyi-ui/src/utils/dict/DictConverter.js
 delete mode 100644 ruoyi-ui/src/utils/dict/DictData.js
 delete mode 100644 ruoyi-ui/src/utils/dict/DictMeta.js
 delete mode 100644 ruoyi-ui/src/utils/dict/DictOptions.js
 delete mode 100644 ruoyi-ui/src/utils/dict/index.js
 delete mode 100644 ruoyi-ui/src/utils/errorCode.js
 delete mode 100644 ruoyi-ui/src/utils/generator/config.js
 delete mode 100644 ruoyi-ui/src/utils/generator/css.js
 delete mode 100644 ruoyi-ui/src/utils/generator/drawingDefault.js
 delete mode 100644 ruoyi-ui/src/utils/generator/html.js
 delete mode 100644 ruoyi-ui/src/utils/generator/icon.json
 delete mode 100644 ruoyi-ui/src/utils/generator/js.js
 delete mode 100644 ruoyi-ui/src/utils/generator/render.js
 delete mode 100644 ruoyi-ui/src/utils/index.js
 delete mode 100644 ruoyi-ui/src/utils/jsencrypt.js
 delete mode 100644 ruoyi-ui/src/utils/permission.js
 delete mode 100644 ruoyi-ui/src/utils/request.js
 delete mode 100644 ruoyi-ui/src/utils/ruoyi.js
 delete mode 100644 ruoyi-ui/src/utils/scroll-to.js
 delete mode 100644 ruoyi-ui/src/utils/validate.js
 delete mode 100644 ruoyi-ui/src/views/dashboard/BarChart.vue
 delete mode 100644 ruoyi-ui/src/views/dashboard/LineChart.vue
 delete mode 100644 ruoyi-ui/src/views/dashboard/PanelGroup.vue
 delete mode 100644 ruoyi-ui/src/views/dashboard/PieChart.vue
 delete mode 100644 ruoyi-ui/src/views/dashboard/RaddarChart.vue
 delete mode 100644 ruoyi-ui/src/views/dashboard/mixins/resize.js
 delete mode 100644 ruoyi-ui/src/views/error/401.vue
 delete mode 100644 ruoyi-ui/src/views/error/404.vue
 delete mode 100644 ruoyi-ui/src/views/index.vue
 delete mode 100644 ruoyi-ui/src/views/index_v1.vue
 delete mode 100644 ruoyi-ui/src/views/login.vue
 delete mode 100644 ruoyi-ui/src/views/monitor/cache/index.vue
 delete mode 100644 ruoyi-ui/src/views/monitor/cache/list.vue
 delete mode 100644 ruoyi-ui/src/views/monitor/druid/index.vue
 delete mode 100644 ruoyi-ui/src/views/monitor/job/index.vue
 delete mode 100644 ruoyi-ui/src/views/monitor/job/log.vue
 delete mode 100644 ruoyi-ui/src/views/monitor/logininfor/index.vue
 delete mode 100644 ruoyi-ui/src/views/monitor/online/index.vue
 delete mode 100644 ruoyi-ui/src/views/monitor/operlog/index.vue
 delete mode 100644 ruoyi-ui/src/views/monitor/server/index.vue
 delete mode 100644 ruoyi-ui/src/views/redirect.vue
 delete mode 100644 ruoyi-ui/src/views/register.vue
 delete mode 100644 ruoyi-ui/src/views/system/config/index.vue
 delete mode 100644 ruoyi-ui/src/views/system/dept/index.vue
 delete mode 100644 ruoyi-ui/src/views/system/dict/data.vue
 delete mode 100644 ruoyi-ui/src/views/system/dict/index.vue
 delete mode 100644 ruoyi-ui/src/views/system/menu/index.vue
 delete mode 100644 ruoyi-ui/src/views/system/notice/index.vue
 delete mode 100644 ruoyi-ui/src/views/system/post/index.vue
 delete mode 100644 ruoyi-ui/src/views/system/role/authUser.vue
 delete mode 100644 ruoyi-ui/src/views/system/role/index.vue
 delete mode 100644 ruoyi-ui/src/views/system/role/selectUser.vue
 delete mode 100644 ruoyi-ui/src/views/system/user/authRole.vue
 delete mode 100644 ruoyi-ui/src/views/system/user/index.vue
 delete mode 100644 ruoyi-ui/src/views/system/user/profile/index.vue
 delete mode 100644 ruoyi-ui/src/views/system/user/profile/resetPwd.vue
 delete mode 100644 ruoyi-ui/src/views/system/user/profile/userAvatar.vue
 delete mode 100644 ruoyi-ui/src/views/system/user/profile/userInfo.vue
 delete mode 100644 ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue
 delete mode 100644 ruoyi-ui/src/views/tool/build/DraggableItem.vue
 delete mode 100644 ruoyi-ui/src/views/tool/build/IconsDialog.vue
 delete mode 100644 ruoyi-ui/src/views/tool/build/RightPanel.vue
 delete mode 100644 ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue
 delete mode 100644 ruoyi-ui/src/views/tool/build/index.vue
 delete mode 100644 ruoyi-ui/src/views/tool/gen/basicInfoForm.vue
 delete mode 100644 ruoyi-ui/src/views/tool/gen/createTable.vue
 delete mode 100644 ruoyi-ui/src/views/tool/gen/editTable.vue
 delete mode 100644 ruoyi-ui/src/views/tool/gen/genInfoForm.vue
 delete mode 100644 ruoyi-ui/src/views/tool/gen/importTable.vue
 delete mode 100644 ruoyi-ui/src/views/tool/gen/index.vue
 delete mode 100644 ruoyi-ui/src/views/tool/swagger/index.vue
 delete mode 100644 ruoyi-ui/vue.config.js
 delete mode 100644 ry.bat
 delete mode 100644 ry.sh
 delete mode 100644 sql/quartz.sql
 delete mode 100644 sql/ry_20231130.sql

diff --git a/bin/clean.bat b/bin/clean.bat
deleted file mode 100644
index 24c0974..0000000
--- a/bin/clean.bat
+++ /dev/null
@@ -1,12 +0,0 @@
-@echo off
-echo.
-echo [��Ϣ] ��������target����·����
-echo.
-
-%~d0
-cd %~dp0
-
-cd ..
-call mvn clean
-
-pause
\ No newline at end of file
diff --git a/bin/package.bat b/bin/package.bat
deleted file mode 100644
index c693ec0..0000000
--- a/bin/package.bat
+++ /dev/null
@@ -1,12 +0,0 @@
-@echo off
-echo.
-echo [��Ϣ] ���Web���̣�����war/jar���ļ���
-echo.
-
-%~d0
-cd %~dp0
-
-cd ..
-call mvn clean package -Dmaven.test.skip=true
-
-pause
\ No newline at end of file
diff --git a/bin/run.bat b/bin/run.bat
deleted file mode 100644
index 41efbd0..0000000
--- a/bin/run.bat
+++ /dev/null
@@ -1,14 +0,0 @@
-@echo off
-echo.
-echo [��Ϣ] ʹ��Jar��������Web���̡�
-echo.
-
-cd %~dp0
-cd ../ruoyi-admin/target
-
-set JAVA_OPTS=-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
-
-java -jar %JAVA_OPTS% ruoyi-admin.jar
-
-cd bin
-pause
\ No newline at end of file
diff --git a/doc/若依环境使用手册.docx b/doc/若依环境使用手册.docx
deleted file mode 100644
index 9e4daef4d9be2e445419109a02eaf321cd4d537e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 428430
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%0DfC-!Au^<Q0%m`XEL@1Ys{j@tA=_=Uom8^EHjQ
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%0D$0i4SN));n7RdVpw~ze$@w6B*k7
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

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/common/entity/BaseInfoEntity.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/common/entity/BaseInfoEntity.java
new file mode 100644
index 0000000..3dde8cb
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/common/entity/BaseInfoEntity.java
@@ -0,0 +1,52 @@
+package com.ruoyi.jjh.common.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * Entity基类
+ *
+ * @author ruoyi
+ */
+@Data
+public class BaseInfoEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 创建者
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /**
+     * 更新者
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsApprovalInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsApprovalInfoController.java
new file mode 100644
index 0000000..64867d9
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsApprovalInfoController.java
@@ -0,0 +1,97 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsApprovalInfo;
+import com.ruoyi.jjh.declaration.service.IBmsApprovalInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 审批记录信息Controller
+ * 
+ * @author farben
+ * @date 2023-09-09
+ */
+@RestController
+@RequestMapping("/approvalInfo")
+public class BmsApprovalInfoController extends BaseController {
+    @Autowired
+    private IBmsApprovalInfoService bmsApprovalInfoService;
+
+    /**
+     * 查询审批记录信息列表
+     */
+//    @RequiresPermissions("system:approvalInfo:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsApprovalInfo bmsApprovalInfo) {
+        startPage();
+        List<BmsApprovalInfo> list = bmsApprovalInfoService.selectBmsApprovalInfoList(bmsApprovalInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出审批记录信息列表
+     */
+//    @RequiresPermissions("system:approvalInfo:export")
+    @Log(title = "审批记录信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsApprovalInfo bmsApprovalInfo) {
+        List<BmsApprovalInfo> list = bmsApprovalInfoService.selectBmsApprovalInfoList(bmsApprovalInfo);
+        ExcelUtil<BmsApprovalInfo> util = new ExcelUtil<BmsApprovalInfo>(BmsApprovalInfo.class);
+        util.exportExcel(response, list, "审批记录信息数据");
+    }
+
+    /**
+     * 获取审批记录信息详细信息
+     */
+//    @RequiresPermissions("system:approvalInfo:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsApprovalInfoService.selectBmsApprovalInfoById(id));
+    }
+
+    /**
+     * 新增审批记录信息
+     */
+//    @RequiresPermissions("system:approvalInfo:add")
+    @Log(title = "审批记录信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsApprovalInfo bmsApprovalInfo) {
+        return toAjax(bmsApprovalInfoService.insertBmsApprovalInfo(bmsApprovalInfo));
+    }
+
+    /**
+     * 修改审批记录信息
+     */
+//    @RequiresPermissions("system:approvalInfo:edit")
+    @Log(title = "审批记录信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsApprovalInfo bmsApprovalInfo) {
+        return toAjax(bmsApprovalInfoService.updateBmsApprovalInfo(bmsApprovalInfo));
+    }
+
+    /**
+     * 删除审批记录信息
+     */
+//    @RequiresPermissions("system:approvalInfo:remove")
+    @Log(title = "审批记录信息", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsApprovalInfoService.deleteBmsApprovalInfoByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsBigStrongAwardController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsBigStrongAwardController.java
new file mode 100644
index 0000000..170f57f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsBigStrongAwardController.java
@@ -0,0 +1,99 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsBigStrongAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsBigStrongAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsBigStrongAwardUpdateDto;
+import com.ruoyi.jjh.declaration.service.IBmsBigStrongAwardService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 做大做强奖详情Controller
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@RestController
+@RequestMapping("/bigStrongAward")
+public class BmsBigStrongAwardController extends BaseController {
+    @Autowired
+    private IBmsBigStrongAwardService bmsBigStrongAwardService;
+
+    /**
+     * 查询做大做强奖详情列表
+     */
+//    @RequiresPermissions("system:bigStrongAward:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsBigStrongAward bmsBigStrongAward) {
+        startPage();
+        List<BmsBigStrongAward> list = bmsBigStrongAwardService.selectBmsBigStrongAwardList(bmsBigStrongAward);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出做大做强奖详情列表
+     */
+//    @RequiresPermissions("system:bigStrongAward:export")
+    @Log(title = "做大做强奖详情", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsBigStrongAward bmsBigStrongAward) {
+        List<BmsBigStrongAward> list = bmsBigStrongAwardService.selectBmsBigStrongAwardList(bmsBigStrongAward);
+        ExcelUtil<BmsBigStrongAward> util = new ExcelUtil<BmsBigStrongAward>(BmsBigStrongAward.class);
+        util.exportExcel(response, list, "做大做强奖详情数据");
+    }
+
+    /**
+     * 获取做大做强奖详情详细信息
+     */
+//    @RequiresPermissions("system:bigStrongAward:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsBigStrongAwardService.selectBmsBigStrongAwardById(id));
+    }
+
+    /**
+     * 新增做大做强奖详情
+     */
+//    @RequiresPermissions("system:bigStrongAward:add")
+    @Log(title = "做大做强奖详情", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsBigStrongAwardAddDto bmsBigStrongAwardAddDto) {
+        return toAjax(bmsBigStrongAwardService.insertBmsBigStrongAward(bmsBigStrongAwardAddDto));
+    }
+
+    /**
+     * 修改做大做强奖详情
+     */
+//    @RequiresPermissions("system:bigStrongAward:edit")
+    @Log(title = "做大做强奖详情", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsBigStrongAwardUpdateDto bmsBigStrongAwardUpdateDto) {
+        return toAjax(bmsBigStrongAwardService.updateBmsBigStrongAward(bmsBigStrongAwardUpdateDto));
+    }
+
+    /**
+     * 删除做大做强奖详情
+     */
+//    @RequiresPermissions("system:bigStrongAward:remove")
+    @Log(title = "做大做强奖详情", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsBigStrongAwardService.deleteBmsBigStrongAwardByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsBrandingAwardController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsBrandingAwardController.java
new file mode 100644
index 0000000..8169e70
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsBrandingAwardController.java
@@ -0,0 +1,99 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsBrandingAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsBrandingAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsBrandingAwardUpdateDto;
+import com.ruoyi.jjh.declaration.service.IBmsBrandingAwardService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 品牌打造奖补Controller
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@RestController
+@RequestMapping("/brandingAward")
+public class BmsBrandingAwardController extends BaseController {
+    @Autowired
+    private IBmsBrandingAwardService bmsBrandingAwardService;
+
+    /**
+     * 查询品牌打造奖补列表
+     */
+//    @RequiresPermissions("system:brandingAward:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsBrandingAward bmsBrandingAward) {
+        startPage();
+        List<BmsBrandingAward> list = bmsBrandingAwardService.selectBmsBrandingAwardList(bmsBrandingAward);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出品牌打造奖补列表
+     */
+//    @RequiresPermissions("system:brandingAward:export")
+    @Log(title = "品牌打造奖补", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsBrandingAward bmsBrandingAward) {
+        List<BmsBrandingAward> list = bmsBrandingAwardService.selectBmsBrandingAwardList(bmsBrandingAward);
+        ExcelUtil<BmsBrandingAward> util = new ExcelUtil<BmsBrandingAward>(BmsBrandingAward.class);
+        util.exportExcel(response, list, "品牌打造奖补数据");
+    }
+
+    /**
+     * 获取品牌打造奖补详细信息
+     */
+//    @RequiresPermissions("system:brandingAward:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsBrandingAwardService.selectBmsBrandingAwardById(id));
+    }
+
+    /**
+     * 新增品牌打造奖补
+     */
+//    @RequiresPermissions("system:brandingAward:add")
+    @Log(title = "品牌打造奖补", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsBrandingAwardAddDto bmsBrandingAwardAddDto) {
+        return toAjax(bmsBrandingAwardService.insertBmsBrandingAward(bmsBrandingAwardAddDto));
+    }
+
+    /**
+     * 修改品牌打造奖补
+     */
+//    @RequiresPermissions("system:brandingAward:edit")
+    @Log(title = "品牌打造奖补", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsBrandingAwardUpdateDto bmsBrandingAwardUpdateDto) {
+        return toAjax(bmsBrandingAwardService.updateBmsBrandingAward(bmsBrandingAwardUpdateDto));
+    }
+
+    /**
+     * 删除品牌打造奖补
+     */
+//    @RequiresPermissions("system:brandingAward:remove")
+    @Log(title = "品牌打造奖补", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsBrandingAwardService.deleteBmsBrandingAwardByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsCarrierConstructionAwardController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsCarrierConstructionAwardController.java
new file mode 100644
index 0000000..f87c700
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsCarrierConstructionAwardController.java
@@ -0,0 +1,99 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsCarrierConstructionAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsCarrierConstructionAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsCarrierConstructionAwardUpdateDto;
+import com.ruoyi.jjh.declaration.service.IBmsCarrierConstructionAwardService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 载体建设奖补Controller
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@RestController
+@RequestMapping("/carrierConstructionAward")
+public class BmsCarrierConstructionAwardController extends BaseController {
+    @Autowired
+    private IBmsCarrierConstructionAwardService bmsCarrierConstructionAwardService;
+
+    /**
+     * 查询载体建设奖补列表
+     */
+//    @RequiresPermissions("system:carrierConstructionAward:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsCarrierConstructionAward bmsCarrierConstructionAward) {
+        startPage();
+        List<BmsCarrierConstructionAward> list = bmsCarrierConstructionAwardService.selectBmsCarrierConstructionAwardList(bmsCarrierConstructionAward);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出载体建设奖补列表
+     */
+//    @RequiresPermissions("system:carrierConstructionAward:export")
+    @Log(title = "载体建设奖补", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsCarrierConstructionAward bmsCarrierConstructionAward) {
+        List<BmsCarrierConstructionAward> list = bmsCarrierConstructionAwardService.selectBmsCarrierConstructionAwardList(bmsCarrierConstructionAward);
+        ExcelUtil<BmsCarrierConstructionAward> util = new ExcelUtil<BmsCarrierConstructionAward>(BmsCarrierConstructionAward.class);
+        util.exportExcel(response, list, "载体建设奖补数据");
+    }
+
+    /**
+     * 获取载体建设奖补详细信息
+     */
+//    @RequiresPermissions("system:carrierConstructionAward:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsCarrierConstructionAwardService.selectBmsCarrierConstructionAwardById(id));
+    }
+
+    /**
+     * 新增载体建设奖补
+     */
+//    @RequiresPermissions("system:carrierConstructionAward:add")
+    @Log(title = "载体建设奖补", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsCarrierConstructionAwardAddDto bmsCarrierConstructionAwardAddDto) {
+        return toAjax(bmsCarrierConstructionAwardService.insertBmsCarrierConstructionAward(bmsCarrierConstructionAwardAddDto));
+    }
+
+    /**
+     * 修改载体建设奖补
+     */
+//    @RequiresPermissions("system:carrierConstructionAward:edit")
+    @Log(title = "载体建设奖补", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsCarrierConstructionAwardUpdateDto bmsCarrierConstructionAwardUpdateDto) {
+        return toAjax(bmsCarrierConstructionAwardService.updateBmsCarrierConstructionAward(bmsCarrierConstructionAwardUpdateDto));
+    }
+
+    /**
+     * 删除载体建设奖补
+     */
+//    @RequiresPermissions("system:carrierConstructionAward:remove")
+    @Log(title = "载体建设奖补", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsCarrierConstructionAwardService.deleteBmsCarrierConstructionAwardByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsCreditManagementController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsCreditManagementController.java
new file mode 100644
index 0000000..11c6608
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsCreditManagementController.java
@@ -0,0 +1,99 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsCreditManagement;
+import com.ruoyi.jjh.declaration.entity.dto.BmsCreditManagementAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsCreditManagementUpdateDto;
+import com.ruoyi.jjh.declaration.service.IBmsCreditManagementService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 信用管理奖补Controller
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@RestController
+@RequestMapping("/creditManagement")
+public class BmsCreditManagementController extends BaseController {
+    @Autowired
+    private IBmsCreditManagementService bmsCreditManagementService;
+
+    /**
+     * 查询信用管理奖补列表
+     */
+//    @RequiresPermissions("system:creditManagement:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsCreditManagement bmsCreditManagement) {
+        startPage();
+        List<BmsCreditManagement> list = bmsCreditManagementService.selectBmsCreditManagementList(bmsCreditManagement);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出信用管理奖补列表
+     */
+//    @RequiresPermissions("system:creditManagement:export")
+    @Log(title = "信用管理奖补", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsCreditManagement bmsCreditManagement) {
+        List<BmsCreditManagement> list = bmsCreditManagementService.selectBmsCreditManagementList(bmsCreditManagement);
+        ExcelUtil<BmsCreditManagement> util = new ExcelUtil<BmsCreditManagement>(BmsCreditManagement.class);
+        util.exportExcel(response, list, "信用管理奖补数据");
+    }
+
+    /**
+     * 获取信用管理奖补详细信息
+     */
+//    @RequiresPermissions("system:creditManagement:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsCreditManagementService.selectBmsCreditManagementById(id));
+    }
+
+    /**
+     * 新增信用管理奖补
+     */
+//    @RequiresPermissions("system:creditManagement:add")
+    @Log(title = "信用管理奖补", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsCreditManagementAddDto bmsCreditManagementAddDto) {
+        return toAjax(bmsCreditManagementService.insertBmsCreditManagement(bmsCreditManagementAddDto));
+    }
+
+    /**
+     * 修改信用管理奖补
+     */
+//    @RequiresPermissions("system:creditManagement:edit")
+    @Log(title = "信用管理奖补", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsCreditManagementUpdateDto bmsCreditManagementUpdateDto) {
+        return toAjax(bmsCreditManagementService.updateBmsCreditManagement(bmsCreditManagementUpdateDto));
+    }
+
+    /**
+     * 删除信用管理奖补
+     */
+//    @RequiresPermissions("system:creditManagement:remove")
+    @Log(title = "信用管理奖补", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsCreditManagementService.deleteBmsCreditManagementByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsDeclarationRecordsController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsDeclarationRecordsController.java
new file mode 100644
index 0000000..1ccbc1d
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsDeclarationRecordsController.java
@@ -0,0 +1,160 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.dto.ApprovalDeclarationRecordsQueryDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsApprovalInfoUpdateDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsDeclarationRecordsAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsDeclarationRecordsDto;
+import com.ruoyi.jjh.declaration.entity.dto.MunicipalReviewDto;
+import com.ruoyi.jjh.declaration.entity.vo.ApprovalDeclarationRecordsQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsDeclarationRecordsQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsMunicipalBureauReviewQueryVo;
+import com.ruoyi.jjh.declaration.service.IBmsDeclarationRecordsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 在线申报记录Controller
+ *
+ * @author farben
+ * @date 2023-08-28
+ */
+@RestController
+@RequestMapping("/declarationRecords")
+public class BmsDeclarationRecordsController extends BaseController {
+    @Autowired
+    private IBmsDeclarationRecordsService bmsDeclarationRecordsService;
+
+
+    /**
+     * 审核列表
+     *
+     * @param approvalDeclarationRecordsQueryDto
+     * @return {@link TableDataInfo}
+     * @author emiya.xie
+     * @create 2023/9/9 14:41
+     */
+    @GetMapping("/approvalList")
+    public TableDataInfo approvalList(ApprovalDeclarationRecordsQueryDto approvalDeclarationRecordsQueryDto) {
+        startPage();
+        List<ApprovalDeclarationRecordsQueryVo> list = bmsDeclarationRecordsService.approvalList(approvalDeclarationRecordsQueryDto);
+        return getDataTable(list);
+    }
+
+    @Log(title = "审批记录信息", businessType = BusinessType.UPDATE)
+    @PutMapping("/approvalEdit")
+    public AjaxResult approvalEdit(@RequestBody BmsApprovalInfoUpdateDto bmsApprovalInfoUpdateDto) {
+        return toAjax(bmsDeclarationRecordsService.updateApprovalInfo(bmsApprovalInfoUpdateDto));
+    }
+
+    /**
+     * 查询在线申报记录列表
+     */
+//    @RequiresPermissions("system:declarationRecords:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsDeclarationRecordsDto bmsDeclarationRecordsDto) {
+        startPage();
+        List<BmsDeclarationRecordsQueryVo> list = bmsDeclarationRecordsService.selectBmsDeclarationRecordsList(bmsDeclarationRecordsDto);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询在线申报记录列表-政务
+     */
+    @GetMapping("/listRecords")
+    public TableDataInfo listRecords(BmsDeclarationRecordsDto bmsDeclarationRecordsDto) {
+        startPage();
+        List<BmsDeclarationRecordsQueryVo> list = bmsDeclarationRecordsService.selectBmsDeclarationRecordsZwList(bmsDeclarationRecordsDto);
+        return getDataTable(list);
+    }
+
+    @Log(title = "下载市局审核申报记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/exportMunicipalBureauReview")
+    public void export(HttpServletResponse response) {
+        List<BmsMunicipalBureauReviewQueryVo> list = bmsDeclarationRecordsService.selectMunicipalBureauReviewList();
+        ExcelUtil<BmsMunicipalBureauReviewQueryVo> util = new ExcelUtil<BmsMunicipalBureauReviewQueryVo>(BmsMunicipalBureauReviewQueryVo.class);
+        util.exportExcel(response, list, "在线申报记录数据");
+    }
+
+
+    /**
+     * 导出在线申报记录列表
+     */
+//    @RequiresPermissions("system:declarationRecords:export")
+    @Log(title = "在线申报记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsDeclarationRecordsDto bmsDeclarationRecordsDto) {
+        List<BmsDeclarationRecordsQueryVo> list = bmsDeclarationRecordsService.selectBmsDeclarationRecordsList(bmsDeclarationRecordsDto);
+        ExcelUtil<BmsDeclarationRecordsQueryVo> util = new ExcelUtil<BmsDeclarationRecordsQueryVo>(BmsDeclarationRecordsQueryVo.class);
+        util.exportExcel(response, list, "在线申报记录数据");
+    }
+
+    /**
+     * 获取在线申报记录详细信息
+     */
+//    @RequiresPermissions("system:declarationRecords:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsDeclarationRecordsService.selectBmsDeclarationRecordsById(id));
+    }
+
+    /**
+     * 新增在线申报记录
+     */
+//    @RequiresPermissions("system:declarationRecords:add")
+    @Log(title = "在线申报记录", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsDeclarationRecordsAddDto bmsDeclarationRecordsAddDto) {
+        return toAjax(bmsDeclarationRecordsService.insertBmsDeclarationRecords(bmsDeclarationRecordsAddDto));
+    }
+
+    /**
+     * 修改在线申报记录
+     */
+//    @RequiresPermissions("system:declarationRecords:edit")
+    @Log(title = "在线申报记录", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsDeclarationRecords bmsDeclarationRecords) {
+        return toAjax(bmsDeclarationRecordsService.updateBmsDeclarationRecords(bmsDeclarationRecords));
+    }
+
+    @Log(title = "市级评定结果确认-old", businessType = BusinessType.UPDATE)
+    @PutMapping("/municipalReview")
+    @Deprecated
+    public AjaxResult municipalReview(@RequestBody MunicipalReviewDto municipalReviewDto) {
+        return success("市级评定结果确认成功" + bmsDeclarationRecordsService.municipalReview(municipalReviewDto) + "条数据");
+    }
+
+    @Log(title = "市级评定结果确认-new", businessType = BusinessType.UPDATE)
+    @PutMapping("/municipalReviewNew")
+    public AjaxResult municipalReviewNew(@RequestBody MunicipalReviewDto municipalReviewDto) {
+        return success("市级评定结果确认成功" + bmsDeclarationRecordsService.municipalReviewNew(municipalReviewDto) + "条数据");
+    }
+
+
+    /**
+     * 删除在线申报记录
+     */
+//    @RequiresPermissions("system:declarationRecords:remove")
+    @Log(title = "在线申报记录", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsDeclarationRecordsService.deleteBmsDeclarationRecordsByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsEnterpriseBasicInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsEnterpriseBasicInfoController.java
new file mode 100644
index 0000000..34012f7
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsEnterpriseBasicInfoController.java
@@ -0,0 +1,98 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseBasicInfo;
+import com.ruoyi.jjh.declaration.service.IBmsEnterpriseBasicInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 企业基础信息Controller
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@RestController
+@RequestMapping("/enterpriseBasicInfo")
+public class BmsEnterpriseBasicInfoController extends BaseController {
+
+    @Autowired
+    private IBmsEnterpriseBasicInfoService bmsEnterpriseBasicInfoService;
+
+    /**
+     * 查询企业基础信息列表
+     */
+//    @RequiresPermissions("system:enterpriseBasicInfo:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsEnterpriseBasicInfo bmsEnterpriseBasicInfo) {
+        startPage();
+        List<BmsEnterpriseBasicInfo> list = bmsEnterpriseBasicInfoService.selectBmsEnterpriseBasicInfoList(bmsEnterpriseBasicInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出企业基础信息列表
+     */
+//    @RequiresPermissions("system:enterpriseBasicInfo:export")
+    @Log(title = "企业基础信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsEnterpriseBasicInfo bmsEnterpriseBasicInfo) {
+        List<BmsEnterpriseBasicInfo> list = bmsEnterpriseBasicInfoService.selectBmsEnterpriseBasicInfoList(bmsEnterpriseBasicInfo);
+        ExcelUtil<BmsEnterpriseBasicInfo> util = new ExcelUtil<BmsEnterpriseBasicInfo>(BmsEnterpriseBasicInfo.class);
+        util.exportExcel(response, list, "企业基础信息数据");
+    }
+
+    /**
+     * 获取企业基础信息详细信息
+     */
+//    @RequiresPermissions("system:enterpriseBasicInfo:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsEnterpriseBasicInfoService.selectBmsEnterpriseBasicInfoById(id));
+    }
+
+    /**
+     * 新增企业基础信息
+     */
+//    @RequiresPermissions("system:enterpriseBasicInfo:add")
+    @Log(title = "企业基础信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsEnterpriseBasicInfo bmsEnterpriseBasicInfo) {
+        return toAjax(bmsEnterpriseBasicInfoService.insertBmsEnterpriseBasicInfo(bmsEnterpriseBasicInfo));
+    }
+
+    /**
+     * 修改企业基础信息
+     */
+//    @RequiresPermissions("system:enterpriseBasicInfo:edit")
+    @Log(title = "企业基础信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsEnterpriseBasicInfo bmsEnterpriseBasicInfo) {
+        return toAjax(bmsEnterpriseBasicInfoService.updateBmsEnterpriseBasicInfo(bmsEnterpriseBasicInfo));
+    }
+
+    /**
+     * 删除企业基础信息
+     */
+//    @RequiresPermissions("system:enterpriseBasicInfo:remove")
+    @Log(title = "企业基础信息", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsEnterpriseBasicInfoService.deleteBmsEnterpriseBasicInfoByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsEnterpriseDirectoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsEnterpriseDirectoryController.java
new file mode 100644
index 0000000..81cb583
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsEnterpriseDirectoryController.java
@@ -0,0 +1,97 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseDirectory;
+import com.ruoyi.jjh.declaration.service.IBmsEnterpriseDirectoryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 企业名录Controller
+ * 
+ * @author farben
+ * @date 2023-08-31
+ */
+@RestController
+@RequestMapping("/enterpriseDirectory")
+public class BmsEnterpriseDirectoryController extends BaseController {
+    @Autowired
+    private IBmsEnterpriseDirectoryService bmsEnterpriseDirectoryService;
+
+    /**
+     * 查询企业名录列表
+     */
+//    @RequiresPermissions("system:enterpriseDirectory:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsEnterpriseDirectory bmsEnterpriseDirectory) {
+        startPage();
+        List<BmsEnterpriseDirectory> list = bmsEnterpriseDirectoryService.selectBmsEnterpriseDirectoryList(bmsEnterpriseDirectory);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出企业名录列表
+     */
+//    @RequiresPermissions("system:enterpriseDirectory:export")
+    @Log(title = "企业名录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsEnterpriseDirectory bmsEnterpriseDirectory) {
+        List<BmsEnterpriseDirectory> list = bmsEnterpriseDirectoryService.selectBmsEnterpriseDirectoryList(bmsEnterpriseDirectory);
+        ExcelUtil<BmsEnterpriseDirectory> util = new ExcelUtil<BmsEnterpriseDirectory>(BmsEnterpriseDirectory.class);
+        util.exportExcel(response, list, "企业名录数据");
+    }
+
+    /**
+     * 获取企业名录详细信息
+     */
+//    @RequiresPermissions("system:enterpriseDirectory:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsEnterpriseDirectoryService.selectBmsEnterpriseDirectoryById(id));
+    }
+
+    /**
+     * 新增企业名录
+     */
+//    @RequiresPermissions("system:enterpriseDirectory:add")
+    @Log(title = "企业名录", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsEnterpriseDirectory bmsEnterpriseDirectory) {
+        return toAjax(bmsEnterpriseDirectoryService.insertBmsEnterpriseDirectory(bmsEnterpriseDirectory));
+    }
+
+    /**
+     * 修改企业名录
+     */
+//    @RequiresPermissions("system:enterpriseDirectory:edit")
+    @Log(title = "企业名录", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsEnterpriseDirectory bmsEnterpriseDirectory) {
+        return toAjax(bmsEnterpriseDirectoryService.updateBmsEnterpriseDirectory(bmsEnterpriseDirectory));
+    }
+
+    /**
+     * 删除企业名录
+     */
+//    @RequiresPermissions("system:enterpriseDirectory:remove")
+    @Log(title = "企业名录", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsEnterpriseDirectoryService.deleteBmsEnterpriseDirectoryByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsFieldInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsFieldInfoController.java
new file mode 100644
index 0000000..575079a
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsFieldInfoController.java
@@ -0,0 +1,97 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsFieldInfo;
+import com.ruoyi.jjh.declaration.service.IBmsFieldInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 模板字段填写详情Controller
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@RestController
+@RequestMapping("/fieldInfo")
+public class BmsFieldInfoController extends BaseController {
+    @Autowired
+    private IBmsFieldInfoService bmsFieldInfoService;
+
+    /**
+     * 查询模板字段填写详情列表
+     */
+//    @RequiresPermissions("system:fieldInfo:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsFieldInfo bmsFieldInfo) {
+        startPage();
+        List<BmsFieldInfo> list = bmsFieldInfoService.selectBmsFieldInfoList(bmsFieldInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出模板字段填写详情列表
+     */
+//    @RequiresPermissions("system:fieldInfo:export")
+    @Log(title = "模板字段填写详情", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsFieldInfo bmsFieldInfo) {
+        List<BmsFieldInfo> list = bmsFieldInfoService.selectBmsFieldInfoList(bmsFieldInfo);
+        ExcelUtil<BmsFieldInfo> util = new ExcelUtil<BmsFieldInfo>(BmsFieldInfo.class);
+        util.exportExcel(response, list, "模板字段填写详情数据");
+    }
+
+    /**
+     * 获取模板字段填写详情详细信息
+     */
+//    @RequiresPermissions("system:fieldInfo:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsFieldInfoService.selectBmsFieldInfoById(id));
+    }
+
+    /**
+     * 新增模板字段填写详情
+     */
+//    @RequiresPermissions("system:fieldInfo:add")
+    @Log(title = "模板字段填写详情", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsFieldInfo bmsFieldInfo) {
+        return toAjax(bmsFieldInfoService.insertBmsFieldInfo(bmsFieldInfo));
+    }
+
+    /**
+     * 修改模板字段填写详情
+     */
+//    @RequiresPermissions("system:fieldInfo:edit")
+    @Log(title = "模板字段填写详情", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsFieldInfo bmsFieldInfo) {
+        return toAjax(bmsFieldInfoService.updateBmsFieldInfo(bmsFieldInfo));
+    }
+
+    /**
+     * 删除模板字段填写详情
+     */
+//    @RequiresPermissions("system:fieldInfo:remove")
+    @Log(title = "模板字段填写详情", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsFieldInfoService.deleteBmsFieldInfoByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsFileInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsFileInfoController.java
new file mode 100644
index 0000000..ce9c182
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsFileInfoController.java
@@ -0,0 +1,97 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsFileInfo;
+import com.ruoyi.jjh.declaration.service.IBmsFileInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 文件存储说明详情Controller
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@RestController
+@RequestMapping("/fileInfo")
+public class BmsFileInfoController extends BaseController {
+    @Autowired
+    private IBmsFileInfoService bmsFileInfoService;
+
+    /**
+     * 查询文件存储说明详情列表
+     */
+//    @RequiresPermissions("system:fileInfo:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsFileInfo bmsFileInfo) {
+        startPage();
+        List<BmsFileInfo> list = bmsFileInfoService.selectBmsFileInfoList(bmsFileInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出文件存储说明详情列表
+     */
+//    @RequiresPermissions("system:fileInfo:export")
+    @Log(title = "文件存储说明详情", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsFileInfo bmsFileInfo) {
+        List<BmsFileInfo> list = bmsFileInfoService.selectBmsFileInfoList(bmsFileInfo);
+        ExcelUtil<BmsFileInfo> util = new ExcelUtil<BmsFileInfo>(BmsFileInfo.class);
+        util.exportExcel(response, list, "文件存储说明详情数据");
+    }
+
+    /**
+     * 获取文件存储说明详情详细信息
+     */
+//    @RequiresPermissions("system:fileInfo:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsFileInfoService.selectBmsFileInfoById(id));
+    }
+
+    /**
+     * 新增文件存储说明详情
+     */
+//    @RequiresPermissions("system:fileInfo:add")
+    @Log(title = "文件存储说明详情", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsFileInfo bmsFileInfo) {
+        return toAjax(bmsFileInfoService.insertBmsFileInfo(bmsFileInfo));
+    }
+
+    /**
+     * 修改文件存储说明详情
+     */
+//    @RequiresPermissions("system:fileInfo:edit")
+    @Log(title = "文件存储说明详情", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsFileInfo bmsFileInfo) {
+        return toAjax(bmsFileInfoService.updateBmsFileInfo(bmsFileInfo));
+    }
+
+    /**
+     * 删除文件存储说明详情
+     */
+//    @RequiresPermissions("system:fileInfo:remove")
+    @Log(title = "文件存储说明详情", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsFileInfoService.deleteBmsFileInfoByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsFundingDetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsFundingDetailController.java
new file mode 100644
index 0000000..0ce76fd
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsFundingDetailController.java
@@ -0,0 +1,97 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsFundingDetail;
+import com.ruoyi.jjh.declaration.service.IBmsFundingDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 资金信息详情Controller
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@RestController
+@RequestMapping("/fundingDetail")
+public class BmsFundingDetailController extends BaseController {
+    @Autowired
+    private IBmsFundingDetailService bmsFundingDetailService;
+
+    /**
+     * 查询资金信息详情列表
+     */
+//    @RequiresPermissions("system:fundingDetail:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsFundingDetail bmsFundingDetail) {
+        startPage();
+        List<BmsFundingDetail> list = bmsFundingDetailService.selectBmsFundingDetailList(bmsFundingDetail);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出资金信息详情列表
+     */
+//    @RequiresPermissions("system:fundingDetail:export")
+    @Log(title = "资金信息详情", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsFundingDetail bmsFundingDetail) {
+        List<BmsFundingDetail> list = bmsFundingDetailService.selectBmsFundingDetailList(bmsFundingDetail);
+        ExcelUtil<BmsFundingDetail> util = new ExcelUtil<BmsFundingDetail>(BmsFundingDetail.class);
+        util.exportExcel(response, list, "资金信息详情数据");
+    }
+
+    /**
+     * 获取资金信息详情详细信息
+     */
+//    @RequiresPermissions("system:fundingDetail:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsFundingDetailService.selectBmsFundingDetailById(id));
+    }
+
+    /**
+     * 新增资金信息详情
+     */
+//    @RequiresPermissions("system:fundingDetail:add")
+    @Log(title = "资金信息详情", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsFundingDetail bmsFundingDetail) {
+        return toAjax(bmsFundingDetailService.insertBmsFundingDetail(bmsFundingDetail));
+    }
+
+    /**
+     * 修改资金信息详情
+     */
+//    @RequiresPermissions("system:fundingDetail:edit")
+    @Log(title = "资金信息详情", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsFundingDetail bmsFundingDetail) {
+        return toAjax(bmsFundingDetailService.updateBmsFundingDetail(bmsFundingDetail));
+    }
+
+    /**
+     * 删除资金信息详情
+     */
+//    @RequiresPermissions("system:fundingDetail:remove")
+    @Log(title = "资金信息详情", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsFundingDetailService.deleteBmsFundingDetailByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsIndustrialInternetAwardController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsIndustrialInternetAwardController.java
new file mode 100644
index 0000000..b4aafc8
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsIndustrialInternetAwardController.java
@@ -0,0 +1,99 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsIndustrialInternetAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsIndustrialInternetAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsIndustrialInternetAwardUpdateDto;
+import com.ruoyi.jjh.declaration.service.IBmsIndustrialInternetAwardService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 5G+工业互联网奖补Controller
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@RestController
+@RequestMapping("/industrialInternetAward")
+public class BmsIndustrialInternetAwardController extends BaseController {
+    @Autowired
+    private IBmsIndustrialInternetAwardService bmsIndustrialInternetAwardService;
+
+    /**
+     * 查询5G+工业互联网奖补列表
+     */
+//    @RequiresPermissions("system:industrialInternetAward:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsIndustrialInternetAward bmsIndustrialInternetAward) {
+        startPage();
+        List<BmsIndustrialInternetAward> list = bmsIndustrialInternetAwardService.selectBmsIndustrialInternetAwardList(bmsIndustrialInternetAward);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出5G+工业互联网奖补列表
+     */
+//    @RequiresPermissions("system:industrialInternetAward:export")
+    @Log(title = "5G+工业互联网奖补", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsIndustrialInternetAward bmsIndustrialInternetAward) {
+        List<BmsIndustrialInternetAward> list = bmsIndustrialInternetAwardService.selectBmsIndustrialInternetAwardList(bmsIndustrialInternetAward);
+        ExcelUtil<BmsIndustrialInternetAward> util = new ExcelUtil<BmsIndustrialInternetAward>(BmsIndustrialInternetAward.class);
+        util.exportExcel(response, list, "5G+工业互联网奖补数据");
+    }
+
+    /**
+     * 获取5G+工业互联网奖补详细信息
+     */
+//    @RequiresPermissions("system:industrialInternetAward:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsIndustrialInternetAwardService.selectBmsIndustrialInternetAwardById(id));
+    }
+
+    /**
+     * 新增5G+工业互联网奖补
+     */
+//    @RequiresPermissions("system:industrialInternetAward:add")
+    @Log(title = "5G+工业互联网奖补", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsIndustrialInternetAwardAddDto bmsIndustrialInternetAwardAddDto) {
+        return toAjax(bmsIndustrialInternetAwardService.insertBmsIndustrialInternetAward(bmsIndustrialInternetAwardAddDto));
+    }
+
+    /**
+     * 修改5G+工业互联网奖补
+     */
+//    @RequiresPermissions("system:industrialInternetAward:edit")
+    @Log(title = "5G+工业互联网奖补", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsIndustrialInternetAwardUpdateDto bmsIndustrialInternetAwardUpdateDto) {
+        return toAjax(bmsIndustrialInternetAwardService.updateBmsIndustrialInternetAward(bmsIndustrialInternetAwardUpdateDto));
+    }
+
+    /**
+     * 删除5G+工业互联网奖补
+     */
+//    @RequiresPermissions("system:industrialInternetAward:remove")
+    @Log(title = "5G+工业互联网奖补", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsIndustrialInternetAwardService.deleteBmsIndustrialInternetAwardByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsIntegrationIndustriesController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsIntegrationIndustriesController.java
new file mode 100644
index 0000000..e7b124e
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsIntegrationIndustriesController.java
@@ -0,0 +1,99 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsIntegrationIndustries;
+import com.ruoyi.jjh.declaration.entity.dto.BmsIntegrationIndustriesAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsIntegrationIndustriesUpdateDto;
+import com.ruoyi.jjh.declaration.service.IBmsIntegrationIndustriesService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 两业融合奖补Controller
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@RestController
+@RequestMapping("/integrationIndustries")
+public class BmsIntegrationIndustriesController extends BaseController {
+    @Autowired
+    private IBmsIntegrationIndustriesService bmsIntegrationIndustriesService;
+
+    /**
+     * 查询两业融合奖补列表
+     */
+//    @RequiresPermissions("system:integrationIndustries:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsIntegrationIndustries bmsIntegrationIndustries) {
+        startPage();
+        List<BmsIntegrationIndustries> list = bmsIntegrationIndustriesService.selectBmsIntegrationIndustriesList(bmsIntegrationIndustries);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出两业融合奖补列表
+     */
+//    @RequiresPermissions("system:integrationIndustries:export")
+    @Log(title = "两业融合奖补", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsIntegrationIndustries bmsIntegrationIndustries) {
+        List<BmsIntegrationIndustries> list = bmsIntegrationIndustriesService.selectBmsIntegrationIndustriesList(bmsIntegrationIndustries);
+        ExcelUtil<BmsIntegrationIndustries> util = new ExcelUtil<BmsIntegrationIndustries>(BmsIntegrationIndustries.class);
+        util.exportExcel(response, list, "两业融合奖补数据");
+    }
+
+    /**
+     * 获取两业融合奖补详细信息
+     */
+//    @RequiresPermissions("system:integrationIndustries:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsIntegrationIndustriesService.selectBmsIntegrationIndustriesById(id));
+    }
+
+    /**
+     * 新增两业融合奖补
+     */
+//    @RequiresPermissions("system:integrationIndustries:add")
+    @Log(title = "两业融合奖补", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsIntegrationIndustriesAddDto bmsIntegrationIndustriesAddDto) {
+        return toAjax(bmsIntegrationIndustriesService.insertBmsIntegrationIndustries(bmsIntegrationIndustriesAddDto));
+    }
+
+    /**
+     * 修改两业融合奖补
+     */
+//    @RequiresPermissions("system:integrationIndustries:edit")
+    @Log(title = "两业融合奖补", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsIntegrationIndustriesUpdateDto bmsIntegrationIndustriesUpdateDto) {
+        return toAjax(bmsIntegrationIndustriesService.updateBmsIntegrationIndustries(bmsIntegrationIndustriesUpdateDto));
+    }
+
+    /**
+     * 删除两业融合奖补
+     */
+//    @RequiresPermissions("system:integrationIndustries:remove")
+    @Log(title = "两业融合奖补", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsIntegrationIndustriesService.deleteBmsIntegrationIndustriesByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsLogisticsDevelopmentAwardController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsLogisticsDevelopmentAwardController.java
new file mode 100644
index 0000000..461285c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsLogisticsDevelopmentAwardController.java
@@ -0,0 +1,99 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsLogisticsDevelopmentAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsLogisticsDevelopmentAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsLogisticsDevelopmentAwardUpdateDto;
+import com.ruoyi.jjh.declaration.service.IBmsLogisticsDevelopmentAwardService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 物流发展奖补Controller
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@RestController
+@RequestMapping("/logisticsDevelopmentAward")
+public class BmsLogisticsDevelopmentAwardController extends BaseController {
+    @Autowired
+    private IBmsLogisticsDevelopmentAwardService bmsLogisticsDevelopmentAwardService;
+
+    /**
+     * 查询物流发展奖补列表
+     */
+//    @RequiresPermissions("system:logisticsDevelopmentAward:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsLogisticsDevelopmentAward bmsLogisticsDevelopmentAward) {
+        startPage();
+        List<BmsLogisticsDevelopmentAward> list = bmsLogisticsDevelopmentAwardService.selectBmsLogisticsDevelopmentAwardList(bmsLogisticsDevelopmentAward);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出物流发展奖补列表
+     */
+//    @RequiresPermissions("system:logisticsDevelopmentAward:export")
+    @Log(title = "物流发展奖补", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsLogisticsDevelopmentAward bmsLogisticsDevelopmentAward) {
+        List<BmsLogisticsDevelopmentAward> list = bmsLogisticsDevelopmentAwardService.selectBmsLogisticsDevelopmentAwardList(bmsLogisticsDevelopmentAward);
+        ExcelUtil<BmsLogisticsDevelopmentAward> util = new ExcelUtil<BmsLogisticsDevelopmentAward>(BmsLogisticsDevelopmentAward.class);
+        util.exportExcel(response, list, "物流发展奖补数据");
+    }
+
+    /**
+     * 获取物流发展奖补详细信息
+     */
+//    @RequiresPermissions("system:logisticsDevelopmentAward:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsLogisticsDevelopmentAwardService.selectBmsLogisticsDevelopmentAwardById(id));
+    }
+
+    /**
+     * 新增物流发展奖补
+     */
+//    @RequiresPermissions("system:logisticsDevelopmentAward:add")
+    @Log(title = "物流发展奖补", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsLogisticsDevelopmentAwardAddDto bmsLogisticsDevelopmentAwardAddDto) {
+        return toAjax(bmsLogisticsDevelopmentAwardService.insertBmsLogisticsDevelopmentAward(bmsLogisticsDevelopmentAwardAddDto));
+    }
+
+    /**
+     * 修改物流发展奖补
+     */
+//    @RequiresPermissions("system:logisticsDevelopmentAward:edit")
+    @Log(title = "物流发展奖补", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsLogisticsDevelopmentAwardUpdateDto bmsLogisticsDevelopmentAwardUpdateDto) {
+        return toAjax(bmsLogisticsDevelopmentAwardService.updateBmsLogisticsDevelopmentAward(bmsLogisticsDevelopmentAwardUpdateDto));
+    }
+
+    /**
+     * 删除物流发展奖补
+     */
+//    @RequiresPermissions("system:logisticsDevelopmentAward:remove")
+    @Log(title = "物流发展奖补", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsLogisticsDevelopmentAwardService.deleteBmsLogisticsDevelopmentAwardByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsManufacturingServicesAwardController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsManufacturingServicesAwardController.java
new file mode 100644
index 0000000..56bc940
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsManufacturingServicesAwardController.java
@@ -0,0 +1,99 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsManufacturingServicesAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsManufacturingServicesAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsManufacturingServicesAwardUpdateDto;
+import com.ruoyi.jjh.declaration.service.IBmsManufacturingServicesAwardService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 制造服务业有效投入奖补Controller
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@RestController
+@RequestMapping("/manufacturingServicesAward")
+public class BmsManufacturingServicesAwardController extends BaseController {
+    @Autowired
+    private IBmsManufacturingServicesAwardService bmsManufacturingServicesAwardService;
+
+    /**
+     * 查询制造服务业有效投入奖补列表
+     */
+//    @RequiresPermissions("system:manufacturingServicesAward:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsManufacturingServicesAward bmsManufacturingServicesAward) {
+        startPage();
+        List<BmsManufacturingServicesAward> list = bmsManufacturingServicesAwardService.selectBmsManufacturingServicesAwardList(bmsManufacturingServicesAward);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出制造服务业有效投入奖补列表
+     */
+//    @RequiresPermissions("system:manufacturingServicesAward:export")
+    @Log(title = "制造服务业有效投入奖补", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsManufacturingServicesAward bmsManufacturingServicesAward) {
+        List<BmsManufacturingServicesAward> list = bmsManufacturingServicesAwardService.selectBmsManufacturingServicesAwardList(bmsManufacturingServicesAward);
+        ExcelUtil<BmsManufacturingServicesAward> util = new ExcelUtil<BmsManufacturingServicesAward>(BmsManufacturingServicesAward.class);
+        util.exportExcel(response, list, "制造服务业有效投入奖补数据");
+    }
+
+    /**
+     * 获取制造服务业有效投入奖补详细信息
+     */
+//    @RequiresPermissions("system:manufacturingServicesAward:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsManufacturingServicesAwardService.selectBmsManufacturingServicesAwardById(id));
+    }
+
+    /**
+     * 新增制造服务业有效投入奖补
+     */
+//    @RequiresPermissions("system:manufacturingServicesAward:add")
+    @Log(title = "制造服务业有效投入奖补", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsManufacturingServicesAwardAddDto bmsManufacturingServicesAwardAddDto) {
+        return toAjax(bmsManufacturingServicesAwardService.insertBmsManufacturingServicesAward(bmsManufacturingServicesAwardAddDto));
+    }
+
+    /**
+     * 修改制造服务业有效投入奖补
+     */
+//    @RequiresPermissions("system:manufacturingServicesAward:edit")
+    @Log(title = "制造服务业有效投入奖补", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsManufacturingServicesAwardUpdateDto bmsManufacturingServicesAwardUpdateDto) {
+        return toAjax(bmsManufacturingServicesAwardService.updateBmsManufacturingServicesAward(bmsManufacturingServicesAwardUpdateDto));
+    }
+
+    /**
+     * 删除制造服务业有效投入奖补
+     */
+//    @RequiresPermissions("system:manufacturingServicesAward:remove")
+    @Log(title = "制造服务业有效投入奖补", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsManufacturingServicesAwardService.deleteBmsManufacturingServicesAwardByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsOpenInterfaceController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsOpenInterfaceController.java
new file mode 100644
index 0000000..31254cb
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsOpenInterfaceController.java
@@ -0,0 +1,54 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsProjectInfo;
+import com.ruoyi.jjh.declaration.entity.dto.OpenInterfaceApplyAddDto;
+import com.ruoyi.jjh.declaration.entity.vo.EnterpriseInfoTemplateVo;
+import com.ruoyi.jjh.declaration.service.IOpenInterfaceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * 审批记录信息Controller
+ * 
+ * @author farben
+ * @date 2023-09-09
+ */
+@RestController
+@RequestMapping("/openInterface")
+public class BmsOpenInterfaceController extends BaseController {
+
+    @Autowired
+    private IOpenInterfaceService iOpenInterfaceService;
+
+    @GetMapping("/enterpriseInfo/{creditCode}")
+    public AjaxResult enterpriseInfo(@PathVariable("creditCode") String creditCode) {
+        EnterpriseInfoTemplateVo enterpriseInfoTemplateVo = iOpenInterfaceService.enterpriseList(creditCode);
+        return success(enterpriseInfoTemplateVo);
+    }
+
+    @Log(title = "新增申报记录", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody OpenInterfaceApplyAddDto openInterfaceApplyAddDto) {
+        return toAjax(iOpenInterfaceService.insertOpenInterfaceApplyAddDto(openInterfaceApplyAddDto));
+    }
+
+    @GetMapping("/{templateRecordId}")
+    public AjaxResult getProjectInfo(@PathVariable("templateRecordId") Long templateRecordId) {
+        BmsProjectInfo bmsProjectInfo = iOpenInterfaceService.getProjectInfo(templateRecordId);
+        return success(bmsProjectInfo);
+    }
+
+
+
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsPlatformConstructionAwardController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsPlatformConstructionAwardController.java
new file mode 100644
index 0000000..fa55ded
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsPlatformConstructionAwardController.java
@@ -0,0 +1,99 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsPlatformConstructionAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsPlatformConstructionAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsPlatformConstructionAwardUpdateDto;
+import com.ruoyi.jjh.declaration.service.IBmsPlatformConstructionAwardService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 平台建设奖补Controller
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@RestController
+@RequestMapping("/platformConstructionAward")
+public class BmsPlatformConstructionAwardController extends BaseController {
+    @Autowired
+    private IBmsPlatformConstructionAwardService bmsPlatformConstructionAwardService;
+
+    /**
+     * 查询平台建设奖补列表
+     */
+//    @RequiresPermissions("system:platformConstructionAward:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsPlatformConstructionAward bmsPlatformConstructionAward) {
+        startPage();
+        List<BmsPlatformConstructionAward> list = bmsPlatformConstructionAwardService.selectBmsPlatformConstructionAwardList(bmsPlatformConstructionAward);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出平台建设奖补列表
+     */
+//    @RequiresPermissions("system:platformConstructionAward:export")
+    @Log(title = "平台建设奖补", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsPlatformConstructionAward bmsPlatformConstructionAward) {
+        List<BmsPlatformConstructionAward> list = bmsPlatformConstructionAwardService.selectBmsPlatformConstructionAwardList(bmsPlatformConstructionAward);
+        ExcelUtil<BmsPlatformConstructionAward> util = new ExcelUtil<BmsPlatformConstructionAward>(BmsPlatformConstructionAward.class);
+        util.exportExcel(response, list, "平台建设奖补数据");
+    }
+
+    /**
+     * 获取平台建设奖补详细信息
+     */
+//    @RequiresPermissions("system:platformConstructionAward:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsPlatformConstructionAwardService.selectBmsPlatformConstructionAwardById(id));
+    }
+
+    /**
+     * 新增平台建设奖补
+     */
+//    @RequiresPermissions("system:platformConstructionAward:add")
+    @Log(title = "平台建设奖补", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsPlatformConstructionAwardAddDto bmsPlatformConstructionAwardAddDto) {
+        return toAjax(bmsPlatformConstructionAwardService.insertBmsPlatformConstructionAward(bmsPlatformConstructionAwardAddDto));
+    }
+
+    /**
+     * 修改平台建设奖补
+     */
+//    @RequiresPermissions("system:platformConstructionAward:edit")
+    @Log(title = "平台建设奖补", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsPlatformConstructionAwardUpdateDto bmsPlatformConstructionAwardUpdateDto) {
+        return toAjax(bmsPlatformConstructionAwardService.updateBmsPlatformConstructionAward(bmsPlatformConstructionAwardUpdateDto));
+    }
+
+    /**
+     * 删除平台建设奖补
+     */
+//    @RequiresPermissions("system:platformConstructionAward:remove")
+    @Log(title = "平台建设奖补", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsPlatformConstructionAwardService.deleteBmsPlatformConstructionAwardByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsProcessInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsProcessInfoController.java
new file mode 100644
index 0000000..fa1bc5b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsProcessInfoController.java
@@ -0,0 +1,97 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsProcessInfo;
+import com.ruoyi.jjh.declaration.service.IBmsProcessInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 审批流程Controller
+ * 
+ * @author farben
+ * @date 2023-09-09
+ */
+@RestController
+@RequestMapping("/processInfo")
+public class BmsProcessInfoController extends BaseController {
+    @Autowired
+    private IBmsProcessInfoService bmsProcessInfoService;
+
+    /**
+     * 查询审批流程列表
+     */
+//    @RequiresPermissions("system:processInfo:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsProcessInfo bmsProcessInfo) {
+        startPage();
+        List<BmsProcessInfo> list = bmsProcessInfoService.selectBmsProcessInfoList(bmsProcessInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出审批流程列表
+     */
+//    @RequiresPermissions("system:processInfo:export")
+    @Log(title = "审批流程", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsProcessInfo bmsProcessInfo) {
+        List<BmsProcessInfo> list = bmsProcessInfoService.selectBmsProcessInfoList(bmsProcessInfo);
+        ExcelUtil<BmsProcessInfo> util = new ExcelUtil<BmsProcessInfo>(BmsProcessInfo.class);
+        util.exportExcel(response, list, "审批流程数据");
+    }
+
+    /**
+     * 获取审批流程详细信息
+     */
+//    @RequiresPermissions("system:processInfo:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsProcessInfoService.selectBmsProcessInfoById(id));
+    }
+
+    /**
+     * 新增审批流程
+     */
+//    @RequiresPermissions("system:processInfo:add")
+    @Log(title = "审批流程", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsProcessInfo bmsProcessInfo) {
+        return toAjax(bmsProcessInfoService.insertBmsProcessInfo(bmsProcessInfo));
+    }
+
+    /**
+     * 修改审批流程
+     */
+//    @RequiresPermissions("system:processInfo:edit")
+    @Log(title = "审批流程", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsProcessInfo bmsProcessInfo) {
+        return toAjax(bmsProcessInfoService.updateBmsProcessInfo(bmsProcessInfo));
+    }
+
+    /**
+     * 删除审批流程
+     */
+//    @RequiresPermissions("system:processInfo:remove")
+    @Log(title = "审批流程", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsProcessInfoService.deleteBmsProcessInfoByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsProjectInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsProjectInfoController.java
new file mode 100644
index 0000000..d7fa40e
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsProjectInfoController.java
@@ -0,0 +1,97 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsProjectInfo;
+import com.ruoyi.jjh.declaration.service.IBmsProjectInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 项目基本信息Controller
+ * 
+ * @author farben
+ * @date 2023-09-09
+ */
+@RestController
+@RequestMapping("/projectInfo")
+public class BmsProjectInfoController extends BaseController {
+    @Autowired
+    private IBmsProjectInfoService bmsProjectInfoService;
+
+    /**
+     * 查询项目基本信息列表
+     */
+//    @RequiresPermissions("system:projectInfo:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsProjectInfo bmsProjectInfo) {
+        startPage();
+        List<BmsProjectInfo> list = bmsProjectInfoService.selectBmsProjectInfoList(bmsProjectInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出项目基本信息列表
+     */
+//    @RequiresPermissions("system:projectInfo:export")
+    @Log(title = "项目基本信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsProjectInfo bmsProjectInfo) {
+        List<BmsProjectInfo> list = bmsProjectInfoService.selectBmsProjectInfoList(bmsProjectInfo);
+        ExcelUtil<BmsProjectInfo> util = new ExcelUtil<BmsProjectInfo>(BmsProjectInfo.class);
+        util.exportExcel(response, list, "项目基本信息数据");
+    }
+
+    /**
+     * 获取项目基本信息详细信息
+     */
+//    @RequiresPermissions("system:projectInfo:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsProjectInfoService.selectBmsProjectInfoById(id));
+    }
+
+    /**
+     * 新增项目基本信息
+     */
+//    @RequiresPermissions("system:projectInfo:add")
+    @Log(title = "项目基本信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsProjectInfo bmsProjectInfo) {
+        return toAjax(bmsProjectInfoService.insertBmsProjectInfo(bmsProjectInfo));
+    }
+
+    /**
+     * 修改项目基本信息
+     */
+//    @RequiresPermissions("system:projectInfo:edit")
+    @Log(title = "项目基本信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsProjectInfo bmsProjectInfo) {
+        return toAjax(bmsProjectInfoService.updateBmsProjectInfo(bmsProjectInfo));
+    }
+
+    /**
+     * 删除项目基本信息
+     */
+//    @RequiresPermissions("system:projectInfo:remove")
+    @Log(title = "项目基本信息", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsProjectInfoService.deleteBmsProjectInfoByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsProjectSettlementAwardController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsProjectSettlementAwardController.java
new file mode 100644
index 0000000..3db84e0
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsProjectSettlementAwardController.java
@@ -0,0 +1,99 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsProjectSettlementAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsProjectSettlementAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsProjectSettlementAwardUpdateDto;
+import com.ruoyi.jjh.declaration.service.IBmsProjectSettlementAwardService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 项目落户奖补Controller
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@RestController
+@RequestMapping("/projectSettlementAward")
+public class BmsProjectSettlementAwardController extends BaseController {
+    @Autowired
+    private IBmsProjectSettlementAwardService bmsProjectSettlementAwardService;
+
+    /**
+     * 查询项目落户奖补列表
+     */
+//    @RequiresPermissions("system:projectSettlementAward:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsProjectSettlementAward bmsProjectSettlementAward) {
+        startPage();
+        List<BmsProjectSettlementAward> list = bmsProjectSettlementAwardService.selectBmsProjectSettlementAwardList(bmsProjectSettlementAward);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出项目落户奖补列表
+     */
+//    @RequiresPermissions("system:projectSettlementAward:export")
+    @Log(title = "项目落户奖补", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsProjectSettlementAward bmsProjectSettlementAward) {
+        List<BmsProjectSettlementAward> list = bmsProjectSettlementAwardService.selectBmsProjectSettlementAwardList(bmsProjectSettlementAward);
+        ExcelUtil<BmsProjectSettlementAward> util = new ExcelUtil<BmsProjectSettlementAward>(BmsProjectSettlementAward.class);
+        util.exportExcel(response, list, "项目落户奖补数据");
+    }
+
+    /**
+     * 获取项目落户奖补详细信息
+     */
+//    @RequiresPermissions("system:projectSettlementAward:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsProjectSettlementAwardService.selectBmsProjectSettlementAwardById(id));
+    }
+
+    /**
+     * 新增项目落户奖补
+     */
+//    @RequiresPermissions("system:projectSettlementAward:add")
+    @Log(title = "项目落户奖补", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsProjectSettlementAwardAddDto bmsProjectSettlementAwardAddDto) {
+        return toAjax(bmsProjectSettlementAwardService.insertBmsProjectSettlementAward(bmsProjectSettlementAwardAddDto));
+    }
+
+    /**
+     * 修改项目落户奖补
+     */
+//    @RequiresPermissions("system:projectSettlementAward:edit")
+    @Log(title = "项目落户奖补", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsProjectSettlementAwardUpdateDto bmsProjectSettlementAwardUpdateDto) {
+        return toAjax(bmsProjectSettlementAwardService.updateBmsProjectSettlementAward(bmsProjectSettlementAwardUpdateDto));
+    }
+
+    /**
+     * 删除项目落户奖补
+     */
+//    @RequiresPermissions("system:projectSettlementAward:remove")
+    @Log(title = "项目落户奖补", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsProjectSettlementAwardService.deleteBmsProjectSettlementAwardByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsSceneOpeningAwardController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsSceneOpeningAwardController.java
new file mode 100644
index 0000000..25b1c87
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsSceneOpeningAwardController.java
@@ -0,0 +1,99 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsSceneOpeningAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsSceneOpeningAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsSceneOpeningAwardUpdateDto;
+import com.ruoyi.jjh.declaration.service.IBmsSceneOpeningAwardService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 场景开放奖补Controller
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@RestController
+@RequestMapping("/sceneOpeningAward")
+public class BmsSceneOpeningAwardController extends BaseController {
+    @Autowired
+    private IBmsSceneOpeningAwardService bmsSceneOpeningAwardService;
+
+    /**
+     * 查询场景开放奖补列表
+     */
+//    @RequiresPermissions("system:sceneOpeningAward:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsSceneOpeningAward bmsSceneOpeningAward) {
+        startPage();
+        List<BmsSceneOpeningAward> list = bmsSceneOpeningAwardService.selectBmsSceneOpeningAwardList(bmsSceneOpeningAward);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出场景开放奖补列表
+     */
+//    @RequiresPermissions("system:sceneOpeningAward:export")
+    @Log(title = "场景开放奖补", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsSceneOpeningAward bmsSceneOpeningAward) {
+        List<BmsSceneOpeningAward> list = bmsSceneOpeningAwardService.selectBmsSceneOpeningAwardList(bmsSceneOpeningAward);
+        ExcelUtil<BmsSceneOpeningAward> util = new ExcelUtil<BmsSceneOpeningAward>(BmsSceneOpeningAward.class);
+        util.exportExcel(response, list, "场景开放奖补数据");
+    }
+
+    /**
+     * 获取场景开放奖补详细信息
+     */
+//    @RequiresPermissions("system:sceneOpeningAward:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsSceneOpeningAwardService.selectBmsSceneOpeningAwardById(id));
+    }
+
+    /**
+     * 新增场景开放奖补
+     */
+//    @RequiresPermissions("system:sceneOpeningAward:add")
+    @Log(title = "场景开放奖补", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsSceneOpeningAwardAddDto bmsSceneOpeningAwardAddDto) {
+        return toAjax(bmsSceneOpeningAwardService.insertBmsSceneOpeningAward(bmsSceneOpeningAwardAddDto));
+    }
+
+    /**
+     * 修改场景开放奖补
+     */
+//    @RequiresPermissions("system:sceneOpeningAward:edit")
+    @Log(title = "场景开放奖补", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsSceneOpeningAwardUpdateDto bmsSceneOpeningAwardUpdateDto) {
+        return toAjax(bmsSceneOpeningAwardService.updateBmsSceneOpeningAward(bmsSceneOpeningAwardUpdateDto));
+    }
+
+    /**
+     * 删除场景开放奖补
+     */
+//    @RequiresPermissions("system:sceneOpeningAward:remove")
+    @Log(title = "场景开放奖补", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsSceneOpeningAwardService.deleteBmsSceneOpeningAwardByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsTemplateInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsTemplateInfoController.java
new file mode 100644
index 0000000..910437c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsTemplateInfoController.java
@@ -0,0 +1,106 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BmsTemplateInfo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsTemplateInfoQueryVo;
+import com.ruoyi.jjh.declaration.service.IBmsTemplateInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 申报模板信息Controller
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@RestController
+@RequestMapping("/templateInfo")
+public class BmsTemplateInfoController extends BaseController {
+    @Autowired
+    private IBmsTemplateInfoService bmsTemplateInfoService;
+
+    /**
+     * 查询申报模板信息列表
+     */
+//    @RequiresPermissions("system:templateInfo:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsTemplateInfo bmsTemplateInfo) {
+        startPage();
+        List<BmsTemplateInfoQueryVo> list = bmsTemplateInfoService.selectBmsTemplateInfoList(bmsTemplateInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出申报模板信息列表
+     */
+//    @RequiresPermissions("system:templateInfo:export")
+    @Log(title = "申报模板信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsTemplateInfo bmsTemplateInfo) {
+        List<BmsTemplateInfoQueryVo> list = bmsTemplateInfoService.selectBmsTemplateInfoList(bmsTemplateInfo);
+        ExcelUtil<BmsTemplateInfoQueryVo> util = new ExcelUtil<BmsTemplateInfoQueryVo>(BmsTemplateInfoQueryVo.class);
+        util.exportExcel(response, list, "申报模板信息数据");
+    }
+
+//    @RequiresPermissions("system:templateInfo:exportTemplate")
+    @Log(title = "导出模板表单", businessType = BusinessType.EXPORT)
+    @GetMapping(value = "/exportTemplate/{id}")
+    public void exportTemplate(HttpServletRequest request, HttpServletResponse response,@PathVariable("id")Long id){
+        bmsTemplateInfoService.exportTemplate(request,response,id);
+    }
+
+    /**
+     * 获取申报模板信息详细信息
+     */
+//    @RequiresPermissions("system:templateInfo:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsTemplateInfoService.selectBmsTemplateInfoById(id));
+    }
+
+    /**
+     * 新增申报模板信息
+     */
+//    @RequiresPermissions("system:templateInfo:add")
+    @Log(title = "申报模板信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsTemplateInfo bmsTemplateInfo) {
+        return toAjax(bmsTemplateInfoService.insertBmsTemplateInfo(bmsTemplateInfo));
+    }
+
+    /**
+     * 修改申报模板信息
+     */
+//    @RequiresPermissions("system:templateInfo:edit")
+    @Log(title = "申报模板信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsTemplateInfo bmsTemplateInfo) {
+        return toAjax(bmsTemplateInfoService.updateBmsTemplateInfo(bmsTemplateInfo));
+    }
+
+    /**
+     * 删除申报模板信息
+     */
+//    @RequiresPermissions("system:templateInfo:remove")
+    @Log(title = "申报模板信息", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsTemplateInfoService.deleteBmsTemplateInfoByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsTemplateRecordController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsTemplateRecordController.java
new file mode 100644
index 0000000..db6ef6e
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsTemplateRecordController.java
@@ -0,0 +1,107 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.dto.BmsTemplateQueryDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsTemplateRecordAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsTemplateRecordQueryDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsTemplateRecordUpdateDto;
+import com.ruoyi.jjh.declaration.entity.vo.BmsTemplateRecordQueryVo;
+import com.ruoyi.jjh.declaration.service.IBmsTemplateRecordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 在线模板Controller
+ * 
+ * @author farben
+ * @date 2023-09-07
+ */
+@RestController
+@RequestMapping("/templateRecord")
+public class BmsTemplateRecordController extends BaseController {
+    @Autowired
+    private IBmsTemplateRecordService bmsTemplateRecordService;
+
+    /**
+     * 查询在线模板列表
+     */
+//    @RequiresPermissions("system:templateRecord:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BmsTemplateRecordQueryDto bmsTemplateRecordQueryDto) {
+        startPage();
+        List<BmsTemplateRecordQueryVo> list = bmsTemplateRecordService.selectBmsTemplateRecordList(bmsTemplateRecordQueryDto);
+        return getDataTable(list);
+    }
+
+    @GetMapping("/templateNameList")
+    public TableDataInfo templateNameList(BmsTemplateQueryDto bmsTemplateQueryDto){
+        List<BmsTemplateRecordQueryVo> list = bmsTemplateRecordService.selectBmsTemplateNameList(bmsTemplateQueryDto);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出在线模板列表
+     */
+//    @RequiresPermissions("system:templateRecord:export")
+    @Log(title = "在线模板", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BmsTemplateRecordQueryDto bmsTemplateRecordQueryDto) {
+        List<BmsTemplateRecordQueryVo> list = bmsTemplateRecordService.selectBmsTemplateRecordList(bmsTemplateRecordQueryDto);
+        ExcelUtil<BmsTemplateRecordQueryVo> util = new ExcelUtil<BmsTemplateRecordQueryVo>(BmsTemplateRecordQueryVo.class);
+        util.exportExcel(response, list, "在线模板数据");
+    }
+
+    /**
+     * 获取在线模板详细信息
+     */
+//    @RequiresPermissions("system:templateRecord:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bmsTemplateRecordService.selectBmsTemplateRecordById(id));
+    }
+
+    /**
+     * 新增在线模板
+     */
+//    @RequiresPermissions("system:templateRecord:add")
+    @Log(title = "在线模板", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmsTemplateRecordAddDto bmsTemplateRecordAddDto) {
+        return toAjax(bmsTemplateRecordService.insertBmsTemplateRecord(bmsTemplateRecordAddDto));
+    }
+
+    /**
+     * 修改在线模板
+     */
+//    @RequiresPermissions("system:templateRecord:edit")
+    @Log(title = "在线模板", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmsTemplateRecordUpdateDto bmsTemplateRecordUpdateDto) {
+        return toAjax(bmsTemplateRecordService.updateBmsTemplateRecord(bmsTemplateRecordUpdateDto));
+    }
+
+    /**
+     * 删除在线模板
+     */
+//    @RequiresPermissions("system:templateRecord:remove")
+    @Log(title = "在线模板", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmsTemplateRecordService.deleteBmsTemplateRecordByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BsmFundingInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BsmFundingInfoController.java
new file mode 100644
index 0000000..7c7f780
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BsmFundingInfoController.java
@@ -0,0 +1,97 @@
+package com.ruoyi.jjh.declaration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jjh.declaration.entity.BsmFundingInfo;
+import com.ruoyi.jjh.declaration.service.IBsmFundingInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 资金信息Controller
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@RestController
+@RequestMapping("/fundingInfo")
+public class BsmFundingInfoController extends BaseController {
+    @Autowired
+    private IBsmFundingInfoService bsmFundingInfoService;
+
+    /**
+     * 查询资金信息列表
+     */
+//    @RequiresPermissions("system:fundingInfo:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BsmFundingInfo bsmFundingInfo) {
+        startPage();
+        List<BsmFundingInfo> list = bsmFundingInfoService.selectBsmFundingInfoList(bsmFundingInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出资金信息列表
+     */
+//    @RequiresPermissions("system:fundingInfo:export")
+    @Log(title = "资金信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BsmFundingInfo bsmFundingInfo) {
+        List<BsmFundingInfo> list = bsmFundingInfoService.selectBsmFundingInfoList(bsmFundingInfo);
+        ExcelUtil<BsmFundingInfo> util = new ExcelUtil<BsmFundingInfo>(BsmFundingInfo.class);
+        util.exportExcel(response, list, "资金信息数据");
+    }
+
+    /**
+     * 获取资金信息详细信息
+     */
+//    @RequiresPermissions("system:fundingInfo:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(bsmFundingInfoService.selectBsmFundingInfoById(id));
+    }
+
+    /**
+     * 新增资金信息
+     */
+//    @RequiresPermissions("system:fundingInfo:add")
+    @Log(title = "资金信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BsmFundingInfo bsmFundingInfo) {
+        return toAjax(bsmFundingInfoService.insertBsmFundingInfo(bsmFundingInfo));
+    }
+
+    /**
+     * 修改资金信息
+     */
+//    @RequiresPermissions("system:fundingInfo:edit")
+    @Log(title = "资金信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BsmFundingInfo bsmFundingInfo) {
+        return toAjax(bsmFundingInfoService.updateBsmFundingInfo(bsmFundingInfo));
+    }
+
+    /**
+     * 删除资金信息
+     */
+//    @RequiresPermissions("system:fundingInfo:remove")
+    @Log(title = "资金信息", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bsmFundingInfoService.deleteBsmFundingInfoByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsApprovalInfo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsApprovalInfo.java
new file mode 100644
index 0000000..7cd4115
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsApprovalInfo.java
@@ -0,0 +1,110 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+/**
+ * 审批记录信息对象 bms_approval_info
+ *
+ * @author farben
+ * @date 2023-09-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsApprovalInfo extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 流程id
+     */
+    @Excel(name = "流程id")
+    private Long processId;
+
+    /**
+     * 申报记录id
+     */
+    @Excel(name = "申报记录id")
+    private Long declarationRecordsId;
+
+    @Excel(name = "默认审批人id")
+    private Long approvalById;
+
+    /**
+     * 审批状态(0=待审核.1=审批通过,2=审批驳回)
+     */
+    @Excel(name = "审批状态(0=待审核.1=审批通过,2=审批驳回)")
+    private Integer approvalStatus;
+
+    /**
+     * 审批意见
+     */
+    @Excel(name = "审批意见")
+    private String approvalOpinions;
+
+    /**
+     * 审批附件
+     */
+    @Excel(name = "审批附件")
+    private String approvalAttachment;
+
+    @Excel(name = "审批时间")
+    private Date approvalTime;
+
+    /**
+     * 是否可审核(0=是,1=否,2=结束)
+     */
+    @Excel(name = "是否可审核(0=是,1=否,2=结束)")
+    private Integer isReview;
+
+    @Excel(name = "是否为拒绝前数据,0:否,1:是")
+    private Integer isBeforeData;
+
+    /**
+     * 排序
+     */
+    @Excel(name = "排序")
+    private Integer sort;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Integer isDeleted;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("processId", getProcessId())
+                .append("declarationRecordsId", getDeclarationRecordsId())
+                .append("approvalById", getApprovalById())
+                .append("approvalStatus", getApprovalStatus())
+                .append("approvalOpinions", getApprovalOpinions())
+                .append("approvalAttachment", getApprovalAttachment())
+                .append("isReview", getIsReview())
+                .append("isBeforeData", getIsBeforeData())
+                .append("sort", getSort())
+                .append("isDeleted", getIsDeleted())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("remark", getRemark())
+                .toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsBigStrongAward.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsBigStrongAward.java
new file mode 100644
index 0000000..1441b80
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsBigStrongAward.java
@@ -0,0 +1,134 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+/**
+ * 做大做强奖详情对象 bms_big_strong_award
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+public class BmsBigStrongAward extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    @Excel(name = "企业id")
+    private Long enterpriseId;
+
+    /**
+     * 是否获得园区其他经营奖励
+     */
+    @Excel(name = "是否获得园区其他经营奖励,0:是,1:否", readConverterExp = "0=是,1=否")
+    private int isGainRewards;
+
+    @Excel(name = "奖励说明")
+    private String rewardDescription;
+
+    /**
+     * 成立时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "成立时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date establishTime;
+
+    /**
+     * 企业近3年发展情况及未来发展计划
+     */
+    @Excel(name = "企业近3年发展情况及未来发展计划")
+    private String developmentPlan;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getEnterpriseId() {
+        return enterpriseId;
+    }
+
+    public void setEnterpriseId(Long enterpriseId) {
+        this.enterpriseId = enterpriseId;
+    }
+
+    public int getIsGainRewards() {
+        return isGainRewards;
+    }
+
+    public void setIsGainRewards(int isGainRewards) {
+        this.isGainRewards = isGainRewards;
+    }
+
+    public Date getEstablishTime() {
+        return establishTime;
+    }
+
+    public void setEstablishTime(Date establishTime) {
+        this.establishTime = establishTime;
+    }
+
+    public String getDevelopmentPlan() {
+        return developmentPlan;
+    }
+
+    public void setDevelopmentPlan(String developmentPlan) {
+        this.developmentPlan = developmentPlan;
+    }
+
+    public String getRewardDescription() {
+        return rewardDescription;
+    }
+
+    public void setRewardDescription(String rewardDescription) {
+        this.rewardDescription = rewardDescription;
+    }
+
+    public Long getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(Long isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("enterpriseId", getEnterpriseId())
+                .append("isGainRewards", getIsGainRewards())
+                .append("establishTime", getEstablishTime())
+                .append("developmentPlan", getDevelopmentPlan())
+                .append("isDeleted", getIsDeleted())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("remark", getRemark())
+                .toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsBrandingAward.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsBrandingAward.java
new file mode 100644
index 0000000..0dba0be
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsBrandingAward.java
@@ -0,0 +1,119 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 品牌打造奖补对象 bms_branding_award
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+public class BmsBrandingAward extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    @Excel(name = "企业id")
+    private Long enterpriseId;
+
+    /**
+     * 所获荣誉/所举办活动
+     */
+    @Excel(name = "所获荣誉/所举办活动")
+    private String honorsReceived;
+
+    /**
+     * 所属等级
+     */
+    @Excel(name = "所属等级")
+    private Long level;
+
+    /**
+     * 证明材料
+     */
+    @Excel(name = "证明材料")
+    private String evidence;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getEnterpriseId() {
+        return enterpriseId;
+    }
+
+    public void setEnterpriseId(Long enterpriseId) {
+        this.enterpriseId = enterpriseId;
+    }
+
+    public String getHonorsReceived() {
+        return honorsReceived;
+    }
+
+    public void setHonorsReceived(String honorsReceived) {
+        this.honorsReceived = honorsReceived;
+    }
+
+    public Long getLevel() {
+        return level;
+    }
+
+    public void setLevel(Long level) {
+        this.level = level;
+    }
+
+    public String getEvidence() {
+        return evidence;
+    }
+
+    public void setEvidence(String evidence) {
+        this.evidence = evidence;
+    }
+
+    public Long getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(Long isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("enterpriseId", getEnterpriseId())
+                .append("honorsReceived", getHonorsReceived())
+                .append("level", getLevel())
+                .append("evidence", getEvidence())
+                .append("isDeleted", getIsDeleted())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("remark", getRemark())
+                .toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsCarrierConstructionAward.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsCarrierConstructionAward.java
new file mode 100644
index 0000000..8e3bf39
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsCarrierConstructionAward.java
@@ -0,0 +1,63 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 载体建设奖补对象 bms_carrier_construction_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsCarrierConstructionAward extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /** 主键id */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /** 企业id */
+    @Excel(name = "企业id")
+    private Long enterpriseId;
+
+    /** 项目名称 */
+    @Excel(name = "项目名称")
+    private String projectName;
+
+    /** 文体企业数量占比 */
+    @Excel(name = "文体企业数量占比")
+    private String quantityProportion;
+
+    /** 文体企业营收占比 */
+    @Excel(name = "文体企业营收占比")
+    private String revenueProportion;
+
+    /** 文体企业从业人员占比 */
+    @Excel(name = "文体企业从业人员占比")
+    private String personnelProportion;
+
+    /** 相关佐证材料 */
+    @Excel(name = "相关佐证材料")
+    private String supportingMaterials;
+
+    /** 项目工商登记许可 */
+    @Excel(name = "项目工商登记许可")
+    private String businessLicense;
+
+    /** 消防验收报告 */
+    @Excel(name = "消防验收报告")
+    private String fireReport;
+
+    /** 是否删除:0,未删除;1,已删除 */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsCreditManagement.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsCreditManagement.java
new file mode 100644
index 0000000..f7cf231
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsCreditManagement.java
@@ -0,0 +1,103 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 信用管理奖补对象 bms_credit_management
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+public class BmsCreditManagement extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /** 主键id */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /** 企业id */
+    @Excel(name = "企业id")
+    private Long enterpriseId;
+
+    /** 项目方案(包括项目基本情况介绍、项目投资情况以及实施进展、项目目标及取得的主要成效) */
+    @Excel(name = "项目方案", readConverterExp = "包=括项目基本情况介绍、项目投资情况以及实施进展、项目目标及取得的主要成效")
+    private String projectPlan;
+
+    /** 资金使用说明(项目未完成的需提供,内容主要包括项目计划投资额,投资明细,目前已完成投资情况和后续投入计划等) */
+    @Excel(name = "资金使用说明", readConverterExp = "项=目未完成的需提供,内容主要包括项目计划投资额,投资明细,目前已完成投资情况和后续投入计划等")
+    private String usesFunds;
+
+    /** 项目专项审计报告(项目已完成的需提供) */
+    @Excel(name = "项目专项审计报告", readConverterExp = "项=目已完成的需提供")
+    private String auditReport;
+
+    /** 是否删除:0,未删除;1,已删除 */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+    public void setId(Long id){
+        this.id = id;
+    }
+
+    public Long getId(){
+        return id;
+    }
+    public void setEnterpriseId(Long enterpriseId){
+        this.enterpriseId = enterpriseId;
+    }
+
+    public Long getEnterpriseId(){
+        return enterpriseId;
+    }
+    public void setProjectPlan(String projectPlan){
+        this.projectPlan = projectPlan;
+    }
+
+    public String getProjectPlan(){
+        return projectPlan;
+    }
+    public void setUsesFunds(String usesFunds){
+        this.usesFunds = usesFunds;
+    }
+
+    public String getUsesFunds(){
+        return usesFunds;
+    }
+    public void setAuditReport(String auditReport){
+        this.auditReport = auditReport;
+    }
+
+    public String getAuditReport(){
+        return auditReport;
+    }
+    public void setIsDeleted(Long isDeleted){
+        this.isDeleted = isDeleted;
+    }
+
+    public Long getIsDeleted(){
+        return isDeleted;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("enterpriseId", getEnterpriseId())
+            .append("projectPlan", getProjectPlan())
+            .append("usesFunds", getUsesFunds())
+            .append("auditReport", getAuditReport())
+            .append("isDeleted", getIsDeleted())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsDeclarationRecords.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsDeclarationRecords.java
new file mode 100644
index 0000000..14e0887
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsDeclarationRecords.java
@@ -0,0 +1,94 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 在线申报记录对象 bms_declaration_records
+ *
+ * @author farben
+ * @date 2023-08-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsDeclarationRecords extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 项目名称
+     */
+    @ApiModelProperty(value = "项目名称")
+    @Excel(name = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "事项")
+    @Excel(name = "事项")
+    private String matter;
+
+    /**
+     * 企业id
+     */
+    @ApiModelProperty(value = "企业id")
+    private Long enterpriseId;
+
+    /**
+     * 年份
+     */
+    @ApiModelProperty(value = "年份")
+    @Excel(name = "年份")
+    private String year;
+
+    /**
+     * 在线模板记录id
+     */
+    @ApiModelProperty(value = "在线模板记录id")
+    private Long templateRecordId;
+
+    /**
+     * 申报模版类型
+     */
+    @ApiModelProperty(value = "申报模版类型")
+    private Integer declarationTemplateType;
+
+    /**
+     * 详情id:对应详情id
+     */
+    @ApiModelProperty(value = "详情id:对应详情id")
+    private Long detailId;
+
+
+    /**
+     * 审批状态
+     */
+    @ApiModelProperty(value = "审批状态")
+    @Excel(name = "审批状态", readConverterExp = "0=草稿,1=初审中,2=复审中,3=专家评审中,4=市级评定中,5=评定通过,6=专家评审-拒绝,7=复审-拒绝,8=初审-拒绝,9=评定驳回")
+    private Long status;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @ApiModelProperty(value = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("projectName", getProjectName()).append("projectId", getProjectId()).append("enterpriseId", getEnterpriseId()).append("year", getYear()).append("templateRecordId", getTemplateRecordId()).append("declarationTemplateType", getDeclarationTemplateType()).append("detailId", getDetailId()).append("status", getStatus()).append("isDeleted", getIsDeleted()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsEnterpriseBasicInfo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsEnterpriseBasicInfo.java
new file mode 100644
index 0000000..bcfab6a
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsEnterpriseBasicInfo.java
@@ -0,0 +1,83 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 企业基础信息对象 bms_enterprise_basic_info
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsEnterpriseBasicInfo extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 企业名称
+     */
+    @Excel(name = "企业名称")
+    private String enterpriseName;
+
+    /**
+     * 企业统一信用代码
+     */
+    @Excel(name = "企业统一信用代码")
+    private String creditCode;
+
+    /**
+     * 联系人
+     */
+    @Excel(name = "联系人")
+    private String contacts;
+
+    /**
+     * 联系人电话
+     */
+    @Excel(name = "联系人电话")
+    private String contactsNumber;
+
+    /**
+     * 企业地址
+     */
+    @Excel(name = "企业地址")
+    private String address;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("enterpriseName", getEnterpriseName())
+                .append("creditCode", getCreditCode())
+                .append("contacts", getContacts())
+                .append("contactsNumber", getContactsNumber())
+                .append("address", getAddress())
+                .append("isDeleted", getIsDeleted())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("remark", getRemark())
+                .toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsEnterpriseDirectory.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsEnterpriseDirectory.java
new file mode 100644
index 0000000..8e98130
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsEnterpriseDirectory.java
@@ -0,0 +1,50 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 企业名录对象 bms_enterprise_directory
+ *
+ * @author farben
+ * @date 2023-08-31
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsEnterpriseDirectory extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "在线模板记录id")
+    private Long templateRecordId;
+
+    /**
+     * 企业名字
+     */
+    @Excel(name = "企业名字")
+    private String enterpriseName;
+
+    /**
+     * 企业统一信用代码
+     */
+    @Excel(name = "企业统一信用代码")
+    private String creditCode;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("templateRecordId", getTemplateRecordId()).append("enterpriseName", getEnterpriseName()).append("creditCode", getCreditCode()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsFieldInfo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsFieldInfo.java
new file mode 100644
index 0000000..9fddff6
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsFieldInfo.java
@@ -0,0 +1,93 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 模板字段填写详情对象 bms_field_info
+ *
+ * @author farben
+ * @date 2023-09-04
+ */
+public class BmsFieldInfo extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 详情id
+     */
+    @Excel(name = "详情id")
+    private Long detailId;
+
+    /**
+     * 文件名称
+     */
+    @Excel(name = "文件名称")
+    private String fieldName;
+
+    /**
+     * 文件说明
+     */
+    @Excel(name = "文件说明")
+    private String fieldResult;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getDetailId() {
+        return detailId;
+    }
+
+    public void setDetailId(Long detailId) {
+        this.detailId = detailId;
+    }
+
+    public String getFieldName() {
+        return fieldName;
+    }
+
+    public void setFieldName(String fieldName) {
+        this.fieldName = fieldName;
+    }
+
+    public String getFieldResult() {
+        return fieldResult;
+    }
+
+    public void setFieldResult(String fieldResult) {
+        this.fieldResult = fieldResult;
+    }
+
+    public Long getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(Long isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("detailId", getDetailId()).append("fieldName", getFieldName()).append("fieldResult", getFieldResult()).append("isDeleted", getIsDeleted()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsFileInfo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsFileInfo.java
new file mode 100644
index 0000000..e917232
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsFileInfo.java
@@ -0,0 +1,107 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 文件存储说明详情对象 bms_file_info
+ *
+ * @author farben
+ * @date 2023-09-04
+ */
+public class BmsFileInfo extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 详情id
+     */
+    @Excel(name = "详情id")
+    private Long detailId;
+
+    /**
+     * 文件名称
+     */
+    @Excel(name = "文件名称")
+    private String fileName;
+
+    /**
+     * 文件说明
+     */
+    @Excel(name = "文件说明")
+    private String fileDescription;
+
+    /**
+     * 文件地址
+     */
+    @Excel(name = "文件地址")
+    private String fileUrl;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getDetailId() {
+        return detailId;
+    }
+
+    public void setDetailId(Long detailId) {
+        this.detailId = detailId;
+    }
+
+    public String getFileName() {
+        return fileName;
+    }
+
+    public void setFileName(String fileName) {
+        this.fileName = fileName;
+    }
+
+    public String getFileDescription() {
+        return fileDescription;
+    }
+
+    public void setFileDescription(String fileDescription) {
+        this.fileDescription = fileDescription;
+    }
+
+    public String getFileUrl() {
+        return fileUrl;
+    }
+
+    public void setFileUrl(String fileUrl) {
+        this.fileUrl = fileUrl;
+    }
+
+    public Long getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(Long isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("detailId", getDetailId()).append("fileName", getFileName()).append("fileDescription", getFileDescription()).append("fileUrl", getFileUrl()).append("isDeleted", getIsDeleted()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsFundingDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsFundingDetail.java
new file mode 100644
index 0000000..8e6b710
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsFundingDetail.java
@@ -0,0 +1,145 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 资金信息详情对象 bms_funding_detail
+ *
+ * @author farben
+ * @date 2023-09-04
+ */
+public class BmsFundingDetail extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 模板类型:1:项目落户奖补,2:做大做强奖补
+     */
+    @Excel(name = "模板类型:1:项目落户奖补,2:做大做强奖补")
+    private Integer type;
+
+    /**
+     * 对应模板id
+     */
+    @Excel(name = "对应模板id")
+    private int templateRecordId;
+
+    /**
+     * 详情id
+     */
+    @Excel(name = "详情id")
+    private Long detailId;
+
+    private String vModel;
+
+    /**
+     * 年份
+     */
+    @Excel(name = "年份")
+    private String year;
+
+    /**
+     * 说明
+     */
+    @Excel(name = "说明")
+    private String illustrate;
+
+    /**
+     * 金额
+     */
+    @Excel(name = "金额")
+    private Long amount;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public int getTemplateRecordId() {
+        return templateRecordId;
+    }
+
+    public void setTemplateRecordId(int templateRecordId) {
+        this.templateRecordId = templateRecordId;
+    }
+
+    public Long getDetailId() {
+        return detailId;
+    }
+
+    public void setDetailId(Long detailId) {
+        this.detailId = detailId;
+    }
+
+    public String getVModel() {
+        return vModel;
+    }
+
+    public void setVModel(String vModel) {
+        this.vModel = vModel;
+    }
+
+    public String getYear() {
+        return year;
+    }
+
+    public void setYear(String year) {
+        this.year = year;
+    }
+
+    public String getIllustrate() {
+        return illustrate;
+    }
+
+    public void setIllustrate(String illustrate) {
+        this.illustrate = illustrate;
+    }
+
+    public Long getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Long amount) {
+        this.amount = amount;
+    }
+
+    public Long getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(Long isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("type", getType()).append("templateRecordId", getTemplateRecordId()).append("detailId", getDetailId()).append("vModel", getVModel()).append("year", getYear()).append("illustrate", getIllustrate()).append("amount", getAmount()).append("isDeleted", getIsDeleted()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsIndustrialInternetAward.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsIndustrialInternetAward.java
new file mode 100644
index 0000000..c874be4
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsIndustrialInternetAward.java
@@ -0,0 +1,93 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 5G+工业互联网奖补对象 bms_industrial_internet_award
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+public class BmsIndustrialInternetAward extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    @Excel(name = "企业id")
+    private Long enterpriseId;
+
+    /**
+     * 荣誉名称
+     */
+    @Excel(name = "荣誉名称")
+    private String honoraryName;
+
+    /**
+     * 证明材料
+     */
+    @Excel(name = "证明材料")
+    private String material;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getEnterpriseId() {
+        return enterpriseId;
+    }
+
+    public void setEnterpriseId(Long enterpriseId) {
+        this.enterpriseId = enterpriseId;
+    }
+
+    public String getHonoraryName() {
+        return honoraryName;
+    }
+
+    public void setHonoraryName(String honoraryName) {
+        this.honoraryName = honoraryName;
+    }
+
+    public String getMaterial() {
+        return material;
+    }
+
+    public void setMaterial(String material) {
+        this.material = material;
+    }
+
+    public Long getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(Long isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("enterpriseId", getEnterpriseId()).append("honoraryName", getHonoraryName()).append("material", getMaterial()).append("isDeleted", getIsDeleted()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsIntegrationIndustries.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsIntegrationIndustries.java
new file mode 100644
index 0000000..d9425d0
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsIntegrationIndustries.java
@@ -0,0 +1,96 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 两业融合奖补对象 bms_integration_industries
+ *
+ * @author farben
+ * @date 2023-09-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsIntegrationIndustries extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    @Excel(name = "企业id")
+    private Long enterpriseId;
+
+    @Excel(name = "申报类型", readConverterExp = "1=两业融合示范企业,2=制造业企业设立财务独立核算的制造服务业职能部门,3=制造业企业剥离服务业务成立独立的法人")
+    private Integer declarationType;
+
+    /**
+     * 证明材料
+     */
+    @Excel(name = "证明材料")
+    private String evidence;
+
+    /**
+     * 营业执照
+     */
+    @Excel(name = "营业执照")
+    private String businessLicense;
+
+    /**
+     * 完税证明
+     */
+    @Excel(name = "完税证明")
+    private String taxPaymentCertificate;
+
+    /**
+     * 审计报告
+     */
+    @Excel(name = "审计报告")
+    private String auditReport;
+
+    /**
+     * 股权架构图
+     */
+    @Excel(name = "股权架构图")
+    private String equityStructureChart;
+
+    /**
+     * 项目申报报告(含企业基本情况和项目基本情况)
+     */
+    @Excel(name = "项目申报报告", readConverterExp = "含=企业基本情况和项目基本情况")
+    private String declarationReport;
+
+    /**
+     * 独立核算相关证明
+     */
+    @Excel(name = "独立核算相关证明")
+    private String independentAccounting;
+
+    /**
+     * 验资报告
+     */
+    @Excel(name = "验资报告")
+    private String capitalVerificationReport;
+
+    /**
+     * 证明材料
+     */
+    @Excel(name = "证明材料")
+    private String otherEvidence;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsLogisticsDevelopmentAward.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsLogisticsDevelopmentAward.java
new file mode 100644
index 0000000..b7eb472
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsLogisticsDevelopmentAward.java
@@ -0,0 +1,121 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 物流发展奖补对象 bms_logistics_development_award
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+public class BmsLogisticsDevelopmentAward extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    @Excel(name = "企业id")
+    private Long enterpriseId;
+
+    /**
+     * 荣誉证明文件
+     */
+    @Excel(name = "荣誉证明文件")
+    private String honorCertificate;
+
+    /**
+     * 平台名称
+     */
+    @Excel(name = "平台名称")
+    private String platformName;
+
+    /**
+     * 企业投资项目备案通知书或核准批复文件
+     */
+    @Excel(name = "企业投资项目备案通知书或核准批复文件")
+    private String filingNotice;
+
+    /**
+     * 会计师事务所出具的企业财务报表审计报告
+     */
+    @Excel(name = "会计师事务所出具的企业财务报表审计报告")
+    private String auditReport;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getEnterpriseId() {
+        return enterpriseId;
+    }
+
+    public void setEnterpriseId(Long enterpriseId) {
+        this.enterpriseId = enterpriseId;
+    }
+
+    public String getHonorCertificate() {
+        return honorCertificate;
+    }
+
+    public void setHonorCertificate(String honorCertificate) {
+        this.honorCertificate = honorCertificate;
+    }
+
+    public String getPlatformName() {
+        return platformName;
+    }
+
+    public void setPlatformName(String platformName) {
+        this.platformName = platformName;
+    }
+
+    public String getFilingNotice() {
+        return filingNotice;
+    }
+
+    public void setFilingNotice(String filingNotice) {
+        this.filingNotice = filingNotice;
+    }
+
+    public String getAuditReport() {
+        return auditReport;
+    }
+
+    public void setAuditReport(String auditReport) {
+        this.auditReport = auditReport;
+    }
+
+    public Long getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(Long isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("enterpriseId", getEnterpriseId()).append("honorCertificate", getHonorCertificate()).append("platformName", getPlatformName()).append("filingNotice", getFilingNotice()).append("auditReport", getAuditReport()).append("isDeleted", getIsDeleted()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsManufacturingServicesAward.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsManufacturingServicesAward.java
new file mode 100644
index 0000000..2f8e6ad
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsManufacturingServicesAward.java
@@ -0,0 +1,121 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 制造服务业有效投入奖补对象 bms_manufacturing_services_award
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+public class BmsManufacturingServicesAward extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    @Excel(name = "企业id")
+    private Long enterpriseId;
+
+    /**
+     * 企业投资项目备案通知书或核准批复文件
+     */
+    @Excel(name = "企业投资项目备案通知书或核准批复文件")
+    private String filingNotice;
+
+    /**
+     * 购置设备发票清单及发票扫描件
+     */
+    @Excel(name = "购置设备发票清单及发票扫描件")
+    private String invoice;
+
+    /**
+     * 会计师事务所出具的企业申报项目购置设备情况的专项审计报告
+     */
+    @Excel(name = "会计师事务所出具的企业申报项目购置设备情况的专项审计报告")
+    private String auditReport;
+
+    /**
+     * 会计师事务所出具的企业财务报表审计报告
+     */
+    @Excel(name = "会计师事务所出具的企业财务报表审计报告")
+    private String financialStatements;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getEnterpriseId() {
+        return enterpriseId;
+    }
+
+    public void setEnterpriseId(Long enterpriseId) {
+        this.enterpriseId = enterpriseId;
+    }
+
+    public String getFilingNotice() {
+        return filingNotice;
+    }
+
+    public void setFilingNotice(String filingNotice) {
+        this.filingNotice = filingNotice;
+    }
+
+    public String getInvoice() {
+        return invoice;
+    }
+
+    public void setInvoice(String invoice) {
+        this.invoice = invoice;
+    }
+
+    public String getAuditReport() {
+        return auditReport;
+    }
+
+    public void setAuditReport(String auditReport) {
+        this.auditReport = auditReport;
+    }
+
+    public String getFinancialStatements() {
+        return financialStatements;
+    }
+
+    public void setFinancialStatements(String financialStatements) {
+        this.financialStatements = financialStatements;
+    }
+
+    public Long getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(Long isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("enterpriseId", getEnterpriseId()).append("filingNotice", getFilingNotice()).append("invoice", getInvoice()).append("auditReport", getAuditReport()).append("financialStatements", getFinancialStatements()).append("isDeleted", getIsDeleted()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsPlatformConstructionAward.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsPlatformConstructionAward.java
new file mode 100644
index 0000000..d449dbf
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsPlatformConstructionAward.java
@@ -0,0 +1,93 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 平台建设奖补对象 bms_platform_construction_award
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+public class BmsPlatformConstructionAward extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    @Excel(name = "企业id")
+    private Long enterpriseId;
+
+    /**
+     * 平台(项目)名称
+     */
+    @Excel(name = "平台(项目)名称")
+    private String platformName;
+
+    /**
+     * 合作协议
+     */
+    @Excel(name = "合作协议")
+    private String agreement;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getEnterpriseId() {
+        return enterpriseId;
+    }
+
+    public void setEnterpriseId(Long enterpriseId) {
+        this.enterpriseId = enterpriseId;
+    }
+
+    public String getPlatformName() {
+        return platformName;
+    }
+
+    public void setPlatformName(String platformName) {
+        this.platformName = platformName;
+    }
+
+    public String getAgreement() {
+        return agreement;
+    }
+
+    public void setAgreement(String agreement) {
+        this.agreement = agreement;
+    }
+
+    public Long getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(Long isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("enterpriseId", getEnterpriseId()).append("platformName", getPlatformName()).append("agreement", getAgreement()).append("isDeleted", getIsDeleted()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsProcessInfo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsProcessInfo.java
new file mode 100644
index 0000000..c74e585
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsProcessInfo.java
@@ -0,0 +1,73 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 审批流程对象 bms_process_info
+ *
+ * @author farben
+ * @date 2023-09-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsProcessInfo extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 对应审批类型(0=所有评审)
+     */
+    @Excel(name = "对应审批类型(0=所有评审)")
+    private Integer approvalType;
+
+    /**
+     * 对应审批层级(0=初审,1=复审,2=专家评审,3=市级评审)
+     */
+    @Excel(name = "对应审批层级(0=初审,1=复审,2=专家评审,3=市级评审)")
+    private Integer approvalLevel;
+
+    @Excel(name = "审批部门id")
+    private Long approvalDept;
+
+    /**
+     * 审批人id
+     */
+    @Excel(name = "默认审批人id")
+    private Long approvalById;
+
+    @Excel(name = "审批人(可能有多个)")
+    private String approvalByIds;
+
+    @Excel(name = "下一个审批id,结束为0")
+    private Long nextProcessId;
+
+    /**
+     * 排序
+     */
+    @Excel(name = "排序")
+    private Integer sort;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Integer isDeleted;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("approvalType", getApprovalType()).append("approvalLevel", getApprovalLevel()).append("approvalById", getApprovalById()).append("approvalByIds", getApprovalByIds()).append("nextProcessId", getNextProcessId()).append("sort", getSort()).append("isDeleted", getIsDeleted()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsProjectInfo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsProjectInfo.java
new file mode 100644
index 0000000..e28af5f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsProjectInfo.java
@@ -0,0 +1,98 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 项目基本信息对象 bms_project_info
+ *
+ * @author farben
+ * @date 2023-09-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsProjectInfo extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @Excel(name = "申报模版类型")
+    private Integer declarationTemplateType;
+
+    /**
+     * 项目名称
+     */
+    @Excel(name = "项目名称")
+    private String projectName;
+
+    /**
+     * 申报单位,企业id
+     */
+    @Excel(name = "申报单位,企业id")
+    private Long enterpriseId;
+
+    /**
+     * 产品领域(0=科技领域,1=信息技术服务,2=知识产权服务,3=检验检测服务,4=文化创意,5=科技服务,6=两业融合发展【科技服务】,7=两业融合发展【全产业链工业设计)
+     */
+    @Excel(name = "产品领域(0=科技领域,1=信息技术服务,2=知识产权服务,3=检验检测服务,4=文化创意,5=科技服务,6=两业融合发展【科技服务】,7=两业融合发展【全产业链工业设计)")
+    private Long productArea;
+
+    /**
+     * 年份
+     */
+    @Excel(name = "年份")
+    private String year;
+
+    /**
+     * 项目开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "项目开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date startTime;
+
+    /**
+     * 项目结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "项目结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date endTime;
+
+    /**
+     * 申报竣工时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "申报竣工时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date completionTime;
+
+    /**
+     * 扶持方式(0=投资补助)
+     */
+    @Excel(name = "扶持方式(0=投资补助)")
+    private Long supportMethods;
+
+    /**
+     * 申报时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "申报时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date declarationTime;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsProjectSettlementAward.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsProjectSettlementAward.java
new file mode 100644
index 0000000..c404576
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsProjectSettlementAward.java
@@ -0,0 +1,86 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+/**
+ * 项目落户奖补对象 bms_project_settlement_award
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsProjectSettlementAward extends BaseInfoEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    @Excel(name = "企业id")
+    private Long enterpriseId;
+
+    /**
+     * 申报单位成立时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "申报单位成立时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date establishTime;
+
+    /**
+     * 截至目前员工人数
+     */
+    @Excel(name = "截至目前员工人数")
+    private Long employeeNum;
+
+    /**
+     * 招商协议
+     */
+    @Excel(name = "招商协议")
+    private String agreement;
+
+    /**
+     * 验资报告
+     */
+    @Excel(name = "验资报告")
+    private String report;
+
+    /**
+     * 营业执照
+     */
+    @Excel(name = "营业执照")
+    private String businessLicense;
+
+    /**
+     * 其他材料
+     */
+    @Excel(name = "其他材料")
+    private String otherMaterials;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("enterpriseId", getEnterpriseId()).append("establishTime", getEstablishTime()).append("employeeNum", getEmployeeNum()).append("agreement", getAgreement()).append("report", getReport()).append("businessLicense", getBusinessLicense()).append("otherMaterials", getOtherMaterials()).append("isDeleted", getIsDeleted()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsSceneOpeningAward.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsSceneOpeningAward.java
new file mode 100644
index 0000000..9607390
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsSceneOpeningAward.java
@@ -0,0 +1,64 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 场景开放奖补对象 bms_scene_opening_award
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsSceneOpeningAward extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    @Excel(name = "企业id")
+    private Long enterpriseId;
+
+    /**
+     * 项目名称
+     */
+    @Excel(name = "项目名称")
+    private String projectName;
+
+    /**
+     * 所属类型
+     */
+    @Excel(name = "所属类型")
+    private Long type;
+
+    /**
+     * 公示、发文证明、专家评分表
+     */
+    @Excel(name = "公示、发文证明、专家评分表")
+    private String material;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("enterpriseId", getEnterpriseId()).append("projectName", getProjectName()).append("type", getType()).append("material", getMaterial()).append("isDeleted", getIsDeleted()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsTemplateInfo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsTemplateInfo.java
new file mode 100644
index 0000000..fe503b8
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsTemplateInfo.java
@@ -0,0 +1,144 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 申报模板信息对象 bms_template_info
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+public class BmsTemplateInfo extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 模板名称
+     */
+    @ApiModelProperty(value = "模板名称")
+    @Excel(name = "模板名称")
+    private String templateName;
+
+
+    /**
+     * 级别 0:本级,1:省级
+     */
+    @ApiModelProperty(value = "级别 0:本级,1:省级")
+    @Excel(name = "级别 ", readConverterExp = "0=本级,1=省级")
+    private Long level;
+
+    /**
+     * 产品领域 生产性服务业  现代服务业  新兴服务业
+     */
+    @ApiModelProperty(value = "产品领域 0:生产性服务业  1:现代服务业  2:新兴服务业")
+    @Excel(name = "产品领域", readConverterExp = "0=生产性服务业,1=现代服务业,2=新兴服务业")
+    private Long productArea;
+
+    /**
+     * 申报类型 0:/, 1:试点区域,2:龙头型,3:创新型
+     */
+    @ApiModelProperty(value = "申报类型 0:/, 1:试点区域,2:龙头型,3:创新型")
+    @Excel(name = "申报类型", readConverterExp = "0=/, 1=试点区域,2=龙头型,3=创新型")
+    private Long type;
+
+    /**
+     * 表单说明
+     */
+    @ApiModelProperty(value = "表单说明")
+    @Excel(name = "表单说明")
+    private String notes;
+
+    /**
+     * 责任单位 0:经发委:1:规建委:2:行审局:3:市监局
+     */
+    @ApiModelProperty(value = "责任单位 0:经发委:1:规建委:2:行审局:3:市监局")
+    @Excel(name = "责任单位", readConverterExp = "0=经发委,1=规建委,2=行审局,3=市监局")
+    private Long responsibilityUnit;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @ApiModelProperty(value = "是否删除:0,未删除;1,已删除")
+    @Excel(name = "是否删除", readConverterExp = "0=未删除,1=已删除")
+    private Long isDeleted;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getTemplateName() {
+        return templateName;
+    }
+
+    public void setTemplateName(String templateName) {
+        this.templateName = templateName;
+    }
+
+    public Long getLevel() {
+        return level;
+    }
+
+    public void setLevel(Long level) {
+        this.level = level;
+    }
+
+    public Long getProductArea() {
+        return productArea;
+    }
+
+    public void setProductArea(Long productArea) {
+        this.productArea = productArea;
+    }
+
+    public Long getType() {
+        return type;
+    }
+
+    public void setType(Long type) {
+        this.type = type;
+    }
+
+    public String getNotes() {
+        return notes;
+    }
+
+    public void setNotes(String notes) {
+        this.notes = notes;
+    }
+
+    public Long getResponsibilityUnit() {
+        return responsibilityUnit;
+    }
+
+    public void setResponsibilityUnit(Long responsibilityUnit) {
+        this.responsibilityUnit = responsibilityUnit;
+    }
+
+    public Long getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(Long isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("templateName", getTemplateName()).append("level", getLevel()).append("productArea", getProductArea()).append("type", getType()).append("notes", getNotes()).append("responsibilityUnit", getResponsibilityUnit()).append("isDeleted", getIsDeleted()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsTemplateRecord.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsTemplateRecord.java
new file mode 100644
index 0000000..812aef4
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsTemplateRecord.java
@@ -0,0 +1,75 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.Size;
+import java.util.Date;
+
+/**
+ * 在线模板对象 bms_template_record
+ *
+ * @author farben
+ * @date 2023-09-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsTemplateRecord extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 模版id
+     */
+    @Excel(name = "模版id")
+    private Long templateId;
+
+    /**
+     * 企业名录分类
+     */
+    @ApiModelProperty(value = "企业名录分类")
+    @Excel(name = "企业名录分类")
+    private String enterpriseDirectory;
+
+    /**
+     * 开放开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "开放开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date startTime;
+
+    /**
+     * 开放结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "开放结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date endTime;
+
+    @Excel(name = "上传文件名称")
+    private String fileName;
+
+    /**
+     * 申报途径 0:系统申报;1:补录
+     */
+    @Excel(name = "申报途径 0:系统申报;1:补录")
+    private Long road;
+
+    /**
+     * 说明
+     */
+    @Excel(name = "说明")
+    @Size(max = 200, message = "说明的长度要小于 200")
+    private String notes;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BsmFundingInfo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BsmFundingInfo.java
new file mode 100644
index 0000000..e8cd9c2
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BsmFundingInfo.java
@@ -0,0 +1,110 @@
+package com.ruoyi.jjh.declaration.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+/**
+ * 资金信息对象 bsm_funding_info
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BsmFundingInfo extends BaseInfoEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 模板类型:1:项目落户奖补,2:做大做强奖补
+     */
+    @Excel(name = "模板类型:1:项目落户奖补,2:做大做强奖补")
+    private Integer type;
+
+    /**
+     * 对应模板id
+     */
+    @Excel(name = "对应模板id")
+    private Long templateId;
+
+    @ApiModelProperty(value = "详情id")
+    private Long detailId;
+
+    /**
+     * 营收年份
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "营收年份", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date revenueYear;
+
+    /**
+     * 营收
+     */
+    @Excel(name = "营收")
+    private Long revenue;
+
+    /**
+     * 税收年份
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "税收年份", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date taxationYear;
+
+    /**
+     * 税收
+     */
+    @Excel(name = "税收")
+    private Long taxation;
+
+    /**
+     * 预计营收年份
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "预计营收年份", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date expectedRevenueYear;
+
+    /**
+     * 预计营收
+     */
+    @Excel(name = "预计营收")
+    private Long expectedRevenue;
+
+    /**
+     * 预计税收年份
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "预计税收年份", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date expectedTaxationYear;
+
+    /**
+     * 预计税收
+     */
+    @Excel(name = "预计税收")
+    private Long expectedTaxation;
+
+    /**
+     * 是否删除:0,未删除;1,已删除
+     */
+    @Excel(name = "是否删除:0,未删除;1,已删除")
+    private Long isDeleted;
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("type", getType()).append("templateId", getTemplateId()).append("revenueYear", getRevenueYear()).append("revenue", getRevenue()).append("taxationYear", getTaxationYear()).append("taxation", getTaxation()).append("expectedRevenueYear", getExpectedRevenueYear()).append("expectedRevenue", getExpectedRevenue()).append("expectedTaxationYear", getExpectedTaxationYear()).append("expectedTaxation", getExpectedTaxation()).append("isDeleted", getIsDeleted()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/AppendixParamDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/AppendixParamDto.java
new file mode 100644
index 0000000..7817e63
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/AppendixParamDto.java
@@ -0,0 +1,29 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import lombok.Data;
+
+/**
+ * <p>
+ * 附件参数dto
+ * <p>
+ *
+ * @className: AppendixParamDto
+ * @author: emiya.xie
+ * @create: 2023-03-03 10:46
+ */
+@Data
+public class AppendixParamDto {
+
+    /**
+     * 附件id
+     */
+    private Long id;
+    /**
+     * 其他
+     */
+    private String name;
+    /**
+     * 文件名称
+     */
+    private String deliverablesName;
+}
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/ApprovalDeclarationRecordsQueryDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/ApprovalDeclarationRecordsQueryDto.java
new file mode 100644
index 0000000..5389f27
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/ApprovalDeclarationRecordsQueryDto.java
@@ -0,0 +1,56 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 审核申报记录查询
+ * <p>
+ *
+ * @className: ApprovalDeclarationRecordsQueryDto
+ * @author: emiya.xie
+ * @create: 2023-09-09 15:07
+ */
+@Data
+public class ApprovalDeclarationRecordsQueryDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "事项")
+    private String matter;
+
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目类型:也就是产品领域")
+    private Integer productArea;
+
+    @ApiModelProperty(value = "申报单位")
+    private String enterpriseName;
+
+    @ApiModelProperty(value = "扶持方式")
+    private Integer supportMethods;
+
+    @ApiModelProperty(value = "项目开始时间")
+    private Date startTime;
+
+    @ApiModelProperty(value = "项目结束时间")
+    private Date endTime;
+
+    @ApiModelProperty(value = "审核状态")
+    private Integer status;
+
+    @ApiModelProperty(value = "用户id")
+    private List<Long> userIds;
+
+    @ApiModelProperty(value = "审批人id")
+    private Long approvalById;
+
+    @ApiModelProperty(value = "审批状态集合")
+    private List<Integer> approvalStatusStr;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsApprovalInfoUpdateDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsApprovalInfoUpdateDto.java
new file mode 100644
index 0000000..f925a86
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsApprovalInfoUpdateDto.java
@@ -0,0 +1,43 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 审批记录信息对象 bms_approval_info
+ * 
+ * @author farben
+ * @date 2023-09-09
+ */
+@Data
+public class BmsApprovalInfoUpdateDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /** 主键id */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /** 申报记录id */
+    @Excel(name = "申报记录id")
+    private Long declarationRecordsId;
+
+    /** 审批状态(0=待审核.1=审批通过,2=审批驳回) */
+    @Excel(name = "审批状态(0=待审核.1=审批通过,2=审批驳回)")
+    private Integer approvalStatus;
+
+    /** 审批意见 */
+    @Excel(name = "审批意见")
+    private String approvalOpinions;
+
+    /** 审批附件 */
+    @Excel(name = "审批附件")
+    private String approvalAttachment;
+
+    @Excel(name = "排序")
+    private Integer sort;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBigStrongAwardAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBigStrongAwardAddDto.java
new file mode 100644
index 0000000..a9125ed
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBigStrongAwardAddDto.java
@@ -0,0 +1,44 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 做大做强奖详情对象 bms_big_strong_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsBigStrongAwardAddDto extends BmsEnterpriseBasicInfoAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 成立时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "成立时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date establishTime;
+
+    /** 是否获得园区其他经营奖励 */
+    @Excel(name = "是否获得园区其他经营奖励,0:是,1:否",readConverterExp = "0=是,1=否")
+    private int isGainRewards;
+
+    @Excel(name = "奖励说明")
+    private String rewardDescription;
+
+    @ApiModelProperty(value = "应收列表")
+    private List<BmsFundingDetailAddDto> fundingDetailList;
+
+    /** 企业近3年发展情况及未来发展计划 */
+    @Excel(name = "企业近3年发展情况及未来发展计划")
+    private String developmentPlan;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBigStrongAwardUpdateDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBigStrongAwardUpdateDto.java
new file mode 100644
index 0000000..c48054a
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBigStrongAwardUpdateDto.java
@@ -0,0 +1,38 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.jjh.declaration.entity.BmsBigStrongAward;
+import com.ruoyi.jjh.declaration.entity.BmsFundingDetail;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 做大做强奖详情对象 bms_big_strong_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsBigStrongAwardUpdateDto extends BmsBigStrongAward implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录id")
+    private Long declarationRecordsId;
+
+    @ApiModelProperty(value = "应收列表")
+    private List<BmsFundingDetail> fundingDetailList;
+
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "审批状态:0=草稿,1=初审中,2=复审中,3=专家评审中,4=市级评定中,5=评定通过,6=专家评审-拒绝,7=复审-拒绝,8=初审-拒绝,9=评定驳回")
+    private Long status;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBrandingAwardAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBrandingAwardAddDto.java
new file mode 100644
index 0000000..b96d8e5
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBrandingAwardAddDto.java
@@ -0,0 +1,34 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 品牌打造奖补对象 bms_branding_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsBrandingAwardAddDto extends BmsEnterpriseBasicInfoAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    /** 所获荣誉/所举办活动 */
+    @Excel(name = "所获荣誉/所举办活动")
+    private String honorsReceived;
+
+    /** 所属等级 */
+    @Excel(name = "所属等级")
+    private Long level;
+
+    /** 证明材料 */
+    @Excel(name = "证明材料")
+    private String evidence;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBrandingAwardUpdateDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBrandingAwardUpdateDto.java
new file mode 100644
index 0000000..ec9dbb7
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsBrandingAwardUpdateDto.java
@@ -0,0 +1,31 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.jjh.declaration.entity.BmsBrandingAward;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 品牌打造奖补对象 bms_branding_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsBrandingAwardUpdateDto extends BmsBrandingAward {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录id")
+    private Long declarationRecordsId;
+
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "审批状态:0=草稿,1=初审中,2=复审中,3=专家评审中,4=市级评定中,5=评定通过,6=专家评审-拒绝,7=复审-拒绝,8=初审-拒绝,9=评定驳回")
+    private Long status;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCarrierConstructionAwardAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCarrierConstructionAwardAddDto.java
new file mode 100644
index 0000000..e6c9ffd
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCarrierConstructionAwardAddDto.java
@@ -0,0 +1,45 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 载体建设奖补对象 bms_carrier_construction_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsCarrierConstructionAwardAddDto extends BmsEnterpriseBasicInfoAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 文体企业数量占比 */
+    @Excel(name = "文体企业数量占比")
+    private String quantityProportion;
+
+    /** 文体企业营收占比 */
+    @Excel(name = "文体企业营收占比")
+    private String revenueProportion;
+
+    /** 文体企业从业人员占比 */
+    @Excel(name = "文体企业从业人员占比")
+    private String personnelProportion;
+
+    /** 相关佐证材料 */
+    @Excel(name = "相关佐证材料")
+    private String supportingMaterials;
+
+    /** 项目工商登记许可 */
+    @Excel(name = "项目工商登记许可")
+    private String businessLicense;
+
+    /** 消防验收报告 */
+    @Excel(name = "消防验收报告")
+    private String fireReport;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCarrierConstructionAwardUpdateDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCarrierConstructionAwardUpdateDto.java
new file mode 100644
index 0000000..3ff45b2
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCarrierConstructionAwardUpdateDto.java
@@ -0,0 +1,29 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.declaration.entity.BmsCarrierConstructionAward;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 载体建设奖补对象 bms_carrier_construction_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsCarrierConstructionAwardUpdateDto extends BmsCarrierConstructionAward {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录id")
+    private Long declarationRecordsId;
+
+    @Excel(name = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "审批状态:0=草稿,1=初审中,2=复审中,3=专家评审中,4=市级评定中,5=评定通过,6=专家评审-拒绝,7=复审-拒绝,8=初审-拒绝,9=评定驳回")
+    private Long status;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCreditManagementAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCreditManagementAddDto.java
new file mode 100644
index 0000000..79c719d
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCreditManagementAddDto.java
@@ -0,0 +1,32 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 信用管理奖补对象 bms_credit_management
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsCreditManagementAddDto extends BmsEnterpriseBasicInfoAddDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /** 项目方案(包括项目基本情况介绍、项目投资情况以及实施进展、项目目标及取得的主要成效) */
+    @Excel(name = "项目方案")
+    private String projectPlan;
+
+    /** 资金使用说明(项目未完成的需提供,内容主要包括项目计划投资额,投资明细,目前已完成投资情况和后续投入计划等) */
+    @Excel(name = "资金使用说明")
+    private String usesFunds;
+
+    /** 项目专项审计报告(项目已完成的需提供) */
+    @Excel(name = "项目专项审计报告")
+    private String auditReport;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCreditManagementUpdateDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCreditManagementUpdateDto.java
new file mode 100644
index 0000000..4d59d1d
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsCreditManagementUpdateDto.java
@@ -0,0 +1,32 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.declaration.entity.BmsCreditManagement;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 信用管理奖补对象 bms_credit_management
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsCreditManagementUpdateDto extends BmsCreditManagement {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录id")
+    private Long declarationRecordsId;
+
+    @Excel(name = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "审批状态:0=草稿,1=初审中,2=复审中,3=专家评审中,4=市级评定中,5=评定通过,6=专家评审-拒绝,7=复审-拒绝,8=初审-拒绝,9=评定驳回")
+    private Long status;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsDeclarationRecordsAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsDeclarationRecordsAddDto.java
new file mode 100644
index 0000000..257204b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsDeclarationRecordsAddDto.java
@@ -0,0 +1,60 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 在线申报记录对象 bms_declaration_records
+ * 
+ * @author farben
+ * @date 2023-08-28
+ */
+@Data
+public class BmsDeclarationRecordsAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 项目名称 */
+    @ApiModelProperty(value = "项目名称")
+    @Excel(name = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目Id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "提交事项")
+    private Long matter;
+
+    /** 企业id */
+    @ApiModelProperty(value = "企业id")
+    private Long enterpriseId;
+
+    /** 年份 */
+    @ApiModelProperty(value = "年份")
+    @Excel(name = "年份")
+    private String year;
+
+    /** 模板id */
+    @ApiModelProperty(value = "模板id")
+    private Long templateId;
+
+    /** 申报模版类型 */
+    @ApiModelProperty(value = "申报模版类型")
+    private Long declarationTemplateType;
+
+    /** 详情id:对应详情id */
+    @ApiModelProperty(value = "详情id:对应详情id")
+    private Long detailId;
+
+    @ApiModelProperty(value = "添加的字段")
+    private List<BmsFieldInfoAddDto> fieldList;
+
+    @ApiModelProperty(value = "上传的文件")
+    private List<BmsFileInfoAddDto> fileList;
+
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsDeclarationRecordsDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsDeclarationRecordsDto.java
new file mode 100644
index 0000000..b72616f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsDeclarationRecordsDto.java
@@ -0,0 +1,49 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 在线申报列表VO
+ * <p>
+ *
+ * @className: BmsDeclarationRecordsDto
+ * @author: emiya.xie
+ * @create: 2023-08-28 17:54
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsDeclarationRecordsDto extends BmsDeclarationRecords {
+
+    @ApiModelProperty(value = "申报单位")
+    @Excel(name = "申报单位")
+    private String enterpriseName;
+
+    /** 级别 0:本级,1:省级 */
+    @ApiModelProperty(value = "级别 0:本级,1:省级")
+    @Excel(name = "级别", readConverterExp = "0=本级,1=省级")
+    private Long level;
+
+    /** 申报类型 0:/, 1:试点区域,2:龙头型,3:创新型 */
+    @ApiModelProperty(value = "申报类型 0:/, 1:试点区域,2:龙头型,3:创新型")
+    @Excel(name = "申报类型", readConverterExp = "0=/,1=试点区域,2=龙头型,3=创新型")
+    private Long type;
+
+    /** 责任单位 0:经发委:1:规建委:2:行审局:3:市监局 */
+    @ApiModelProperty(value = "责任单位 0:经发委:1:规建委:2:行审局:3:市监局")
+    @Excel(name = "责任单位", readConverterExp = "0=经发委,1=规建委,2=行审局,3=市监局")
+    private Long responsibilityUnit;
+
+    @ApiModelProperty(value = "模板名称")
+    private String templateName;
+
+    @ApiModelProperty(value = "审批状态")
+    @Excel(name = "审批状态",readConverterExp = "0=草稿,1=初审中,2=复审中,3=专家评审中,4=市级评定中,5=评定通过,6=专家评审-拒绝,7=复审-拒绝,8=初审-拒绝,9=评定驳回")
+    private List<Long> statusStr;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsEnterpriseBasicInfoAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsEnterpriseBasicInfoAddDto.java
new file mode 100644
index 0000000..d4bed3f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsEnterpriseBasicInfoAddDto.java
@@ -0,0 +1,61 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 企业基础信息对象 bms_enterprise_basic_info
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+public class BmsEnterpriseBasicInfoAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Excel(name = "企业统一信用代码")
+    @ApiModelProperty(value = "企业统一信用代码")
+    private String creditCode;
+
+    @Excel(name = "企业名称")
+    @ApiModelProperty(value = "企业名称")
+    private String enterpriseName;
+
+    @Excel(name = "联系人")
+    @ApiModelProperty(value = "联系人")
+    private String contacts;
+
+    @Excel(name = "联系人电话")
+    @ApiModelProperty(value = "联系人电话")
+    private String contactsNumber;
+
+    @Excel(name = "企业地址")
+    @ApiModelProperty(value = "企业地址")
+    private String address;
+
+    @ApiModelProperty(value = "在线申报模版id")
+    private int templateRecordId;
+
+    @ApiModelProperty(value = "申报时间")
+    private Date fillingTime;
+
+    @ApiModelProperty(value = "申报模版类型")
+    private int declarationTemplateType;
+
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "年份")
+    private String year;
+
+    @ApiModelProperty(value = "审批状态:0:草稿,1:初审中")
+    private Integer status;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFieldInfoAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFieldInfoAddDto.java
new file mode 100644
index 0000000..ba98cc5
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFieldInfoAddDto.java
@@ -0,0 +1,32 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 模板字段填写详情对象 bms_field_info
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@Data
+public class BmsFieldInfoAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 详情id */
+    @Excel(name = "详情id")
+    private Long detailId;
+
+    /** 字段名称 */
+    @Excel(name = "字段名称")
+    private String fieldName;
+
+    /** 字段说明 */
+    @Excel(name = "字段说明")
+    private String fieldResult;
+
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFileInfoAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFileInfoAddDto.java
new file mode 100644
index 0000000..a9e4172
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFileInfoAddDto.java
@@ -0,0 +1,35 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 文件存储说明详情对象 bms_file_info
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@Data
+public class BmsFileInfoAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 详情id */
+    @Excel(name = "详情id")
+    private Long detailId;
+
+    /** 文件名称 */
+    @Excel(name = "文件名称")
+    private String fileName;
+
+    /** 文件说明 */
+    @Excel(name = "文件说明")
+    private String fileDescription;
+
+    /** 文件地址 */
+    @Excel(name = "文件地址")
+    private String fileUrl;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFundingDetailAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFundingDetailAddDto.java
new file mode 100644
index 0000000..7df075f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFundingDetailAddDto.java
@@ -0,0 +1,45 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 资金信息详情对象 bms_funding_detail
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@Data
+public class BmsFundingDetailAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 模板类型:1:项目落户奖补,2:做大做强奖补 */
+    @Excel(name = "模板类型:1:项目落户奖补,2:做大做强奖补")
+    private Integer type;
+
+    /** 对应模板id */
+    @Excel(name = "对应模板id")
+    private Long templateRecordId;
+
+    /** 详情id */
+    @Excel(name = "详情id")
+    private Long detailId;
+
+    private String vModel;
+
+    /** 年份 */
+    @Excel(name = "年份")
+    private String year;
+
+    /** 说明 */
+    @Excel(name = "说明")
+    private String illustrate;
+
+    /** 金额 */
+    @Excel(name = "金额")
+    private Long amount;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFundingDetailUpdateDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFundingDetailUpdateDto.java
new file mode 100644
index 0000000..7f599fe
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsFundingDetailUpdateDto.java
@@ -0,0 +1,47 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 资金信息详情对象 bms_funding_detail
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@Data
+public class BmsFundingDetailUpdateDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "资金信息详情id")
+    private Long id;
+
+    /** 模板类型:1:项目落户奖补,2:做大做强奖补 */
+    @Excel(name = "模板类型:1:项目落户奖补,2:做大做强奖补")
+    private Integer type;
+
+    /** 对应模板id */
+    @Excel(name = "对应模板id")
+    private Long templateId;
+
+    /** 详情id */
+    @Excel(name = "详情id")
+    private Long detailId;
+
+    /** 年份 */
+    @Excel(name = "年份")
+    private String year;
+
+    /** 说明 */
+    @Excel(name = "说明")
+    private String illustrate;
+
+    /** 金额 */
+    @Excel(name = "金额")
+    private Long amount;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIndustrialInternetAwardAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIndustrialInternetAwardAddDto.java
new file mode 100644
index 0000000..e90d644
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIndustrialInternetAwardAddDto.java
@@ -0,0 +1,30 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 5G+工业互联网奖补对象 bms_industrial_internet_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsIndustrialInternetAwardAddDto extends BmsEnterpriseBasicInfoAddDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    /** 荣誉名称 */
+    @Excel(name = "荣誉名称")
+    private String honoraryName;
+
+    /** 证明材料 */
+    @Excel(name = "证明材料")
+    private String material;
+
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIndustrialInternetAwardUpdateDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIndustrialInternetAwardUpdateDto.java
new file mode 100644
index 0000000..2064a9b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIndustrialInternetAwardUpdateDto.java
@@ -0,0 +1,33 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.declaration.entity.BmsIndustrialInternetAward;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 5G+工业互联网奖补对象 bms_industrial_internet_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsIndustrialInternetAwardUpdateDto extends BmsIndustrialInternetAward {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录id")
+    private Long declarationRecordsId;
+
+    @Excel(name = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "审批状态:0=草稿,1=初审中,2=复审中,3=专家评审中,4=市级评定中,5=评定通过,6=专家评审-拒绝,7=复审-拒绝,8=初审-拒绝,9=评定驳回")
+    private Long status;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIntegrationIndustriesAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIntegrationIndustriesAddDto.java
new file mode 100644
index 0000000..de726dc
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIntegrationIndustriesAddDto.java
@@ -0,0 +1,60 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 两业融合奖补对象 bms_integration_industries
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsIntegrationIndustriesAddDto extends BmsEnterpriseBasicInfoAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Excel(name = "申报类型",readConverterExp = "1=两业融合示范企业,2=制造业企业设立财务独立核算的制造服务业职能部门,3=制造业企业剥离服务业务成立独立的法人")
+    private Integer declarationType;
+
+    /** 证明材料 */
+    @Excel(name = "证明材料")
+    private String evidence;
+
+    /** 营业执照 */
+    @Excel(name = "营业执照")
+    private String businessLicense;
+
+    /** 完税证明 */
+    @Excel(name = "完税证明")
+    private String taxPaymentCertificate;
+
+    /** 审计报告 */
+    @Excel(name = "审计报告")
+    private String auditReport;
+
+    /** 股权架构图 */
+    @Excel(name = "股权架构图")
+    private String equityStructureChart;
+
+    /** 项目申报报告(含企业基本情况和项目基本情况) */
+    @Excel(name = "项目申报报告")
+    private String declarationReport;
+
+    /** 独立核算相关证明 */
+    @Excel(name = "独立核算相关证明")
+    private String independentAccounting;
+
+    /** 验资报告 */
+    @Excel(name = "验资报告")
+    private String capitalVerificationReport;
+
+    /** 证明材料 */
+    @Excel(name = "证明材料")
+    private String otherEvidence;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIntegrationIndustriesUpdateDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIntegrationIndustriesUpdateDto.java
new file mode 100644
index 0000000..53b2724
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsIntegrationIndustriesUpdateDto.java
@@ -0,0 +1,32 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.jjh.declaration.entity.BmsIntegrationIndustries;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 两业融合奖补对象 bms_integration_industries
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsIntegrationIndustriesUpdateDto extends BmsIntegrationIndustries {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录id")
+    private Long declarationRecordsId;
+
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "审批状态:0=草稿,1=初审中,2=复审中,3=专家评审中,4=市级评定中,5=评定通过,6=专家评审-拒绝,7=复审-拒绝,8=初审-拒绝,9=评定驳回")
+    private Long status;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsLogisticsDevelopmentAwardAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsLogisticsDevelopmentAwardAddDto.java
new file mode 100644
index 0000000..762e219
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsLogisticsDevelopmentAwardAddDto.java
@@ -0,0 +1,37 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 物流发展奖补对象 bms_logistics_development_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsLogisticsDevelopmentAwardAddDto  extends BmsEnterpriseBasicInfoAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 荣誉证明文件 */
+    @Excel(name = "荣誉证明文件")
+    private String honorCertificate;
+
+    /** 平台名称 */
+    @Excel(name = "平台名称")
+    private String platformName;
+
+    /** 企业投资项目备案通知书或核准批复文件 */
+    @Excel(name = "企业投资项目备案通知书或核准批复文件")
+    private String filingNotice;
+
+    /** 会计师事务所出具的企业财务报表审计报告 */
+    @Excel(name = "会计师事务所出具的企业财务报表审计报告")
+    private String auditReport;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsLogisticsDevelopmentAwardUpdateDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsLogisticsDevelopmentAwardUpdateDto.java
new file mode 100644
index 0000000..6c169d8
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsLogisticsDevelopmentAwardUpdateDto.java
@@ -0,0 +1,31 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.jjh.declaration.entity.BmsLogisticsDevelopmentAward;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 物流发展奖补对象 bms_logistics_development_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsLogisticsDevelopmentAwardUpdateDto extends BmsLogisticsDevelopmentAward {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录id")
+    private Long declarationRecordsId;
+
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "审批状态:0=草稿,1=初审中,2=复审中,3=专家评审中,4=市级评定中,5=评定通过,6=专家评审-拒绝,7=复审-拒绝,8=初审-拒绝,9=评定驳回")
+    private Long status;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsManufacturingServicesAwardAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsManufacturingServicesAwardAddDto.java
new file mode 100644
index 0000000..0ac496c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsManufacturingServicesAwardAddDto.java
@@ -0,0 +1,38 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 制造服务业有效投入奖补对象 bms_manufacturing_services_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsManufacturingServicesAwardAddDto extends BmsEnterpriseBasicInfoAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 企业投资项目备案通知书或核准批复文件 */
+    @Excel(name = "企业投资项目备案通知书或核准批复文件")
+    private String filingNotice;
+
+    /** 购置设备发票清单及发票扫描件 */
+    @Excel(name = "购置设备发票清单及发票扫描件")
+    private String invoice;
+
+    /** 会计师事务所出具的企业申报项目购置设备情况的专项审计报告 */
+    @Excel(name = "会计师事务所出具的企业申报项目购置设备情况的专项审计报告")
+    private String auditReport;
+
+    /** 会计师事务所出具的企业财务报表审计报告 */
+    @Excel(name = "会计师事务所出具的企业财务报表审计报告")
+    private String financialStatements;
+
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsManufacturingServicesAwardUpdateDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsManufacturingServicesAwardUpdateDto.java
new file mode 100644
index 0000000..7c1c469
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsManufacturingServicesAwardUpdateDto.java
@@ -0,0 +1,31 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.declaration.entity.BmsManufacturingServicesAward;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 制造服务业有效投入奖补对象 bms_manufacturing_services_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsManufacturingServicesAwardUpdateDto extends BmsManufacturingServicesAward {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录id")
+    private Long declarationRecordsId;
+
+    @Excel(name = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "审批状态:0=草稿,1=初审中,2=复审中,3=专家评审中,4=市级评定中,5=评定通过,6=专家评审-拒绝,7=复审-拒绝,8=初审-拒绝,9=评定驳回")
+    private Long status;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsMunicipalBureauReviewQueryDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsMunicipalBureauReviewQueryDto.java
new file mode 100644
index 0000000..693176a
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsMunicipalBureauReviewQueryDto.java
@@ -0,0 +1,50 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 市局评审 查询
+ * <p>
+ *
+ * @className: BmsDeclarationRecordsQueryVo
+ * @author: emiya.xie
+ * @create: 2023-08-28 17:54
+ */
+@Data
+public class BmsMunicipalBureauReviewQueryDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "id")
+    @Excel(name="对应id")
+    private Long id;
+
+    @ApiModelProperty(value = "统一信用代码")
+    @Excel(name = "统一信用代码")
+    private String creditCode;
+
+    @ApiModelProperty(value = "企业名称")
+    @Excel(name = "企业名称")
+    private String enterpriseName;
+
+    @ApiModelProperty(value = "申报类型")
+    @Excel(name = "申报类型")
+    private String projectName;
+
+    @ApiModelProperty(value = "年份")
+    @Excel(name = "年份")
+    private String year;
+
+    @ApiModelProperty(value = "市级评定结果,0:通过,1:不通过")
+    private Integer result;
+
+    @ApiModelProperty(value = "市级评定结果意见")
+    private String opinion;
+
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsPlatformConstructionAwardAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsPlatformConstructionAwardAddDto.java
new file mode 100644
index 0000000..ce4b7b9
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsPlatformConstructionAwardAddDto.java
@@ -0,0 +1,29 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 平台建设奖补对象 bms_platform_construction_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsPlatformConstructionAwardAddDto extends BmsEnterpriseBasicInfoAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 平台(项目)名称 */
+    @Excel(name = "平台(项目)名称")
+    private String platformName;
+
+    /** 合作协议 */
+    @Excel(name = "合作协议")
+    private String agreement;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsPlatformConstructionAwardUpdateDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsPlatformConstructionAwardUpdateDto.java
new file mode 100644
index 0000000..af8bab1
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsPlatformConstructionAwardUpdateDto.java
@@ -0,0 +1,31 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.jjh.declaration.entity.BmsPlatformConstructionAward;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 平台建设奖补对象 bms_platform_construction_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsPlatformConstructionAwardUpdateDto extends BmsPlatformConstructionAward {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录id")
+    private Long declarationRecordsId;
+
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "审批状态:0=草稿,1=初审中,2=复审中,3=专家评审中,4=市级评定中,5=评定通过,6=专家评审-拒绝,7=复审-拒绝,8=初审-拒绝,9=评定驳回")
+    private Long status;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsProjectSettlementAwardAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsProjectSettlementAwardAddDto.java
new file mode 100644
index 0000000..99d3b4d
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsProjectSettlementAwardAddDto.java
@@ -0,0 +1,53 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 项目落户奖补对象 bms_project_settlement_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsProjectSettlementAwardAddDto extends BmsEnterpriseBasicInfoAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "申报单位成立时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "申报单位成立时间")
+    private Date establishTime;
+
+    @Excel(name = "截至目前员工人数")
+    @ApiModelProperty(value = "截至目前员工人数")
+    private Long employeeNum;
+
+    @ApiModelProperty(value = "应收列表")
+    private List<BmsFundingDetailAddDto> fundingDetailList;
+
+    @Excel(name = "招商协议")
+    @ApiModelProperty(value = "招商协议")
+    private String agreement;
+
+    @Excel(name = "验资报告")
+    @ApiModelProperty(value = "验资报告")
+    private String report;
+
+    @Excel(name = "其他材料")
+    @ApiModelProperty(value = "其他材料")
+    private String otherMaterials;
+
+    @Excel(name = "营业执照")
+    @ApiModelProperty(value = "营业执照")
+    private String businessLicense;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsProjectSettlementAwardUpdateDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsProjectSettlementAwardUpdateDto.java
new file mode 100644
index 0000000..add5903
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsProjectSettlementAwardUpdateDto.java
@@ -0,0 +1,39 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.jjh.declaration.entity.BmsFundingDetail;
+import com.ruoyi.jjh.declaration.entity.BmsProjectSettlementAward;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 项目落户奖补对象 bms_project_settlement_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsProjectSettlementAwardUpdateDto extends BmsProjectSettlementAward implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录id")
+    private Long declarationRecordsId;
+
+    @ApiModelProperty(value = "应收列表")
+    private List<BmsFundingDetail> fundingDetailList;
+
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "审批状态:0=草稿,1=初审中,2=复审中,3=专家评审中,4=市级评定中,5=评定通过,6=专家评审-拒绝,7=复审-拒绝,8=初审-拒绝,9=评定驳回")
+    private Long status;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsSceneOpeningAwardAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsSceneOpeningAwardAddDto.java
new file mode 100644
index 0000000..aefe2fa
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsSceneOpeningAwardAddDto.java
@@ -0,0 +1,33 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 场景开放奖补对象 bms_scene_opening_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsSceneOpeningAwardAddDto extends BmsEnterpriseBasicInfoAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 项目名称 */
+    @Excel(name = "项目名称")
+    private String projectName;
+
+    /** 所属类型 */
+    @Excel(name = "所属类型")
+    private Long type;
+
+    /** 公示、发文证明、专家评分表 */
+    @Excel(name = "公示、发文证明、专家评分表")
+    private String material;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsSceneOpeningAwardUpdateDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsSceneOpeningAwardUpdateDto.java
new file mode 100644
index 0000000..0f5d23b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsSceneOpeningAwardUpdateDto.java
@@ -0,0 +1,28 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.jjh.declaration.entity.BmsSceneOpeningAward;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 场景开放奖补对象 bms_scene_opening_award
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsSceneOpeningAwardUpdateDto extends BmsSceneOpeningAward {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录id")
+    private Long declarationRecordsId;
+
+    @ApiModelProperty(value = "审批状态:0=草稿,1=初审中,2=复审中,3=专家评审中,4=市级评定中,5=评定通过,6=专家评审-拒绝,7=复审-拒绝,8=初审-拒绝,9=评定驳回")
+    private Long status;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateInfoAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateInfoAddDto.java
new file mode 100644
index 0000000..1a8adf9
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateInfoAddDto.java
@@ -0,0 +1,27 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseDirectory;
+import com.ruoyi.jjh.declaration.entity.BmsTemplateInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 申报模板信息对象 bms_template_info
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsTemplateInfoAddDto extends BmsTemplateInfo {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "企业名录")
+    private List<BmsEnterpriseDirectory> enterpriseDirectoryList;
+
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateQueryDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateQueryDto.java
new file mode 100644
index 0000000..e94af88
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateQueryDto.java
@@ -0,0 +1,31 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 申报模板信息对象 bms_template_info
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+public class BmsTemplateQueryDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "企业id")
+    private Long enterpriseId;
+
+    @ApiModelProperty(value = "企业信用统一信用代码")
+    private String creditCode;
+
+    @ApiModelProperty(value = "责任单位 0:经发委:1:规建委:2:行审局:3:市监局")
+    @Excel(name = "责任单位",readConverterExp = "0=经发委,1=规建委,2=行审局,3=市监局")
+    private Long responsibilityUnit;
+
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordAddDto.java
new file mode 100644
index 0000000..cbed95a
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordAddDto.java
@@ -0,0 +1,25 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseDirectory;
+import com.ruoyi.jjh.declaration.entity.BmsTemplateRecord;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 在线模板对象 bms_template_record
+ * 
+ * @author farben
+ * @date 2023-09-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsTemplateRecordAddDto extends BmsTemplateRecord {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "企业名录")
+    private List<BmsEnterpriseDirectory> enterpriseDirectoryList;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordQueryDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordQueryDto.java
new file mode 100644
index 0000000..e59429b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordQueryDto.java
@@ -0,0 +1,52 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 申报模板信息对象 bms_template_info
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+public class BmsTemplateRecordQueryDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "企业名录")
+    private String enterpriseDirectory;
+
+    @ApiModelProperty(value = "模板id")
+    private Long templateId;
+
+    @ApiModelProperty(value = "级别 0:本级,1:省级")
+    @Excel(name = "级别 ",readConverterExp = "0=本级,1=省级")
+    private Integer level;
+
+    @ApiModelProperty(value = "申报途径,0:系统申报,1:补录")
+    @Excel(name = "申报途径",readConverterExp = "0=系统申报,1=补录")
+    private Long road;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "开放开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date startTime;
+
+    /** 开放结束时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "开放结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date endTime;
+
+    @ApiModelProperty(value = "责任单位 0:经发委:1:规建委:2:行审局:3:市监局")
+    @Excel(name = "责任单位",readConverterExp = "0=经发委,1=规建委,2=行审局,3=市监局")
+    private Long responsibilityUnit;
+
+    @ApiModelProperty(value = "模板名称")
+    private String templateName;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordUpdateDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordUpdateDto.java
new file mode 100644
index 0000000..45b4cb1
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordUpdateDto.java
@@ -0,0 +1,27 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseDirectory;
+import com.ruoyi.jjh.declaration.entity.BmsTemplateRecord;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+
+/**
+ * 在线模板对象 bms_template_record
+ * 
+ * @author farben
+ * @date 2023-09-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsTemplateRecordUpdateDto extends BmsTemplateRecord {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "企业名录")
+    private List<BmsEnterpriseDirectory> enterpriseDirectoryList;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BsmFundingInfoAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BsmFundingInfoAddDto.java
new file mode 100644
index 0000000..f84afae
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BsmFundingInfoAddDto.java
@@ -0,0 +1,69 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import com.ruoyi.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 资金信息对象 bsm_funding_info
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+public class BsmFundingInfoAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 模板类型:0:项目落户奖补,1:做大做强奖补 */
+    @Excel(name = "模板类型:1:项目落户奖补,2:做大做强奖补")
+    private Long type;
+
+    /** 对应模板id */
+    @Excel(name = "对应模板id")
+    private Long templateId;
+
+    @ApiModelProperty(value = "详情id")
+    private Long detailId;
+
+    /** 营收年份 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "营收年份", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date revenueYear;
+
+    /** 营收 */
+    @Excel(name = "营收")
+    private Long revenue;
+
+    /** 税收年份 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "税收年份", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date taxationYear;
+
+    /** 税收 */
+    @Excel(name = "税收")
+    private Long taxation;
+
+    /** 预计营收年份 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "预计营收年份", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date expectedRevenueYear;
+
+    /** 预计营收 */
+    @Excel(name = "预计营收")
+    private Long expectedRevenue;
+
+    /** 预计税收年份 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "预计税收年份", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date expectedTaxationYear;
+
+    /** 预计税收 */
+    @Excel(name = "预计税收")
+    private Long expectedTaxation;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/MunicipalReviewDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/MunicipalReviewDto.java
new file mode 100644
index 0000000..22a0167
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/MunicipalReviewDto.java
@@ -0,0 +1,29 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 市级评定Dto
+ * <p>
+ *
+ * @className: MunicipalReviewInfoDto
+ * @author: emiya.xie
+ * @create: 2023-09-13 16:30
+ */
+@Data
+public class MunicipalReviewDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "市级评定信息-old")
+    private List<MunicipalReviewInfoDto> list;
+
+    @ApiModelProperty(value = "市级评定信息-new")
+    private List<BmsMunicipalBureauReviewQueryDto> reviewList;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/MunicipalReviewInfoDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/MunicipalReviewInfoDto.java
new file mode 100644
index 0000000..b646787
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/MunicipalReviewInfoDto.java
@@ -0,0 +1,46 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 市级评定
+ * <p>
+ *
+ * @className: MunicipalReviewInfoDto
+ * @author: emiya.xie
+ * @create: 2023-09-13 16:30
+ */
+@Data
+public class MunicipalReviewInfoDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录id")
+    private Long declarationId;
+
+    @ApiModelProperty(value = "企业id")
+    private Long enterpriseId;
+
+    @ApiModelProperty(value = "企业名称")
+    private String enterpriseName;
+
+    @ApiModelProperty(value = "企业统一信用代码")
+    private String creditCode;
+
+    @ApiModelProperty(value = "申报类型说明")
+    private String declarationTypeStr;
+
+    @ApiModelProperty(value = "年份")
+    private String year;
+
+    @ApiModelProperty(value = "市级评定结果")
+    private String result;
+
+    @ApiModelProperty(value = "结果")
+    private Long status;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/OpenInterfaceApplyAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/OpenInterfaceApplyAddDto.java
new file mode 100644
index 0000000..1f11cc6
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/OpenInterfaceApplyAddDto.java
@@ -0,0 +1,57 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 申请记录信息新增-开放
+ * <p>
+ *
+ * @className: OpenInterfaceApplyAddDto
+ * @author: emiya.xie
+ * @create: 2023-09-12 14:42
+ */
+@Data
+public class OpenInterfaceApplyAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "申报模版类型")
+    private Integer declarationTemplateType;
+
+    @ApiModelProperty(value = "项目落户奖补新增Dto")
+    private BmsProjectSettlementAwardAddDto bmsProjectSettlementAwardAddDto;
+
+    @ApiModelProperty(value = "做大做强奖补新增Dto")
+    private BmsBigStrongAwardAddDto bmsBigStrongAwardAddDto;
+
+    @ApiModelProperty(value = "载体建设奖补新增Dto")
+    private BmsCarrierConstructionAwardAddDto bmsCarrierConstructionAwardAddDto;
+
+    @ApiModelProperty(value = "台建设奖补新增Dto")
+    private BmsPlatformConstructionAwardAddDto bmsPlatformConstructionAwardAddDto;
+
+    @ApiModelProperty(value = "品牌打造奖补新增Dto")
+    private BmsBrandingAwardAddDto bmsBrandingAwardAddDto;
+
+    @ApiModelProperty(value = "场景开放奖补新增Dto")
+    private BmsSceneOpeningAwardAddDto bmsSceneOpeningAwardAddDto;
+
+    @ApiModelProperty(value = "信用管理奖补新增Dto")
+    private BmsCreditManagementAddDto bmsCreditManagementAddDto;
+
+    @ApiModelProperty(value = "5G+工业互联网奖补新增Dto")
+    private BmsIndustrialInternetAwardAddDto bmsIndustrialInternetAwardAddDto;
+
+    @ApiModelProperty(value = "制造服务业有效投入奖补新增Dto")
+    private BmsManufacturingServicesAwardAddDto bmsManufacturingServicesAwardAddDto;
+
+    @ApiModelProperty(value = "物流发展奖补新增Dto")
+    private BmsLogisticsDevelopmentAwardAddDto bmsLogisticsDevelopmentAwardAddDto;
+
+    @ApiModelProperty(value = "两业融合奖补新增Dto")
+    private BmsIntegrationIndustriesAddDto bmsIntegrationIndustriesAddDto;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/UploadDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/UploadDto.java
new file mode 100644
index 0000000..4aaec09
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/UploadDto.java
@@ -0,0 +1,20 @@
+package com.ruoyi.jjh.declaration.entity.dto;
+
+import lombok.Data;
+
+/**
+ * <p>
+ * 上传内容
+ * <p>
+ *
+ * @className: UploadDto
+ * @author: emiya.xie
+ * @create: 2023-03-01 09:53
+ */
+@Data
+public class UploadDto {
+
+    private String name;
+
+    private String url;
+}
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/ApprovalDeclarationRecordsQueryVo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/ApprovalDeclarationRecordsQueryVo.java
new file mode 100644
index 0000000..27d938c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/ApprovalDeclarationRecordsQueryVo.java
@@ -0,0 +1,69 @@
+package com.ruoyi.jjh.declaration.entity.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 审核申报记录查询
+ * <p>
+ *
+ * @className: ApprovalDeclarationRecordsQueryDto
+ * @author: emiya.xie
+ * @create: 2023-09-09 15:07
+ */
+@Data
+public class ApprovalDeclarationRecordsQueryVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    @ApiModelProperty(value = "审批状态(0=待审核.1=审批通过,2=审批驳回)")
+    private Integer approvalStatus;
+
+    @ApiModelProperty(value = "事项")
+    private String matter;
+
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目类型:也就是产品领域")
+    private Integer productArea;
+
+    @ApiModelProperty(value = "申报单位")
+    private String enterpriseName;
+
+    @ApiModelProperty(value = "扶持方式")
+    private Integer supportMethods;
+
+    @ApiModelProperty(value = "申请时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "项目开始时间")
+    private Date startTime;
+
+    @ApiModelProperty(value = "项目结束时间")
+    private Date endTime;
+
+    @ApiModelProperty(value = "审核状态")
+    private Integer status;
+
+    @ApiModelProperty(value = "申报记录模板id")
+    private Long templateRecordId;
+
+    @ApiModelProperty(value = "申报记录模板id")
+    private Long templateId;
+
+    @ApiModelProperty(value = "记录id")
+    private Long declarationRecordsId;
+
+    @ApiModelProperty(value = "详情id")
+    private Long detailId;
+
+    @ApiModelProperty(value = "审批时间")
+    private Date approvalTime;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsApprovalInfoQueryVo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsApprovalInfoQueryVo.java
new file mode 100644
index 0000000..2c0a0a0
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsApprovalInfoQueryVo.java
@@ -0,0 +1,58 @@
+package com.ruoyi.jjh.declaration.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 审批记录信息对象 bms_approval_info
+ * 
+ * @author farben
+ * @date 2023-09-09
+ */
+@Data
+public class BmsApprovalInfoQueryVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /** 主键id */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @Excel(name = "默认审批人id")
+    private Long approvalById;
+
+    @Excel(name = "默认审批人")
+    private String approvalByName;
+
+    /** 审批状态(0=待审核.1=审批通过,2=审批驳回) */
+    @Excel(name = "审批状态(0=待审核.1=审批通过,2=审批驳回)")
+    private Integer approvalStatus;
+
+    /** 审批意见 */
+    @Excel(name = "审批意见")
+    private String approvalOpinions;
+
+    /** 审批附件 */
+    @Excel(name = "审批附件")
+    private String approvalAttachment;
+
+    /** 是否可审核(0=是,1=否,2=结束) */
+    @Excel(name = "是否可审核(0=是,1=否,2=结束)")
+    private Integer isReview;
+
+    @Excel(name = "是否为拒绝前数据,0:否,1:是")
+    private Integer isBeforeData;
+
+    /** 排序 */
+    @Excel(name = "排序")
+    private Integer sort;
+
+    @Excel(name = "审批时间")
+    private String approvalTime;
+
+
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsBigStrongAwardQueryVo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsBigStrongAwardQueryVo.java
new file mode 100644
index 0000000..8e52ed0
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsBigStrongAwardQueryVo.java
@@ -0,0 +1,26 @@
+package com.ruoyi.jjh.declaration.entity.vo;
+
+import com.ruoyi.jjh.declaration.entity.BmsBigStrongAward;
+import com.ruoyi.jjh.declaration.entity.BmsFundingDetail;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+
+/**
+ * 做大做强奖详情对象 bms_big_strong_award
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsBigStrongAwardQueryVo extends BmsBigStrongAward {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "应收列表")
+    private List<BmsFundingDetail> fundingDetailList;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsDeclarationRecordsQueryVo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsDeclarationRecordsQueryVo.java
new file mode 100644
index 0000000..37497bf
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsDeclarationRecordsQueryVo.java
@@ -0,0 +1,89 @@
+package com.ruoyi.jjh.declaration.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 在线申报列表VO
+ * <p>
+ *
+ * @className: BmsDeclarationRecordsQueryVo
+ * @author: emiya.xie
+ * @create: 2023-08-28 17:54
+ */
+@Data
+public class BmsDeclarationRecordsQueryVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "项目名称")
+    @Excel(name = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "申报单位")
+    @Excel(name = "申报单位")
+    private String enterpriseName;
+
+    @ApiModelProperty(value = "级别 0:本级,1:省级")
+    @Excel(name = "级别", readConverterExp = "0=本级,1=省级")
+    private Long level;
+
+    @ApiModelProperty(value = "年份")
+    @Excel(name = "年份")
+    private String year;
+
+    @ApiModelProperty(value = "申报类型 0:/, 1:试点区域,2:龙头型,3:创新型")
+    @Excel(name = "申报类型", readConverterExp = "0=/,1=试点区域,2=龙头型,3=创新型")
+    private Long type;
+
+    @ApiModelProperty(value = "申报途径 0:系统申报;1:补录")
+    @Excel(name = "申报途径", readConverterExp = "0=系统申报,1=补录")
+    private Integer road;
+
+    @ApiModelProperty(value = "责任单位 0:经发委:1:规建委:2:行审局:3:市监局")
+    @Excel(name = "责任单位", readConverterExp = "0=经发委,1=规建委,2=行审局,3=市监局")
+    private Long responsibilityUnit;
+
+    @ApiModelProperty(value = "申报表单")
+    @Excel(name = "申报表单", readConverterExp = "1=项目落户奖补企业申报模版,2=做大做强奖补企业申报模版,3=载体建设奖补企业申报模版" +
+            ",4=平台建设奖补企业申报模版,5=品牌打造奖补企业申报模版,6=场景开放奖补企业申报模版,7=信用管理奖补企业申报模版" +
+            ",8=5G+工业互联网奖补企业申报模版,9=制造服务业有效投入奖补企业申报模版,10=物流发展奖补企业申报模版")
+    private Long declarationTemplateType;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "申报时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "企业id")
+    private Long enterpriseId;
+
+    @ApiModelProperty(value = "申报模板id")
+    private Long templateRecordId;
+
+    @ApiModelProperty(value = "申报模板id")
+    private Long templateId;
+
+    @ApiModelProperty(value = "详情id:对应详情id")
+    private Long detailId;
+
+    @ApiModelProperty(value = "审批状态")
+    @Excel(name = "审批状态", readConverterExp = "0=草稿,1=初审中,2=复审中,3=专家评审中,4=市级评定中,5=评定通过,6=专家评审-拒绝,7=复审-拒绝,8=初审-拒绝")
+    private Long status;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsMunicipalBureauReviewQueryVo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsMunicipalBureauReviewQueryVo.java
new file mode 100644
index 0000000..81636b8
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsMunicipalBureauReviewQueryVo.java
@@ -0,0 +1,51 @@
+package com.ruoyi.jjh.declaration.entity.vo;
+
+import com.ruoyi.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 市局评审 查询
+ * <p>
+ *
+ * @className: BmsDeclarationRecordsQueryVo
+ * @author: emiya.xie
+ * @create: 2023-08-28 17:54
+ */
+@Data
+public class BmsMunicipalBureauReviewQueryVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "id")
+    @Excel(name = "对应id")
+    private Long id;
+
+    @ApiModelProperty(value = "统一信用代码")
+    @Excel(name = "统一信用代码")
+    private String creditCode;
+
+    @ApiModelProperty(value = "企业名称")
+    @Excel(name = "企业名称")
+    private String enterpriseName;
+
+    @ApiModelProperty(value = "申报类型")
+    @Excel(name = "申报类型")
+    private String projectName;
+
+    @ApiModelProperty(value = "年份")
+    @Excel(name = "年份")
+    private String year;
+
+    @ApiModelProperty(value = "市级评定结果,0:通过,1:不通过")
+    @Excel(name = "市级评定结果,0:通过,1:不通过")
+    private Integer result;
+
+    @ApiModelProperty(value = "市级评定结果意见")
+    @Excel(name = "市级评定结果意见")
+    private String opinion;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsProjectSettlementAwardQueryVo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsProjectSettlementAwardQueryVo.java
new file mode 100644
index 0000000..7c9746c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsProjectSettlementAwardQueryVo.java
@@ -0,0 +1,26 @@
+package com.ruoyi.jjh.declaration.entity.vo;
+
+import com.ruoyi.jjh.declaration.entity.BmsFundingDetail;
+import com.ruoyi.jjh.declaration.entity.BmsProjectSettlementAward;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+
+/**
+ * 项目落户奖补对象 bms_project_settlement_award
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsProjectSettlementAwardQueryVo extends BmsProjectSettlementAward {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "应收列表")
+    private List<BmsFundingDetail> fundingDetailList;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsProjectSettlementAwardVo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsProjectSettlementAwardVo.java
new file mode 100644
index 0000000..907c9ba
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsProjectSettlementAwardVo.java
@@ -0,0 +1,67 @@
+package com.ruoyi.jjh.declaration.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.declaration.entity.dto.BmsEnterpriseBasicInfoAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsFundingDetailAddDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 项目落户奖补对象 bms_project_settlement_award
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsProjectSettlementAwardVo extends BmsEnterpriseBasicInfoAddDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录id")
+    private Long id;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "申报单位成立时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "申报单位成立时间")
+    private Date establishTime;
+
+    @Excel(name = "截至目前员工人数")
+    @ApiModelProperty(value = "截至目前员工人数")
+    private Long employeeNum;
+
+    @ApiModelProperty(value = "应收列表")
+    private List<BmsFundingDetailAddDto> fundingDetailList;
+
+    @Excel(name = "招商协议")
+    @ApiModelProperty(value = "招商协议")
+    private String agreement;
+
+    @Excel(name = "验资报告")
+    @ApiModelProperty(value = "验资报告")
+    private String report;
+
+    @Excel(name = "其他材料")
+    @ApiModelProperty(value = "其他材料")
+    private String otherMaterials;
+
+    @Excel(name = "营业执照")
+    @ApiModelProperty(value = "营业执照")
+    private String businessLicense;
+
+    @ApiModelProperty(value = "创建者")
+    private String createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsTemplateInfoQueryVo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsTemplateInfoQueryVo.java
new file mode 100644
index 0000000..c4337cb
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsTemplateInfoQueryVo.java
@@ -0,0 +1,23 @@
+package com.ruoyi.jjh.declaration.entity.vo;
+
+import com.ruoyi.jjh.declaration.entity.BmsTemplateInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 申报模板信息对象 bms_template_info
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsTemplateInfoQueryVo extends BmsTemplateInfo {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "创建人")
+    private String createByName;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsTemplateRecordQueryVo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsTemplateRecordQueryVo.java
new file mode 100644
index 0000000..c4fca42
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsTemplateRecordQueryVo.java
@@ -0,0 +1,69 @@
+package com.ruoyi.jjh.declaration.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 申报模板信息对象 bms_template_info
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+@Data
+public class BmsTemplateRecordQueryVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "企业项目名录id")
+    private Long templateRecordId;
+
+    @ApiModelProperty(value = "企业名录")
+    private String enterpriseDirectory;
+
+    @ApiModelProperty(value = "模板类型")
+    private String templateName;
+
+    @ApiModelProperty(value = "模板id")
+    private Long templateId;
+
+    @ApiModelProperty(value = "级别 0:本级,1:省级")
+    @Excel(name = "级别 ", readConverterExp = "0=本级,1=省级")
+    private int level;
+
+    @ApiModelProperty(value = "申报途径,0:系统申报,1:补录")
+    @Excel(name = "申报途径", readConverterExp = "0=系统申报,1=补录")
+    private Long road;
+
+    @ApiModelProperty(value = "上传文件名称")
+    private String fileName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "开放开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date startTime;
+
+    /**
+     * 开放结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "开放结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date endTime;
+
+    @Excel(name = "说明")
+    private String notes;
+
+    @ApiModelProperty(value = "责任单位 0:经发委:1:规建委:2:行审局:3:市监局")
+    @Excel(name = "责任单位", readConverterExp = "0=经发委,1=规建委,2=行审局,3=市监局")
+    private Long responsibilityUnit;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "创建人")
+    private String createByName;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsTemplateRecordVo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsTemplateRecordVo.java
new file mode 100644
index 0000000..200f38b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/BmsTemplateRecordVo.java
@@ -0,0 +1,31 @@
+package com.ruoyi.jjh.declaration.entity.vo;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseDirectory;
+import com.ruoyi.jjh.declaration.entity.BmsTemplateRecord;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 在线模板对象 bms_template_record
+ *
+ * @author farben
+ * @date 2023-09-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BmsTemplateRecordVo extends BmsTemplateRecord {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "企业名录列表")
+    private List<BmsEnterpriseDirectory> enterpriseDirectoryList;
+
+    @ApiModelProperty(value = "责任单位 0:经发委:1:规建委:2:行审局:3:市监局")
+    @Excel(name = "责任单位", readConverterExp = "0=经发委,1=规建委,2=行审局,3=市监局")
+    private Long responsibilityUnit;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/DeclarationRecordsVo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/DeclarationRecordsVo.java
new file mode 100644
index 0000000..aaaaa83
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/DeclarationRecordsVo.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.entity.vo;
+
+import com.ruoyi.jjh.declaration.entity.BmsBrandingAward;
+import com.ruoyi.jjh.declaration.entity.BmsCarrierConstructionAward;
+import com.ruoyi.jjh.declaration.entity.BmsCreditManagement;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseBasicInfo;
+import com.ruoyi.jjh.declaration.entity.BmsIndustrialInternetAward;
+import com.ruoyi.jjh.declaration.entity.BmsIntegrationIndustries;
+import com.ruoyi.jjh.declaration.entity.BmsLogisticsDevelopmentAward;
+import com.ruoyi.jjh.declaration.entity.BmsManufacturingServicesAward;
+import com.ruoyi.jjh.declaration.entity.BmsPlatformConstructionAward;
+import com.ruoyi.jjh.declaration.entity.BmsSceneOpeningAward;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 记录详情
+ * <p>
+ *
+ * @className: DeclarationRecordsVo
+ * @author: emiya.xie
+ * @create: 2023-09-05 14:58
+ */
+@Data
+public class DeclarationRecordsVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "审核信息")
+    public List<BmsApprovalInfoQueryVo> approvalInfoList;
+    @ApiModelProperty(value = "申请记录")
+    private BmsDeclarationRecords bmsDeclarationRecords;
+    @ApiModelProperty(value = "企业基础信息对象")
+    private BmsEnterpriseBasicInfo bmsEnterpriseBasicInfo;
+    @ApiModelProperty(value = "1、项目落户奖补对象")
+    private BmsProjectSettlementAwardQueryVo bmsProjectSettlementAwardQueryVo;
+    @ApiModelProperty(value = "2、做大做强奖详情对象")
+    private BmsBigStrongAwardQueryVo bmsBigStrongAwardQueryVo;
+    @ApiModelProperty(value = "3、载体建设奖补对象")
+    private BmsCarrierConstructionAward bmsCarrierConstructionAward;
+    @ApiModelProperty(value = "4、平台建设奖补对象")
+    private BmsPlatformConstructionAward bmsPlatformConstructionAward;
+    @ApiModelProperty(value = "5、品牌打造奖补对象")
+    private BmsBrandingAward bmsBrandingAward;
+    @ApiModelProperty(value = "6、场景开放奖补对象")
+    private BmsSceneOpeningAward bmsSceneOpeningAward;
+    @ApiModelProperty(value = "7、信用管理奖补对象")
+    private BmsCreditManagement bmsCreditManagement;
+    @ApiModelProperty(value = "8、5G+工业互联网奖补对象")
+    private BmsIndustrialInternetAward bmsIndustrialInternetAward;
+    @ApiModelProperty(value = "9、制造服务业有效投入奖补对象")
+    private BmsManufacturingServicesAward bmsManufacturingServicesAward;
+    @ApiModelProperty(value = "10、物流发展奖补对象")
+    private BmsLogisticsDevelopmentAward bmsLogisticsDevelopmentAward;
+    @ApiModelProperty(value = "11、两业融合奖补对象")
+    private BmsIntegrationIndustries bmsIntegrationIndustries;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/EnterpriseInfoTemplateVo.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/EnterpriseInfoTemplateVo.java
new file mode 100644
index 0000000..ca445bd
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/vo/EnterpriseInfoTemplateVo.java
@@ -0,0 +1,35 @@
+package com.ruoyi.jjh.declaration.entity.vo;
+
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseBasicInfo;
+import com.ruoyi.jjh.declaration.entity.BmsProjectInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 企业模板信息Vo
+ * <p>
+ *
+ * @className: EnterpriseInfoTemplateVo
+ * @author: emiya.xie
+ * @create: 2023-09-12 11:13
+ */
+@Data
+public class EnterpriseInfoTemplateVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "企业信息列表")
+    public List<BmsEnterpriseBasicInfo> enterpriseBasicList;
+
+    @ApiModelProperty(value = "在线模板列表")
+    private List<BmsTemplateRecordQueryVo> templateRecordList;
+
+    @ApiModelProperty(value = "项目列表")
+    private List<BmsProjectInfo> projectInfoList;
+
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsApprovalInfoMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsApprovalInfoMapper.java
new file mode 100644
index 0000000..bd78c0e
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsApprovalInfoMapper.java
@@ -0,0 +1,69 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsApprovalInfo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsApprovalInfoQueryVo;
+
+import java.util.List;
+
+/**
+ * 审批记录信息Mapper接口
+ * 
+ * @author farben
+ * @date 2023-09-09
+ */
+public interface BmsApprovalInfoMapper extends BaseMapper<BmsApprovalInfo> {
+    /**
+     * 查询审批记录信息
+     * 
+     * @param id 审批记录信息主键
+     * @return 审批记录信息
+     */
+    public BmsApprovalInfo selectBmsApprovalInfoById(Long id);
+
+    /**
+     * 查询审批记录信息列表
+     * 
+     * @param bmsApprovalInfo 审批记录信息
+     * @return 审批记录信息集合
+     */
+    public List<BmsApprovalInfo> selectBmsApprovalInfoList(BmsApprovalInfo bmsApprovalInfo);
+
+    /**
+     * 新增审批记录信息
+     * 
+     * @param bmsApprovalInfo 审批记录信息
+     * @return 结果
+     */
+    public int insertBmsApprovalInfo(BmsApprovalInfo bmsApprovalInfo);
+
+    /**
+     * 修改审批记录信息
+     * 
+     * @param bmsApprovalInfo 审批记录信息
+     * @return 结果
+     */
+    public int updateBmsApprovalInfo(BmsApprovalInfo bmsApprovalInfo);
+
+    /**
+     * 删除审批记录信息
+     * 
+     * @param id 审批记录信息主键
+     * @return 结果
+     */
+    public int deleteBmsApprovalInfoById(Long id);
+
+    /**
+     * 批量删除审批记录信息
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsApprovalInfoByIds(Long[] ids);
+
+    public int updateApproval(Long declarationRecordsId);
+
+    public int updateApprovalList(List<Long> list);
+
+    public List<BmsApprovalInfoQueryVo> getApprovalInfoList(Long declarationRecordsId);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsBigStrongAwardMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsBigStrongAwardMapper.java
new file mode 100644
index 0000000..f01ed3b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsBigStrongAwardMapper.java
@@ -0,0 +1,63 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsBigStrongAward;
+import com.ruoyi.jjh.declaration.entity.vo.BmsBigStrongAwardQueryVo;
+
+import java.util.List;
+
+/**
+ * 做大做强奖详情Mapper接口
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface BmsBigStrongAwardMapper extends BaseMapper<BmsBigStrongAward> {
+    /**
+     * 查询做大做强奖详情
+     *
+     * @param id 做大做强奖详情主键
+     * @return 做大做强奖详情
+     */
+    public BmsBigStrongAwardQueryVo selectBmsBigStrongAwardById(Long id);
+
+    /**
+     * 查询做大做强奖详情列表
+     *
+     * @param bmsBigStrongAward 做大做强奖详情
+     * @return 做大做强奖详情集合
+     */
+    public List<BmsBigStrongAward> selectBmsBigStrongAwardList(BmsBigStrongAward bmsBigStrongAward);
+
+    /**
+     * 新增做大做强奖详情
+     *
+     * @param bmsBigStrongAward 做大做强奖详情
+     * @return 结果
+     */
+    public int insertBmsBigStrongAward(BmsBigStrongAward bmsBigStrongAward);
+
+    /**
+     * 修改做大做强奖详情
+     *
+     * @param bmsBigStrongAward 做大做强奖详情
+     * @return 结果
+     */
+    public int updateBmsBigStrongAward(BmsBigStrongAward bmsBigStrongAward);
+
+    /**
+     * 删除做大做强奖详情
+     *
+     * @param id 做大做强奖详情主键
+     * @return 结果
+     */
+    public int deleteBmsBigStrongAwardById(Long id);
+
+    /**
+     * 批量删除做大做强奖详情
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsBigStrongAwardByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsBrandingAwardMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsBrandingAwardMapper.java
new file mode 100644
index 0000000..4c39cd1
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsBrandingAwardMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsBrandingAward;
+
+import java.util.List;
+
+/**
+ * 品牌打造奖补Mapper接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface BmsBrandingAwardMapper extends BaseMapper<BmsBrandingAward> {
+    /**
+     * 查询品牌打造奖补
+     * 
+     * @param id 品牌打造奖补主键
+     * @return 品牌打造奖补
+     */
+    public BmsBrandingAward selectBmsBrandingAwardById(Long id);
+
+    /**
+     * 查询品牌打造奖补列表
+     * 
+     * @param bmsBrandingAward 品牌打造奖补
+     * @return 品牌打造奖补集合
+     */
+    public List<BmsBrandingAward> selectBmsBrandingAwardList(BmsBrandingAward bmsBrandingAward);
+
+    /**
+     * 新增品牌打造奖补
+     * 
+     * @param bmsBrandingAward 品牌打造奖补
+     * @return 结果
+     */
+    public int insertBmsBrandingAward(BmsBrandingAward bmsBrandingAward);
+
+    /**
+     * 修改品牌打造奖补
+     * 
+     * @param bmsBrandingAward 品牌打造奖补
+     * @return 结果
+     */
+    public int updateBmsBrandingAward(BmsBrandingAward bmsBrandingAward);
+
+    /**
+     * 删除品牌打造奖补
+     * 
+     * @param id 品牌打造奖补主键
+     * @return 结果
+     */
+    public int deleteBmsBrandingAwardById(Long id);
+
+    /**
+     * 批量删除品牌打造奖补
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsBrandingAwardByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsCarrierConstructionAwardMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsCarrierConstructionAwardMapper.java
new file mode 100644
index 0000000..22e4cb5
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsCarrierConstructionAwardMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsCarrierConstructionAward;
+
+import java.util.List;
+
+/**
+ * 载体建设奖补Mapper接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface BmsCarrierConstructionAwardMapper extends BaseMapper<BmsCarrierConstructionAward> {
+    /**
+     * 查询载体建设奖补
+     * 
+     * @param id 载体建设奖补主键
+     * @return 载体建设奖补
+     */
+    public BmsCarrierConstructionAward selectBmsCarrierConstructionAwardById(Long id);
+
+    /**
+     * 查询载体建设奖补列表
+     * 
+     * @param bmsCarrierConstructionAward 载体建设奖补
+     * @return 载体建设奖补集合
+     */
+    public List<BmsCarrierConstructionAward> selectBmsCarrierConstructionAwardList(BmsCarrierConstructionAward bmsCarrierConstructionAward);
+
+    /**
+     * 新增载体建设奖补
+     * 
+     * @param bmsCarrierConstructionAward 载体建设奖补
+     * @return 结果
+     */
+    public int insertBmsCarrierConstructionAward(BmsCarrierConstructionAward bmsCarrierConstructionAward);
+
+    /**
+     * 修改载体建设奖补
+     * 
+     * @param bmsCarrierConstructionAward 载体建设奖补
+     * @return 结果
+     */
+    public int updateBmsCarrierConstructionAward(BmsCarrierConstructionAward bmsCarrierConstructionAward);
+
+    /**
+     * 删除载体建设奖补
+     * 
+     * @param id 载体建设奖补主键
+     * @return 结果
+     */
+    public int deleteBmsCarrierConstructionAwardById(Long id);
+
+    /**
+     * 批量删除载体建设奖补
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsCarrierConstructionAwardByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsCreditManagementMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsCreditManagementMapper.java
new file mode 100644
index 0000000..19369cd
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsCreditManagementMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsCreditManagement;
+
+import java.util.List;
+
+/**
+ * 信用管理奖补Mapper接口
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+public interface BmsCreditManagementMapper extends BaseMapper<BmsCreditManagement> {
+    /**
+     * 查询信用管理奖补
+     * 
+     * @param id 信用管理奖补主键
+     * @return 信用管理奖补
+     */
+    public BmsCreditManagement selectBmsCreditManagementById(Long id);
+
+    /**
+     * 查询信用管理奖补列表
+     * 
+     * @param bmsCreditManagement 信用管理奖补
+     * @return 信用管理奖补集合
+     */
+    public List<BmsCreditManagement> selectBmsCreditManagementList(BmsCreditManagement bmsCreditManagement);
+
+    /**
+     * 新增信用管理奖补
+     * 
+     * @param bmsCreditManagement 信用管理奖补
+     * @return 结果
+     */
+    public int insertBmsCreditManagement(BmsCreditManagement bmsCreditManagement);
+
+    /**
+     * 修改信用管理奖补
+     * 
+     * @param bmsCreditManagement 信用管理奖补
+     * @return 结果
+     */
+    public int updateBmsCreditManagement(BmsCreditManagement bmsCreditManagement);
+
+    /**
+     * 删除信用管理奖补
+     * 
+     * @param id 信用管理奖补主键
+     * @return 结果
+     */
+    public int deleteBmsCreditManagementById(Long id);
+
+    /**
+     * 批量删除信用管理奖补
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsCreditManagementByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsDeclarationRecordsMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsDeclarationRecordsMapper.java
new file mode 100644
index 0000000..bec43b5
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsDeclarationRecordsMapper.java
@@ -0,0 +1,85 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.dto.ApprovalDeclarationRecordsQueryDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsDeclarationRecordsDto;
+import com.ruoyi.jjh.declaration.entity.vo.ApprovalDeclarationRecordsQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsDeclarationRecordsQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsMunicipalBureauReviewQueryVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 在线申报记录Mapper接口
+ * 
+ * @author farben
+ * @date 2023-08-28
+ */
+public interface BmsDeclarationRecordsMapper extends BaseMapper<BmsDeclarationRecords> {
+    /**
+     * 查询在线申报记录
+     * 
+     * @param id 在线申报记录主键
+     * @return 在线申报记录
+     */
+    public BmsDeclarationRecords selectBmsDeclarationRecordsById(Long id);
+
+    /**
+     * 查询在线申报记录列表
+     * 
+     * @param bmsDeclarationRecordsDto 在线申报记录
+     * @return 在线申报记录集合
+     */
+    public List<BmsDeclarationRecordsQueryVo> selectBmsDeclarationRecordsList(BmsDeclarationRecordsDto bmsDeclarationRecordsDto);
+
+    public List<BmsDeclarationRecordsQueryVo> selectBmsDeclarationRecordsZwList(BmsDeclarationRecordsDto bmsDeclarationRecordsDto);
+
+    public List<BmsMunicipalBureauReviewQueryVo> selectMunicipalBureauReviewList();
+
+    public List<ApprovalDeclarationRecordsQueryVo> approvalList(ApprovalDeclarationRecordsQueryDto approvalDeclarationRecordsQueryDto);
+
+    /**
+     * 新增在线申报记录
+     * 
+     * @param bmsDeclarationRecords 在线申报记录
+     * @return 结果
+     */
+    public int insertBmsDeclarationRecords(BmsDeclarationRecords bmsDeclarationRecords);
+
+    /**
+     * 修改在线申报记录
+     * 
+     * @param bmsDeclarationRecords 在线申报记录
+     * @return 结果
+     */
+    public int updateBmsDeclarationRecords(BmsDeclarationRecords bmsDeclarationRecords);
+
+    /**
+     * 删除在线申报记录
+     * 
+     * @param id 在线申报记录主键
+     * @return 结果
+     */
+    public int deleteBmsDeclarationRecordsById(Long id);
+
+    /**
+     * 批量删除在线申报记录
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsDeclarationRecordsByIds(Long[] ids);
+
+    /**
+     * 更新项目名称by Id
+     *
+     * @param id
+     * @param projectName
+     * @return {@link int}
+     * @author emiya.xie
+     * @create 2023/9/6 15:13
+     */
+    public int updateProjectNameById(@Param("id") Long id, @Param("projectName")String projectName,@Param("projectId")Long projectId);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsEnterpriseBasicInfoMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsEnterpriseBasicInfoMapper.java
new file mode 100644
index 0000000..8055940
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsEnterpriseBasicInfoMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseBasicInfo;
+
+import java.util.List;
+
+/**
+ * 企业基础信息Mapper接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface BmsEnterpriseBasicInfoMapper extends BaseMapper<BmsEnterpriseBasicInfo> {
+    /**
+     * 查询企业基础信息
+     * 
+     * @param id 企业基础信息主键
+     * @return 企业基础信息
+     */
+    public BmsEnterpriseBasicInfo selectBmsEnterpriseBasicInfoById(Long id);
+
+    /**
+     * 查询企业基础信息列表
+     * 
+     * @param bmsEnterpriseBasicInfo 企业基础信息
+     * @return 企业基础信息集合
+     */
+    public List<BmsEnterpriseBasicInfo> selectBmsEnterpriseBasicInfoList(BmsEnterpriseBasicInfo bmsEnterpriseBasicInfo);
+
+    /**
+     * 新增企业基础信息
+     * 
+     * @param bmsEnterpriseBasicInfo 企业基础信息
+     * @return 结果
+     */
+    public int insertBmsEnterpriseBasicInfo(BmsEnterpriseBasicInfo bmsEnterpriseBasicInfo);
+
+    /**
+     * 修改企业基础信息
+     * 
+     * @param bmsEnterpriseBasicInfo 企业基础信息
+     * @return 结果
+     */
+    public int updateBmsEnterpriseBasicInfo(BmsEnterpriseBasicInfo bmsEnterpriseBasicInfo);
+
+    /**
+     * 删除企业基础信息
+     * 
+     * @param id 企业基础信息主键
+     * @return 结果
+     */
+    public int deleteBmsEnterpriseBasicInfoById(Long id);
+
+    /**
+     * 批量删除企业基础信息
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsEnterpriseBasicInfoByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsEnterpriseDirectoryMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsEnterpriseDirectoryMapper.java
new file mode 100644
index 0000000..4327792
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsEnterpriseDirectoryMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseDirectory;
+
+import java.util.List;
+
+/**
+ * 企业名录Mapper接口
+ * 
+ * @author farben
+ * @date 2023-08-31
+ */
+public interface BmsEnterpriseDirectoryMapper extends BaseMapper<BmsEnterpriseDirectory> {
+    /**
+     * 查询企业名录
+     * 
+     * @param id 企业名录主键
+     * @return 企业名录
+     */
+    public BmsEnterpriseDirectory selectBmsEnterpriseDirectoryById(Long id);
+
+    /**
+     * 查询企业名录列表
+     * 
+     * @param bmsEnterpriseDirectory 企业名录
+     * @return 企业名录集合
+     */
+    public List<BmsEnterpriseDirectory> selectBmsEnterpriseDirectoryList(BmsEnterpriseDirectory bmsEnterpriseDirectory);
+
+    /**
+     * 新增企业名录
+     * 
+     * @param bmsEnterpriseDirectory 企业名录
+     * @return 结果
+     */
+    public int insertBmsEnterpriseDirectory(BmsEnterpriseDirectory bmsEnterpriseDirectory);
+
+    /**
+     * 修改企业名录
+     * 
+     * @param bmsEnterpriseDirectory 企业名录
+     * @return 结果
+     */
+    public int updateBmsEnterpriseDirectory(BmsEnterpriseDirectory bmsEnterpriseDirectory);
+
+    /**
+     * 删除企业名录
+     * 
+     * @param id 企业名录主键
+     * @return 结果
+     */
+    public int deleteBmsEnterpriseDirectoryById(Long id);
+
+    /**
+     * 批量删除企业名录
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsEnterpriseDirectoryByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsFieldInfoMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsFieldInfoMapper.java
new file mode 100644
index 0000000..053d961
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsFieldInfoMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsFieldInfo;
+
+import java.util.List;
+
+/**
+ * 模板字段填写详情Mapper接口
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+public interface BmsFieldInfoMapper extends BaseMapper<BmsFieldInfo> {
+    /**
+     * 查询模板字段填写详情
+     * 
+     * @param id 模板字段填写详情主键
+     * @return 模板字段填写详情
+     */
+    public BmsFieldInfo selectBmsFieldInfoById(Long id);
+
+    /**
+     * 查询模板字段填写详情列表
+     * 
+     * @param bmsFieldInfo 模板字段填写详情
+     * @return 模板字段填写详情集合
+     */
+    public List<BmsFieldInfo> selectBmsFieldInfoList(BmsFieldInfo bmsFieldInfo);
+
+    /**
+     * 新增模板字段填写详情
+     * 
+     * @param bmsFieldInfo 模板字段填写详情
+     * @return 结果
+     */
+    public int insertBmsFieldInfo(BmsFieldInfo bmsFieldInfo);
+
+    /**
+     * 修改模板字段填写详情
+     * 
+     * @param bmsFieldInfo 模板字段填写详情
+     * @return 结果
+     */
+    public int updateBmsFieldInfo(BmsFieldInfo bmsFieldInfo);
+
+    /**
+     * 删除模板字段填写详情
+     * 
+     * @param id 模板字段填写详情主键
+     * @return 结果
+     */
+    public int deleteBmsFieldInfoById(Long id);
+
+    /**
+     * 批量删除模板字段填写详情
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsFieldInfoByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsFileInfoMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsFileInfoMapper.java
new file mode 100644
index 0000000..cb8e83d
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsFileInfoMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsFileInfo;
+
+import java.util.List;
+
+/**
+ * 文件存储说明详情Mapper接口
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+public interface BmsFileInfoMapper extends BaseMapper<BmsFileInfo> {
+    /**
+     * 查询文件存储说明详情
+     * 
+     * @param id 文件存储说明详情主键
+     * @return 文件存储说明详情
+     */
+    public BmsFileInfo selectBmsFileInfoById(Long id);
+
+    /**
+     * 查询文件存储说明详情列表
+     * 
+     * @param bmsFileInfo 文件存储说明详情
+     * @return 文件存储说明详情集合
+     */
+    public List<BmsFileInfo> selectBmsFileInfoList(BmsFileInfo bmsFileInfo);
+
+    /**
+     * 新增文件存储说明详情
+     * 
+     * @param bmsFileInfo 文件存储说明详情
+     * @return 结果
+     */
+    public int insertBmsFileInfo(BmsFileInfo bmsFileInfo);
+
+    /**
+     * 修改文件存储说明详情
+     * 
+     * @param bmsFileInfo 文件存储说明详情
+     * @return 结果
+     */
+    public int updateBmsFileInfo(BmsFileInfo bmsFileInfo);
+
+    /**
+     * 删除文件存储说明详情
+     * 
+     * @param id 文件存储说明详情主键
+     * @return 结果
+     */
+    public int deleteBmsFileInfoById(Long id);
+
+    /**
+     * 批量删除文件存储说明详情
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsFileInfoByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsFundingDetailMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsFundingDetailMapper.java
new file mode 100644
index 0000000..8b6c679
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsFundingDetailMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsFundingDetail;
+
+import java.util.List;
+
+/**
+ * 资金信息详情Mapper接口
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+public interface BmsFundingDetailMapper extends BaseMapper<BmsFundingDetail> {
+    /**
+     * 查询资金信息详情
+     * 
+     * @param id 资金信息详情主键
+     * @return 资金信息详情
+     */
+    public BmsFundingDetail selectBmsFundingDetailById(Long id);
+
+    /**
+     * 查询资金信息详情列表
+     * 
+     * @param bmsFundingDetail 资金信息详情
+     * @return 资金信息详情集合
+     */
+    public List<BmsFundingDetail> selectBmsFundingDetailList(BmsFundingDetail bmsFundingDetail);
+
+    /**
+     * 新增资金信息详情
+     * 
+     * @param bmsFundingDetail 资金信息详情
+     * @return 结果
+     */
+    public int insertBmsFundingDetail(BmsFundingDetail bmsFundingDetail);
+
+    /**
+     * 修改资金信息详情
+     * 
+     * @param bmsFundingDetail 资金信息详情
+     * @return 结果
+     */
+    public int updateBmsFundingDetail(BmsFundingDetail bmsFundingDetail);
+
+    /**
+     * 删除资金信息详情
+     * 
+     * @param id 资金信息详情主键
+     * @return 结果
+     */
+    public int deleteBmsFundingDetailById(Long id);
+
+    /**
+     * 批量删除资金信息详情
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsFundingDetailByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsIndustrialInternetAwardMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsIndustrialInternetAwardMapper.java
new file mode 100644
index 0000000..9034f49
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsIndustrialInternetAwardMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsIndustrialInternetAward;
+
+import java.util.List;
+
+/**
+ * 5G+工业互联网奖补Mapper接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface BmsIndustrialInternetAwardMapper extends BaseMapper<BmsIndustrialInternetAward> {
+    /**
+     * 查询5G+工业互联网奖补
+     * 
+     * @param id 5G+工业互联网奖补主键
+     * @return 5G+工业互联网奖补
+     */
+    public BmsIndustrialInternetAward selectBmsIndustrialInternetAwardById(Long id);
+
+    /**
+     * 查询5G+工业互联网奖补列表
+     * 
+     * @param bmsIndustrialInternetAward 5G+工业互联网奖补
+     * @return 5G+工业互联网奖补集合
+     */
+    public List<BmsIndustrialInternetAward> selectBmsIndustrialInternetAwardList(BmsIndustrialInternetAward bmsIndustrialInternetAward);
+
+    /**
+     * 新增5G+工业互联网奖补
+     * 
+     * @param bmsIndustrialInternetAward 5G+工业互联网奖补
+     * @return 结果
+     */
+    public int insertBmsIndustrialInternetAward(BmsIndustrialInternetAward bmsIndustrialInternetAward);
+
+    /**
+     * 修改5G+工业互联网奖补
+     * 
+     * @param bmsIndustrialInternetAward 5G+工业互联网奖补
+     * @return 结果
+     */
+    public int updateBmsIndustrialInternetAward(BmsIndustrialInternetAward bmsIndustrialInternetAward);
+
+    /**
+     * 删除5G+工业互联网奖补
+     * 
+     * @param id 5G+工业互联网奖补主键
+     * @return 结果
+     */
+    public int deleteBmsIndustrialInternetAwardById(Long id);
+
+    /**
+     * 批量删除5G+工业互联网奖补
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsIndustrialInternetAwardByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsIntegrationIndustriesMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsIntegrationIndustriesMapper.java
new file mode 100644
index 0000000..a17f394
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsIntegrationIndustriesMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsIntegrationIndustries;
+
+import java.util.List;
+
+/**
+ * 两业融合奖补Mapper接口
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+public interface BmsIntegrationIndustriesMapper extends BaseMapper<BmsIntegrationIndustries> {
+    /**
+     * 查询两业融合奖补
+     * 
+     * @param id 两业融合奖补主键
+     * @return 两业融合奖补
+     */
+    public BmsIntegrationIndustries selectBmsIntegrationIndustriesById(Long id);
+
+    /**
+     * 查询两业融合奖补列表
+     * 
+     * @param bmsIntegrationIndustries 两业融合奖补
+     * @return 两业融合奖补集合
+     */
+    public List<BmsIntegrationIndustries> selectBmsIntegrationIndustriesList(BmsIntegrationIndustries bmsIntegrationIndustries);
+
+    /**
+     * 新增两业融合奖补
+     * 
+     * @param bmsIntegrationIndustries 两业融合奖补
+     * @return 结果
+     */
+    public int insertBmsIntegrationIndustries(BmsIntegrationIndustries bmsIntegrationIndustries);
+
+    /**
+     * 修改两业融合奖补
+     * 
+     * @param bmsIntegrationIndustries 两业融合奖补
+     * @return 结果
+     */
+    public int updateBmsIntegrationIndustries(BmsIntegrationIndustries bmsIntegrationIndustries);
+
+    /**
+     * 删除两业融合奖补
+     * 
+     * @param id 两业融合奖补主键
+     * @return 结果
+     */
+    public int deleteBmsIntegrationIndustriesById(Long id);
+
+    /**
+     * 批量删除两业融合奖补
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsIntegrationIndustriesByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsLogisticsDevelopmentAwardMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsLogisticsDevelopmentAwardMapper.java
new file mode 100644
index 0000000..cff8189
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsLogisticsDevelopmentAwardMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsLogisticsDevelopmentAward;
+
+import java.util.List;
+
+/**
+ * 物流发展奖补Mapper接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface BmsLogisticsDevelopmentAwardMapper extends BaseMapper<BmsLogisticsDevelopmentAward> {
+    /**
+     * 查询物流发展奖补
+     * 
+     * @param id 物流发展奖补主键
+     * @return 物流发展奖补
+     */
+    public BmsLogisticsDevelopmentAward selectBmsLogisticsDevelopmentAwardById(Long id);
+
+    /**
+     * 查询物流发展奖补列表
+     * 
+     * @param bmsLogisticsDevelopmentAward 物流发展奖补
+     * @return 物流发展奖补集合
+     */
+    public List<BmsLogisticsDevelopmentAward> selectBmsLogisticsDevelopmentAwardList(BmsLogisticsDevelopmentAward bmsLogisticsDevelopmentAward);
+
+    /**
+     * 新增物流发展奖补
+     * 
+     * @param bmsLogisticsDevelopmentAward 物流发展奖补
+     * @return 结果
+     */
+    public int insertBmsLogisticsDevelopmentAward(BmsLogisticsDevelopmentAward bmsLogisticsDevelopmentAward);
+
+    /**
+     * 修改物流发展奖补
+     * 
+     * @param bmsLogisticsDevelopmentAward 物流发展奖补
+     * @return 结果
+     */
+    public int updateBmsLogisticsDevelopmentAward(BmsLogisticsDevelopmentAward bmsLogisticsDevelopmentAward);
+
+    /**
+     * 删除物流发展奖补
+     * 
+     * @param id 物流发展奖补主键
+     * @return 结果
+     */
+    public int deleteBmsLogisticsDevelopmentAwardById(Long id);
+
+    /**
+     * 批量删除物流发展奖补
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsLogisticsDevelopmentAwardByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsManufacturingServicesAwardMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsManufacturingServicesAwardMapper.java
new file mode 100644
index 0000000..76d883c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsManufacturingServicesAwardMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsManufacturingServicesAward;
+
+import java.util.List;
+
+/**
+ * 制造服务业有效投入奖补Mapper接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface BmsManufacturingServicesAwardMapper extends BaseMapper<BmsManufacturingServicesAward> {
+    /**
+     * 查询制造服务业有效投入奖补
+     * 
+     * @param id 制造服务业有效投入奖补主键
+     * @return 制造服务业有效投入奖补
+     */
+    public BmsManufacturingServicesAward selectBmsManufacturingServicesAwardById(Long id);
+
+    /**
+     * 查询制造服务业有效投入奖补列表
+     * 
+     * @param bmsManufacturingServicesAward 制造服务业有效投入奖补
+     * @return 制造服务业有效投入奖补集合
+     */
+    public List<BmsManufacturingServicesAward> selectBmsManufacturingServicesAwardList(BmsManufacturingServicesAward bmsManufacturingServicesAward);
+
+    /**
+     * 新增制造服务业有效投入奖补
+     * 
+     * @param bmsManufacturingServicesAward 制造服务业有效投入奖补
+     * @return 结果
+     */
+    public int insertBmsManufacturingServicesAward(BmsManufacturingServicesAward bmsManufacturingServicesAward);
+
+    /**
+     * 修改制造服务业有效投入奖补
+     * 
+     * @param bmsManufacturingServicesAward 制造服务业有效投入奖补
+     * @return 结果
+     */
+    public int updateBmsManufacturingServicesAward(BmsManufacturingServicesAward bmsManufacturingServicesAward);
+
+    /**
+     * 删除制造服务业有效投入奖补
+     * 
+     * @param id 制造服务业有效投入奖补主键
+     * @return 结果
+     */
+    public int deleteBmsManufacturingServicesAwardById(Long id);
+
+    /**
+     * 批量删除制造服务业有效投入奖补
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsManufacturingServicesAwardByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsPlatformConstructionAwardMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsPlatformConstructionAwardMapper.java
new file mode 100644
index 0000000..18be636
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsPlatformConstructionAwardMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsPlatformConstructionAward;
+
+import java.util.List;
+
+/**
+ * 平台建设奖补Mapper接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface BmsPlatformConstructionAwardMapper extends BaseMapper<BmsPlatformConstructionAward> {
+    /**
+     * 查询平台建设奖补
+     * 
+     * @param id 平台建设奖补主键
+     * @return 平台建设奖补
+     */
+    public BmsPlatformConstructionAward selectBmsPlatformConstructionAwardById(Long id);
+
+    /**
+     * 查询平台建设奖补列表
+     * 
+     * @param bmsPlatformConstructionAward 平台建设奖补
+     * @return 平台建设奖补集合
+     */
+    public List<BmsPlatformConstructionAward> selectBmsPlatformConstructionAwardList(BmsPlatformConstructionAward bmsPlatformConstructionAward);
+
+    /**
+     * 新增平台建设奖补
+     * 
+     * @param bmsPlatformConstructionAward 平台建设奖补
+     * @return 结果
+     */
+    public int insertBmsPlatformConstructionAward(BmsPlatformConstructionAward bmsPlatformConstructionAward);
+
+    /**
+     * 修改平台建设奖补
+     * 
+     * @param bmsPlatformConstructionAward 平台建设奖补
+     * @return 结果
+     */
+    public int updateBmsPlatformConstructionAward(BmsPlatformConstructionAward bmsPlatformConstructionAward);
+
+    /**
+     * 删除平台建设奖补
+     * 
+     * @param id 平台建设奖补主键
+     * @return 结果
+     */
+    public int deleteBmsPlatformConstructionAwardById(Long id);
+
+    /**
+     * 批量删除平台建设奖补
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsPlatformConstructionAwardByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsProcessInfoMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsProcessInfoMapper.java
new file mode 100644
index 0000000..cffc9c8
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsProcessInfoMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsProcessInfo;
+
+import java.util.List;
+
+/**
+ * 审批流程Mapper接口
+ * 
+ * @author farben
+ * @date 2023-09-09
+ */
+public interface BmsProcessInfoMapper extends BaseMapper<BmsProcessInfo> {
+    /**
+     * 查询审批流程
+     * 
+     * @param id 审批流程主键
+     * @return 审批流程
+     */
+    public BmsProcessInfo selectBmsProcessInfoById(Long id);
+
+    /**
+     * 查询审批流程列表
+     * 
+     * @param bmsProcessInfo 审批流程
+     * @return 审批流程集合
+     */
+    public List<BmsProcessInfo> selectBmsProcessInfoList(BmsProcessInfo bmsProcessInfo);
+
+    /**
+     * 新增审批流程
+     * 
+     * @param bmsProcessInfo 审批流程
+     * @return 结果
+     */
+    public int insertBmsProcessInfo(BmsProcessInfo bmsProcessInfo);
+
+    /**
+     * 修改审批流程
+     * 
+     * @param bmsProcessInfo 审批流程
+     * @return 结果
+     */
+    public int updateBmsProcessInfo(BmsProcessInfo bmsProcessInfo);
+
+    /**
+     * 删除审批流程
+     * 
+     * @param id 审批流程主键
+     * @return 结果
+     */
+    public int deleteBmsProcessInfoById(Long id);
+
+    /**
+     * 批量删除审批流程
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsProcessInfoByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsProjectInfoMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsProjectInfoMapper.java
new file mode 100644
index 0000000..39746aa
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsProjectInfoMapper.java
@@ -0,0 +1,65 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsProjectInfo;
+
+import java.util.List;
+
+/**
+ * 项目基本信息Mapper接口
+ * 
+ * @author farben
+ * @date 2023-09-09
+ */
+public interface BmsProjectInfoMapper extends BaseMapper<BmsProjectInfo> {
+    /**
+     * 查询项目基本信息
+     * 
+     * @param id 项目基本信息主键
+     * @return 项目基本信息
+     */
+    public BmsProjectInfo selectBmsProjectInfoById(Long id);
+
+    /**
+     * 查询项目基本信息列表
+     * 
+     * @param bmsProjectInfo 项目基本信息
+     * @return 项目基本信息集合
+     */
+    public List<BmsProjectInfo> selectBmsProjectInfoList(BmsProjectInfo bmsProjectInfo);
+
+    /**
+     * 新增项目基本信息
+     * 
+     * @param bmsProjectInfo 项目基本信息
+     * @return 结果
+     */
+    public int insertBmsProjectInfo(BmsProjectInfo bmsProjectInfo);
+
+    /**
+     * 修改项目基本信息
+     * 
+     * @param bmsProjectInfo 项目基本信息
+     * @return 结果
+     */
+    public int updateBmsProjectInfo(BmsProjectInfo bmsProjectInfo);
+
+    /**
+     * 删除项目基本信息
+     * 
+     * @param id 项目基本信息主键
+     * @return 结果
+     */
+    public int deleteBmsProjectInfoById(Long id);
+
+    /**
+     * 批量删除项目基本信息
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsProjectInfoByIds(Long[] ids);
+
+
+    public BmsProjectInfo getProjectInfo(Long templateRecordId);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsProjectSettlementAwardMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsProjectSettlementAwardMapper.java
new file mode 100644
index 0000000..11f5bae
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsProjectSettlementAwardMapper.java
@@ -0,0 +1,63 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsProjectSettlementAward;
+import com.ruoyi.jjh.declaration.entity.vo.BmsProjectSettlementAwardQueryVo;
+
+import java.util.List;
+
+/**
+ * 项目落户奖补Mapper接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface BmsProjectSettlementAwardMapper extends BaseMapper<BmsProjectSettlementAward> {
+    /**
+     * 查询项目落户奖补
+     * 
+     * @param id 项目落户奖补主键
+     * @return 项目落户奖补
+     */
+    public BmsProjectSettlementAwardQueryVo selectBmsProjectSettlementAwardById(Long id);
+
+    /**
+     * 查询项目落户奖补列表
+     * 
+     * @param bmsProjectSettlementAward 项目落户奖补
+     * @return 项目落户奖补集合
+     */
+    public List<BmsProjectSettlementAward> selectBmsProjectSettlementAwardList(BmsProjectSettlementAward bmsProjectSettlementAward);
+
+    /**
+     * 新增项目落户奖补
+     * 
+     * @param bmsProjectSettlementAward 项目落户奖补
+     * @return 结果
+     */
+    public int insertBmsProjectSettlementAward(BmsProjectSettlementAward bmsProjectSettlementAward);
+
+    /**
+     * 修改项目落户奖补
+     * 
+     * @param bmsProjectSettlementAward 项目落户奖补
+     * @return 结果
+     */
+    public int updateBmsProjectSettlementAward(BmsProjectSettlementAward bmsProjectSettlementAward);
+
+    /**
+     * 删除项目落户奖补
+     * 
+     * @param id 项目落户奖补主键
+     * @return 结果
+     */
+    public int deleteBmsProjectSettlementAwardById(Long id);
+
+    /**
+     * 批量删除项目落户奖补
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsProjectSettlementAwardByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsSceneOpeningAwardMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsSceneOpeningAwardMapper.java
new file mode 100644
index 0000000..d01eba2
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsSceneOpeningAwardMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsSceneOpeningAward;
+
+import java.util.List;
+
+/**
+ * 场景开放奖补Mapper接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface BmsSceneOpeningAwardMapper extends BaseMapper<BmsSceneOpeningAward> {
+    /**
+     * 查询场景开放奖补
+     * 
+     * @param id 场景开放奖补主键
+     * @return 场景开放奖补
+     */
+    public BmsSceneOpeningAward selectBmsSceneOpeningAwardById(Long id);
+
+    /**
+     * 查询场景开放奖补列表
+     * 
+     * @param bmsSceneOpeningAward 场景开放奖补
+     * @return 场景开放奖补集合
+     */
+    public List<BmsSceneOpeningAward> selectBmsSceneOpeningAwardList(BmsSceneOpeningAward bmsSceneOpeningAward);
+
+    /**
+     * 新增场景开放奖补
+     * 
+     * @param bmsSceneOpeningAward 场景开放奖补
+     * @return 结果
+     */
+    public int insertBmsSceneOpeningAward(BmsSceneOpeningAward bmsSceneOpeningAward);
+
+    /**
+     * 修改场景开放奖补
+     * 
+     * @param bmsSceneOpeningAward 场景开放奖补
+     * @return 结果
+     */
+    public int updateBmsSceneOpeningAward(BmsSceneOpeningAward bmsSceneOpeningAward);
+
+    /**
+     * 删除场景开放奖补
+     * 
+     * @param id 场景开放奖补主键
+     * @return 结果
+     */
+    public int deleteBmsSceneOpeningAwardById(Long id);
+
+    /**
+     * 批量删除场景开放奖补
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsSceneOpeningAwardByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsTemplateInfoMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsTemplateInfoMapper.java
new file mode 100644
index 0000000..639aab1
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsTemplateInfoMapper.java
@@ -0,0 +1,69 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsTemplateInfo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsTemplateInfoQueryVo;
+
+import java.util.List;
+
+/**
+ * 申报模板信息Mapper接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface BmsTemplateInfoMapper extends BaseMapper<BmsTemplateInfo> {
+    /**
+     * 查询申报模板信息
+     * 
+     * @param id 申报模板信息主键
+     * @return 申报模板信息
+     */
+    public BmsTemplateInfo selectBmsTemplateInfoById(Long id);
+
+    /**
+     * 查询申报模板信息列表
+     * 
+     * @param bmsTemplateInfo 申报模板信息
+     * @return 申报模板信息集合
+     */
+    public List<BmsTemplateInfoQueryVo> selectBmsTemplateInfoList(BmsTemplateInfo bmsTemplateInfo);
+    /**
+     * 查询申报模板信息列表
+     *
+     * @param bmsTemplateInfo 申报模板信息
+     * @return 申报模板信息集合
+     */
+    public List<BmsTemplateInfoQueryVo> templateInfoList(BmsTemplateInfo bmsTemplateInfo);
+    /**
+     * 新增申报模板信息
+     * 
+     * @param bmsTemplateInfo 申报模板信息
+     * @return 结果
+     */
+    public int insertBmsTemplateInfo(BmsTemplateInfo bmsTemplateInfo);
+
+    /**
+     * 修改申报模板信息
+     * 
+     * @param bmsTemplateInfo 申报模板信息
+     * @return 结果
+     */
+    public int updateBmsTemplateInfo(BmsTemplateInfo bmsTemplateInfo);
+
+    /**
+     * 删除申报模板信息
+     * 
+     * @param id 申报模板信息主键
+     * @return 结果
+     */
+    public int deleteBmsTemplateInfoById(Long id);
+
+    /**
+     * 批量删除申报模板信息
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsTemplateInfoByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsTemplateRecordMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsTemplateRecordMapper.java
new file mode 100644
index 0000000..4e8f895
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BmsTemplateRecordMapper.java
@@ -0,0 +1,75 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BmsTemplateRecord;
+import com.ruoyi.jjh.declaration.entity.dto.BmsTemplateQueryDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsTemplateRecordQueryDto;
+import com.ruoyi.jjh.declaration.entity.vo.BmsTemplateRecordQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsTemplateRecordVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 在线模板Mapper接口
+ * 
+ * @author farben
+ * @date 2023-09-07
+ */
+public interface BmsTemplateRecordMapper extends BaseMapper<BmsTemplateRecord> {
+    /**
+     * 查询在线模板
+     * 
+     * @param id 在线模板主键
+     * @return 在线模板
+     */
+    public BmsTemplateRecord selectBmsTemplateRecordById(Long id);
+
+    public BmsTemplateRecordVo selectBmsTemplateRecordVoById(Long id);
+
+    /**
+     * 查询在线模板列表
+     * 
+     * @param bmsTemplateRecord 在线模板
+     * @return 在线模板集合
+     */
+    public List<BmsTemplateRecord> selectBmsTemplateRecordList(BmsTemplateRecord bmsTemplateRecord);
+
+    /**
+     * 新增在线模板
+     * 
+     * @param bmsTemplateRecord 在线模板
+     * @return 结果
+     */
+    public int insertBmsTemplateRecord(BmsTemplateRecord bmsTemplateRecord);
+
+    /**
+     * 修改在线模板
+     * 
+     * @param bmsTemplateRecord 在线模板
+     * @return 结果
+     */
+    public int updateBmsTemplateRecord(BmsTemplateRecord bmsTemplateRecord);
+
+    /**
+     * 删除在线模板
+     * 
+     * @param id 在线模板主键
+     * @return 结果
+     */
+    public int deleteBmsTemplateRecordById(Long id);
+
+    /**
+     * 批量删除在线模板
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBmsTemplateRecordByIds(Long[] ids);
+
+    public List<BmsTemplateRecordQueryVo> selectTemplateRecordVo(BmsTemplateRecordQueryDto bmsTemplateRecordQueryDto);
+
+    public List<BmsTemplateRecordQueryVo> selectTemplateRecordList(@Param("creditCode") String creditCode);
+
+    public List<BmsTemplateRecordQueryVo> selectBmsTemplateNameList(BmsTemplateQueryDto bmsTemplateQueryDto);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BsmFundingInfoMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BsmFundingInfoMapper.java
new file mode 100644
index 0000000..1a36a09
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/mapper/BsmFundingInfoMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.jjh.declaration.entity.BsmFundingInfo;
+
+import java.util.List;
+
+/**
+ * 资金信息Mapper接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface BsmFundingInfoMapper extends BaseMapper<BsmFundingInfo> {
+    /**
+     * 查询资金信息
+     * 
+     * @param id 资金信息主键
+     * @return 资金信息
+     */
+    public BsmFundingInfo selectBsmFundingInfoById(Long id);
+
+    /**
+     * 查询资金信息列表
+     * 
+     * @param bsmFundingInfo 资金信息
+     * @return 资金信息集合
+     */
+    public List<BsmFundingInfo> selectBsmFundingInfoList(BsmFundingInfo bsmFundingInfo);
+
+    /**
+     * 新增资金信息
+     * 
+     * @param bsmFundingInfo 资金信息
+     * @return 结果
+     */
+    public int insertBsmFundingInfo(BsmFundingInfo bsmFundingInfo);
+
+    /**
+     * 修改资金信息
+     * 
+     * @param bsmFundingInfo 资金信息
+     * @return 结果
+     */
+    public int updateBsmFundingInfo(BsmFundingInfo bsmFundingInfo);
+
+    /**
+     * 删除资金信息
+     * 
+     * @param id 资金信息主键
+     * @return 结果
+     */
+    public int deleteBsmFundingInfoById(Long id);
+
+    /**
+     * 批量删除资金信息
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBsmFundingInfoByIds(Long[] ids);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsApprovalInfoService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsApprovalInfoService.java
new file mode 100644
index 0000000..c637829
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsApprovalInfoService.java
@@ -0,0 +1,69 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsApprovalInfo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsApprovalInfoQueryVo;
+
+import java.util.List;
+
+/**
+ * 审批记录信息Service接口
+ * 
+ * @author farben
+ * @date 2023-09-09
+ */
+public interface IBmsApprovalInfoService extends IService<BmsApprovalInfo> {
+    /**
+     * 查询审批记录信息
+     * 
+     * @param id 审批记录信息主键
+     * @return 审批记录信息
+     */
+    public BmsApprovalInfo selectBmsApprovalInfoById(Long id);
+
+    /**
+     * 查询审批记录信息列表
+     * 
+     * @param bmsApprovalInfo 审批记录信息
+     * @return 审批记录信息集合
+     */
+    public List<BmsApprovalInfo> selectBmsApprovalInfoList(BmsApprovalInfo bmsApprovalInfo);
+
+    /**
+     * 新增审批记录信息
+     * 
+     * @param bmsApprovalInfo 审批记录信息
+     * @return 结果
+     */
+    public int insertBmsApprovalInfo(BmsApprovalInfo bmsApprovalInfo);
+
+    /**
+     * 修改审批记录信息
+     * 
+     * @param bmsApprovalInfo 审批记录信息
+     * @return 结果
+     */
+    public int updateBmsApprovalInfo(BmsApprovalInfo bmsApprovalInfo);
+
+    /**
+     * 批量删除审批记录信息
+     * 
+     * @param ids 需要删除的审批记录信息主键集合
+     * @return 结果
+     */
+    public int deleteBmsApprovalInfoByIds(Long[] ids);
+
+    public int updateApproval(Long declarationRecordsId);
+
+    public int updateApprovalList(List<Long> recordsId);
+
+    /**
+     * 删除审批记录信息信息
+     * 
+     * @param id 审批记录信息主键
+     * @return 结果
+     */
+    public int deleteBmsApprovalInfoById(Long id);
+
+    public List<BmsApprovalInfoQueryVo> getApprovalInfoList(Long declarationRecordsId);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsBigStrongAwardService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsBigStrongAwardService.java
new file mode 100644
index 0000000..3c83a34
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsBigStrongAwardService.java
@@ -0,0 +1,65 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsBigStrongAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsBigStrongAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsBigStrongAwardUpdateDto;
+import com.ruoyi.jjh.declaration.entity.vo.BmsBigStrongAwardQueryVo;
+
+import java.util.List;
+
+/**
+ * 做大做强奖详情Service接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface IBmsBigStrongAwardService extends IService<BmsBigStrongAward> {
+    /**
+     * 查询做大做强奖详情
+     * 
+     * @param id 做大做强奖详情主键
+     * @return 做大做强奖详情
+     */
+    public BmsBigStrongAwardQueryVo selectBmsBigStrongAwardById(Long id);
+
+    /**
+     * 查询做大做强奖详情列表
+     * 
+     * @param bmsBigStrongAward 做大做强奖详情
+     * @return 做大做强奖详情集合
+     */
+    public List<BmsBigStrongAward> selectBmsBigStrongAwardList(BmsBigStrongAward bmsBigStrongAward);
+
+    /**
+     * 新增做大做强奖详情
+     * 
+     * @param bmsBigStrongAwardAddDto 做大做强奖详情
+     * @return 结果
+     */
+    public int insertBmsBigStrongAward(BmsBigStrongAwardAddDto bmsBigStrongAwardAddDto);
+
+    /**
+     * 修改做大做强奖详情
+     * 
+     * @param bmsBigStrongAwardUpdateDto 做大做强奖详情
+     * @return 结果
+     */
+    public int updateBmsBigStrongAward(BmsBigStrongAwardUpdateDto bmsBigStrongAwardUpdateDto);
+
+    /**
+     * 批量删除做大做强奖详情
+     * 
+     * @param ids 需要删除的做大做强奖详情主键集合
+     * @return 结果
+     */
+    public int deleteBmsBigStrongAwardByIds(Long[] ids);
+
+    /**
+     * 删除做大做强奖详情信息
+     * 
+     * @param id 做大做强奖详情主键
+     * @return 结果
+     */
+    public int deleteBmsBigStrongAwardById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsBrandingAwardService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsBrandingAwardService.java
new file mode 100644
index 0000000..81c29d7
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsBrandingAwardService.java
@@ -0,0 +1,64 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsBrandingAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsBrandingAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsBrandingAwardUpdateDto;
+
+import java.util.List;
+
+/**
+ * 品牌打造奖补Service接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface IBmsBrandingAwardService extends IService<BmsBrandingAward> {
+    /**
+     * 查询品牌打造奖补
+     * 
+     * @param id 品牌打造奖补主键
+     * @return 品牌打造奖补
+     */
+    public BmsBrandingAward selectBmsBrandingAwardById(Long id);
+
+    /**
+     * 查询品牌打造奖补列表
+     * 
+     * @param bmsBrandingAward 品牌打造奖补
+     * @return 品牌打造奖补集合
+     */
+    public List<BmsBrandingAward> selectBmsBrandingAwardList(BmsBrandingAward bmsBrandingAward);
+
+    /**
+     * 新增品牌打造奖补
+     * 
+     * @param bmsBrandingAwardAddDto 品牌打造奖补
+     * @return 结果
+     */
+    public int insertBmsBrandingAward(BmsBrandingAwardAddDto bmsBrandingAwardAddDto);
+
+    /**
+     * 修改品牌打造奖补
+     * 
+     * @param bmsBrandingAwardUpdateDto 品牌打造奖补
+     * @return 结果
+     */
+    public int updateBmsBrandingAward(BmsBrandingAwardUpdateDto bmsBrandingAwardUpdateDto);
+
+    /**
+     * 批量删除品牌打造奖补
+     * 
+     * @param ids 需要删除的品牌打造奖补主键集合
+     * @return 结果
+     */
+    public int deleteBmsBrandingAwardByIds(Long[] ids);
+
+    /**
+     * 删除品牌打造奖补信息
+     * 
+     * @param id 品牌打造奖补主键
+     * @return 结果
+     */
+    public int deleteBmsBrandingAwardById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsCarrierConstructionAwardService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsCarrierConstructionAwardService.java
new file mode 100644
index 0000000..1c8903e
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsCarrierConstructionAwardService.java
@@ -0,0 +1,64 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsCarrierConstructionAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsCarrierConstructionAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsCarrierConstructionAwardUpdateDto;
+
+import java.util.List;
+
+/**
+ * 载体建设奖补Service接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface IBmsCarrierConstructionAwardService extends IService<BmsCarrierConstructionAward> {
+    /**
+     * 查询载体建设奖补
+     * 
+     * @param id 载体建设奖补主键
+     * @return 载体建设奖补
+     */
+    public BmsCarrierConstructionAward selectBmsCarrierConstructionAwardById(Long id);
+
+    /**
+     * 查询载体建设奖补列表
+     * 
+     * @param bmsCarrierConstructionAward 载体建设奖补
+     * @return 载体建设奖补集合
+     */
+    public List<BmsCarrierConstructionAward> selectBmsCarrierConstructionAwardList(BmsCarrierConstructionAward bmsCarrierConstructionAward);
+
+    /**
+     * 新增载体建设奖补
+     * 
+     * @param bmsCarrierConstructionAwardAddDto 载体建设奖补
+     * @return 结果
+     */
+    public int insertBmsCarrierConstructionAward(BmsCarrierConstructionAwardAddDto bmsCarrierConstructionAwardAddDto);
+
+    /**
+     * 修改载体建设奖补
+     * 
+     * @param bmsCarrierConstructionAwardUpdateDto 载体建设奖补
+     * @return 结果
+     */
+    public int updateBmsCarrierConstructionAward(BmsCarrierConstructionAwardUpdateDto bmsCarrierConstructionAwardUpdateDto);
+
+    /**
+     * 批量删除载体建设奖补
+     * 
+     * @param ids 需要删除的载体建设奖补主键集合
+     * @return 结果
+     */
+    public int deleteBmsCarrierConstructionAwardByIds(Long[] ids);
+
+    /**
+     * 删除载体建设奖补信息
+     * 
+     * @param id 载体建设奖补主键
+     * @return 结果
+     */
+    public int deleteBmsCarrierConstructionAwardById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsCreditManagementService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsCreditManagementService.java
new file mode 100644
index 0000000..e5d3f89
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsCreditManagementService.java
@@ -0,0 +1,64 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsCreditManagement;
+import com.ruoyi.jjh.declaration.entity.dto.BmsCreditManagementAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsCreditManagementUpdateDto;
+
+import java.util.List;
+
+/**
+ * 信用管理奖补Service接口
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+public interface IBmsCreditManagementService extends IService<BmsCreditManagement> {
+    /**
+     * 查询信用管理奖补
+     * 
+     * @param id 信用管理奖补主键
+     * @return 信用管理奖补
+     */
+    public BmsCreditManagement selectBmsCreditManagementById(Long id);
+
+    /**
+     * 查询信用管理奖补列表
+     * 
+     * @param bmsCreditManagement 信用管理奖补
+     * @return 信用管理奖补集合
+     */
+    public List<BmsCreditManagement> selectBmsCreditManagementList(BmsCreditManagement bmsCreditManagement);
+
+    /**
+     * 新增信用管理奖补
+     * 
+     * @param bmsCreditManagementAddDto 信用管理奖补
+     * @return 结果
+     */
+    public int insertBmsCreditManagement(BmsCreditManagementAddDto bmsCreditManagementAddDto);
+
+    /**
+     * 修改信用管理奖补
+     * 
+     * @param bmsCreditManagementUpdateDto 信用管理奖补
+     * @return 结果
+     */
+    public int updateBmsCreditManagement(BmsCreditManagementUpdateDto bmsCreditManagementUpdateDto);
+
+    /**
+     * 批量删除信用管理奖补
+     * 
+     * @param ids 需要删除的信用管理奖补主键集合
+     * @return 结果
+     */
+    public int deleteBmsCreditManagementByIds(Long[] ids);
+
+    /**
+     * 删除信用管理奖补信息
+     * 
+     * @param id 信用管理奖补主键
+     * @return 结果
+     */
+    public int deleteBmsCreditManagementById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsDeclarationRecordsService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsDeclarationRecordsService.java
new file mode 100644
index 0000000..bab862f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsDeclarationRecordsService.java
@@ -0,0 +1,107 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.dto.ApprovalDeclarationRecordsQueryDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsApprovalInfoUpdateDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsDeclarationRecordsAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsDeclarationRecordsDto;
+import com.ruoyi.jjh.declaration.entity.dto.MunicipalReviewDto;
+import com.ruoyi.jjh.declaration.entity.vo.ApprovalDeclarationRecordsQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsDeclarationRecordsQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsMunicipalBureauReviewQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.DeclarationRecordsVo;
+
+import java.util.List;
+
+/**
+ * 在线申报记录Service接口
+ *
+ * @author farben
+ * @date 2023-08-28
+ */
+public interface IBmsDeclarationRecordsService extends IService<BmsDeclarationRecords> {
+    /**
+     * 查询在线申报记录
+     *
+     * @param id 在线申报记录主键
+     * @return 在线申报记录
+     */
+    public DeclarationRecordsVo selectBmsDeclarationRecordsById(Long id);
+
+    /**
+     * 查询在线申报记录列表
+     *
+     * @param bmsDeclarationRecordsDto 在线申报记录
+     * @return 在线申报记录集合
+     */
+    public List<BmsDeclarationRecordsQueryVo> selectBmsDeclarationRecordsList(BmsDeclarationRecordsDto bmsDeclarationRecordsDto);
+
+    public List<BmsDeclarationRecordsQueryVo> selectBmsDeclarationRecordsZwList(BmsDeclarationRecordsDto bmsDeclarationRecordsDto);
+
+
+    public List<BmsMunicipalBureauReviewQueryVo> selectMunicipalBureauReviewList();
+
+    public List<ApprovalDeclarationRecordsQueryVo> approvalList(ApprovalDeclarationRecordsQueryDto approvalDeclarationRecordsQueryDto);
+
+    public int updateBmsApprovalInfo(BmsApprovalInfoUpdateDto bmsApprovalInfoUpdateDto);
+
+    public int updateApprovalInfo(BmsApprovalInfoUpdateDto bmsApprovalInfoUpdateDto);
+
+    /**
+     * 新增在线申报记录
+     *
+     * @param bmsDeclarationRecordsAddDto 在线申报记录
+     * @return 结果
+     */
+    public int insertBmsDeclarationRecords(BmsDeclarationRecordsAddDto bmsDeclarationRecordsAddDto);
+
+    /**
+     * 修改在线申报记录
+     *
+     * @param bmsDeclarationRecords 在线申报记录
+     * @return 结果
+     */
+    public int updateBmsDeclarationRecords(BmsDeclarationRecords bmsDeclarationRecords);
+
+    /**
+     * 市级评定确认
+     *
+     * @param municipalReviewDto
+     * @return {@link int}
+     * @author emiya.xie
+     * @create 2023/9/13 17:18
+     */
+    public int municipalReview(MunicipalReviewDto municipalReviewDto);
+
+    public int municipalReviewNew(MunicipalReviewDto municipalReviewDto);
+
+    /**
+     * 批量删除在线申报记录
+     *
+     * @param ids 需要删除的在线申报记录主键集合
+     * @return 结果
+     */
+    public int deleteBmsDeclarationRecordsByIds(Long[] ids);
+
+    /**
+     * 删除在线申报记录信息
+     *
+     * @param id 在线申报记录主键
+     * @return 结果
+     */
+    public int deleteBmsDeclarationRecordsById(Long id);
+
+    /**
+     * 更新项目名称by Id
+     *
+     * @param id
+     * @param projectName
+     * @return {@link int}
+     * @author emiya.xie
+     * @create 2023/9/6 15:13
+     */
+    public int updateProjectNameById(Long id, String projectName, Long projectId);
+
+    public int updateDeclarationRecords(Long declarationId, Long projectId, String projectName, Long status);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsEnterpriseBasicInfoService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsEnterpriseBasicInfoService.java
new file mode 100644
index 0000000..859498f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsEnterpriseBasicInfoService.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseBasicInfo;
+
+import java.util.List;
+
+/**
+ * 企业基础信息Service接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface IBmsEnterpriseBasicInfoService extends IService<BmsEnterpriseBasicInfo> {
+    /**
+     * 查询企业基础信息
+     * 
+     * @param id 企业基础信息主键
+     * @return 企业基础信息
+     */
+    public BmsEnterpriseBasicInfo selectBmsEnterpriseBasicInfoById(Long id);
+
+    /**
+     * 查询企业基础信息列表
+     * 
+     * @param bmsEnterpriseBasicInfo 企业基础信息
+     * @return 企业基础信息集合
+     */
+    public List<BmsEnterpriseBasicInfo> selectBmsEnterpriseBasicInfoList(BmsEnterpriseBasicInfo bmsEnterpriseBasicInfo);
+
+    /**
+     * 新增企业基础信息
+     * 
+     * @param bmsEnterpriseBasicInfo 企业基础信息
+     * @return 结果
+     */
+    public int insertBmsEnterpriseBasicInfo(BmsEnterpriseBasicInfo bmsEnterpriseBasicInfo);
+
+    /**
+     * 修改企业基础信息
+     * 
+     * @param bmsEnterpriseBasicInfo 企业基础信息
+     * @return 结果
+     */
+    public int updateBmsEnterpriseBasicInfo(BmsEnterpriseBasicInfo bmsEnterpriseBasicInfo);
+
+    /**
+     * 批量删除企业基础信息
+     * 
+     * @param ids 需要删除的企业基础信息主键集合
+     * @return 结果
+     */
+    public int deleteBmsEnterpriseBasicInfoByIds(Long[] ids);
+
+    /**
+     * 删除企业基础信息信息
+     * 
+     * @param id 企业基础信息主键
+     * @return 结果
+     */
+    public int deleteBmsEnterpriseBasicInfoById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsEnterpriseDirectoryService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsEnterpriseDirectoryService.java
new file mode 100644
index 0000000..e327545
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsEnterpriseDirectoryService.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseDirectory;
+
+import java.util.List;
+
+/**
+ * 企业名录Service接口
+ * 
+ * @author farben
+ * @date 2023-08-31
+ */
+public interface IBmsEnterpriseDirectoryService extends IService<BmsEnterpriseDirectory> {
+    /**
+     * 查询企业名录
+     * 
+     * @param id 企业名录主键
+     * @return 企业名录
+     */
+    public BmsEnterpriseDirectory selectBmsEnterpriseDirectoryById(Long id);
+
+    /**
+     * 查询企业名录列表
+     * 
+     * @param bmsEnterpriseDirectory 企业名录
+     * @return 企业名录集合
+     */
+    public List<BmsEnterpriseDirectory> selectBmsEnterpriseDirectoryList(BmsEnterpriseDirectory bmsEnterpriseDirectory);
+
+    /**
+     * 新增企业名录
+     * 
+     * @param bmsEnterpriseDirectory 企业名录
+     * @return 结果
+     */
+    public int insertBmsEnterpriseDirectory(BmsEnterpriseDirectory bmsEnterpriseDirectory);
+
+    /**
+     * 修改企业名录
+     * 
+     * @param bmsEnterpriseDirectory 企业名录
+     * @return 结果
+     */
+    public int updateBmsEnterpriseDirectory(BmsEnterpriseDirectory bmsEnterpriseDirectory);
+
+    /**
+     * 批量删除企业名录
+     * 
+     * @param ids 需要删除的企业名录主键集合
+     * @return 结果
+     */
+    public int deleteBmsEnterpriseDirectoryByIds(Long[] ids);
+
+    /**
+     * 删除企业名录信息
+     * 
+     * @param id 企业名录主键
+     * @return 结果
+     */
+    public int deleteBmsEnterpriseDirectoryById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsFieldInfoService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsFieldInfoService.java
new file mode 100644
index 0000000..930a3b9
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsFieldInfoService.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsFieldInfo;
+
+import java.util.List;
+
+/**
+ * 模板字段填写详情Service接口
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+public interface IBmsFieldInfoService extends IService<BmsFieldInfo> {
+    /**
+     * 查询模板字段填写详情
+     * 
+     * @param id 模板字段填写详情主键
+     * @return 模板字段填写详情
+     */
+    public BmsFieldInfo selectBmsFieldInfoById(Long id);
+
+    /**
+     * 查询模板字段填写详情列表
+     * 
+     * @param bmsFieldInfo 模板字段填写详情
+     * @return 模板字段填写详情集合
+     */
+    public List<BmsFieldInfo> selectBmsFieldInfoList(BmsFieldInfo bmsFieldInfo);
+
+    /**
+     * 新增模板字段填写详情
+     * 
+     * @param bmsFieldInfo 模板字段填写详情
+     * @return 结果
+     */
+    public int insertBmsFieldInfo(BmsFieldInfo bmsFieldInfo);
+
+    /**
+     * 修改模板字段填写详情
+     * 
+     * @param bmsFieldInfo 模板字段填写详情
+     * @return 结果
+     */
+    public int updateBmsFieldInfo(BmsFieldInfo bmsFieldInfo);
+
+    /**
+     * 批量删除模板字段填写详情
+     * 
+     * @param ids 需要删除的模板字段填写详情主键集合
+     * @return 结果
+     */
+    public int deleteBmsFieldInfoByIds(Long[] ids);
+
+    /**
+     * 删除模板字段填写详情信息
+     * 
+     * @param id 模板字段填写详情主键
+     * @return 结果
+     */
+    public int deleteBmsFieldInfoById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsFileInfoService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsFileInfoService.java
new file mode 100644
index 0000000..44496b5
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsFileInfoService.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsFileInfo;
+
+import java.util.List;
+
+/**
+ * 文件存储说明详情Service接口
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+public interface IBmsFileInfoService extends IService<BmsFileInfo> {
+    /**
+     * 查询文件存储说明详情
+     * 
+     * @param id 文件存储说明详情主键
+     * @return 文件存储说明详情
+     */
+    public BmsFileInfo selectBmsFileInfoById(Long id);
+
+    /**
+     * 查询文件存储说明详情列表
+     * 
+     * @param bmsFileInfo 文件存储说明详情
+     * @return 文件存储说明详情集合
+     */
+    public List<BmsFileInfo> selectBmsFileInfoList(BmsFileInfo bmsFileInfo);
+
+    /**
+     * 新增文件存储说明详情
+     * 
+     * @param bmsFileInfo 文件存储说明详情
+     * @return 结果
+     */
+    public int insertBmsFileInfo(BmsFileInfo bmsFileInfo);
+
+    /**
+     * 修改文件存储说明详情
+     * 
+     * @param bmsFileInfo 文件存储说明详情
+     * @return 结果
+     */
+    public int updateBmsFileInfo(BmsFileInfo bmsFileInfo);
+
+    /**
+     * 批量删除文件存储说明详情
+     * 
+     * @param ids 需要删除的文件存储说明详情主键集合
+     * @return 结果
+     */
+    public int deleteBmsFileInfoByIds(Long[] ids);
+
+    /**
+     * 删除文件存储说明详情信息
+     * 
+     * @param id 文件存储说明详情主键
+     * @return 结果
+     */
+    public int deleteBmsFileInfoById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsFundingDetailService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsFundingDetailService.java
new file mode 100644
index 0000000..ac56dfd
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsFundingDetailService.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsFundingDetail;
+
+import java.util.List;
+
+/**
+ * 资金信息详情Service接口
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+public interface IBmsFundingDetailService extends IService<BmsFundingDetail> {
+    /**
+     * 查询资金信息详情
+     * 
+     * @param id 资金信息详情主键
+     * @return 资金信息详情
+     */
+    public BmsFundingDetail selectBmsFundingDetailById(Long id);
+
+    /**
+     * 查询资金信息详情列表
+     * 
+     * @param bmsFundingDetail 资金信息详情
+     * @return 资金信息详情集合
+     */
+    public List<BmsFundingDetail> selectBmsFundingDetailList(BmsFundingDetail bmsFundingDetail);
+
+    /**
+     * 新增资金信息详情
+     * 
+     * @param bmsFundingDetail 资金信息详情
+     * @return 结果
+     */
+    public int insertBmsFundingDetail(BmsFundingDetail bmsFundingDetail);
+
+    /**
+     * 修改资金信息详情
+     * 
+     * @param bmsFundingDetail 资金信息详情
+     * @return 结果
+     */
+    public int updateBmsFundingDetail(BmsFundingDetail bmsFundingDetail);
+
+    /**
+     * 批量删除资金信息详情
+     * 
+     * @param ids 需要删除的资金信息详情主键集合
+     * @return 结果
+     */
+    public int deleteBmsFundingDetailByIds(Long[] ids);
+
+    /**
+     * 删除资金信息详情信息
+     * 
+     * @param id 资金信息详情主键
+     * @return 结果
+     */
+    public int deleteBmsFundingDetailById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsIndustrialInternetAwardService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsIndustrialInternetAwardService.java
new file mode 100644
index 0000000..615a4aa
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsIndustrialInternetAwardService.java
@@ -0,0 +1,64 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsIndustrialInternetAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsIndustrialInternetAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsIndustrialInternetAwardUpdateDto;
+
+import java.util.List;
+
+/**
+ * 5G+工业互联网奖补Service接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface IBmsIndustrialInternetAwardService extends IService<BmsIndustrialInternetAward> {
+    /**
+     * 查询5G+工业互联网奖补
+     * 
+     * @param id 5G+工业互联网奖补主键
+     * @return 5G+工业互联网奖补
+     */
+    public BmsIndustrialInternetAward selectBmsIndustrialInternetAwardById(Long id);
+
+    /**
+     * 查询5G+工业互联网奖补列表
+     * 
+     * @param bmsIndustrialInternetAward 5G+工业互联网奖补
+     * @return 5G+工业互联网奖补集合
+     */
+    public List<BmsIndustrialInternetAward> selectBmsIndustrialInternetAwardList(BmsIndustrialInternetAward bmsIndustrialInternetAward);
+
+    /**
+     * 新增5G+工业互联网奖补
+     * 
+     * @param bmsIndustrialInternetAwardAddDto 5G+工业互联网奖补
+     * @return 结果
+     */
+    public int insertBmsIndustrialInternetAward(BmsIndustrialInternetAwardAddDto bmsIndustrialInternetAwardAddDto);
+
+    /**
+     * 修改5G+工业互联网奖补
+     * 
+     * @param bmsIndustrialInternetAwardUpdateDto 5G+工业互联网奖补
+     * @return 结果
+     */
+    public int updateBmsIndustrialInternetAward(BmsIndustrialInternetAwardUpdateDto bmsIndustrialInternetAwardUpdateDto);
+
+    /**
+     * 批量删除5G+工业互联网奖补
+     * 
+     * @param ids 需要删除的5G+工业互联网奖补主键集合
+     * @return 结果
+     */
+    public int deleteBmsIndustrialInternetAwardByIds(Long[] ids);
+
+    /**
+     * 删除5G+工业互联网奖补信息
+     * 
+     * @param id 5G+工业互联网奖补主键
+     * @return 结果
+     */
+    public int deleteBmsIndustrialInternetAwardById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsIntegrationIndustriesService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsIntegrationIndustriesService.java
new file mode 100644
index 0000000..87dcb29
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsIntegrationIndustriesService.java
@@ -0,0 +1,64 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsIntegrationIndustries;
+import com.ruoyi.jjh.declaration.entity.dto.BmsIntegrationIndustriesAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsIntegrationIndustriesUpdateDto;
+
+import java.util.List;
+
+/**
+ * 两业融合奖补Service接口
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+public interface IBmsIntegrationIndustriesService extends IService<BmsIntegrationIndustries> {
+    /**
+     * 查询两业融合奖补
+     * 
+     * @param id 两业融合奖补主键
+     * @return 两业融合奖补
+     */
+    public BmsIntegrationIndustries selectBmsIntegrationIndustriesById(Long id);
+
+    /**
+     * 查询两业融合奖补列表
+     * 
+     * @param bmsIntegrationIndustries 两业融合奖补
+     * @return 两业融合奖补集合
+     */
+    public List<BmsIntegrationIndustries> selectBmsIntegrationIndustriesList(BmsIntegrationIndustries bmsIntegrationIndustries);
+
+    /**
+     * 新增两业融合奖补
+     * 
+     * @param bmsIntegrationIndustriesAddDto 两业融合奖补
+     * @return 结果
+     */
+    public int insertBmsIntegrationIndustries(BmsIntegrationIndustriesAddDto bmsIntegrationIndustriesAddDto);
+
+    /**
+     * 修改两业融合奖补
+     * 
+     * @param bmsIntegrationIndustriesUpdateDto 两业融合奖补
+     * @return 结果
+     */
+    public int updateBmsIntegrationIndustries(BmsIntegrationIndustriesUpdateDto bmsIntegrationIndustriesUpdateDto);
+
+    /**
+     * 批量删除两业融合奖补
+     * 
+     * @param ids 需要删除的两业融合奖补主键集合
+     * @return 结果
+     */
+    public int deleteBmsIntegrationIndustriesByIds(Long[] ids);
+
+    /**
+     * 删除两业融合奖补信息
+     * 
+     * @param id 两业融合奖补主键
+     * @return 结果
+     */
+    public int deleteBmsIntegrationIndustriesById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsLogisticsDevelopmentAwardService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsLogisticsDevelopmentAwardService.java
new file mode 100644
index 0000000..6a1300b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsLogisticsDevelopmentAwardService.java
@@ -0,0 +1,64 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsLogisticsDevelopmentAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsLogisticsDevelopmentAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsLogisticsDevelopmentAwardUpdateDto;
+
+import java.util.List;
+
+/**
+ * 物流发展奖补Service接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface IBmsLogisticsDevelopmentAwardService extends IService<BmsLogisticsDevelopmentAward> {
+    /**
+     * 查询物流发展奖补
+     * 
+     * @param id 物流发展奖补主键
+     * @return 物流发展奖补
+     */
+    public BmsLogisticsDevelopmentAward selectBmsLogisticsDevelopmentAwardById(Long id);
+
+    /**
+     * 查询物流发展奖补列表
+     * 
+     * @param bmsLogisticsDevelopmentAward 物流发展奖补
+     * @return 物流发展奖补集合
+     */
+    public List<BmsLogisticsDevelopmentAward> selectBmsLogisticsDevelopmentAwardList(BmsLogisticsDevelopmentAward bmsLogisticsDevelopmentAward);
+
+    /**
+     * 新增物流发展奖补
+     * 
+     * @param bmsLogisticsDevelopmentAwardAddDto 物流发展奖补
+     * @return 结果
+     */
+    public int insertBmsLogisticsDevelopmentAward(BmsLogisticsDevelopmentAwardAddDto bmsLogisticsDevelopmentAwardAddDto);
+
+    /**
+     * 修改物流发展奖补
+     * 
+     * @param bmsLogisticsDevelopmentAwardUpdateDto 物流发展奖补
+     * @return 结果
+     */
+    public int updateBmsLogisticsDevelopmentAward(BmsLogisticsDevelopmentAwardUpdateDto bmsLogisticsDevelopmentAwardUpdateDto);
+
+    /**
+     * 批量删除物流发展奖补
+     * 
+     * @param ids 需要删除的物流发展奖补主键集合
+     * @return 结果
+     */
+    public int deleteBmsLogisticsDevelopmentAwardByIds(Long[] ids);
+
+    /**
+     * 删除物流发展奖补信息
+     * 
+     * @param id 物流发展奖补主键
+     * @return 结果
+     */
+    public int deleteBmsLogisticsDevelopmentAwardById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsManufacturingServicesAwardService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsManufacturingServicesAwardService.java
new file mode 100644
index 0000000..7b08c55
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsManufacturingServicesAwardService.java
@@ -0,0 +1,64 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsManufacturingServicesAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsManufacturingServicesAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsManufacturingServicesAwardUpdateDto;
+
+import java.util.List;
+
+/**
+ * 制造服务业有效投入奖补Service接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface IBmsManufacturingServicesAwardService extends IService<BmsManufacturingServicesAward> {
+    /**
+     * 查询制造服务业有效投入奖补
+     * 
+     * @param id 制造服务业有效投入奖补主键
+     * @return 制造服务业有效投入奖补
+     */
+    public BmsManufacturingServicesAward selectBmsManufacturingServicesAwardById(Long id);
+
+    /**
+     * 查询制造服务业有效投入奖补列表
+     * 
+     * @param bmsManufacturingServicesAward 制造服务业有效投入奖补
+     * @return 制造服务业有效投入奖补集合
+     */
+    public List<BmsManufacturingServicesAward> selectBmsManufacturingServicesAwardList(BmsManufacturingServicesAward bmsManufacturingServicesAward);
+
+    /**
+     * 新增制造服务业有效投入奖补
+     * 
+     * @param bmsManufacturingServicesAwardAddDto 制造服务业有效投入奖补
+     * @return 结果
+     */
+    public int insertBmsManufacturingServicesAward(BmsManufacturingServicesAwardAddDto bmsManufacturingServicesAwardAddDto);
+
+    /**
+     * 修改制造服务业有效投入奖补
+     * 
+     * @param bmsManufacturingServicesAwardUpdateDto 制造服务业有效投入奖补
+     * @return 结果
+     */
+    public int updateBmsManufacturingServicesAward(BmsManufacturingServicesAwardUpdateDto bmsManufacturingServicesAwardUpdateDto);
+
+    /**
+     * 批量删除制造服务业有效投入奖补
+     * 
+     * @param ids 需要删除的制造服务业有效投入奖补主键集合
+     * @return 结果
+     */
+    public int deleteBmsManufacturingServicesAwardByIds(Long[] ids);
+
+    /**
+     * 删除制造服务业有效投入奖补信息
+     * 
+     * @param id 制造服务业有效投入奖补主键
+     * @return 结果
+     */
+    public int deleteBmsManufacturingServicesAwardById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsPlatformConstructionAwardService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsPlatformConstructionAwardService.java
new file mode 100644
index 0000000..d611e74
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsPlatformConstructionAwardService.java
@@ -0,0 +1,64 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsPlatformConstructionAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsPlatformConstructionAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsPlatformConstructionAwardUpdateDto;
+
+import java.util.List;
+
+/**
+ * 平台建设奖补Service接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface IBmsPlatformConstructionAwardService extends IService<BmsPlatformConstructionAward> {
+    /**
+     * 查询平台建设奖补
+     * 
+     * @param id 平台建设奖补主键
+     * @return 平台建设奖补
+     */
+    public BmsPlatformConstructionAward selectBmsPlatformConstructionAwardById(Long id);
+
+    /**
+     * 查询平台建设奖补列表
+     * 
+     * @param bmsPlatformConstructionAward 平台建设奖补
+     * @return 平台建设奖补集合
+     */
+    public List<BmsPlatformConstructionAward> selectBmsPlatformConstructionAwardList(BmsPlatformConstructionAward bmsPlatformConstructionAward);
+
+    /**
+     * 新增平台建设奖补
+     * 
+     * @param bmsPlatformConstructionAwardAddDto 平台建设奖补
+     * @return 结果
+     */
+    public int insertBmsPlatformConstructionAward(BmsPlatformConstructionAwardAddDto bmsPlatformConstructionAwardAddDto);
+
+    /**
+     * 修改平台建设奖补
+     * 
+     * @param bmsPlatformConstructionAwardUpdateDto 平台建设奖补
+     * @return 结果
+     */
+    public int updateBmsPlatformConstructionAward(BmsPlatformConstructionAwardUpdateDto bmsPlatformConstructionAwardUpdateDto);
+
+    /**
+     * 批量删除平台建设奖补
+     * 
+     * @param ids 需要删除的平台建设奖补主键集合
+     * @return 结果
+     */
+    public int deleteBmsPlatformConstructionAwardByIds(Long[] ids);
+
+    /**
+     * 删除平台建设奖补信息
+     * 
+     * @param id 平台建设奖补主键
+     * @return 结果
+     */
+    public int deleteBmsPlatformConstructionAwardById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsProcessInfoService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsProcessInfoService.java
new file mode 100644
index 0000000..c2ea2c1
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsProcessInfoService.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsProcessInfo;
+
+import java.util.List;
+
+/**
+ * 审批流程Service接口
+ * 
+ * @author farben
+ * @date 2023-09-09
+ */
+public interface IBmsProcessInfoService extends IService<BmsProcessInfo> {
+    /**
+     * 查询审批流程
+     * 
+     * @param id 审批流程主键
+     * @return 审批流程
+     */
+    public BmsProcessInfo selectBmsProcessInfoById(Long id);
+
+    /**
+     * 查询审批流程列表
+     * 
+     * @param bmsProcessInfo 审批流程
+     * @return 审批流程集合
+     */
+    public List<BmsProcessInfo> selectBmsProcessInfoList(BmsProcessInfo bmsProcessInfo);
+
+    /**
+     * 新增审批流程
+     * 
+     * @param bmsProcessInfo 审批流程
+     * @return 结果
+     */
+    public int insertBmsProcessInfo(BmsProcessInfo bmsProcessInfo);
+
+    /**
+     * 修改审批流程
+     * 
+     * @param bmsProcessInfo 审批流程
+     * @return 结果
+     */
+    public int updateBmsProcessInfo(BmsProcessInfo bmsProcessInfo);
+
+    /**
+     * 批量删除审批流程
+     * 
+     * @param ids 需要删除的审批流程主键集合
+     * @return 结果
+     */
+    public int deleteBmsProcessInfoByIds(Long[] ids);
+
+    /**
+     * 删除审批流程信息
+     * 
+     * @param id 审批流程主键
+     * @return 结果
+     */
+    public int deleteBmsProcessInfoById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsProjectInfoService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsProjectInfoService.java
new file mode 100644
index 0000000..94075e1
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsProjectInfoService.java
@@ -0,0 +1,65 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsProjectInfo;
+
+import java.util.List;
+
+/**
+ * 项目基本信息Service接口
+ * 
+ * @author farben
+ * @date 2023-09-09
+ */
+public interface IBmsProjectInfoService extends IService<BmsProjectInfo> {
+    /**
+     * 查询项目基本信息
+     * 
+     * @param id 项目基本信息主键
+     * @return 项目基本信息
+     */
+    public BmsProjectInfo selectBmsProjectInfoById(Long id);
+
+    /**
+     * 查询项目基本信息列表
+     * 
+     * @param bmsProjectInfo 项目基本信息
+     * @return 项目基本信息集合
+     */
+    public List<BmsProjectInfo> selectBmsProjectInfoList(BmsProjectInfo bmsProjectInfo);
+
+    /**
+     * 新增项目基本信息
+     * 
+     * @param bmsProjectInfo 项目基本信息
+     * @return 结果
+     */
+    public int insertBmsProjectInfo(BmsProjectInfo bmsProjectInfo);
+
+    /**
+     * 修改项目基本信息
+     * 
+     * @param bmsProjectInfo 项目基本信息
+     * @return 结果
+     */
+    public int updateBmsProjectInfo(BmsProjectInfo bmsProjectInfo);
+
+    /**
+     * 批量删除项目基本信息
+     * 
+     * @param ids 需要删除的项目基本信息主键集合
+     * @return 结果
+     */
+    public int deleteBmsProjectInfoByIds(Long[] ids);
+
+    /**
+     * 删除项目基本信息信息
+     * 
+     * @param id 项目基本信息主键
+     * @return 结果
+     */
+    public int deleteBmsProjectInfoById(Long id);
+
+
+    public BmsProjectInfo getProjectInfo(Long templateRecordId);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsProjectSettlementAwardService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsProjectSettlementAwardService.java
new file mode 100644
index 0000000..1ea4af3
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsProjectSettlementAwardService.java
@@ -0,0 +1,65 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsProjectSettlementAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsProjectSettlementAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsProjectSettlementAwardUpdateDto;
+import com.ruoyi.jjh.declaration.entity.vo.BmsProjectSettlementAwardQueryVo;
+
+import java.util.List;
+
+/**
+ * 项目落户奖补Service接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface IBmsProjectSettlementAwardService extends IService<BmsProjectSettlementAward> {
+    /**
+     * 查询项目落户奖补
+     * 
+     * @param id 项目落户奖补主键
+     * @return 项目落户奖补
+     */
+    public BmsProjectSettlementAwardQueryVo selectBmsProjectSettlementAwardById(Long id);
+
+    /**
+     * 查询项目落户奖补列表
+     * 
+     * @param bmsProjectSettlementAward 项目落户奖补
+     * @return 项目落户奖补集合
+     */
+    public List<BmsProjectSettlementAward> selectBmsProjectSettlementAwardList(BmsProjectSettlementAward bmsProjectSettlementAward);
+
+    /**
+     * 新增项目落户奖补
+     * 
+     * @param bmsProjectSettlementAwardAddDto 项目落户奖补
+     * @return 结果
+     */
+    public int insertBmsProjectSettlementAward(BmsProjectSettlementAwardAddDto bmsProjectSettlementAwardAddDto);
+
+    /**
+     * 修改项目落户奖补
+     * 
+     * @param bmsProjectSettlementAwardUpdateDto 项目落户奖补
+     * @return 结果
+     */
+    public int updateBmsProjectSettlementAward(BmsProjectSettlementAwardUpdateDto bmsProjectSettlementAwardUpdateDto);
+
+    /**
+     * 批量删除项目落户奖补
+     * 
+     * @param ids 需要删除的项目落户奖补主键集合
+     * @return 结果
+     */
+    public int deleteBmsProjectSettlementAwardByIds(Long[] ids);
+
+    /**
+     * 删除项目落户奖补信息
+     * 
+     * @param id 项目落户奖补主键
+     * @return 结果
+     */
+    public int deleteBmsProjectSettlementAwardById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsSceneOpeningAwardService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsSceneOpeningAwardService.java
new file mode 100644
index 0000000..f2448e0
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsSceneOpeningAwardService.java
@@ -0,0 +1,64 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsSceneOpeningAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsSceneOpeningAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsSceneOpeningAwardUpdateDto;
+
+import java.util.List;
+
+/**
+ * 场景开放奖补Service接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface IBmsSceneOpeningAwardService extends IService<BmsSceneOpeningAward> {
+    /**
+     * 查询场景开放奖补
+     * 
+     * @param id 场景开放奖补主键
+     * @return 场景开放奖补
+     */
+    public BmsSceneOpeningAward selectBmsSceneOpeningAwardById(Long id);
+
+    /**
+     * 查询场景开放奖补列表
+     * 
+     * @param bmsSceneOpeningAward 场景开放奖补
+     * @return 场景开放奖补集合
+     */
+    public List<BmsSceneOpeningAward> selectBmsSceneOpeningAwardList(BmsSceneOpeningAward bmsSceneOpeningAward);
+
+    /**
+     * 新增场景开放奖补
+     * 
+     * @param bmsSceneOpeningAwardAddDto 场景开放奖补
+     * @return 结果
+     */
+    public int insertBmsSceneOpeningAward(BmsSceneOpeningAwardAddDto bmsSceneOpeningAwardAddDto);
+
+    /**
+     * 修改场景开放奖补
+     * 
+     * @param bmsSceneOpeningAwardUpdateDto 场景开放奖补
+     * @return 结果
+     */
+    public int updateBmsSceneOpeningAward(BmsSceneOpeningAwardUpdateDto bmsSceneOpeningAwardUpdateDto);
+
+    /**
+     * 批量删除场景开放奖补
+     * 
+     * @param ids 需要删除的场景开放奖补主键集合
+     * @return 结果
+     */
+    public int deleteBmsSceneOpeningAwardByIds(Long[] ids);
+
+    /**
+     * 删除场景开放奖补信息
+     * 
+     * @param id 场景开放奖补主键
+     * @return 结果
+     */
+    public int deleteBmsSceneOpeningAwardById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsTemplateInfoService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsTemplateInfoService.java
new file mode 100644
index 0000000..43afa79
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsTemplateInfoService.java
@@ -0,0 +1,77 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsTemplateInfo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsTemplateInfoQueryVo;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 申报模板信息Service接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface IBmsTemplateInfoService extends IService<BmsTemplateInfo> {
+    /**
+     * 查询申报模板信息
+     * 
+     * @param id 申报模板信息主键
+     * @return 申报模板信息
+     */
+    public BmsTemplateInfo selectBmsTemplateInfoById(Long id);
+
+    /**
+     * 查询申报模板信息列表
+     * 
+     * @param bmsTemplateInfo 申报模板信息
+     * @return 申报模板信息集合
+     */
+    public List<BmsTemplateInfoQueryVo> selectBmsTemplateInfoList(BmsTemplateInfo bmsTemplateInfo);
+
+    /**
+     * 导出模板表单
+     *
+     * @param request
+     * @param response
+     * @param id
+     * @return
+     * @author emiya.xie
+     * @create 2023/8/31 10:25
+     */
+    public void exportTemplate(HttpServletRequest request, HttpServletResponse response, Long id);
+
+    /**
+     * 新增申报模板信息
+     * 
+     * @param bmsTemplateInfo 申报模板信息
+     * @return 结果
+     */
+    public int insertBmsTemplateInfo(BmsTemplateInfo bmsTemplateInfo);
+
+    /**
+     * 修改申报模板信息
+     * 
+     * @param bmsTemplateInfo 申报模板信息
+     * @return 结果
+     */
+    public int updateBmsTemplateInfo(BmsTemplateInfo bmsTemplateInfo);
+
+    /**
+     * 批量删除申报模板信息
+     * 
+     * @param ids 需要删除的申报模板信息主键集合
+     * @return 结果
+     */
+    public int deleteBmsTemplateInfoByIds(Long[] ids);
+
+    /**
+     * 删除申报模板信息信息
+     * 
+     * @param id 申报模板信息主键
+     * @return 结果
+     */
+    public int deleteBmsTemplateInfoById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsTemplateRecordService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsTemplateRecordService.java
new file mode 100644
index 0000000..dcca8b0
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBmsTemplateRecordService.java
@@ -0,0 +1,71 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BmsTemplateRecord;
+import com.ruoyi.jjh.declaration.entity.dto.BmsTemplateQueryDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsTemplateRecordAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsTemplateRecordQueryDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsTemplateRecordUpdateDto;
+import com.ruoyi.jjh.declaration.entity.vo.BmsTemplateRecordQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsTemplateRecordVo;
+
+import java.util.List;
+
+/**
+ * 在线模板Service接口
+ * 
+ * @author farben
+ * @date 2023-09-07
+ */
+public interface IBmsTemplateRecordService extends IService<BmsTemplateRecord> {
+    /**
+     * 查询在线模板
+     * 
+     * @param id 在线模板主键
+     * @return 在线模板
+     */
+    public BmsTemplateRecordVo selectBmsTemplateRecordById(Long id);
+
+    /**
+     * 查询在线模板列表
+     * 
+     * @param bmsTemplateRecordQueryDto 在线模板
+     * @return 在线模板集合
+     */
+    public List<BmsTemplateRecordQueryVo> selectBmsTemplateRecordList(BmsTemplateRecordQueryDto bmsTemplateRecordQueryDto);
+
+    public List<BmsTemplateRecordQueryVo> selectTemplateRecordList(String creditCode);
+
+    public List<BmsTemplateRecordQueryVo> selectBmsTemplateNameList(BmsTemplateQueryDto bmsTemplateQueryDto);
+    /**
+     * 新增在线模板
+     * 
+     * @param bmsTemplateRecordAddDto 在线模板
+     * @return 结果
+     */
+    public int insertBmsTemplateRecord(BmsTemplateRecordAddDto bmsTemplateRecordAddDto);
+
+    /**
+     * 修改在线模板
+     * 
+     * @param bmsTemplateRecordUpdateDto 在线模板
+     * @return 结果
+     */
+    public int updateBmsTemplateRecord(BmsTemplateRecordUpdateDto bmsTemplateRecordUpdateDto);
+
+    /**
+     * 批量删除在线模板
+     * 
+     * @param ids 需要删除的在线模板主键集合
+     * @return 结果
+     */
+    public int deleteBmsTemplateRecordByIds(Long[] ids);
+
+    /**
+     * 删除在线模板信息
+     * 
+     * @param id 在线模板主键
+     * @return 结果
+     */
+    public int deleteBmsTemplateRecordById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBsmFundingInfoService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBsmFundingInfoService.java
new file mode 100644
index 0000000..7f9fbd0
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IBsmFundingInfoService.java
@@ -0,0 +1,62 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.declaration.entity.BsmFundingInfo;
+
+import java.util.List;
+
+/**
+ * 资金信息Service接口
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+public interface IBsmFundingInfoService extends IService<BsmFundingInfo> {
+    /**
+     * 查询资金信息
+     * 
+     * @param id 资金信息主键
+     * @return 资金信息
+     */
+    public BsmFundingInfo selectBsmFundingInfoById(Long id);
+
+    /**
+     * 查询资金信息列表
+     * 
+     * @param bsmFundingInfo 资金信息
+     * @return 资金信息集合
+     */
+    public List<BsmFundingInfo> selectBsmFundingInfoList(BsmFundingInfo bsmFundingInfo);
+
+    /**
+     * 新增资金信息
+     * 
+     * @param bsmFundingInfo 资金信息
+     * @return 结果
+     */
+    public int insertBsmFundingInfo(BsmFundingInfo bsmFundingInfo);
+
+    /**
+     * 修改资金信息
+     * 
+     * @param bsmFundingInfo 资金信息
+     * @return 结果
+     */
+    public int updateBsmFundingInfo(BsmFundingInfo bsmFundingInfo);
+
+    /**
+     * 批量删除资金信息
+     * 
+     * @param ids 需要删除的资金信息主键集合
+     * @return 结果
+     */
+    public int deleteBsmFundingInfoByIds(Long[] ids);
+
+    /**
+     * 删除资金信息信息
+     * 
+     * @param id 资金信息主键
+     * @return 结果
+     */
+    public int deleteBsmFundingInfoById(Long id);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/ICommonService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/ICommonService.java
new file mode 100644
index 0000000..ed6670e
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/ICommonService.java
@@ -0,0 +1,40 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.ruoyi.jjh.declaration.entity.dto.BmsApprovalInfoUpdateDto;
+import com.ruoyi.jjh.declaration.entity.dto.OpenInterfaceApplyAddDto;
+import com.ruoyi.jjh.declaration.entity.vo.DeclarationRecordsVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 公共服务
+ * <p>
+ *
+ * @interfaceName: CommonService
+ * @author: emiya.xie
+ * @create: 2023-08-31 15:43
+ */
+public interface ICommonService {
+
+    public Long checkEnterprise(String creditCode,int templateRecordId);
+
+    public void checkDeclaration(String creditCode,int templateRecordId);
+
+    public void checkEnterprise(Long enterpriseId,Long templateId);
+
+    public void getData(int templateRecordId, Long detailId, DeclarationRecordsVo declarationRecordsVo);
+
+    public void insertProcessInfo(Long declarationRecordId,Integer approvalType);
+
+    public void insertAuditRecord(Long declarationRecordId,Integer approvalType);
+
+    public void cleanProcessList(Long declarationRecordId);
+
+    public List<Long> getUserIds(Long userId);
+
+    public int updateBmsApprovalInfo(BmsApprovalInfoUpdateDto bmsApprovalInfoUpdateDto);
+
+    public int insertOpenInterfaceApplyAddDto(OpenInterfaceApplyAddDto openInterfaceApplyAddDto);
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IOpenInterfaceService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IOpenInterfaceService.java
new file mode 100644
index 0000000..ff4abd9
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/IOpenInterfaceService.java
@@ -0,0 +1,26 @@
+package com.ruoyi.jjh.declaration.service;
+
+import com.ruoyi.jjh.declaration.entity.BmsProjectInfo;
+import com.ruoyi.jjh.declaration.entity.dto.OpenInterfaceApplyAddDto;
+import com.ruoyi.jjh.declaration.entity.vo.EnterpriseInfoTemplateVo;
+
+
+/**
+ * <p>
+ * 开放接口
+ * <p>
+ *
+ * @className: IOpenInterfaceService
+ * @author: emiya.xie
+ * @create: 2023-09-12 10:13
+ */
+public interface IOpenInterfaceService {
+
+    public EnterpriseInfoTemplateVo enterpriseList(String creditCode);
+
+
+    public int insertOpenInterfaceApplyAddDto(OpenInterfaceApplyAddDto openInterfaceApplyAddDto);
+
+    public BmsProjectInfo getProjectInfo(Long templateRecordId);
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsApprovalInfoServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsApprovalInfoServiceImpl.java
new file mode 100644
index 0000000..95ee5ab
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsApprovalInfoServiceImpl.java
@@ -0,0 +1,105 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsApprovalInfo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsApprovalInfoQueryVo;
+import com.ruoyi.jjh.declaration.mapper.BmsApprovalInfoMapper;
+import com.ruoyi.jjh.declaration.service.IBmsApprovalInfoService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 审批记录信息Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-09-09
+ */
+@Service
+public class BmsApprovalInfoServiceImpl extends ServiceImpl<BmsApprovalInfoMapper,BmsApprovalInfo> implements IBmsApprovalInfoService {
+
+
+    /**
+     * 查询审批记录信息
+     * 
+     * @param id 审批记录信息主键
+     * @return 审批记录信息
+     */
+    @Override
+    public BmsApprovalInfo selectBmsApprovalInfoById(Long id) {
+        return baseMapper.selectBmsApprovalInfoById(id);
+    }
+
+    /**
+     * 查询审批记录信息列表
+     * 
+     * @param bmsApprovalInfo 审批记录信息
+     * @return 审批记录信息
+     */
+    @Override
+    public List<BmsApprovalInfo> selectBmsApprovalInfoList(BmsApprovalInfo bmsApprovalInfo) {
+        return baseMapper.selectBmsApprovalInfoList(bmsApprovalInfo);
+    }
+
+    /**
+     * 新增审批记录信息
+     * 
+     * @param bmsApprovalInfo 审批记录信息
+     * @return 结果
+     */
+    @Override
+    public int insertBmsApprovalInfo(BmsApprovalInfo bmsApprovalInfo) {
+        bmsApprovalInfo.setCreateTime(DateUtils.getNowDate());
+        return baseMapper.insertBmsApprovalInfo(bmsApprovalInfo);
+    }
+
+    /**
+     * 修改审批记录信息
+     * 
+     * @param bmsApprovalInfo 审批记录信息
+     * @return 结果
+     */
+    @Override
+    public int updateBmsApprovalInfo(BmsApprovalInfo bmsApprovalInfo) {
+        bmsApprovalInfo.setUpdateTime(DateUtils.getNowDate());
+        return baseMapper.updateBmsApprovalInfo(bmsApprovalInfo);
+    }
+
+    /**
+     * 批量删除审批记录信息
+     * 
+     * @param ids 需要删除的审批记录信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsApprovalInfoByIds(Long[] ids) {
+        return baseMapper.deleteBmsApprovalInfoByIds(ids);
+    }
+
+    @Override
+    public int updateApproval(Long declarationRecordsId) {
+        return baseMapper.updateApproval(declarationRecordsId);
+    }
+
+    @Override
+    public int updateApprovalList(List<Long> recordsId) {
+        return baseMapper.updateApprovalList(recordsId);
+    }
+
+    /**
+     * 删除审批记录信息信息
+     * 
+     * @param id 审批记录信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsApprovalInfoById(Long id) {
+        return baseMapper.deleteBmsApprovalInfoById(id);
+    }
+
+    @Override
+    public List<BmsApprovalInfoQueryVo> getApprovalInfoList(Long declarationRecordsId) {
+        return baseMapper.getApprovalInfoList(declarationRecordsId);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsBigStrongAwardServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsBigStrongAwardServiceImpl.java
new file mode 100644
index 0000000..feaa24c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsBigStrongAwardServiceImpl.java
@@ -0,0 +1,168 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.jjh.declaration.entity.BmsBigStrongAward;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.BmsFundingDetail;
+import com.ruoyi.jjh.declaration.entity.dto.BmsBigStrongAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsBigStrongAwardUpdateDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsFundingDetailAddDto;
+import com.ruoyi.jjh.declaration.entity.vo.BmsBigStrongAwardQueryVo;
+import com.ruoyi.jjh.declaration.mapper.BmsBigStrongAwardMapper;
+import com.ruoyi.jjh.declaration.service.IBmsBigStrongAwardService;
+import com.ruoyi.jjh.declaration.service.IBmsDeclarationRecordsService;
+import com.ruoyi.jjh.declaration.service.IBmsFundingDetailService;
+import com.ruoyi.jjh.declaration.service.ICommonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 做大做强奖详情Service业务层处理
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+@Service
+@Lazy
+public class BmsBigStrongAwardServiceImpl extends ServiceImpl<BmsBigStrongAwardMapper, BmsBigStrongAward> implements IBmsBigStrongAwardService {
+
+    @Autowired
+    private ICommonService iCommonService;
+
+    @Autowired
+    private IBmsFundingDetailService iBmsFundingDetailService;
+
+    @Autowired
+    private IBmsDeclarationRecordsService iBmsDeclarationRecordsService;
+
+    /**
+     * 查询做大做强奖详情
+     *
+     * @param id 做大做强奖详情主键
+     * @return 做大做强奖详情
+     */
+    @Override
+    public BmsBigStrongAwardQueryVo selectBmsBigStrongAwardById(Long id) {
+        return baseMapper.selectBmsBigStrongAwardById(id);
+    }
+
+    /**
+     * 查询做大做强奖详情列表
+     *
+     * @param bmsBigStrongAward 做大做强奖详情
+     * @return 做大做强奖详情
+     */
+    @Override
+    public List<BmsBigStrongAward> selectBmsBigStrongAwardList(BmsBigStrongAward bmsBigStrongAward) {
+        return baseMapper.selectBmsBigStrongAwardList(bmsBigStrongAward);
+    }
+
+    /**
+     * 新增做大做强奖详情
+     *
+     * @param bmsBigStrongAwardAddDto 做大做强奖详情
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int insertBmsBigStrongAward(BmsBigStrongAwardAddDto bmsBigStrongAwardAddDto) {
+
+        // check 企业信息
+        Long enterpriseId = iCommonService.checkEnterprise(bmsBigStrongAwardAddDto.getCreditCode(), bmsBigStrongAwardAddDto.getTemplateRecordId());
+        // check 申报信息
+        iCommonService.checkDeclaration(bmsBigStrongAwardAddDto.getCreditCode()
+                , bmsBigStrongAwardAddDto.getTemplateRecordId());
+        if (enterpriseId == 0) {
+            return 0;
+        }
+        BmsBigStrongAward bmsBigStrongAward = new BmsBigStrongAward();
+        BeanUtil.copyProperties(bmsBigStrongAwardAddDto, bmsBigStrongAward);
+        bmsBigStrongAward.setEnterpriseId(enterpriseId);
+        // 新增做大做强奖详情
+        int num = baseMapper.insert(bmsBigStrongAward);
+
+        List<BmsFundingDetailAddDto> fundingDetailList = bmsBigStrongAwardAddDto.getFundingDetailList();
+        List<BmsFundingDetail> fundingInfoList = new ArrayList<>();
+        fundingDetailList.forEach(x -> {
+            BmsFundingDetail fundingInfo = new BmsFundingDetail();
+            BeanUtil.copyProperties(x, fundingInfo);
+            fundingInfo.setType(2);
+            fundingInfo.setTemplateRecordId(bmsBigStrongAwardAddDto.getTemplateRecordId());
+            fundingInfo.setDetailId(bmsBigStrongAward.getId());
+            fundingInfoList.add(fundingInfo);
+        });
+        // 批量新增资金信息
+        iBmsFundingDetailService.saveOrUpdateBatch(fundingInfoList);
+        // 新增申请记录
+        BmsDeclarationRecords declarationRecords = new BmsDeclarationRecords();
+        BeanUtil.copyProperties(bmsBigStrongAwardAddDto, declarationRecords);
+        declarationRecords.setMatter("提交做大做强奖补申请");
+        declarationRecords.setDetailId(bmsBigStrongAward.getId());
+        declarationRecords.setEnterpriseId(enterpriseId);
+        iBmsDeclarationRecordsService.save(declarationRecords);
+        // 申请审批
+        if (bmsBigStrongAwardAddDto.getStatus() == 1) {
+            // 审批状态
+            iCommonService.insertAuditRecord(declarationRecords.getId(), 0);
+        }
+
+        return num;
+    }
+
+
+    /**
+     * 修改做大做强奖详情
+     *
+     * @param bmsBigStrongAwardUpdateDto 做大做强奖详情
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateBmsBigStrongAward(BmsBigStrongAwardUpdateDto bmsBigStrongAwardUpdateDto) {
+        int num = 0;
+        try {
+            iBmsDeclarationRecordsService.updateDeclarationRecords(bmsBigStrongAwardUpdateDto.getDeclarationRecordsId()
+                    , bmsBigStrongAwardUpdateDto.getProjectId(), bmsBigStrongAwardUpdateDto.getProjectName()
+                    , bmsBigStrongAwardUpdateDto.getStatus());
+            num = baseMapper.updateBmsBigStrongAward(bmsBigStrongAwardUpdateDto);
+            List<BmsFundingDetail> fundingDetailList = bmsBigStrongAwardUpdateDto.getFundingDetailList();
+            iBmsFundingDetailService.saveOrUpdateBatch(fundingDetailList);
+            // 申请审批
+            if (bmsBigStrongAwardUpdateDto.getStatus() == 1) {
+                // 审批状态
+                iCommonService.insertAuditRecord(bmsBigStrongAwardUpdateDto.getDeclarationRecordsId(), 0);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return num;
+    }
+
+    /**
+     * 批量删除做大做强奖详情
+     *
+     * @param ids 需要删除的做大做强奖详情主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsBigStrongAwardByIds(Long[] ids) {
+        return baseMapper.deleteBmsBigStrongAwardByIds(ids);
+    }
+
+    /**
+     * 删除做大做强奖详情信息
+     *
+     * @param id 做大做强奖详情主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsBigStrongAwardById(Long id) {
+        return baseMapper.deleteBmsBigStrongAwardById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsBrandingAwardServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsBrandingAwardServiceImpl.java
new file mode 100644
index 0000000..f353db1
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsBrandingAwardServiceImpl.java
@@ -0,0 +1,140 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsBrandingAward;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.dto.BmsBrandingAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsBrandingAwardUpdateDto;
+import com.ruoyi.jjh.declaration.mapper.BmsBrandingAwardMapper;
+import com.ruoyi.jjh.declaration.service.IBmsBrandingAwardService;
+import com.ruoyi.jjh.declaration.service.IBmsDeclarationRecordsService;
+import com.ruoyi.jjh.declaration.service.ICommonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 品牌打造奖补Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Service
+public class BmsBrandingAwardServiceImpl extends ServiceImpl<BmsBrandingAwardMapper,BmsBrandingAward> implements IBmsBrandingAwardService {
+
+    @Autowired
+    private ICommonService iCommonService;
+
+    @Autowired
+    private IBmsDeclarationRecordsService iBmsDeclarationRecordsService;
+    /**
+     * 查询品牌打造奖补
+     * 
+     * @param id 品牌打造奖补主键
+     * @return 品牌打造奖补
+     */
+    @Override
+    public BmsBrandingAward selectBmsBrandingAwardById(Long id) {
+        return baseMapper.selectBmsBrandingAwardById(id);
+    }
+
+    /**
+     * 查询品牌打造奖补列表
+     * 
+     * @param bmsBrandingAward 品牌打造奖补
+     * @return 品牌打造奖补
+     */
+    @Override
+    public List<BmsBrandingAward> selectBmsBrandingAwardList(BmsBrandingAward bmsBrandingAward) {
+        return baseMapper.selectBmsBrandingAwardList(bmsBrandingAward);
+    }
+
+    /**
+     * 新增品牌打造奖补
+     * 
+     * @param bmsBrandingAwardAddDto 品牌打造奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int insertBmsBrandingAward(BmsBrandingAwardAddDto bmsBrandingAwardAddDto) {
+        Long enterpriseId = iCommonService.checkEnterprise(bmsBrandingAwardAddDto.getCreditCode()
+                ,bmsBrandingAwardAddDto.getTemplateRecordId());
+        // check 申报信息
+        iCommonService.checkDeclaration(bmsBrandingAwardAddDto.getCreditCode()
+                ,bmsBrandingAwardAddDto.getTemplateRecordId());
+        BmsBrandingAward bmsBrandingAward = new BmsBrandingAward();
+        BeanUtil.copyProperties(bmsBrandingAwardAddDto,bmsBrandingAward);
+        bmsBrandingAward.setEnterpriseId(enterpriseId);
+        // 新增做大做强奖详情
+        int num = baseMapper.insert(bmsBrandingAward);
+
+        // 新增申请记录
+        BmsDeclarationRecords declarationRecords = new BmsDeclarationRecords();
+        BeanUtil.copyProperties(bmsBrandingAwardAddDto,declarationRecords);
+        declarationRecords.setMatter("提交品牌打造奖补申请");
+        declarationRecords.setEnterpriseId(enterpriseId);
+        declarationRecords.setDetailId(bmsBrandingAward.getId());
+        iBmsDeclarationRecordsService.save(declarationRecords);
+        // 生成审核
+        if (bmsBrandingAwardAddDto.getStatus()==1){
+            // 审批状态
+            iCommonService.insertAuditRecord(declarationRecords.getId(),0);
+        }
+        return num;
+    }
+
+    /**
+     * 修改品牌打造奖补
+     * 
+     * @param bmsBrandingAwardUpdateDto 品牌打造奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateBmsBrandingAward(BmsBrandingAwardUpdateDto bmsBrandingAwardUpdateDto) {
+        int num = 0;
+        try {
+            iBmsDeclarationRecordsService.updateDeclarationRecords(bmsBrandingAwardUpdateDto.getDeclarationRecordsId()
+                    ,bmsBrandingAwardUpdateDto.getProjectId(),bmsBrandingAwardUpdateDto.getProjectName()
+                    ,bmsBrandingAwardUpdateDto.getStatus());
+
+            bmsBrandingAwardUpdateDto.setUpdateTime(DateUtils.getNowDate());
+            num = baseMapper.updateBmsBrandingAward(bmsBrandingAwardUpdateDto);
+            // 申请审批
+            if (bmsBrandingAwardUpdateDto.getStatus()==1){
+                // 审批状态
+                iCommonService.insertAuditRecord(bmsBrandingAwardUpdateDto.getDeclarationRecordsId(),0);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return num;
+    }
+
+    /**
+     * 批量删除品牌打造奖补
+     * 
+     * @param ids 需要删除的品牌打造奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsBrandingAwardByIds(Long[] ids) {
+        return baseMapper.deleteBmsBrandingAwardByIds(ids);
+    }
+
+    /**
+     * 删除品牌打造奖补信息
+     * 
+     * @param id 品牌打造奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsBrandingAwardById(Long id) {
+        return baseMapper.deleteBmsBrandingAwardById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsCarrierConstructionAwardServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsCarrierConstructionAwardServiceImpl.java
new file mode 100644
index 0000000..984cf66
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsCarrierConstructionAwardServiceImpl.java
@@ -0,0 +1,140 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsCarrierConstructionAward;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.dto.BmsCarrierConstructionAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsCarrierConstructionAwardUpdateDto;
+import com.ruoyi.jjh.declaration.mapper.BmsCarrierConstructionAwardMapper;
+import com.ruoyi.jjh.declaration.service.IBmsCarrierConstructionAwardService;
+import com.ruoyi.jjh.declaration.service.IBmsDeclarationRecordsService;
+import com.ruoyi.jjh.declaration.service.ICommonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 载体建设奖补Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Service
+public class BmsCarrierConstructionAwardServiceImpl extends ServiceImpl<BmsCarrierConstructionAwardMapper,BmsCarrierConstructionAward> implements IBmsCarrierConstructionAwardService {
+
+    @Autowired
+    private ICommonService iCommonService;
+
+    @Autowired
+    private IBmsDeclarationRecordsService iBmsDeclarationRecordsService;
+    /**
+     * 查询载体建设奖补
+     * 
+     * @param id 载体建设奖补主键
+     * @return 载体建设奖补
+     */
+    @Override
+    public BmsCarrierConstructionAward selectBmsCarrierConstructionAwardById(Long id) {
+        return baseMapper.selectBmsCarrierConstructionAwardById(id);
+    }
+
+    /**
+     * 查询载体建设奖补列表
+     * 
+     * @param bmsCarrierConstructionAward 载体建设奖补
+     * @return 载体建设奖补
+     */
+    @Override
+    public List<BmsCarrierConstructionAward> selectBmsCarrierConstructionAwardList(BmsCarrierConstructionAward bmsCarrierConstructionAward) {
+        return baseMapper.selectBmsCarrierConstructionAwardList(bmsCarrierConstructionAward);
+    }
+
+    /**
+     * 新增载体建设奖补
+     * 
+     * @param bmsCarrierConstructionAwardAddDto 载体建设奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int insertBmsCarrierConstructionAward(BmsCarrierConstructionAwardAddDto bmsCarrierConstructionAwardAddDto) {
+
+        Long enterpriseId = iCommonService.checkEnterprise(bmsCarrierConstructionAwardAddDto.getCreditCode()
+                ,bmsCarrierConstructionAwardAddDto.getTemplateRecordId());
+        // check 申报信息
+        iCommonService.checkDeclaration(bmsCarrierConstructionAwardAddDto.getCreditCode()
+                ,bmsCarrierConstructionAwardAddDto.getTemplateRecordId());
+        BmsCarrierConstructionAward bmsCarrierConstructionAward = new BmsCarrierConstructionAward();
+        BeanUtil.copyProperties(bmsCarrierConstructionAwardAddDto,bmsCarrierConstructionAward);
+        bmsCarrierConstructionAward.setEnterpriseId(enterpriseId);
+        // 新增做大做强奖详情
+        int num = baseMapper.insert(bmsCarrierConstructionAward);
+
+        // 新增申请记录
+        BmsDeclarationRecords declarationRecords = new BmsDeclarationRecords();
+        BeanUtil.copyProperties(bmsCarrierConstructionAwardAddDto,declarationRecords);
+        declarationRecords.setMatter("提交载体建设奖补申请");
+        declarationRecords.setEnterpriseId(enterpriseId);
+        declarationRecords.setDetailId(bmsCarrierConstructionAward.getId());
+        iBmsDeclarationRecordsService.save(declarationRecords);
+        // 生成审核
+        if (bmsCarrierConstructionAwardAddDto.getStatus()==1){
+            // 审批状态
+            iCommonService.insertAuditRecord(declarationRecords.getId(),0);
+        }
+        return num;
+    }
+
+    /**
+     * 修改载体建设奖补
+     * 
+     * @param bmsCarrierConstructionAwardUpdateDto 载体建设奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateBmsCarrierConstructionAward(BmsCarrierConstructionAwardUpdateDto bmsCarrierConstructionAwardUpdateDto) {
+        int num = 0;
+        try {
+            iBmsDeclarationRecordsService.updateDeclarationRecords(bmsCarrierConstructionAwardUpdateDto.getDeclarationRecordsId()
+                    ,bmsCarrierConstructionAwardUpdateDto.getProjectId(),bmsCarrierConstructionAwardUpdateDto.getProjectName()
+                    ,bmsCarrierConstructionAwardUpdateDto.getStatus());
+            bmsCarrierConstructionAwardUpdateDto.setUpdateTime(DateUtils.getNowDate());
+            num = baseMapper.updateBmsCarrierConstructionAward(bmsCarrierConstructionAwardUpdateDto);
+            // 申请审批
+            if (bmsCarrierConstructionAwardUpdateDto.getStatus()==1){
+                // 审批状态
+                iCommonService.insertAuditRecord(bmsCarrierConstructionAwardUpdateDto.getDeclarationRecordsId(),0);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return num;
+    }
+
+    /**
+     * 批量删除载体建设奖补
+     * 
+     * @param ids 需要删除的载体建设奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsCarrierConstructionAwardByIds(Long[] ids) {
+        return baseMapper.deleteBmsCarrierConstructionAwardByIds(ids);
+    }
+
+    /**
+     * 删除载体建设奖补信息
+     * 
+     * @param id 载体建设奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsCarrierConstructionAwardById(Long id) {
+        return baseMapper.deleteBmsCarrierConstructionAwardById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsCreditManagementServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsCreditManagementServiceImpl.java
new file mode 100644
index 0000000..5a1f990
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsCreditManagementServiceImpl.java
@@ -0,0 +1,141 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsCreditManagement;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.dto.BmsCreditManagementAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsCreditManagementUpdateDto;
+import com.ruoyi.jjh.declaration.mapper.BmsCreditManagementMapper;
+import com.ruoyi.jjh.declaration.service.IBmsCreditManagementService;
+import com.ruoyi.jjh.declaration.service.IBmsDeclarationRecordsService;
+import com.ruoyi.jjh.declaration.service.ICommonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 信用管理奖补Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@Service
+public class BmsCreditManagementServiceImpl extends ServiceImpl<BmsCreditManagementMapper,BmsCreditManagement> implements IBmsCreditManagementService {
+
+    @Autowired
+    private ICommonService iCommonService;
+
+    @Autowired
+    private IBmsDeclarationRecordsService iBmsDeclarationRecordsService;
+
+    /**
+     * 查询信用管理奖补
+     * 
+     * @param id 信用管理奖补主键
+     * @return 信用管理奖补
+     */
+    @Override
+    public BmsCreditManagement selectBmsCreditManagementById(Long id) {
+        return baseMapper.selectBmsCreditManagementById(id);
+    }
+
+    /**
+     * 查询信用管理奖补列表
+     * 
+     * @param bmsCreditManagement 信用管理奖补
+     * @return 信用管理奖补
+     */
+    @Override
+    public List<BmsCreditManagement> selectBmsCreditManagementList(BmsCreditManagement bmsCreditManagement) {
+        return baseMapper.selectBmsCreditManagementList(bmsCreditManagement);
+    }
+
+    /**
+     * 新增信用管理奖补
+     * 
+     * @param bmsCreditManagementAddDto 信用管理奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int insertBmsCreditManagement(BmsCreditManagementAddDto bmsCreditManagementAddDto) {
+        Long enterpriseId = iCommonService.checkEnterprise(bmsCreditManagementAddDto.getCreditCode()
+                ,bmsCreditManagementAddDto.getTemplateRecordId());
+        // check 申报信息
+        iCommonService.checkDeclaration(bmsCreditManagementAddDto.getCreditCode()
+                ,bmsCreditManagementAddDto.getTemplateRecordId());
+        BmsCreditManagement bmsCreditManagement = new BmsCreditManagement();
+        BeanUtil.copyProperties(bmsCreditManagementAddDto,bmsCreditManagement);
+        bmsCreditManagement.setEnterpriseId(enterpriseId);
+        // 新增做大做强奖详情
+        int num = baseMapper.insert(bmsCreditManagement);
+
+        // 新增申请记录
+        BmsDeclarationRecords declarationRecords = new BmsDeclarationRecords();
+        BeanUtil.copyProperties(bmsCreditManagementAddDto,declarationRecords);
+        declarationRecords.setMatter("提交信用管理奖补申请");
+        declarationRecords.setEnterpriseId(enterpriseId);
+        declarationRecords.setDetailId(bmsCreditManagement.getId());
+        iBmsDeclarationRecordsService.save(declarationRecords);
+        // 生成审核
+        if (bmsCreditManagementAddDto.getStatus()==1){
+            // 审批状态
+            iCommonService.insertAuditRecord(declarationRecords.getId(),0);
+        }
+        return num;
+    }
+
+    /**
+     * 修改信用管理奖补
+     * 
+     * @param bmsCreditManagementUpdateDto 信用管理奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateBmsCreditManagement(BmsCreditManagementUpdateDto bmsCreditManagementUpdateDto) {
+        int num = 0;
+        try {
+            iBmsDeclarationRecordsService.updateDeclarationRecords(bmsCreditManagementUpdateDto.getDeclarationRecordsId()
+                    ,bmsCreditManagementUpdateDto.getProjectId(),bmsCreditManagementUpdateDto.getProjectName()
+                    ,bmsCreditManagementUpdateDto.getStatus());
+
+            bmsCreditManagementUpdateDto.setUpdateTime(DateUtils.getNowDate());
+            num =  baseMapper.updateBmsCreditManagement(bmsCreditManagementUpdateDto);
+            // 申请审批
+            if (bmsCreditManagementUpdateDto.getStatus()==1){
+                // 审批状态
+                iCommonService.insertAuditRecord(bmsCreditManagementUpdateDto.getDeclarationRecordsId(),0);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return num;
+    }
+
+    /**
+     * 批量删除信用管理奖补
+     * 
+     * @param ids 需要删除的信用管理奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsCreditManagementByIds(Long[] ids) {
+        return baseMapper.deleteBmsCreditManagementByIds(ids);
+    }
+
+    /**
+     * 删除信用管理奖补信息
+     * 
+     * @param id 信用管理奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsCreditManagementById(Long id) {
+        return baseMapper.deleteBmsCreditManagementById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsDeclarationRecordsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsDeclarationRecordsServiceImpl.java
new file mode 100644
index 0000000..b6f401b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsDeclarationRecordsServiceImpl.java
@@ -0,0 +1,555 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.context.SecurityContextHolder;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsApprovalInfo;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseBasicInfo;
+import com.ruoyi.jjh.declaration.entity.BmsFieldInfo;
+import com.ruoyi.jjh.declaration.entity.BmsFileInfo;
+import com.ruoyi.jjh.declaration.entity.BmsProcessInfo;
+import com.ruoyi.jjh.declaration.entity.dto.ApprovalDeclarationRecordsQueryDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsApprovalInfoUpdateDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsDeclarationRecordsAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsDeclarationRecordsDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsFieldInfoAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsFileInfoAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsMunicipalBureauReviewQueryDto;
+import com.ruoyi.jjh.declaration.entity.dto.MunicipalReviewDto;
+import com.ruoyi.jjh.declaration.entity.dto.MunicipalReviewInfoDto;
+import com.ruoyi.jjh.declaration.entity.vo.ApprovalDeclarationRecordsQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsDeclarationRecordsQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsMunicipalBureauReviewQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.DeclarationRecordsVo;
+import com.ruoyi.jjh.declaration.mapper.BmsDeclarationRecordsMapper;
+import com.ruoyi.jjh.declaration.service.IBmsApprovalInfoService;
+import com.ruoyi.jjh.declaration.service.IBmsDeclarationRecordsService;
+import com.ruoyi.jjh.declaration.service.IBmsEnterpriseBasicInfoService;
+import com.ruoyi.jjh.declaration.service.IBmsFieldInfoService;
+import com.ruoyi.jjh.declaration.service.IBmsFileInfoService;
+import com.ruoyi.jjh.declaration.service.IBmsProcessInfoService;
+import com.ruoyi.jjh.declaration.service.ICommonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 在线申报记录Service业务层处理
+ *
+ * @author farben
+ * @date 2023-08-28
+ */
+@Service
+public class BmsDeclarationRecordsServiceImpl extends ServiceImpl<BmsDeclarationRecordsMapper, BmsDeclarationRecords> implements IBmsDeclarationRecordsService {
+
+    @Autowired
+    private ICommonService iCommonService;
+
+    @Autowired
+    private IBmsFieldInfoService iBmsFieldInfoService;
+
+    @Autowired
+    private IBmsFileInfoService iBmsFileInfoService;
+
+    @Autowired
+    private IBmsApprovalInfoService iBmsApprovalInfoService;
+
+    @Autowired
+    private IBmsProcessInfoService iBmsProcessInfoService;
+
+    @Autowired
+    private IBmsEnterpriseBasicInfoService iBmsEnterpriseBasicInfoService;
+
+
+    /**
+     * 查询在线申报记录
+     *
+     * @param id 在线申报记录主键
+     * @return 在线申报记录
+     */
+    @Override
+    public DeclarationRecordsVo selectBmsDeclarationRecordsById(Long id) {
+        // 获取申请记录
+        BmsDeclarationRecords declarationRecords = baseMapper.selectBmsDeclarationRecordsById(id);
+        DeclarationRecordsVo declarationRecordsVo = new DeclarationRecordsVo();
+        declarationRecordsVo.setBmsDeclarationRecords(declarationRecords);
+        // 在线模板记录id
+        int declarationTemplateType = declarationRecords.getDeclarationTemplateType();
+        // 详情id
+        Long detailId = declarationRecords.getDetailId();
+        // 企业id
+        Long enterpriseId = declarationRecords.getEnterpriseId();
+        // 获取详情数据
+        iCommonService.getData(declarationTemplateType, detailId, declarationRecordsVo);
+        //企业基本信息
+        declarationRecordsVo.setBmsEnterpriseBasicInfo(iBmsEnterpriseBasicInfoService.selectBmsEnterpriseBasicInfoById(enterpriseId));
+
+        declarationRecordsVo.setApprovalInfoList(iBmsApprovalInfoService.getApprovalInfoList(id));
+
+        return declarationRecordsVo;
+    }
+
+
+    /**
+     * 查询在线申报记录列表
+     *
+     * @param bmsDeclarationRecordsDto 在线申报记录
+     * @return 在线申报记录
+     */
+    @Override
+    public List<BmsDeclarationRecordsQueryVo> selectBmsDeclarationRecordsList(BmsDeclarationRecordsDto bmsDeclarationRecordsDto) {
+        return baseMapper.selectBmsDeclarationRecordsList(bmsDeclarationRecordsDto);
+    }
+
+    @Override
+    public List<BmsDeclarationRecordsQueryVo> selectBmsDeclarationRecordsZwList(BmsDeclarationRecordsDto bmsDeclarationRecordsDto) {
+        return baseMapper.selectBmsDeclarationRecordsZwList(bmsDeclarationRecordsDto);
+    }
+
+    @Override
+    public List<BmsMunicipalBureauReviewQueryVo> selectMunicipalBureauReviewList() {
+        return baseMapper.selectMunicipalBureauReviewList();
+    }
+
+    /**
+     * 审核列表
+     *
+     * @param approvalDeclarationRecordsQueryDto
+     * @return {@link List< ApprovalDeclarationRecordsQueryVo>}
+     * @author emiya.xie
+     * @create 2023/9/9 15:14
+     */
+    @Override
+    public List<ApprovalDeclarationRecordsQueryVo> approvalList(ApprovalDeclarationRecordsQueryDto approvalDeclarationRecordsQueryDto) {
+//        approvalDeclarationRecordsQueryDto.setUserIds(iCommonService.getUserIds(SecurityContextHolder.getUserId()));
+        approvalDeclarationRecordsQueryDto.setApprovalById(SecurityContextHolder.getUserId());
+        return baseMapper.approvalList(approvalDeclarationRecordsQueryDto);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateBmsApprovalInfo(BmsApprovalInfoUpdateDto bmsApprovalInfoUpdateDto) {
+        Boolean flag = false;
+        List<BmsApprovalInfo> approvalInfoList = iBmsApprovalInfoService.lambdaQuery().eq(BmsApprovalInfo::getDeclarationRecordsId, bmsApprovalInfoUpdateDto.getDeclarationRecordsId()).orderByAsc(BmsApprovalInfo::getSort).list();
+        AtomicReference<Long> processId = new AtomicReference<>(0L);
+        if (CollectionUtil.isNotEmpty(approvalInfoList)) {
+            approvalInfoList.forEach(x -> {
+                if (x.getIsReview().equals(0)) {
+                    bmsApprovalInfoUpdateDto.setId(x.getId());
+                    bmsApprovalInfoUpdateDto.setSort(x.getSort());
+                    BeanUtil.copyProperties(bmsApprovalInfoUpdateDto, x);
+                    x.setApprovalById(SecurityContextHolder.getUserId());
+                    x.setApprovalTime(DateUtils.getNowDate());
+                    processId.set(x.getProcessId());
+                }
+            });
+            approvalInfoList.forEach(x -> {
+                if ((bmsApprovalInfoUpdateDto.getSort() + 1) == x.getSort()) {
+                    x.setIsReview(0);
+                }
+            });
+            flag = iBmsApprovalInfoService.saveOrUpdateBatch(approvalInfoList);
+            approval(bmsApprovalInfoUpdateDto, processId.get());
+        }
+        if (!flag) {
+            return 0;
+        }
+        return 1;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateApprovalInfo(BmsApprovalInfoUpdateDto bmsApprovalInfoUpdateDto) {
+        // 新增审核记录,修改申报记录状态
+        List<BmsProcessInfo> bmsProcessInfoList = iBmsProcessInfoService.lambdaQuery().eq(BmsProcessInfo::getApprovalType, 0).list();
+        BmsProcessInfo bmsProcessInfo = new BmsProcessInfo();
+        bmsProcessInfoList.forEach(x -> {
+            boolean flag = Arrays.asList(x.getApprovalByIds().split(",")).contains(String.valueOf(SecurityContextHolder.getUserId()));
+            if (flag) {
+                BeanUtil.copyProperties(x, bmsProcessInfo);
+            }
+        });
+        // 审批记录
+        List<BmsApprovalInfo> approvalInfoList = iBmsApprovalInfoService.lambdaQuery().eq(BmsApprovalInfo::getDeclarationRecordsId, bmsApprovalInfoUpdateDto.getDeclarationRecordsId()).orderByDesc(BmsApprovalInfo::getSort).list();
+        // 更新审批记录
+        if (CollectionUtil.isNotEmpty(approvalInfoList)) {
+            approvalInfoList.forEach(x -> {
+                if (bmsProcessInfo.getId().equals(x.getProcessId()) && x.getApprovalStatus().equals(0)) {
+                    // 更新审批记录
+                    Integer sort = x.getSort();
+                    bmsApprovalInfoUpdateDto.setId(x.getId());
+//                bmsApprovalInfoUpdateDto.setSort(x.getSort());
+                    BeanUtil.copyProperties(bmsApprovalInfoUpdateDto, x);
+                    x.setSort(sort);
+                    x.setApprovalById(SecurityContextHolder.getUserId());
+                    x.setApprovalTime(DateUtils.getNowDate());
+                    x.setIsReview(2);
+                    iBmsApprovalInfoService.saveOrUpdate(x);
+                }
+            });
+        }
+
+        // 新增记录
+        if (bmsApprovalInfoUpdateDto.getApprovalStatus().equals(1)) {
+            BmsProcessInfo bmsProcessInfo2 = new BmsProcessInfo();
+            bmsProcessInfoList.forEach(x -> {
+                if (x.getId().equals(bmsProcessInfo.getNextProcessId())) {
+                    BeanUtil.copyProperties(x, bmsProcessInfo2);
+                }
+            });
+            if (BeanUtil.isNotEmpty(bmsProcessInfo2)) {
+                BmsApprovalInfo bmsApprovalInfo = new BmsApprovalInfo();
+                bmsApprovalInfo.setProcessId(bmsProcessInfo2.getId());
+                bmsApprovalInfo.setDeclarationRecordsId(bmsApprovalInfoUpdateDto.getDeclarationRecordsId());
+                bmsApprovalInfo.setApprovalById(bmsProcessInfo2.getApprovalById());
+                bmsApprovalInfo.setApprovalStatus(0);
+                bmsApprovalInfo.setSort(approvalInfoList.size() + 1);
+                iBmsApprovalInfoService.saveOrUpdate(bmsApprovalInfo);
+            }
+        }
+        // 更新记录状态
+        int num = approval(bmsApprovalInfoUpdateDto, bmsProcessInfo);
+
+        return num;
+    }
+
+    public int approval(BmsApprovalInfoUpdateDto bmsApprovalInfoUpdateDto, BmsProcessInfo bmsProcessInfo) {
+
+        BmsDeclarationRecords bmsDeclarationRecords = baseMapper.selectById(bmsApprovalInfoUpdateDto.getDeclarationRecordsId());
+        if (bmsProcessInfo.getApprovalLevel().equals(0)) {
+            if (bmsApprovalInfoUpdateDto.getApprovalStatus() == 1) {
+                bmsDeclarationRecords.setStatus(2L);
+            } else {
+                bmsDeclarationRecords.setStatus(8L);
+            }
+        } else if (bmsProcessInfo.getApprovalLevel().equals(1)) {
+            if (bmsApprovalInfoUpdateDto.getApprovalStatus() == 1) {
+                bmsDeclarationRecords.setStatus(3L);
+            } else {
+                bmsDeclarationRecords.setStatus(7L);
+            }
+        } else if (bmsProcessInfo.getApprovalLevel().equals(2)) {
+            if (bmsApprovalInfoUpdateDto.getApprovalStatus() == 1) {
+                bmsDeclarationRecords.setStatus(4L);
+            } else {
+                bmsDeclarationRecords.setStatus(6L);
+            }
+        } else if (bmsProcessInfo.getApprovalLevel().equals(3)) {
+            if (bmsApprovalInfoUpdateDto.getApprovalStatus() == 1) {
+                bmsDeclarationRecords.setStatus(5L);
+            } else {
+                bmsDeclarationRecords.setStatus(9L);
+            }
+        }
+        return baseMapper.updateById(bmsDeclarationRecords);
+    }
+
+    /**
+     * 审批
+     *
+     * @param bmsApprovalInfoUpdateDto
+     * @param processId
+     * @return
+     * @author emiya.xie
+     * @create 2023/9/9 18:22
+     */
+    public void approval(BmsApprovalInfoUpdateDto bmsApprovalInfoUpdateDto, Long processId) {
+        BmsProcessInfo bmsProcessInfo = iBmsProcessInfoService.lambdaQuery().eq(BmsProcessInfo::getId, processId).list().get(0);
+        if (BeanUtil.isNotEmpty(bmsProcessInfo)) {
+            BmsDeclarationRecords bmsDeclarationRecords = baseMapper.selectById(bmsApprovalInfoUpdateDto.getDeclarationRecordsId());
+            if (bmsProcessInfo.getApprovalLevel().equals(0)) {
+                if (bmsApprovalInfoUpdateDto.getApprovalStatus() == 1) {
+                    bmsDeclarationRecords.setStatus(2L);
+                } else {
+                    bmsDeclarationRecords.setStatus(8L);
+                }
+            } else if (bmsProcessInfo.getApprovalLevel().equals(1)) {
+                if (bmsApprovalInfoUpdateDto.getApprovalStatus() == 1) {
+                    bmsDeclarationRecords.setStatus(3L);
+                } else {
+                    bmsDeclarationRecords.setStatus(7L);
+                }
+            } else if (bmsProcessInfo.getApprovalLevel().equals(2)) {
+                if (bmsApprovalInfoUpdateDto.getApprovalStatus() == 1) {
+                    bmsDeclarationRecords.setStatus(4L);
+                } else {
+                    bmsDeclarationRecords.setStatus(6L);
+                }
+            } else if (bmsProcessInfo.getApprovalLevel().equals(3)) {
+                if (bmsApprovalInfoUpdateDto.getApprovalStatus() == 1) {
+                    bmsDeclarationRecords.setStatus(5L);
+                } else {
+                    bmsDeclarationRecords.setStatus(9L);
+                }
+            }
+            baseMapper.updateById(bmsDeclarationRecords);
+        }
+    }
+
+    /**
+     * 新增在线申报记录
+     *
+     * @param bmsDeclarationRecordsAddDto 在线申报记录
+     * @return 结果
+     */
+    @Override
+    public int insertBmsDeclarationRecords(BmsDeclarationRecordsAddDto bmsDeclarationRecordsAddDto) {
+        iCommonService.checkEnterprise(bmsDeclarationRecordsAddDto.getEnterpriseId(), bmsDeclarationRecordsAddDto.getTemplateId());
+        BmsDeclarationRecords bmsDeclarationRecords = new BmsDeclarationRecords();
+        BeanUtil.copyProperties(bmsDeclarationRecordsAddDto, bmsDeclarationRecords);
+        bmsDeclarationRecords.setMatter("");
+        // 新增在线申请记录
+        int num = baseMapper.insert(bmsDeclarationRecords);
+        // 批量保存字段信息
+        List<BmsFieldInfoAddDto> fieldList = bmsDeclarationRecordsAddDto.getFieldList();
+        List<BmsFieldInfo> fieldInfoList = new ArrayList<>();
+        if (null != fieldList && fieldList.size() > 0) {
+            fieldList.forEach(x -> {
+                BmsFieldInfo bmsFieldInfo = new BmsFieldInfo();
+                BeanUtil.copyProperties(x, bmsFieldInfo);
+                bmsFieldInfo.setDetailId(bmsDeclarationRecords.getId());
+                fieldInfoList.add(bmsFieldInfo);
+            });
+            iBmsFieldInfoService.saveOrUpdateBatch(fieldInfoList);
+        }
+        // 批量保存文件信息
+        List<BmsFileInfoAddDto> fileList = bmsDeclarationRecordsAddDto.getFileList();
+        List<BmsFileInfo> fileInfoList = new ArrayList<>();
+        if (null != fileList && fileList.size() > 0) {
+            fileList.forEach(x -> {
+                BmsFileInfo bmsFileInfo = new BmsFileInfo();
+                BeanUtil.copyProperties(x, bmsFileInfo);
+                bmsFileInfo.setDetailId(bmsDeclarationRecords.getId());
+                fileInfoList.add(bmsFileInfo);
+            });
+            iBmsFileInfoService.saveOrUpdateBatch(fileInfoList);
+        }
+        return num;
+    }
+
+    /**
+     * 修改在线申报记录
+     *
+     * @param bmsDeclarationRecords 在线申报记录
+     * @return 结果
+     */
+    @Override
+    public int updateBmsDeclarationRecords(BmsDeclarationRecords bmsDeclarationRecords) {
+        bmsDeclarationRecords.setUpdateTime(DateUtils.getNowDate());
+        return baseMapper.updateBmsDeclarationRecords(bmsDeclarationRecords);
+    }
+
+    /**
+     * 市级评定结果确认
+     *
+     * @param municipalReviewDto
+     * @return {@link int}
+     * @author emiya.xie
+     * @create 2023/9/13 17:21
+     */
+    @Override
+    public int municipalReview(MunicipalReviewDto municipalReviewDto) {
+        List<MunicipalReviewInfoDto> list = municipalReviewDto.getList();
+        // 需要更新的数据
+        List<BmsDeclarationRecords> reviewrecordsList = new ArrayList<>();
+        //  统一信用代码、年份、申报类型 -- > 申报记录 -->
+        // 查询企业数据
+        List<BmsEnterpriseBasicInfo> enterpriseInfoList = iBmsEnterpriseBasicInfoService.lambdaQuery().list();
+        Map<String, BmsEnterpriseBasicInfo> enterpriseBasicMap = enterpriseInfoList.stream().collect(Collectors.toMap(BmsEnterpriseBasicInfo::getCreditCode, Function.identity()));
+
+        // 匹配企业
+        List<Long> enterpriseIdList = new ArrayList<>();
+        list.forEach(x -> {
+            if (enterpriseBasicMap.containsKey(x.getCreditCode())) {
+                x.setEnterpriseId(enterpriseBasicMap.get(x.getCreditCode()).getId());
+                // 获取对应企业id集合
+                enterpriseIdList.add(enterpriseBasicMap.get(x.getCreditCode()).getId());
+            }
+            // 区分状态
+            if (x.getResult().equals("通过")) {
+                x.setStatus(5L);
+            } else {
+                x.setStatus(9L);
+            }
+        });
+
+        //获取对应企业的申报记录
+        List<BmsDeclarationRecords> recordsList = baseMapper.selectList(Wrappers.lambdaQuery(BmsDeclarationRecords.class).in(BmsDeclarationRecords::getEnterpriseId, enterpriseIdList).eq(BmsDeclarationRecords::getStatus, 4));
+        if (CollectionUtil.isNotEmpty(recordsList)) {
+            // 根据条件对比获取记录id
+
+            // 记录id集合
+            List<Long> declarationIdList = new ArrayList<>();
+            for (BmsDeclarationRecords records : recordsList) {
+                for (MunicipalReviewInfoDto dto : list) {
+                    if (records.getEnterpriseId().equals(dto.getEnterpriseId()) && records.getYear().equals(dto.getYear()) && records.getProjectName().contains(dto.getDeclarationTypeStr())) {
+                        records.setStatus(dto.getStatus());
+                        dto.setDeclarationId(records.getId());
+                        declarationIdList.add(records.getId());
+                        reviewrecordsList.add(records);
+                    }
+                }
+            }
+
+            if (CollectionUtil.isNotEmpty(reviewrecordsList)) {
+                Map<Long, MunicipalReviewInfoDto> reviewInfoMap = list.stream().collect(Collectors.toMap(MunicipalReviewInfoDto::getDeclarationId, Function.identity()));
+
+                // 查询审批记录并更新
+                List<BmsApprovalInfo> approvalInfoList = iBmsApprovalInfoService.lambdaQuery().in(BmsApprovalInfo::getDeclarationRecordsId, declarationIdList).eq(BmsApprovalInfo::getProcessId, 4).eq(BmsApprovalInfo::getApprovalStatus, 0).list();
+                // 需要更新的审批数据的id
+                List<Long> recordsIdList = new ArrayList<>();
+                approvalInfoList.forEach(x -> {
+                    if (reviewInfoMap.containsKey(x.getDeclarationRecordsId())) {
+                        MunicipalReviewInfoDto reviewInfoDto = reviewInfoMap.get(x.getDeclarationRecordsId());
+                        if (reviewInfoDto.getStatus() == 5) {
+                            x.setApprovalStatus(1);
+                        } else {
+                            recordsIdList.add(x.getDeclarationRecordsId());
+                            x.setApprovalStatus(2);
+                            x.setIsBeforeData(1);
+                        }
+                        x.setApprovalOpinions(reviewInfoDto.getResult());
+                        x.setApprovalById(SecurityContextHolder.getUserId());
+                        x.setApprovalTime(DateUtils.getNowDate());
+                    }
+                });
+                if (CollectionUtil.isNotEmpty(recordsIdList)) {
+                    iBmsApprovalInfoService.updateApprovalList(recordsIdList);
+                }
+                // 批量保存记录
+                boolean b = this.saveOrUpdateBatch(reviewrecordsList);
+                // 审查审批记录
+                iBmsApprovalInfoService.saveOrUpdateBatch(approvalInfoList);
+            }
+        }
+
+        return reviewrecordsList.size();
+    }
+
+    /**
+     * 市局审批
+     *
+     * @param municipalReviewDto
+     * @return {@link int}
+     * @author emiya.xie
+     * @create 2023/9/17 13:59
+     */
+    @Override
+    public int municipalReviewNew(MunicipalReviewDto municipalReviewDto) {
+        List<BmsMunicipalBureauReviewQueryDto> reviewList = municipalReviewDto.getReviewList();
+        // 需要更新的申报记录
+        List<BmsDeclarationRecords> recordsUpdate = new ArrayList<>();
+        if (CollectionUtil.isNotEmpty(reviewList)) {
+            //TODO
+            // 1、根据导入的申报记录id获取对应数据
+            // 2、修改申报记录状态,
+            // 3、更新申报记录对应的审核记录(如果是拒绝,还要修改审核记录的isBeforeData数据状态)
+            List<Long> ids = reviewList.stream().map(BmsMunicipalBureauReviewQueryDto::getId).collect(Collectors.toList());
+            // 查询到的申报记录
+            List<BmsDeclarationRecords> records = baseMapper.selectList(Wrappers.lambdaQuery(BmsDeclarationRecords.class).in(BmsDeclarationRecords::getId, ids).eq(BmsDeclarationRecords::getStatus, 4));
+            // key :记录id,形成map
+            Map<Long, BmsDeclarationRecords> recordsMap = records.stream().collect(Collectors.toMap(BmsDeclarationRecords::getId, Function.identity()));
+            // 查询审批记录并更新
+            List<BmsApprovalInfo> approvalInfoList = iBmsApprovalInfoService.lambdaQuery().in(BmsApprovalInfo::getDeclarationRecordsId, ids).eq(BmsApprovalInfo::getProcessId, 4).eq(BmsApprovalInfo::getApprovalStatus, 0).list();
+            Map<Long, BmsApprovalInfo> approvalMap = approvalInfoList.stream().collect(Collectors.toMap(BmsApprovalInfo::getDeclarationRecordsId, Function.identity()));
+
+            // 需要更新的审批记录
+            List<BmsApprovalInfo> approvalInfoUpdate = new ArrayList<>();
+            // 需要更新的审批数据的id
+            List<Long> recordsIdList = new ArrayList<>();
+            reviewList.forEach(x -> {
+                if (recordsMap.containsKey(x.getId())) {
+                    BmsDeclarationRecords bmsDeclarationRecords = recordsMap.get(x.getId());
+                    if (x.getResult() == 0) {
+                        bmsDeclarationRecords.setStatus(5L);
+                    } else {
+                        bmsDeclarationRecords.setStatus(9L);
+                    }
+                    recordsUpdate.add(bmsDeclarationRecords);
+                }
+                if (approvalMap.containsKey(x.getId())) {
+                    BmsApprovalInfo bmsApprovalInfo = approvalMap.get(x.getId());
+                    if (x.getResult() == 0) {
+                        bmsApprovalInfo.setApprovalStatus(1);
+                    } else {
+                        bmsApprovalInfo.setApprovalStatus(2);
+                        recordsIdList.add(x.getId());
+                    }
+                    bmsApprovalInfo.setApprovalOpinions(x.getOpinion());
+                    bmsApprovalInfo.setApprovalTime(DateUtils.getNowDate());
+                    approvalInfoUpdate.add(bmsApprovalInfo);
+                }
+            });
+
+            if (CollectionUtil.isNotEmpty(recordsIdList)) {
+                iBmsApprovalInfoService.updateApprovalList(recordsIdList);
+            }
+            // 批量保存记录
+            this.saveOrUpdateBatch(recordsUpdate);
+            // 审查审批记录
+            iBmsApprovalInfoService.saveOrUpdateBatch(approvalInfoUpdate);
+        }
+        return recordsUpdate.size();
+    }
+
+    /**
+     * 批量删除在线申报记录
+     *
+     * @param ids 需要删除的在线申报记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsDeclarationRecordsByIds(Long[] ids) {
+        return baseMapper.deleteBmsDeclarationRecordsByIds(ids);
+    }
+
+    /**
+     * 删除在线申报记录信息
+     *
+     * @param id 在线申报记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsDeclarationRecordsById(Long id) {
+        return baseMapper.deleteBmsDeclarationRecordsById(id);
+    }
+
+    /**
+     * 更新项目名称by Id
+     *
+     * @param id
+     * @param projectName
+     * @return {@link int}
+     * @author emiya.xie
+     * @create 2023/9/6 15:13
+     */
+    @Override
+    public int updateProjectNameById(Long id, String projectName, Long projectId) {
+        return baseMapper.updateProjectNameById(id, projectName, projectId);
+    }
+
+    @Override
+    public int updateDeclarationRecords(Long declarationId, Long projectId, String projectName, Long status) {
+        BmsDeclarationRecords bmsDeclarationRecords = baseMapper.selectById(declarationId);
+        if (bmsDeclarationRecords.getStatus() == 6 || bmsDeclarationRecords.getStatus() == 7 || bmsDeclarationRecords.getStatus() == 8) {
+            // 被拒绝,将原审批记录修改为拒绝前数据
+            iBmsApprovalInfoService.updateApproval(declarationId);
+        }
+        bmsDeclarationRecords.setProjectId(projectId);
+        bmsDeclarationRecords.setProjectName(projectName);
+        bmsDeclarationRecords.setStatus(status);
+        return baseMapper.updateById(bmsDeclarationRecords);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsEnterpriseBasicInfoServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsEnterpriseBasicInfoServiceImpl.java
new file mode 100644
index 0000000..c37aa02
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsEnterpriseBasicInfoServiceImpl.java
@@ -0,0 +1,88 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseBasicInfo;
+import com.ruoyi.jjh.declaration.mapper.BmsEnterpriseBasicInfoMapper;
+import com.ruoyi.jjh.declaration.service.IBmsEnterpriseBasicInfoService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 企业基础信息Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Service
+public class BmsEnterpriseBasicInfoServiceImpl extends ServiceImpl<BmsEnterpriseBasicInfoMapper,BmsEnterpriseBasicInfo> implements IBmsEnterpriseBasicInfoService {
+
+    /**
+     * 查询企业基础信息
+     * 
+     * @param id 企业基础信息主键
+     * @return 企业基础信息
+     */
+    @Override
+    public BmsEnterpriseBasicInfo selectBmsEnterpriseBasicInfoById(Long id) {
+        return baseMapper.selectBmsEnterpriseBasicInfoById(id);
+    }
+
+    /**
+     * 查询企业基础信息列表
+     * 
+     * @param bmsEnterpriseBasicInfo 企业基础信息
+     * @return 企业基础信息
+     */
+    @Override
+    public List<BmsEnterpriseBasicInfo> selectBmsEnterpriseBasicInfoList(BmsEnterpriseBasicInfo bmsEnterpriseBasicInfo) {
+        return baseMapper.selectBmsEnterpriseBasicInfoList(bmsEnterpriseBasicInfo);
+    }
+
+    /**
+     * 新增企业基础信息
+     * 
+     * @param bmsEnterpriseBasicInfo 企业基础信息
+     * @return 结果
+     */
+    @Override
+    public int insertBmsEnterpriseBasicInfo(BmsEnterpriseBasicInfo bmsEnterpriseBasicInfo) {
+        bmsEnterpriseBasicInfo.setCreateTime(DateUtils.getNowDate());
+        return baseMapper.insertBmsEnterpriseBasicInfo(bmsEnterpriseBasicInfo);
+    }
+
+    /**
+     * 修改企业基础信息
+     * 
+     * @param bmsEnterpriseBasicInfo 企业基础信息
+     * @return 结果
+     */
+    @Override
+    public int updateBmsEnterpriseBasicInfo(BmsEnterpriseBasicInfo bmsEnterpriseBasicInfo) {
+        bmsEnterpriseBasicInfo.setUpdateTime(DateUtils.getNowDate());
+        return baseMapper.updateBmsEnterpriseBasicInfo(bmsEnterpriseBasicInfo);
+    }
+
+    /**
+     * 批量删除企业基础信息
+     * 
+     * @param ids 需要删除的企业基础信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsEnterpriseBasicInfoByIds(Long[] ids) {
+        return baseMapper.deleteBmsEnterpriseBasicInfoByIds(ids);
+    }
+
+    /**
+     * 删除企业基础信息信息
+     * 
+     * @param id 企业基础信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsEnterpriseBasicInfoById(Long id) {
+        return baseMapper.deleteBmsEnterpriseBasicInfoById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsEnterpriseDirectoryServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsEnterpriseDirectoryServiceImpl.java
new file mode 100644
index 0000000..ea57213
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsEnterpriseDirectoryServiceImpl.java
@@ -0,0 +1,88 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseDirectory;
+import com.ruoyi.jjh.declaration.mapper.BmsEnterpriseDirectoryMapper;
+import com.ruoyi.jjh.declaration.service.IBmsEnterpriseDirectoryService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 企业名录Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-08-31
+ */
+@Service
+public class BmsEnterpriseDirectoryServiceImpl extends ServiceImpl<BmsEnterpriseDirectoryMapper,BmsEnterpriseDirectory> implements IBmsEnterpriseDirectoryService {
+
+    /**
+     * 查询企业名录
+     * 
+     * @param id 企业名录主键
+     * @return 企业名录
+     */
+    @Override
+    public BmsEnterpriseDirectory selectBmsEnterpriseDirectoryById(Long id) {
+        return baseMapper.selectBmsEnterpriseDirectoryById(id);
+    }
+
+    /**
+     * 查询企业名录列表
+     * 
+     * @param bmsEnterpriseDirectory 企业名录
+     * @return 企业名录
+     */
+    @Override
+    public List<BmsEnterpriseDirectory> selectBmsEnterpriseDirectoryList(BmsEnterpriseDirectory bmsEnterpriseDirectory) {
+        return baseMapper.selectBmsEnterpriseDirectoryList(bmsEnterpriseDirectory);
+    }
+
+    /**
+     * 新增企业名录
+     * 
+     * @param bmsEnterpriseDirectory 企业名录
+     * @return 结果
+     */
+    @Override
+    public int insertBmsEnterpriseDirectory(BmsEnterpriseDirectory bmsEnterpriseDirectory) {
+        bmsEnterpriseDirectory.setCreateTime(DateUtils.getNowDate());
+        return baseMapper.insertBmsEnterpriseDirectory(bmsEnterpriseDirectory);
+    }
+
+    /**
+     * 修改企业名录
+     * 
+     * @param bmsEnterpriseDirectory 企业名录
+     * @return 结果
+     */
+    @Override
+    public int updateBmsEnterpriseDirectory(BmsEnterpriseDirectory bmsEnterpriseDirectory) {
+        bmsEnterpriseDirectory.setUpdateTime(DateUtils.getNowDate());
+        return baseMapper.updateBmsEnterpriseDirectory(bmsEnterpriseDirectory);
+    }
+
+    /**
+     * 批量删除企业名录
+     * 
+     * @param ids 需要删除的企业名录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsEnterpriseDirectoryByIds(Long[] ids) {
+        return baseMapper.deleteBmsEnterpriseDirectoryByIds(ids);
+    }
+
+    /**
+     * 删除企业名录信息
+     * 
+     * @param id 企业名录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsEnterpriseDirectoryById(Long id) {
+        return baseMapper.deleteBmsEnterpriseDirectoryById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsFieldInfoServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsFieldInfoServiceImpl.java
new file mode 100644
index 0000000..79eb811
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsFieldInfoServiceImpl.java
@@ -0,0 +1,89 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsFieldInfo;
+import com.ruoyi.jjh.declaration.mapper.BmsFieldInfoMapper;
+import com.ruoyi.jjh.declaration.service.IBmsFieldInfoService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 模板字段填写详情Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@Service
+public class BmsFieldInfoServiceImpl extends ServiceImpl<BmsFieldInfoMapper,BmsFieldInfo> implements IBmsFieldInfoService {
+
+
+    /**
+     * 查询模板字段填写详情
+     * 
+     * @param id 模板字段填写详情主键
+     * @return 模板字段填写详情
+     */
+    @Override
+    public BmsFieldInfo selectBmsFieldInfoById(Long id) {
+        return baseMapper.selectBmsFieldInfoById(id);
+    }
+
+    /**
+     * 查询模板字段填写详情列表
+     * 
+     * @param bmsFieldInfo 模板字段填写详情
+     * @return 模板字段填写详情
+     */
+    @Override
+    public List<BmsFieldInfo> selectBmsFieldInfoList(BmsFieldInfo bmsFieldInfo) {
+        return baseMapper.selectBmsFieldInfoList(bmsFieldInfo);
+    }
+
+    /**
+     * 新增模板字段填写详情
+     * 
+     * @param bmsFieldInfo 模板字段填写详情
+     * @return 结果
+     */
+    @Override
+    public int insertBmsFieldInfo(BmsFieldInfo bmsFieldInfo) {
+        bmsFieldInfo.setCreateTime(DateUtils.getNowDate());
+        return baseMapper.insertBmsFieldInfo(bmsFieldInfo);
+    }
+
+    /**
+     * 修改模板字段填写详情
+     * 
+     * @param bmsFieldInfo 模板字段填写详情
+     * @return 结果
+     */
+    @Override
+    public int updateBmsFieldInfo(BmsFieldInfo bmsFieldInfo) {
+        bmsFieldInfo.setUpdateTime(DateUtils.getNowDate());
+        return baseMapper.updateBmsFieldInfo(bmsFieldInfo);
+    }
+
+    /**
+     * 批量删除模板字段填写详情
+     * 
+     * @param ids 需要删除的模板字段填写详情主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsFieldInfoByIds(Long[] ids) {
+        return baseMapper.deleteBmsFieldInfoByIds(ids);
+    }
+
+    /**
+     * 删除模板字段填写详情信息
+     * 
+     * @param id 模板字段填写详情主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsFieldInfoById(Long id) {
+        return baseMapper.deleteBmsFieldInfoById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsFileInfoServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsFileInfoServiceImpl.java
new file mode 100644
index 0000000..1dc753c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsFileInfoServiceImpl.java
@@ -0,0 +1,89 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsFileInfo;
+import com.ruoyi.jjh.declaration.mapper.BmsFileInfoMapper;
+import com.ruoyi.jjh.declaration.service.IBmsFileInfoService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 文件存储说明详情Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@Service
+public class BmsFileInfoServiceImpl extends ServiceImpl<BmsFileInfoMapper,BmsFileInfo> implements IBmsFileInfoService {
+
+
+    /**
+     * 查询文件存储说明详情
+     * 
+     * @param id 文件存储说明详情主键
+     * @return 文件存储说明详情
+     */
+    @Override
+    public BmsFileInfo selectBmsFileInfoById(Long id) {
+        return baseMapper.selectBmsFileInfoById(id);
+    }
+
+    /**
+     * 查询文件存储说明详情列表
+     * 
+     * @param bmsFileInfo 文件存储说明详情
+     * @return 文件存储说明详情
+     */
+    @Override
+    public List<BmsFileInfo> selectBmsFileInfoList(BmsFileInfo bmsFileInfo) {
+        return baseMapper.selectBmsFileInfoList(bmsFileInfo);
+    }
+
+    /**
+     * 新增文件存储说明详情
+     * 
+     * @param bmsFileInfo 文件存储说明详情
+     * @return 结果
+     */
+    @Override
+    public int insertBmsFileInfo(BmsFileInfo bmsFileInfo) {
+        bmsFileInfo.setCreateTime(DateUtils.getNowDate());
+        return baseMapper.insertBmsFileInfo(bmsFileInfo);
+    }
+
+    /**
+     * 修改文件存储说明详情
+     * 
+     * @param bmsFileInfo 文件存储说明详情
+     * @return 结果
+     */
+    @Override
+    public int updateBmsFileInfo(BmsFileInfo bmsFileInfo) {
+        bmsFileInfo.setUpdateTime(DateUtils.getNowDate());
+        return baseMapper.updateBmsFileInfo(bmsFileInfo);
+    }
+
+    /**
+     * 批量删除文件存储说明详情
+     * 
+     * @param ids 需要删除的文件存储说明详情主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsFileInfoByIds(Long[] ids) {
+        return baseMapper.deleteBmsFileInfoByIds(ids);
+    }
+
+    /**
+     * 删除文件存储说明详情信息
+     * 
+     * @param id 文件存储说明详情主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsFileInfoById(Long id) {
+        return baseMapper.deleteBmsFileInfoById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsFundingDetailServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsFundingDetailServiceImpl.java
new file mode 100644
index 0000000..98b6e6e
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsFundingDetailServiceImpl.java
@@ -0,0 +1,89 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsFundingDetail;
+import com.ruoyi.jjh.declaration.mapper.BmsFundingDetailMapper;
+import com.ruoyi.jjh.declaration.service.IBmsFundingDetailService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 资金信息详情Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@Service
+public class BmsFundingDetailServiceImpl extends ServiceImpl<BmsFundingDetailMapper,BmsFundingDetail> implements IBmsFundingDetailService {
+
+
+    /**
+     * 查询资金信息详情
+     * 
+     * @param id 资金信息详情主键
+     * @return 资金信息详情
+     */
+    @Override
+    public BmsFundingDetail selectBmsFundingDetailById(Long id) {
+        return baseMapper.selectBmsFundingDetailById(id);
+    }
+
+    /**
+     * 查询资金信息详情列表
+     * 
+     * @param bmsFundingDetail 资金信息详情
+     * @return 资金信息详情
+     */
+    @Override
+    public List<BmsFundingDetail> selectBmsFundingDetailList(BmsFundingDetail bmsFundingDetail) {
+        return baseMapper.selectBmsFundingDetailList(bmsFundingDetail);
+    }
+
+    /**
+     * 新增资金信息详情
+     * 
+     * @param bmsFundingDetail 资金信息详情
+     * @return 结果
+     */
+    @Override
+    public int insertBmsFundingDetail(BmsFundingDetail bmsFundingDetail) {
+        bmsFundingDetail.setCreateTime(DateUtils.getNowDate());
+        return baseMapper.insertBmsFundingDetail(bmsFundingDetail);
+    }
+
+    /**
+     * 修改资金信息详情
+     * 
+     * @param bmsFundingDetail 资金信息详情
+     * @return 结果
+     */
+    @Override
+    public int updateBmsFundingDetail(BmsFundingDetail bmsFundingDetail) {
+        bmsFundingDetail.setUpdateTime(DateUtils.getNowDate());
+        return baseMapper.updateBmsFundingDetail(bmsFundingDetail);
+    }
+
+    /**
+     * 批量删除资金信息详情
+     * 
+     * @param ids 需要删除的资金信息详情主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsFundingDetailByIds(Long[] ids) {
+        return baseMapper.deleteBmsFundingDetailByIds(ids);
+    }
+
+    /**
+     * 删除资金信息详情信息
+     * 
+     * @param id 资金信息详情主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsFundingDetailById(Long id) {
+        return baseMapper.deleteBmsFundingDetailById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsIndustrialInternetAwardServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsIndustrialInternetAwardServiceImpl.java
new file mode 100644
index 0000000..c97f516
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsIndustrialInternetAwardServiceImpl.java
@@ -0,0 +1,141 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.BmsIndustrialInternetAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsIndustrialInternetAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsIndustrialInternetAwardUpdateDto;
+import com.ruoyi.jjh.declaration.mapper.BmsIndustrialInternetAwardMapper;
+import com.ruoyi.jjh.declaration.service.IBmsDeclarationRecordsService;
+import com.ruoyi.jjh.declaration.service.IBmsIndustrialInternetAwardService;
+import com.ruoyi.jjh.declaration.service.ICommonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 5G+工业互联网奖补Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Service
+public class BmsIndustrialInternetAwardServiceImpl extends ServiceImpl<BmsIndustrialInternetAwardMapper,BmsIndustrialInternetAward> implements IBmsIndustrialInternetAwardService {
+
+    @Autowired
+    private ICommonService iCommonService;
+
+    @Autowired
+    private IBmsDeclarationRecordsService iBmsDeclarationRecordsService;
+
+    /**
+     * 查询5G+工业互联网奖补
+     * 
+     * @param id 5G+工业互联网奖补主键
+     * @return 5G+工业互联网奖补
+     */
+    @Override
+    public BmsIndustrialInternetAward selectBmsIndustrialInternetAwardById(Long id) {
+        return baseMapper.selectBmsIndustrialInternetAwardById(id);
+    }
+
+    /**
+     * 查询5G+工业互联网奖补列表
+     * 
+     * @param bmsIndustrialInternetAward 5G+工业互联网奖补
+     * @return 5G+工业互联网奖补
+     */
+    @Override
+    public List<BmsIndustrialInternetAward> selectBmsIndustrialInternetAwardList(BmsIndustrialInternetAward bmsIndustrialInternetAward) {
+        return baseMapper.selectBmsIndustrialInternetAwardList(bmsIndustrialInternetAward);
+    }
+
+    /**
+     * 新增5G+工业互联网奖补
+     * 
+     * @param bmsIndustrialInternetAwardAddDto 5G+工业互联网奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int insertBmsIndustrialInternetAward(BmsIndustrialInternetAwardAddDto bmsIndustrialInternetAwardAddDto) {
+        Long enterpriseId = iCommonService.checkEnterprise(bmsIndustrialInternetAwardAddDto.getCreditCode()
+                ,bmsIndustrialInternetAwardAddDto.getTemplateRecordId());
+        // check 申报信息
+        iCommonService.checkDeclaration(bmsIndustrialInternetAwardAddDto.getCreditCode()
+                ,bmsIndustrialInternetAwardAddDto.getTemplateRecordId());
+        BmsIndustrialInternetAward bmsIndustrialInternetAward = new BmsIndustrialInternetAward();
+        BeanUtil.copyProperties(bmsIndustrialInternetAwardAddDto,bmsIndustrialInternetAward);
+        bmsIndustrialInternetAward.setEnterpriseId(enterpriseId);
+        // 新增做大做强奖详情
+        int num = baseMapper.insert(bmsIndustrialInternetAward);
+
+        // 新增申请记录
+        BmsDeclarationRecords declarationRecords = new BmsDeclarationRecords();
+        BeanUtil.copyProperties(bmsIndustrialInternetAwardAddDto,declarationRecords);
+        declarationRecords.setMatter("提交5G+工业互联网奖补申请");
+        declarationRecords.setEnterpriseId(enterpriseId);
+        declarationRecords.setDetailId(bmsIndustrialInternetAward.getId());
+        iBmsDeclarationRecordsService.save(declarationRecords);
+        // 生成审核
+        if (bmsIndustrialInternetAwardAddDto.getStatus()==1){
+            // 审批状态
+            iCommonService.insertAuditRecord(declarationRecords.getId(),0);
+        }
+        return num;
+    }
+
+    /**
+     * 修改5G+工业互联网奖补
+     * 
+     * @param bmsIndustrialInternetAwardUpdateDto 5G+工业互联网奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateBmsIndustrialInternetAward(BmsIndustrialInternetAwardUpdateDto bmsIndustrialInternetAwardUpdateDto) {
+        int num = 0;
+        try {
+            iBmsDeclarationRecordsService.updateDeclarationRecords(bmsIndustrialInternetAwardUpdateDto.getDeclarationRecordsId()
+                    ,bmsIndustrialInternetAwardUpdateDto.getProjectId(),bmsIndustrialInternetAwardUpdateDto.getProjectName()
+                    ,bmsIndustrialInternetAwardUpdateDto.getStatus());
+
+            bmsIndustrialInternetAwardUpdateDto.setUpdateTime(DateUtils.getNowDate());
+            num = baseMapper.updateBmsIndustrialInternetAward(bmsIndustrialInternetAwardUpdateDto);
+            // 申请审批
+            if (bmsIndustrialInternetAwardUpdateDto.getStatus()==1){
+                // 审批状态
+                iCommonService.insertAuditRecord(bmsIndustrialInternetAwardUpdateDto.getDeclarationRecordsId(),0);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return num;
+    }
+
+    /**
+     * 批量删除5G+工业互联网奖补
+     * 
+     * @param ids 需要删除的5G+工业互联网奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsIndustrialInternetAwardByIds(Long[] ids) {
+        return baseMapper.deleteBmsIndustrialInternetAwardByIds(ids);
+    }
+
+    /**
+     * 删除5G+工业互联网奖补信息
+     * 
+     * @param id 5G+工业互联网奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsIndustrialInternetAwardById(Long id) {
+        return baseMapper.deleteBmsIndustrialInternetAwardById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsIntegrationIndustriesServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsIntegrationIndustriesServiceImpl.java
new file mode 100644
index 0000000..3c3c92e
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsIntegrationIndustriesServiceImpl.java
@@ -0,0 +1,142 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.BmsIntegrationIndustries;
+import com.ruoyi.jjh.declaration.entity.dto.BmsIntegrationIndustriesAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsIntegrationIndustriesUpdateDto;
+import com.ruoyi.jjh.declaration.mapper.BmsIntegrationIndustriesMapper;
+import com.ruoyi.jjh.declaration.service.IBmsDeclarationRecordsService;
+import com.ruoyi.jjh.declaration.service.IBmsIntegrationIndustriesService;
+import com.ruoyi.jjh.declaration.service.ICommonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 两业融合奖补Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-09-04
+ */
+@Service
+public class BmsIntegrationIndustriesServiceImpl extends ServiceImpl<BmsIntegrationIndustriesMapper,BmsIntegrationIndustries> implements IBmsIntegrationIndustriesService {
+
+    @Autowired
+    private ICommonService iCommonService;
+
+    @Autowired
+    private IBmsDeclarationRecordsService iBmsDeclarationRecordsService;
+
+    /**
+     * 查询两业融合奖补
+     * 
+     * @param id 两业融合奖补主键
+     * @return 两业融合奖补
+     */
+    @Override
+    public BmsIntegrationIndustries selectBmsIntegrationIndustriesById(Long id) {
+        return baseMapper.selectBmsIntegrationIndustriesById(id);
+    }
+
+    /**
+     * 查询两业融合奖补列表
+     * 
+     * @param bmsIntegrationIndustries 两业融合奖补
+     * @return 两业融合奖补
+     */
+    @Override
+    public List<BmsIntegrationIndustries> selectBmsIntegrationIndustriesList(BmsIntegrationIndustries bmsIntegrationIndustries) {
+        return baseMapper.selectBmsIntegrationIndustriesList(bmsIntegrationIndustries);
+    }
+
+    /**
+     * 新增两业融合奖补
+     * 
+     * @param bmsIntegrationIndustriesAddDto 两业融合奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int insertBmsIntegrationIndustries(BmsIntegrationIndustriesAddDto bmsIntegrationIndustriesAddDto) {
+        Long enterpriseId = iCommonService.checkEnterprise(bmsIntegrationIndustriesAddDto.getCreditCode()
+                ,bmsIntegrationIndustriesAddDto.getTemplateRecordId());
+        // check 申报信息
+        iCommonService.checkDeclaration(bmsIntegrationIndustriesAddDto.getCreditCode()
+                ,bmsIntegrationIndustriesAddDto.getTemplateRecordId());
+        BmsIntegrationIndustries bmsIntegrationIndustries = new BmsIntegrationIndustries();
+        BeanUtil.copyProperties(bmsIntegrationIndustriesAddDto,bmsIntegrationIndustries);
+        bmsIntegrationIndustries.setEnterpriseId(enterpriseId);
+        // 新增做大做强奖详情
+        int num = baseMapper.insert(bmsIntegrationIndustries);
+
+        // 新增申请记录
+        BmsDeclarationRecords declarationRecords = new BmsDeclarationRecords();
+        BeanUtil.copyProperties(bmsIntegrationIndustriesAddDto,declarationRecords);
+        declarationRecords.setMatter("提交两业融合奖补申请");
+        declarationRecords.setEnterpriseId(enterpriseId);
+        declarationRecords.setDetailId(bmsIntegrationIndustries.getId());
+        iBmsDeclarationRecordsService.save(declarationRecords);
+        // 生成审核
+        if (bmsIntegrationIndustriesAddDto.getStatus()==1){
+            // 审批状态
+            iCommonService.insertAuditRecord(declarationRecords.getId(),0);
+        }
+        return num;
+    }
+
+    /**
+     * 修改两业融合奖补
+     * 
+     * @param bmsIntegrationIndustriesUpdateDto 两业融合奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateBmsIntegrationIndustries(BmsIntegrationIndustriesUpdateDto bmsIntegrationIndustriesUpdateDto) {
+        int num = 0;
+        try {
+            iBmsDeclarationRecordsService.updateDeclarationRecords(bmsIntegrationIndustriesUpdateDto.getDeclarationRecordsId()
+                    ,bmsIntegrationIndustriesUpdateDto.getProjectId(),bmsIntegrationIndustriesUpdateDto.getProjectName()
+                    ,bmsIntegrationIndustriesUpdateDto.getStatus());
+
+            bmsIntegrationIndustriesUpdateDto.setUpdateTime(DateUtils.getNowDate());
+            num = baseMapper.updateBmsIntegrationIndustries(bmsIntegrationIndustriesUpdateDto);
+            // 申请审批
+            if (bmsIntegrationIndustriesUpdateDto.getStatus()==1){
+                // 审批状态
+                iCommonService.insertAuditRecord(bmsIntegrationIndustriesUpdateDto.getDeclarationRecordsId(),0);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        bmsIntegrationIndustriesUpdateDto.setUpdateTime(DateUtils.getNowDate());
+        return num;
+    }
+
+    /**
+     * 批量删除两业融合奖补
+     * 
+     * @param ids 需要删除的两业融合奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsIntegrationIndustriesByIds(Long[] ids) {
+        return baseMapper.deleteBmsIntegrationIndustriesByIds(ids);
+    }
+
+    /**
+     * 删除两业融合奖补信息
+     * 
+     * @param id 两业融合奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsIntegrationIndustriesById(Long id) {
+        return baseMapper.deleteBmsIntegrationIndustriesById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsLogisticsDevelopmentAwardServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsLogisticsDevelopmentAwardServiceImpl.java
new file mode 100644
index 0000000..7feca83
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsLogisticsDevelopmentAwardServiceImpl.java
@@ -0,0 +1,143 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.BmsLogisticsDevelopmentAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsLogisticsDevelopmentAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsLogisticsDevelopmentAwardUpdateDto;
+import com.ruoyi.jjh.declaration.mapper.BmsLogisticsDevelopmentAwardMapper;
+import com.ruoyi.jjh.declaration.service.IBmsDeclarationRecordsService;
+import com.ruoyi.jjh.declaration.service.IBmsLogisticsDevelopmentAwardService;
+import com.ruoyi.jjh.declaration.service.ICommonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 物流发展奖补Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Service
+public class BmsLogisticsDevelopmentAwardServiceImpl extends ServiceImpl<BmsLogisticsDevelopmentAwardMapper,BmsLogisticsDevelopmentAward> implements IBmsLogisticsDevelopmentAwardService {
+
+    @Autowired
+    private ICommonService iCommonService;
+
+    @Autowired
+    private IBmsDeclarationRecordsService iBmsDeclarationRecordsService;
+    /**
+     * 查询物流发展奖补
+     * 
+     * @param id 物流发展奖补主键
+     * @return 物流发展奖补
+     */
+    @Override
+    public BmsLogisticsDevelopmentAward selectBmsLogisticsDevelopmentAwardById(Long id) {
+        return baseMapper.selectBmsLogisticsDevelopmentAwardById(id);
+    }
+
+    /**
+     * 查询物流发展奖补列表
+     * 
+     * @param bmsLogisticsDevelopmentAward 物流发展奖补
+     * @return 物流发展奖补
+     */
+    @Override
+    public List<BmsLogisticsDevelopmentAward> selectBmsLogisticsDevelopmentAwardList(BmsLogisticsDevelopmentAward bmsLogisticsDevelopmentAward) {
+        return baseMapper.selectBmsLogisticsDevelopmentAwardList(bmsLogisticsDevelopmentAward);
+    }
+
+    /**
+     * 新增物流发展奖补
+     * 
+     * @param bmsLogisticsDevelopmentAwardAddDto 物流发展奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int insertBmsLogisticsDevelopmentAward(BmsLogisticsDevelopmentAwardAddDto bmsLogisticsDevelopmentAwardAddDto) {
+        Long enterpriseId = iCommonService.checkEnterprise(bmsLogisticsDevelopmentAwardAddDto.getCreditCode()
+                ,bmsLogisticsDevelopmentAwardAddDto.getTemplateRecordId());
+        // check 申报信息
+        iCommonService.checkDeclaration(bmsLogisticsDevelopmentAwardAddDto.getCreditCode()
+                ,bmsLogisticsDevelopmentAwardAddDto.getTemplateRecordId());
+        BmsLogisticsDevelopmentAward bmsLogisticsDevelopmentAward = new BmsLogisticsDevelopmentAward();
+
+        BeanUtil.copyProperties(bmsLogisticsDevelopmentAwardAddDto,bmsLogisticsDevelopmentAward);
+        bmsLogisticsDevelopmentAward.setEnterpriseId(enterpriseId);
+        // 新增做大做强奖详情
+        int num = baseMapper.insert(bmsLogisticsDevelopmentAward);
+
+        // 新增申请记录
+        BmsDeclarationRecords declarationRecords = new BmsDeclarationRecords();
+        BeanUtil.copyProperties(bmsLogisticsDevelopmentAwardAddDto,declarationRecords);
+        declarationRecords.setMatter("提交物流发展奖补申请");
+        declarationRecords.setEnterpriseId(enterpriseId);
+        declarationRecords.setDetailId(bmsLogisticsDevelopmentAward.getId());
+        iBmsDeclarationRecordsService.save(declarationRecords);
+        // 生成审核
+        if (bmsLogisticsDevelopmentAwardAddDto.getStatus()==1){
+            // 审批状态
+            iCommonService.insertAuditRecord(declarationRecords.getId(),0);
+        }
+        return num;
+    }
+
+    /**
+     * 修改物流发展奖补
+     * 
+     * @param bmsLogisticsDevelopmentAwardUpdateDto 物流发展奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateBmsLogisticsDevelopmentAward(BmsLogisticsDevelopmentAwardUpdateDto bmsLogisticsDevelopmentAwardUpdateDto) {
+        int num = 0;
+        try {
+            iBmsDeclarationRecordsService.updateDeclarationRecords(bmsLogisticsDevelopmentAwardUpdateDto.getDeclarationRecordsId()
+                    ,bmsLogisticsDevelopmentAwardUpdateDto.getProjectId(),bmsLogisticsDevelopmentAwardUpdateDto.getProjectName()
+                    ,bmsLogisticsDevelopmentAwardUpdateDto.getStatus());
+
+            iBmsDeclarationRecordsService.updateProjectNameById(bmsLogisticsDevelopmentAwardUpdateDto.getId()
+                    ,bmsLogisticsDevelopmentAwardUpdateDto.getProjectName(),bmsLogisticsDevelopmentAwardUpdateDto.getProjectId());
+            bmsLogisticsDevelopmentAwardUpdateDto.setUpdateTime(DateUtils.getNowDate());
+            num = baseMapper.updateBmsLogisticsDevelopmentAward(bmsLogisticsDevelopmentAwardUpdateDto);
+            // 申请审批
+            if (bmsLogisticsDevelopmentAwardUpdateDto.getStatus()==1){
+                // 审批状态
+                iCommonService.insertAuditRecord(bmsLogisticsDevelopmentAwardUpdateDto.getDeclarationRecordsId(),0);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return num;
+    }
+
+    /**
+     * 批量删除物流发展奖补
+     * 
+     * @param ids 需要删除的物流发展奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsLogisticsDevelopmentAwardByIds(Long[] ids) {
+        return baseMapper.deleteBmsLogisticsDevelopmentAwardByIds(ids);
+    }
+
+    /**
+     * 删除物流发展奖补信息
+     * 
+     * @param id 物流发展奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsLogisticsDevelopmentAwardById(Long id) {
+        return baseMapper.deleteBmsLogisticsDevelopmentAwardById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsManufacturingServicesAwardServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsManufacturingServicesAwardServiceImpl.java
new file mode 100644
index 0000000..aa5af54
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsManufacturingServicesAwardServiceImpl.java
@@ -0,0 +1,141 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.BmsManufacturingServicesAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsManufacturingServicesAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsManufacturingServicesAwardUpdateDto;
+import com.ruoyi.jjh.declaration.mapper.BmsManufacturingServicesAwardMapper;
+import com.ruoyi.jjh.declaration.service.IBmsDeclarationRecordsService;
+import com.ruoyi.jjh.declaration.service.IBmsManufacturingServicesAwardService;
+import com.ruoyi.jjh.declaration.service.ICommonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 制造服务业有效投入奖补Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Service
+public class BmsManufacturingServicesAwardServiceImpl extends ServiceImpl<BmsManufacturingServicesAwardMapper,BmsManufacturingServicesAward> implements IBmsManufacturingServicesAwardService {
+
+    @Autowired
+    private ICommonService iCommonService;
+
+    @Autowired
+    private IBmsDeclarationRecordsService iBmsDeclarationRecordsService;
+
+    /**
+     * 查询制造服务业有效投入奖补
+     * 
+     * @param id 制造服务业有效投入奖补主键
+     * @return 制造服务业有效投入奖补
+     */
+    @Override
+    public BmsManufacturingServicesAward selectBmsManufacturingServicesAwardById(Long id) {
+        return baseMapper.selectBmsManufacturingServicesAwardById(id);
+    }
+
+    /**
+     * 查询制造服务业有效投入奖补列表
+     * 
+     * @param bmsManufacturingServicesAward 制造服务业有效投入奖补
+     * @return 制造服务业有效投入奖补
+     */
+    @Override
+    public List<BmsManufacturingServicesAward> selectBmsManufacturingServicesAwardList(BmsManufacturingServicesAward bmsManufacturingServicesAward) {
+        return baseMapper.selectBmsManufacturingServicesAwardList(bmsManufacturingServicesAward);
+    }
+
+    /**
+     * 新增制造服务业有效投入奖补
+     * 
+     * @param bmsManufacturingServicesAwardAddDto 制造服务业有效投入奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int insertBmsManufacturingServicesAward(BmsManufacturingServicesAwardAddDto bmsManufacturingServicesAwardAddDto) {
+        Long enterpriseId = iCommonService.checkEnterprise(bmsManufacturingServicesAwardAddDto.getCreditCode()
+                ,bmsManufacturingServicesAwardAddDto.getTemplateRecordId());
+        // check 申报信息
+        iCommonService.checkDeclaration(bmsManufacturingServicesAwardAddDto.getCreditCode()
+                ,bmsManufacturingServicesAwardAddDto.getTemplateRecordId());
+        BmsManufacturingServicesAward bmsManufacturingServicesAward = new BmsManufacturingServicesAward();
+        BeanUtil.copyProperties(bmsManufacturingServicesAwardAddDto,bmsManufacturingServicesAward);
+        bmsManufacturingServicesAward.setEnterpriseId(enterpriseId);
+        // 新增做大做强奖详情
+        int num = baseMapper.insert(bmsManufacturingServicesAward);
+
+        // 新增申请记录
+        BmsDeclarationRecords declarationRecords = new BmsDeclarationRecords();
+        BeanUtil.copyProperties(bmsManufacturingServicesAwardAddDto,declarationRecords);
+        declarationRecords.setMatter("提交制造服务业有效投入奖补申请");
+        declarationRecords.setEnterpriseId(enterpriseId);
+        declarationRecords.setDetailId(bmsManufacturingServicesAward.getId());
+        iBmsDeclarationRecordsService.save(declarationRecords);
+        // 生成审核
+        if (bmsManufacturingServicesAwardAddDto.getStatus()==1){
+            // 审批状态
+            iCommonService.insertAuditRecord(declarationRecords.getId(),0);
+        }
+        return num;
+    }
+
+    /**
+     * 修改制造服务业有效投入奖补
+     * 
+     * @param bmsManufacturingServicesAwardUpdateDto 制造服务业有效投入奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateBmsManufacturingServicesAward(BmsManufacturingServicesAwardUpdateDto bmsManufacturingServicesAwardUpdateDto) {
+        int num = 0;
+        try {
+            iBmsDeclarationRecordsService.updateDeclarationRecords(bmsManufacturingServicesAwardUpdateDto.getDeclarationRecordsId()
+                    ,bmsManufacturingServicesAwardUpdateDto.getProjectId(),bmsManufacturingServicesAwardUpdateDto.getProjectName()
+                    ,bmsManufacturingServicesAwardUpdateDto.getStatus());
+
+            bmsManufacturingServicesAwardUpdateDto.setUpdateTime(DateUtils.getNowDate());
+            num =  baseMapper.updateBmsManufacturingServicesAward(bmsManufacturingServicesAwardUpdateDto);
+            // 申请审批
+            if (bmsManufacturingServicesAwardUpdateDto.getStatus()==1){
+                // 审批状态
+                iCommonService.insertAuditRecord(bmsManufacturingServicesAwardUpdateDto.getDeclarationRecordsId(),0);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return num;
+    }
+
+    /**
+     * 批量删除制造服务业有效投入奖补
+     * 
+     * @param ids 需要删除的制造服务业有效投入奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsManufacturingServicesAwardByIds(Long[] ids) {
+        return baseMapper.deleteBmsManufacturingServicesAwardByIds(ids);
+    }
+
+    /**
+     * 删除制造服务业有效投入奖补信息
+     * 
+     * @param id 制造服务业有效投入奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsManufacturingServicesAwardById(Long id) {
+        return baseMapper.deleteBmsManufacturingServicesAwardById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsPlatformConstructionAwardServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsPlatformConstructionAwardServiceImpl.java
new file mode 100644
index 0000000..4ce7593
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsPlatformConstructionAwardServiceImpl.java
@@ -0,0 +1,145 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.BmsPlatformConstructionAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsPlatformConstructionAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsPlatformConstructionAwardUpdateDto;
+import com.ruoyi.jjh.declaration.mapper.BmsPlatformConstructionAwardMapper;
+import com.ruoyi.jjh.declaration.service.IBmsDeclarationRecordsService;
+import com.ruoyi.jjh.declaration.service.IBmsPlatformConstructionAwardService;
+import com.ruoyi.jjh.declaration.service.ICommonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 平台建设奖补Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Service
+@Lazy
+public class BmsPlatformConstructionAwardServiceImpl extends ServiceImpl<BmsPlatformConstructionAwardMapper,BmsPlatformConstructionAward> implements IBmsPlatformConstructionAwardService {
+
+    @Autowired
+    private ICommonService iCommonService;
+
+    @Autowired
+    private IBmsDeclarationRecordsService iBmsDeclarationRecordsService;
+
+    /**
+     * 查询平台建设奖补
+     * 
+     * @param id 平台建设奖补主键
+     * @return 平台建设奖补
+     */
+    @Override
+    public BmsPlatformConstructionAward selectBmsPlatformConstructionAwardById(Long id) {
+        return baseMapper.selectBmsPlatformConstructionAwardById(id);
+    }
+
+    /**
+     * 查询平台建设奖补列表
+     * 
+     * @param bmsPlatformConstructionAward 平台建设奖补
+     * @return 平台建设奖补
+     */
+    @Override
+    public List<BmsPlatformConstructionAward> selectBmsPlatformConstructionAwardList(BmsPlatformConstructionAward bmsPlatformConstructionAward) {
+        return baseMapper.selectBmsPlatformConstructionAwardList(bmsPlatformConstructionAward);
+    }
+
+    /**
+     * 新增平台建设奖补
+     * 
+     * @param bmsPlatformConstructionAwardAddDto 平台建设奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int insertBmsPlatformConstructionAward(BmsPlatformConstructionAwardAddDto bmsPlatformConstructionAwardAddDto) {
+        Long enterpriseId = iCommonService.checkEnterprise(bmsPlatformConstructionAwardAddDto.getCreditCode()
+                ,bmsPlatformConstructionAwardAddDto.getTemplateRecordId());
+        // check 申报信息
+        iCommonService.checkDeclaration(bmsPlatformConstructionAwardAddDto.getCreditCode()
+                ,bmsPlatformConstructionAwardAddDto.getTemplateRecordId());
+        BmsPlatformConstructionAward bmsPlatformConstructionAward = new BmsPlatformConstructionAward();
+        BeanUtil.copyProperties(bmsPlatformConstructionAwardAddDto,bmsPlatformConstructionAward);
+        bmsPlatformConstructionAward.setEnterpriseId(enterpriseId);
+        // 新增做大做强奖详情
+        int num = baseMapper.insert(bmsPlatformConstructionAward);
+
+        // 新增申请记录
+        BmsDeclarationRecords declarationRecords = new BmsDeclarationRecords();
+        BeanUtil.copyProperties(bmsPlatformConstructionAwardAddDto,declarationRecords);
+        declarationRecords.setMatter("提交平台建设奖补申请");
+        declarationRecords.setEnterpriseId(enterpriseId);
+        declarationRecords.setDetailId(bmsPlatformConstructionAward.getId());
+        iBmsDeclarationRecordsService.save(declarationRecords);
+        // 生成审核
+        if (bmsPlatformConstructionAwardAddDto.getStatus()==1){
+            // 审批状态
+            iCommonService.insertAuditRecord(declarationRecords.getId(),0);
+        }
+        return num;
+    }
+
+    /**
+     * 修改平台建设奖补
+     * 
+     * @param bmsPlatformConstructionAwardUpdateDto 平台建设奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateBmsPlatformConstructionAward(BmsPlatformConstructionAwardUpdateDto bmsPlatformConstructionAwardUpdateDto) {
+        int num = 0;
+        try {
+            iBmsDeclarationRecordsService.updateDeclarationRecords(bmsPlatformConstructionAwardUpdateDto.getDeclarationRecordsId()
+                    ,bmsPlatformConstructionAwardUpdateDto.getProjectId(),bmsPlatformConstructionAwardUpdateDto.getProjectName()
+                    ,bmsPlatformConstructionAwardUpdateDto.getStatus());
+
+            iBmsDeclarationRecordsService.updateProjectNameById(bmsPlatformConstructionAwardUpdateDto.getId()
+                    ,bmsPlatformConstructionAwardUpdateDto.getProjectName(),bmsPlatformConstructionAwardUpdateDto.getProjectId());
+            bmsPlatformConstructionAwardUpdateDto.setUpdateTime(DateUtils.getNowDate());
+            num = baseMapper.updateBmsPlatformConstructionAward(bmsPlatformConstructionAwardUpdateDto);
+            // 申请审批
+            if (bmsPlatformConstructionAwardUpdateDto.getStatus()==1){
+                // 审批状态
+                iCommonService.insertAuditRecord(bmsPlatformConstructionAwardUpdateDto.getDeclarationRecordsId(),0);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return num;
+    }
+
+    /**
+     * 批量删除平台建设奖补
+     * 
+     * @param ids 需要删除的平台建设奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsPlatformConstructionAwardByIds(Long[] ids) {
+        return baseMapper.deleteBmsPlatformConstructionAwardByIds(ids);
+    }
+
+    /**
+     * 删除平台建设奖补信息
+     * 
+     * @param id 平台建设奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsPlatformConstructionAwardById(Long id) {
+        return baseMapper.deleteBmsPlatformConstructionAwardById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsProcessInfoServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsProcessInfoServiceImpl.java
new file mode 100644
index 0000000..03ae406
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsProcessInfoServiceImpl.java
@@ -0,0 +1,88 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsProcessInfo;
+import com.ruoyi.jjh.declaration.mapper.BmsProcessInfoMapper;
+import com.ruoyi.jjh.declaration.service.IBmsProcessInfoService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 审批流程Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-09-09
+ */
+@Service
+public class BmsProcessInfoServiceImpl extends ServiceImpl<BmsProcessInfoMapper,BmsProcessInfo> implements IBmsProcessInfoService {
+
+    /**
+     * 查询审批流程
+     * 
+     * @param id 审批流程主键
+     * @return 审批流程
+     */
+    @Override
+    public BmsProcessInfo selectBmsProcessInfoById(Long id) {
+        return baseMapper.selectBmsProcessInfoById(id);
+    }
+
+    /**
+     * 查询审批流程列表
+     * 
+     * @param bmsProcessInfo 审批流程
+     * @return 审批流程
+     */
+    @Override
+    public List<BmsProcessInfo> selectBmsProcessInfoList(BmsProcessInfo bmsProcessInfo) {
+        return baseMapper.selectBmsProcessInfoList(bmsProcessInfo);
+    }
+
+    /**
+     * 新增审批流程
+     * 
+     * @param bmsProcessInfo 审批流程
+     * @return 结果
+     */
+    @Override
+    public int insertBmsProcessInfo(BmsProcessInfo bmsProcessInfo) {
+        bmsProcessInfo.setCreateTime(DateUtils.getNowDate());
+        return baseMapper.insertBmsProcessInfo(bmsProcessInfo);
+    }
+
+    /**
+     * 修改审批流程
+     * 
+     * @param bmsProcessInfo 审批流程
+     * @return 结果
+     */
+    @Override
+    public int updateBmsProcessInfo(BmsProcessInfo bmsProcessInfo) {
+        bmsProcessInfo.setUpdateTime(DateUtils.getNowDate());
+        return baseMapper.updateBmsProcessInfo(bmsProcessInfo);
+    }
+
+    /**
+     * 批量删除审批流程
+     * 
+     * @param ids 需要删除的审批流程主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsProcessInfoByIds(Long[] ids) {
+        return baseMapper.deleteBmsProcessInfoByIds(ids);
+    }
+
+    /**
+     * 删除审批流程信息
+     * 
+     * @param id 审批流程主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsProcessInfoById(Long id) {
+        return baseMapper.deleteBmsProcessInfoById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsProjectInfoServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsProjectInfoServiceImpl.java
new file mode 100644
index 0000000..9f20f22
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsProjectInfoServiceImpl.java
@@ -0,0 +1,94 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsProjectInfo;
+import com.ruoyi.jjh.declaration.mapper.BmsProjectInfoMapper;
+import com.ruoyi.jjh.declaration.service.IBmsProjectInfoService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 项目基本信息Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-09-09
+ */
+@Service
+public class BmsProjectInfoServiceImpl extends ServiceImpl<BmsProjectInfoMapper,BmsProjectInfo> implements IBmsProjectInfoService {
+
+
+    /**
+     * 查询项目基本信息
+     * 
+     * @param id 项目基本信息主键
+     * @return 项目基本信息
+     */
+    @Override
+    public BmsProjectInfo selectBmsProjectInfoById(Long id) {
+        return baseMapper.selectBmsProjectInfoById(id);
+    }
+
+    /**
+     * 查询项目基本信息列表
+     * 
+     * @param bmsProjectInfo 项目基本信息
+     * @return 项目基本信息
+     */
+    @Override
+    public List<BmsProjectInfo> selectBmsProjectInfoList(BmsProjectInfo bmsProjectInfo) {
+        return baseMapper.selectBmsProjectInfoList(bmsProjectInfo);
+    }
+
+    /**
+     * 新增项目基本信息
+     * 
+     * @param bmsProjectInfo 项目基本信息
+     * @return 结果
+     */
+    @Override
+    public int insertBmsProjectInfo(BmsProjectInfo bmsProjectInfo) {
+        bmsProjectInfo.setCreateTime(DateUtils.getNowDate());
+        return baseMapper.insertBmsProjectInfo(bmsProjectInfo);
+    }
+
+    /**
+     * 修改项目基本信息
+     * 
+     * @param bmsProjectInfo 项目基本信息
+     * @return 结果
+     */
+    @Override
+    public int updateBmsProjectInfo(BmsProjectInfo bmsProjectInfo) {
+        bmsProjectInfo.setUpdateTime(DateUtils.getNowDate());
+        return baseMapper.updateBmsProjectInfo(bmsProjectInfo);
+    }
+
+    /**
+     * 批量删除项目基本信息
+     * 
+     * @param ids 需要删除的项目基本信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsProjectInfoByIds(Long[] ids) {
+        return baseMapper.deleteBmsProjectInfoByIds(ids);
+    }
+
+    /**
+     * 删除项目基本信息信息
+     * 
+     * @param id 项目基本信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsProjectInfoById(Long id) {
+        return baseMapper.deleteBmsProjectInfoById(id);
+    }
+
+    @Override
+    public BmsProjectInfo getProjectInfo(Long templateRecordId){
+        return baseMapper.getProjectInfo(templateRecordId);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsProjectSettlementAwardServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsProjectSettlementAwardServiceImpl.java
new file mode 100644
index 0000000..a5e33b3
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsProjectSettlementAwardServiceImpl.java
@@ -0,0 +1,165 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.BmsFundingDetail;
+import com.ruoyi.jjh.declaration.entity.BmsProjectSettlementAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsFundingDetailAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsProjectSettlementAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsProjectSettlementAwardUpdateDto;
+import com.ruoyi.jjh.declaration.entity.vo.BmsProjectSettlementAwardQueryVo;
+import com.ruoyi.jjh.declaration.mapper.BmsProjectSettlementAwardMapper;
+import com.ruoyi.jjh.declaration.service.IBmsDeclarationRecordsService;
+import com.ruoyi.jjh.declaration.service.IBmsFundingDetailService;
+import com.ruoyi.jjh.declaration.service.IBmsProjectSettlementAwardService;
+import com.ruoyi.jjh.declaration.service.ICommonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 项目落户奖补Service业务层处理
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+@Service
+@Lazy
+public class BmsProjectSettlementAwardServiceImpl extends ServiceImpl<BmsProjectSettlementAwardMapper, BmsProjectSettlementAward> implements IBmsProjectSettlementAwardService {
+
+    @Autowired
+    private ICommonService iCommonService;
+
+
+    @Autowired
+    private IBmsFundingDetailService iBmsFundingDetailService;
+
+    @Autowired
+    private IBmsDeclarationRecordsService iBmsDeclarationRecordsService;
+
+    /**
+     * 查询项目落户奖补
+     *
+     * @param id 项目落户奖补主键
+     * @return 项目落户奖补
+     */
+    @Override
+    public BmsProjectSettlementAwardQueryVo selectBmsProjectSettlementAwardById(Long id) {
+        return baseMapper.selectBmsProjectSettlementAwardById(id);
+    }
+
+    /**
+     * 查询项目落户奖补列表
+     *
+     * @param bmsProjectSettlementAward 项目落户奖补
+     * @return 项目落户奖补
+     */
+    @Override
+    public List<BmsProjectSettlementAward> selectBmsProjectSettlementAwardList(BmsProjectSettlementAward bmsProjectSettlementAward) {
+        return baseMapper.selectBmsProjectSettlementAwardList(bmsProjectSettlementAward);
+    }
+
+    /**
+     * 新增项目落户奖补
+     *
+     * @param bmsProjectSettlementAwardAddDto 项目落户奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int insertBmsProjectSettlementAward(BmsProjectSettlementAwardAddDto bmsProjectSettlementAwardAddDto) {
+
+        //检测企业信息
+        Long enterpriseId = iCommonService.checkEnterprise(bmsProjectSettlementAwardAddDto.getCreditCode()
+                , bmsProjectSettlementAwardAddDto.getTemplateRecordId());
+        // check 申报信息
+        iCommonService.checkDeclaration(bmsProjectSettlementAwardAddDto.getCreditCode()
+                , bmsProjectSettlementAwardAddDto.getTemplateRecordId());
+        BmsProjectSettlementAward projectSettlementAward = new BmsProjectSettlementAward();
+        BeanUtil.copyProperties(bmsProjectSettlementAwardAddDto, projectSettlementAward);
+        projectSettlementAward.setEnterpriseId(enterpriseId);
+        // 新增项目落户奖补对象
+        int num = baseMapper.insert(projectSettlementAward);
+        List<BmsFundingDetailAddDto> fundingDetailAddList = bmsProjectSettlementAwardAddDto.getFundingDetailList();
+        List<BmsFundingDetail> fundingDetailList = new ArrayList<>();
+        fundingDetailAddList.forEach(x -> {
+            BmsFundingDetail fundingDetail = new BmsFundingDetail();
+            BeanUtil.copyProperties(x, fundingDetail);
+            fundingDetail.setType(1);
+            fundingDetail.setTemplateRecordId(bmsProjectSettlementAwardAddDto.getTemplateRecordId());
+            fundingDetail.setDetailId(projectSettlementAward.getId());
+            fundingDetailList.add(fundingDetail);
+        });
+        // 批量新增资金信息
+        iBmsFundingDetailService.saveOrUpdateBatch(fundingDetailList);
+        // 新增申请记录
+        BmsDeclarationRecords declarationRecords = new BmsDeclarationRecords();
+        BeanUtil.copyProperties(bmsProjectSettlementAwardAddDto, declarationRecords);
+        declarationRecords.setMatter("提交落户奖补申请");
+        declarationRecords.setEnterpriseId(enterpriseId);
+        declarationRecords.setDetailId(projectSettlementAward.getId());
+        iBmsDeclarationRecordsService.save(declarationRecords);
+        // 生成审核
+        if (bmsProjectSettlementAwardAddDto.getStatus() == 1) {
+            // 审批状态
+            iCommonService.insertAuditRecord(declarationRecords.getId(), 0);
+        }
+        return num;
+    }
+
+    /**
+     * 修改项目落户奖补
+     *
+     * @param bmsProjectSettlementAwardUpdateDto 项目落户奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateBmsProjectSettlementAward(BmsProjectSettlementAwardUpdateDto bmsProjectSettlementAwardUpdateDto) {
+        int num = 0;
+        try {
+            iBmsDeclarationRecordsService.updateDeclarationRecords(bmsProjectSettlementAwardUpdateDto.getDeclarationRecordsId()
+                    , bmsProjectSettlementAwardUpdateDto.getProjectId(), bmsProjectSettlementAwardUpdateDto.getProjectName()
+                    , bmsProjectSettlementAwardUpdateDto.getStatus());
+
+            num = baseMapper.updateBmsProjectSettlementAward(bmsProjectSettlementAwardUpdateDto);
+            List<BmsFundingDetail> fundingDetailList = bmsProjectSettlementAwardUpdateDto.getFundingDetailList();
+            iBmsFundingDetailService.saveOrUpdateBatch(fundingDetailList);
+            // 申请审批
+            if (bmsProjectSettlementAwardUpdateDto.getStatus() == 1) {
+                // 审批状态
+                iCommonService.insertAuditRecord(bmsProjectSettlementAwardUpdateDto.getDeclarationRecordsId(), 0);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return num;
+    }
+
+    /**
+     * 批量删除项目落户奖补
+     *
+     * @param ids 需要删除的项目落户奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsProjectSettlementAwardByIds(Long[] ids) {
+        return baseMapper.deleteBmsProjectSettlementAwardByIds(ids);
+    }
+
+    /**
+     * 删除项目落户奖补信息
+     *
+     * @param id 项目落户奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsProjectSettlementAwardById(Long id) {
+        return baseMapper.deleteBmsProjectSettlementAwardById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsSceneOpeningAwardServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsSceneOpeningAwardServiceImpl.java
new file mode 100644
index 0000000..31cda92
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsSceneOpeningAwardServiceImpl.java
@@ -0,0 +1,141 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.BmsSceneOpeningAward;
+import com.ruoyi.jjh.declaration.entity.dto.BmsSceneOpeningAwardAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsSceneOpeningAwardUpdateDto;
+import com.ruoyi.jjh.declaration.mapper.BmsSceneOpeningAwardMapper;
+import com.ruoyi.jjh.declaration.service.IBmsDeclarationRecordsService;
+import com.ruoyi.jjh.declaration.service.IBmsSceneOpeningAwardService;
+import com.ruoyi.jjh.declaration.service.ICommonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 场景开放奖补Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Service
+public class BmsSceneOpeningAwardServiceImpl extends ServiceImpl<BmsSceneOpeningAwardMapper,BmsSceneOpeningAward> implements IBmsSceneOpeningAwardService {
+
+    @Autowired
+    private ICommonService iCommonService;
+
+    @Autowired
+    private IBmsDeclarationRecordsService iBmsDeclarationRecordsService;
+
+    /**
+     * 查询场景开放奖补
+     * 
+     * @param id 场景开放奖补主键
+     * @return 场景开放奖补
+     */
+    @Override
+    public BmsSceneOpeningAward selectBmsSceneOpeningAwardById(Long id) {
+        return baseMapper.selectBmsSceneOpeningAwardById(id);
+    }
+
+    /**
+     * 查询场景开放奖补列表
+     * 
+     * @param bmsSceneOpeningAward 场景开放奖补
+     * @return 场景开放奖补
+     */
+    @Override
+    public List<BmsSceneOpeningAward> selectBmsSceneOpeningAwardList(BmsSceneOpeningAward bmsSceneOpeningAward) {
+        return baseMapper.selectBmsSceneOpeningAwardList(bmsSceneOpeningAward);
+    }
+
+    /**
+     * 新增场景开放奖补
+     * 
+     * @param bmsSceneOpeningAwardAddDto 场景开放奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int insertBmsSceneOpeningAward(BmsSceneOpeningAwardAddDto bmsSceneOpeningAwardAddDto) {
+        Long enterpriseId = iCommonService.checkEnterprise(bmsSceneOpeningAwardAddDto.getCreditCode()
+                ,bmsSceneOpeningAwardAddDto.getTemplateRecordId());
+        // check 申报信息
+        iCommonService.checkDeclaration(bmsSceneOpeningAwardAddDto.getCreditCode()
+                ,bmsSceneOpeningAwardAddDto.getTemplateRecordId());
+        BmsSceneOpeningAward bmsSceneOpeningAward = new BmsSceneOpeningAward();
+        BeanUtil.copyProperties(bmsSceneOpeningAwardAddDto,bmsSceneOpeningAward);
+        bmsSceneOpeningAward.setEnterpriseId(enterpriseId);
+        // 新增做大做强奖详情
+        int num = baseMapper.insert(bmsSceneOpeningAward);
+
+        // 新增申请记录
+        BmsDeclarationRecords declarationRecords = new BmsDeclarationRecords();
+        BeanUtil.copyProperties(bmsSceneOpeningAwardAddDto,declarationRecords);
+        declarationRecords.setMatter("提交场景开放奖补申请");
+        declarationRecords.setEnterpriseId(enterpriseId);
+        declarationRecords.setDetailId(bmsSceneOpeningAward.getId());
+        iBmsDeclarationRecordsService.save(declarationRecords);
+        // 生成审核
+        if (bmsSceneOpeningAwardAddDto.getStatus()==1){
+            // 审批状态
+            iCommonService.insertAuditRecord(declarationRecords.getId(),0);
+        }
+        return num;
+    }
+
+    /**
+     * 修改场景开放奖补
+     * 
+     * @param bmsSceneOpeningAwardUpdateDto 场景开放奖补
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateBmsSceneOpeningAward(BmsSceneOpeningAwardUpdateDto bmsSceneOpeningAwardUpdateDto) {
+        int num = 0;
+        try {
+            iBmsDeclarationRecordsService.updateDeclarationRecords(bmsSceneOpeningAwardUpdateDto.getDeclarationRecordsId()
+                    ,bmsSceneOpeningAwardUpdateDto.getProjectId(),bmsSceneOpeningAwardUpdateDto.getProjectName()
+                    ,bmsSceneOpeningAwardUpdateDto.getStatus());
+
+            bmsSceneOpeningAwardUpdateDto.setUpdateTime(DateUtils.getNowDate());
+            num=baseMapper.updateBmsSceneOpeningAward(bmsSceneOpeningAwardUpdateDto);
+            // 申请审批
+            if (bmsSceneOpeningAwardUpdateDto.getStatus()==1){
+                // 审批状态
+                iCommonService.insertAuditRecord(bmsSceneOpeningAwardUpdateDto.getDeclarationRecordsId(),0);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return num;
+    }
+
+    /**
+     * 批量删除场景开放奖补
+     * 
+     * @param ids 需要删除的场景开放奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsSceneOpeningAwardByIds(Long[] ids) {
+        return baseMapper.deleteBmsSceneOpeningAwardByIds(ids);
+    }
+
+    /**
+     * 删除场景开放奖补信息
+     * 
+     * @param id 场景开放奖补主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsSceneOpeningAwardById(Long id) {
+        return baseMapper.deleteBmsSceneOpeningAwardById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsTemplateInfoServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsTemplateInfoServiceImpl.java
new file mode 100644
index 0000000..b200420
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsTemplateInfoServiceImpl.java
@@ -0,0 +1,158 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.file.FileUtils;
+import com.ruoyi.jjh.declaration.entity.BmsTemplateInfo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsTemplateInfoQueryVo;
+import com.ruoyi.jjh.declaration.mapper.BmsTemplateInfoMapper;
+import com.ruoyi.jjh.declaration.service.IBmsEnterpriseDirectoryService;
+import com.ruoyi.jjh.declaration.service.IBmsTemplateInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * 申报模板信息Service业务层处理
+ *
+ * @author farben
+ * @date 2023-08-25
+ */
+@Service
+public class BmsTemplateInfoServiceImpl extends ServiceImpl<BmsTemplateInfoMapper, BmsTemplateInfo> implements IBmsTemplateInfoService {
+
+    @Autowired
+    private IBmsEnterpriseDirectoryService enterpriseDirectoryService;
+
+    /**
+     * 查询申报模板信息
+     *
+     * @param id 申报模板信息主键
+     * @return 申报模板信息
+     */
+    @Override
+    public BmsTemplateInfo selectBmsTemplateInfoById(Long id) {
+        return baseMapper.selectBmsTemplateInfoById(id);
+    }
+
+    /**
+     * 查询申报模板信息列表
+     *
+     * @param bmsTemplateInfo 申报模板信息
+     * @return 申报模板信息
+     */
+    @Override
+    public List<BmsTemplateInfoQueryVo> selectBmsTemplateInfoList(BmsTemplateInfo bmsTemplateInfo) {
+        return baseMapper.templateInfoList(bmsTemplateInfo);
+    }
+
+    /**
+     * 导出模板表单
+     *
+     * @param request
+     * @param response
+     * @param id
+     * @return
+     * @author emiya.xie
+     * @create 2023/8/31 10:25
+     */
+    @Override
+    public void exportTemplate(HttpServletRequest request, HttpServletResponse response, Long id) {
+        BmsTemplateInfo bmsTemplateInfo = baseMapper.selectById(id);
+        if (BeanUtil.isEmpty(bmsTemplateInfo)) {
+            throw new ServiceException("没有找到合适的模板!");
+        }
+        String fileName = bmsTemplateInfo.getTemplateName() + ".xlsx";
+        String file = "/template/" + fileName;
+        InputStream is = this.getClass().getResourceAsStream(file);
+        byte[] fileData = new byte[0];
+        try {
+            fileData = input2byte(is);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        FileUtils.downloadFile(response, request, fileName, fileData);
+    }
+
+    private byte[] input2byte(InputStream inStream)
+            throws IOException {
+        ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
+        byte[] buff = new byte[100];
+        int rc = 0;
+        while ((rc = inStream.read(buff, 0, 100)) > 0) {
+            swapStream.write(buff, 0, rc);
+        }
+        byte[] in2b = swapStream.toByteArray();
+        return in2b;
+    }
+
+    /**
+     * 新增申报模板信息
+     *
+     * @param bmsTemplateInfo 申报模板信息
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int insertBmsTemplateInfo(BmsTemplateInfo bmsTemplateInfo) {
+        int num = 0;
+        try {
+            bmsTemplateInfo.setCreateTime(DateUtils.getNowDate());
+            num = baseMapper.insertBmsTemplateInfo(bmsTemplateInfo);
+//            List<BmsEnterpriseDirectory> enterpriseDirectoryList = bmsTemplateInfo
+//                    .getEnterpriseDirectoryList();
+//            if (null != enterpriseDirectoryList && enterpriseDirectoryList.size()>0){
+//                enterpriseDirectoryList.forEach(x->{
+//                    x.setTemplateId(bmsTemplateInfoAddDto.getId());
+//                });
+//                enterpriseDirectoryService.saveOrUpdateBatch(enterpriseDirectoryList);
+//            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return num;
+    }
+
+    /**
+     * 修改申报模板信息
+     *
+     * @param bmsTemplateInfo 申报模板信息
+     * @return 结果
+     */
+    @Override
+    public int updateBmsTemplateInfo(BmsTemplateInfo bmsTemplateInfo) {
+        bmsTemplateInfo.setUpdateTime(DateUtils.getNowDate());
+        return baseMapper.updateBmsTemplateInfo(bmsTemplateInfo);
+    }
+
+    /**
+     * 批量删除申报模板信息
+     *
+     * @param ids 需要删除的申报模板信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsTemplateInfoByIds(Long[] ids) {
+        return baseMapper.deleteBmsTemplateInfoByIds(ids);
+    }
+
+    /**
+     * 删除申报模板信息信息
+     *
+     * @param id 申报模板信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsTemplateInfoById(Long id) {
+        return baseMapper.deleteBmsTemplateInfoById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsTemplateRecordServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsTemplateRecordServiceImpl.java
new file mode 100644
index 0000000..082b525
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsTemplateRecordServiceImpl.java
@@ -0,0 +1,157 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseBasicInfo;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseDirectory;
+import com.ruoyi.jjh.declaration.entity.BmsTemplateRecord;
+import com.ruoyi.jjh.declaration.entity.dto.BmsTemplateQueryDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsTemplateRecordAddDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsTemplateRecordQueryDto;
+import com.ruoyi.jjh.declaration.entity.dto.BmsTemplateRecordUpdateDto;
+import com.ruoyi.jjh.declaration.entity.vo.BmsTemplateRecordQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsTemplateRecordVo;
+import com.ruoyi.jjh.declaration.mapper.BmsTemplateRecordMapper;
+import com.ruoyi.jjh.declaration.service.IBmsEnterpriseBasicInfoService;
+import com.ruoyi.jjh.declaration.service.IBmsEnterpriseDirectoryService;
+import com.ruoyi.jjh.declaration.service.IBmsTemplateRecordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 在线模板Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-09-07
+ */
+@Service
+public class BmsTemplateRecordServiceImpl extends ServiceImpl<BmsTemplateRecordMapper,BmsTemplateRecord> implements IBmsTemplateRecordService {
+
+    @Autowired
+    private IBmsEnterpriseDirectoryService enterpriseDirectoryService;
+
+    @Autowired
+    private IBmsEnterpriseBasicInfoService iBmsEnterpriseBasicInfoService;
+    /**
+     * 查询在线模板
+     * 
+     * @param id 在线模板主键
+     * @return 在线模板
+     */
+    @Override
+    public BmsTemplateRecordVo selectBmsTemplateRecordById(Long id) {
+        BmsTemplateRecordVo bmsTemplateRecordVo = baseMapper.selectBmsTemplateRecordVoById(id);
+        List<BmsEnterpriseDirectory> list = enterpriseDirectoryService.lambdaQuery()
+                .eq(BmsEnterpriseDirectory::getTemplateRecordId, id).list();
+        bmsTemplateRecordVo.setEnterpriseDirectoryList(list);
+        return bmsTemplateRecordVo;
+    }
+
+    /**
+     * 查询在线模板列表
+     * 
+     * @param bmsTemplateRecordQueryDto 在线模板
+     * @return 在线模板
+     */
+    @Override
+    public List<BmsTemplateRecordQueryVo> selectBmsTemplateRecordList(BmsTemplateRecordQueryDto bmsTemplateRecordQueryDto) {
+        return baseMapper.selectTemplateRecordVo(bmsTemplateRecordQueryDto);
+    }
+
+    @Override
+    public List<BmsTemplateRecordQueryVo> selectTemplateRecordList(String creditCode) {
+        return baseMapper.selectTemplateRecordList(creditCode);
+    }
+
+    @Override
+    public List<BmsTemplateRecordQueryVo> selectBmsTemplateNameList(BmsTemplateQueryDto bmsTemplateQueryDto) {
+        Long enterpriseId = bmsTemplateQueryDto.getEnterpriseId();
+        BmsEnterpriseBasicInfo bmsEnterpriseBasicInfo = iBmsEnterpriseBasicInfoService.selectBmsEnterpriseBasicInfoById(enterpriseId);
+        if (BeanUtil.isNotEmpty(bmsEnterpriseBasicInfo)){
+            bmsTemplateQueryDto.setCreditCode(bmsEnterpriseBasicInfo.getCreditCode());
+            return baseMapper.selectBmsTemplateNameList(bmsTemplateQueryDto);
+        }
+        return null;
+    }
+
+    /**
+     * 新增在线模板
+     * 
+     * @param bmsTemplateRecordAddDto 在线模板
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int insertBmsTemplateRecord(BmsTemplateRecordAddDto bmsTemplateRecordAddDto) {
+        int num = 0;
+        try {
+            bmsTemplateRecordAddDto.setCreateTime(DateUtils.getNowDate());
+            num = baseMapper.insertBmsTemplateRecord(bmsTemplateRecordAddDto);
+            List<BmsEnterpriseDirectory> enterpriseDirectoryList = bmsTemplateRecordAddDto
+                    .getEnterpriseDirectoryList();
+            if (null != enterpriseDirectoryList && enterpriseDirectoryList.size()>0){
+                enterpriseDirectoryList.forEach(x->{
+                    x.setTemplateRecordId(bmsTemplateRecordAddDto.getId());
+                });
+                enterpriseDirectoryService.saveOrUpdateBatch(enterpriseDirectoryList);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return num;
+    }
+
+    /**
+     * 修改在线模板
+     * 
+     * @param bmsTemplateRecordUpdateDto 在线模板
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateBmsTemplateRecord(BmsTemplateRecordUpdateDto bmsTemplateRecordUpdateDto) {
+        bmsTemplateRecordUpdateDto.setUpdateTime(DateUtils.getNowDate());
+        int num = baseMapper.updateBmsTemplateRecord(bmsTemplateRecordUpdateDto);
+        // 删除企业相关列表
+        QueryWrapper<BmsEnterpriseDirectory> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("template_record_id",bmsTemplateRecordUpdateDto.getId());
+        enterpriseDirectoryService.remove(queryWrapper);
+        // 新增企业相关列表
+        List<BmsEnterpriseDirectory> enterpriseDirectoryList = bmsTemplateRecordUpdateDto
+                .getEnterpriseDirectoryList();
+        if (null != enterpriseDirectoryList && enterpriseDirectoryList.size()>0){
+            enterpriseDirectoryList.forEach(x->{
+                x.setTemplateRecordId(bmsTemplateRecordUpdateDto.getId());
+            });
+            enterpriseDirectoryService.saveOrUpdateBatch(enterpriseDirectoryList);
+        }
+        return num;
+    }
+
+    /**
+     * 批量删除在线模板
+     * 
+     * @param ids 需要删除的在线模板主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsTemplateRecordByIds(Long[] ids) {
+        return baseMapper.deleteBmsTemplateRecordByIds(ids);
+    }
+
+    /**
+     * 删除在线模板信息
+     * 
+     * @param id 在线模板主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBmsTemplateRecordById(Long id) {
+        return baseMapper.deleteBmsTemplateRecordById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BsmFundingInfoServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BsmFundingInfoServiceImpl.java
new file mode 100644
index 0000000..a674288
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BsmFundingInfoServiceImpl.java
@@ -0,0 +1,88 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.jjh.declaration.entity.BsmFundingInfo;
+import com.ruoyi.jjh.declaration.mapper.BsmFundingInfoMapper;
+import com.ruoyi.jjh.declaration.service.IBsmFundingInfoService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 资金信息Service业务层处理
+ * 
+ * @author farben
+ * @date 2023-08-25
+ */
+@Service
+public class BsmFundingInfoServiceImpl extends ServiceImpl<BsmFundingInfoMapper,BsmFundingInfo> implements IBsmFundingInfoService {
+
+    /**
+     * 查询资金信息
+     * 
+     * @param id 资金信息主键
+     * @return 资金信息
+     */
+    @Override
+    public BsmFundingInfo selectBsmFundingInfoById(Long id) {
+        return baseMapper.selectBsmFundingInfoById(id);
+    }
+
+    /**
+     * 查询资金信息列表
+     * 
+     * @param bsmFundingInfo 资金信息
+     * @return 资金信息
+     */
+    @Override
+    public List<BsmFundingInfo> selectBsmFundingInfoList(BsmFundingInfo bsmFundingInfo) {
+        return baseMapper.selectBsmFundingInfoList(bsmFundingInfo);
+    }
+
+    /**
+     * 新增资金信息
+     * 
+     * @param bsmFundingInfo 资金信息
+     * @return 结果
+     */
+    @Override
+    public int insertBsmFundingInfo(BsmFundingInfo bsmFundingInfo) {
+        bsmFundingInfo.setCreateTime(DateUtils.getNowDate());
+        return baseMapper.insertBsmFundingInfo(bsmFundingInfo);
+    }
+
+    /**
+     * 修改资金信息
+     * 
+     * @param bsmFundingInfo 资金信息
+     * @return 结果
+     */
+    @Override
+    public int updateBsmFundingInfo(BsmFundingInfo bsmFundingInfo) {
+        bsmFundingInfo.setUpdateTime(DateUtils.getNowDate());
+        return baseMapper.updateBsmFundingInfo(bsmFundingInfo);
+    }
+
+    /**
+     * 批量删除资金信息
+     * 
+     * @param ids 需要删除的资金信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBsmFundingInfoByIds(Long[] ids) {
+        return baseMapper.deleteBsmFundingInfoByIds(ids);
+    }
+
+    /**
+     * 删除资金信息信息
+     * 
+     * @param id 资金信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBsmFundingInfoById(Long id) {
+        return baseMapper.deleteBsmFundingInfoById(id);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/CommonServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/CommonServiceImpl.java
new file mode 100644
index 0000000..617cd58
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/CommonServiceImpl.java
@@ -0,0 +1,413 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.context.SecurityContextHolder;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.jjh.declaration.entity.BmsApprovalInfo;
+import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseBasicInfo;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseDirectory;
+import com.ruoyi.jjh.declaration.entity.BmsFundingDetail;
+import com.ruoyi.jjh.declaration.entity.BmsProcessInfo;
+import com.ruoyi.jjh.declaration.entity.BmsTemplateRecord;
+import com.ruoyi.jjh.declaration.entity.dto.BmsApprovalInfoUpdateDto;
+import com.ruoyi.jjh.declaration.entity.dto.OpenInterfaceApplyAddDto;
+import com.ruoyi.jjh.declaration.entity.vo.BmsBigStrongAwardQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.BmsProjectSettlementAwardQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.DeclarationRecordsVo;
+import com.ruoyi.jjh.declaration.service.IBmsApprovalInfoService;
+import com.ruoyi.jjh.declaration.service.IBmsBigStrongAwardService;
+import com.ruoyi.jjh.declaration.service.IBmsBrandingAwardService;
+import com.ruoyi.jjh.declaration.service.IBmsCarrierConstructionAwardService;
+import com.ruoyi.jjh.declaration.service.IBmsCreditManagementService;
+import com.ruoyi.jjh.declaration.service.IBmsDeclarationRecordsService;
+import com.ruoyi.jjh.declaration.service.IBmsEnterpriseBasicInfoService;
+import com.ruoyi.jjh.declaration.service.IBmsEnterpriseDirectoryService;
+import com.ruoyi.jjh.declaration.service.IBmsFundingDetailService;
+import com.ruoyi.jjh.declaration.service.IBmsIndustrialInternetAwardService;
+import com.ruoyi.jjh.declaration.service.IBmsIntegrationIndustriesService;
+import com.ruoyi.jjh.declaration.service.IBmsLogisticsDevelopmentAwardService;
+import com.ruoyi.jjh.declaration.service.IBmsManufacturingServicesAwardService;
+import com.ruoyi.jjh.declaration.service.IBmsPlatformConstructionAwardService;
+import com.ruoyi.jjh.declaration.service.IBmsProcessInfoService;
+import com.ruoyi.jjh.declaration.service.IBmsProjectSettlementAwardService;
+import com.ruoyi.jjh.declaration.service.IBmsSceneOpeningAwardService;
+import com.ruoyi.jjh.declaration.service.IBmsTemplateRecordService;
+import com.ruoyi.jjh.declaration.service.ICommonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 公共服务impl
+ * <p>
+ *
+ * @className: CommonServiceImpl
+ * @author: emiya.xie
+ * @create: 2023-08-31 15:44
+ */
+@Service
+@Lazy
+public class CommonServiceImpl implements ICommonService {
+
+
+    @Autowired
+    private IBmsProcessInfoService iBmsProcessInfoService;
+
+    @Autowired
+    private IBmsApprovalInfoService iBmsApprovalInfoService;
+
+    @Autowired
+    private IBmsEnterpriseBasicInfoService bmsEnterpriseBasicInfoService;
+
+    @Autowired
+    private IBmsEnterpriseDirectoryService bmsEnterpriseDirectoryService;
+
+    @Autowired
+    private IBmsProjectSettlementAwardService iBmsProjectSettlementAwardService;
+
+    @Autowired
+    private IBmsBigStrongAwardService iBmsBigStrongAwardService;
+
+    @Autowired
+    private IBmsCarrierConstructionAwardService iBmsCarrierConstructionAwardService;
+
+    @Autowired
+    private IBmsPlatformConstructionAwardService iBmsPlatformConstructionAwardService;
+
+    @Autowired
+    private IBmsBrandingAwardService iBmsBrandingAwardService;
+
+    @Autowired
+    private IBmsSceneOpeningAwardService iBmsSceneOpeningAwardService;
+
+    @Autowired
+    private IBmsCreditManagementService iBmsCreditManagementService;
+
+    @Autowired
+    private IBmsIndustrialInternetAwardService iBmsIndustrialInternetAwardService;
+
+    @Autowired
+    private IBmsManufacturingServicesAwardService iBmsManufacturingServicesAwardService;
+
+    @Autowired
+    private IBmsLogisticsDevelopmentAwardService iBmsLogisticsDevelopmentAwardService;
+
+    @Autowired
+    private IBmsIntegrationIndustriesService iBmsIntegrationIndustriesService;
+
+    @Autowired
+    private IBmsFundingDetailService iBmsFundingDetailService;
+
+    @Autowired
+    private IBmsTemplateRecordService iBmsTemplateRecordService;
+
+    @Autowired
+    private IBmsDeclarationRecordsService iBmsDeclarationRecordsService;
+
+
+    /**
+     * 检测企业信息
+     *
+     * @param creditCode       企业统一信用代码
+     * @param templateRecordId 模板
+     * @return
+     * @author emiya.xie
+     * @create 2023/8/31 15:48
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Long checkEnterprise(String creditCode, int templateRecordId) {
+        Long enterpriseId = 0L;
+        BmsEnterpriseBasicInfo basicInfo = bmsEnterpriseBasicInfoService.getOne(Wrappers.lambdaQuery(BmsEnterpriseBasicInfo.class).eq(BmsEnterpriseBasicInfo::getCreditCode, creditCode));
+        if (BeanUtil.isEmpty(basicInfo)) {
+            throw new ServiceException("申请企业未入企业库!");
+        }
+        enterpriseId = basicInfo.getId();
+        BmsEnterpriseDirectory enterpriseDirectory = bmsEnterpriseDirectoryService.getOne(Wrappers.lambdaQuery(BmsEnterpriseDirectory.class).eq(BmsEnterpriseDirectory::getCreditCode, creditCode).eq(BmsEnterpriseDirectory::getTemplateRecordId, templateRecordId));
+        if (BeanUtil.isEmpty(enterpriseDirectory)) {
+            throw new ServiceException("申请企业不在企业名录中!");
+        }
+        return enterpriseId;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void checkDeclaration(String creditCode, int templateRecordId) {
+        // check当前企业是否已经申请
+        BmsEnterpriseBasicInfo enterpriseInfo = bmsEnterpriseBasicInfoService.getOne(Wrappers.lambdaQuery(BmsEnterpriseBasicInfo.class).eq(BmsEnterpriseBasicInfo::getCreditCode, creditCode));
+        // check 申请是否过期
+        BmsTemplateRecord templateRecord = iBmsTemplateRecordService.lambdaQuery().eq(BmsTemplateRecord::getId, templateRecordId).le(BmsTemplateRecord::getStartTime, LocalDate.now()).ge(BmsTemplateRecord::getEndTime, LocalDate.now()).one();
+        if (BeanUtil.isEmpty(templateRecord)) {
+            throw new ServiceException("该申请已经错过时间");
+        }
+        List<BmsDeclarationRecords> list = iBmsDeclarationRecordsService.lambdaQuery().eq(BmsDeclarationRecords::getEnterpriseId, enterpriseInfo.getId()).eq(BmsDeclarationRecords::getTemplateRecordId, templateRecord.getId()).list();
+        if (CollectionUtil.isNotEmpty(list)) {
+            throw new ServiceException("该企业已经申请,请勿重复申请!");
+        }
+
+    }
+
+    /**
+     * 检测企业信息
+     *
+     * @param enterpriseId 企业id
+     * @param templateId   模板id
+     * @return {@link Boolean}
+     * @author emiya.xie
+     * @create 2023/9/4 22:55
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void checkEnterprise(Long enterpriseId, Long templateId) {
+        try {
+            BmsEnterpriseBasicInfo basicInfo = bmsEnterpriseBasicInfoService.getOne(Wrappers.lambdaQuery(BmsEnterpriseBasicInfo.class).eq(BmsEnterpriseBasicInfo::getId, enterpriseId));
+            if (BeanUtil.isEmpty(basicInfo)) {
+                throw new ServiceException("申请企业未入企业库!");
+            }
+            BmsEnterpriseDirectory enterpriseDirectory = bmsEnterpriseDirectoryService.getOne(Wrappers.lambdaQuery(BmsEnterpriseDirectory.class).eq(BmsEnterpriseDirectory::getCreditCode, basicInfo.getCreditCode()).eq(BmsEnterpriseDirectory::getTemplateRecordId, templateId));
+            if (BeanUtil.isEmpty(enterpriseDirectory)) {
+                throw new ServiceException("申请企业不在企业名录中!");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 获取申请记录详情
+     *
+     * @param declarationTemplateType 模板id
+     * @param detailId                详情id
+     * @param declarationRecordsVo
+     * @return
+     * @author emiya.xie
+     * @create 2023/9/5 15:55
+     */
+    @Override
+    public void getData(int declarationTemplateType, Long detailId, DeclarationRecordsVo declarationRecordsVo) {
+        // 根据模板id查询对应数据
+        if (declarationTemplateType == 1) {
+            // 项目落户奖补
+            BmsProjectSettlementAwardQueryVo settlementAwardQueryVo = iBmsProjectSettlementAwardService.selectBmsProjectSettlementAwardById(detailId);
+            List<BmsFundingDetail> list = iBmsFundingDetailService.lambdaQuery().eq(BmsFundingDetail::getDetailId, settlementAwardQueryVo.getId()).list();
+            settlementAwardQueryVo.setFundingDetailList(list);
+            declarationRecordsVo.setBmsProjectSettlementAwardQueryVo(settlementAwardQueryVo);
+        } else if (declarationTemplateType == 2) {
+            // 做大做强奖补
+            BmsBigStrongAwardQueryVo bmsBigStrongAwardQueryVo = iBmsBigStrongAwardService.selectBmsBigStrongAwardById(detailId);
+            List<BmsFundingDetail> list = iBmsFundingDetailService.lambdaQuery().eq(BmsFundingDetail::getDetailId, bmsBigStrongAwardQueryVo.getId()).list();
+            bmsBigStrongAwardQueryVo.setFundingDetailList(list);
+            declarationRecordsVo.setBmsBigStrongAwardQueryVo(bmsBigStrongAwardQueryVo);
+        } else if (declarationTemplateType == 3) {
+            // 载体建设奖补
+            declarationRecordsVo.setBmsCarrierConstructionAward(iBmsCarrierConstructionAwardService.selectBmsCarrierConstructionAwardById(detailId));
+        } else if (declarationTemplateType == 4) {
+            // 平台建设奖补
+            declarationRecordsVo.setBmsPlatformConstructionAward(iBmsPlatformConstructionAwardService.selectBmsPlatformConstructionAwardById(detailId));
+        } else if (declarationTemplateType == 5) {
+            // 品牌打造奖补
+            declarationRecordsVo.setBmsBrandingAward(iBmsBrandingAwardService.selectBmsBrandingAwardById(detailId));
+        } else if (declarationTemplateType == 6) {
+            // 场景开放奖补
+            declarationRecordsVo.setBmsSceneOpeningAward(iBmsSceneOpeningAwardService.selectBmsSceneOpeningAwardById(detailId));
+        } else if (declarationTemplateType == 7) {
+            // 信用管理奖补
+            declarationRecordsVo.setBmsCreditManagement(iBmsCreditManagementService.selectBmsCreditManagementById(detailId));
+        } else if (declarationTemplateType == 8) {
+            // 5G+工业互联网奖补
+            declarationRecordsVo.setBmsIndustrialInternetAward(iBmsIndustrialInternetAwardService.selectBmsIndustrialInternetAwardById(detailId));
+        } else if (declarationTemplateType == 9) {
+            // 制造服务业有效投入奖补
+            declarationRecordsVo.setBmsManufacturingServicesAward(iBmsManufacturingServicesAwardService.selectBmsManufacturingServicesAwardById(detailId));
+        } else if (declarationTemplateType == 10) {
+            // 物流发展奖补
+            declarationRecordsVo.setBmsLogisticsDevelopmentAward(iBmsLogisticsDevelopmentAwardService.selectBmsLogisticsDevelopmentAwardById(detailId));
+        } else if (declarationTemplateType == 11) {
+            // 两业融合奖补
+            declarationRecordsVo.setBmsIntegrationIndustries(iBmsIntegrationIndustriesService.selectBmsIntegrationIndustriesById(detailId));
+        }
+    }
+
+    /**
+     * 生成审批信息
+     *
+     * @param declarationRecordId
+     * @param approvalType
+     * @return
+     * @author emiya.xie
+     * @create 2023/9/9 16:44
+     */
+    @Override
+    public void insertProcessInfo(Long declarationRecordId, Integer approvalType) {
+        // 获取流程信息
+        List<BmsProcessInfo> processInfoList = iBmsProcessInfoService.lambdaQuery().eq(BmsProcessInfo::getApprovalType, approvalType).list();
+        if (CollectionUtil.isNotEmpty(processInfoList)) {
+            List<BmsApprovalInfo> approvalList = new ArrayList<>();
+            processInfoList.forEach(x -> {
+                BmsApprovalInfo approvalInfo = new BmsApprovalInfo();
+                approvalInfo.setProcessId(x.getId());
+                approvalInfo.setDeclarationRecordsId(declarationRecordId);
+                approvalInfo.setApprovalStatus(0);
+                approvalInfo.setApprovalById(x.getApprovalById());
+                approvalInfo.setSort(x.getSort());
+                if (x.getSort() == 1) {
+                    approvalInfo.setIsReview(0);
+                }
+                approvalList.add(approvalInfo);
+            });
+            iBmsApprovalInfoService.saveOrUpdateBatch(approvalList);
+        }
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void insertAuditRecord(Long declarationRecordId, Integer approvalType) {
+        // 获取流程信息
+        List<BmsProcessInfo> processInfoList = iBmsProcessInfoService.lambdaQuery().eq(BmsProcessInfo::getApprovalType, approvalType).list();
+
+        List<BmsApprovalInfo> list = new ArrayList<BmsApprovalInfo>();
+        list = iBmsApprovalInfoService.lambdaQuery().eq(BmsApprovalInfo::getDeclarationRecordsId, declarationRecordId).list();
+        if (CollectionUtil.isNotEmpty(processInfoList)) {
+            List<BmsApprovalInfo> finalList = list;
+            processInfoList.forEach(x -> {
+                if (x.getSort() == 1) {
+                    addApprovalInfo(declarationRecordId, x.getApprovalById(), x.getId(), finalList.size() + 1);
+                }
+//                if (x.getApprovalById().equals(SecurityContextHolder.getUserId())){
+//                    addApprovalInfo(declarationRecordId,x.getApprovalById(),x.getId(),list.size());
+//                }
+            });
+        }
+    }
+
+    /**
+     * 新增审批记录
+     *
+     * @param declarationRecordId
+     * @param approvalById
+     * @param processId
+     * @param sort
+     * @return
+     * @author emiya.xie
+     * @create 2023/9/14 14:50
+     */
+    public void addApprovalInfo(Long declarationRecordId, Long approvalById, Long processId, Integer sort) {
+        BmsApprovalInfo approvalInfo = new BmsApprovalInfo();
+        approvalInfo.setProcessId(processId);
+        approvalInfo.setDeclarationRecordsId(declarationRecordId);
+        approvalInfo.setApprovalStatus(0);
+        approvalInfo.setApprovalById(approvalById);
+        approvalInfo.setSort(sort);
+        approvalInfo.setIsReview(0);
+        iBmsApprovalInfoService.save(approvalInfo);
+    }
+
+    /**
+     * 清空审批流程
+     *
+     * @param declarationRecordId
+     * @return
+     * @author emiya.xie
+     * @create 2023/9/11 10:30
+     */
+    @Override
+    public void cleanProcessList(Long declarationRecordId) {
+        // 获取流程信息
+        List<BmsApprovalInfo> list = iBmsApprovalInfoService.lambdaQuery().eq(BmsApprovalInfo::getDeclarationRecordsId, declarationRecordId).list();
+        if (CollectionUtil.isNotEmpty(list)) {
+            list.forEach(x -> {
+                x.setApprovalStatus(0);
+                x.setApprovalOpinions(null);
+                x.setApprovalAttachment(null);
+                x.setApprovalTime(null);
+                if (x.getSort() == 1) {
+                    x.setIsReview(0);
+                } else {
+                    x.setIsReview(1);
+                }
+            });
+            iBmsApprovalInfoService.saveOrUpdateBatch(list);
+        }
+    }
+
+    @Override
+    public List<Long> getUserIds(Long userId) {
+
+        return null;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int updateBmsApprovalInfo(BmsApprovalInfoUpdateDto bmsApprovalInfoUpdateDto) {
+        Boolean flag = false;
+        List<BmsApprovalInfo> approvalInfoList = iBmsApprovalInfoService.lambdaQuery().eq(BmsApprovalInfo::getDeclarationRecordsId, bmsApprovalInfoUpdateDto.getDeclarationRecordsId()).orderByAsc(BmsApprovalInfo::getSort).list();
+        if (CollectionUtil.isNotEmpty(approvalInfoList)) {
+            approvalInfoList.forEach(x -> {
+                if (x.getId().equals(bmsApprovalInfoUpdateDto.getId())) {
+                    BeanUtil.copyProperties(bmsApprovalInfoUpdateDto, x);
+                    x.setApprovalById(SecurityContextHolder.getUserId());
+                }
+                if ((bmsApprovalInfoUpdateDto.getSort() + 1) == x.getIsReview()) {
+                    x.setIsReview(0);
+                }
+            });
+            flag = iBmsApprovalInfoService.saveOrUpdateBatch(approvalInfoList);
+        }
+        if (!flag) {
+            return 0;
+        }
+        return 1;
+    }
+
+    @Override
+    public int insertOpenInterfaceApplyAddDto(OpenInterfaceApplyAddDto openInterfaceApplyAddDto) {
+        int num = 0;
+        // 根据模板id查询对应数据
+        if (openInterfaceApplyAddDto.getDeclarationTemplateType() == 1) {
+            // 项目落户奖补
+            num = iBmsProjectSettlementAwardService.insertBmsProjectSettlementAward(openInterfaceApplyAddDto.getBmsProjectSettlementAwardAddDto());
+        } else if (openInterfaceApplyAddDto.getDeclarationTemplateType() == 2) {
+            // 做大做强奖补
+            num = iBmsBigStrongAwardService.insertBmsBigStrongAward(openInterfaceApplyAddDto.getBmsBigStrongAwardAddDto());
+        } else if (openInterfaceApplyAddDto.getDeclarationTemplateType() == 3) {
+            // 载体建设奖补
+            num = iBmsCarrierConstructionAwardService.insertBmsCarrierConstructionAward(openInterfaceApplyAddDto.getBmsCarrierConstructionAwardAddDto());
+        } else if (openInterfaceApplyAddDto.getDeclarationTemplateType() == 4) {
+            // 平台建设奖补
+            num = iBmsPlatformConstructionAwardService.insertBmsPlatformConstructionAward(openInterfaceApplyAddDto.getBmsPlatformConstructionAwardAddDto());
+        } else if (openInterfaceApplyAddDto.getDeclarationTemplateType() == 5) {
+            // 品牌打造奖补
+            num = iBmsBrandingAwardService.insertBmsBrandingAward(openInterfaceApplyAddDto.getBmsBrandingAwardAddDto());
+        } else if (openInterfaceApplyAddDto.getDeclarationTemplateType() == 6) {
+            // 场景开放奖补
+            num = iBmsSceneOpeningAwardService.insertBmsSceneOpeningAward(openInterfaceApplyAddDto.getBmsSceneOpeningAwardAddDto());
+        } else if (openInterfaceApplyAddDto.getDeclarationTemplateType() == 7) {
+            // 信用管理奖补
+            num = iBmsCreditManagementService.insertBmsCreditManagement(openInterfaceApplyAddDto.getBmsCreditManagementAddDto());
+        } else if (openInterfaceApplyAddDto.getDeclarationTemplateType() == 8) {
+            // 5G+工业互联网奖补
+            num = iBmsIndustrialInternetAwardService.insertBmsIndustrialInternetAward(openInterfaceApplyAddDto.getBmsIndustrialInternetAwardAddDto());
+        } else if (openInterfaceApplyAddDto.getDeclarationTemplateType() == 9) {
+            // 制造服务业有效投入奖补
+            num = iBmsManufacturingServicesAwardService.insertBmsManufacturingServicesAward(openInterfaceApplyAddDto.getBmsManufacturingServicesAwardAddDto());
+        } else if (openInterfaceApplyAddDto.getDeclarationTemplateType() == 10) {
+            // 物流发展奖补
+            num = iBmsLogisticsDevelopmentAwardService.insertBmsLogisticsDevelopmentAward(openInterfaceApplyAddDto.getBmsLogisticsDevelopmentAwardAddDto());
+        } else if (openInterfaceApplyAddDto.getDeclarationTemplateType() == 11) {
+            // 两业融合奖补
+            num = iBmsIntegrationIndustriesService.insertBmsIntegrationIndustries(openInterfaceApplyAddDto.getBmsIntegrationIndustriesAddDto());
+        }
+        return num;
+    }
+
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/OpenInterfaceServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/OpenInterfaceServiceImpl.java
new file mode 100644
index 0000000..e89c8ec
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/OpenInterfaceServiceImpl.java
@@ -0,0 +1,101 @@
+package com.ruoyi.jjh.declaration.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseBasicInfo;
+import com.ruoyi.jjh.declaration.entity.BmsEnterpriseDirectory;
+import com.ruoyi.jjh.declaration.entity.BmsProjectInfo;
+import com.ruoyi.jjh.declaration.entity.BmsTemplateRecord;
+import com.ruoyi.jjh.declaration.entity.dto.OpenInterfaceApplyAddDto;
+import com.ruoyi.jjh.declaration.entity.vo.BmsTemplateRecordQueryVo;
+import com.ruoyi.jjh.declaration.entity.vo.EnterpriseInfoTemplateVo;
+import com.ruoyi.jjh.declaration.service.IBmsEnterpriseBasicInfoService;
+import com.ruoyi.jjh.declaration.service.IBmsEnterpriseDirectoryService;
+import com.ruoyi.jjh.declaration.service.IBmsProjectInfoService;
+import com.ruoyi.jjh.declaration.service.IBmsProjectSettlementAwardService;
+import com.ruoyi.jjh.declaration.service.IBmsTemplateRecordService;
+import com.ruoyi.jjh.declaration.service.ICommonService;
+import com.ruoyi.jjh.declaration.service.IOpenInterfaceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 开放接口impl
+ * <p>
+ *
+ * @className: OpenInterfaceServiceImpl
+ * @author: emiya.xie
+ * @create: 2023-09-12 10:13
+ */
+@Service
+public class OpenInterfaceServiceImpl implements IOpenInterfaceService {
+
+    @Autowired
+    private ICommonService iCommonService;
+
+    @Autowired
+    private IBmsEnterpriseBasicInfoService iBmsEnterpriseBasicInfoService;
+
+    @Autowired
+    private IBmsEnterpriseDirectoryService iBmsEnterpriseDirectoryService;
+
+    @Autowired
+    private IBmsTemplateRecordService iBmsTemplateRecordService;
+
+    @Autowired
+    private IBmsProjectInfoService iBmsProjectInfoService;
+
+    @Autowired
+    private IBmsProjectSettlementAwardService iBmsProjectSettlementAwardService;
+
+
+    @Override
+    public EnterpriseInfoTemplateVo enterpriseList(String creditCode) {
+        EnterpriseInfoTemplateVo enterpriseInfoTemplateVo = new EnterpriseInfoTemplateVo();
+        // 获取企业信息
+        List<BmsEnterpriseBasicInfo> enterpriseList = iBmsEnterpriseBasicInfoService.lambdaQuery()
+                .like(BmsEnterpriseBasicInfo::getCreditCode, creditCode).list();
+        List<BmsEnterpriseDirectory> directoryList = new ArrayList<>();
+        List<BmsTemplateRecord> templateRecordList = new ArrayList<>();
+        if (CollectionUtil.isNotEmpty(enterpriseList)) {
+            // 企业信息不为空,获取企业名录信息
+            enterpriseInfoTemplateVo.setEnterpriseBasicList(enterpriseList);
+            List<String> creditCodeList = enterpriseList.stream().map(BmsEnterpriseBasicInfo::getCreditCode).collect(Collectors.toList());
+            // 企业名录列表
+            directoryList = iBmsEnterpriseDirectoryService.lambdaQuery().in(BmsEnterpriseDirectory::getCreditCode, creditCodeList).list();
+            System.out.println(directoryList);
+        }
+        if (CollectionUtil.isNotEmpty(directoryList)) {
+            List<Long> templateRecordIdList = directoryList.stream().map(BmsEnterpriseDirectory::getTemplateRecordId).distinct()
+                    .collect(Collectors.toList());
+            templateRecordList = iBmsTemplateRecordService.lambdaQuery().in(BmsTemplateRecord::getId, templateRecordIdList)
+                    .eq(BmsTemplateRecord::getRoad, 1L).list();
+        }
+        List<BmsTemplateRecordQueryVo> bmsTemplateRecordQueryVos = iBmsTemplateRecordService
+                .selectTemplateRecordList(creditCode);
+        enterpriseInfoTemplateVo.setTemplateRecordList(bmsTemplateRecordQueryVos);
+        return enterpriseInfoTemplateVo;
+    }
+
+    /**
+     * 新增申报记录
+     *
+     * @param openInterfaceApplyAddDto
+     * @return {@link int}
+     * @author emiya.xie
+     * @create 2023/9/12 14:54
+     */
+    @Override
+    public int insertOpenInterfaceApplyAddDto(OpenInterfaceApplyAddDto openInterfaceApplyAddDto) {
+        return iCommonService.insertOpenInterfaceApplyAddDto(openInterfaceApplyAddDto);
+    }
+
+    @Override
+    public BmsProjectInfo getProjectInfo(Long templateRecordId) {
+        return iBmsProjectInfoService.getProjectInfo(templateRecordId);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/controller/JMemorandumController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/controller/JMemorandumController.java
index bc8b999..b951325 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/controller/JMemorandumController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/controller/JMemorandumController.java
@@ -10,12 +10,19 @@ import com.ruoyi.jjh.ent.entity.request.JMemorandumRequest;
 import com.ruoyi.jjh.ent.service.JMemorandumService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import java.io.Serializable;
 import java.util.Date;
-import java.util.List;
 
 /**
  * 备忘录(JMemorandum)表控制层
@@ -36,14 +43,14 @@ public class JMemorandumController extends BaseController {
     /**
      * 分页查询所有数据
      *
-     * @param page        分页对象
+     * @param page               分页对象
      * @param jMemorandumRequest 查询实体
      * @return 所有数据
      */
     @ApiOperation(value = "分页查询所有数据", response = JMemorandum.class)
     @GetMapping
     public AjaxResult selectAll(Page<JMemorandum> page, JMemorandumRequest jMemorandumRequest) {
-        return success(jMemorandumService.page(page,jMemorandumRequest));
+        return success(jMemorandumService.page(page, jMemorandumRequest));
     }
 
     /**
@@ -55,7 +62,7 @@ public class JMemorandumController extends BaseController {
     @ApiOperation(value = "根据关联项目库ID查询该ID下的备忘录", response = JMemorandum.class)
     @GetMapping("/getIdToList")
     public AjaxResult selectIdToAll(JMemorandumRequest jMemorandumRequest) {
-        if(jMemorandumRequest.getProjectId() == null){
+        if (jMemorandumRequest.getProjectId() == null) {
             throw new ServiceException("项目库ID不能为空");
         }
         return success(jMemorandumService.selectIdToAll(jMemorandumRequest));
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/controller/JProjectController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/controller/JProjectController.java
index 5d67792..c2ece79 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/controller/JProjectController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/controller/JProjectController.java
@@ -4,9 +4,7 @@ package com.ruoyi.jjh.ent.controller;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.ServletUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.utils.poi.ProjectExcelUtil;
 import com.ruoyi.common.utils.poi.ProjectValueUtil;
@@ -17,11 +15,19 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.Serializable;
 import java.util.List;
@@ -52,7 +58,7 @@ public class JProjectController extends BaseController {
     @ApiOperation(value = "分页查询项目", response = JProject.class)
     @GetMapping
     public AjaxResult selectAll(Page<JProject> page, JProject jProject) {
-        return success(jProjectService.page(page,jProject));
+        return success(jProjectService.page(page, jProject));
     }
 
     /**
@@ -105,17 +111,16 @@ public class JProjectController extends BaseController {
 
     /**
      * 导入已有的excel项目数据
-     *
      */
     @ApiOperation(value = "导入已有的excel项目数据")
-    @PostMapping(value = "/export",consumes ="multipart/form-data")
+    @PostMapping(value = "/export", consumes = "multipart/form-data")
     public AjaxResult export(@RequestPart("file") MultipartFile file) throws Exception {
         ProjectExcelUtil<JProject> util = new ProjectExcelUtil<>(JProject.class);
         List<JProject> proList = util.importExcel(file.getInputStream());
         StringBuilder successMsg = new StringBuilder();
-        if(proList == null &&  proList.isEmpty()){
+        if (proList == null && proList.isEmpty()) {
             throw new ServiceException("项目导入数据不能为空");
-        }else {
+        } else {
             jProjectService.saveBatch(proList);
             successMsg.append("导入成功");
         }
@@ -124,23 +129,22 @@ public class JProjectController extends BaseController {
 
     /**
      * 导入下载的excel模板和参数项目数据
-     *
      */
     @ApiOperation(value = "导入下载的excel模板和参数项目数据")
     @ApiImplicitParams({
-            @ApiImplicitParam(name="projectClassify",value="项目分类",required=true),
-            @ApiImplicitParam(name="projectYear",value="年份",required=true),
+            @ApiImplicitParam(name = "projectClassify", value = "项目分类", required = true),
+            @ApiImplicitParam(name = "projectYear", value = "年份", required = true),
     })
-    @PostMapping(value = "/importTemplateProject",consumes ="multipart/form-data")
+    @PostMapping(value = "/importTemplateProject", consumes = "multipart/form-data")
     public AjaxResult importTemplateProject(@RequestPart("file") MultipartFile file,
-                                            @RequestParam("projectClassify")String projectClassify
+                                            @RequestParam("projectClassify") String projectClassify
     ) throws Exception {
         ProjectValueUtil<JProject> util = new ProjectValueUtil<>(JProject.class);
-        List<JProject> proList = util.importExcel(file.getInputStream(),projectClassify);
+        List<JProject> proList = util.importExcel(file.getInputStream(), projectClassify);
         StringBuilder successMsg = new StringBuilder();
-        if(proList == null &&  proList.isEmpty()){
+        if (proList == null && proList.isEmpty()) {
             throw new ServiceException("项目导入数据不能为空");
-        }else {
+        } else {
             jProjectService.saveBatch(proList);
             successMsg.append("导入成功");
         }
@@ -149,12 +153,10 @@ public class JProjectController extends BaseController {
 
     /**
      * 下载项目模板
-     *
      */
     @ApiOperation(value = "下载项目模板")
     @PostMapping("/updateProjectTemplate")
-    public void updateProjectTemplate(HttpServletResponse response)
-    {
+    public void updateProjectTemplate(HttpServletResponse response) {
         ExcelUtil<JProjectExcel> util = new ExcelUtil<>(JProjectExcel.class);
         util.importTemplateExcel(response, "项目模板");
     }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
index 789381f..e7cba8f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
@@ -1,23 +1,5 @@
 package com.ruoyi.web.controller.common;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.util.ArrayList;
-import java.util.List;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.jjh.ent.entity.JMemorandum;
-import com.ruoyi.jjh.ent.entity.request.JProjectExcel;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -25,38 +7,48 @@ import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.file.FileUploadUtils;
 import com.ruoyi.common.utils.file.FileUtils;
 import com.ruoyi.framework.config.ServerConfig;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 通用请求处理
- * 
+ *
  * @author ruoyi
  */
 @RestController
 @Api(tags = "上传下载")
 @RequestMapping("/common")
-public class CommonController
-{
+public class CommonController {
     private static final Logger log = LoggerFactory.getLogger(CommonController.class);
-
+    private static final String FILE_DELIMETER = ",";
     @Autowired
     private ServerConfig serverConfig;
 
-    private static final String FILE_DELIMETER = ",";
-
     /**
      * 通用下载请求
-     * 
+     *
      * @param fileName 文件名称
-     * @param delete 是否删除
+     * @param delete   是否删除
      */
     @GetMapping("/download")
     @ApiOperation(value = "通用下载请求")
-    public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request)
-    {
-        try
-        {
-            if (!FileUtils.checkAllowDownload(fileName))
-            {
+    public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) {
+        try {
+            if (!FileUtils.checkAllowDownload(fileName)) {
                 throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
             }
             String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
@@ -65,13 +57,10 @@ public class CommonController
             response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
             FileUtils.setAttachmentResponseHeader(response, realFileName);
             FileUtils.writeBytes(filePath, response.getOutputStream());
-            if (delete)
-            {
+            if (delete) {
                 FileUtils.deleteFile(filePath);
             }
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             log.error("下载文件失败", e);
         }
     }
@@ -81,10 +70,8 @@ public class CommonController
      */
     @ApiOperation(value = "通用上传请求(单个)")
     @PostMapping("/upload")
-    public AjaxResult uploadFile(MultipartFile file) throws Exception
-    {
-        try
-        {
+    public AjaxResult uploadFile(MultipartFile file) throws Exception {
+        try {
             // 上传文件路径
             String filePath = RuoYiConfig.getUploadPath();
             // 上传并返回新文件名称
@@ -96,9 +83,7 @@ public class CommonController
             ajax.put("newFileName", FileUtils.getName(fileName));
             ajax.put("originalFilename", file.getOriginalFilename());
             return ajax;
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             return AjaxResult.error(e.getMessage());
         }
     }
@@ -108,18 +93,15 @@ public class CommonController
      */
     @ApiOperation(value = "通用上传请求(多个)")
     @PostMapping("/uploads")
-    public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception
-    {
-        try
-        {
+    public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception {
+        try {
             // 上传文件路径
             String filePath = RuoYiConfig.getUploadPath();
             List<String> urls = new ArrayList<String>();
             List<String> fileNames = new ArrayList<String>();
             List<String> newFileNames = new ArrayList<String>();
             List<String> originalFilenames = new ArrayList<String>();
-            for (MultipartFile file : files)
-            {
+            for (MultipartFile file : files) {
                 // 上传并返回新文件名称
                 String fileName = FileUploadUtils.upload(filePath, file);
                 String url = serverConfig.getUrl() + fileName;
@@ -134,9 +116,7 @@ public class CommonController
             ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER));
             ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
             return ajax;
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             return AjaxResult.error(e.getMessage());
         }
     }
@@ -147,12 +127,9 @@ public class CommonController
     @ApiOperation(value = "本地资源通用下载")
     @GetMapping("/download/resource")
     public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
-            throws Exception
-    {
-        try
-        {
-            if (!FileUtils.checkAllowDownload(resource))
-            {
+            throws Exception {
+        try {
+            if (!FileUtils.checkAllowDownload(resource)) {
                 throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource));
             }
             // 本地资源路径
@@ -164,9 +141,7 @@ public class CommonController
             response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
             FileUtils.setAttachmentResponseHeader(response, downloadName);
             FileUtils.writeBytes(downloadPath, response.getOutputStream());
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             log.error("下载文件失败", e);
         }
     }
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index b7cb28d..ff9bd1e 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -100,9 +100,9 @@ token:
 # mybatis-plus配置
 mybatis-plus:
   # 搜索指定包别名
-  typeAliasesPackage: com.ruoyi.**.domain
+  typeAliasesPackage: com.ruoyi.jjh.**.domain,com.ruoyi.jjh.**.entity,com.ruoyi.**.domain
   # 配置mapper的扫描,找到所有的mapper.xml映射文件
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
+  mapperLocations: classpath*:mapper/jjh/**/*Mapper.xml,classpath*:mapper/**/*Mapper.xml
   # 加载全局的配置文件
   configLocation: classpath:mybatis/mybatis-config.xml
 
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsApprovalInfoMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsApprovalInfoMapper.xml
new file mode 100644
index 0000000..43e4654
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsApprovalInfoMapper.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsApprovalInfoMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsApprovalInfo" id="BmsApprovalInfoResult">
+        <result property="id" column="id"/>
+        <result property="processId" column="process_id"/>
+        <result property="declarationRecordsId" column="declaration_records_id"/>
+        <result property="approvalStatus" column="approval_status"/>
+        <result property="approvalOpinions" column="approval_opinions"/>
+        <result property="approvalAttachment" column="approval_attachment"/>
+        <result property="approvalTime" column="approval_time"/>
+        <result property="isReview" column="is_review"/>
+        <result property="isBeforeData" column="is_before_data"/>
+        <result property="sort" column="sort"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsApprovalInfoVo">
+        select id,
+               process_id,
+               declaration_records_id,
+               approval_status,
+               approval_opinions,
+               approval_attachment,
+               approval_time,
+               is_review,
+               sort,
+               is_before_data,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_approval_info
+    </sql>
+
+    <select id="selectBmsApprovalInfoList" parameterType="com.ruoyi.jjh.declaration.entity.BmsApprovalInfo"
+            resultMap="BmsApprovalInfoResult">
+        <include refid="selectBmsApprovalInfoVo"/>
+        <where>
+            <if test="processId != null ">and process_id = #{processId}</if>
+            <if test="declarationRecordsId != null  and declarationRecordsId != ''">and declaration_records_id =
+                #{declarationRecordsId}
+            </if>
+            <if test="approvalStatus != null ">and approval_status = #{approvalStatus}</if>
+            <if test="approvalOpinions != null  and approvalOpinions != ''">and approval_opinions =
+                #{approvalOpinions}
+            </if>
+            <if test="approvalAttachment != null  and approvalAttachment != ''">and approval_attachment =
+                #{approvalAttachment}
+            </if>
+            <if test="approvalTime != null  and approvalTime != ''">and approval_time = #{approvalTime}</if>
+            <if test="isReview != null  and isReview != ''">and is_review = #{isReview}</if>
+            <if test="isBeforeData != null  and isBeforeData != ''">and is_before_data = #{isBeforeData}</if>
+            <if test="sort != null ">and sort = #{sort}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsApprovalInfoById" parameterType="Long" resultMap="BmsApprovalInfoResult">
+        <include refid="selectBmsApprovalInfoVo"/>
+        where id = #{id}
+    </select>
+    <select id="getApprovalInfoList" resultType="com.ruoyi.jjh.declaration.entity.vo.BmsApprovalInfoQueryVo">
+        SELECT
+        a.id,
+        a.approval_by_id,
+        b.nick_name AS approvalByName,
+        a.approval_status,
+        a.approval_opinions,
+        a.approval_attachment,
+        a.approval_time,
+        a.is_before_data,
+        a.sort
+        FROM
+        bms_approval_info a
+        INNER JOIN sys_user b ON a.approval_by_id = b.user_id
+        <where>
+            a.declaration_records_id=#{declarationRecordsId}
+        </where>
+        order by a.sort asc
+    </select>
+
+    <insert id="insertBmsApprovalInfo" parameterType="com.ruoyi.jjh.declaration.entity.BmsApprovalInfo"
+            useGeneratedKeys="true" keyProperty="id">
+        insert into bms_approval_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="processId != null">process_id,</if>
+            <if test="declarationRecordsId != null">declaration_records_id,</if>
+            <if test="approvalStatus != null">approval_status,</if>
+            <if test="approvalOpinions != null">approval_opinions,</if>
+            <if test="approvalAttachment != null">approval_attachment,</if>
+            <if test="approvalTime != null">approval_time,</if>
+            <if test="isReview != null">is_review,</if>
+            <if test="isBeforeData != null">is_before_data,</if>
+            <if test="sort != null">sort,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="processId != null">#{processId},</if>
+            <if test="declarationRecordsId != null">#{declarationRecordsId},</if>
+            <if test="approvalStatus != null">#{approvalStatus},</if>
+            <if test="approvalOpinions != null">#{approvalOpinions},</if>
+            <if test="approvalAttachment != null">#{approvalAttachment},</if>
+            <if test="approvalTime != null">#{approvalTime},</if>
+            <if test="isReview != null">#{isReview},</if>
+            <if test="isBeforeData != null">#{isBeforeData},</if>
+            <if test="sort != null">#{sort},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsApprovalInfo" parameterType="com.ruoyi.jjh.declaration.entity.BmsApprovalInfo">
+        update bms_approval_info
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="processId != null">process_id = #{processId},</if>
+            <if test="declarationRecordsId != null">declaration_records_id = #{declarationRecordsId},</if>
+            <if test="approvalStatus != null">approval_status = #{approvalStatus},</if>
+            <if test="approvalOpinions != null">approval_opinions = #{approvalOpinions},</if>
+            <if test="approvalAttachment != null">approval_attachment = #{approvalAttachment},</if>
+            <if test="approvalTime != null">approval_time = #{approvalTime},</if>
+            <if test="isReview != null">is_review = #{isReview},</if>
+            <if test="isBeforeData != null">is_before_data = #{isBeforeData},</if>
+            <if test="sort != null">sort = #{sort},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+    <update id="updateApproval">
+        update bms_approval_info
+        set is_before_data = 1
+        where declaration_records_id = #{declarationRecordsId}
+    </update>
+    <update id="updateApprovalList">
+        <foreach collection="list" item="item" separator=";">
+            update bms_approval_info set is_before_data = 1 where declaration_records_id = #{item}
+        </foreach>
+    </update>
+
+    <delete id="deleteBmsApprovalInfoById" parameterType="Long">
+        delete
+        from bms_approval_info
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsApprovalInfoByIds" parameterType="String">
+        delete from bms_approval_info where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsBigStrongAwardMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsBigStrongAwardMapper.xml
new file mode 100644
index 0000000..f15720d
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsBigStrongAwardMapper.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsBigStrongAwardMapper">
+    
+    <resultMap type="com.ruoyi.jjh.declaration.entity.vo.BmsBigStrongAwardQueryVo" id="BmsBigStrongAwardResult">
+        <result property="id"    column="id"    />
+        <result property="enterpriseId"    column="enterprise_id"    />
+        <result property="isGainRewards"    column="is_gain_rewards"    />
+        <result property="rewardDescription"    column="reward_description"    />
+        <result property="establishTime"    column="establish_time"    />
+        <result property="developmentPlan"    column="development_plan"    />
+        <result property="isDeleted"    column="is_deleted"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectBmsBigStrongAwardVo">
+        select id, enterprise_id, is_gain_rewards,reward_description, establish_time, development_plan, is_deleted, create_by, create_time, update_by, update_time, remark from bms_big_strong_award
+    </sql>
+
+    <select id="selectBmsBigStrongAwardList" parameterType="com.ruoyi.jjh.declaration.entity.BmsBigStrongAward" resultMap="BmsBigStrongAwardResult">
+        <include refid="selectBmsBigStrongAwardVo"/>
+        <where>  
+            <if test="enterpriseId != null "> and enterprise_id = #{enterpriseId}</if>
+            <if test="isGainRewards != null "> and is_gain_rewards = #{isGainRewards}</if>
+            <if test="establishTime != null "> and establish_time = #{establishTime}</if>
+            <if test="developmentPlan != null  and developmentPlan != ''"> and development_plan = #{developmentPlan}</if>
+            <if test="isDeleted != null "> and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+    
+    <select id="selectBmsBigStrongAwardById" parameterType="Long" resultMap="BmsBigStrongAwardResult">
+        <include refid="selectBmsBigStrongAwardVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertBmsBigStrongAward" parameterType="com.ruoyi.jjh.declaration.entity.BmsBigStrongAward">
+        insert into bms_big_strong_award
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="enterpriseId != null">enterprise_id,</if>
+            <if test="isGainRewards != null">is_gain_rewards,</if>
+            <if test="rewardDescription != null">reward_description,</if>
+            <if test="establishTime != null">establish_time,</if>
+            <if test="developmentPlan != null">development_plan,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="enterpriseId != null">#{enterpriseId},</if>
+            <if test="isGainRewards != null">#{isGainRewards},</if>
+            <if test="rewardDescription != null">#{rewardDescription},</if>
+            <if test="establishTime != null">#{establishTime},</if>
+            <if test="developmentPlan != null">#{developmentPlan},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBmsBigStrongAward" parameterType="com.ruoyi.jjh.declaration.entity.BmsBigStrongAward">
+        update bms_big_strong_award
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="enterpriseId != null">enterprise_id = #{enterpriseId},</if>
+            <if test="isGainRewards != null">is_gain_rewards = #{isGainRewards},</if>
+            <if test="rewardDescription != null">reward_description = #{rewardDescription},</if>
+            <if test="establishTime != null">establish_time = #{establishTime},</if>
+            <if test="developmentPlan != null">development_plan = #{developmentPlan},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsBigStrongAwardById" parameterType="Long">
+        delete
+        from bms_big_strong_award
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsBigStrongAwardByIds" parameterType="String">
+        delete from bms_big_strong_award where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsBrandingAwardMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsBrandingAwardMapper.xml
new file mode 100644
index 0000000..eaf6d2f
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsBrandingAwardMapper.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsBrandingAwardMapper">
+    
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsBrandingAward" id="BmsBrandingAwardResult">
+        <result property="id"    column="id"    />
+        <result property="enterpriseId"    column="enterprise_id"    />
+        <result property="honorsReceived"    column="honors_received"    />
+        <result property="level"    column="level"    />
+        <result property="evidence"    column="evidence"    />
+        <result property="isDeleted"    column="is_deleted"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectBmsBrandingAwardVo">
+        select id, enterprise_id, honors_received, level, evidence, is_deleted, create_by, create_time, update_by, update_time, remark from bms_branding_award
+    </sql>
+
+    <select id="selectBmsBrandingAwardList" parameterType="com.ruoyi.jjh.declaration.entity.BmsBrandingAward" resultMap="BmsBrandingAwardResult">
+        <include refid="selectBmsBrandingAwardVo"/>
+        <where>  
+            <if test="enterpriseId != null "> and enterprise_id = #{enterpriseId}</if>
+            <if test="honorsReceived != null  and honorsReceived != ''"> and honors_received = #{honorsReceived}</if>
+            <if test="level != null "> and level = #{level}</if>
+            <if test="evidence != null  and evidence != ''"> and evidence = #{evidence}</if>
+            <if test="isDeleted != null "> and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+    
+    <select id="selectBmsBrandingAwardById" parameterType="Long" resultMap="BmsBrandingAwardResult">
+        <include refid="selectBmsBrandingAwardVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertBmsBrandingAward" parameterType="com.ruoyi.jjh.declaration.entity.BmsBrandingAward">
+        insert into bms_branding_award
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="enterpriseId != null">enterprise_id,</if>
+            <if test="honorsReceived != null">honors_received,</if>
+            <if test="level != null">level,</if>
+            <if test="evidence != null">evidence,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="enterpriseId != null">#{enterpriseId},</if>
+            <if test="honorsReceived != null">#{honorsReceived},</if>
+            <if test="level != null">#{level},</if>
+            <if test="evidence != null">#{evidence},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBmsBrandingAward" parameterType="com.ruoyi.jjh.declaration.entity.BmsBrandingAward">
+        update bms_branding_award
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="enterpriseId != null">enterprise_id = #{enterpriseId},</if>
+            <if test="honorsReceived != null">honors_received = #{honorsReceived},</if>
+            <if test="level != null">level = #{level},</if>
+            <if test="evidence != null">evidence = #{evidence},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsBrandingAwardById" parameterType="Long">
+        delete from bms_branding_award where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsBrandingAwardByIds" parameterType="String">
+        delete from bms_branding_award where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsCarrierConstructionAwardMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsCarrierConstructionAwardMapper.xml
new file mode 100644
index 0000000..a736ee7
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsCarrierConstructionAwardMapper.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsCarrierConstructionAwardMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsCarrierConstructionAward"
+               id="BmsCarrierConstructionAwardResult">
+        <result property="id" column="id"/>
+        <result property="enterpriseId" column="enterprise_id"/>
+        <result property="projectName" column="project_name"/>
+        <result property="quantityProportion" column="quantity_proportion"/>
+        <result property="revenueProportion" column="revenue_proportion"/>
+        <result property="personnelProportion" column="personnel_proportion"/>
+        <result property="supportingMaterials" column="supporting_materials"/>
+        <result property="businessLicense" column="business_license"/>
+        <result property="fireReport" column="fire_report"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsCarrierConstructionAwardVo">
+        select id,
+               enterprise_id,
+               project_name,
+               quantity_proportion,
+               revenue_proportion,
+               personnel_proportion,
+               supporting_materials,
+               business_license,
+               fire_report,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_carrier_construction_award
+    </sql>
+
+    <select id="selectBmsCarrierConstructionAwardList"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsCarrierConstructionAward"
+            resultMap="BmsCarrierConstructionAwardResult">
+        <include refid="selectBmsCarrierConstructionAwardVo"/>
+        <where>
+            <if test="enterpriseId != null ">and enterprise_id = #{enterpriseId}</if>
+            <if test="projectName != null  and projectName != ''">and project_name like concat('%', #{projectName},
+                '%')
+            </if>
+            <if test="quantityProportion != null  and quantityProportion != ''">and quantity_proportion =
+                #{quantityProportion}
+            </if>
+            <if test="revenueProportion != null  and revenueProportion != ''">and revenue_proportion =
+                #{revenueProportion}
+            </if>
+            <if test="personnelProportion != null  and personnelProportion != ''">and personnel_proportion =
+                #{personnelProportion}
+            </if>
+            <if test="supportingMaterials != null  and supportingMaterials != ''">and supporting_materials =
+                #{supportingMaterials}
+            </if>
+            <if test="businessLicense != null  and businessLicense != ''">and business_license = #{businessLicense}</if>
+            <if test="fireReport != null  and fireReport != ''">and fire_report = #{fireReport}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsCarrierConstructionAwardById" parameterType="Long"
+            resultMap="BmsCarrierConstructionAwardResult">
+        <include refid="selectBmsCarrierConstructionAwardVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsCarrierConstructionAward"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsCarrierConstructionAward">
+        insert into bms_carrier_construction_award
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="enterpriseId != null">enterprise_id,</if>
+            <if test="projectName != null">project_name,</if>
+            <if test="quantityProportion != null">quantity_proportion,</if>
+            <if test="revenueProportion != null">revenue_proportion,</if>
+            <if test="personnelProportion != null">personnel_proportion,</if>
+            <if test="supportingMaterials != null">supporting_materials,</if>
+            <if test="businessLicense != null">business_license,</if>
+            <if test="fireReport != null">fire_report,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="enterpriseId != null">#{enterpriseId},</if>
+            <if test="projectName != null">#{projectName},</if>
+            <if test="quantityProportion != null">#{quantityProportion},</if>
+            <if test="revenueProportion != null">#{revenueProportion},</if>
+            <if test="personnelProportion != null">#{personnelProportion},</if>
+            <if test="supportingMaterials != null">#{supportingMaterials},</if>
+            <if test="businessLicense != null">#{businessLicense},</if>
+            <if test="fireReport != null">#{fireReport},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsCarrierConstructionAward"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsCarrierConstructionAward">
+        update bms_carrier_construction_award
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="enterpriseId != null">enterprise_id = #{enterpriseId},</if>
+            <if test="projectName != null">project_name = #{projectName},</if>
+            <if test="quantityProportion != null">quantity_proportion = #{quantityProportion},</if>
+            <if test="revenueProportion != null">revenue_proportion = #{revenueProportion},</if>
+            <if test="personnelProportion != null">personnel_proportion = #{personnelProportion},</if>
+            <if test="supportingMaterials != null">supporting_materials = #{supportingMaterials},</if>
+            <if test="businessLicense != null">business_license = #{businessLicense},</if>
+            <if test="fireReport != null">fire_report = #{fireReport},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsCarrierConstructionAwardById" parameterType="Long">
+        delete
+        from bms_carrier_construction_award
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsCarrierConstructionAwardByIds" parameterType="String">
+        delete from bms_carrier_construction_award where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsCreditManagementMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsCreditManagementMapper.xml
new file mode 100644
index 0000000..e2b544b
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsCreditManagementMapper.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsCreditManagementMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsCreditManagement" id="BmsCreditManagementResult">
+        <result property="id" column="id"/>
+        <result property="enterpriseId" column="enterprise_id"/>
+        <result property="projectPlan" column="project_plan"/>
+        <result property="usesFunds" column="uses_funds"/>
+        <result property="auditReport" column="audit_report"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsCreditManagementVo">
+        select id,
+               enterprise_id,
+               project_plan,
+               uses_funds,
+               audit_report,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_credit_management
+    </sql>
+
+    <select id="selectBmsCreditManagementList" parameterType="com.ruoyi.jjh.declaration.entity.BmsCreditManagement"
+            resultMap="BmsCreditManagementResult">
+        <include refid="selectBmsCreditManagementVo"/>
+        <where>
+            <if test="enterpriseId != null ">and enterprise_id = #{enterpriseId}</if>
+            <if test="projectPlan != null  and projectPlan != ''">and project_plan = #{projectPlan}</if>
+            <if test="usesFunds != null  and usesFunds != ''">and uses_funds = #{usesFunds}</if>
+            <if test="auditReport != null  and auditReport != ''">and audit_report = #{auditReport}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsCreditManagementById" parameterType="Long" resultMap="BmsCreditManagementResult">
+        <include refid="selectBmsCreditManagementVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsCreditManagement" parameterType="com.ruoyi.jjh.declaration.entity.BmsCreditManagement"
+            useGeneratedKeys="true" keyProperty="id">
+        insert into bms_credit_management
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="enterpriseId != null">enterprise_id,</if>
+            <if test="projectPlan != null">project_plan,</if>
+            <if test="usesFunds != null">uses_funds,</if>
+            <if test="auditReport != null">audit_report,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="enterpriseId != null">#{enterpriseId},</if>
+            <if test="projectPlan != null">#{projectPlan},</if>
+            <if test="usesFunds != null">#{usesFunds},</if>
+            <if test="auditReport != null">#{auditReport},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsCreditManagement" parameterType="com.ruoyi.jjh.declaration.entity.BmsCreditManagement">
+        update bms_credit_management
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="enterpriseId != null">enterprise_id = #{enterpriseId},</if>
+            <if test="projectPlan != null">project_plan = #{projectPlan},</if>
+            <if test="usesFunds != null">uses_funds = #{usesFunds},</if>
+            <if test="auditReport != null">audit_report = #{auditReport},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsCreditManagementById" parameterType="Long">
+        delete
+        from bms_credit_management
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsCreditManagementByIds" parameterType="String">
+        delete from bms_credit_management where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsDeclarationRecordsMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsDeclarationRecordsMapper.xml
new file mode 100644
index 0000000..fd40213
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsDeclarationRecordsMapper.xml
@@ -0,0 +1,329 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsDeclarationRecordsMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords" id="BmsDeclarationRecordsResult">
+        <result property="id" column="id"/>
+        <result property="projectName" column="project_name"/>
+        <result property="projectId" column="project_id"/>
+        <result property="matter" column="matter"/>
+        <result property="enterpriseId" column="enterprise_id"/>
+        <result property="year" column="year"/>
+        <result property="declarationTemplateType" column="declaration_template_type"/>
+        <result property="templateRecordId" column="template_record_id"/>
+        <result property="detailId" column="detail_id"/>
+        <result property="status" column="status"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.vo.BmsDeclarationRecordsQueryVo"
+               id="BmsDeclarationRecordsVoResult">
+        <result property="id" column="id"/>
+        <result property="projectName" column="project_name"/>
+        <result property="projectId" column="project_id"/>
+        <result property="enterpriseId" column="enterprise_id"/>
+        <result property="level" column="level"/>
+        <result property="year" column="year"/>
+        <result property="type" column="type"/>
+        <result property="road" column="road"/>
+        <result property="responsibilityUnit" column="responsibility_unit"/>
+        <result property="declarationTemplateType" column="declaration_template_type"/>
+        <result property="templateRecordId" column="template_record_id"/>
+        <result property="detailId" column="detail_id"/>
+        <result property="status" column="status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="enterpriseName" column="enterprise_name"/>
+    </resultMap>
+
+    <sql id="selectBmsDeclarationRecordsVo">
+        select id,
+               project_name,
+               project_id,
+               matter,
+               enterprise_id, year, template_record_id, declaration_template_type, detail_id, status, is_deleted, create_by, create_time, update_by, update_time, remark
+        from bms_declaration_records
+    </sql>
+
+    <select id="selectBmsDeclarationRecordsList" parameterType="com.ruoyi.jjh.declaration.entity.dto.BmsDeclarationRecordsDto"
+            resultMap="BmsDeclarationRecordsVoResult">
+        SELECT
+        a.id,
+        d.project_name,
+        a.project_id,
+        a.enterprise_id,
+        c.LEVEL,
+        a.YEAR,
+        c.type,
+        a.template_record_id,
+        c.id as template_id,
+        c.responsibility_unit,
+        a.declaration_template_type,
+        a.detail_id,
+        a.STATUS,
+        a.is_deleted,
+        a.create_by,
+        a.create_time,
+        a.update_by,
+        a.update_time,
+        a.remark,
+        b.enterprise_name,
+        f.road
+        FROM
+        bms_declaration_records AS a
+        inner join bms_template_record f on a.template_record_id = f.id
+        LEFT JOIN bms_enterprise_basic_info b ON a.enterprise_id = b.id
+        LEFT JOIN bms_template_info c on a.declaration_template_type = c.id
+        LEFT JOIN bms_project_info d on a.project_id = d.id
+        left join sys_dict_data e on a.status = e.dict_value and e.dict_type='bms_approval_status'
+
+        <where>
+            <if test="projectName != null  and projectName != ''">and a.project_name like concat('%', #{projectName},
+                '%')
+            </if>
+            <if test="templateName != null  and templateName != ''">and c.template_name like concat('%',
+                #{templateName}, '%')
+            </if>
+            <if test="enterpriseId != null ">and a.enterprise_id = #{enterpriseId}</if>
+            <if test="level != null ">and c.level = #{level}</if>
+            <if test="year != null  and year != ''">and year = #{year}</if>
+            <if test="type != null ">and c.type = #{type}</if>
+            <if test="responsibilityUnit != null ">and c.responsibility_unit = #{responsibilityUnit}</if>
+            <if test="declarationTemplateType != null ">and a.declaration_template_type = #{declarationTemplateType}
+            </if>
+            <if test="status != null ">and a.status = #{status}</if>
+            <if test="statusStr != null and statusStr.size>0">
+                and a.status in
+                <foreach collection="statusStr" item="item" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="isDeleted != null ">and a.is_deleted = #{isDeleted}</if>
+        </where>
+        order by e.dict_sort desc,a.update_time desc,a.create_time desc
+    </select>
+
+    <select id="selectBmsDeclarationRecordsById" parameterType="Long" resultMap="BmsDeclarationRecordsResult">
+        <include refid="selectBmsDeclarationRecordsVo"/>
+        where id = #{id}
+    </select>
+    <select id="approvalList" parameterType="com.ruoyi.jjh.declaration.entity.dto.ApprovalDeclarationRecordsQueryDto"
+            resultType="com.ruoyi.jjh.declaration.entity.vo.ApprovalDeclarationRecordsQueryVo">
+        SELECT
+        d.approval_status,
+        a.matter,
+        b.project_name,
+        b.product_area,
+        c.enterprise_name,
+        b.support_methods,
+        b.start_time,
+        b.end_time,
+        a.create_time,
+        a.`status`,
+        a.template_record_id,
+        a.detail_id,
+        a.id as declarationRecordsId,
+        e.template_id,
+        d.approval_time
+        FROM
+        bms_declaration_records a
+        INNER JOIN bms_project_info b ON a.project_id = b.id
+        INNER JOIN bms_enterprise_basic_info c ON a.enterprise_id = c.id
+        INNER JOIN bms_template_record e on a.template_record_id = e.id
+        INNER JOIN bms_approval_info d on a.id=d.declaration_records_id and is_before_data = 0
+        <where>
+            <if test="projectName != null  and projectName != ''">and b.project_name like concat('%', #{projectName},
+                '%')
+            </if>
+            <if test="enterpriseName != null  and enterpriseName != ''">and c.enterprise_name like concat('%',
+                #{enterpriseName}, '%')
+            </if>
+            <if test="matter != null  and matter != ''">and a.matter like concat('%', #{matter}, '%')</if>
+            <if test="status != null ">and a.status = #{status}</if>
+            <if test="approvalById != null">
+                and d.approval_by_id = #{approvalById}
+            </if>
+            <if test="startTime != null ">
+                and date_format(a.create_time ,'%y%m%d') &gt;= date_format(#{startTime},'%y%m%d')
+            </if>
+            <if test="endTime != null ">
+                and date_format(a.create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
+            </if>
+            <if test="userIds != null and userIds.size>0">
+                and a.id in (select declaration_records_id from bms_approval_info d
+                inner join bms_process_info e on d.process_id = e.id
+                where is_before_data = 0 and approval_by_id in
+                <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
+                    #{userId}
+                </foreach>
+                )
+            </if>
+            <if test="approvalStatusStr != null and approvalStatusStr.size >0">
+                and d.approval_status in
+                <foreach collection="approvalStatusStr" item="approvalStatus" separator="," open="(" close=")">
+                    #{approvalStatus}
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        d.approval_time DESC,a.create_time desc
+    </select>
+    <select id="selectBmsDeclarationRecordsZwList"
+            resultType="com.ruoyi.jjh.declaration.entity.vo.BmsDeclarationRecordsQueryVo">
+        SELECT
+        a.id,
+        d.project_name,
+        a.project_id,
+        a.enterprise_id,
+        c.LEVEL,
+        a.YEAR,
+        c.type,
+        a.template_record_id,
+        c.id as template_id,
+        c.responsibility_unit,
+        a.declaration_template_type,
+        a.detail_id,
+        a.STATUS,
+        a.is_deleted,
+        a.create_by,
+        a.create_time,
+        a.update_by,
+        a.update_time,
+        a.remark,
+        b.enterprise_name,
+        f.road
+        FROM
+        bms_declaration_records AS a
+        inner join bms_template_record f on a.template_record_id = f.id
+        LEFT JOIN bms_enterprise_basic_info b ON a.enterprise_id = b.id
+        LEFT JOIN bms_template_info c on a.declaration_template_type = c.id
+        LEFT JOIN bms_project_info d on a.project_id = d.id
+        left join sys_dict_data e on a.status = e.dict_value and e.dict_type='bms_approval_status'
+        <where>
+            and a.status != 0
+            <if test="projectName != null  and projectName != ''">and a.project_name like concat('%', #{projectName},
+                '%')
+            </if>
+            <if test="templateName != null  and templateName != ''">and c.template_name like concat('%',
+                #{templateName}, '%')
+            </if>
+            <if test="enterpriseId != null ">and a.enterprise_id = #{enterpriseId}</if>
+            <if test="level != null ">and c.level = #{level}</if>
+            <if test="year != null  and year != ''">and year = #{year}</if>
+            <if test="type != null ">and c.type = #{type}</if>
+            <if test="responsibilityUnit != null ">and c.responsibility_unit = #{responsibilityUnit}</if>
+            <if test="declarationTemplateType != null ">and a.declaration_template_type = #{declarationTemplateType}
+            </if>
+            <if test="statusStr != null and statusStr.size>0">
+                and a.status in
+                <foreach collection="statusStr" item="item" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="isDeleted != null ">and a.is_deleted = #{isDeleted}</if>
+        </where>
+        order by e.dict_sort desc,a.update_time desc,a.create_time desc
+    </select>
+    <select id="selectMunicipalBureauReviewList"
+            resultType="com.ruoyi.jjh.declaration.entity.vo.BmsMunicipalBureauReviewQueryVo">
+        SELECT a.id,
+               b.credit_code,
+               b.enterprise_name,
+               a.project_name,
+               a.YEAR,
+               '' as result,
+               '' as opinion
+        FROM bms_declaration_records a
+                 INNER JOIN bms_enterprise_basic_info b ON a.enterprise_id = b.id
+        WHERE a.`status` = 4
+    </select>
+
+    <insert id="insertBmsDeclarationRecords" parameterType="com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords"
+            useGeneratedKeys="true" keyProperty="id">
+        insert into bms_declaration_records
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="projectName != null">project_name,</if>
+            <if test="projectId != null">project_id,</if>
+            <if test="matter != null">matter,</if>
+            <if test="enterpriseId != null">enterprise_id,</if>
+            <if test="templateRecordId != null">template_record_id,</if>
+            <if test="year != null">year,</if>
+            <if test="detailId != null">detail_id,</if>
+            <if test="declarationTemplateType != null">declaration_template_type,</if>
+            <if test="status != null">status,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="projectName != null">#{projectName},</if>
+            <if test="projectId != null">#{projectId},</if>
+            <if test="matter != null">#{matter},</if>
+            <if test="enterpriseId != null">#{enterpriseId},</if>
+            <if test="templateRecordId != null">#{templateRecordId},</if>
+            <if test="year != null">#{year},</if>
+            <if test="detailId != null">#{detailId},</if>
+            <if test="declarationTemplateType != null">#{declarationTemplateType},</if>
+            <if test="status != null">#{status},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsDeclarationRecords" parameterType="com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords">
+        update bms_declaration_records
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="projectName != null">project_name = #{projectName},</if>
+            <if test="projectId != null">project_id = #{projectId},</if>
+            <if test="matter != null">matter = #{matter},</if>
+            <if test="enterpriseId != null">enterprise_id = #{enterpriseId},</if>
+            <if test="templateRecordId != null">template_record_id = #{templateRecordId},</if>
+            <if test="year != null">year = #{year},</if>
+            <if test="detailId != null">detail_id = #{detailId},</if>
+            <if test="declarationTemplateType != null">declaration_template_type = #{declarationTemplateType},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsDeclarationRecordsById" parameterType="Long">
+        delete
+        from bms_declaration_records
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsDeclarationRecordsByIds" parameterType="String">
+        delete from bms_declaration_records where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <update id="updateProjectNameById">
+        update bms_declaration_records
+        set project_name= #{projectName},
+            project_id  = #{projectId}
+        where detail_id = #{id}
+    </update>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsEnterpriseBasicInfoMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsEnterpriseBasicInfoMapper.xml
new file mode 100644
index 0000000..012876c
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsEnterpriseBasicInfoMapper.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsEnterpriseBasicInfoMapper">
+    
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsEnterpriseBasicInfo" id="BmsEnterpriseBasicInfoResult">
+        <result property="id"    column="id"    />
+        <result property="enterpriseName"    column="enterprise_name"    />
+        <result property="creditCode"    column="credit_code"    />
+        <result property="contacts"    column="contacts"    />
+        <result property="contactsNumber"    column="contacts_number"    />
+        <result property="address"    column="address"    />
+        <result property="isDeleted"    column="is_deleted"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectBmsEnterpriseBasicInfoVo">
+        select id, enterprise_name, credit_code, contacts, contacts_number, address, is_deleted, create_by, create_time, update_by, update_time, remark from bms_enterprise_basic_info
+    </sql>
+
+    <select id="selectBmsEnterpriseBasicInfoList" parameterType="com.ruoyi.jjh.declaration.entity.BmsEnterpriseBasicInfo" resultMap="BmsEnterpriseBasicInfoResult">
+        <include refid="selectBmsEnterpriseBasicInfoVo"/>
+        <where>  
+            <if test="enterpriseName != null  and enterpriseName != ''"> and enterprise_name like concat('%', #{enterpriseName}, '%')</if>
+            <if test="creditCode != null  and creditCode != ''"> and credit_code = #{creditCode}</if>
+            <if test="contacts != null  and contacts != ''"> and contacts = #{contacts}</if>
+            <if test="contactsNumber != null  and contactsNumber != ''"> and contacts_number = #{contactsNumber}</if>
+            <if test="address != null  and address != ''"> and address = #{address}</if>
+            <if test="isDeleted != null "> and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+    
+    <select id="selectBmsEnterpriseBasicInfoById" parameterType="Long" resultMap="BmsEnterpriseBasicInfoResult">
+        <include refid="selectBmsEnterpriseBasicInfoVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertBmsEnterpriseBasicInfo" parameterType="com.ruoyi.jjh.declaration.entity.BmsEnterpriseBasicInfo">
+        insert into bms_enterprise_basic_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="enterpriseName != null">enterprise_name,</if>
+            <if test="creditCode != null">credit_code,</if>
+            <if test="contacts != null">contacts,</if>
+            <if test="contactsNumber != null">contacts_number,</if>
+            <if test="address != null">address,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="enterpriseName != null">#{enterpriseName},</if>
+            <if test="creditCode != null">#{creditCode},</if>
+            <if test="contacts != null">#{contacts},</if>
+            <if test="contactsNumber != null">#{contactsNumber},</if>
+            <if test="address != null">#{address},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBmsEnterpriseBasicInfo" parameterType="com.ruoyi.jjh.declaration.entity.BmsEnterpriseBasicInfo">
+        update bms_enterprise_basic_info
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="enterpriseName != null">enterprise_name = #{enterpriseName},</if>
+            <if test="creditCode != null">credit_code = #{creditCode},</if>
+            <if test="contacts != null">contacts = #{contacts},</if>
+            <if test="contactsNumber != null">contacts_number = #{contactsNumber},</if>
+            <if test="address != null">address = #{address},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsEnterpriseBasicInfoById" parameterType="Long">
+        delete
+        from bms_enterprise_basic_info
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsEnterpriseBasicInfoByIds" parameterType="String">
+        delete from bms_enterprise_basic_info where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsEnterpriseDirectoryMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsEnterpriseDirectoryMapper.xml
new file mode 100644
index 0000000..9903af7
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsEnterpriseDirectoryMapper.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsEnterpriseDirectoryMapper">
+    
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsEnterpriseDirectory" id="BmsEnterpriseDirectoryResult">
+        <result property="id"    column="id"    />
+        <result property="templateRecordId"    column="template_record_id"    />
+        <result property="enterpriseName"    column="enterprise_name"    />
+        <result property="creditCode"    column="credit_code"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectBmsEnterpriseDirectoryVo">
+        select id,
+               template_record_id,
+               enterprise_name,
+               credit_code,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_enterprise_directory
+    </sql>
+
+    <select id="selectBmsEnterpriseDirectoryList" parameterType="com.ruoyi.jjh.declaration.entity.BmsEnterpriseDirectory" resultMap="BmsEnterpriseDirectoryResult">
+        <include refid="selectBmsEnterpriseDirectoryVo"/>
+        <where>  
+            <if test="templateRecordId != null "> and template_record_id = #{templateRecordId}</if>
+            <if test="enterpriseName != null  and enterpriseName != ''"> and enterprise_name like concat('%', #{enterpriseName}, '%')</if>
+            <if test="creditCode != null  and creditCode != ''"> and credit_code = #{creditCode}</if>
+        </where>
+    </select>
+    
+    <select id="selectBmsEnterpriseDirectoryById" parameterType="Long" resultMap="BmsEnterpriseDirectoryResult">
+        <include refid="selectBmsEnterpriseDirectoryVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsEnterpriseDirectory" parameterType="com.ruoyi.jjh.declaration.entity.BmsEnterpriseDirectory" useGeneratedKeys="true" keyProperty="id">
+        insert into bms_enterprise_directory
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="templateRecordId != null">template_record_id,</if>
+            <if test="enterpriseName != null">enterprise_name,</if>
+            <if test="creditCode != null">credit_code,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="templateRecordId != null">#{templateRecordId},</if>
+            <if test="enterpriseName != null">#{enterpriseName},</if>
+            <if test="creditCode != null">#{creditCode},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBmsEnterpriseDirectory" parameterType="com.ruoyi.jjh.declaration.entity.BmsEnterpriseDirectory">
+        update bms_enterprise_directory
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="templateRecordId != null">template_record_id = #{templateId},</if>
+            <if test="enterpriseName != null">enterprise_name = #{enterpriseName},</if>
+            <if test="creditCode != null">credit_code = #{creditCode},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsEnterpriseDirectoryById" parameterType="Long">
+        delete
+        from bms_enterprise_directory
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsEnterpriseDirectoryByIds" parameterType="String">
+        delete from bms_enterprise_directory where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsFieldInfoMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsFieldInfoMapper.xml
new file mode 100644
index 0000000..a6fbf00
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsFieldInfoMapper.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsFieldInfoMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsFieldInfo" id="BmsFieldInfoResult">
+        <result property="id" column="id"/>
+        <result property="detailId" column="detail_id"/>
+        <result property="fieldName" column="field_name"/>
+        <result property="fieldResult" column="field_result"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsFieldInfoVo">
+        select id,
+               detail_id,
+               field_name,
+               field_result,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_field_info
+    </sql>
+
+    <select id="selectBmsFieldInfoList" parameterType="com.ruoyi.jjh.declaration.entity.BmsFieldInfo"
+            resultMap="BmsFieldInfoResult">
+        <include refid="selectBmsFieldInfoVo"/>
+        <where>
+            <if test="detailId != null ">and detail_id = #{detailId}</if>
+            <if test="fieldName != null  and fieldName != ''">and field_name like concat('%', #{fieldName}, '%')</if>
+            <if test="fieldResult != null  and fieldResult != ''">and field_result = #{fieldResult}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsFieldInfoById" parameterType="Long" resultMap="BmsFieldInfoResult">
+        <include refid="selectBmsFieldInfoVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsFieldInfo" parameterType="com.ruoyi.jjh.declaration.entity.BmsFieldInfo"
+            useGeneratedKeys="true" keyProperty="id">
+        insert into bms_field_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="detailId != null">detail_id,</if>
+            <if test="fieldName != null">field_name,</if>
+            <if test="fieldResult != null">field_result,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="detailId != null">#{detailId},</if>
+            <if test="fieldName != null">#{fieldName},</if>
+            <if test="fieldResult != null">#{fieldResult},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsFieldInfo" parameterType="com.ruoyi.jjh.declaration.entity.BmsFieldInfo">
+        update bms_field_info
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="detailId != null">detail_id = #{detailId},</if>
+            <if test="fieldName != null">field_name = #{fieldName},</if>
+            <if test="fieldResult != null">field_result = #{fieldResult},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsFieldInfoById" parameterType="Long">
+        delete
+        from bms_field_info
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsFieldInfoByIds" parameterType="String">
+        delete from bms_field_info where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsFileInfoMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsFileInfoMapper.xml
new file mode 100644
index 0000000..5b544db
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsFileInfoMapper.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsFileInfoMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsFileInfo" id="BmsFileInfoResult">
+        <result property="id" column="id"/>
+        <result property="detailId" column="detail_id"/>
+        <result property="fileName" column="file_name"/>
+        <result property="fileDescription" column="file_description"/>
+        <result property="fileUrl" column="file_url"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsFileInfoVo">
+        select id,
+               detail_id,
+               file_name,
+               file_description,
+               file_url,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_file_info
+    </sql>
+
+    <select id="selectBmsFileInfoList" parameterType="com.ruoyi.jjh.declaration.entity.BmsFileInfo"
+            resultMap="BmsFileInfoResult">
+        <include refid="selectBmsFileInfoVo"/>
+        <where>
+            <if test="detailId != null ">and detail_id = #{detailId}</if>
+            <if test="fileName != null  and fileName != ''">and file_name like concat('%', #{fileName}, '%')</if>
+            <if test="fileDescription != null  and fileDescription != ''">and file_description = #{fileDescription}</if>
+            <if test="fileUrl != null  and fileUrl != ''">and file_url = #{fileUrl}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsFileInfoById" parameterType="Long" resultMap="BmsFileInfoResult">
+        <include refid="selectBmsFileInfoVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsFileInfo" parameterType="com.ruoyi.jjh.declaration.entity.BmsFileInfo" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into bms_file_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="detailId != null">detail_id,</if>
+            <if test="fileName != null">file_name,</if>
+            <if test="fileDescription != null">file_description,</if>
+            <if test="fileUrl != null">file_url,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="detailId != null">#{detailId},</if>
+            <if test="fileName != null">#{fileName},</if>
+            <if test="fileDescription != null">#{fileDescription},</if>
+            <if test="fileUrl != null">#{fileUrl},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsFileInfo" parameterType="com.ruoyi.jjh.declaration.entity.BmsFileInfo">
+        update bms_file_info
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="detailId != null">detail_id = #{detailId},</if>
+            <if test="fileName != null">file_name = #{fileName},</if>
+            <if test="fileDescription != null">file_description = #{fileDescription},</if>
+            <if test="fileUrl != null">file_url = #{fileUrl},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsFileInfoById" parameterType="Long">
+        delete
+        from bms_file_info
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsFileInfoByIds" parameterType="String">
+        delete from bms_file_info where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsFundingDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsFundingDetailMapper.xml
new file mode 100644
index 0000000..3759b29
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsFundingDetailMapper.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsFundingDetailMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsFundingDetail" id="BmsFundingDetailResult">
+        <result property="id" column="id"/>
+        <result property="type" column="type"/>
+        <result property="templateRecordId" column="template_record_id"/>
+        <result property="detailId" column="detail_id"/>
+        <result property="vModel" column="v_model"/>
+        <result property="year" column="year"/>
+        <result property="illustrate" column="illustrate"/>
+        <result property="amount" column="amount"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsFundingDetailVo">
+        select id,
+               type,
+               template_record_id,
+               v_model,
+               detail_id,
+               year,
+               illustrate,
+               amount,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_funding_detail
+    </sql>
+
+    <select id="selectBmsFundingDetailList" parameterType="com.ruoyi.jjh.declaration.entity.BmsFundingDetail"
+            resultMap="BmsFundingDetailResult">
+        <include refid="selectBmsFundingDetailVo"/>
+        <where>
+            <if test="type != null ">and type = #{type}</if>
+            <if test="templateRecordId != null ">and template_record_id = #{templateRecordId}</if>
+            <if test="detailId != null ">and detail_id = #{detailId}</if>
+            <if test="year != null  and year != ''">and year = #{year}</if>
+            <if test="illustrate != null  and illustrate != ''">and illustrate = #{illustrate}</if>
+            <if test="amount != null ">and amount = #{amount}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsFundingDetailById" parameterType="Long" resultMap="BmsFundingDetailResult">
+        <include refid="selectBmsFundingDetailVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsFundingDetail" parameterType="com.ruoyi.jjh.declaration.entity.BmsFundingDetail"
+            useGeneratedKeys="true" keyProperty="id">
+        insert into bms_funding_detail
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="type != null">type,</if>
+            <if test="templateRecordId != null">template_record_id,</if>
+            <if test="detailId != null">detail_id,</if>
+            <if test="vModel != null">v_model,</if>
+            <if test="year != null">year,</if>
+            <if test="illustrate != null">illustrate,</if>
+            <if test="amount != null">amount,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="type != null">#{type},</if>
+            <if test="templateRecordId != null">#{templateRecordId},</if>
+            <if test="detailId != null">#{detailId},</if>
+            <if test="vModel != null">#{vModel},</if>
+            <if test="year != null">#{year},</if>
+            <if test="illustrate != null">#{illustrate},</if>
+            <if test="amount != null">#{amount},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsFundingDetail" parameterType="com.ruoyi.jjh.declaration.entity.BmsFundingDetail">
+        update bms_funding_detail
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="type != null">type = #{type},</if>
+            <if test="templateRecordId != null">template_record_id = #{templateRecordId},</if>
+            <if test="detailId != null">detail_id = #{detailId},</if>
+            <if test="vModel != null">v_model = #{vModel},</if>
+            <if test="year != null">year = #{year},</if>
+            <if test="illustrate != null">illustrate = #{illustrate},</if>
+            <if test="amount != null">amount = #{amount},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsFundingDetailById" parameterType="Long">
+        delete
+        from bms_funding_detail
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsFundingDetailByIds" parameterType="String">
+        delete from bms_funding_detail where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsIndustrialInternetAwardMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsIndustrialInternetAwardMapper.xml
new file mode 100644
index 0000000..c07524c
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsIndustrialInternetAwardMapper.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsIndustrialInternetAwardMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsIndustrialInternetAward" id="BmsIndustrialInternetAwardResult">
+        <result property="id" column="id"/>
+        <result property="enterpriseId" column="enterprise_id"/>
+        <result property="honoraryName" column="honorary_name"/>
+        <result property="material" column="material"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsIndustrialInternetAwardVo">
+        select id,
+               enterprise_id,
+               honorary_name,
+               material,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_industrial_internet_award
+    </sql>
+
+    <select id="selectBmsIndustrialInternetAwardList"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsIndustrialInternetAward"
+            resultMap="BmsIndustrialInternetAwardResult">
+        <include refid="selectBmsIndustrialInternetAwardVo"/>
+        <where>
+            <if test="enterpriseId != null ">and enterprise_id = #{enterpriseId}</if>
+            <if test="honoraryName != null  and honoraryName != ''">and honorary_name like concat('%', #{honoraryName},
+                '%')
+            </if>
+            <if test="material != null  and material != ''">and material = #{material}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsIndustrialInternetAwardById" parameterType="Long" resultMap="BmsIndustrialInternetAwardResult">
+        <include refid="selectBmsIndustrialInternetAwardVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsIndustrialInternetAward"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsIndustrialInternetAward">
+        insert into bms_industrial_internet_award
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="enterpriseId != null">enterprise_id,</if>
+            <if test="honoraryName != null">honorary_name,</if>
+            <if test="material != null">material,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="enterpriseId != null">#{enterpriseId},</if>
+            <if test="honoraryName != null">#{honoraryName},</if>
+            <if test="material != null">#{material},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsIndustrialInternetAward"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsIndustrialInternetAward">
+        update bms_industrial_internet_award
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="enterpriseId != null">enterprise_id = #{enterpriseId},</if>
+            <if test="honoraryName != null">honorary_name = #{honoraryName},</if>
+            <if test="material != null">material = #{material},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsIndustrialInternetAwardById" parameterType="Long">
+        delete
+        from bms_industrial_internet_award
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsIndustrialInternetAwardByIds" parameterType="String">
+        delete from bms_industrial_internet_award where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsIntegrationIndustriesMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsIntegrationIndustriesMapper.xml
new file mode 100644
index 0000000..cc841d7
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsIntegrationIndustriesMapper.xml
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsIntegrationIndustriesMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsIntegrationIndustries" id="BmsIntegrationIndustriesResult">
+        <result property="id" column="id"/>
+        <result property="enterpriseId" column="enterprise_id"/>
+        <result property="declarationType" column="declaration_type"/>
+        <result property="evidence" column="evidence"/>
+        <result property="businessLicense" column="business_license"/>
+        <result property="taxPaymentCertificate" column="tax_payment_certificate"/>
+        <result property="auditReport" column="audit_report"/>
+        <result property="equityStructureChart" column="equity_structure_chart"/>
+        <result property="declarationReport" column="declaration_report"/>
+        <result property="independentAccounting" column="independent_accounting"/>
+        <result property="capitalVerificationReport" column="capital_verification_report"/>
+        <result property="otherEvidence" column="other_evidence"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsIntegrationIndustriesVo">
+        select id,
+               enterprise_id,
+               declaration_type,
+               evidence,
+               business_license,
+               tax_payment_certificate,
+               audit_report,
+               equity_structure_chart,
+               declaration_report,
+               independent_accounting,
+               capital_verification_report,
+               other_evidence,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_integration_industries
+    </sql>
+
+    <select id="selectBmsIntegrationIndustriesList"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsIntegrationIndustries"
+            resultMap="BmsIntegrationIndustriesResult">
+        <include refid="selectBmsIntegrationIndustriesVo"/>
+        <where>
+            <if test="enterpriseId != null ">and enterprise_id = #{enterpriseId}</if>
+            <if test="declarationType != null ">and declaration_type = #{declarationType}</if>
+            <if test="evidence != null  and evidence != ''">and evidence = #{evidence}</if>
+            <if test="businessLicense != null  and businessLicense != ''">and business_license = #{businessLicense}</if>
+            <if test="taxPaymentCertificate != null  and taxPaymentCertificate != ''">and tax_payment_certificate =
+                #{taxPaymentCertificate}
+            </if>
+            <if test="auditReport != null  and auditReport != ''">and audit_report = #{auditReport}</if>
+            <if test="equityStructureChart != null  and equityStructureChart != ''">and equity_structure_chart =
+                #{equityStructureChart}
+            </if>
+            <if test="declarationReport != null  and declarationReport != ''">and declaration_report =
+                #{declarationReport}
+            </if>
+            <if test="independentAccounting != null  and independentAccounting != ''">and independent_accounting =
+                #{independentAccounting}
+            </if>
+            <if test="capitalVerificationReport != null  and capitalVerificationReport != ''">and
+                capital_verification_report = #{capitalVerificationReport}
+            </if>
+            <if test="otherEvidence != null  and otherEvidence != ''">and other_evidence = #{otherEvidence}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsIntegrationIndustriesById" parameterType="Long" resultMap="BmsIntegrationIndustriesResult">
+        <include refid="selectBmsIntegrationIndustriesVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsIntegrationIndustries"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsIntegrationIndustries" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into bms_integration_industries
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="enterpriseId != null">enterprise_id,</if>
+            <if test="declarationType != null">declaration_type,</if>
+            <if test="evidence != null">evidence,</if>
+            <if test="businessLicense != null">business_license,</if>
+            <if test="taxPaymentCertificate != null">tax_payment_certificate,</if>
+            <if test="auditReport != null">audit_report,</if>
+            <if test="equityStructureChart != null">equity_structure_chart,</if>
+            <if test="declarationReport != null">declaration_report,</if>
+            <if test="independentAccounting != null">independent_accounting,</if>
+            <if test="capitalVerificationReport != null">capital_verification_report,</if>
+            <if test="otherEvidence != null">other_evidence,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="enterpriseId != null">#{enterpriseId},</if>
+            <if test="declarationType != null">#{declarationType},</if>
+            <if test="evidence != null">#{evidence},</if>
+            <if test="businessLicense != null">#{businessLicense},</if>
+            <if test="taxPaymentCertificate != null">#{taxPaymentCertificate},</if>
+            <if test="auditReport != null">#{auditReport},</if>
+            <if test="equityStructureChart != null">#{equityStructureChart},</if>
+            <if test="declarationReport != null">#{declarationReport},</if>
+            <if test="independentAccounting != null">#{independentAccounting},</if>
+            <if test="capitalVerificationReport != null">#{capitalVerificationReport},</if>
+            <if test="otherEvidence != null">#{otherEvidence},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsIntegrationIndustries"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsIntegrationIndustries">
+        update bms_integration_industries
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="enterpriseId != null">enterprise_id = #{enterpriseId},</if>
+            <if test="declarationType != null">declaration_type = #{declarationType},</if>
+            <if test="evidence != null">evidence = #{evidence},</if>
+            <if test="businessLicense != null">business_license = #{businessLicense},</if>
+            <if test="taxPaymentCertificate != null">tax_payment_certificate = #{taxPaymentCertificate},</if>
+            <if test="auditReport != null">audit_report = #{auditReport},</if>
+            <if test="equityStructureChart != null">equity_structure_chart = #{equityStructureChart},</if>
+            <if test="declarationReport != null">declaration_report = #{declarationReport},</if>
+            <if test="independentAccounting != null">independent_accounting = #{independentAccounting},</if>
+            <if test="capitalVerificationReport != null">capital_verification_report = #{capitalVerificationReport},
+            </if>
+            <if test="otherEvidence != null">other_evidence = #{otherEvidence},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsIntegrationIndustriesById" parameterType="Long">
+        delete
+        from bms_integration_industries
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsIntegrationIndustriesByIds" parameterType="String">
+        delete from bms_integration_industries where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsLogisticsDevelopmentAwardMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsLogisticsDevelopmentAwardMapper.xml
new file mode 100644
index 0000000..c33c5e9
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsLogisticsDevelopmentAwardMapper.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsLogisticsDevelopmentAwardMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsLogisticsDevelopmentAward"
+               id="BmsLogisticsDevelopmentAwardResult">
+        <result property="id" column="id"/>
+        <result property="enterpriseId" column="enterprise_id"/>
+        <result property="honorCertificate" column="Honor_certificate"/>
+        <result property="platformName" column="platform_name"/>
+        <result property="filingNotice" column="filing_notice"/>
+        <result property="auditReport" column="audit_report"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsLogisticsDevelopmentAwardVo">
+        select id,
+               enterprise_id,
+               Honor_certificate,
+               platform_name,
+               filing_notice,
+               audit_report,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_logistics_development_award
+    </sql>
+
+    <select id="selectBmsLogisticsDevelopmentAwardList"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsLogisticsDevelopmentAward"
+            resultMap="BmsLogisticsDevelopmentAwardResult">
+        <include refid="selectBmsLogisticsDevelopmentAwardVo"/>
+        <where>
+            <if test="enterpriseId != null ">and enterprise_id = #{enterpriseId}</if>
+            <if test="honorCertificate != null  and honorCertificate != ''">and Honor_certificate =
+                #{honorCertificate}
+            </if>
+            <if test="platformName != null  and platformName != ''">and platform_name like concat('%', #{platformName},
+                '%')
+            </if>
+            <if test="filingNotice != null  and filingNotice != ''">and filing_notice = #{filingNotice}</if>
+            <if test="auditReport != null  and auditReport != ''">and audit_report = #{auditReport}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsLogisticsDevelopmentAwardById" parameterType="Long"
+            resultMap="BmsLogisticsDevelopmentAwardResult">
+        <include refid="selectBmsLogisticsDevelopmentAwardVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsLogisticsDevelopmentAward"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsLogisticsDevelopmentAward">
+        insert into bms_logistics_development_award
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="enterpriseId != null">enterprise_id,</if>
+            <if test="honorCertificate != null">Honor_certificate,</if>
+            <if test="platformName != null">platform_name,</if>
+            <if test="filingNotice != null">filing_notice,</if>
+            <if test="auditReport != null">audit_report,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="enterpriseId != null">#{enterpriseId},</if>
+            <if test="honorCertificate != null">#{honorCertificate},</if>
+            <if test="platformName != null">#{platformName},</if>
+            <if test="filingNotice != null">#{filingNotice},</if>
+            <if test="auditReport != null">#{auditReport},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsLogisticsDevelopmentAward"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsLogisticsDevelopmentAward">
+        update bms_logistics_development_award
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="enterpriseId != null">enterprise_id = #{enterpriseId},</if>
+            <if test="honorCertificate != null">Honor_certificate = #{honorCertificate},</if>
+            <if test="platformName != null">platform_name = #{platformName},</if>
+            <if test="filingNotice != null">filing_notice = #{filingNotice},</if>
+            <if test="auditReport != null">audit_report = #{auditReport},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsLogisticsDevelopmentAwardById" parameterType="Long">
+        delete
+        from bms_logistics_development_award
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsLogisticsDevelopmentAwardByIds" parameterType="String">
+        delete from bms_logistics_development_award where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsManufacturingServicesAwardMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsManufacturingServicesAwardMapper.xml
new file mode 100644
index 0000000..ab17b1b
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsManufacturingServicesAwardMapper.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsManufacturingServicesAwardMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsManufacturingServicesAward"
+               id="BmsManufacturingServicesAwardResult">
+        <result property="id" column="id"/>
+        <result property="enterpriseId" column="enterprise_id"/>
+        <result property="filingNotice" column="filing_notice"/>
+        <result property="invoice" column="invoice"/>
+        <result property="auditReport" column="audit_report"/>
+        <result property="financialStatements" column="financial_statements"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+    <sql id="selectBmsManufacturingServicesAwardVo">
+        select id,
+               enterprise_id,
+               filing_notice,
+               invoice,
+               audit_report,
+               financial_statements,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time
+        from bms_manufacturing_services_award
+    </sql>
+
+    <select id="selectBmsManufacturingServicesAwardList"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsManufacturingServicesAward"
+            resultMap="BmsManufacturingServicesAwardResult">
+        <include refid="selectBmsManufacturingServicesAwardVo"/>
+        <where>
+            <if test="enterpriseId != null ">and enterprise_id = #{enterpriseId}</if>
+            <if test="filingNotice != null  and filingNotice != ''">and filing_notice = #{filingNotice}</if>
+            <if test="invoice != null  and invoice != ''">and invoice = #{invoice}</if>
+            <if test="auditReport != null  and auditReport != ''">and audit_report = #{auditReport}</if>
+            <if test="financialStatements != null  and financialStatements != ''">and financial_statements =
+                #{financialStatements}
+            </if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsManufacturingServicesAwardById" parameterType="Long"
+            resultMap="BmsManufacturingServicesAwardResult">
+        <include refid="selectBmsManufacturingServicesAwardVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsManufacturingServicesAward"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsManufacturingServicesAward">
+        insert into bms_manufacturing_services_award
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="enterpriseId != null">enterprise_id,</if>
+            <if test="filingNotice != null">filing_notice,</if>
+            <if test="invoice != null">invoice,</if>
+            <if test="auditReport != null">audit_report,</if>
+            <if test="financialStatements != null">financial_statements,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="enterpriseId != null">#{enterpriseId},</if>
+            <if test="filingNotice != null">#{filingNotice},</if>
+            <if test="invoice != null">#{invoice},</if>
+            <if test="auditReport != null">#{auditReport},</if>
+            <if test="financialStatements != null">#{financialStatements},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsManufacturingServicesAward"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsManufacturingServicesAward">
+        update bms_manufacturing_services_award
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="enterpriseId != null">enterprise_id = #{enterpriseId},</if>
+            <if test="filingNotice != null">filing_notice = #{filingNotice},</if>
+            <if test="invoice != null">invoice = #{invoice},</if>
+            <if test="auditReport != null">audit_report = #{auditReport},</if>
+            <if test="financialStatements != null">financial_statements = #{financialStatements},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsManufacturingServicesAwardById" parameterType="Long">
+        delete
+        from bms_manufacturing_services_award
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsManufacturingServicesAwardByIds" parameterType="String">
+        delete from bms_manufacturing_services_award where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsPlatformConstructionAwardMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsPlatformConstructionAwardMapper.xml
new file mode 100644
index 0000000..d8d2f5e
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsPlatformConstructionAwardMapper.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsPlatformConstructionAwardMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsPlatformConstructionAward"
+               id="BmsPlatformConstructionAwardResult">
+        <result property="id" column="id"/>
+        <result property="enterpriseId" column="enterprise_id"/>
+        <result property="platformName" column="platform_name"/>
+        <result property="agreement" column="agreement"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsPlatformConstructionAwardVo">
+        select id,
+               enterprise_id,
+               platform_name,
+               agreement,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_platform_construction_award
+    </sql>
+
+    <select id="selectBmsPlatformConstructionAwardList"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsPlatformConstructionAward"
+            resultMap="BmsPlatformConstructionAwardResult">
+        <include refid="selectBmsPlatformConstructionAwardVo"/>
+        <where>
+            <if test="enterpriseId != null ">and enterprise_id = #{enterpriseId}</if>
+            <if test="platformName != null  and platformName != ''">and platform_name like concat('%', #{platformName},
+                '%')
+            </if>
+            <if test="agreement != null  and agreement != ''">and agreement = #{agreement}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsPlatformConstructionAwardById" parameterType="Long"
+            resultMap="BmsPlatformConstructionAwardResult">
+        <include refid="selectBmsPlatformConstructionAwardVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsPlatformConstructionAward"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsPlatformConstructionAward">
+        insert into bms_platform_construction_award
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="enterpriseId != null">enterprise_id,</if>
+            <if test="platformName != null">platform_name,</if>
+            <if test="agreement != null">agreement,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="enterpriseId != null">#{enterpriseId},</if>
+            <if test="platformName != null">#{platformName},</if>
+            <if test="agreement != null">#{agreement},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsPlatformConstructionAward"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsPlatformConstructionAward">
+        update bms_platform_construction_award
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="enterpriseId != null">enterprise_id = #{enterpriseId},</if>
+            <if test="platformName != null">platform_name = #{platformName},</if>
+            <if test="agreement != null">agreement = #{agreement},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsPlatformConstructionAwardById" parameterType="Long">
+        delete
+        from bms_platform_construction_award
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsPlatformConstructionAwardByIds" parameterType="String">
+        delete from bms_platform_construction_award where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsProcessInfoMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsProcessInfoMapper.xml
new file mode 100644
index 0000000..ea6c171
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsProcessInfoMapper.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsProcessInfoMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsProcessInfo" id="BmsProcessInfoResult">
+        <result property="id" column="id"/>
+        <result property="approvalType" column="approval_type"/>
+        <result property="approvalLevel" column="approval_level"/>
+        <result property="approvalDept" column="approval_dept"/>
+        <result property="approvalById" column="approval_by_id"/>
+        <result property="approvalByIds" column="approval_by_ids"/>
+        <result property="nextProcessId" column="next_process_id"/>
+        <result property="sort" column="sort"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsProcessInfoVo">
+        select id,
+               approval_type,
+               approval_level,
+               approval_dept,
+               approval_by_id,
+               approval_by_ids,
+               next_process_id,
+               sort,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_process_info
+    </sql>
+
+    <select id="selectBmsProcessInfoList" parameterType="com.ruoyi.jjh.declaration.entity.BmsProcessInfo"
+            resultMap="BmsProcessInfoResult">
+        <include refid="selectBmsProcessInfoVo"/>
+        <where>
+            <if test="approvalType != null ">and approval_type = #{approvalType}</if>
+            <if test="approvalLevel != null ">and approval_level = #{approvalLevel}</if>
+            <if test="approvalById != null ">and approval_by_id = #{approvalById}</if>
+            <if test="approvalByIds != null ">and approval_by_ids = #{approvalByIds}</if>
+            <if test="nextProcessId != null ">and next_process_id = #{nextProcessId}</if>
+            <if test="sort != null ">and sort = #{sort}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsProcessInfoById" parameterType="Long" resultMap="BmsProcessInfoResult">
+        <include refid="selectBmsProcessInfoVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsProcessInfo" parameterType="com.ruoyi.jjh.declaration.entity.BmsProcessInfo"
+            useGeneratedKeys="true" keyProperty="id">
+        insert into bms_process_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="approvalType != null">approval_type,</if>
+            <if test="approvalLevel != null">approval_level,</if>
+            <if test="approvalDept != null">approval_dept,</if>
+            <if test="approvalById != null">approval_by_id,</if>
+            <if test="approvalByIds != null">approval_by_ids,</if>
+            <if test="nextProcessId != null">next_process_id,</if>
+            <if test="sort != null">sort,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="approvalType != null">#{approvalType},</if>
+            <if test="approvalLevel != null">#{approvalLevel},</if>
+            <if test="approvalDept != null">#{approvalDept},</if>
+            <if test="approvalById != null">#{approvalById},</if>
+            <if test="approvalByIds != null">#{approvalByIds},</if>
+            <if test="nextProcessId != null">#{nextProcessId},</if>
+            <if test="sort != null">#{sort},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsProcessInfo" parameterType="com.ruoyi.jjh.declaration.entity.BmsProcessInfo">
+        update bms_process_info
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="approvalType != null">approval_type = #{approvalType},</if>
+            <if test="approvalLevel != null">approval_level = #{approvalLevel},</if>
+            <if test="approvalDept != null">approval_dept = #{approvalDept},</if>
+            <if test="approvalById != null">approval_by_id = #{approvalById},</if>
+            <if test="approvalByIds != null">approval_by_ids = #{approvalByIds},</if>
+            <if test="nextProcessId != null">next_process_id = #{nextProcessId},</if>
+            <if test="sort != null">sort = #{sort},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsProcessInfoById" parameterType="Long">
+        delete
+        from bms_process_info
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsProcessInfoByIds" parameterType="String">
+        delete from bms_process_info where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsProjectInfoMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsProjectInfoMapper.xml
new file mode 100644
index 0000000..b780d82
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsProjectInfoMapper.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsProjectInfoMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsProjectInfo" id="BmsProjectInfoResult">
+        <result property="id" column="id"/>
+        <result property="declarationTemplateType" column="declaration_template_type"/>
+        <result property="projectName" column="project_name"/>
+        <result property="enterpriseId" column="enterprise_id"/>
+        <result property="productArea" column="product_area"/>
+        <result property="year" column="year"/>
+        <result property="startTime" column="start_time"/>
+        <result property="endTime" column="end_time"/>
+        <result property="completionTime" column="completion_time"/>
+        <result property="supportMethods" column="support_methods"/>
+        <result property="declarationTime" column="declaration_time"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsProjectInfoVo">
+        select id,
+               declaration_template_type,
+               project_name,
+               enterprise_id,
+               product_area,
+               year,
+               start_time,
+               end_time,
+               completion_time,
+               support_methods,
+               declaration_time,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_project_info
+    </sql>
+
+    <select id="selectBmsProjectInfoList" parameterType="com.ruoyi.jjh.declaration.entity.BmsProjectInfo"
+            resultMap="BmsProjectInfoResult">
+        <include refid="selectBmsProjectInfoVo"/>
+        <where>
+            <if test="declarationTemplateType != null ">and declaration_template_type = #{declarationTemplateType}</if>
+            <if test="projectName != null  and projectName != ''">and project_name like concat('%', #{projectName},
+                '%')
+            </if>
+            <if test="enterpriseId != null ">and enterprise_id = #{enterpriseId}</if>
+            <if test="productArea != null ">and product_area = #{productArea}</if>
+            <if test="year != null  and year != ''">and year = #{year}</if>
+            <if test="startTime != null ">and start_time = #{startTime}</if>
+            <if test="endTime != null ">and end_time = #{endTime}</if>
+            <if test="completionTime != null ">and completion_time = #{completionTime}</if>
+            <if test="supportMethods != null ">and support_methods = #{supportMethods}</if>
+            <if test="declarationTime != null ">and declaration_time = #{declarationTime}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsProjectInfoById" parameterType="Long" resultMap="BmsProjectInfoResult">
+        <include refid="selectBmsProjectInfoVo"/>
+        where id = #{id}
+    </select>
+    <select id="getProjectInfo" resultType="com.ruoyi.jjh.declaration.entity.BmsProjectInfo">
+        SELECT
+        c.id,
+        c.declaration_template_type,
+        c.project_name,
+        c.enterprise_id,
+        c.product_area,
+        c.YEAR,
+        c.start_time,
+        c.end_time,
+        c.completion_time,
+        c.support_methods,
+        c.declaration_time,
+        c.is_deleted,
+        c.create_by,
+        c.create_time,
+        c.update_by,
+        c.update_time,
+        c.remark
+        FROM
+        bms_template_record a
+        INNER JOIN bms_template_info b ON a.template_id = b.id
+        INNER JOIN bms_project_info c ON b.id = c.declaration_template_type
+        <where>
+            a.id = #{templateRecordId}
+        </where>
+    </select>
+
+    <insert id="insertBmsProjectInfo" parameterType="com.ruoyi.jjh.declaration.entity.BmsProjectInfo"
+            useGeneratedKeys="true" keyProperty="id">
+        insert into bms_project_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="declarationTemplateType != null">declaration_template_type,</if>
+            <if test="projectName != null">project_name,</if>
+            <if test="enterpriseId != null">enterprise_id,</if>
+            <if test="productArea != null">product_area,</if>
+            <if test="year != null">year,</if>
+            <if test="startTime != null">start_time,</if>
+            <if test="endTime != null">end_time,</if>
+            <if test="completionTime != null">completion_time,</if>
+            <if test="supportMethods != null">support_methods,</if>
+            <if test="declarationTime != null">declaration_time,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="declarationTemplateType != null">#{declarationTemplateType},</if>
+            <if test="projectName != null">#{projectName},</if>
+            <if test="enterpriseId != null">#{enterpriseId},</if>
+            <if test="productArea != null">#{productArea},</if>
+            <if test="year != null">#{year},</if>
+            <if test="startTime != null">#{startTime},</if>
+            <if test="endTime != null">#{endTime},</if>
+            <if test="completionTime != null">#{completionTime},</if>
+            <if test="supportMethods != null">#{supportMethods},</if>
+            <if test="declarationTime != null">#{declarationTime},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsProjectInfo" parameterType="com.ruoyi.jjh.declaration.entity.BmsProjectInfo">
+        update bms_project_info
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="declarationTemplateType != null">declaration_template_type = #{declarationTemplateType},</if>
+            <if test="projectName != null">project_name = #{projectName},</if>
+            <if test="enterpriseId != null">enterprise_id = #{enterpriseId},</if>
+            <if test="productArea != null">product_area = #{productArea},</if>
+            <if test="year != null">year = #{year},</if>
+            <if test="startTime != null">start_time = #{startTime},</if>
+            <if test="endTime != null">end_time = #{endTime},</if>
+            <if test="completionTime != null">completion_time = #{completionTime},</if>
+            <if test="supportMethods != null">support_methods = #{supportMethods},</if>
+            <if test="declarationTime != null">declaration_time = #{declarationTime},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsProjectInfoById" parameterType="Long">
+        delete
+        from bms_project_info
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsProjectInfoByIds" parameterType="String">
+        delete from bms_project_info where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsProjectSettlementAwardMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsProjectSettlementAwardMapper.xml
new file mode 100644
index 0000000..38be136
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsProjectSettlementAwardMapper.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsProjectSettlementAwardMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.vo.BmsProjectSettlementAwardQueryVo"
+               id="BmsProjectSettlementAwardResult">
+        <result property="id" column="id"/>
+        <result property="enterpriseId" column="enterprise_id"/>
+        <result property="establishTime" column="establish_time"/>
+        <result property="employeeNum" column="employee_num"/>
+        <result property="agreement" column="agreement"/>
+        <result property="report" column="report"/>
+        <result property="businessLicense" column="business_license"/>
+        <result property="otherMaterials" column="other_materials"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsProjectSettlementAwardVo">
+        select id,
+               enterprise_id,
+               establish_time,
+               employee_num,
+               agreement,
+               report,
+               business_license,
+               other_materials,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_project_settlement_award
+    </sql>
+
+    <select id="selectBmsProjectSettlementAwardList"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsProjectSettlementAward"
+            resultMap="BmsProjectSettlementAwardResult">
+        <include refid="selectBmsProjectSettlementAwardVo"/>
+        <where>
+            <if test="enterpriseId != null ">and enterprise_id = #{enterpriseId}</if>
+            <if test="establishTime != null ">and establish_time = #{establishTime}</if>
+            <if test="employeeNum != null ">and employee_num = #{employeeNum}</if>
+            <if test="agreement != null  and agreement != ''">and agreement = #{agreement}</if>
+            <if test="report != null  and report != ''">and report = #{report}</if>
+            <if test="businessLicense != null  and businessLicense != ''">and business_license = #{businessLicense}</if>
+            <if test="otherMaterials != null  and otherMaterials != ''">and other_materials = #{otherMaterials}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsProjectSettlementAwardById" parameterType="Long" resultMap="BmsProjectSettlementAwardResult">
+        <include refid="selectBmsProjectSettlementAwardVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsProjectSettlementAward"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsProjectSettlementAward">
+        insert into bms_project_settlement_award
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="enterpriseId != null">enterprise_id,</if>
+            <if test="establishTime != null">establish_time,</if>
+            <if test="employeeNum != null">employee_num,</if>
+            <if test="agreement != null">agreement,</if>
+            <if test="report != null">report,</if>
+            <if test="businessLicense != null">business_license,</if>
+            <if test="otherMaterials != null">other_materials,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="enterpriseId != null">#{enterpriseId},</if>
+            <if test="establishTime != null">#{establishTime},</if>
+            <if test="employeeNum != null">#{employeeNum},</if>
+            <if test="agreement != null">#{agreement},</if>
+            <if test="report != null">#{report},</if>
+            <if test="businessLicense != null">#{businessLicense},</if>
+            <if test="otherMaterials != null">#{otherMaterials},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsProjectSettlementAward"
+            parameterType="com.ruoyi.jjh.declaration.entity.BmsProjectSettlementAward">
+        update bms_project_settlement_award
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="enterpriseId != null">enterprise_id = #{enterpriseId},</if>
+            <if test="establishTime != null">establish_time = #{establishTime},</if>
+            <if test="employeeNum != null">employee_num = #{employeeNum},</if>
+            <if test="agreement != null">agreement = #{agreement},</if>
+            <if test="report != null">report = #{report},</if>
+            <if test="businessLicense != null">business_license = #{businessLicense},</if>
+            <if test="otherMaterials != null">other_materials = #{otherMaterials},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsProjectSettlementAwardById" parameterType="Long">
+        delete
+        from bms_project_settlement_award
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsProjectSettlementAwardByIds" parameterType="String">
+        delete from bms_project_settlement_award where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsSceneOpeningAwardMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsSceneOpeningAwardMapper.xml
new file mode 100644
index 0000000..f83822e
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsSceneOpeningAwardMapper.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsSceneOpeningAwardMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsSceneOpeningAward" id="BmsSceneOpeningAwardResult">
+        <result property="id" column="id"/>
+        <result property="enterpriseId" column="enterprise_id"/>
+        <result property="projectName" column="project_name"/>
+        <result property="type" column="type"/>
+        <result property="material" column="material"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsSceneOpeningAwardVo">
+        select id,
+               enterprise_id,
+               project_name,
+               type,
+               material,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_scene_opening_award
+    </sql>
+
+    <select id="selectBmsSceneOpeningAwardList" parameterType="com.ruoyi.jjh.declaration.entity.BmsSceneOpeningAward"
+            resultMap="BmsSceneOpeningAwardResult">
+        <include refid="selectBmsSceneOpeningAwardVo"/>
+        <where>
+            <if test="enterpriseId != null ">and enterprise_id = #{enterpriseId}</if>
+            <if test="projectName != null  and projectName != ''">and project_name like concat('%', #{projectName},
+                '%')
+            </if>
+            <if test="type != null ">and type = #{type}</if>
+            <if test="material != null  and material != ''">and material = #{material}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsSceneOpeningAwardById" parameterType="Long" resultMap="BmsSceneOpeningAwardResult">
+        <include refid="selectBmsSceneOpeningAwardVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsSceneOpeningAward" parameterType="com.ruoyi.jjh.declaration.entity.BmsSceneOpeningAward">
+        insert into bms_scene_opening_award
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="enterpriseId != null">enterprise_id,</if>
+            <if test="projectName != null">project_name,</if>
+            <if test="type != null">type,</if>
+            <if test="material != null">material,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="enterpriseId != null">#{enterpriseId},</if>
+            <if test="projectName != null">#{projectName},</if>
+            <if test="type != null">#{type},</if>
+            <if test="material != null">#{material},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsSceneOpeningAward" parameterType="com.ruoyi.jjh.declaration.entity.BmsSceneOpeningAward">
+        update bms_scene_opening_award
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="enterpriseId != null">enterprise_id = #{enterpriseId},</if>
+            <if test="projectName != null">project_name = #{projectName},</if>
+            <if test="type != null">type = #{type},</if>
+            <if test="material != null">material = #{material},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsSceneOpeningAwardById" parameterType="Long">
+        delete
+        from bms_scene_opening_award
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsSceneOpeningAwardByIds" parameterType="String">
+        delete from bms_scene_opening_award where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsTemplateInfoMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsTemplateInfoMapper.xml
new file mode 100644
index 0000000..9e030d8
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsTemplateInfoMapper.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsTemplateInfoMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsTemplateInfo" id="BmsTemplateInfoResult">
+        <result property="id" column="id"/>
+        <result property="templateName" column="template_name"/>
+        <result property="level" column="level"/>
+        <result property="productArea" column="product_area"/>
+        <result property="type" column="type"/>
+        <result property="notes" column="notes"/>
+        <result property="responsibilityUnit" column="responsibility_unit"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsTemplateInfoVo">
+        select id,
+               template_name,
+               level,
+               product_area,
+               type,
+               notes,
+               responsibility_unit,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_template_info
+    </sql>
+
+    <select id="selectBmsTemplateInfoList" parameterType="com.ruoyi.jjh.declaration.entity.BmsTemplateInfo"
+            resultMap="BmsTemplateInfoResult">
+        <include refid="selectBmsTemplateInfoVo"/>
+        <where>
+            <if test="templateName != null  and templateName != ''">and template_name like concat('%', #{templateName},
+                '%')
+            </if>
+            <if test="level != null ">and level = #{level}</if>
+            <if test="productArea != null ">and product_area = #{productArea}</if>
+            <if test="type != null ">and type = #{type}</if>
+            <if test="notes != null  and notes != ''">and notes = #{notes}</if>
+            <if test="responsibilityUnit != null ">and responsibility_unit = #{responsibilityUnit}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="templateInfoList" parameterType="com.ruoyi.jjh.declaration.entity.BmsTemplateInfo"
+            resultType="com.ruoyi.jjh.declaration.entity.vo.BmsTemplateInfoQueryVo">
+        SELECT
+        a.*,
+        b.nick_name as createByName
+        FROM
+        bms_template_info a
+        INNER JOIN sys_user b ON a.create_by = b.user_id
+        <where>
+            <if test="templateName != null  and templateName != ''">and a.template_name like concat('%',
+                #{templateName}, '%')
+            </if>
+            <if test="level != null ">and a.level = #{level}</if>
+            <if test="productArea != null ">and a.product_area = #{productArea}</if>
+            <if test="type != null ">and a.type = #{type}</if>
+            <if test="notes != null  and notes != ''">and a.notes = #{notes}</if>
+            <if test="responsibilityUnit != null ">and a.responsibility_unit = #{responsibilityUnit}</if>
+            <if test="isDeleted != null ">and a.is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsTemplateInfoById" parameterType="Long" resultMap="BmsTemplateInfoResult">
+        <include refid="selectBmsTemplateInfoVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsTemplateInfo" parameterType="com.ruoyi.jjh.declaration.entity.BmsTemplateInfo">
+        insert into bms_template_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="templateName != null">template_name,</if>
+            <if test="level != null">level,</if>
+            <if test="productArea != null">product_area,</if>
+            <if test="type != null">type,</if>
+            <if test="notes != null">notes,</if>
+            <if test="responsibilityUnit != null">responsibility_unit,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="templateName != null">#{templateName},</if>
+            <if test="level != null">#{level},</if>
+            <if test="productArea != null">#{productArea},</if>
+            <if test="type != null">#{type},</if>
+            <if test="notes != null">#{notes},</if>
+            <if test="responsibilityUnit != null">#{responsibilityUnit},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsTemplateInfo" parameterType="com.ruoyi.jjh.declaration.entity.BmsTemplateInfo">
+        update bms_template_info
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="templateName != null">template_name = #{templateName},</if>
+            <if test="level != null">level = #{level},</if>
+            <if test="productArea != null">product_area = #{productArea},</if>
+            <if test="type != null">type = #{type},</if>
+            <if test="notes != null">notes = #{notes},</if>
+            <if test="responsibilityUnit != null">responsibility_unit = #{responsibilityUnit},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsTemplateInfoById" parameterType="Long">
+        delete
+        from bms_template_info
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsTemplateInfoByIds" parameterType="String">
+        delete from bms_template_info where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsTemplateRecordMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsTemplateRecordMapper.xml
new file mode 100644
index 0000000..7e7ecf3
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BmsTemplateRecordMapper.xml
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BmsTemplateRecordMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BmsTemplateRecord" id="BmsTemplateRecordResult">
+        <result property="id" column="id"/>
+        <result property="templateId" column="template_id"/>
+        <result property="enterpriseDirectory" column="enterprise_directory"/>
+        <result property="startTime" column="start_time"/>
+        <result property="endTime" column="end_time"/>
+        <result property="fileName" column="file_name"/>
+        <result property="road" column="road"/>
+        <result property="notes" column="notes"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBmsTemplateRecordVo">
+        select id,
+               template_id,
+               enterprise_directory,
+               start_time,
+               end_time,
+               file_name,
+               road,
+               notes,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bms_template_record
+    </sql>
+
+    <select id="selectBmsTemplateRecordList" parameterType="com.ruoyi.jjh.declaration.entity.BmsTemplateRecord"
+            resultMap="BmsTemplateRecordResult">
+        <include refid="selectBmsTemplateRecordVo"/>
+        <where>
+            <if test="templateId != null ">and template_id = #{templateId}</if>
+            <if test="enterpriseDirectory != null  and enterpriseDirectory != ''">and enterprise_directory =
+                #{enterpriseDirectory}
+            </if>
+            <if test="startTime != null ">and start_time = #{startTime}</if>
+            <if test="endTime != null ">and end_time = #{endTime}</if>
+            <if test="road != null ">and road = #{road}</if>
+            <if test="fileName != null ">and file_name = #{fileName}</if>
+            <if test="notes != null  and notes != ''">and notes = #{notes}</if>
+        </where>
+    </select>
+
+    <select id="selectBmsTemplateRecordById" parameterType="Long" resultMap="BmsTemplateRecordResult">
+        <include refid="selectBmsTemplateRecordVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBmsTemplateRecord" parameterType="com.ruoyi.jjh.declaration.entity.BmsTemplateRecord"
+            useGeneratedKeys="true" keyProperty="id">
+        insert into bms_template_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="templateId != null">template_id,</if>
+            <if test="enterpriseDirectory != null">enterprise_directory,</if>
+            <if test="startTime != null">start_time,</if>
+            <if test="endTime != null">end_time,</if>
+            <if test="road != null">road,</if>
+            <if test="fileName != null">file_name,</if>
+            <if test="notes != null">notes,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="templateId != null">#{templateId},</if>
+            <if test="enterpriseDirectory != null">#{enterpriseDirectory},</if>
+            <if test="startTime != null">#{startTime},</if>
+            <if test="endTime != null">#{endTime},</if>
+            <if test="road != null">#{road},</if>
+            <if test="fileName != null">#{fileName},</if>
+            <if test="notes != null">#{notes},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBmsTemplateRecord" parameterType="com.ruoyi.jjh.declaration.entity.BmsTemplateRecord">
+        update bms_template_record
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="templateId != null">template_id = #{templateId},</if>
+            <if test="enterpriseDirectory != null">enterprise_directory = #{enterpriseDirectory},</if>
+            <if test="startTime != null">start_time = #{startTime},</if>
+            <if test="endTime != null">end_time = #{endTime},</if>
+            <if test="road != null">road = #{road},</if>
+            <if test="fileName != null">file_name = #{fileName},</if>
+            <if test="notes != null">notes = #{notes},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmsTemplateRecordById" parameterType="Long">
+        delete
+        from bms_template_record
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBmsTemplateRecordByIds" parameterType="String">
+        delete from bms_template_record where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <select id="selectTemplateRecordVo" parameterType="com.ruoyi.jjh.declaration.entity.dto.BmsTemplateRecordQueryDto"
+            resultType="com.ruoyi.jjh.declaration.entity.vo.BmsTemplateRecordQueryVo">
+        SELECT
+        a.id as templateRecordId,
+        a.enterprise_directory,
+        b.id as templateId,
+        b.template_name,
+        b.LEVEL,
+        a.road,
+        a.file_name,
+        a.start_time,
+        a.end_time,
+        a.notes,
+        b.responsibility_unit,
+        a.create_time,
+        c.nick_name as createByName
+        FROM
+        bms_template_record a
+        INNER JOIN bms_template_info b ON a.template_id = b.id
+        INNER JOIN sys_user c ON b.create_by = c.user_id
+        <where>
+            <if test="enterpriseDirectory != null  and enterpriseDirectory != ''">and a.enterprise_directory like
+                concat('%', #{enterpriseDirectory}, '%')
+            </if>
+            <if test="templateId != null ">and b.id = #{templateId}</if>
+            <if test="startTime != null ">
+                and date_format(a.create_time ,'%y%m%d') &gt;= date_format(#{startTime},'%y%m%d')
+            </if>
+            <if test="endTime != null ">
+                and date_format(a.create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
+            </if>
+            <if test="road != null ">and a.road = #{road}</if>
+            <if test="level != null ">and b.level = #{level}</if>
+            <if test="responsibilityUnit != null ">and b.responsibility_unit = #{responsibilityUnit}</if>
+            <if test="templateName != null  and templateName != ''">and b.template_name like concat('%',
+                #{templateName}, '%')
+            </if>
+        </where>
+        order by a.create_time desc
+    </select>
+    <select id="selectBmsTemplateRecordVoById" resultType="com.ruoyi.jjh.declaration.entity.vo.BmsTemplateRecordVo">
+        SELECT a.id,
+               a.template_id,
+               a.enterprise_directory,
+               a.start_time,
+               a.end_time,
+               a.file_name,
+               a.road,
+               a.notes,
+               a.create_by,
+               a.create_time,
+               a.update_by,
+               a.update_time,
+               a.remark,
+               b.responsibility_unit
+        FROM bms_template_record a
+                 INNER JOIN bms_template_info b ON a.template_id = b.id
+        where a.id = #{id}
+    </select>
+    <select id="selectBmsTemplateNameList" parameterType="com.ruoyi.jjh.declaration.entity.dto.BmsTemplateQueryDto"
+            resultType="com.ruoyi.jjh.declaration.entity.vo.BmsTemplateRecordQueryVo">
+        SELECT a.template_record_id,
+               b.template_id,
+               c.template_name,
+               c.notes
+        FROM bms_enterprise_directory a
+                 INNER JOIN bms_template_record b ON a.template_record_id = b.id
+                 INNER JOIN bms_template_info c ON b.template_id = c.id
+        WHERE b.start_time &lt;= NOW()
+          AND b.end_time &gt;= NOW()
+          AND a.credit_code = #{creditCode}
+          AND c.responsibility_unit = #{responsibilityUnit}
+          and b.road = 0
+    </select>
+    <select id="selectTemplateRecordList" resultType="com.ruoyi.jjh.declaration.entity.vo.BmsTemplateRecordQueryVo">
+        SELECT a.id AS templateRecordId,
+               b.template_name,
+               a.template_id,
+               b.`level`,
+               a.road,
+               a.file_name,
+               a.start_time,
+               a.end_time,
+               a.notes,
+               b.responsibility_unit
+        FROM bms_template_record a
+                 LEFT JOIN bms_template_info b on a.template_id = b.id
+        WHERE a.id IN (SELECT template_record_id FROM bms_enterprise_directory WHERE credit_code = #{creditCode})
+          AND road = 1
+          AND start_time &lt;= NOW()
+          AND end_time &gt;= NOW()
+        order by a.create_time desc
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BsmFundingInfoMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BsmFundingInfoMapper.xml
new file mode 100644
index 0000000..c044d1d
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/declaration/BsmFundingInfoMapper.xml
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jjh.declaration.mapper.BsmFundingInfoMapper">
+
+    <resultMap type="com.ruoyi.jjh.declaration.entity.BsmFundingInfo" id="BsmFundingInfoResult">
+        <result property="id" column="id"/>
+        <result property="type" column="type"/>
+        <result property="templateId" column="template_id"/>
+        <result property="detailId" column="detail_id"/>
+        <result property="revenueYear" column="revenue_year"/>
+        <result property="revenue" column="revenue"/>
+        <result property="taxationYear" column="taxation_year"/>
+        <result property="taxation" column="taxation"/>
+        <result property="expectedRevenueYear" column="expected_revenue_year"/>
+        <result property="expectedRevenue" column="expected_revenue"/>
+        <result property="expectedTaxationYear" column="expected_taxation_year"/>
+        <result property="expectedTaxation" column="expected_taxation"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectBsmFundingInfoVo">
+        select id,
+               type,
+               template_id,
+               detail_id,
+               revenue_year,
+               revenue,
+               taxation_year,
+               taxation,
+               expected_revenue_year,
+               expected_revenue,
+               expected_taxation_year,
+               expected_taxation,
+               is_deleted,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from bsm_funding_info
+    </sql>
+
+    <select id="selectBsmFundingInfoList" parameterType="com.ruoyi.jjh.declaration.entity.BsmFundingInfo"
+            resultMap="BsmFundingInfoResult">
+        <include refid="selectBsmFundingInfoVo"/>
+        <where>
+            <if test="type != null ">and type = #{type}</if>
+            <if test="templateId != null ">and template_id = #{templateId}</if>
+            <if test="detailId != null ">and detail_id = #{detailId}</if>
+            <if test="revenueYear != null ">and revenue_year = #{revenueYear}</if>
+            <if test="revenue != null ">and revenue = #{revenue}</if>
+            <if test="taxationYear != null ">and taxation_year = #{taxationYear}</if>
+            <if test="taxation != null ">and taxation = #{taxation}</if>
+            <if test="expectedRevenueYear != null ">and expected_revenue_year = #{expectedRevenueYear}</if>
+            <if test="expectedRevenue != null ">and expected_revenue = #{expectedRevenue}</if>
+            <if test="expectedTaxationYear != null ">and expected_taxation_year = #{expectedTaxationYear}</if>
+            <if test="expectedTaxation != null ">and expected_taxation = #{expectedTaxation}</if>
+            <if test="isDeleted != null ">and is_deleted = #{isDeleted}</if>
+        </where>
+    </select>
+
+    <select id="selectBsmFundingInfoById" parameterType="Long" resultMap="BsmFundingInfoResult">
+        <include refid="selectBsmFundingInfoVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBsmFundingInfo" parameterType="com.ruoyi.jjh.declaration.entity.BsmFundingInfo">
+        insert into bsm_funding_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="type != null">type,</if>
+            <if test="templateId != null">template_id,</if>
+            <if test="detailId != null">detail_id,</if>
+            <if test="revenueYear != null">revenue_year,</if>
+            <if test="revenue != null">revenue,</if>
+            <if test="taxationYear != null">taxation_year,</if>
+            <if test="taxation != null">taxation,</if>
+            <if test="expectedRevenueYear != null">expected_revenue_year,</if>
+            <if test="expectedRevenue != null">expected_revenue,</if>
+            <if test="expectedTaxationYear != null">expected_taxation_year,</if>
+            <if test="expectedTaxation != null">expected_taxation,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="type != null">#{type},</if>
+            <if test="templateId != null">#{templateId},</if>
+            <if test="detailId != null">#{detailId},</if>
+            <if test="revenueYear != null">#{revenueYear},</if>
+            <if test="revenue != null">#{revenue},</if>
+            <if test="taxationYear != null">#{taxationYear},</if>
+            <if test="taxation != null">#{taxation},</if>
+            <if test="expectedRevenueYear != null">#{expectedRevenueYear},</if>
+            <if test="expectedRevenue != null">#{expectedRevenue},</if>
+            <if test="expectedTaxationYear != null">#{expectedTaxationYear},</if>
+            <if test="expectedTaxation != null">#{expectedTaxation},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBsmFundingInfo" parameterType="com.ruoyi.jjh.declaration.entity.BsmFundingInfo">
+        update bsm_funding_info
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="type != null">type = #{type},</if>
+            <if test="templateId != null">template_id = #{templateId},</if>
+            <if test="detailId != null">detail_id = #{detailId},</if>
+            <if test="revenueYear != null">revenue_year = #{revenueYear},</if>
+            <if test="revenue != null">revenue = #{revenue},</if>
+            <if test="taxationYear != null">taxation_year = #{taxationYear},</if>
+            <if test="taxation != null">taxation = #{taxation},</if>
+            <if test="expectedRevenueYear != null">expected_revenue_year = #{expectedRevenueYear},</if>
+            <if test="expectedRevenue != null">expected_revenue = #{expectedRevenue},</if>
+            <if test="expectedTaxationYear != null">expected_taxation_year = #{expectedTaxationYear},</if>
+            <if test="expectedTaxation != null">expected_taxation = #{expectedTaxation},</if>
+            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBsmFundingInfoById" parameterType="Long">
+        delete
+        from bsm_funding_info
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteBsmFundingInfoByIds" parameterType="String">
+        delete from bsm_funding_info where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/JMemorandumMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/ent/JMemorandumMapper.xml
similarity index 100%
rename from ruoyi-admin/src/main/resources/mapper/jjh/JMemorandumMapper.xml
rename to ruoyi-admin/src/main/resources/mapper/jjh/ent/JMemorandumMapper.xml
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/JProjectMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/ent/JProjectMapper.xml
similarity index 100%
rename from ruoyi-admin/src/main/resources/mapper/jjh/JProjectMapper.xml
rename to ruoyi-admin/src/main/resources/mapper/jjh/ent/JProjectMapper.xml
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index 1c939ed..b742b50 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -8,7 +8,9 @@
         <version>3.8.7</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-
+    <properties>
+        <transmittable-thread-local.version>2.14.2</transmittable-thread-local.version>
+    </properties>
     <artifactId>ruoyi-common</artifactId>
 
     <description>
@@ -16,6 +18,12 @@
     </description>
 
     <dependencies>
+        <!-- 线程传递值 -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>transmittable-thread-local</artifactId>
+            <version>${transmittable-thread-local.version}</version>
+        </dependency>
 
         <dependency>
             <groupId>com.baomidou</groupId>
@@ -58,19 +66,19 @@
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
         </dependency>
-  
+
         <!-- JSON工具类 -->
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>
         </dependency>
-        
+
         <!-- 动态数据源 -->
-		<dependency>
-			<groupId>com.baomidou</groupId>
-			<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
-			<version>3.5.2</version>
-		</dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+            <version>3.5.2</version>
+        </dependency>
 
         <!-- 阿里JSON解析器 -->
         <dependency>
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/SecurityConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/SecurityConstants.java
new file mode 100644
index 0000000..af79f0a
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/SecurityConstants.java
@@ -0,0 +1,48 @@
+package com.ruoyi.common.constant;
+
+/**
+ * 权限相关通用常量
+ *
+ * @author ruoyi
+ */
+public class SecurityConstants {
+    /**
+     * 用户ID字段
+     */
+    public static final String DETAILS_USER_ID = "user_id";
+
+    /**
+     * 用户名字段
+     */
+    public static final String DETAILS_USERNAME = "username";
+
+    /**
+     * 授权信息字段
+     */
+    public static final String AUTHORIZATION_HEADER = "authorization";
+
+    /**
+     * 请求来源
+     */
+    public static final String FROM_SOURCE = "from-source";
+
+    /**
+     * 内部请求
+     */
+    public static final String INNER = "inner";
+
+    /**
+     * 用户标识
+     */
+    public static final String USER_KEY = "user_key";
+
+    /**
+     * 登录用户
+     */
+    public static final String LOGIN_USER = "login_user";
+
+    /**
+     * 角色权限
+     */
+    public static final String ROLE_PERMISSION = "role_permission";
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/context/SecurityContextHolder.java b/ruoyi-common/src/main/java/com/ruoyi/common/context/SecurityContextHolder.java
new file mode 100644
index 0000000..a547ff6
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/context/SecurityContextHolder.java
@@ -0,0 +1,84 @@
+package com.ruoyi.common.context;
+
+
+import com.alibaba.ttl.TransmittableThreadLocal;
+import com.ruoyi.common.constant.SecurityConstants;
+import com.ruoyi.common.core.text.Convert;
+import com.ruoyi.common.utils.StringUtils;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * 获取当前线程变量中的 用户id、用户名称、Token等信息
+ * 注意: 必须在网关通过请求头的方法传入,同时在HeaderInterceptor拦截器设置值。 否则这里无法获取
+ *
+ * @author ruoyi
+ */
+public class SecurityContextHolder {
+    private static final TransmittableThreadLocal<Map<String, Object>> THREAD_LOCAL = new TransmittableThreadLocal<>();
+
+    public static void set(String key, Object value) {
+        Map<String, Object> map = getLocalMap();
+        map.put(key, value == null ? StringUtils.EMPTY : value);
+    }
+
+    public static String get(String key) {
+        Map<String, Object> map = getLocalMap();
+        return Convert.toStr(map.getOrDefault(key, StringUtils.EMPTY));
+    }
+
+    public static <T> T get(String key, Class<T> clazz) {
+        Map<String, Object> map = getLocalMap();
+        return StringUtils.cast(map.getOrDefault(key, null));
+    }
+
+    public static Map<String, Object> getLocalMap() {
+        Map<String, Object> map = THREAD_LOCAL.get();
+        if (map == null) {
+            map = new ConcurrentHashMap<String, Object>();
+            THREAD_LOCAL.set(map);
+        }
+        return map;
+    }
+
+    public static void setLocalMap(Map<String, Object> threadLocalMap) {
+        THREAD_LOCAL.set(threadLocalMap);
+    }
+
+    public static Long getUserId() {
+        return Convert.toLong(get(SecurityConstants.DETAILS_USER_ID), 0L);
+    }
+
+    public static void setUserId(String account) {
+        set(SecurityConstants.DETAILS_USER_ID, account);
+    }
+
+    public static String getUserName() {
+        return get(SecurityConstants.DETAILS_USERNAME);
+    }
+
+    public static void setUserName(String username) {
+        set(SecurityConstants.DETAILS_USERNAME, username);
+    }
+
+    public static String getUserKey() {
+        return get(SecurityConstants.USER_KEY);
+    }
+
+    public static void setUserKey(String userKey) {
+        set(SecurityConstants.USER_KEY, userKey);
+    }
+
+    public static String getPermission() {
+        return get(SecurityConstants.ROLE_PERMISSION);
+    }
+
+    public static void setPermission(String permissions) {
+        set(SecurityConstants.ROLE_PERMISSION, permissions);
+    }
+
+    public static void remove() {
+        THREAD_LOCAL.remove();
+    }
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java
index bd835db..39cd358 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java
@@ -1,77 +1,74 @@
 package com.ruoyi.common.core.domain;
 
-import java.io.Serializable;
-import java.util.List;
-import java.util.stream.Collectors;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.entity.SysMenu;
 
+import java.io.Serializable;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * Treeselect树结构实体类
- * 
+ *
  * @author ruoyi
  */
-public class TreeSelect implements Serializable
-{
+public class TreeSelect implements Serializable {
     private static final long serialVersionUID = 1L;
 
-    /** 节点ID */
+    /**
+     * 节点ID
+     */
     private Long id;
 
-    /** 节点名称 */
+    /**
+     * 节点名称
+     */
     private String label;
 
-    /** 子节点 */
+    /**
+     * 子节点
+     */
     @JsonInclude(JsonInclude.Include.NON_EMPTY)
     private List<TreeSelect> children;
 
-    public TreeSelect()
-    {
+    public TreeSelect() {
 
     }
 
-    public TreeSelect(SysDept dept)
-    {
+    public TreeSelect(SysDept dept) {
         this.id = dept.getDeptId();
         this.label = dept.getDeptName();
         this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
     }
 
-    public TreeSelect(SysMenu menu)
-    {
+    public TreeSelect(SysMenu menu) {
         this.id = menu.getMenuId();
         this.label = menu.getMenuName();
         this.children = menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
     }
 
-    public Long getId()
-    {
+    public Long getId() {
         return id;
     }
 
-    public void setId(Long id)
-    {
+    public void setId(Long id) {
         this.id = id;
     }
 
-    public String getLabel()
-    {
+    public String getLabel() {
         return label;
     }
 
-    public void setLabel(String label)
-    {
+    public void setLabel(String label) {
         this.label = label;
     }
 
-    public List<TreeSelect> getChildren()
-    {
+    public List<TreeSelect> getChildren() {
         return children;
     }
 
-    public void setChildren(List<TreeSelect> children)
-    {
+    public void setChildren(List<TreeSelect> children) {
         this.children = children;
     }
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
index fb18c5c..98ea901 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
@@ -1,203 +1,203 @@
 package com.ruoyi.common.core.domain.entity;
 
-import java.util.ArrayList;
-import java.util.List;
+import com.ruoyi.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
 import javax.validation.constraints.Email;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import com.ruoyi.common.core.domain.BaseEntity;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 部门表 sys_dept
- * 
+ *
  * @author ruoyi
  */
-public class SysDept extends BaseEntity
-{
+public class SysDept extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** 部门ID */
+    /**
+     * 部门ID
+     */
     private Long deptId;
 
-    /** 父部门ID */
+    /**
+     * 父部门ID
+     */
     private Long parentId;
 
-    /** 祖级列表 */
+    /**
+     * 祖级列表
+     */
     private String ancestors;
 
-    /** 部门名称 */
+    /**
+     * 部门名称
+     */
     private String deptName;
 
-    /** 显示顺序 */
+    /**
+     * 显示顺序
+     */
     private Integer orderNum;
 
-    /** 负责人 */
+    /**
+     * 负责人
+     */
     private String leader;
 
-    /** 联系电话 */
+    /**
+     * 联系电话
+     */
     private String phone;
 
-    /** 邮箱 */
+    /**
+     * 邮箱
+     */
     private String email;
 
-    /** 部门状态:0正常,1停用 */
+    /**
+     * 部门状态:0正常,1停用
+     */
     private String status;
 
-    /** 删除标志(0代表存在 2代表删除) */
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
     private String delFlag;
 
-    /** 父部门名称 */
+    /**
+     * 父部门名称
+     */
     private String parentName;
-    
-    /** 子部门 */
+
+    /**
+     * 子部门
+     */
     private List<SysDept> children = new ArrayList<SysDept>();
 
-    public Long getDeptId()
-    {
+    public Long getDeptId() {
         return deptId;
     }
 
-    public void setDeptId(Long deptId)
-    {
+    public void setDeptId(Long deptId) {
         this.deptId = deptId;
     }
 
-    public Long getParentId()
-    {
+    public Long getParentId() {
         return parentId;
     }
 
-    public void setParentId(Long parentId)
-    {
+    public void setParentId(Long parentId) {
         this.parentId = parentId;
     }
 
-    public String getAncestors()
-    {
+    public String getAncestors() {
         return ancestors;
     }
 
-    public void setAncestors(String ancestors)
-    {
+    public void setAncestors(String ancestors) {
         this.ancestors = ancestors;
     }
 
     @NotBlank(message = "部门名称不能为空")
     @Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符")
-    public String getDeptName()
-    {
+    public String getDeptName() {
         return deptName;
     }
 
-    public void setDeptName(String deptName)
-    {
+    public void setDeptName(String deptName) {
         this.deptName = deptName;
     }
 
     @NotNull(message = "显示顺序不能为空")
-    public Integer getOrderNum()
-    {
+    public Integer getOrderNum() {
         return orderNum;
     }
 
-    public void setOrderNum(Integer orderNum)
-    {
+    public void setOrderNum(Integer orderNum) {
         this.orderNum = orderNum;
     }
 
-    public String getLeader()
-    {
+    public String getLeader() {
         return leader;
     }
 
-    public void setLeader(String leader)
-    {
+    public void setLeader(String leader) {
         this.leader = leader;
     }
 
     @Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符")
-    public String getPhone()
-    {
+    public String getPhone() {
         return phone;
     }
 
-    public void setPhone(String phone)
-    {
+    public void setPhone(String phone) {
         this.phone = phone;
     }
 
     @Email(message = "邮箱格式不正确")
     @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
-    public String getEmail()
-    {
+    public String getEmail() {
         return email;
     }
 
-    public void setEmail(String email)
-    {
+    public void setEmail(String email) {
         this.email = email;
     }
 
-    public String getStatus()
-    {
+    public String getStatus() {
         return status;
     }
 
-    public void setStatus(String status)
-    {
+    public void setStatus(String status) {
         this.status = status;
     }
 
-    public String getDelFlag()
-    {
+    public String getDelFlag() {
         return delFlag;
     }
 
-    public void setDelFlag(String delFlag)
-    {
+    public void setDelFlag(String delFlag) {
         this.delFlag = delFlag;
     }
 
-    public String getParentName()
-    {
+    public String getParentName() {
         return parentName;
     }
 
-    public void setParentName(String parentName)
-    {
+    public void setParentName(String parentName) {
         this.parentName = parentName;
     }
 
-    public List<SysDept> getChildren()
-    {
+    public List<SysDept> getChildren() {
         return children;
     }
 
-    public void setChildren(List<SysDept> children)
-    {
+    public void setChildren(List<SysDept> children) {
         this.children = children;
     }
 
     @Override
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("deptId", getDeptId())
-            .append("parentId", getParentId())
-            .append("ancestors", getAncestors())
-            .append("deptName", getDeptName())
-            .append("orderNum", getOrderNum())
-            .append("leader", getLeader())
-            .append("phone", getPhone())
-            .append("email", getEmail())
-            .append("status", getStatus())
-            .append("delFlag", getDelFlag())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .toString();
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("deptId", getDeptId())
+                .append("parentId", getParentId())
+                .append("ancestors", getAncestors())
+                .append("deptName", getDeptName())
+                .append("orderNum", getOrderNum())
+                .append("leader", getLeader())
+                .append("phone", getPhone())
+                .append("email", getEmail())
+                .append("status", getStatus())
+                .append("delFlag", getDelFlag())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .toString();
     }
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
index 488d49c..6dd6528 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
@@ -1,241 +1,237 @@
 package com.ruoyi.common.core.domain.entity;
 
-import java.util.Set;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.annotation.Excel.ColumnType;
 import com.ruoyi.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.util.Set;
 
 /**
  * 角色表 sys_role
- * 
+ *
  * @author ruoyi
  */
-public class SysRole extends BaseEntity
-{
+public class SysRole extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** 角色ID */
+    /**
+     * 角色ID
+     */
     @Excel(name = "角色序号", cellType = ColumnType.NUMERIC)
     private Long roleId;
 
-    /** 角色名称 */
+    /**
+     * 角色名称
+     */
     @Excel(name = "角色名称")
     private String roleName;
 
-    /** 角色权限 */
+    /**
+     * 角色权限
+     */
     @Excel(name = "角色权限")
     private String roleKey;
 
-    /** 角色排序 */
+    /**
+     * 角色排序
+     */
     @Excel(name = "角色排序")
     private Integer roleSort;
 
-    /** 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */
+    /**
+     * 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限)
+     */
     @Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限")
     private String dataScope;
 
-    /** 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) */
+    /**
+     * 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示)
+     */
     private boolean menuCheckStrictly;
 
-    /** 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 ) */
+    /**
+     * 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 )
+     */
     private boolean deptCheckStrictly;
 
-    /** 角色状态(0正常 1停用) */
+    /**
+     * 角色状态(0正常 1停用)
+     */
     @Excel(name = "角色状态", readConverterExp = "0=正常,1=停用")
     private String status;
 
-    /** 删除标志(0代表存在 2代表删除) */
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
     private String delFlag;
 
-    /** 用户是否存在此角色标识 默认不存在 */
+    /**
+     * 用户是否存在此角色标识 默认不存在
+     */
     private boolean flag = false;
 
-    /** 菜单组 */
+    /**
+     * 菜单组
+     */
     private Long[] menuIds;
 
-    /** 部门组(数据权限) */
+    /**
+     * 部门组(数据权限)
+     */
     private Long[] deptIds;
 
-    /** 角色菜单权限 */
+    /**
+     * 角色菜单权限
+     */
     private Set<String> permissions;
 
-    public SysRole()
-    {
+    public SysRole() {
 
     }
 
-    public SysRole(Long roleId)
-    {
+    public SysRole(Long roleId) {
         this.roleId = roleId;
     }
 
-    public Long getRoleId()
-    {
+    public static boolean isAdmin(Long roleId) {
+        return roleId != null && 1L == roleId;
+    }
+
+    public Long getRoleId() {
         return roleId;
     }
 
-    public void setRoleId(Long roleId)
-    {
+    public void setRoleId(Long roleId) {
         this.roleId = roleId;
     }
 
-    public boolean isAdmin()
-    {
+    public boolean isAdmin() {
         return isAdmin(this.roleId);
     }
 
-    public static boolean isAdmin(Long roleId)
-    {
-        return roleId != null && 1L == roleId;
-    }
-
     @NotBlank(message = "角色名称不能为空")
     @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符")
-    public String getRoleName()
-    {
+    public String getRoleName() {
         return roleName;
     }
 
-    public void setRoleName(String roleName)
-    {
+    public void setRoleName(String roleName) {
         this.roleName = roleName;
     }
 
     @NotBlank(message = "权限字符不能为空")
     @Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符")
-    public String getRoleKey()
-    {
+    public String getRoleKey() {
         return roleKey;
     }
 
-    public void setRoleKey(String roleKey)
-    {
+    public void setRoleKey(String roleKey) {
         this.roleKey = roleKey;
     }
 
     @NotNull(message = "显示顺序不能为空")
-    public Integer getRoleSort()
-    {
+    public Integer getRoleSort() {
         return roleSort;
     }
 
-    public void setRoleSort(Integer roleSort)
-    {
+    public void setRoleSort(Integer roleSort) {
         this.roleSort = roleSort;
     }
 
-    public String getDataScope()
-    {
+    public String getDataScope() {
         return dataScope;
     }
 
-    public void setDataScope(String dataScope)
-    {
+    public void setDataScope(String dataScope) {
         this.dataScope = dataScope;
     }
 
-    public boolean isMenuCheckStrictly()
-    {
+    public boolean isMenuCheckStrictly() {
         return menuCheckStrictly;
     }
 
-    public void setMenuCheckStrictly(boolean menuCheckStrictly)
-    {
+    public void setMenuCheckStrictly(boolean menuCheckStrictly) {
         this.menuCheckStrictly = menuCheckStrictly;
     }
 
-    public boolean isDeptCheckStrictly()
-    {
+    public boolean isDeptCheckStrictly() {
         return deptCheckStrictly;
     }
 
-    public void setDeptCheckStrictly(boolean deptCheckStrictly)
-    {
+    public void setDeptCheckStrictly(boolean deptCheckStrictly) {
         this.deptCheckStrictly = deptCheckStrictly;
     }
 
-    public String getStatus()
-    {
+    public String getStatus() {
         return status;
     }
 
-    public void setStatus(String status)
-    {
+    public void setStatus(String status) {
         this.status = status;
     }
 
-    public String getDelFlag()
-    {
+    public String getDelFlag() {
         return delFlag;
     }
 
-    public void setDelFlag(String delFlag)
-    {
+    public void setDelFlag(String delFlag) {
         this.delFlag = delFlag;
     }
 
-    public boolean isFlag()
-    {
+    public boolean isFlag() {
         return flag;
     }
 
-    public void setFlag(boolean flag)
-    {
+    public void setFlag(boolean flag) {
         this.flag = flag;
     }
 
-    public Long[] getMenuIds()
-    {
+    public Long[] getMenuIds() {
         return menuIds;
     }
 
-    public void setMenuIds(Long[] menuIds)
-    {
+    public void setMenuIds(Long[] menuIds) {
         this.menuIds = menuIds;
     }
 
-    public Long[] getDeptIds()
-    {
+    public Long[] getDeptIds() {
         return deptIds;
     }
 
-    public void setDeptIds(Long[] deptIds)
-    {
+    public void setDeptIds(Long[] deptIds) {
         this.deptIds = deptIds;
     }
 
-    public Set<String> getPermissions()
-    {
+    public Set<String> getPermissions() {
         return permissions;
     }
 
-    public void setPermissions(Set<String> permissions)
-    {
+    public void setPermissions(Set<String> permissions) {
         this.permissions = permissions;
     }
 
     @Override
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("roleId", getRoleId())
-            .append("roleName", getRoleName())
-            .append("roleKey", getRoleKey())
-            .append("roleSort", getRoleSort())
-            .append("dataScope", getDataScope())
-            .append("menuCheckStrictly", isMenuCheckStrictly())
-            .append("deptCheckStrictly", isDeptCheckStrictly())
-            .append("status", getStatus())
-            .append("delFlag", getDelFlag())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remark", getRemark())
-            .toString();
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("roleId", getRoleId())
+                .append("roleName", getRoleName())
+                .append("roleKey", getRoleKey())
+                .append("roleSort", getRoleSort())
+                .append("dataScope", getDataScope())
+                .append("menuCheckStrictly", isMenuCheckStrictly())
+                .append("deptCheckStrictly", isDeptCheckStrictly())
+                .append("status", getStatus())
+                .append("delFlag", getDelFlag())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("remark", getRemark())
+                .toString();
     }
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index 53ad695..ac171ed 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -1,324 +1,322 @@
 package com.ruoyi.common.core.domain.entity;
 
-import java.util.Date;
-import java.util.List;
-import javax.validation.constraints.*;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.annotation.Excel.ColumnType;
 import com.ruoyi.common.annotation.Excel.Type;
 import com.ruoyi.common.annotation.Excels;
 import com.ruoyi.common.core.domain.BaseEntity;
 import com.ruoyi.common.xss.Xss;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.util.Date;
+import java.util.List;
 
 /**
  * 用户对象 sys_user
- * 
+ *
  * @author ruoyi
  */
-public class SysUser extends BaseEntity
-{
+public class SysUser extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** 用户ID */
+    /**
+     * 用户ID
+     */
     @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号")
     private Long userId;
 
-    /** 部门ID */
+    /**
+     * 部门ID
+     */
     @Excel(name = "部门编号", type = Type.IMPORT)
     private Long deptId;
 
-    /** 用户账号 */
+    /**
+     * 用户账号
+     */
     @Excel(name = "登录名称")
     private String userName;
 
-    /** 用户昵称 */
+    /**
+     * 用户昵称
+     */
     @Excel(name = "用户名称")
     private String nickName;
 
-    /** 用户邮箱 */
+    /**
+     * 用户邮箱
+     */
     @Excel(name = "用户邮箱")
     private String email;
 
-    /** 手机号码 */
+    /**
+     * 手机号码
+     */
     @Excel(name = "手机号码")
     private String phonenumber;
 
-    /** 用户性别 */
+    /**
+     * 用户性别
+     */
     @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
     private String sex;
 
-    /** 用户头像 */
+    /**
+     * 用户头像
+     */
     private String avatar;
 
-    /** 密码 */
+    /**
+     * 密码
+     */
     private String password;
 
-    /** 帐号状态(0正常 1停用) */
+    /**
+     * 帐号状态(0正常 1停用)
+     */
     @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
     private String status;
 
-    /** 删除标志(0代表存在 2代表删除) */
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
     private String delFlag;
 
-    /** 最后登录IP */
+    /**
+     * 最后登录IP
+     */
     @Excel(name = "最后登录IP", type = Type.EXPORT)
     private String loginIp;
 
-    /** 最后登录时间 */
+    /**
+     * 最后登录时间
+     */
     @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
     private Date loginDate;
 
-    /** 部门对象 */
+    /**
+     * 部门对象
+     */
     @Excels({
-        @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
-        @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT)
+            @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
+            @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT)
     })
     private SysDept dept;
 
-    /** 角色对象 */
+    /**
+     * 角色对象
+     */
     private List<SysRole> roles;
 
-    /** 角色组 */
+    /**
+     * 角色组
+     */
     private Long[] roleIds;
 
-    /** 岗位组 */
+    /**
+     * 岗位组
+     */
     private Long[] postIds;
 
-    /** 角色ID */
+    /**
+     * 角色ID
+     */
     private Long roleId;
 
-    public SysUser()
-    {
+    public SysUser() {
 
     }
 
-    public SysUser(Long userId)
-    {
+    public SysUser(Long userId) {
         this.userId = userId;
     }
 
-    public Long getUserId()
-    {
+    public static boolean isAdmin(Long userId) {
+        return userId != null && 1L == userId;
+    }
+
+    public Long getUserId() {
         return userId;
     }
 
-    public void setUserId(Long userId)
-    {
+    public void setUserId(Long userId) {
         this.userId = userId;
     }
 
-    public boolean isAdmin()
-    {
+    public boolean isAdmin() {
         return isAdmin(this.userId);
     }
 
-    public static boolean isAdmin(Long userId)
-    {
-        return userId != null && 1L == userId;
-    }
-
-    public Long getDeptId()
-    {
+    public Long getDeptId() {
         return deptId;
     }
 
-    public void setDeptId(Long deptId)
-    {
+    public void setDeptId(Long deptId) {
         this.deptId = deptId;
     }
 
     @Xss(message = "用户昵称不能包含脚本字符")
     @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
-    public String getNickName()
-    {
+    public String getNickName() {
         return nickName;
     }
 
-    public void setNickName(String nickName)
-    {
+    public void setNickName(String nickName) {
         this.nickName = nickName;
     }
 
     @Xss(message = "用户账号不能包含脚本字符")
     @NotBlank(message = "用户账号不能为空")
     @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
-    public String getUserName()
-    {
+    public String getUserName() {
         return userName;
     }
 
-    public void setUserName(String userName)
-    {
+    public void setUserName(String userName) {
         this.userName = userName;
     }
 
     @Email(message = "邮箱格式不正确")
     @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
-    public String getEmail()
-    {
+    public String getEmail() {
         return email;
     }
 
-    public void setEmail(String email)
-    {
+    public void setEmail(String email) {
         this.email = email;
     }
 
     @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符")
-    public String getPhonenumber()
-    {
+    public String getPhonenumber() {
         return phonenumber;
     }
 
-    public void setPhonenumber(String phonenumber)
-    {
+    public void setPhonenumber(String phonenumber) {
         this.phonenumber = phonenumber;
     }
 
-    public String getSex()
-    {
+    public String getSex() {
         return sex;
     }
 
-    public void setSex(String sex)
-    {
+    public void setSex(String sex) {
         this.sex = sex;
     }
 
-    public String getAvatar()
-    {
+    public String getAvatar() {
         return avatar;
     }
 
-    public void setAvatar(String avatar)
-    {
+    public void setAvatar(String avatar) {
         this.avatar = avatar;
     }
 
-    public String getPassword()
-    {
+    public String getPassword() {
         return password;
     }
 
-    public void setPassword(String password)
-    {
+    public void setPassword(String password) {
         this.password = password;
     }
 
-    public String getStatus()
-    {
+    public String getStatus() {
         return status;
     }
 
-    public void setStatus(String status)
-    {
+    public void setStatus(String status) {
         this.status = status;
     }
 
-    public String getDelFlag()
-    {
+    public String getDelFlag() {
         return delFlag;
     }
 
-    public void setDelFlag(String delFlag)
-    {
+    public void setDelFlag(String delFlag) {
         this.delFlag = delFlag;
     }
 
-    public String getLoginIp()
-    {
+    public String getLoginIp() {
         return loginIp;
     }
 
-    public void setLoginIp(String loginIp)
-    {
+    public void setLoginIp(String loginIp) {
         this.loginIp = loginIp;
     }
 
-    public Date getLoginDate()
-    {
+    public Date getLoginDate() {
         return loginDate;
     }
 
-    public void setLoginDate(Date loginDate)
-    {
+    public void setLoginDate(Date loginDate) {
         this.loginDate = loginDate;
     }
 
-    public SysDept getDept()
-    {
+    public SysDept getDept() {
         return dept;
     }
 
-    public void setDept(SysDept dept)
-    {
+    public void setDept(SysDept dept) {
         this.dept = dept;
     }
 
-    public List<SysRole> getRoles()
-    {
+    public List<SysRole> getRoles() {
         return roles;
     }
 
-    public void setRoles(List<SysRole> roles)
-    {
+    public void setRoles(List<SysRole> roles) {
         this.roles = roles;
     }
 
-    public Long[] getRoleIds()
-    {
+    public Long[] getRoleIds() {
         return roleIds;
     }
 
-    public void setRoleIds(Long[] roleIds)
-    {
+    public void setRoleIds(Long[] roleIds) {
         this.roleIds = roleIds;
     }
 
-    public Long[] getPostIds()
-    {
+    public Long[] getPostIds() {
         return postIds;
     }
 
-    public void setPostIds(Long[] postIds)
-    {
+    public void setPostIds(Long[] postIds) {
         this.postIds = postIds;
     }
 
-    public Long getRoleId()
-    {
+    public Long getRoleId() {
         return roleId;
     }
 
-    public void setRoleId(Long roleId)
-    {
+    public void setRoleId(Long roleId) {
         this.roleId = roleId;
     }
 
     @Override
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("userId", getUserId())
-            .append("deptId", getDeptId())
-            .append("userName", getUserName())
-            .append("nickName", getNickName())
-            .append("email", getEmail())
-            .append("phonenumber", getPhonenumber())
-            .append("sex", getSex())
-            .append("avatar", getAvatar())
-            .append("password", getPassword())
-            .append("status", getStatus())
-            .append("delFlag", getDelFlag())
-            .append("loginIp", getLoginIp())
-            .append("loginDate", getLoginDate())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remark", getRemark())
-            .append("dept", getDept())
-            .toString();
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("userId", getUserId())
+                .append("deptId", getDeptId())
+                .append("userName", getUserName())
+                .append("nickName", getNickName())
+                .append("email", getEmail())
+                .append("phonenumber", getPhonenumber())
+                .append("sex", getSex())
+                .append("avatar", getAvatar())
+                .append("password", getPassword())
+                .append("status", getStatus())
+                .append("delFlag", getDelFlag())
+                .append("loginIp", getLoginIp())
+                .append("loginDate", getLoginDate())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("remark", getRemark())
+                .append("dept", getDept())
+                .toString();
     }
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
index ed4cbc9..0d63c12 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
@@ -1,5 +1,15 @@
 package com.ruoyi.common.utils.file;
 
+import com.ruoyi.common.config.RuoYiConfig;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.uuid.IdUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.ArrayUtils;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -9,56 +19,38 @@ import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.ArrayUtils;
-import com.ruoyi.common.config.RuoYiConfig;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.uuid.IdUtils;
-import org.apache.commons.io.FilenameUtils;
 
 /**
  * 文件处理工具类
- * 
+ *
  * @author ruoyi
  */
-public class FileUtils
-{
+public class FileUtils {
     public static String FILENAME_PATTERN = "[a-zA-Z0-9_\\-\\|\\.\\u4e00-\\u9fa5]+";
 
     /**
      * 输出指定文件的byte数组
-     * 
+     *
      * @param filePath 文件路径
-     * @param os 输出流
+     * @param os       输出流
      * @return
      */
-    public static void writeBytes(String filePath, OutputStream os) throws IOException
-    {
+    public static void writeBytes(String filePath, OutputStream os) throws IOException {
         FileInputStream fis = null;
-        try
-        {
+        try {
             File file = new File(filePath);
-            if (!file.exists())
-            {
+            if (!file.exists()) {
                 throw new FileNotFoundException(filePath);
             }
             fis = new FileInputStream(file);
             byte[] b = new byte[1024];
             int length;
-            while ((length = fis.read(b)) > 0)
-            {
+            while ((length = fis.read(b)) > 0) {
                 os.write(b, 0, length);
             }
-        }
-        catch (IOException e)
-        {
+        } catch (IOException e) {
             throw e;
-        }
-        finally
-        {
+        } finally {
             IOUtils.close(os);
             IOUtils.close(fis);
         }
@@ -71,33 +63,28 @@ public class FileUtils
      * @return 目标文件
      * @throws IOException IO异常
      */
-    public static String writeImportBytes(byte[] data) throws IOException
-    {
+    public static String writeImportBytes(byte[] data) throws IOException {
         return writeBytes(data, RuoYiConfig.getImportPath());
     }
 
     /**
      * 写数据到文件中
      *
-     * @param data 数据
+     * @param data      数据
      * @param uploadDir 目标文件
      * @return 目标文件
      * @throws IOException IO异常
      */
-    public static String writeBytes(byte[] data, String uploadDir) throws IOException
-    {
+    public static String writeBytes(byte[] data, String uploadDir) throws IOException {
         FileOutputStream fos = null;
         String pathName = "";
-        try
-        {
+        try {
             String extension = getFileExtendName(data);
             pathName = DateUtils.datePath() + "/" + IdUtils.fastUUID() + "." + extension;
             File file = FileUploadUtils.getAbsoluteFile(uploadDir, pathName);
             fos = new FileOutputStream(file);
             fos.write(data);
-        }
-        finally
-        {
+        } finally {
             IOUtils.close(fos);
         }
         return FileUploadUtils.getPathFileName(uploadDir, pathName);
@@ -105,17 +92,15 @@ public class FileUtils
 
     /**
      * 删除文件
-     * 
+     *
      * @param filePath 文件
      * @return
      */
-    public static boolean deleteFile(String filePath)
-    {
+    public static boolean deleteFile(String filePath) {
         boolean flag = false;
         File file = new File(filePath);
         // 路径为文件且不为空则进行删除
-        if (file.isFile() && file.exists())
-        {
+        if (file.isFile() && file.exists()) {
             flag = file.delete();
         }
         return flag;
@@ -123,32 +108,28 @@ public class FileUtils
 
     /**
      * 文件名称验证
-     * 
+     *
      * @param filename 文件名称
      * @return true 正常 false 非法
      */
-    public static boolean isValidFilename(String filename)
-    {
+    public static boolean isValidFilename(String filename) {
         return filename.matches(FILENAME_PATTERN);
     }
 
     /**
      * 检查文件是否可下载
-     * 
+     *
      * @param resource 需要下载的文件
      * @return true 正常 false 非法
      */
-    public static boolean checkAllowDownload(String resource)
-    {
+    public static boolean checkAllowDownload(String resource) {
         // 禁止目录上跳级别
-        if (StringUtils.contains(resource, ".."))
-        {
+        if (StringUtils.contains(resource, "..")) {
             return false;
         }
 
         // 检查允许下载的文件规则
-        if (ArrayUtils.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource)))
-        {
+        if (ArrayUtils.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource))) {
             return true;
         }
 
@@ -158,33 +139,25 @@ public class FileUtils
 
     /**
      * 下载文件名重新编码
-     * 
-     * @param request 请求对象
+     *
+     * @param request  请求对象
      * @param fileName 文件名
      * @return 编码后的文件名
      */
-    public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException
-    {
+    public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException {
         final String agent = request.getHeader("USER-AGENT");
         String filename = fileName;
-        if (agent.contains("MSIE"))
-        {
+        if (agent.contains("MSIE")) {
             // IE浏览器
             filename = URLEncoder.encode(filename, "utf-8");
             filename = filename.replace("+", " ");
-        }
-        else if (agent.contains("Firefox"))
-        {
+        } else if (agent.contains("Firefox")) {
             // 火狐浏览器
             filename = new String(fileName.getBytes(), "ISO8859-1");
-        }
-        else if (agent.contains("Chrome"))
-        {
+        } else if (agent.contains("Chrome")) {
             // google浏览器
             filename = URLEncoder.encode(filename, "utf-8");
-        }
-        else
-        {
+        } else {
             // 其它浏览器
             filename = URLEncoder.encode(filename, "utf-8");
         }
@@ -194,11 +167,10 @@ public class FileUtils
     /**
      * 下载文件名重新编码
      *
-     * @param response 响应对象
+     * @param response     响应对象
      * @param realFileName 真实文件名
      */
-    public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException
-    {
+    public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException {
         String percentEncodedFileName = percentEncode(realFileName);
 
         StringBuilder contentDispositionValue = new StringBuilder();
@@ -220,36 +192,27 @@ public class FileUtils
      * @param s 需要百分号编码的字符串
      * @return 百分号编码后的字符串
      */
-    public static String percentEncode(String s) throws UnsupportedEncodingException
-    {
+    public static String percentEncode(String s) throws UnsupportedEncodingException {
         String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString());
         return encode.replaceAll("\\+", "%20");
     }
 
     /**
      * 获取图像后缀
-     * 
+     *
      * @param photoByte 图像数据
      * @return 后缀名
      */
-    public static String getFileExtendName(byte[] photoByte)
-    {
+    public static String getFileExtendName(byte[] photoByte) {
         String strFileExtendName = "jpg";
         if ((photoByte[0] == 71) && (photoByte[1] == 73) && (photoByte[2] == 70) && (photoByte[3] == 56)
-                && ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97))
-        {
+                && ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97)) {
             strFileExtendName = "gif";
-        }
-        else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70))
-        {
+        } else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70)) {
             strFileExtendName = "jpg";
-        }
-        else if ((photoByte[0] == 66) && (photoByte[1] == 77))
-        {
+        } else if ((photoByte[0] == 66) && (photoByte[1] == 77)) {
             strFileExtendName = "bmp";
-        }
-        else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71))
-        {
+        } else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) {
             strFileExtendName = "png";
         }
         return strFileExtendName;
@@ -257,14 +220,12 @@ public class FileUtils
 
     /**
      * 获取文件名称 /profile/upload/2022/04/16/ruoyi.png -- ruoyi.png
-     * 
+     *
      * @param fileName 路径名称
      * @return 没有文件路径的名称
      */
-    public static String getName(String fileName)
-    {
-        if (fileName == null)
-        {
+    public static String getName(String fileName) {
+        if (fileName == null) {
             return null;
         }
         int lastUnixPos = fileName.lastIndexOf('/');
@@ -275,17 +236,64 @@ public class FileUtils
 
     /**
      * 获取不带后缀文件名称 /profile/upload/2022/04/16/ruoyi.png -- ruoyi
-     * 
+     *
      * @param fileName 路径名称
      * @return 没有文件路径和后缀的名称
      */
-    public static String getNameNotSuffix(String fileName)
-    {
-        if (fileName == null)
-        {
+    public static String getNameNotSuffix(String fileName) {
+        if (fileName == null) {
             return null;
         }
-        String baseName = FilenameUtils.getBaseName(fileName);
-        return baseName;
+        return FilenameUtils.getBaseName(fileName);
+    }
+
+    /**
+     * 下载文件
+     *
+     * @param response
+     * @param request
+     * @param filename
+     * @param fileData
+     * @return {@link boolean}
+     * @author emiya.xie
+     * @create 2023/8/31 10:49
+     */
+    public static boolean downloadFile(HttpServletResponse response,
+                                       HttpServletRequest request, String filename, byte[] fileData) {
+        try {
+            OutputStream myout = null;
+            // 检查时候获取到数据
+            if (fileData == null) {
+                response.sendError(404);
+                return false;
+            }
+            try {
+                if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0) {
+                    filename = new String(filename.getBytes("GBK"), "iso-8859-1");
+                } else {
+                    filename = URLEncoder.encode(filename, "utf-8");
+                }
+                response.setContentType("multipart/form-data");
+                /*response.setContentType("multipart/form-data;charset=utf-8");*/
+                response.setHeader("content-disposition", "attachment;filename=" + filename);
+                // 写明要下载的文件的大小
+                response.setContentLength(fileData.length);
+                // 从response对象中得到输出流,准备下载
+                myout = response.getOutputStream();
+                myout.write(fileData);
+                myout.flush();
+            } catch (Exception ignored) {
+            } finally {
+                if (myout != null) {
+                    try {
+                        myout.close();
+                    } catch (Exception ignored) {
+                    }
+                }
+            }
+        } catch (IOException e) {
+            return false;
+        }
+        return true;
     }
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ProjectExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ProjectExcelUtil.java
index 6dea51e..43bb75a 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ProjectExcelUtil.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ProjectExcelUtil.java
@@ -19,20 +19,55 @@ import com.ruoyi.common.utils.reflect.ReflectUtils;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.RegExUtils;
 import org.apache.commons.lang3.reflect.FieldUtils;
-import org.apache.poi.hssf.usermodel.*;
+import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
+import org.apache.poi.hssf.usermodel.HSSFPicture;
+import org.apache.poi.hssf.usermodel.HSSFPictureData;
+import org.apache.poi.hssf.usermodel.HSSFShape;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ooxml.POIXMLDocumentPart;
-import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.usermodel.BorderStyle;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.CellType;
+import org.apache.poi.ss.usermodel.ClientAnchor;
+import org.apache.poi.ss.usermodel.DataValidation;
+import org.apache.poi.ss.usermodel.DataValidationConstraint;
+import org.apache.poi.ss.usermodel.DataValidationHelper;
+import org.apache.poi.ss.usermodel.DateUtil;
+import org.apache.poi.ss.usermodel.Drawing;
+import org.apache.poi.ss.usermodel.FillPatternType;
+import org.apache.poi.ss.usermodel.Font;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.IndexedColors;
+import org.apache.poi.ss.usermodel.Name;
+import org.apache.poi.ss.usermodel.PictureData;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.VerticalAlignment;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.usermodel.WorkbookFactory;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.ss.util.CellRangeAddressList;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
-import org.apache.poi.xssf.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
+import org.apache.poi.xssf.usermodel.XSSFDataValidation;
+import org.apache.poi.xssf.usermodel.XSSFDrawing;
+import org.apache.poi.xssf.usermodel.XSSFPicture;
+import org.apache.poi.xssf.usermodel.XSSFShape;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTMarker;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.servlet.http.HttpServletResponse;
-import java.io.*;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.ParameterizedType;
@@ -40,7 +75,18 @@ import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
 import java.util.stream.Collectors;
 
 /**
@@ -49,114 +95,238 @@ import java.util.stream.Collectors;
  * @author ruoyi
  */
 public class ProjectExcelUtil<T> {
-    private static final Logger log = LoggerFactory.getLogger(ProjectExcelUtil.class);
-
     public static final String FORMULA_REGEX_STR = "=|-|\\+|@";
-
     public static final String[] FORMULA_STR = {"=", "-", "+", "@"};
-
+    /**
+     * Excel sheet最大行数,默认65536
+     */
+    public static final int sheetSize = 65536;
+    private static final Logger log = LoggerFactory.getLogger(ProjectExcelUtil.class);
+    /**
+     * 数字格式
+     */
+    private static final DecimalFormat DOUBLE_FORMAT = new DecimalFormat("######0.00");
     /**
      * 用于dictType属性数据存储,避免重复查缓存
      */
     public Map<String, String> sysDictMap = new HashMap<String, String>();
-
     /**
-     * Excel sheet最大行数,默认65536
+     * 实体对象
      */
-    public static final int sheetSize = 65536;
-
+    public Class<T> clazz;
+    /**
+     * 需要排除列属性
+     */
+    public String[] excludeFields;
     /**
      * 工作表名称
      */
     private String sheetName;
-
     /**
      * 导出类型(EXPORT:导出数据;IMPORT:导入模板)
      */
     private Type type;
-
     /**
      * 工作薄对象
      */
     private Workbook wb;
-
     /**
      * 工作表对象
      */
     private Sheet sheet;
-
     /**
      * 样式列表
      */
     private Map<String, CellStyle> styles;
-
     /**
      * 导入导出数据列表
      */
     private List<T> list;
-
     /**
      * 注解列表
      */
     private List<Object[]> fields;
-
     /**
      * 当前行号
      */
     private int rownum;
-
     /**
      * 标题
      */
     private String title;
-
     /**
      * 最大高度
      */
     private short maxHeight;
-
     /**
      * 合并后最后行数
      */
     private int subMergedLastRowNum = 0;
-
     /**
      * 合并后开始行数
      */
     private int subMergedFirstRowNum = 1;
-
     /**
      * 对象的子列表方法
      */
     private Method subMethod;
-
     /**
      * 对象的子列表属性
      */
     private List<Field> subFields;
-
     /**
      * 统计列表
      */
     private Map<Integer, Double> statistics = new HashMap<Integer, Double>();
 
+    public ProjectExcelUtil(Class<T> clazz) {
+        this.clazz = clazz;
+    }
+
     /**
-     * 数字格式
+     * 获取画布
      */
-    private static final DecimalFormat DOUBLE_FORMAT = new DecimalFormat("######0.00");
+    public static Drawing<?> getDrawingPatriarch(Sheet sheet) {
+        if (sheet.getDrawingPatriarch() == null) {
+            sheet.createDrawingPatriarch();
+        }
+        return sheet.getDrawingPatriarch();
+    }
 
     /**
-     * 实体对象
+     * 解析导出值 0=男,1=女,2=未知
+     *
+     * @param propertyValue 参数值
+     * @param converterExp  翻译注解
+     * @param separator     分隔符
+     * @return 解析后值
      */
-    public Class<T> clazz;
+    public static String convertByExp(String propertyValue, String converterExp, String separator) {
+        StringBuilder propertyString = new StringBuilder();
+        String[] convertSource = converterExp.split(",");
+        for (String item : convertSource) {
+            String[] itemArray = item.split("=");
+            if (StringUtils.containsAny(propertyValue, separator)) {
+                for (String value : propertyValue.split(separator)) {
+                    if (itemArray[0].equals(value)) {
+                        propertyString.append(itemArray[1] + separator);
+                        break;
+                    }
+                }
+            } else {
+                if (itemArray[0].equals(propertyValue)) {
+                    return itemArray[1];
+                }
+            }
+        }
+        return StringUtils.stripEnd(propertyString.toString(), separator);
+    }
 
     /**
-     * 需要排除列属性
+     * 反向解析值 男=0,女=1,未知=2
+     *
+     * @param propertyValue 参数值
+     * @param converterExp  翻译注解
+     * @param separator     分隔符
+     * @return 解析后值
      */
-    public String[] excludeFields;
+    public static String reverseByExp(String propertyValue, String converterExp, String separator) {
+        StringBuilder propertyString = new StringBuilder();
+        String[] convertSource = converterExp.split(",");
+        for (String item : convertSource) {
+            String[] itemArray = item.split("=");
+            if (StringUtils.containsAny(propertyValue, separator)) {
+                for (String value : propertyValue.split(separator)) {
+                    if (itemArray[1].equals(value)) {
+                        propertyString.append(itemArray[0] + separator);
+                        break;
+                    }
+                }
+            } else {
+                if (itemArray[1].equals(propertyValue)) {
+                    return itemArray[0];
+                }
+            }
+        }
+        return StringUtils.stripEnd(propertyString.toString(), separator);
+    }
 
-    public ProjectExcelUtil(Class<T> clazz) {
-        this.clazz = clazz;
+    /**
+     * 解析字典值
+     *
+     * @param dictValue 字典值
+     * @param dictType  字典类型
+     * @param separator 分隔符
+     * @return 字典标签
+     */
+    public static String convertDictByExp(String dictValue, String dictType, String separator) {
+        return DictUtils.getDictLabel(dictType, dictValue, separator);
+    }
+
+    /**
+     * 反向解析值字典值
+     *
+     * @param dictLabel 字典标签
+     * @param dictType  字典类型
+     * @param separator 分隔符
+     * @return 字典值
+     */
+    public static String reverseDictByExp(String dictLabel, String dictType, String separator) {
+        return DictUtils.getDictValue(dictType, dictLabel, separator);
+    }
+
+    /**
+     * 获取Excel2003图片
+     *
+     * @param sheet    当前sheet对象
+     * @param workbook 工作簿对象
+     * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
+     */
+    public static Map<String, PictureData> getSheetPictures03(HSSFSheet sheet, HSSFWorkbook workbook) {
+        Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
+        List<HSSFPictureData> pictures = workbook.getAllPictures();
+        if (!pictures.isEmpty()) {
+            for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) {
+                HSSFClientAnchor anchor = (HSSFClientAnchor) shape.getAnchor();
+                if (shape instanceof HSSFPicture) {
+                    HSSFPicture pic = (HSSFPicture) shape;
+                    int pictureIndex = pic.getPictureIndex() - 1;
+                    HSSFPictureData picData = pictures.get(pictureIndex);
+                    String picIndex = anchor.getRow1() + "_" + anchor.getCol1();
+                    sheetIndexPicMap.put(picIndex, picData);
+                }
+            }
+            return sheetIndexPicMap;
+        } else {
+            return sheetIndexPicMap;
+        }
+    }
+
+    /**
+     * 获取Excel2007图片
+     *
+     * @param sheet    当前sheet对象
+     * @param workbook 工作簿对象
+     * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
+     */
+    public static Map<String, PictureData> getSheetPictures07(XSSFSheet sheet, XSSFWorkbook workbook) {
+        Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
+        for (POIXMLDocumentPart dr : sheet.getRelations()) {
+            if (dr instanceof XSSFDrawing) {
+                XSSFDrawing drawing = (XSSFDrawing) dr;
+                List<XSSFShape> shapes = drawing.getShapes();
+                for (XSSFShape shape : shapes) {
+                    if (shape instanceof XSSFPicture) {
+                        XSSFPicture pic = (XSSFPicture) shape;
+                        XSSFClientAnchor anchor = pic.getPreferredSize();
+                        CTMarker ctMarker = anchor.getFrom();
+                        String picIndex = ctMarker.getRow() + "_" + ctMarker.getCol();
+                        sheetIndexPicMap.put(picIndex, pic.getPictureData());
+                    }
+                }
+            }
+        }
+        return sheetIndexPicMap;
     }
 
     /**
@@ -388,7 +558,7 @@ public class ProjectExcelUtil<T> {
                 ReflectUtils.invokeSetter(entity, "status", 5);
                 cellMap.entrySet().removeIf(entry -> hasStr.contains(entry.getKey()));
                 StringBuilder str = new StringBuilder();
-                Map<String,String> sortHash = new HashMap<>();
+                Map<String, String> sortHash = new HashMap<>();
                 str.append("{");
                 for (Map.Entry<String, Integer> entry : cellMap.entrySet()) {
                     String key1 = entry.getKey();
@@ -430,7 +600,6 @@ public class ProjectExcelUtil<T> {
         return list;
     }
 
-
     /**
      * 对list数据源将其里面的数据导入到excel表单
      *
@@ -827,16 +996,6 @@ public class ProjectExcelUtil<T> {
         }
     }
 
-    /**
-     * 获取画布
-     */
-    public static Drawing<?> getDrawingPatriarch(Sheet sheet) {
-        if (sheet.getDrawingPatriarch() == null) {
-            sheet.createDrawingPatriarch();
-        }
-        return sheet.getDrawingPatriarch();
-    }
-
     /**
      * 获取图片类型,设置图片插入类型
      */
@@ -999,88 +1158,6 @@ public class ProjectExcelUtil<T> {
         wb.setSheetHidden(wb.getSheetIndex(hideSheet), true);
     }
 
-    /**
-     * 解析导出值 0=男,1=女,2=未知
-     *
-     * @param propertyValue 参数值
-     * @param converterExp  翻译注解
-     * @param separator     分隔符
-     * @return 解析后值
-     */
-    public static String convertByExp(String propertyValue, String converterExp, String separator) {
-        StringBuilder propertyString = new StringBuilder();
-        String[] convertSource = converterExp.split(",");
-        for (String item : convertSource) {
-            String[] itemArray = item.split("=");
-            if (StringUtils.containsAny(propertyValue, separator)) {
-                for (String value : propertyValue.split(separator)) {
-                    if (itemArray[0].equals(value)) {
-                        propertyString.append(itemArray[1] + separator);
-                        break;
-                    }
-                }
-            } else {
-                if (itemArray[0].equals(propertyValue)) {
-                    return itemArray[1];
-                }
-            }
-        }
-        return StringUtils.stripEnd(propertyString.toString(), separator);
-    }
-
-    /**
-     * 反向解析值 男=0,女=1,未知=2
-     *
-     * @param propertyValue 参数值
-     * @param converterExp  翻译注解
-     * @param separator     分隔符
-     * @return 解析后值
-     */
-    public static String reverseByExp(String propertyValue, String converterExp, String separator) {
-        StringBuilder propertyString = new StringBuilder();
-        String[] convertSource = converterExp.split(",");
-        for (String item : convertSource) {
-            String[] itemArray = item.split("=");
-            if (StringUtils.containsAny(propertyValue, separator)) {
-                for (String value : propertyValue.split(separator)) {
-                    if (itemArray[1].equals(value)) {
-                        propertyString.append(itemArray[0] + separator);
-                        break;
-                    }
-                }
-            } else {
-                if (itemArray[1].equals(propertyValue)) {
-                    return itemArray[0];
-                }
-            }
-        }
-        return StringUtils.stripEnd(propertyString.toString(), separator);
-    }
-
-    /**
-     * 解析字典值
-     *
-     * @param dictValue 字典值
-     * @param dictType  字典类型
-     * @param separator 分隔符
-     * @return 字典标签
-     */
-    public static String convertDictByExp(String dictValue, String dictType, String separator) {
-        return DictUtils.getDictLabel(dictType, dictValue, separator);
-    }
-
-    /**
-     * 反向解析值字典值
-     *
-     * @param dictLabel 字典标签
-     * @param dictType  字典类型
-     * @param separator 分隔符
-     * @return 字典值
-     */
-    public static String reverseDictByExp(String dictLabel, String dictType, String separator) {
-        return DictUtils.getDictValue(dictType, dictLabel, separator);
-    }
-
     /**
      * 数据处理器
      *
@@ -1349,60 +1426,6 @@ public class ProjectExcelUtil<T> {
         return true;
     }
 
-    /**
-     * 获取Excel2003图片
-     *
-     * @param sheet    当前sheet对象
-     * @param workbook 工作簿对象
-     * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
-     */
-    public static Map<String, PictureData> getSheetPictures03(HSSFSheet sheet, HSSFWorkbook workbook) {
-        Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
-        List<HSSFPictureData> pictures = workbook.getAllPictures();
-        if (!pictures.isEmpty()) {
-            for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) {
-                HSSFClientAnchor anchor = (HSSFClientAnchor) shape.getAnchor();
-                if (shape instanceof HSSFPicture) {
-                    HSSFPicture pic = (HSSFPicture) shape;
-                    int pictureIndex = pic.getPictureIndex() - 1;
-                    HSSFPictureData picData = pictures.get(pictureIndex);
-                    String picIndex = anchor.getRow1() + "_" + anchor.getCol1();
-                    sheetIndexPicMap.put(picIndex, picData);
-                }
-            }
-            return sheetIndexPicMap;
-        } else {
-            return sheetIndexPicMap;
-        }
-    }
-
-    /**
-     * 获取Excel2007图片
-     *
-     * @param sheet    当前sheet对象
-     * @param workbook 工作簿对象
-     * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
-     */
-    public static Map<String, PictureData> getSheetPictures07(XSSFSheet sheet, XSSFWorkbook workbook) {
-        Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
-        for (POIXMLDocumentPart dr : sheet.getRelations()) {
-            if (dr instanceof XSSFDrawing) {
-                XSSFDrawing drawing = (XSSFDrawing) dr;
-                List<XSSFShape> shapes = drawing.getShapes();
-                for (XSSFShape shape : shapes) {
-                    if (shape instanceof XSSFPicture) {
-                        XSSFPicture pic = (XSSFPicture) shape;
-                        XSSFClientAnchor anchor = pic.getPreferredSize();
-                        CTMarker ctMarker = anchor.getFrom();
-                        String picIndex = ctMarker.getRow() + "_" + ctMarker.getCol();
-                        sheetIndexPicMap.put(picIndex, pic.getPictureData());
-                    }
-                }
-            }
-        }
-        return sheetIndexPicMap;
-    }
-
     /**
      * 格式化不同类型的日期对象
      *
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ProjectValueUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ProjectValueUtil.java
index 40f494b..b798d82 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ProjectValueUtil.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ProjectValueUtil.java
@@ -7,7 +7,6 @@ import com.ruoyi.common.annotation.Excels;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.text.Convert;
-import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.exception.UtilException;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DictUtils;
@@ -19,20 +18,55 @@ import com.ruoyi.common.utils.reflect.ReflectUtils;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.RegExUtils;
 import org.apache.commons.lang3.reflect.FieldUtils;
-import org.apache.poi.hssf.usermodel.*;
+import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
+import org.apache.poi.hssf.usermodel.HSSFPicture;
+import org.apache.poi.hssf.usermodel.HSSFPictureData;
+import org.apache.poi.hssf.usermodel.HSSFShape;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ooxml.POIXMLDocumentPart;
-import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.usermodel.BorderStyle;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.CellType;
+import org.apache.poi.ss.usermodel.ClientAnchor;
+import org.apache.poi.ss.usermodel.DataValidation;
+import org.apache.poi.ss.usermodel.DataValidationConstraint;
+import org.apache.poi.ss.usermodel.DataValidationHelper;
+import org.apache.poi.ss.usermodel.DateUtil;
+import org.apache.poi.ss.usermodel.Drawing;
+import org.apache.poi.ss.usermodel.FillPatternType;
+import org.apache.poi.ss.usermodel.Font;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.IndexedColors;
+import org.apache.poi.ss.usermodel.Name;
+import org.apache.poi.ss.usermodel.PictureData;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.VerticalAlignment;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.usermodel.WorkbookFactory;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.ss.util.CellRangeAddressList;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
-import org.apache.poi.xssf.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
+import org.apache.poi.xssf.usermodel.XSSFDataValidation;
+import org.apache.poi.xssf.usermodel.XSSFDrawing;
+import org.apache.poi.xssf.usermodel.XSSFPicture;
+import org.apache.poi.xssf.usermodel.XSSFShape;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTMarker;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.servlet.http.HttpServletResponse;
-import java.io.*;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.ParameterizedType;
@@ -40,7 +74,18 @@ import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
 import java.util.stream.Collectors;
 
 /**
@@ -49,114 +94,238 @@ import java.util.stream.Collectors;
  * @author ruoyi
  */
 public class ProjectValueUtil<T> {
-    private static final Logger log = LoggerFactory.getLogger(ProjectValueUtil.class);
-
     public static final String FORMULA_REGEX_STR = "=|-|\\+|@";
-
     public static final String[] FORMULA_STR = {"=", "-", "+", "@"};
-
+    /**
+     * Excel sheet最大行数,默认65536
+     */
+    public static final int sheetSize = 65536;
+    private static final Logger log = LoggerFactory.getLogger(ProjectValueUtil.class);
+    /**
+     * 数字格式
+     */
+    private static final DecimalFormat DOUBLE_FORMAT = new DecimalFormat("######0.00");
     /**
      * 用于dictType属性数据存储,避免重复查缓存
      */
     public Map<String, String> sysDictMap = new HashMap<String, String>();
-
     /**
-     * Excel sheet最大行数,默认65536
+     * 实体对象
      */
-    public static final int sheetSize = 65536;
-
+    public Class<T> clazz;
+    /**
+     * 需要排除列属性
+     */
+    public String[] excludeFields;
     /**
      * 工作表名称
      */
     private String sheetName;
-
     /**
      * 导出类型(EXPORT:导出数据;IMPORT:导入模板)
      */
     private Type type;
-
     /**
      * 工作薄对象
      */
     private Workbook wb;
-
     /**
      * 工作表对象
      */
     private Sheet sheet;
-
     /**
      * 样式列表
      */
     private Map<String, CellStyle> styles;
-
     /**
      * 导入导出数据列表
      */
     private List<T> list;
-
     /**
      * 注解列表
      */
     private List<Object[]> fields;
-
     /**
      * 当前行号
      */
     private int rownum;
-
     /**
      * 标题
      */
     private String title;
-
     /**
      * 最大高度
      */
     private short maxHeight;
-
     /**
      * 合并后最后行数
      */
     private int subMergedLastRowNum = 0;
-
     /**
      * 合并后开始行数
      */
     private int subMergedFirstRowNum = 1;
-
     /**
      * 对象的子列表方法
      */
     private Method subMethod;
-
     /**
      * 对象的子列表属性
      */
     private List<Field> subFields;
-
     /**
      * 统计列表
      */
     private Map<Integer, Double> statistics = new HashMap<Integer, Double>();
 
+    public ProjectValueUtil(Class<T> clazz) {
+        this.clazz = clazz;
+    }
+
     /**
-     * 数字格式
+     * 获取画布
      */
-    private static final DecimalFormat DOUBLE_FORMAT = new DecimalFormat("######0.00");
+    public static Drawing<?> getDrawingPatriarch(Sheet sheet) {
+        if (sheet.getDrawingPatriarch() == null) {
+            sheet.createDrawingPatriarch();
+        }
+        return sheet.getDrawingPatriarch();
+    }
 
     /**
-     * 实体对象
+     * 解析导出值 0=男,1=女,2=未知
+     *
+     * @param propertyValue 参数值
+     * @param converterExp  翻译注解
+     * @param separator     分隔符
+     * @return 解析后值
      */
-    public Class<T> clazz;
+    public static String convertByExp(String propertyValue, String converterExp, String separator) {
+        StringBuilder propertyString = new StringBuilder();
+        String[] convertSource = converterExp.split(",");
+        for (String item : convertSource) {
+            String[] itemArray = item.split("=");
+            if (StringUtils.containsAny(propertyValue, separator)) {
+                for (String value : propertyValue.split(separator)) {
+                    if (itemArray[0].equals(value)) {
+                        propertyString.append(itemArray[1] + separator);
+                        break;
+                    }
+                }
+            } else {
+                if (itemArray[0].equals(propertyValue)) {
+                    return itemArray[1];
+                }
+            }
+        }
+        return StringUtils.stripEnd(propertyString.toString(), separator);
+    }
 
     /**
-     * 需要排除列属性
+     * 反向解析值 男=0,女=1,未知=2
+     *
+     * @param propertyValue 参数值
+     * @param converterExp  翻译注解
+     * @param separator     分隔符
+     * @return 解析后值
      */
-    public String[] excludeFields;
+    public static String reverseByExp(String propertyValue, String converterExp, String separator) {
+        StringBuilder propertyString = new StringBuilder();
+        String[] convertSource = converterExp.split(",");
+        for (String item : convertSource) {
+            String[] itemArray = item.split("=");
+            if (StringUtils.containsAny(propertyValue, separator)) {
+                for (String value : propertyValue.split(separator)) {
+                    if (itemArray[1].equals(value)) {
+                        propertyString.append(itemArray[0] + separator);
+                        break;
+                    }
+                }
+            } else {
+                if (itemArray[1].equals(propertyValue)) {
+                    return itemArray[0];
+                }
+            }
+        }
+        return StringUtils.stripEnd(propertyString.toString(), separator);
+    }
 
-    public ProjectValueUtil(Class<T> clazz) {
-        this.clazz = clazz;
+    /**
+     * 解析字典值
+     *
+     * @param dictValue 字典值
+     * @param dictType  字典类型
+     * @param separator 分隔符
+     * @return 字典标签
+     */
+    public static String convertDictByExp(String dictValue, String dictType, String separator) {
+        return DictUtils.getDictLabel(dictType, dictValue, separator);
+    }
+
+    /**
+     * 反向解析值字典值
+     *
+     * @param dictLabel 字典标签
+     * @param dictType  字典类型
+     * @param separator 分隔符
+     * @return 字典值
+     */
+    public static String reverseDictByExp(String dictLabel, String dictType, String separator) {
+        return DictUtils.getDictValue(dictType, dictLabel, separator);
+    }
+
+    /**
+     * 获取Excel2003图片
+     *
+     * @param sheet    当前sheet对象
+     * @param workbook 工作簿对象
+     * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
+     */
+    public static Map<String, PictureData> getSheetPictures03(HSSFSheet sheet, HSSFWorkbook workbook) {
+        Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
+        List<HSSFPictureData> pictures = workbook.getAllPictures();
+        if (!pictures.isEmpty()) {
+            for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) {
+                HSSFClientAnchor anchor = (HSSFClientAnchor) shape.getAnchor();
+                if (shape instanceof HSSFPicture) {
+                    HSSFPicture pic = (HSSFPicture) shape;
+                    int pictureIndex = pic.getPictureIndex() - 1;
+                    HSSFPictureData picData = pictures.get(pictureIndex);
+                    String picIndex = anchor.getRow1() + "_" + anchor.getCol1();
+                    sheetIndexPicMap.put(picIndex, picData);
+                }
+            }
+            return sheetIndexPicMap;
+        } else {
+            return sheetIndexPicMap;
+        }
+    }
+
+    /**
+     * 获取Excel2007图片
+     *
+     * @param sheet    当前sheet对象
+     * @param workbook 工作簿对象
+     * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
+     */
+    public static Map<String, PictureData> getSheetPictures07(XSSFSheet sheet, XSSFWorkbook workbook) {
+        Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
+        for (POIXMLDocumentPart dr : sheet.getRelations()) {
+            if (dr instanceof XSSFDrawing) {
+                XSSFDrawing drawing = (XSSFDrawing) dr;
+                List<XSSFShape> shapes = drawing.getShapes();
+                for (XSSFShape shape : shapes) {
+                    if (shape instanceof XSSFPicture) {
+                        XSSFPicture pic = (XSSFPicture) shape;
+                        XSSFClientAnchor anchor = pic.getPreferredSize();
+                        CTMarker ctMarker = anchor.getFrom();
+                        String picIndex = ctMarker.getRow() + "_" + ctMarker.getCol();
+                        sheetIndexPicMap.put(picIndex, pic.getPictureData());
+                    }
+                }
+            }
+        }
+        return sheetIndexPicMap;
     }
 
     /**
@@ -234,10 +403,10 @@ public class ProjectValueUtil<T> {
      * @param is 输入流
      * @return 转换后集合
      */
-    public List<T> importExcel(InputStream is,String projectClassify) {
+    public List<T> importExcel(InputStream is, String projectClassify) {
         List<T> list = null;
         try {
-            list = importExcel(is, 0,projectClassify);
+            list = importExcel(is, 0, projectClassify);
         } catch (Exception e) {
             log.error("导入Excel异常{}", e.getMessage());
             throw new UtilException(e.getMessage());
@@ -254,8 +423,8 @@ public class ProjectValueUtil<T> {
      * @param titleNum 标题占用行数
      * @return 转换后集合
      */
-    public List<T> importExcel(InputStream is, int titleNum,String projectClassify) throws Exception {
-        return importExcel(StringUtils.EMPTY, is, titleNum,projectClassify);
+    public List<T> importExcel(InputStream is, int titleNum, String projectClassify) throws Exception {
+        return importExcel(StringUtils.EMPTY, is, titleNum, projectClassify);
     }
 
     /**
@@ -266,7 +435,7 @@ public class ProjectValueUtil<T> {
      * @param is        输入流
      * @return 转换后集合
      */
-    public List<T> importExcel(String sheetName, InputStream is, int titleNum,String projectClassify) throws Exception {
+    public List<T> importExcel(String sheetName, InputStream is, int titleNum, String projectClassify) throws Exception {
         this.type = Type.IMPORT;
         this.wb = WorkbookFactory.create(is);
         List<T> list = new ArrayList<T>();
@@ -386,7 +555,7 @@ public class ProjectValueUtil<T> {
                 ReflectUtils.invokeSetter(entity, "status", 5);
                 cellMap.entrySet().removeIf(entry -> hasStr.contains(entry.getKey()));
                 StringBuilder str = new StringBuilder();
-                Map<String,String> sortHash = new HashMap<>();
+                Map<String, String> sortHash = new HashMap<>();
                 str.append("{");
                 for (Map.Entry<String, Integer> entry : cellMap.entrySet()) {
                     String key1 = entry.getKey();
@@ -428,7 +597,6 @@ public class ProjectValueUtil<T> {
         return list;
     }
 
-
     /**
      * 对list数据源将其里面的数据导入到excel表单
      *
@@ -825,16 +993,6 @@ public class ProjectValueUtil<T> {
         }
     }
 
-    /**
-     * 获取画布
-     */
-    public static Drawing<?> getDrawingPatriarch(Sheet sheet) {
-        if (sheet.getDrawingPatriarch() == null) {
-            sheet.createDrawingPatriarch();
-        }
-        return sheet.getDrawingPatriarch();
-    }
-
     /**
      * 获取图片类型,设置图片插入类型
      */
@@ -997,88 +1155,6 @@ public class ProjectValueUtil<T> {
         wb.setSheetHidden(wb.getSheetIndex(hideSheet), true);
     }
 
-    /**
-     * 解析导出值 0=男,1=女,2=未知
-     *
-     * @param propertyValue 参数值
-     * @param converterExp  翻译注解
-     * @param separator     分隔符
-     * @return 解析后值
-     */
-    public static String convertByExp(String propertyValue, String converterExp, String separator) {
-        StringBuilder propertyString = new StringBuilder();
-        String[] convertSource = converterExp.split(",");
-        for (String item : convertSource) {
-            String[] itemArray = item.split("=");
-            if (StringUtils.containsAny(propertyValue, separator)) {
-                for (String value : propertyValue.split(separator)) {
-                    if (itemArray[0].equals(value)) {
-                        propertyString.append(itemArray[1] + separator);
-                        break;
-                    }
-                }
-            } else {
-                if (itemArray[0].equals(propertyValue)) {
-                    return itemArray[1];
-                }
-            }
-        }
-        return StringUtils.stripEnd(propertyString.toString(), separator);
-    }
-
-    /**
-     * 反向解析值 男=0,女=1,未知=2
-     *
-     * @param propertyValue 参数值
-     * @param converterExp  翻译注解
-     * @param separator     分隔符
-     * @return 解析后值
-     */
-    public static String reverseByExp(String propertyValue, String converterExp, String separator) {
-        StringBuilder propertyString = new StringBuilder();
-        String[] convertSource = converterExp.split(",");
-        for (String item : convertSource) {
-            String[] itemArray = item.split("=");
-            if (StringUtils.containsAny(propertyValue, separator)) {
-                for (String value : propertyValue.split(separator)) {
-                    if (itemArray[1].equals(value)) {
-                        propertyString.append(itemArray[0] + separator);
-                        break;
-                    }
-                }
-            } else {
-                if (itemArray[1].equals(propertyValue)) {
-                    return itemArray[0];
-                }
-            }
-        }
-        return StringUtils.stripEnd(propertyString.toString(), separator);
-    }
-
-    /**
-     * 解析字典值
-     *
-     * @param dictValue 字典值
-     * @param dictType  字典类型
-     * @param separator 分隔符
-     * @return 字典标签
-     */
-    public static String convertDictByExp(String dictValue, String dictType, String separator) {
-        return DictUtils.getDictLabel(dictType, dictValue, separator);
-    }
-
-    /**
-     * 反向解析值字典值
-     *
-     * @param dictLabel 字典标签
-     * @param dictType  字典类型
-     * @param separator 分隔符
-     * @return 字典值
-     */
-    public static String reverseDictByExp(String dictLabel, String dictType, String separator) {
-        return DictUtils.getDictValue(dictType, dictLabel, separator);
-    }
-
     /**
      * 数据处理器
      *
@@ -1347,60 +1423,6 @@ public class ProjectValueUtil<T> {
         return true;
     }
 
-    /**
-     * 获取Excel2003图片
-     *
-     * @param sheet    当前sheet对象
-     * @param workbook 工作簿对象
-     * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
-     */
-    public static Map<String, PictureData> getSheetPictures03(HSSFSheet sheet, HSSFWorkbook workbook) {
-        Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
-        List<HSSFPictureData> pictures = workbook.getAllPictures();
-        if (!pictures.isEmpty()) {
-            for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) {
-                HSSFClientAnchor anchor = (HSSFClientAnchor) shape.getAnchor();
-                if (shape instanceof HSSFPicture) {
-                    HSSFPicture pic = (HSSFPicture) shape;
-                    int pictureIndex = pic.getPictureIndex() - 1;
-                    HSSFPictureData picData = pictures.get(pictureIndex);
-                    String picIndex = anchor.getRow1() + "_" + anchor.getCol1();
-                    sheetIndexPicMap.put(picIndex, picData);
-                }
-            }
-            return sheetIndexPicMap;
-        } else {
-            return sheetIndexPicMap;
-        }
-    }
-
-    /**
-     * 获取Excel2007图片
-     *
-     * @param sheet    当前sheet对象
-     * @param workbook 工作簿对象
-     * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
-     */
-    public static Map<String, PictureData> getSheetPictures07(XSSFSheet sheet, XSSFWorkbook workbook) {
-        Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
-        for (POIXMLDocumentPart dr : sheet.getRelations()) {
-            if (dr instanceof XSSFDrawing) {
-                XSSFDrawing drawing = (XSSFDrawing) dr;
-                List<XSSFShape> shapes = drawing.getShapes();
-                for (XSSFShape shape : shapes) {
-                    if (shape instanceof XSSFPicture) {
-                        XSSFPicture pic = (XSSFPicture) shape;
-                        XSSFClientAnchor anchor = pic.getPreferredSize();
-                        CTMarker ctMarker = anchor.getFrom();
-                        String picIndex = ctMarker.getRow() + "_" + ctMarker.getCol();
-                        sheetIndexPicMap.put(picIndex, pic.getPictureData());
-                    }
-                }
-            }
-        }
-        return sheetIndexPicMap;
-    }
-
     /**
      * 格式化不同类型的日期对象
      *
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/CaptchaConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/CaptchaConfig.java
index 43e78ae..f748af7 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/CaptchaConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/CaptchaConfig.java
@@ -1,23 +1,36 @@
 package com.ruoyi.framework.config;
 
-import java.util.Properties;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 import com.google.code.kaptcha.impl.DefaultKaptcha;
 import com.google.code.kaptcha.util.Config;
-import static com.google.code.kaptcha.Constants.*;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Properties;
+
+import static com.google.code.kaptcha.Constants.KAPTCHA_BORDER;
+import static com.google.code.kaptcha.Constants.KAPTCHA_BORDER_COLOR;
+import static com.google.code.kaptcha.Constants.KAPTCHA_IMAGE_HEIGHT;
+import static com.google.code.kaptcha.Constants.KAPTCHA_IMAGE_WIDTH;
+import static com.google.code.kaptcha.Constants.KAPTCHA_NOISE_COLOR;
+import static com.google.code.kaptcha.Constants.KAPTCHA_NOISE_IMPL;
+import static com.google.code.kaptcha.Constants.KAPTCHA_OBSCURIFICATOR_IMPL;
+import static com.google.code.kaptcha.Constants.KAPTCHA_SESSION_CONFIG_KEY;
+import static com.google.code.kaptcha.Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH;
+import static com.google.code.kaptcha.Constants.KAPTCHA_TEXTPRODUCER_CHAR_SPACE;
+import static com.google.code.kaptcha.Constants.KAPTCHA_TEXTPRODUCER_FONT_COLOR;
+import static com.google.code.kaptcha.Constants.KAPTCHA_TEXTPRODUCER_FONT_NAMES;
+import static com.google.code.kaptcha.Constants.KAPTCHA_TEXTPRODUCER_FONT_SIZE;
+import static com.google.code.kaptcha.Constants.KAPTCHA_TEXTPRODUCER_IMPL;
 
 /**
  * 验证码配置
- * 
+ *
  * @author ruoyi
  */
 @Configuration
-public class CaptchaConfig
-{
+public class CaptchaConfig {
     @Bean(name = "captchaProducer")
-    public DefaultKaptcha getKaptchaBean()
-    {
+    public DefaultKaptcha getKaptchaBean() {
         DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
         Properties properties = new Properties();
         // 是否有边框 默认为true 我们可以自己设置yes,no
@@ -44,8 +57,7 @@ public class CaptchaConfig
     }
 
     @Bean(name = "captchaProducerMath")
-    public DefaultKaptcha getKaptchaBeanMath()
-    {
+    public DefaultKaptcha getKaptchaBeanMath() {
         DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
         Properties properties = new Properties();
         // 是否有边框 默认为true 我们可以自己设置yes,no
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java
index c54678c..21861e8 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java
@@ -1,111 +1,111 @@
 package com.ruoyi.system.domain;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.Size;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.annotation.Excel.ColumnType;
 import com.ruoyi.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
 
 /**
  * 参数配置表 sys_config
- * 
+ *
  * @author ruoyi
  */
-public class SysConfig extends BaseEntity
-{
+public class SysConfig extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** 参数主键 */
+    /**
+     * 参数主键
+     */
     @Excel(name = "参数主键", cellType = ColumnType.NUMERIC)
     private Long configId;
 
-    /** 参数名称 */
+    /**
+     * 参数名称
+     */
     @Excel(name = "参数名称")
     private String configName;
 
-    /** 参数键名 */
+    /**
+     * 参数键名
+     */
     @Excel(name = "参数键名")
     private String configKey;
 
-    /** 参数键值 */
+    /**
+     * 参数键值
+     */
     @Excel(name = "参数键值")
     private String configValue;
 
-    /** 系统内置(Y是 N否) */
+    /**
+     * 系统内置(Y是 N否)
+     */
     @Excel(name = "系统内置", readConverterExp = "Y=是,N=否")
     private String configType;
 
-    public Long getConfigId()
-    {
+    public Long getConfigId() {
         return configId;
     }
 
-    public void setConfigId(Long configId)
-    {
+    public void setConfigId(Long configId) {
         this.configId = configId;
     }
 
     @NotBlank(message = "参数名称不能为空")
     @Size(min = 0, max = 100, message = "参数名称不能超过100个字符")
-    public String getConfigName()
-    {
+    public String getConfigName() {
         return configName;
     }
 
-    public void setConfigName(String configName)
-    {
+    public void setConfigName(String configName) {
         this.configName = configName;
     }
 
     @NotBlank(message = "参数键名长度不能为空")
     @Size(min = 0, max = 100, message = "参数键名长度不能超过100个字符")
-    public String getConfigKey()
-    {
+    public String getConfigKey() {
         return configKey;
     }
 
-    public void setConfigKey(String configKey)
-    {
+    public void setConfigKey(String configKey) {
         this.configKey = configKey;
     }
 
     @NotBlank(message = "参数键值不能为空")
     @Size(min = 0, max = 500, message = "参数键值长度不能超过500个字符")
-    public String getConfigValue()
-    {
+    public String getConfigValue() {
         return configValue;
     }
 
-    public void setConfigValue(String configValue)
-    {
+    public void setConfigValue(String configValue) {
         this.configValue = configValue;
     }
 
-    public String getConfigType()
-    {
+    public String getConfigType() {
         return configType;
     }
 
-    public void setConfigType(String configType)
-    {
+    public void setConfigType(String configType) {
         this.configType = configType;
     }
-    
+
     @Override
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("configId", getConfigId())
-            .append("configName", getConfigName())
-            .append("configKey", getConfigKey())
-            .append("configValue", getConfigValue())
-            .append("configType", getConfigType())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remark", getRemark())
-            .toString();
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("configId", getConfigId())
+                .append("configName", getConfigName())
+                .append("configKey", getConfigKey())
+                .append("configValue", getConfigValue())
+                .append("configType", getConfigType())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("remark", getRemark())
+                .toString();
     }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java
index 7fdea30..0265f5d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java
@@ -1,144 +1,144 @@
 package com.ruoyi.system.domain;
 
-import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.annotation.Excel.ColumnType;
 import com.ruoyi.common.core.domain.BaseEntity;
 
+import java.util.Date;
+
 /**
  * 系统访问记录表 sys_logininfor
- * 
+ *
  * @author ruoyi
  */
-public class SysLogininfor extends BaseEntity
-{
+public class SysLogininfor extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** ID */
+    /**
+     * ID
+     */
     @Excel(name = "序号", cellType = ColumnType.NUMERIC)
     private Long infoId;
 
-    /** 用户账号 */
+    /**
+     * 用户账号
+     */
     @Excel(name = "用户账号")
     private String userName;
 
-    /** 登录状态 0成功 1失败 */
+    /**
+     * 登录状态 0成功 1失败
+     */
     @Excel(name = "登录状态", readConverterExp = "0=成功,1=失败")
     private String status;
 
-    /** 登录IP地址 */
+    /**
+     * 登录IP地址
+     */
     @Excel(name = "登录地址")
     private String ipaddr;
 
-    /** 登录地点 */
+    /**
+     * 登录地点
+     */
     @Excel(name = "登录地点")
     private String loginLocation;
 
-    /** 浏览器类型 */
+    /**
+     * 浏览器类型
+     */
     @Excel(name = "浏览器")
     private String browser;
 
-    /** 操作系统 */
+    /**
+     * 操作系统
+     */
     @Excel(name = "操作系统")
     private String os;
 
-    /** 提示消息 */
+    /**
+     * 提示消息
+     */
     @Excel(name = "提示消息")
     private String msg;
 
-    /** 访问时间 */
+    /**
+     * 访问时间
+     */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date loginTime;
 
-    public Long getInfoId()
-    {
+    public Long getInfoId() {
         return infoId;
     }
 
-    public void setInfoId(Long infoId)
-    {
+    public void setInfoId(Long infoId) {
         this.infoId = infoId;
     }
 
-    public String getUserName()
-    {
+    public String getUserName() {
         return userName;
     }
 
-    public void setUserName(String userName)
-    {
+    public void setUserName(String userName) {
         this.userName = userName;
     }
 
-    public String getStatus()
-    {
+    public String getStatus() {
         return status;
     }
 
-    public void setStatus(String status)
-    {
+    public void setStatus(String status) {
         this.status = status;
     }
 
-    public String getIpaddr()
-    {
+    public String getIpaddr() {
         return ipaddr;
     }
 
-    public void setIpaddr(String ipaddr)
-    {
+    public void setIpaddr(String ipaddr) {
         this.ipaddr = ipaddr;
     }
 
-    public String getLoginLocation()
-    {
+    public String getLoginLocation() {
         return loginLocation;
     }
 
-    public void setLoginLocation(String loginLocation)
-    {
+    public void setLoginLocation(String loginLocation) {
         this.loginLocation = loginLocation;
     }
 
-    public String getBrowser()
-    {
+    public String getBrowser() {
         return browser;
     }
 
-    public void setBrowser(String browser)
-    {
+    public void setBrowser(String browser) {
         this.browser = browser;
     }
 
-    public String getOs()
-    {
+    public String getOs() {
         return os;
     }
 
-    public void setOs(String os)
-    {
+    public void setOs(String os) {
         this.os = os;
     }
 
-    public String getMsg()
-    {
+    public String getMsg() {
         return msg;
     }
 
-    public void setMsg(String msg)
-    {
+    public void setMsg(String msg) {
         this.msg = msg;
     }
 
-    public Date getLoginTime()
-    {
+    public Date getLoginTime() {
         return loginTime;
     }
 
-    public void setLoginTime(Date loginTime)
-    {
+    public void setLoginTime(Date loginTime) {
         this.loginTime = loginTime;
     }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java
index afff8c9..11f5071 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java
@@ -1,16 +1,16 @@
 package com.ruoyi.system.domain.vo;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
+
 import java.util.List;
 
 /**
  * 路由配置信息
- * 
+ *
  * @author ruoyi
  */
 @JsonInclude(JsonInclude.Include.NON_EMPTY)
-public class RouterVo
-{
+public class RouterVo {
     /**
      * 路由名字
      */
@@ -56,93 +56,75 @@ public class RouterVo
      */
     private List<RouterVo> children;
 
-    public String getName()
-    {
+    public String getName() {
         return name;
     }
 
-    public void setName(String name)
-    {
+    public void setName(String name) {
         this.name = name;
     }
 
-    public String getPath()
-    {
+    public String getPath() {
         return path;
     }
 
-    public void setPath(String path)
-    {
+    public void setPath(String path) {
         this.path = path;
     }
 
-    public boolean getHidden()
-    {
+    public boolean getHidden() {
         return hidden;
     }
 
-    public void setHidden(boolean hidden)
-    {
+    public void setHidden(boolean hidden) {
         this.hidden = hidden;
     }
 
-    public String getRedirect()
-    {
+    public String getRedirect() {
         return redirect;
     }
 
-    public void setRedirect(String redirect)
-    {
+    public void setRedirect(String redirect) {
         this.redirect = redirect;
     }
 
-    public String getComponent()
-    {
+    public String getComponent() {
         return component;
     }
 
-    public void setComponent(String component)
-    {
+    public void setComponent(String component) {
         this.component = component;
     }
 
-    public String getQuery()
-    {
+    public String getQuery() {
         return query;
     }
 
-    public void setQuery(String query)
-    {
+    public void setQuery(String query) {
         this.query = query;
     }
 
-    public Boolean getAlwaysShow()
-    {
+    public Boolean getAlwaysShow() {
         return alwaysShow;
     }
 
-    public void setAlwaysShow(Boolean alwaysShow)
-    {
+    public void setAlwaysShow(Boolean alwaysShow) {
         this.alwaysShow = alwaysShow;
     }
 
-    public MetaVo getMeta()
-    {
+    public MetaVo getMeta() {
         return meta;
     }
 
-    public void setMeta(MetaVo meta)
-    {
+    public void setMeta(MetaVo meta) {
         this.meta = meta;
     }
 
-    public List<RouterVo> getChildren()
-    {
+    public List<RouterVo> getChildren() {
         return children;
     }
 
-    public void setChildren(List<RouterVo> children)
-    {
+    public void setChildren(List<RouterVo> children) {
         this.children = children;
     }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java
index 13d49d6..091b20f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java
@@ -1,18 +1,18 @@
 package com.ruoyi.system.mapper;
 
-import java.util.List;
 import com.ruoyi.system.domain.SysConfig;
 
+import java.util.List;
+
 /**
  * 参数配置 数据层
- * 
+ *
  * @author ruoyi
  */
-public interface SysConfigMapper
-{
+public interface SysConfigMapper {
     /**
      * 查询参数配置信息
-     * 
+     *
      * @param config 参数配置信息
      * @return 参数配置信息
      */
@@ -20,7 +20,7 @@ public interface SysConfigMapper
 
     /**
      * 通过ID查询配置
-     * 
+     *
      * @param configId 参数ID
      * @return 参数配置信息
      */
@@ -28,7 +28,7 @@ public interface SysConfigMapper
 
     /**
      * 查询参数配置列表
-     * 
+     *
      * @param config 参数配置信息
      * @return 参数配置集合
      */
@@ -36,7 +36,7 @@ public interface SysConfigMapper
 
     /**
      * 根据键名查询参数配置信息
-     * 
+     *
      * @param configKey 参数键名
      * @return 参数配置信息
      */
@@ -44,7 +44,7 @@ public interface SysConfigMapper
 
     /**
      * 新增参数配置
-     * 
+     *
      * @param config 参数配置信息
      * @return 结果
      */
@@ -52,7 +52,7 @@ public interface SysConfigMapper
 
     /**
      * 修改参数配置
-     * 
+     *
      * @param config 参数配置信息
      * @return 结果
      */
@@ -60,7 +60,7 @@ public interface SysConfigMapper
 
     /**
      * 删除参数配置
-     * 
+     *
      * @param configId 参数ID
      * @return 结果
      */
@@ -68,7 +68,7 @@ public interface SysConfigMapper
 
     /**
      * 批量删除参数信息
-     * 
+     *
      * @param configIds 需要删除的参数ID
      * @return 结果
      */
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
index 7d60696..be117a6 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
@@ -1,21 +1,21 @@
 package com.ruoyi.system.service;
 
-import java.util.List;
-import java.util.Set;
 import com.ruoyi.common.core.domain.TreeSelect;
 import com.ruoyi.common.core.domain.entity.SysMenu;
 import com.ruoyi.system.domain.vo.RouterVo;
 
+import java.util.List;
+import java.util.Set;
+
 /**
  * 菜单 业务层
- * 
+ *
  * @author ruoyi
  */
-public interface ISysMenuService
-{
+public interface ISysMenuService {
     /**
      * 根据用户查询系统菜单列表
-     * 
+     *
      * @param userId 用户ID
      * @return 菜单列表
      */
@@ -23,8 +23,8 @@ public interface ISysMenuService
 
     /**
      * 根据用户查询系统菜单列表
-     * 
-     * @param menu 菜单信息
+     *
+     * @param menu   菜单信息
      * @param userId 用户ID
      * @return 菜单列表
      */
@@ -32,7 +32,7 @@ public interface ISysMenuService
 
     /**
      * 根据用户ID查询权限
-     * 
+     *
      * @param userId 用户ID
      * @return 权限列表
      */
@@ -40,7 +40,7 @@ public interface ISysMenuService
 
     /**
      * 根据角色ID查询权限
-     * 
+     *
      * @param roleId 角色ID
      * @return 权限列表
      */
@@ -48,7 +48,7 @@ public interface ISysMenuService
 
     /**
      * 根据用户ID查询菜单树信息
-     * 
+     *
      * @param userId 用户ID
      * @return 菜单列表
      */
@@ -56,7 +56,7 @@ public interface ISysMenuService
 
     /**
      * 根据角色ID查询菜单树信息
-     * 
+     *
      * @param roleId 角色ID
      * @return 选中菜单列表
      */
@@ -64,7 +64,7 @@ public interface ISysMenuService
 
     /**
      * 构建前端路由所需要的菜单
-     * 
+     *
      * @param menus 菜单列表
      * @return 路由列表
      */
@@ -72,7 +72,7 @@ public interface ISysMenuService
 
     /**
      * 构建前端所需要树结构
-     * 
+     *
      * @param menus 菜单列表
      * @return 树结构列表
      */
@@ -80,7 +80,7 @@ public interface ISysMenuService
 
     /**
      * 构建前端所需要下拉树结构
-     * 
+     *
      * @param menus 菜单列表
      * @return 下拉树结构列表
      */
@@ -88,7 +88,7 @@ public interface ISysMenuService
 
     /**
      * 根据菜单ID查询信息
-     * 
+     *
      * @param menuId 菜单ID
      * @return 菜单信息
      */
@@ -96,7 +96,7 @@ public interface ISysMenuService
 
     /**
      * 是否存在菜单子节点
-     * 
+     *
      * @param menuId 菜单ID
      * @return 结果 true 存在 false 不存在
      */
@@ -104,7 +104,7 @@ public interface ISysMenuService
 
     /**
      * 查询菜单是否存在角色
-     * 
+     *
      * @param menuId 菜单ID
      * @return 结果 true 存在 false 不存在
      */
@@ -112,7 +112,7 @@ public interface ISysMenuService
 
     /**
      * 新增保存菜单信息
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
@@ -120,7 +120,7 @@ public interface ISysMenuService
 
     /**
      * 修改保存菜单信息
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
@@ -128,7 +128,7 @@ public interface ISysMenuService
 
     /**
      * 删除菜单管理信息
-     * 
+     *
      * @param menuId 菜单ID
      * @return 结果
      */
@@ -136,7 +136,7 @@ public interface ISysMenuService
 
     /**
      * 校验菜单名称是否唯一
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
index 4d29b22..a7bb482 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
@@ -1,10 +1,5 @@
 package com.ruoyi.system.service.impl;
 
-import java.util.Collection;
-import java.util.List;
-import javax.annotation.PostConstruct;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
 import com.ruoyi.common.annotation.DataSource;
 import com.ruoyi.common.constant.CacheConstants;
 import com.ruoyi.common.constant.UserConstants;
@@ -16,15 +11,20 @@ import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.domain.SysConfig;
 import com.ruoyi.system.mapper.SysConfigMapper;
 import com.ruoyi.system.service.ISysConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import java.util.Collection;
+import java.util.List;
 
 /**
  * 参数配置 服务层实现
- * 
+ *
  * @author ruoyi
  */
 @Service
-public class SysConfigServiceImpl implements ISysConfigService
-{
+public class SysConfigServiceImpl implements ISysConfigService {
     @Autowired
     private SysConfigMapper configMapper;
 
@@ -35,21 +35,19 @@ public class SysConfigServiceImpl implements ISysConfigService
      * 项目启动时,初始化参数到缓存
      */
     @PostConstruct
-    public void init()
-    {
+    public void init() {
         loadingConfigCache();
     }
 
     /**
      * 查询参数配置信息
-     * 
+     *
      * @param configId 参数配置ID
      * @return 参数配置信息
      */
     @Override
     @DataSource(DataSourceType.MASTER)
-    public SysConfig selectConfigById(Long configId)
-    {
+    public SysConfig selectConfigById(Long configId) {
         SysConfig config = new SysConfig();
         config.setConfigId(configId);
         return configMapper.selectConfig(config);
@@ -57,23 +55,20 @@ public class SysConfigServiceImpl implements ISysConfigService
 
     /**
      * 根据键名查询参数配置信息
-     * 
+     *
      * @param configKey 参数key
      * @return 参数键值
      */
     @Override
-    public String selectConfigByKey(String configKey)
-    {
+    public String selectConfigByKey(String configKey) {
         String configValue = Convert.toStr(redisCache.getCacheObject(getCacheKey(configKey)));
-        if (StringUtils.isNotEmpty(configValue))
-        {
+        if (StringUtils.isNotEmpty(configValue)) {
             return configValue;
         }
         SysConfig config = new SysConfig();
         config.setConfigKey(configKey);
         SysConfig retConfig = configMapper.selectConfig(config);
-        if (StringUtils.isNotNull(retConfig))
-        {
+        if (StringUtils.isNotNull(retConfig)) {
             redisCache.setCacheObject(getCacheKey(configKey), retConfig.getConfigValue());
             return retConfig.getConfigValue();
         }
@@ -82,15 +77,13 @@ public class SysConfigServiceImpl implements ISysConfigService
 
     /**
      * 获取验证码开关
-     * 
+     *
      * @return true开启,false关闭
      */
     @Override
-    public boolean selectCaptchaEnabled()
-    {
+    public boolean selectCaptchaEnabled() {
         String captchaEnabled = selectConfigByKey("sys.account.captchaEnabled");
-        if (StringUtils.isEmpty(captchaEnabled))
-        {
+        if (StringUtils.isEmpty(captchaEnabled)) {
             return true;
         }
         return Convert.toBool(captchaEnabled);
@@ -98,28 +91,25 @@ public class SysConfigServiceImpl implements ISysConfigService
 
     /**
      * 查询参数配置列表
-     * 
+     *
      * @param config 参数配置信息
      * @return 参数配置集合
      */
     @Override
-    public List<SysConfig> selectConfigList(SysConfig config)
-    {
+    public List<SysConfig> selectConfigList(SysConfig config) {
         return configMapper.selectConfigList(config);
     }
 
     /**
      * 新增参数配置
-     * 
+     *
      * @param config 参数配置信息
      * @return 结果
      */
     @Override
-    public int insertConfig(SysConfig config)
-    {
+    public int insertConfig(SysConfig config) {
         int row = configMapper.insertConfig(config);
-        if (row > 0)
-        {
+        if (row > 0) {
             redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue());
         }
         return row;
@@ -127,22 +117,19 @@ public class SysConfigServiceImpl implements ISysConfigService
 
     /**
      * 修改参数配置
-     * 
+     *
      * @param config 参数配置信息
      * @return 结果
      */
     @Override
-    public int updateConfig(SysConfig config)
-    {
+    public int updateConfig(SysConfig config) {
         SysConfig temp = configMapper.selectConfigById(config.getConfigId());
-        if (!StringUtils.equals(temp.getConfigKey(), config.getConfigKey()))
-        {
+        if (!StringUtils.equals(temp.getConfigKey(), config.getConfigKey())) {
             redisCache.deleteObject(getCacheKey(temp.getConfigKey()));
         }
 
         int row = configMapper.updateConfig(config);
-        if (row > 0)
-        {
+        if (row > 0) {
             redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue());
         }
         return row;
@@ -150,17 +137,14 @@ public class SysConfigServiceImpl implements ISysConfigService
 
     /**
      * 批量删除参数信息
-     * 
+     *
      * @param configIds 需要删除的参数ID
      */
     @Override
-    public void deleteConfigByIds(Long[] configIds)
-    {
-        for (Long configId : configIds)
-        {
+    public void deleteConfigByIds(Long[] configIds) {
+        for (Long configId : configIds) {
             SysConfig config = selectConfigById(configId);
-            if (StringUtils.equals(UserConstants.YES, config.getConfigType()))
-            {
+            if (StringUtils.equals(UserConstants.YES, config.getConfigType())) {
                 throw new ServiceException(String.format("内置参数【%1$s】不能删除 ", config.getConfigKey()));
             }
             configMapper.deleteConfigById(configId);
@@ -172,11 +156,9 @@ public class SysConfigServiceImpl implements ISysConfigService
      * 加载参数缓存数据
      */
     @Override
-    public void loadingConfigCache()
-    {
+    public void loadingConfigCache() {
         List<SysConfig> configsList = configMapper.selectConfigList(new SysConfig());
-        for (SysConfig config : configsList)
-        {
+        for (SysConfig config : configsList) {
             redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue());
         }
     }
@@ -185,8 +167,7 @@ public class SysConfigServiceImpl implements ISysConfigService
      * 清空参数缓存数据
      */
     @Override
-    public void clearConfigCache()
-    {
+    public void clearConfigCache() {
         Collection<String> keys = redisCache.keys(CacheConstants.SYS_CONFIG_KEY + "*");
         redisCache.deleteObject(keys);
     }
@@ -195,25 +176,22 @@ public class SysConfigServiceImpl implements ISysConfigService
      * 重置参数缓存数据
      */
     @Override
-    public void resetConfigCache()
-    {
+    public void resetConfigCache() {
         clearConfigCache();
         loadingConfigCache();
     }
 
     /**
      * 校验参数键名是否唯一
-     * 
+     *
      * @param config 参数配置信息
      * @return 结果
      */
     @Override
-    public boolean checkConfigKeyUnique(SysConfig config)
-    {
+    public boolean checkConfigKeyUnique(SysConfig config) {
         Long configId = StringUtils.isNull(config.getConfigId()) ? -1L : config.getConfigId();
         SysConfig info = configMapper.checkConfigKeyUnique(config.getConfigKey());
-        if (StringUtils.isNotNull(info) && info.getConfigId().longValue() != configId.longValue())
-        {
+        if (StringUtils.isNotNull(info) && info.getConfigId().longValue() != configId.longValue()) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -221,12 +199,11 @@ public class SysConfigServiceImpl implements ISysConfigService
 
     /**
      * 设置cache key
-     * 
+     *
      * @param configKey 参数键
      * @return 缓存键key
      */
-    private String getCacheKey(String configKey)
-    {
+    private String getCacheKey(String configKey) {
         return CacheConstants.SYS_CONFIG_KEY + configKey;
     }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
index 25dd14b..ca8648f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
@@ -1,15 +1,5 @@
 package com.ruoyi.system.service.impl;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
 import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.domain.TreeSelect;
@@ -24,15 +14,25 @@ import com.ruoyi.system.mapper.SysMenuMapper;
 import com.ruoyi.system.mapper.SysRoleMapper;
 import com.ruoyi.system.mapper.SysRoleMenuMapper;
 import com.ruoyi.system.service.ISysMenuService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * 菜单 业务层处理
- * 
+ *
  * @author ruoyi
  */
 @Service
-public class SysMenuServiceImpl implements ISysMenuService
-{
+public class SysMenuServiceImpl implements ISysMenuService {
     public static final String PREMISSION_STRING = "perms[\"{0}\"]";
 
     @Autowired
@@ -46,33 +46,28 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 根据用户查询系统菜单列表
-     * 
+     *
      * @param userId 用户ID
      * @return 菜单列表
      */
     @Override
-    public List<SysMenu> selectMenuList(Long userId)
-    {
+    public List<SysMenu> selectMenuList(Long userId) {
         return selectMenuList(new SysMenu(), userId);
     }
 
     /**
      * 查询系统菜单列表
-     * 
+     *
      * @param menu 菜单信息
      * @return 菜单列表
      */
     @Override
-    public List<SysMenu> selectMenuList(SysMenu menu, Long userId)
-    {
+    public List<SysMenu> selectMenuList(SysMenu menu, Long userId) {
         List<SysMenu> menuList = null;
         // 管理员显示所有菜单信息
-        if (SysUser.isAdmin(userId))
-        {
+        if (SysUser.isAdmin(userId)) {
             menuList = menuMapper.selectMenuList(menu);
-        }
-        else
-        {
+        } else {
             menu.getParams().put("userId", userId);
             menuList = menuMapper.selectMenuListByUserId(menu);
         }
@@ -81,19 +76,16 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 根据用户ID查询权限
-     * 
+     *
      * @param userId 用户ID
      * @return 权限列表
      */
     @Override
-    public Set<String> selectMenuPermsByUserId(Long userId)
-    {
+    public Set<String> selectMenuPermsByUserId(Long userId) {
         List<String> perms = menuMapper.selectMenuPermsByUserId(userId);
         Set<String> permsSet = new HashSet<>();
-        for (String perm : perms)
-        {
-            if (StringUtils.isNotEmpty(perm))
-            {
+        for (String perm : perms) {
+            if (StringUtils.isNotEmpty(perm)) {
                 permsSet.addAll(Arrays.asList(perm.trim().split(",")));
             }
         }
@@ -102,19 +94,16 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 根据角色ID查询权限
-     * 
+     *
      * @param roleId 角色ID
      * @return 权限列表
      */
     @Override
-    public Set<String> selectMenuPermsByRoleId(Long roleId)
-    {
+    public Set<String> selectMenuPermsByRoleId(Long roleId) {
         List<String> perms = menuMapper.selectMenuPermsByRoleId(roleId);
         Set<String> permsSet = new HashSet<>();
-        for (String perm : perms)
-        {
-            if (StringUtils.isNotEmpty(perm))
-            {
+        for (String perm : perms) {
+            if (StringUtils.isNotEmpty(perm)) {
                 permsSet.addAll(Arrays.asList(perm.trim().split(",")));
             }
         }
@@ -123,20 +112,16 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 根据用户ID查询菜单
-     * 
+     *
      * @param userId 用户名称
      * @return 菜单列表
      */
     @Override
-    public List<SysMenu> selectMenuTreeByUserId(Long userId)
-    {
+    public List<SysMenu> selectMenuTreeByUserId(Long userId) {
         List<SysMenu> menus = null;
-        if (SecurityUtils.isAdmin(userId))
-        {
+        if (SecurityUtils.isAdmin(userId)) {
             menus = menuMapper.selectMenuTreeAll();
-        }
-        else
-        {
+        } else {
             menus = menuMapper.selectMenuTreeByUserId(userId);
         }
         return getChildPerms(menus, 0);
@@ -144,29 +129,26 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 根据角色ID查询菜单树信息
-     * 
+     *
      * @param roleId 角色ID
      * @return 选中菜单列表
      */
     @Override
-    public List<Long> selectMenuListByRoleId(Long roleId)
-    {
+    public List<Long> selectMenuListByRoleId(Long roleId) {
         SysRole role = roleMapper.selectRoleById(roleId);
         return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly());
     }
 
     /**
      * 构建前端路由所需要的菜单
-     * 
+     *
      * @param menus 菜单列表
      * @return 路由列表
      */
     @Override
-    public List<RouterVo> buildMenus(List<SysMenu> menus)
-    {
+    public List<RouterVo> buildMenus(List<SysMenu> menus) {
         List<RouterVo> routers = new LinkedList<RouterVo>();
-        for (SysMenu menu : menus)
-        {
+        for (SysMenu menu : menus) {
             RouterVo router = new RouterVo();
             router.setHidden("1".equals(menu.getVisible()));
             router.setName(getRouteName(menu));
@@ -175,14 +157,11 @@ public class SysMenuServiceImpl implements ISysMenuService
             router.setQuery(menu.getQuery());
             router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
             List<SysMenu> cMenus = menu.getChildren();
-            if (StringUtils.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType()))
-            {
+            if (StringUtils.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) {
                 router.setAlwaysShow(true);
                 router.setRedirect("noRedirect");
                 router.setChildren(buildMenus(cMenus));
-            }
-            else if (isMenuFrame(menu))
-            {
+            } else if (isMenuFrame(menu)) {
                 router.setMeta(null);
                 List<RouterVo> childrenList = new ArrayList<RouterVo>();
                 RouterVo children = new RouterVo();
@@ -193,9 +172,7 @@ public class SysMenuServiceImpl implements ISysMenuService
                 children.setQuery(menu.getQuery());
                 childrenList.add(children);
                 router.setChildren(childrenList);
-            }
-            else if (menu.getParentId().intValue() == 0 && isInnerLink(menu))
-            {
+            } else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) {
                 router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon()));
                 router.setPath("/");
                 List<RouterVo> childrenList = new ArrayList<RouterVo>();
@@ -215,27 +192,23 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 构建前端所需要树结构
-     * 
+     *
      * @param menus 菜单列表
      * @return 树结构列表
      */
     @Override
-    public List<SysMenu> buildMenuTree(List<SysMenu> menus)
-    {
+    public List<SysMenu> buildMenuTree(List<SysMenu> menus) {
         List<SysMenu> returnList = new ArrayList<SysMenu>();
         List<Long> tempList = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList());
-        for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext();)
-        {
+        for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext(); ) {
             SysMenu menu = (SysMenu) iterator.next();
             // 如果是顶级节点, 遍历该父节点的所有子节点
-            if (!tempList.contains(menu.getParentId()))
-            {
+            if (!tempList.contains(menu.getParentId())) {
                 recursionFn(menus, menu);
                 returnList.add(menu);
             }
         }
-        if (returnList.isEmpty())
-        {
+        if (returnList.isEmpty()) {
             returnList = menus;
         }
         return returnList;
@@ -243,104 +216,95 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 构建前端所需要下拉树结构
-     * 
+     *
      * @param menus 菜单列表
      * @return 下拉树结构列表
      */
     @Override
-    public List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus)
-    {
+    public List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus) {
         List<SysMenu> menuTrees = buildMenuTree(menus);
         return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
     }
 
     /**
      * 根据菜单ID查询信息
-     * 
+     *
      * @param menuId 菜单ID
      * @return 菜单信息
      */
     @Override
-    public SysMenu selectMenuById(Long menuId)
-    {
+    public SysMenu selectMenuById(Long menuId) {
         return menuMapper.selectMenuById(menuId);
     }
 
     /**
      * 是否存在菜单子节点
-     * 
+     *
      * @param menuId 菜单ID
      * @return 结果
      */
     @Override
-    public boolean hasChildByMenuId(Long menuId)
-    {
+    public boolean hasChildByMenuId(Long menuId) {
         int result = menuMapper.hasChildByMenuId(menuId);
         return result > 0;
     }
 
     /**
      * 查询菜单使用数量
-     * 
+     *
      * @param menuId 菜单ID
      * @return 结果
      */
     @Override
-    public boolean checkMenuExistRole(Long menuId)
-    {
+    public boolean checkMenuExistRole(Long menuId) {
         int result = roleMenuMapper.checkMenuExistRole(menuId);
         return result > 0;
     }
 
     /**
      * 新增保存菜单信息
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
     @Override
-    public int insertMenu(SysMenu menu)
-    {
+    public int insertMenu(SysMenu menu) {
         return menuMapper.insertMenu(menu);
     }
 
     /**
      * 修改保存菜单信息
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
     @Override
-    public int updateMenu(SysMenu menu)
-    {
+    public int updateMenu(SysMenu menu) {
         return menuMapper.updateMenu(menu);
     }
 
     /**
      * 删除菜单管理信息
-     * 
+     *
      * @param menuId 菜单ID
      * @return 结果
      */
     @Override
-    public int deleteMenuById(Long menuId)
-    {
+    public int deleteMenuById(Long menuId) {
         return menuMapper.deleteMenuById(menuId);
     }
 
     /**
      * 校验菜单名称是否唯一
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
     @Override
-    public boolean checkMenuNameUnique(SysMenu menu)
-    {
+    public boolean checkMenuNameUnique(SysMenu menu) {
         Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId();
         SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId());
-        if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue())
-        {
+        if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -348,16 +312,14 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 获取路由名称
-     * 
+     *
      * @param menu 菜单信息
      * @return 路由名称
      */
-    public String getRouteName(SysMenu menu)
-    {
+    public String getRouteName(SysMenu menu) {
         String routerName = StringUtils.capitalize(menu.getPath());
         // 非外链并且是一级目录(类型为目录)
-        if (isMenuFrame(menu))
-        {
+        if (isMenuFrame(menu)) {
             routerName = StringUtils.EMPTY;
         }
         return routerName;
@@ -365,27 +327,22 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 获取路由地址
-     * 
+     *
      * @param menu 菜单信息
      * @return 路由地址
      */
-    public String getRouterPath(SysMenu menu)
-    {
+    public String getRouterPath(SysMenu menu) {
         String routerPath = menu.getPath();
         // 内链打开外网方式
-        if (menu.getParentId().intValue() != 0 && isInnerLink(menu))
-        {
+        if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) {
             routerPath = innerLinkReplaceEach(routerPath);
         }
         // 非外链并且是一级目录(类型为目录)
-        if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType())
-                && UserConstants.NO_FRAME.equals(menu.getIsFrame()))
-        {
+        if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType()) && UserConstants.NO_FRAME.equals(menu.getIsFrame())) {
             routerPath = "/" + menu.getPath();
         }
         // 非外链并且是一级目录(类型为菜单)
-        else if (isMenuFrame(menu))
-        {
+        else if (isMenuFrame(menu)) {
             routerPath = "/";
         }
         return routerPath;
@@ -393,23 +350,17 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 获取组件信息
-     * 
+     *
      * @param menu 菜单信息
      * @return 组件信息
      */
-    public String getComponent(SysMenu menu)
-    {
+    public String getComponent(SysMenu menu) {
         String component = UserConstants.LAYOUT;
-        if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu))
-        {
+        if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) {
             component = menu.getComponent();
-        }
-        else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu))
-        {
+        } else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu)) {
             component = UserConstants.INNER_LINK;
-        }
-        else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu))
-        {
+        } else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) {
             component = UserConstants.PARENT_VIEW;
         }
         return component;
@@ -417,54 +368,47 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 是否为菜单内部跳转
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
-    public boolean isMenuFrame(SysMenu menu)
-    {
-        return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType())
-                && menu.getIsFrame().equals(UserConstants.NO_FRAME);
+    public boolean isMenuFrame(SysMenu menu) {
+        return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType()) && menu.getIsFrame().equals(UserConstants.NO_FRAME);
     }
 
     /**
      * 是否为内链组件
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
-    public boolean isInnerLink(SysMenu menu)
-    {
+    public boolean isInnerLink(SysMenu menu) {
         return menu.getIsFrame().equals(UserConstants.NO_FRAME) && StringUtils.ishttp(menu.getPath());
     }
 
     /**
      * 是否为parent_view组件
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
-    public boolean isParentView(SysMenu menu)
-    {
+    public boolean isParentView(SysMenu menu) {
         return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType());
     }
 
     /**
      * 根据父节点的ID获取所有子节点
-     * 
-     * @param list 分类表
+     *
+     * @param list     分类表
      * @param parentId 传入的父节点ID
      * @return String
      */
-    public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId)
-    {
+    public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) {
         List<SysMenu> returnList = new ArrayList<SysMenu>();
-        for (Iterator<SysMenu> iterator = list.iterator(); iterator.hasNext();)
-        {
+        for (Iterator<SysMenu> iterator = list.iterator(); iterator.hasNext(); ) {
             SysMenu t = (SysMenu) iterator.next();
             // 一、根据传入的某个父节点ID,遍历该父节点的所有子节点
-            if (t.getParentId() == parentId)
-            {
+            if (t.getParentId() == parentId) {
                 recursionFn(list, t);
                 returnList.add(t);
             }
@@ -474,19 +418,16 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 递归列表
-     * 
+     *
      * @param list 分类表
-     * @param t 子节点
+     * @param t    子节点
      */
-    private void recursionFn(List<SysMenu> list, SysMenu t)
-    {
+    private void recursionFn(List<SysMenu> list, SysMenu t) {
         // 得到子节点列表
         List<SysMenu> childList = getChildList(list, t);
         t.setChildren(childList);
-        for (SysMenu tChild : childList)
-        {
-            if (hasChild(list, tChild))
-            {
+        for (SysMenu tChild : childList) {
+            if (hasChild(list, tChild)) {
                 recursionFn(list, tChild);
             }
         }
@@ -495,15 +436,12 @@ public class SysMenuServiceImpl implements ISysMenuService
     /**
      * 得到子节点列表
      */
-    private List<SysMenu> getChildList(List<SysMenu> list, SysMenu t)
-    {
+    private List<SysMenu> getChildList(List<SysMenu> list, SysMenu t) {
         List<SysMenu> tlist = new ArrayList<SysMenu>();
         Iterator<SysMenu> it = list.iterator();
-        while (it.hasNext())
-        {
+        while (it.hasNext()) {
             SysMenu n = (SysMenu) it.next();
-            if (n.getParentId().longValue() == t.getMenuId().longValue())
-            {
+            if (n.getParentId().longValue() == t.getMenuId().longValue()) {
                 tlist.add(n);
             }
         }
@@ -513,19 +451,16 @@ public class SysMenuServiceImpl implements ISysMenuService
     /**
      * 判断是否有子节点
      */
-    private boolean hasChild(List<SysMenu> list, SysMenu t)
-    {
+    private boolean hasChild(List<SysMenu> list, SysMenu t) {
         return getChildList(list, t).size() > 0;
     }
 
     /**
      * 内链域名特殊字符替换
-     * 
+     *
      * @return 替换后的内链域名
      */
-    public String innerLinkReplaceEach(String path)
-    {
-        return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS, Constants.WWW, ".", ":" },
-                new String[] { "", "", "", "/", "/" });
+    public String innerLinkReplaceEach(String path) {
+        return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS, Constants.WWW, ".", ":"}, new String[]{"", "", "", "/", "/"});
     }
 }
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml
index ca39f47..a1a876a 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml
@@ -1,96 +1,105 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysConfigMapper">
-    
-    <resultMap type="SysConfig" id="SysConfigResult">
-    	<id     property="configId"      column="config_id"      />
-        <result property="configName"    column="config_name"    />
-        <result property="configKey"     column="config_key"     />
-        <result property="configValue"   column="config_value"   />
-        <result property="configType"    column="config_type"    />
-        <result property="createBy"      column="create_by"      />
-        <result property="createTime"    column="create_time"    />
-        <result property="updateBy"      column="update_by"      />
-        <result property="updateTime"    column="update_time"    />
+
+    <resultMap type="com.ruoyi.system.domain.SysConfig" id="SysConfigResult">
+        <id property="configId" column="config_id"/>
+        <result property="configName" column="config_name"/>
+        <result property="configKey" column="config_key"/>
+        <result property="configValue" column="config_value"/>
+        <result property="configType" column="config_type"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
     </resultMap>
-    
+
     <sql id="selectConfigVo">
-        select config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark 
-		from sys_config
+        select config_id,
+               config_name,
+               config_key,
+               config_value,
+               config_type,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from sys_config
     </sql>
-    
+
     <!-- 查询条件 -->
-	<sql id="sqlwhereSearch">
-		<where>
-			<if test="configId !=null">
-				and config_id = #{configId}
-			</if>
-			<if test="configKey !=null and configKey != ''">
-				and config_key = #{configKey}
-			</if>
-		</where>
-	</sql>
-    
-    <select id="selectConfig" parameterType="SysConfig" resultMap="SysConfigResult">
+    <sql id="sqlwhereSearch">
+        <where>
+            <if test="configId !=null">
+                and config_id = #{configId}
+            </if>
+            <if test="configKey !=null and configKey != ''">
+                and config_key = #{configKey}
+            </if>
+        </where>
+    </sql>
+
+    <select id="selectConfig" parameterType="com.ruoyi.system.domain.SysConfig" resultMap="SysConfigResult">
         <include refid="selectConfigVo"/>
         <include refid="sqlwhereSearch"/>
     </select>
-    
-    <select id="selectConfigList" parameterType="SysConfig" resultMap="SysConfigResult">
+
+    <select id="selectConfigList" parameterType="com.ruoyi.system.domain.SysConfig" resultMap="SysConfigResult">
         <include refid="selectConfigVo"/>
         <where>
-			<if test="configName != null and configName != ''">
-				AND config_name like concat('%', #{configName}, '%')
-			</if>
-			<if test="configType != null and configType != ''">
-				AND config_type = #{configType}
-			</if>
-			<if test="configKey != null and configKey != ''">
-				AND config_key like concat('%', #{configKey}, '%')
-			</if>
-			<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
-				and date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
-			</if>
-			<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
-				and date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
-			</if>
-		</where>
+            <if test="configName != null and configName != ''">
+                AND config_name like concat('%', #{configName}, '%')
+            </if>
+            <if test="configType != null and configType != ''">
+                AND config_type = #{configType}
+            </if>
+            <if test="configKey != null and configKey != ''">
+                AND config_key like concat('%', #{configKey}, '%')
+            </if>
+            <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
+                and date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
+            </if>
+            <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
+                and date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
+            </if>
+        </where>
     </select>
-    
+
     <select id="selectConfigById" parameterType="Long" resultMap="SysConfigResult">
         <include refid="selectConfigVo"/>
         where config_id = #{configId}
     </select>
-	
+
     <select id="checkConfigKeyUnique" parameterType="String" resultMap="SysConfigResult">
         <include refid="selectConfigVo"/>
         where config_key = #{configKey} limit 1
     </select>
-    
-    <insert id="insertConfig" parameterType="SysConfig">
+
+    <insert id="insertConfig" parameterType="com.ruoyi.system.domain.SysConfig">
         insert into sys_config (
-			<if test="configName != null and configName != '' ">config_name,</if>
-			<if test="configKey != null and configKey != '' ">config_key,</if>
-			<if test="configValue != null and configValue != '' ">config_value,</if>
-			<if test="configType != null and configType != '' ">config_type,</if>
-			<if test="createBy != null and createBy != ''">create_by,</if>
-			<if test="remark != null and remark != ''">remark,</if>
- 			create_time
+        <if test="configName != null and configName != '' ">config_name,</if>
+        <if test="configKey != null and configKey != '' ">config_key,</if>
+        <if test="configValue != null and configValue != '' ">config_value,</if>
+        <if test="configType != null and configType != '' ">config_type,</if>
+        <if test="createBy != null and createBy != ''">create_by,</if>
+        <if test="remark != null and remark != ''">remark,</if>
+        create_time
         )values(
-			<if test="configName != null and configName != ''">#{configName},</if>
-			<if test="configKey != null and configKey != ''">#{configKey},</if>
-			<if test="configValue != null and configValue != ''">#{configValue},</if>
-			<if test="configType != null and configType != ''">#{configType},</if>
-			<if test="createBy != null and createBy != ''">#{createBy},</if>
-			<if test="remark != null and remark != ''">#{remark},</if>
- 			sysdate()
-		)
+        <if test="configName != null and configName != ''">#{configName},</if>
+        <if test="configKey != null and configKey != ''">#{configKey},</if>
+        <if test="configValue != null and configValue != ''">#{configValue},</if>
+        <if test="configType != null and configType != ''">#{configType},</if>
+        <if test="createBy != null and createBy != ''">#{createBy},</if>
+        <if test="remark != null and remark != ''">#{remark},</if>
+        sysdate()
+        )
     </insert>
-	 
-    <update id="updateConfig" parameterType="SysConfig">
-        update sys_config 
+
+    <update id="updateConfig" parameterType="com.ruoyi.system.domain.SysConfig">
+        update sys_config
         <set>
             <if test="configName != null and configName != ''">config_name = #{configName},</if>
             <if test="configKey != null and configKey != ''">config_key = #{configKey},</if>
@@ -98,20 +107,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="configType != null and configType != ''">config_type = #{configType},</if>
             <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
             <if test="remark != null">remark = #{remark},</if>
- 			update_time = sysdate()
+            update_time = sysdate()
         </set>
         where config_id = #{configId}
     </update>
-	
+
     <delete id="deleteConfigById" parameterType="Long">
-        delete from sys_config where config_id = #{configId}
+        delete
+        from sys_config
+        where config_id = #{configId}
     </delete>
-    
+
     <delete id="deleteConfigByIds" parameterType="Long">
-        delete from sys_config where config_id in 
+        delete from sys_config where config_id in
         <foreach item="configId" collection="array" open="(" separator="," close=")">
-        	#{configId}
+            #{configId}
         </foreach>
     </delete>
-    
+
 </mapper>
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
index cf439f6..87575be 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -1,159 +1,193 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysDeptMapper">
 
-	<resultMap type="SysDept" id="SysDeptResult">
-		<id     property="deptId"     column="dept_id"     />
-		<result property="parentId"   column="parent_id"   />
-		<result property="ancestors"  column="ancestors"   />
-		<result property="deptName"   column="dept_name"   />
-		<result property="orderNum"   column="order_num"   />
-		<result property="leader"     column="leader"      />
-		<result property="phone"      column="phone"       />
-		<result property="email"      column="email"       />
-		<result property="status"     column="status"      />
-		<result property="delFlag"    column="del_flag"    />
-		<result property="parentName" column="parent_name" />
-		<result property="createBy"   column="create_by"   />
-		<result property="createTime" column="create_time" />
-		<result property="updateBy"   column="update_by"   />
-		<result property="updateTime" column="update_time" />
-	</resultMap>
-	
-	<sql id="selectDeptVo">
-        select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time 
+    <resultMap type="com.ruoyi.common.core.domain.entity.SysDept" id="SysDeptResult">
+        <id property="deptId" column="dept_id"/>
+        <result property="parentId" column="parent_id"/>
+        <result property="ancestors" column="ancestors"/>
+        <result property="deptName" column="dept_name"/>
+        <result property="orderNum" column="order_num"/>
+        <result property="leader" column="leader"/>
+        <result property="phone" column="phone"/>
+        <result property="email" column="email"/>
+        <result property="status" column="status"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="parentName" column="parent_name"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+    <sql id="selectDeptVo">
+        select d.dept_id,
+               d.parent_id,
+               d.ancestors,
+               d.dept_name,
+               d.order_num,
+               d.leader,
+               d.phone,
+               d.email,
+               d.status,
+               d.del_flag,
+               d.create_by,
+               d.create_time
         from sys_dept d
     </sql>
-    
-	<select id="selectDeptList" parameterType="SysDept" resultMap="SysDeptResult">
+
+    <select id="selectDeptList" parameterType="com.ruoyi.common.core.domain.entity.SysDept" resultMap="SysDeptResult">
         <include refid="selectDeptVo"/>
         where d.del_flag = '0'
-		<if test="deptId != null and deptId != 0">
-			AND dept_id = #{deptId}
-		</if>
+        <if test="deptId != null and deptId != 0">
+            AND dept_id = #{deptId}
+        </if>
         <if test="parentId != null and parentId != 0">
-			AND parent_id = #{parentId}
-		</if>
-		<if test="deptName != null and deptName != ''">
-			AND dept_name like concat('%', #{deptName}, '%')
-		</if>
-		<if test="status != null and status != ''">
-			AND status = #{status}
-		</if>
-		<!-- 数据范围过滤 -->
-		${params.dataScope}
-		order by d.parent_id, d.order_num
+            AND parent_id = #{parentId}
+        </if>
+        <if test="deptName != null and deptName != ''">
+            AND dept_name like concat('%', #{deptName}, '%')
+        </if>
+        <if test="status != null and status != ''">
+            AND status = #{status}
+        </if>
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
+        order by d.parent_id, d.order_num
     </select>
-    
+
     <select id="selectDeptListByRoleId" resultType="Long">
-		select d.dept_id
-		from sys_dept d
-            left join sys_role_dept rd on d.dept_id = rd.dept_id
+        select d.dept_id
+        from sys_dept d
+        left join sys_role_dept rd on d.dept_id = rd.dept_id
         where rd.role_id = #{roleId}
-            <if test="deptCheckStrictly">
-              and d.dept_id not in (select d.parent_id from sys_dept d inner join sys_role_dept rd on d.dept_id = rd.dept_id and rd.role_id = #{roleId})
-            </if>
-		order by d.parent_id, d.order_num
-	</select>
-    
+        <if test="deptCheckStrictly">
+            and d.dept_id not in (select d.parent_id from sys_dept d inner join sys_role_dept rd on d.dept_id =
+            rd.dept_id and rd.role_id = #{roleId})
+        </if>
+        order by d.parent_id, d.order_num
+    </select>
+
     <select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult">
-		select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status,
-			(select dept_name from sys_dept where dept_id = d.parent_id) parent_name
-		from sys_dept d
-		where d.dept_id = #{deptId}
-	</select>
-    
+        select d.dept_id,
+               d.parent_id,
+               d.ancestors,
+               d.dept_name,
+               d.order_num,
+               d.leader,
+               d.phone,
+               d.email,
+               d.status,
+               (select dept_name from sys_dept where dept_id = d.parent_id) parent_name
+        from sys_dept d
+        where d.dept_id = #{deptId}
+    </select>
+
     <select id="checkDeptExistUser" parameterType="Long" resultType="int">
-		select count(1) from sys_user where dept_id = #{deptId} and del_flag = '0'
-	</select>
-	
-	<select id="hasChildByDeptId" parameterType="Long" resultType="int">
-		select count(1) from sys_dept
-		where del_flag = '0' and parent_id = #{deptId} limit 1
-	</select>
-	
-	<select id="selectChildrenDeptById" parameterType="Long" resultMap="SysDeptResult">
-		select * from sys_dept where find_in_set(#{deptId}, ancestors)
-	</select>
-	
-	<select id="selectNormalChildrenDeptById" parameterType="Long" resultType="int">
-		select count(*) from sys_dept where status = 0 and del_flag = '0' and find_in_set(#{deptId}, ancestors)
-	</select>
-	
-	<select id="checkDeptNameUnique" resultMap="SysDeptResult">
-	    <include refid="selectDeptVo"/>
-		where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1
-	</select>
-    
-    <insert id="insertDept" parameterType="SysDept">
- 		insert into sys_dept(
- 			<if test="deptId != null and deptId != 0">dept_id,</if>
- 			<if test="parentId != null and parentId != 0">parent_id,</if>
- 			<if test="deptName != null and deptName != ''">dept_name,</if>
- 			<if test="ancestors != null and ancestors != ''">ancestors,</if>
- 			<if test="orderNum != null">order_num,</if>
- 			<if test="leader != null and leader != ''">leader,</if>
- 			<if test="phone != null and phone != ''">phone,</if>
- 			<if test="email != null and email != ''">email,</if>
- 			<if test="status != null">status,</if>
- 			<if test="createBy != null and createBy != ''">create_by,</if>
- 			create_time
- 		)values(
- 			<if test="deptId != null and deptId != 0">#{deptId},</if>
- 			<if test="parentId != null and parentId != 0">#{parentId},</if>
- 			<if test="deptName != null and deptName != ''">#{deptName},</if>
- 			<if test="ancestors != null and ancestors != ''">#{ancestors},</if>
- 			<if test="orderNum != null">#{orderNum},</if>
- 			<if test="leader != null and leader != ''">#{leader},</if>
- 			<if test="phone != null and phone != ''">#{phone},</if>
- 			<if test="email != null and email != ''">#{email},</if>
- 			<if test="status != null">#{status},</if>
- 			<if test="createBy != null and createBy != ''">#{createBy},</if>
- 			sysdate()
- 		)
-	</insert>
-	
-	<update id="updateDept" parameterType="SysDept">
- 		update sys_dept
- 		<set>
- 			<if test="parentId != null and parentId != 0">parent_id = #{parentId},</if>
- 			<if test="deptName != null and deptName != ''">dept_name = #{deptName},</if>
- 			<if test="ancestors != null and ancestors != ''">ancestors = #{ancestors},</if>
- 			<if test="orderNum != null">order_num = #{orderNum},</if>
- 			<if test="leader != null">leader = #{leader},</if>
- 			<if test="phone != null">phone = #{phone},</if>
- 			<if test="email != null">email = #{email},</if>
- 			<if test="status != null and status != ''">status = #{status},</if>
- 			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
- 			update_time = sysdate()
- 		</set>
- 		where dept_id = #{deptId}
-	</update>
-	
-	<update id="updateDeptChildren" parameterType="java.util.List">
-	    update sys_dept set ancestors =
-	    <foreach collection="depts" item="item" index="index"
-	        separator=" " open="case dept_id" close="end">
-	        when #{item.deptId} then #{item.ancestors}
-	    </foreach>
-	    where dept_id in
-	    <foreach collection="depts" item="item" index="index"
-	        separator="," open="(" close=")">
-	        #{item.deptId}
-	    </foreach>
-	</update>
-	 
-	<update id="updateDeptStatusNormal" parameterType="Long">
- 	    update sys_dept set status = '0' where dept_id in 
- 	    <foreach collection="array" item="deptId" open="(" separator="," close=")">
-        	#{deptId}
+        select count(1)
+        from sys_user
+        where dept_id = #{deptId}
+          and del_flag = '0'
+    </select>
+
+    <select id="hasChildByDeptId" parameterType="Long" resultType="int">
+        select count(1)
+        from sys_dept
+        where del_flag = '0'
+          and parent_id = #{deptId}
+        limit 1
+    </select>
+
+    <select id="selectChildrenDeptById" parameterType="Long" resultMap="SysDeptResult">
+        select *
+        from sys_dept
+        where find_in_set(#{deptId}, ancestors)
+    </select>
+
+    <select id="selectNormalChildrenDeptById" parameterType="Long" resultType="int">
+        select count(*)
+        from sys_dept
+        where status = 0
+          and del_flag = '0'
+          and find_in_set(#{deptId}, ancestors)
+    </select>
+
+    <select id="checkDeptNameUnique" resultMap="SysDeptResult">
+        <include refid="selectDeptVo"/>
+        where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1
+    </select>
+
+    <insert id="insertDept" parameterType="com.ruoyi.common.core.domain.entity.SysDept">
+        insert into sys_dept(
+        <if test="deptId != null and deptId != 0">dept_id,</if>
+        <if test="parentId != null and parentId != 0">parent_id,</if>
+        <if test="deptName != null and deptName != ''">dept_name,</if>
+        <if test="ancestors != null and ancestors != ''">ancestors,</if>
+        <if test="orderNum != null">order_num,</if>
+        <if test="leader != null and leader != ''">leader,</if>
+        <if test="phone != null and phone != ''">phone,</if>
+        <if test="email != null and email != ''">email,</if>
+        <if test="status != null">status,</if>
+        <if test="createBy != null and createBy != ''">create_by,</if>
+        create_time
+        )values(
+        <if test="deptId != null and deptId != 0">#{deptId},</if>
+        <if test="parentId != null and parentId != 0">#{parentId},</if>
+        <if test="deptName != null and deptName != ''">#{deptName},</if>
+        <if test="ancestors != null and ancestors != ''">#{ancestors},</if>
+        <if test="orderNum != null">#{orderNum},</if>
+        <if test="leader != null and leader != ''">#{leader},</if>
+        <if test="phone != null and phone != ''">#{phone},</if>
+        <if test="email != null and email != ''">#{email},</if>
+        <if test="status != null">#{status},</if>
+        <if test="createBy != null and createBy != ''">#{createBy},</if>
+        sysdate()
+        )
+    </insert>
+
+    <update id="updateDept" parameterType="com.ruoyi.common.core.domain.entity.SysDept">
+        update sys_dept
+        <set>
+            <if test="parentId != null and parentId != 0">parent_id = #{parentId},</if>
+            <if test="deptName != null and deptName != ''">dept_name = #{deptName},</if>
+            <if test="ancestors != null and ancestors != ''">ancestors = #{ancestors},</if>
+            <if test="orderNum != null">order_num = #{orderNum},</if>
+            <if test="leader != null">leader = #{leader},</if>
+            <if test="phone != null">phone = #{phone},</if>
+            <if test="email != null">email = #{email},</if>
+            <if test="status != null and status != ''">status = #{status},</if>
+            <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+            update_time = sysdate()
+        </set>
+        where dept_id = #{deptId}
+    </update>
+
+    <update id="updateDeptChildren" parameterType="java.util.List">
+        update sys_dept set ancestors =
+        <foreach collection="depts" item="item" index="index"
+                 separator=" " open="case dept_id" close="end">
+            when #{item.deptId} then #{item.ancestors}
+        </foreach>
+        where dept_id in
+        <foreach collection="depts" item="item" index="index"
+                 separator="," open="(" close=")">
+            #{item.deptId}
         </foreach>
-	</update>
-	
-	<delete id="deleteDeptById" parameterType="Long">
-		update sys_dept set del_flag = '2' where dept_id = #{deptId}
-	</delete>
+    </update>
+
+    <update id="updateDeptStatusNormal" parameterType="Long">
+        update sys_dept set status = '0' where dept_id in
+        <foreach collection="array" item="deptId" open="(" separator="," close=")">
+            #{deptId}
+        </foreach>
+    </update>
+
+    <delete id="deleteDeptById" parameterType="Long">
+        update sys_dept
+        set del_flag = '2'
+        where dept_id = #{deptId}
+    </delete>
 
 </mapper> 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml
index 8da9030..6c5689a 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml
@@ -1,124 +1,145 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysDictDataMapper">
-	
-	<resultMap type="SysDictData" id="SysDictDataResult">
-		<id     property="dictCode"   column="dict_code"   />
-		<result property="dictSort"   column="dict_sort"   />
-		<result property="dictLabel"  column="dict_label"  />
-		<result property="dictValue"  column="dict_value"  />
-		<result property="dictType"   column="dict_type"   />
-		<result property="cssClass"   column="css_class"   />
-		<result property="listClass"  column="list_class"  />
-		<result property="isDefault"  column="is_default"  />
-		<result property="status"     column="status"      />
-		<result property="createBy"   column="create_by"   />
-		<result property="createTime" column="create_time" />
-		<result property="updateBy"   column="update_by"   />
-		<result property="updateTime" column="update_time" />
-	</resultMap>
-	
-	<sql id="selectDictDataVo">
-        select dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark 
-		from sys_dict_data
+
+    <resultMap type="com.ruoyi.common.core.domain.entity.SysDictData" id="SysDictDataResult">
+        <id property="dictCode" column="dict_code"/>
+        <result property="dictSort" column="dict_sort"/>
+        <result property="dictLabel" column="dict_label"/>
+        <result property="dictValue" column="dict_value"/>
+        <result property="dictType" column="dict_type"/>
+        <result property="cssClass" column="css_class"/>
+        <result property="listClass" column="list_class"/>
+        <result property="isDefault" column="is_default"/>
+        <result property="status" column="status"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+    <sql id="selectDictDataVo">
+        select dict_code,
+               dict_sort,
+               dict_label,
+               dict_value,
+               dict_type,
+               css_class,
+               list_class,
+               is_default,
+               status,
+               create_by,
+               create_time,
+               remark
+        from sys_dict_data
     </sql>
 
-	<select id="selectDictDataList" parameterType="SysDictData" resultMap="SysDictDataResult">
-	    <include refid="selectDictDataVo"/>
-		<where>
-		    <if test="dictType != null and dictType != ''">
-				AND dict_type = #{dictType}
-			</if>
-			<if test="dictLabel != null and dictLabel != ''">
-				AND dict_label like concat('%', #{dictLabel}, '%')
-			</if>
-			<if test="status != null and status != ''">
-				AND status = #{status}
-			</if>
-		</where>
-		order by dict_sort asc
-	</select>
-	
-	<select id="selectDictDataByType" parameterType="SysDictData" resultMap="SysDictDataResult">
-		<include refid="selectDictDataVo"/>
-		where status = '0' and dict_type = #{dictType} order by dict_sort asc
-	</select>
-	
-	<select id="selectDictLabel" resultType="String">
-		select dict_label from sys_dict_data
-		where dict_type = #{dictType} and dict_value = #{dictValue}
-	</select>
-	
-	<select id="selectDictDataById" parameterType="Long" resultMap="SysDictDataResult">
-		<include refid="selectDictDataVo"/>
-		where dict_code = #{dictCode}
-	</select>
-	
-	<select id="countDictDataByType" resultType="Integer">
-	    select count(1) from sys_dict_data where dict_type=#{dictType}  
-	</select>
-	
-	<delete id="deleteDictDataById" parameterType="Long">
- 		delete from sys_dict_data where dict_code = #{dictCode}
- 	</delete>
- 	
- 	<delete id="deleteDictDataByIds" parameterType="Long">
- 		delete from sys_dict_data where dict_code in
- 		<foreach collection="array" item="dictCode" open="(" separator="," close=")">
- 			#{dictCode}
-        </foreach> 
- 	</delete>
-	
-	<update id="updateDictData" parameterType="SysDictData">
- 		update sys_dict_data
- 		<set>
- 			<if test="dictSort != null">dict_sort = #{dictSort},</if>
- 			<if test="dictLabel != null and dictLabel != ''">dict_label = #{dictLabel},</if>
- 			<if test="dictValue != null and dictValue != ''">dict_value = #{dictValue},</if>
- 			<if test="dictType != null and dictType != ''">dict_type = #{dictType},</if>
- 			<if test="cssClass != null">css_class = #{cssClass},</if>
- 			<if test="listClass != null">list_class = #{listClass},</if>
- 			<if test="isDefault != null and isDefault != ''">is_default = #{isDefault},</if>
- 			<if test="status != null">status = #{status},</if>
- 			<if test="remark != null">remark = #{remark},</if>
- 			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
- 			update_time = sysdate()
- 		</set>
- 		where dict_code = #{dictCode}
-	</update>
-	
-	<update id="updateDictDataType" parameterType="String">
- 		update sys_dict_data set dict_type = #{newDictType} where dict_type = #{oldDictType}
-	</update>
- 	
- 	<insert id="insertDictData" parameterType="SysDictData">
- 		insert into sys_dict_data(
- 			<if test="dictSort != null">dict_sort,</if>
- 			<if test="dictLabel != null and dictLabel != ''">dict_label,</if>
- 			<if test="dictValue != null and dictValue != ''">dict_value,</if>
- 			<if test="dictType != null and dictType != ''">dict_type,</if>
- 			<if test="cssClass != null and cssClass != ''">css_class,</if>
- 			<if test="listClass != null and listClass != ''">list_class,</if>
- 			<if test="isDefault != null and isDefault != ''">is_default,</if>
- 			<if test="status != null">status,</if>
- 			<if test="remark != null and remark != ''">remark,</if>
- 			<if test="createBy != null and createBy != ''">create_by,</if>
- 			create_time
- 		)values(
- 		    <if test="dictSort != null">#{dictSort},</if>
- 		    <if test="dictLabel != null and dictLabel != ''">#{dictLabel},</if>
- 			<if test="dictValue != null and dictValue != ''">#{dictValue},</if>
- 			<if test="dictType != null and dictType != ''">#{dictType},</if>
- 			<if test="cssClass != null and cssClass != ''">#{cssClass},</if>
- 			<if test="listClass != null and listClass != ''">#{listClass},</if>
- 			<if test="isDefault != null and isDefault != ''">#{isDefault},</if>
- 			<if test="status != null">#{status},</if>
- 			<if test="remark != null and remark != ''">#{remark},</if>
- 			<if test="createBy != null and createBy != ''">#{createBy},</if>
- 			sysdate()
- 		)
-	</insert>
-	
+    <select id="selectDictDataList" parameterType="com.ruoyi.common.core.domain.entity.SysDictData"
+            resultMap="SysDictDataResult">
+        <include refid="selectDictDataVo"/>
+        <where>
+            <if test="dictType != null and dictType != ''">
+                AND dict_type = #{dictType}
+            </if>
+            <if test="dictLabel != null and dictLabel != ''">
+                AND dict_label like concat('%', #{dictLabel}, '%')
+            </if>
+            <if test="status != null and status != ''">
+                AND status = #{status}
+            </if>
+        </where>
+        order by dict_sort asc
+    </select>
+
+    <select id="selectDictDataByType" parameterType="com.ruoyi.common.core.domain.entity.SysDictData"
+            resultMap="SysDictDataResult">
+        <include refid="selectDictDataVo"/>
+        where status = '0' and dict_type = #{dictType} order by dict_sort asc
+    </select>
+
+    <select id="selectDictLabel" resultType="String">
+        select dict_label
+        from sys_dict_data
+        where dict_type = #{dictType}
+          and dict_value = #{dictValue}
+    </select>
+
+    <select id="selectDictDataById" parameterType="Long" resultMap="SysDictDataResult">
+        <include refid="selectDictDataVo"/>
+        where dict_code = #{dictCode}
+    </select>
+
+    <select id="countDictDataByType" resultType="Integer">
+        select count(1)
+        from sys_dict_data
+        where dict_type = #{dictType}
+    </select>
+
+    <delete id="deleteDictDataById" parameterType="Long">
+        delete
+        from sys_dict_data
+        where dict_code = #{dictCode}
+    </delete>
+
+    <delete id="deleteDictDataByIds" parameterType="Long">
+        delete from sys_dict_data where dict_code in
+        <foreach collection="array" item="dictCode" open="(" separator="," close=")">
+            #{dictCode}
+        </foreach>
+    </delete>
+
+    <update id="updateDictData" parameterType="com.ruoyi.common.core.domain.entity.SysDictData">
+        update sys_dict_data
+        <set>
+            <if test="dictSort != null">dict_sort = #{dictSort},</if>
+            <if test="dictLabel != null and dictLabel != ''">dict_label = #{dictLabel},</if>
+            <if test="dictValue != null and dictValue != ''">dict_value = #{dictValue},</if>
+            <if test="dictType != null and dictType != ''">dict_type = #{dictType},</if>
+            <if test="cssClass != null">css_class = #{cssClass},</if>
+            <if test="listClass != null">list_class = #{listClass},</if>
+            <if test="isDefault != null and isDefault != ''">is_default = #{isDefault},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+            update_time = sysdate()
+        </set>
+        where dict_code = #{dictCode}
+    </update>
+
+    <update id="updateDictDataType" parameterType="String">
+        update sys_dict_data
+        set dict_type = #{newDictType}
+        where dict_type = #{oldDictType}
+    </update>
+
+    <insert id="insertDictData" parameterType="com.ruoyi.common.core.domain.entity.SysDictData">
+        insert into sys_dict_data(
+        <if test="dictSort != null">dict_sort,</if>
+        <if test="dictLabel != null and dictLabel != ''">dict_label,</if>
+        <if test="dictValue != null and dictValue != ''">dict_value,</if>
+        <if test="dictType != null and dictType != ''">dict_type,</if>
+        <if test="cssClass != null and cssClass != ''">css_class,</if>
+        <if test="listClass != null and listClass != ''">list_class,</if>
+        <if test="isDefault != null and isDefault != ''">is_default,</if>
+        <if test="status != null">status,</if>
+        <if test="remark != null and remark != ''">remark,</if>
+        <if test="createBy != null and createBy != ''">create_by,</if>
+        create_time
+        )values(
+        <if test="dictSort != null">#{dictSort},</if>
+        <if test="dictLabel != null and dictLabel != ''">#{dictLabel},</if>
+        <if test="dictValue != null and dictValue != ''">#{dictValue},</if>
+        <if test="dictType != null and dictType != ''">#{dictType},</if>
+        <if test="cssClass != null and cssClass != ''">#{cssClass},</if>
+        <if test="listClass != null and listClass != ''">#{listClass},</if>
+        <if test="isDefault != null and isDefault != ''">#{isDefault},</if>
+        <if test="status != null">#{status},</if>
+        <if test="remark != null and remark != ''">#{remark},</if>
+        <if test="createBy != null and createBy != ''">#{createBy},</if>
+        sysdate()
+        )
+    </insert>
+
 </mapper> 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
index 55b4075..36daeed 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
@@ -1,105 +1,108 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysDictTypeMapper">
 
-	<resultMap type="SysDictType" id="SysDictTypeResult">
-		<id     property="dictId"     column="dict_id"     />
-		<result property="dictName"   column="dict_name"   />
-		<result property="dictType"   column="dict_type"   />
-		<result property="status"     column="status"      />
-		<result property="createBy"   column="create_by"   />
-		<result property="createTime" column="create_time" />
-		<result property="updateBy"   column="update_by"   />
-		<result property="updateTime" column="update_time" />
-	</resultMap>
-	
-	<sql id="selectDictTypeVo">
-        select dict_id, dict_name, dict_type, status, create_by, create_time, remark 
-		from sys_dict_type
+    <resultMap type="com.ruoyi.common.core.domain.entity.SysDictType" id="SysDictTypeResult">
+        <id property="dictId" column="dict_id"/>
+        <result property="dictName" column="dict_name"/>
+        <result property="dictType" column="dict_type"/>
+        <result property="status" column="status"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+    <sql id="selectDictTypeVo">
+        select dict_id, dict_name, dict_type, status, create_by, create_time, remark
+        from sys_dict_type
     </sql>
 
-	<select id="selectDictTypeList" parameterType="SysDictType" resultMap="SysDictTypeResult">
-	    <include refid="selectDictTypeVo"/>
-		<where>
-		    <if test="dictName != null and dictName != ''">
-				AND dict_name like concat('%', #{dictName}, '%')
-			</if>
-			<if test="status != null and status != ''">
-				AND status = #{status}
-			</if>
-			<if test="dictType != null and dictType != ''">
-				AND dict_type like concat('%', #{dictType}, '%')
-			</if>
-			<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
-				and date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
-			</if>
-			<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
-				and date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
-			</if>
-	    </where>
-	</select>
-	
-	<select id="selectDictTypeAll" resultMap="SysDictTypeResult">
-		<include refid="selectDictTypeVo"/>
-	</select>
-	
-	<select id="selectDictTypeById" parameterType="Long" resultMap="SysDictTypeResult">
-		<include refid="selectDictTypeVo"/>
-		where dict_id = #{dictId}
-	</select>
-	
-	<select id="selectDictTypeByType" parameterType="String" resultMap="SysDictTypeResult">
-		<include refid="selectDictTypeVo"/>
-		where dict_type = #{dictType}
-	</select>
-	
-	<select id="checkDictTypeUnique" parameterType="String" resultMap="SysDictTypeResult">
-		<include refid="selectDictTypeVo"/>
-		where dict_type = #{dictType} limit 1
-	</select>
-	
-	<delete id="deleteDictTypeById" parameterType="Long">
- 		delete from sys_dict_type where dict_id = #{dictId}
- 	</delete>
- 	
- 	<delete id="deleteDictTypeByIds" parameterType="Long">
- 		delete from sys_dict_type where dict_id in
- 		<foreach collection="array" item="dictId" open="(" separator="," close=")">
- 			#{dictId}
-        </foreach> 
- 	</delete>
+    <select id="selectDictTypeList" parameterType="com.ruoyi.common.core.domain.entity.SysDictType"
+            resultMap="SysDictTypeResult">
+        <include refid="selectDictTypeVo"/>
+        <where>
+            <if test="dictName != null and dictName != ''">
+                AND dict_name like concat('%', #{dictName}, '%')
+            </if>
+            <if test="status != null and status != ''">
+                AND status = #{status}
+            </if>
+            <if test="dictType != null and dictType != ''">
+                AND dict_type like concat('%', #{dictType}, '%')
+            </if>
+            <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
+                and date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
+            </if>
+            <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
+                and date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
+            </if>
+        </where>
+    </select>
+
+    <select id="selectDictTypeAll" resultMap="SysDictTypeResult">
+        <include refid="selectDictTypeVo"/>
+    </select>
+
+    <select id="selectDictTypeById" parameterType="Long" resultMap="SysDictTypeResult">
+        <include refid="selectDictTypeVo"/>
+        where dict_id = #{dictId}
+    </select>
+
+    <select id="selectDictTypeByType" parameterType="String" resultMap="SysDictTypeResult">
+        <include refid="selectDictTypeVo"/>
+        where dict_type = #{dictType}
+    </select>
+
+    <select id="checkDictTypeUnique" parameterType="String" resultMap="SysDictTypeResult">
+        <include refid="selectDictTypeVo"/>
+        where dict_type = #{dictType} limit 1
+    </select>
+
+    <delete id="deleteDictTypeById" parameterType="Long">
+        delete
+        from sys_dict_type
+        where dict_id = #{dictId}
+    </delete>
+
+    <delete id="deleteDictTypeByIds" parameterType="Long">
+        delete from sys_dict_type where dict_id in
+        <foreach collection="array" item="dictId" open="(" separator="," close=")">
+            #{dictId}
+        </foreach>
+    </delete>
+
+    <update id="updateDictType" parameterType="com.ruoyi.common.core.domain.entity.SysDictType">
+        update sys_dict_type
+        <set>
+            <if test="dictName != null and dictName != ''">dict_name = #{dictName},</if>
+            <if test="dictType != null and dictType != ''">dict_type = #{dictType},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+            update_time = sysdate()
+        </set>
+        where dict_id = #{dictId}
+    </update>
+
+    <insert id="insertDictType" parameterType="com.ruoyi.common.core.domain.entity.SysDictType">
+        insert into sys_dict_type(
+        <if test="dictName != null and dictName != ''">dict_name,</if>
+        <if test="dictType != null and dictType != ''">dict_type,</if>
+        <if test="status != null">status,</if>
+        <if test="remark != null and remark != ''">remark,</if>
+        <if test="createBy != null and createBy != ''">create_by,</if>
+        create_time
+        )values(
+        <if test="dictName != null and dictName != ''">#{dictName},</if>
+        <if test="dictType != null and dictType != ''">#{dictType},</if>
+        <if test="status != null">#{status},</if>
+        <if test="remark != null and remark != ''">#{remark},</if>
+        <if test="createBy != null and createBy != ''">#{createBy},</if>
+        sysdate()
+        )
+    </insert>
 
- 	<update id="updateDictType" parameterType="SysDictType">
- 		update sys_dict_type
- 		<set>
- 			<if test="dictName != null and dictName != ''">dict_name = #{dictName},</if>
- 			<if test="dictType != null and dictType != ''">dict_type = #{dictType},</if>
- 			<if test="status != null">status = #{status},</if>
- 			<if test="remark != null">remark = #{remark},</if>
- 			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
- 			update_time = sysdate()
- 		</set>
- 		where dict_id = #{dictId}
-	</update>
- 	
- 	<insert id="insertDictType" parameterType="SysDictType">
- 		insert into sys_dict_type(
- 			<if test="dictName != null and dictName != ''">dict_name,</if>
- 			<if test="dictType != null and dictType != ''">dict_type,</if>
- 			<if test="status != null">status,</if>
- 			<if test="remark != null and remark != ''">remark,</if>
- 			<if test="createBy != null and createBy != ''">create_by,</if>
- 			create_time
- 		)values(
- 			<if test="dictName != null and dictName != ''">#{dictName},</if>
- 			<if test="dictType != null and dictType != ''">#{dictType},</if>
- 			<if test="status != null">#{status},</if>
- 			<if test="remark != null and remark != ''">#{remark},</if>
- 			<if test="createBy != null and createBy != ''">#{createBy},</if>
- 			sysdate()
- 		)
-	</insert>
-	
 </mapper> 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml
index 822d665..6078a04 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml
@@ -1,57 +1,58 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysLogininforMapper">
 
-	<resultMap type="SysLogininfor" id="SysLogininforResult">
-		<id     property="infoId"        column="info_id"           />
-		<result property="userName"      column="user_name"         />
-		<result property="status"        column="status"            />
-		<result property="ipaddr"        column="ipaddr"            />
-		<result property="loginLocation" column="login_location"    />
-		<result property="browser"       column="browser"           />
-		<result property="os"            column="os"                />
-		<result property="msg"           column="msg"               />
-		<result property="loginTime"     column="login_time"        />
-	</resultMap>
+    <resultMap type="com.ruoyi.system.domain.SysLogininfor" id="SysLogininforResult">
+        <id property="infoId" column="info_id"/>
+        <result property="userName" column="user_name"/>
+        <result property="status" column="status"/>
+        <result property="ipaddr" column="ipaddr"/>
+        <result property="loginLocation" column="login_location"/>
+        <result property="browser" column="browser"/>
+        <result property="os" column="os"/>
+        <result property="msg" column="msg"/>
+        <result property="loginTime" column="login_time"/>
+    </resultMap>
+
+    <insert id="insertLogininfor" parameterType="com.ruoyi.system.domain.SysLogininfor">
+        insert into sys_logininfor (user_name, status, ipaddr, login_location, browser, os, msg, login_time)
+        values (#{userName}, #{status}, #{ipaddr}, #{loginLocation}, #{browser}, #{os}, #{msg}, sysdate())
+    </insert>
+
+    <select id="selectLogininforList" parameterType="com.ruoyi.system.domain.SysLogininfor"
+            resultMap="SysLogininforResult">
+        select info_id, user_name, ipaddr, login_location, browser, os, status, msg, login_time from sys_logininfor
+        <where>
+            <if test="ipaddr != null and ipaddr != ''">
+                AND ipaddr like concat('%', #{ipaddr}, '%')
+            </if>
+            <if test="status != null and status != ''">
+                AND status = #{status}
+            </if>
+            <if test="userName != null and userName != ''">
+                AND user_name like concat('%', #{userName}, '%')
+            </if>
+            <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
+                AND login_time &gt;= #{params.beginTime}
+            </if>
+            <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
+                AND login_time &lt;= #{params.endTime}
+            </if>
+        </where>
+        order by info_id desc
+    </select>
+
+    <delete id="deleteLogininforByIds" parameterType="Long">
+        delete from sys_logininfor where info_id in
+        <foreach collection="array" item="infoId" open="(" separator="," close=")">
+            #{infoId}
+        </foreach>
+    </delete>
 
-	<insert id="insertLogininfor" parameterType="SysLogininfor">
-		insert into sys_logininfor (user_name, status, ipaddr, login_location, browser, os, msg, login_time)
-		values (#{userName}, #{status}, #{ipaddr}, #{loginLocation}, #{browser}, #{os}, #{msg}, sysdate())
-	</insert>
-	
-	<select id="selectLogininforList" parameterType="SysLogininfor" resultMap="SysLogininforResult">
-		select info_id, user_name, ipaddr, login_location, browser, os, status, msg, login_time from sys_logininfor
-		<where>
-			<if test="ipaddr != null and ipaddr != ''">
-				AND ipaddr like concat('%', #{ipaddr}, '%')
-			</if>
-			<if test="status != null and status != ''">
-				AND status = #{status}
-			</if>
-			<if test="userName != null and userName != ''">
-				AND user_name like concat('%', #{userName}, '%')
-			</if>
-			<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
-				AND login_time &gt;= #{params.beginTime}
-			</if>
-			<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
-				AND login_time &lt;= #{params.endTime}
-			</if>
-		</where>
-		order by info_id desc
-	</select>
-	
-	<delete id="deleteLogininforByIds" parameterType="Long">
- 		delete from sys_logininfor where info_id in
- 		<foreach collection="array" item="infoId" open="(" separator="," close=")">
- 			#{infoId}
-        </foreach> 
- 	</delete>
-    
     <update id="cleanLogininfor">
         truncate table sys_logininfor
     </update>
-    
+
 </mapper> 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
index 6762007..8ced201 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
@@ -1,202 +1,260 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysMenuMapper">
 
-	<resultMap type="SysMenu" id="SysMenuResult">
-		<id     property="menuId"         column="menu_id"        />
-		<result property="menuName"       column="menu_name"      />
-		<result property="parentName"     column="parent_name"    />
-		<result property="parentId"       column="parent_id"      />
-		<result property="orderNum"       column="order_num"      />
-		<result property="path"           column="path"           />
-		<result property="component"      column="component"      />
-		<result property="query"          column="query"          />
-		<result property="isFrame"        column="is_frame"       />
-		<result property="isCache"        column="is_cache"       />
-		<result property="menuType"       column="menu_type"      />
-		<result property="visible"        column="visible"        />
-		<result property="status"         column="status"         />
-		<result property="perms"          column="perms"          />
-		<result property="icon"           column="icon"           />
-		<result property="createBy"       column="create_by"      />
-		<result property="createTime"     column="create_time"    />
-		<result property="updateTime"     column="update_time"    />
-		<result property="updateBy"       column="update_by"      />
-		<result property="remark"         column="remark"         />
-	</resultMap>
-
-	<sql id="selectMenuVo">
-        select menu_id, menu_name, parent_id, order_num, path, component, `query`, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time 
-		from sys_menu
+    <resultMap type="com.ruoyi.common.core.domain.entity.SysMenu" id="SysMenuResult">
+        <id property="menuId" column="menu_id"/>
+        <result property="menuName" column="menu_name"/>
+        <result property="parentName" column="parent_name"/>
+        <result property="parentId" column="parent_id"/>
+        <result property="orderNum" column="order_num"/>
+        <result property="path" column="path"/>
+        <result property="component" column="component"/>
+        <result property="query" column="query"/>
+        <result property="isFrame" column="is_frame"/>
+        <result property="isCache" column="is_cache"/>
+        <result property="menuType" column="menu_type"/>
+        <result property="visible" column="visible"/>
+        <result property="status" column="status"/>
+        <result property="perms" column="perms"/>
+        <result property="icon" column="icon"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectMenuVo">
+        select menu_id,
+               menu_name,
+               parent_id,
+               order_num,
+               path,
+               component,
+               `query`,
+               is_frame,
+               is_cache,
+               menu_type,
+               visible,
+               status,
+               ifnull(perms, '') as perms,
+               icon,
+               create_time
+        from sys_menu
     </sql>
-    
-    <select id="selectMenuList" parameterType="SysMenu" resultMap="SysMenuResult">
-		<include refid="selectMenuVo"/>
-		<where>
-			<if test="menuName != null and menuName != ''">
-				AND menu_name like concat('%', #{menuName}, '%')
-			</if>
-			<if test="visible != null and visible != ''">
-				AND visible = #{visible}
-			</if>
-			<if test="status != null and status != ''">
-				AND status = #{status}
-			</if>
-		</where>
-		order by parent_id, order_num
-	</select>
-	
-	<select id="selectMenuTreeAll" resultMap="SysMenuResult">
-		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
-		from sys_menu m where m.menu_type in ('M', 'C') and m.status = 0
-		order by m.parent_id, m.order_num
-	</select>
-	
-	<select id="selectMenuListByUserId" parameterType="SysMenu" resultMap="SysMenuResult">
-		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
-		from sys_menu m
-		left join sys_role_menu rm on m.menu_id = rm.menu_id
-		left join sys_user_role ur on rm.role_id = ur.role_id
-		left join sys_role ro on ur.role_id = ro.role_id
-		where ur.user_id = #{params.userId}
-		<if test="menuName != null and menuName != ''">
+
+    <select id="selectMenuList" parameterType="com.ruoyi.common.core.domain.entity.SysMenu" resultMap="SysMenuResult">
+        <include refid="selectMenuVo"/>
+        <where>
+            <if test="menuName != null and menuName != ''">
+                AND menu_name like concat('%', #{menuName}, '%')
+            </if>
+            <if test="visible != null and visible != ''">
+                AND visible = #{visible}
+            </if>
+            <if test="status != null and status != ''">
+                AND status = #{status}
+            </if>
+        </where>
+        order by parent_id, order_num
+    </select>
+
+    <select id="selectMenuTreeAll" resultMap="SysMenuResult">
+        select distinct m.menu_id,
+                        m.parent_id,
+                        m.menu_name,
+                        m.path,
+                        m.component,
+                        m.`query`,
+                        m.visible,
+                        m.status,
+                        ifnull(m.perms, '') as perms,
+                        m.is_frame,
+                        m.is_cache,
+                        m.menu_type,
+                        m.icon,
+                        m.order_num,
+                        m.create_time
+        from sys_menu m
+        where m.menu_type in ('M', 'C')
+          and m.status = 0
+        order by m.parent_id, m.order_num
+    </select>
+
+    <select id="selectMenuListByUserId" parameterType="com.ruoyi.common.core.domain.entity.SysMenu"
+            resultMap="SysMenuResult">
+        select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status,
+        ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
+        from sys_menu m
+        left join sys_role_menu rm on m.menu_id = rm.menu_id
+        left join sys_user_role ur on rm.role_id = ur.role_id
+        left join sys_role ro on ur.role_id = ro.role_id
+        where ur.user_id = #{params.userId}
+        <if test="menuName != null and menuName != ''">
             AND m.menu_name like concat('%', #{menuName}, '%')
-		</if>
-		<if test="visible != null and visible != ''">
+        </if>
+        <if test="visible != null and visible != ''">
             AND m.visible = #{visible}
-		</if>
-		<if test="status != null and status != ''">
+        </if>
+        <if test="status != null and status != ''">
             AND m.status = #{status}
-		</if>
-		order by m.parent_id, m.order_num
-	</select>
-    
+        </if>
+        order by m.parent_id, m.order_num
+    </select>
+
     <select id="selectMenuTreeByUserId" parameterType="Long" resultMap="SysMenuResult">
-		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
-		from sys_menu m
-			 left join sys_role_menu rm on m.menu_id = rm.menu_id
-			 left join sys_user_role ur on rm.role_id = ur.role_id
-			 left join sys_role ro on ur.role_id = ro.role_id
-			 left join sys_user u on ur.user_id = u.user_id
-		where u.user_id = #{userId} and m.menu_type in ('M', 'C') and m.status = 0  AND ro.status = 0
-		order by m.parent_id, m.order_num
-	</select>
-	
-	<select id="selectMenuListByRoleId" resultType="Long">
-		select m.menu_id
-		from sys_menu m
-            left join sys_role_menu rm on m.menu_id = rm.menu_id
+        select distinct m.menu_id,
+                        m.parent_id,
+                        m.menu_name,
+                        m.path,
+                        m.component,
+                        m.`query`,
+                        m.visible,
+                        m.status,
+                        ifnull(m.perms, '') as perms,
+                        m.is_frame,
+                        m.is_cache,
+                        m.menu_type,
+                        m.icon,
+                        m.order_num,
+                        m.create_time
+        from sys_menu m
+                 left join sys_role_menu rm on m.menu_id = rm.menu_id
+                 left join sys_user_role ur on rm.role_id = ur.role_id
+                 left join sys_role ro on ur.role_id = ro.role_id
+                 left join sys_user u on ur.user_id = u.user_id
+        where u.user_id = #{userId}
+          and m.menu_type in ('M', 'C')
+          and m.status = 0
+          AND ro.status = 0
+        order by m.parent_id, m.order_num
+    </select>
+
+    <select id="selectMenuListByRoleId" resultType="Long">
+        select m.menu_id
+        from sys_menu m
+        left join sys_role_menu rm on m.menu_id = rm.menu_id
         where rm.role_id = #{roleId}
-            <if test="menuCheckStrictly">
-              and m.menu_id not in (select m.parent_id from sys_menu m inner join sys_role_menu rm on m.menu_id = rm.menu_id and rm.role_id = #{roleId})
-            </if>
-		order by m.parent_id, m.order_num
-	</select>
-	
-	<select id="selectMenuPerms" resultType="String">
-		select distinct m.perms
-		from sys_menu m
-			 left join sys_role_menu rm on m.menu_id = rm.menu_id
-			 left join sys_user_role ur on rm.role_id = ur.role_id
-	</select>
-
-	<select id="selectMenuPermsByUserId" parameterType="Long" resultType="String">
-		select distinct m.perms
-		from sys_menu m
-			 left join sys_role_menu rm on m.menu_id = rm.menu_id
-			 left join sys_user_role ur on rm.role_id = ur.role_id
-			 left join sys_role r on r.role_id = ur.role_id
-		where m.status = '0' and r.status = '0' and ur.user_id = #{userId}
-	</select>
-	
-	<select id="selectMenuPermsByRoleId" parameterType="Long" resultType="String">
-		select distinct m.perms
-		from sys_menu m
-			 left join sys_role_menu rm on m.menu_id = rm.menu_id
-		where m.status = '0' and rm.role_id = #{roleId}
-	</select>
-	
-	<select id="selectMenuById" parameterType="Long" resultMap="SysMenuResult">
-		<include refid="selectMenuVo"/>
-		where menu_id = #{menuId}
-	</select>
-	
-	<select id="hasChildByMenuId" resultType="Integer">
-	    select count(1) from sys_menu where parent_id = #{menuId}  
-	</select>
-	
-	<select id="checkMenuNameUnique" parameterType="SysMenu" resultMap="SysMenuResult">
-		<include refid="selectMenuVo"/>
-		where menu_name=#{menuName} and parent_id = #{parentId} limit 1
-	</select>
-	
-	<update id="updateMenu" parameterType="SysMenu">
-		update sys_menu
-		<set>
-			<if test="menuName != null and menuName != ''">menu_name = #{menuName},</if>
-			<if test="parentId != null">parent_id = #{parentId},</if>
-			<if test="orderNum != null">order_num = #{orderNum},</if>
-			<if test="path != null and path != ''">path = #{path},</if>
-			<if test="component != null">component = #{component},</if>
-			<if test="query != null">`query` = #{query},</if>
-			<if test="isFrame != null and isFrame != ''">is_frame = #{isFrame},</if>
-			<if test="isCache != null and isCache != ''">is_cache = #{isCache},</if>
-			<if test="menuType != null and menuType != ''">menu_type = #{menuType},</if>
-			<if test="visible != null">visible = #{visible},</if>
-			<if test="status != null">status = #{status},</if>
-			<if test="perms !=null">perms = #{perms},</if>
-			<if test="icon !=null and icon != ''">icon = #{icon},</if>
-			<if test="remark != null and remark != ''">remark = #{remark},</if>
-			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
-			update_time = sysdate()
-		</set>
-		where menu_id = #{menuId}
-	</update>
-
-	<insert id="insertMenu" parameterType="SysMenu">
-		insert into sys_menu(
-		<if test="menuId != null and menuId != 0">menu_id,</if>
-		<if test="parentId != null and parentId != 0">parent_id,</if>
-		<if test="menuName != null and menuName != ''">menu_name,</if>
-		<if test="orderNum != null">order_num,</if>
-		<if test="path != null and path != ''">path,</if>
-		<if test="component != null and component != ''">component,</if>
-		<if test="query != null and query != ''">`query`,</if>
-		<if test="isFrame != null and isFrame != ''">is_frame,</if>
-		<if test="isCache != null and isCache != ''">is_cache,</if>
-		<if test="menuType != null and menuType != ''">menu_type,</if>
-		<if test="visible != null">visible,</if>
-		<if test="status != null">status,</if>
-		<if test="perms !=null and perms != ''">perms,</if>
-		<if test="icon != null and icon != ''">icon,</if>
-		<if test="remark != null and remark != ''">remark,</if>
-		<if test="createBy != null and createBy != ''">create_by,</if>
-		create_time
-		)values(
-		<if test="menuId != null and menuId != 0">#{menuId},</if>
-		<if test="parentId != null and parentId != 0">#{parentId},</if>
-		<if test="menuName != null and menuName != ''">#{menuName},</if>
-		<if test="orderNum != null">#{orderNum},</if>
-		<if test="path != null and path != ''">#{path},</if>
-		<if test="component != null and component != ''">#{component},</if>
-		<if test="query != null and query != ''">#{query},</if>
-		<if test="isFrame != null and isFrame != ''">#{isFrame},</if>
-		<if test="isCache != null and isCache != ''">#{isCache},</if>
-		<if test="menuType != null and menuType != ''">#{menuType},</if>
-		<if test="visible != null">#{visible},</if>
-		<if test="status != null">#{status},</if>
-		<if test="perms !=null and perms != ''">#{perms},</if>
-		<if test="icon != null and icon != ''">#{icon},</if>
-		<if test="remark != null and remark != ''">#{remark},</if>
-		<if test="createBy != null and createBy != ''">#{createBy},</if>
-		sysdate()
-		)
-	</insert>
-	
-	<delete id="deleteMenuById" parameterType="Long">
-	    delete from sys_menu where menu_id = #{menuId}
-	</delete>
+        <if test="menuCheckStrictly">
+            and m.menu_id not in (select m.parent_id from sys_menu m inner join sys_role_menu rm on m.menu_id =
+            rm.menu_id and rm.role_id = #{roleId})
+        </if>
+        order by m.parent_id, m.order_num
+    </select>
+
+    <select id="selectMenuPerms" resultType="String">
+        select distinct m.perms
+        from sys_menu m
+                 left join sys_role_menu rm on m.menu_id = rm.menu_id
+                 left join sys_user_role ur on rm.role_id = ur.role_id
+    </select>
+
+    <select id="selectMenuPermsByUserId" parameterType="Long" resultType="String">
+        select distinct m.perms
+        from sys_menu m
+                 left join sys_role_menu rm on m.menu_id = rm.menu_id
+                 left join sys_user_role ur on rm.role_id = ur.role_id
+                 left join sys_role r on r.role_id = ur.role_id
+        where m.status = '0'
+          and r.status = '0'
+          and ur.user_id = #{userId}
+    </select>
+
+    <select id="selectMenuPermsByRoleId" parameterType="Long" resultType="String">
+        select distinct m.perms
+        from sys_menu m
+                 left join sys_role_menu rm on m.menu_id = rm.menu_id
+        where m.status = '0'
+          and rm.role_id = #{roleId}
+    </select>
+
+    <select id="selectMenuById" parameterType="Long" resultMap="SysMenuResult">
+        <include refid="selectMenuVo"/>
+        where menu_id = #{menuId}
+    </select>
+
+    <select id="hasChildByMenuId" resultType="Integer">
+        select count(1)
+        from sys_menu
+        where parent_id = #{menuId}
+    </select>
+
+    <select id="checkMenuNameUnique" parameterType="com.ruoyi.common.core.domain.entity.SysMenu"
+            resultMap="SysMenuResult">
+        <include refid="selectMenuVo"/>
+        where menu_name=#{menuName} and parent_id = #{parentId} limit 1
+    </select>
+
+    <update id="updateMenu" parameterType="com.ruoyi.common.core.domain.entity.SysMenu">
+        update sys_menu
+        <set>
+            <if test="menuName != null and menuName != ''">menu_name = #{menuName},</if>
+            <if test="parentId != null">parent_id = #{parentId},</if>
+            <if test="orderNum != null">order_num = #{orderNum},</if>
+            <if test="path != null and path != ''">path = #{path},</if>
+            <if test="component != null">component = #{component},</if>
+            <if test="query != null">`query` = #{query},</if>
+            <if test="isFrame != null and isFrame != ''">is_frame = #{isFrame},</if>
+            <if test="isCache != null and isCache != ''">is_cache = #{isCache},</if>
+            <if test="menuType != null and menuType != ''">menu_type = #{menuType},</if>
+            <if test="visible != null">visible = #{visible},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="perms !=null">perms = #{perms},</if>
+            <if test="icon !=null and icon != ''">icon = #{icon},</if>
+            <if test="remark != null and remark != ''">remark = #{remark},</if>
+            <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+            update_time = sysdate()
+        </set>
+        where menu_id = #{menuId}
+    </update>
+
+    <insert id="insertMenu" parameterType="com.ruoyi.common.core.domain.entity.SysMenu">
+        insert into sys_menu(
+        <if test="menuId != null and menuId != 0">menu_id,</if>
+        <if test="parentId != null and parentId != 0">parent_id,</if>
+        <if test="menuName != null and menuName != ''">menu_name,</if>
+        <if test="orderNum != null">order_num,</if>
+        <if test="path != null and path != ''">path,</if>
+        <if test="component != null and component != ''">component,</if>
+        <if test="query != null and query != ''">`query`,</if>
+        <if test="isFrame != null and isFrame != ''">is_frame,</if>
+        <if test="isCache != null and isCache != ''">is_cache,</if>
+        <if test="menuType != null and menuType != ''">menu_type,</if>
+        <if test="visible != null">visible,</if>
+        <if test="status != null">status,</if>
+        <if test="perms !=null and perms != ''">perms,</if>
+        <if test="icon != null and icon != ''">icon,</if>
+        <if test="remark != null and remark != ''">remark,</if>
+        <if test="createBy != null and createBy != ''">create_by,</if>
+        create_time
+        )values(
+        <if test="menuId != null and menuId != 0">#{menuId},</if>
+        <if test="parentId != null and parentId != 0">#{parentId},</if>
+        <if test="menuName != null and menuName != ''">#{menuName},</if>
+        <if test="orderNum != null">#{orderNum},</if>
+        <if test="path != null and path != ''">#{path},</if>
+        <if test="component != null and component != ''">#{component},</if>
+        <if test="query != null and query != ''">#{query},</if>
+        <if test="isFrame != null and isFrame != ''">#{isFrame},</if>
+        <if test="isCache != null and isCache != ''">#{isCache},</if>
+        <if test="menuType != null and menuType != ''">#{menuType},</if>
+        <if test="visible != null">#{visible},</if>
+        <if test="status != null">#{status},</if>
+        <if test="perms !=null and perms != ''">#{perms},</if>
+        <if test="icon != null and icon != ''">#{icon},</if>
+        <if test="remark != null and remark != ''">#{remark},</if>
+        <if test="createBy != null and createBy != ''">#{createBy},</if>
+        sysdate()
+        )
+    </insert>
+
+    <delete id="deleteMenuById" parameterType="Long">
+        delete
+        from sys_menu
+        where menu_id = #{menuId}
+    </delete>
 
 </mapper> 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml
index 65d3079..4d3158a 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml
@@ -1,89 +1,100 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysNoticeMapper">
-    
-    <resultMap type="SysNotice" id="SysNoticeResult">
-        <result property="noticeId"       column="notice_id"       />
-        <result property="noticeTitle"    column="notice_title"    />
-        <result property="noticeType"     column="notice_type"     />
-        <result property="noticeContent"  column="notice_content"  />
-        <result property="status"         column="status"          />
-        <result property="createBy"       column="create_by"       />
-        <result property="createTime"     column="create_time"     />
-        <result property="updateBy"       column="update_by"       />
-        <result property="updateTime"     column="update_time"     />
-        <result property="remark"         column="remark"          />
+
+    <resultMap type="com.ruoyi.system.domain.SysNotice" id="SysNoticeResult">
+        <result property="noticeId" column="notice_id"/>
+        <result property="noticeTitle" column="notice_title"/>
+        <result property="noticeType" column="notice_type"/>
+        <result property="noticeContent" column="notice_content"/>
+        <result property="status" column="status"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
     </resultMap>
-    
+
     <sql id="selectNoticeVo">
-        select notice_id, notice_title, notice_type, cast(notice_content as char) as notice_content, status, create_by, create_time, update_by, update_time, remark 
-		from sys_notice
+        select notice_id,
+               notice_title,
+               notice_type,
+               cast(notice_content as char) as notice_content,
+               status,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from sys_notice
     </sql>
-    
+
     <select id="selectNoticeById" parameterType="Long" resultMap="SysNoticeResult">
         <include refid="selectNoticeVo"/>
         where notice_id = #{noticeId}
     </select>
-    
-    <select id="selectNoticeList" parameterType="SysNotice" resultMap="SysNoticeResult">
+
+    <select id="selectNoticeList" parameterType="com.ruoyi.system.domain.SysNotice" resultMap="SysNoticeResult">
         <include refid="selectNoticeVo"/>
         <where>
-			<if test="noticeTitle != null and noticeTitle != ''">
-				AND notice_title like concat('%', #{noticeTitle}, '%')
-			</if>
-			<if test="noticeType != null and noticeType != ''">
-				AND notice_type = #{noticeType}
-			</if>
-			<if test="createBy != null and createBy != ''">
-				AND create_by like concat('%', #{createBy}, '%')
-			</if>
-		</where>
+            <if test="noticeTitle != null and noticeTitle != ''">
+                AND notice_title like concat('%', #{noticeTitle}, '%')
+            </if>
+            <if test="noticeType != null and noticeType != ''">
+                AND notice_type = #{noticeType}
+            </if>
+            <if test="createBy != null and createBy != ''">
+                AND create_by like concat('%', #{createBy}, '%')
+            </if>
+        </where>
     </select>
-    
-    <insert id="insertNotice" parameterType="SysNotice">
+
+    <insert id="insertNotice" parameterType="com.ruoyi.system.domain.SysNotice">
         insert into sys_notice (
-			<if test="noticeTitle != null and noticeTitle != '' ">notice_title, </if>
-			<if test="noticeType != null and noticeType != '' ">notice_type, </if>
-			<if test="noticeContent != null and noticeContent != '' ">notice_content, </if>
-			<if test="status != null and status != '' ">status, </if>
-			<if test="remark != null and remark != ''">remark,</if>
- 			<if test="createBy != null and createBy != ''">create_by,</if>
- 			create_time
- 		)values(
-			<if test="noticeTitle != null and noticeTitle != ''">#{noticeTitle}, </if>
-			<if test="noticeType != null and noticeType != ''">#{noticeType}, </if>
-			<if test="noticeContent != null and noticeContent != ''">#{noticeContent}, </if>
-			<if test="status != null and status != ''">#{status}, </if>
-			<if test="remark != null and remark != ''">#{remark},</if>
- 			<if test="createBy != null and createBy != ''">#{createBy},</if>
- 			sysdate()
-		)
+        <if test="noticeTitle != null and noticeTitle != '' ">notice_title,</if>
+        <if test="noticeType != null and noticeType != '' ">notice_type,</if>
+        <if test="noticeContent != null and noticeContent != '' ">notice_content,</if>
+        <if test="status != null and status != '' ">status,</if>
+        <if test="remark != null and remark != ''">remark,</if>
+        <if test="createBy != null and createBy != ''">create_by,</if>
+        create_time
+        )values(
+        <if test="noticeTitle != null and noticeTitle != ''">#{noticeTitle},</if>
+        <if test="noticeType != null and noticeType != ''">#{noticeType},</if>
+        <if test="noticeContent != null and noticeContent != ''">#{noticeContent},</if>
+        <if test="status != null and status != ''">#{status},</if>
+        <if test="remark != null and remark != ''">#{remark},</if>
+        <if test="createBy != null and createBy != ''">#{createBy},</if>
+        sysdate()
+        )
     </insert>
-	 
-    <update id="updateNotice" parameterType="SysNotice">
-        update sys_notice 
+
+    <update id="updateNotice" parameterType="com.ruoyi.system.domain.SysNotice">
+        update sys_notice
         <set>
-            <if test="noticeTitle != null and noticeTitle != ''">notice_title = #{noticeTitle}, </if>
-            <if test="noticeType != null and noticeType != ''">notice_type = #{noticeType}, </if>
-            <if test="noticeContent != null">notice_content = #{noticeContent}, </if>
-            <if test="status != null and status != ''">status = #{status}, </if>
+            <if test="noticeTitle != null and noticeTitle != ''">notice_title = #{noticeTitle},</if>
+            <if test="noticeType != null and noticeType != ''">notice_type = #{noticeType},</if>
+            <if test="noticeContent != null">notice_content = #{noticeContent},</if>
+            <if test="status != null and status != ''">status = #{status},</if>
             <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
- 			update_time = sysdate()
+            update_time = sysdate()
         </set>
         where notice_id = #{noticeId}
     </update>
-	
+
     <delete id="deleteNoticeById" parameterType="Long">
-        delete from sys_notice where notice_id = #{noticeId}
+        delete
+        from sys_notice
+        where notice_id = #{noticeId}
     </delete>
-    
+
     <delete id="deleteNoticeByIds" parameterType="Long">
-        delete from sys_notice where notice_id in 
+        delete from sys_notice where notice_id in
         <foreach item="noticeId" collection="array" open="(" separator="," close=")">
             #{noticeId}
         </foreach>
     </delete>
-    
+
 </mapper>
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml
index 201db07..0241d65 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml
@@ -1,86 +1,106 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysOperLogMapper">
 
-	<resultMap type="SysOperLog" id="SysOperLogResult">
-		<id     property="operId"         column="oper_id"        />
-		<result property="title"          column="title"          />
-		<result property="businessType"   column="business_type"  />
-		<result property="method"         column="method"         />
-		<result property="requestMethod"  column="request_method" />
-		<result property="operatorType"   column="operator_type"  />
-		<result property="operName"       column="oper_name"      />
-		<result property="deptName"       column="dept_name"      />
-		<result property="operUrl"        column="oper_url"       />
-		<result property="operIp"         column="oper_ip"        />
-		<result property="operLocation"   column="oper_location"  />
-		<result property="operParam"      column="oper_param"     />
-		<result property="jsonResult"     column="json_result"    />
-		<result property="status"         column="status"         />
-		<result property="errorMsg"       column="error_msg"      />
-		<result property="operTime"       column="oper_time"      />
-		<result property="costTime"       column="cost_time"      />
-	</resultMap>
+    <resultMap type="com.ruoyi.system.domain.SysOperLog" id="SysOperLogResult">
+        <id property="operId" column="oper_id"/>
+        <result property="title" column="title"/>
+        <result property="businessType" column="business_type"/>
+        <result property="method" column="method"/>
+        <result property="requestMethod" column="request_method"/>
+        <result property="operatorType" column="operator_type"/>
+        <result property="operName" column="oper_name"/>
+        <result property="deptName" column="dept_name"/>
+        <result property="operUrl" column="oper_url"/>
+        <result property="operIp" column="oper_ip"/>
+        <result property="operLocation" column="oper_location"/>
+        <result property="operParam" column="oper_param"/>
+        <result property="jsonResult" column="json_result"/>
+        <result property="status" column="status"/>
+        <result property="errorMsg" column="error_msg"/>
+        <result property="operTime" column="oper_time"/>
+        <result property="costTime" column="cost_time"/>
+    </resultMap>
 
-	<sql id="selectOperLogVo">
-        select oper_id, title, business_type, method, request_method, operator_type, oper_name, dept_name, oper_url, oper_ip, oper_location, oper_param, json_result, status, error_msg, oper_time, cost_time
+    <sql id="selectOperLogVo">
+        select oper_id,
+               title,
+               business_type,
+               method,
+               request_method,
+               operator_type,
+               oper_name,
+               dept_name,
+               oper_url,
+               oper_ip,
+               oper_location,
+               oper_param,
+               json_result,
+               status,
+               error_msg,
+               oper_time,
+               cost_time
         from sys_oper_log
     </sql>
-    
-	<insert id="insertOperlog" parameterType="SysOperLog">
-		insert into sys_oper_log(title, business_type, method, request_method, operator_type, oper_name, dept_name, oper_url, oper_ip, oper_location, oper_param, json_result, status, error_msg, cost_time, oper_time)
-        values (#{title}, #{businessType}, #{method}, #{requestMethod}, #{operatorType}, #{operName}, #{deptName}, #{operUrl}, #{operIp}, #{operLocation}, #{operParam}, #{jsonResult}, #{status}, #{errorMsg}, #{costTime}, sysdate())
-	</insert>
-	
-	<select id="selectOperLogList" parameterType="SysOperLog" resultMap="SysOperLogResult">
-		<include refid="selectOperLogVo"/>
-		<where>
-			<if test="operIp != null and operIp != ''">
-				AND oper_ip like concat('%', #{operIp}, '%')
-			</if>
-			<if test="title != null and title != ''">
-				AND title like concat('%', #{title}, '%')
-			</if>
-			<if test="businessType != null">
-				AND business_type = #{businessType}
-			</if>
-			<if test="businessTypes != null and businessTypes.length > 0">
-			    AND business_type in
-			    <foreach collection="businessTypes" item="businessType" open="(" separator="," close=")">
-		 			#{businessType}
-		        </foreach> 
-			</if>
-			<if test="status != null">
-				AND status = #{status}
-			</if>
-			<if test="operName != null and operName != ''">
-				AND oper_name like concat('%', #{operName}, '%')
-			</if>
-			<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
-				AND oper_time &gt;= #{params.beginTime}
-			</if>
-			<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
-				AND oper_time &lt;= #{params.endTime}
-			</if>
-		</where>
-		order by oper_id desc
-	</select>
-	
-	<delete id="deleteOperLogByIds" parameterType="Long">
- 		delete from sys_oper_log where oper_id in
- 		<foreach collection="array" item="operId" open="(" separator="," close=")">
- 			#{operId}
-        </foreach> 
- 	</delete>
- 	
- 	<select id="selectOperLogById" parameterType="Long" resultMap="SysOperLogResult">
-		<include refid="selectOperLogVo"/>
-		where oper_id = #{operId}
-	</select>
-	
-	<update id="cleanOperLog">
+
+    <insert id="insertOperlog" parameterType="com.ruoyi.system.domain.SysOperLog">
+        insert into sys_oper_log(title, business_type, method, request_method, operator_type, oper_name, dept_name,
+                                 oper_url, oper_ip, oper_location, oper_param, json_result, status, error_msg,
+                                 cost_time, oper_time)
+        values (#{title}, #{businessType}, #{method}, #{requestMethod}, #{operatorType}, #{operName}, #{deptName},
+                #{operUrl}, #{operIp}, #{operLocation}, #{operParam}, #{jsonResult}, #{status}, #{errorMsg},
+                #{costTime}, sysdate())
+    </insert>
+
+    <select id="selectOperLogList" parameterType="com.ruoyi.system.domain.SysOperLog" resultMap="SysOperLogResult">
+        <include refid="selectOperLogVo"/>
+        <where>
+            <if test="operIp != null and operIp != ''">
+                AND oper_ip like concat('%', #{operIp}, '%')
+            </if>
+            <if test="title != null and title != ''">
+                AND title like concat('%', #{title}, '%')
+            </if>
+            <if test="businessType != null">
+                AND business_type = #{businessType}
+            </if>
+            <if test="businessTypes != null and businessTypes.length > 0">
+                AND business_type in
+                <foreach collection="businessTypes" item="businessType" open="(" separator="," close=")">
+                    #{businessType}
+                </foreach>
+            </if>
+            <if test="status != null">
+                AND status = #{status}
+            </if>
+            <if test="operName != null and operName != ''">
+                AND oper_name like concat('%', #{operName}, '%')
+            </if>
+            <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
+                AND oper_time &gt;= #{params.beginTime}
+            </if>
+            <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
+                AND oper_time &lt;= #{params.endTime}
+            </if>
+        </where>
+        order by oper_id desc
+    </select>
+
+    <delete id="deleteOperLogByIds" parameterType="Long">
+        delete from sys_oper_log where oper_id in
+        <foreach collection="array" item="operId" open="(" separator="," close=")">
+            #{operId}
+        </foreach>
+    </delete>
+
+    <select id="selectOperLogById" parameterType="Long" resultMap="SysOperLogResult">
+        <include refid="selectOperLogVo"/>
+        where oper_id = #{operId}
+    </select>
+
+    <update id="cleanOperLog">
         truncate table sys_oper_log
     </update>
 
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml
index 227c459..039b980 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml
@@ -1,122 +1,132 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysPostMapper">
 
-	<resultMap type="SysPost" id="SysPostResult">
-		<id     property="postId"        column="post_id"       />
-		<result property="postCode"      column="post_code"     />
-		<result property="postName"      column="post_name"     />
-		<result property="postSort"      column="post_sort"     />
-		<result property="status"        column="status"        />
-		<result property="createBy"      column="create_by"     />
-		<result property="createTime"    column="create_time"   />
-		<result property="updateBy"      column="update_by"     />
-		<result property="updateTime"    column="update_time"   />
-		<result property="remark"        column="remark"        />
-	</resultMap>
-	
-	<sql id="selectPostVo">
-        select post_id, post_code, post_name, post_sort, status, create_by, create_time, remark 
-		from sys_post
+    <resultMap type="com.ruoyi.system.domain.SysPost" id="SysPostResult">
+        <id property="postId" column="post_id"/>
+        <result property="postCode" column="post_code"/>
+        <result property="postName" column="post_name"/>
+        <result property="postSort" column="post_sort"/>
+        <result property="status" column="status"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectPostVo">
+        select post_id,
+               post_code,
+               post_name,
+               post_sort,
+               status,
+               create_by,
+               create_time,
+               remark
+        from sys_post
     </sql>
-	
-	<select id="selectPostList" parameterType="SysPost" resultMap="SysPostResult">
-	    <include refid="selectPostVo"/>
-		<where>
-			<if test="postCode != null and postCode != ''">
-				AND post_code like concat('%', #{postCode}, '%')
-			</if>
-			<if test="status != null and status != ''">
-				AND status = #{status}
-			</if>
-			<if test="postName != null and postName != ''">
-				AND post_name like concat('%', #{postName}, '%')
-			</if>
-		</where>
-	</select>
-	
-	<select id="selectPostAll" resultMap="SysPostResult">
-		<include refid="selectPostVo"/>
-	</select>
-	
-	<select id="selectPostById" parameterType="Long" resultMap="SysPostResult">
-		<include refid="selectPostVo"/>
-		where post_id = #{postId}
-	</select>
-	
-	<select id="selectPostListByUserId" parameterType="Long" resultType="Long">
-		select p.post_id
+
+    <select id="selectPostList" parameterType="com.ruoyi.system.domain.SysPost" resultMap="SysPostResult">
+        <include refid="selectPostVo"/>
+        <where>
+            <if test="postCode != null and postCode != ''">
+                AND post_code like concat('%', #{postCode}, '%')
+            </if>
+            <if test="status != null and status != ''">
+                AND status = #{status}
+            </if>
+            <if test="postName != null and postName != ''">
+                AND post_name like concat('%', #{postName}, '%')
+            </if>
+        </where>
+    </select>
+
+    <select id="selectPostAll" resultMap="SysPostResult">
+        <include refid="selectPostVo"/>
+    </select>
+
+    <select id="selectPostById" parameterType="Long" resultMap="SysPostResult">
+        <include refid="selectPostVo"/>
+        where post_id = #{postId}
+    </select>
+
+    <select id="selectPostListByUserId" parameterType="Long" resultType="Long">
+        select p.post_id
+        from sys_post p
+                 left join sys_user_post up on up.post_id = p.post_id
+                 left join sys_user u on u.user_id = up.user_id
+        where u.user_id = #{userId}
+    </select>
+
+    <select id="selectPostsByUserName" parameterType="String" resultMap="SysPostResult">
+        select p.post_id, p.post_name, p.post_code
         from sys_post p
-	        left join sys_user_post up on up.post_id = p.post_id
-	        left join sys_user u on u.user_id = up.user_id
-	    where u.user_id = #{userId}
-	</select>
-	
-	<select id="selectPostsByUserName" parameterType="String" resultMap="SysPostResult">
-		select p.post_id, p.post_name, p.post_code
-		from sys_post p
-			 left join sys_user_post up on up.post_id = p.post_id
-			 left join sys_user u on u.user_id = up.user_id
-		where u.user_name = #{userName}
-	</select>
-	
-	<select id="checkPostNameUnique" parameterType="String" resultMap="SysPostResult">
-		<include refid="selectPostVo"/>
-		 where post_name=#{postName} limit 1
-	</select>
-	
-	<select id="checkPostCodeUnique" parameterType="String" resultMap="SysPostResult">
-		<include refid="selectPostVo"/>
-		 where post_code=#{postCode} limit 1
-	</select>
-	
-	<update id="updatePost" parameterType="SysPost">
- 		update sys_post
- 		<set>
- 			<if test="postCode != null and postCode != ''">post_code = #{postCode},</if>
- 			<if test="postName != null and postName != ''">post_name = #{postName},</if>
- 			<if test="postSort != null">post_sort = #{postSort},</if>
- 			<if test="status != null and status != ''">status = #{status},</if>
- 			<if test="remark != null">remark = #{remark},</if>
- 			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
- 			update_time = sysdate()
- 		</set>
- 		where post_id = #{postId}
-	</update>
- 	
- 	<insert id="insertPost" parameterType="SysPost" useGeneratedKeys="true" keyProperty="postId">
- 		insert into sys_post(
- 			<if test="postId != null and postId != 0">post_id,</if>
- 			<if test="postCode != null and postCode != ''">post_code,</if>
- 			<if test="postName != null and postName != ''">post_name,</if>
- 			<if test="postSort != null">post_sort,</if>
- 			<if test="status != null and status != ''">status,</if>
- 			<if test="remark != null and remark != ''">remark,</if>
- 			<if test="createBy != null and createBy != ''">create_by,</if>
- 			create_time
- 		)values(
- 			<if test="postId != null and postId != 0">#{postId},</if>
- 			<if test="postCode != null and postCode != ''">#{postCode},</if>
- 			<if test="postName != null and postName != ''">#{postName},</if>
- 			<if test="postSort != null">#{postSort},</if>
- 			<if test="status != null and status != ''">#{status},</if>
- 			<if test="remark != null and remark != ''">#{remark},</if>
- 			<if test="createBy != null and createBy != ''">#{createBy},</if>
- 			sysdate()
- 		)
-	</insert>
-	
-	<delete id="deletePostById" parameterType="Long">
-		delete from sys_post where post_id = #{postId}
-	</delete>
-	
-	<delete id="deletePostByIds" parameterType="Long">
- 		delete from sys_post where post_id in
- 		<foreach collection="array" item="postId" open="(" separator="," close=")">
- 			#{postId}
-        </foreach> 
- 	</delete>
+                 left join sys_user_post up on up.post_id = p.post_id
+                 left join sys_user u on u.user_id = up.user_id
+        where u.user_name = #{userName}
+    </select>
+
+    <select id="checkPostNameUnique" parameterType="String" resultMap="SysPostResult">
+        <include refid="selectPostVo"/>
+        where post_name=#{postName} limit 1
+    </select>
+
+    <select id="checkPostCodeUnique" parameterType="String" resultMap="SysPostResult">
+        <include refid="selectPostVo"/>
+        where post_code=#{postCode} limit 1
+    </select>
+
+    <update id="updatePost" parameterType="com.ruoyi.system.domain.SysPost">
+        update sys_post
+        <set>
+            <if test="postCode != null and postCode != ''">post_code = #{postCode},</if>
+            <if test="postName != null and postName != ''">post_name = #{postName},</if>
+            <if test="postSort != null">post_sort = #{postSort},</if>
+            <if test="status != null and status != ''">status = #{status},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+            update_time = sysdate()
+        </set>
+        where post_id = #{postId}
+    </update>
+
+    <insert id="insertPost" parameterType="com.ruoyi.system.domain.SysPost" useGeneratedKeys="true"
+            keyProperty="postId">
+        insert into sys_post(
+        <if test="postId != null and postId != 0">post_id,</if>
+        <if test="postCode != null and postCode != ''">post_code,</if>
+        <if test="postName != null and postName != ''">post_name,</if>
+        <if test="postSort != null">post_sort,</if>
+        <if test="status != null and status != ''">status,</if>
+        <if test="remark != null and remark != ''">remark,</if>
+        <if test="createBy != null and createBy != ''">create_by,</if>
+        create_time
+        )values(
+        <if test="postId != null and postId != 0">#{postId},</if>
+        <if test="postCode != null and postCode != ''">#{postCode},</if>
+        <if test="postName != null and postName != ''">#{postName},</if>
+        <if test="postSort != null">#{postSort},</if>
+        <if test="status != null and status != ''">#{status},</if>
+        <if test="remark != null and remark != ''">#{remark},</if>
+        <if test="createBy != null and createBy != ''">#{createBy},</if>
+        sysdate()
+        )
+    </insert>
+
+    <delete id="deletePostById" parameterType="Long">
+        delete
+        from sys_post
+        where post_id = #{postId}
+    </delete>
+
+    <delete id="deletePostByIds" parameterType="Long">
+        delete from sys_post where post_id in
+        <foreach collection="array" item="postId" open="(" separator="," close=")">
+            #{postId}
+        </foreach>
+    </delete>
 
 </mapper> 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml
index 7c4139b..5e82f9f 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml
@@ -1,34 +1,38 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysRoleDeptMapper">
 
-	<resultMap type="SysRoleDept" id="SysRoleDeptResult">
-		<result property="roleId"     column="role_id"      />
-		<result property="deptId"     column="dept_id"      />
-	</resultMap>
+    <resultMap type="com.ruoyi.system.domain.SysRoleDept" id="SysRoleDeptResult">
+        <result property="roleId" column="role_id"/>
+        <result property="deptId" column="dept_id"/>
+    </resultMap>
+
+    <delete id="deleteRoleDeptByRoleId" parameterType="Long">
+        delete
+        from sys_role_dept
+        where role_id = #{roleId}
+    </delete>
+
+    <select id="selectCountRoleDeptByDeptId" resultType="Integer">
+        select count(1)
+        from sys_role_dept
+        where dept_id = #{deptId}
+    </select>
+
+    <delete id="deleteRoleDept" parameterType="Long">
+        delete from sys_role_dept where role_id in
+        <foreach collection="array" item="roleId" open="(" separator="," close=")">
+            #{roleId}
+        </foreach>
+    </delete>
+
+    <insert id="batchRoleDept">
+        insert into sys_role_dept(role_id, dept_id) values
+        <foreach item="item" index="index" collection="list" separator=",">
+            (#{item.roleId},#{item.deptId})
+        </foreach>
+    </insert>
 
-	<delete id="deleteRoleDeptByRoleId" parameterType="Long">
-		delete from sys_role_dept where role_id=#{roleId}
-	</delete>
-	
-	<select id="selectCountRoleDeptByDeptId" resultType="Integer">
-	    select count(1) from sys_role_dept where dept_id=#{deptId}
-	</select>
-	
-	<delete id="deleteRoleDept" parameterType="Long">
- 		delete from sys_role_dept where role_id in
- 		<foreach collection="array" item="roleId" open="(" separator="," close=")">
- 			#{roleId}
-        </foreach> 
- 	</delete>
-	
-	<insert id="batchRoleDept">
-		insert into sys_role_dept(role_id, dept_id) values
-		<foreach item="item" index="index" collection="list" separator=",">
-			(#{item.roleId},#{item.deptId})
-		</foreach>
-	</insert>
-	
 </mapper> 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
index 52306c2..52f7b28 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
@@ -1,152 +1,164 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysRoleMapper">
 
-	<resultMap type="SysRole" id="SysRoleResult">
-		<id     property="roleId"             column="role_id"               />
-		<result property="roleName"           column="role_name"             />
-		<result property="roleKey"            column="role_key"              />
-		<result property="roleSort"           column="role_sort"             />
-		<result property="dataScope"          column="data_scope"            />
-		<result property="menuCheckStrictly"  column="menu_check_strictly"   />
-		<result property="deptCheckStrictly"  column="dept_check_strictly"   />
-		<result property="status"             column="status"                />
-		<result property="delFlag"            column="del_flag"              />
-		<result property="createBy"           column="create_by"             />
-		<result property="createTime"         column="create_time"           />
-		<result property="updateBy"           column="update_by"             />
-		<result property="updateTime"         column="update_time"           />
-		<result property="remark"             column="remark"                />
-	</resultMap>
-	
-	<sql id="selectRoleVo">
-	    select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly,
-            r.status, r.del_flag, r.create_time, r.remark 
+    <resultMap type="com.ruoyi.common.core.domain.entity.SysRole" id="SysRoleResult">
+        <id property="roleId" column="role_id"/>
+        <result property="roleName" column="role_name"/>
+        <result property="roleKey" column="role_key"/>
+        <result property="roleSort" column="role_sort"/>
+        <result property="dataScope" column="data_scope"/>
+        <result property="menuCheckStrictly" column="menu_check_strictly"/>
+        <result property="deptCheckStrictly" column="dept_check_strictly"/>
+        <result property="status" column="status"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectRoleVo">
+        select distinct r.role_id,
+                        r.role_name,
+                        r.role_key,
+                        r.role_sort,
+                        r.data_scope,
+                        r.menu_check_strictly,
+                        r.dept_check_strictly,
+                        r.status,
+                        r.del_flag,
+                        r.create_time,
+                        r.remark
         from sys_role r
-	        left join sys_user_role ur on ur.role_id = r.role_id
-	        left join sys_user u on u.user_id = ur.user_id
-	        left join sys_dept d on u.dept_id = d.dept_id
+                 left join sys_user_role ur on ur.role_id = r.role_id
+                 left join sys_user u on u.user_id = ur.user_id
+                 left join sys_dept d on u.dept_id = d.dept_id
     </sql>
-    
-    <select id="selectRoleList" parameterType="SysRole" resultMap="SysRoleResult">
-		<include refid="selectRoleVo"/>
-		where r.del_flag = '0'
-		<if test="roleId != null and roleId != 0">
-			AND r.role_id = #{roleId}
-		</if>
-		<if test="roleName != null and roleName != ''">
-			AND r.role_name like concat('%', #{roleName}, '%')
-		</if>
-		<if test="status != null and status != ''">
-			AND r.status = #{status}
-		</if>
-		<if test="roleKey != null and roleKey != ''">
-			AND r.role_key like concat('%', #{roleKey}, '%')
-		</if>
-		<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
-			and date_format(r.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
-		</if>
-		<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
-			and date_format(r.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
-		</if>
-		<!-- 数据范围过滤 -->
-		${params.dataScope}
-		order by r.role_sort
-	</select>
-    
-	<select id="selectRolePermissionByUserId" parameterType="Long" resultMap="SysRoleResult">
-		<include refid="selectRoleVo"/>
-		WHERE r.del_flag = '0' and ur.user_id = #{userId}
-	</select>
-	
-	<select id="selectRoleAll" resultMap="SysRoleResult">
-		<include refid="selectRoleVo"/>
-	</select>
-	
-	<select id="selectRoleListByUserId" parameterType="Long" resultType="Long">
-		select r.role_id
+
+    <select id="selectRoleList" parameterType="com.ruoyi.common.core.domain.entity.SysRole" resultMap="SysRoleResult">
+        <include refid="selectRoleVo"/>
+        where r.del_flag = '0'
+        <if test="roleId != null and roleId != 0">
+            AND r.role_id = #{roleId}
+        </if>
+        <if test="roleName != null and roleName != ''">
+            AND r.role_name like concat('%', #{roleName}, '%')
+        </if>
+        <if test="status != null and status != ''">
+            AND r.status = #{status}
+        </if>
+        <if test="roleKey != null and roleKey != ''">
+            AND r.role_key like concat('%', #{roleKey}, '%')
+        </if>
+        <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
+            and date_format(r.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
+        </if>
+        <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
+            and date_format(r.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
+        </if>
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
+        order by r.role_sort
+    </select>
+
+    <select id="selectRolePermissionByUserId" parameterType="Long" resultMap="SysRoleResult">
+        <include refid="selectRoleVo"/>
+        WHERE r.del_flag = '0' and ur.user_id = #{userId}
+    </select>
+
+    <select id="selectRoleAll" resultMap="SysRoleResult">
+        <include refid="selectRoleVo"/>
+    </select>
+
+    <select id="selectRoleListByUserId" parameterType="Long" resultType="Long">
+        select r.role_id
         from sys_role r
-	        left join sys_user_role ur on ur.role_id = r.role_id
-	        left join sys_user u on u.user_id = ur.user_id
-	    where u.user_id = #{userId}
-	</select>
-	
-	<select id="selectRoleById" parameterType="Long" resultMap="SysRoleResult">
-		<include refid="selectRoleVo"/>
-		where r.role_id = #{roleId}
-	</select>
-	
-	<select id="selectRolesByUserName" parameterType="String" resultMap="SysRoleResult">
-		<include refid="selectRoleVo"/>
-		WHERE r.del_flag = '0' and u.user_name = #{userName}
-	</select>
-	
-	<select id="checkRoleNameUnique" parameterType="String" resultMap="SysRoleResult">
-		<include refid="selectRoleVo"/>
-		 where r.role_name=#{roleName} and r.del_flag = '0' limit 1
-	</select>
-	
-	<select id="checkRoleKeyUnique" parameterType="String" resultMap="SysRoleResult">
-		<include refid="selectRoleVo"/>
-		 where r.role_key=#{roleKey} and r.del_flag = '0' limit 1
-	</select>
-	
- 	<insert id="insertRole" parameterType="SysRole" useGeneratedKeys="true" keyProperty="roleId">
- 		insert into sys_role(
- 			<if test="roleId != null and roleId != 0">role_id,</if>
- 			<if test="roleName != null and roleName != ''">role_name,</if>
- 			<if test="roleKey != null and roleKey != ''">role_key,</if>
- 			<if test="roleSort != null">role_sort,</if>
- 			<if test="dataScope != null and dataScope != ''">data_scope,</if>
- 			<if test="menuCheckStrictly != null">menu_check_strictly,</if>
- 			<if test="deptCheckStrictly != null">dept_check_strictly,</if>
- 			<if test="status != null and status != ''">status,</if>
- 			<if test="remark != null and remark != ''">remark,</if>
- 			<if test="createBy != null and createBy != ''">create_by,</if>
- 			create_time
- 		)values(
- 			<if test="roleId != null and roleId != 0">#{roleId},</if>
- 			<if test="roleName != null and roleName != ''">#{roleName},</if>
- 			<if test="roleKey != null and roleKey != ''">#{roleKey},</if>
- 			<if test="roleSort != null">#{roleSort},</if>
- 			<if test="dataScope != null and dataScope != ''">#{dataScope},</if>
- 			<if test="menuCheckStrictly != null">#{menuCheckStrictly},</if>
- 			<if test="deptCheckStrictly != null">#{deptCheckStrictly},</if>
- 			<if test="status != null and status != ''">#{status},</if>
- 			<if test="remark != null and remark != ''">#{remark},</if>
- 			<if test="createBy != null and createBy != ''">#{createBy},</if>
- 			sysdate()
- 		)
-	</insert>
-	
-	<update id="updateRole" parameterType="SysRole">
- 		update sys_role
- 		<set>
- 			<if test="roleName != null and roleName != ''">role_name = #{roleName},</if>
- 			<if test="roleKey != null and roleKey != ''">role_key = #{roleKey},</if>
- 			<if test="roleSort != null">role_sort = #{roleSort},</if>
- 			<if test="dataScope != null and dataScope != ''">data_scope = #{dataScope},</if>
- 			<if test="menuCheckStrictly != null">menu_check_strictly = #{menuCheckStrictly},</if>
- 			<if test="deptCheckStrictly != null">dept_check_strictly = #{deptCheckStrictly},</if>
- 			<if test="status != null and status != ''">status = #{status},</if>
- 			<if test="remark != null">remark = #{remark},</if>
- 			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
- 			update_time = sysdate()
- 		</set>
- 		where role_id = #{roleId}
-	</update>
-	
-	<delete id="deleteRoleById" parameterType="Long">
- 		update sys_role set del_flag = '2' where role_id = #{roleId}
- 	</delete>
- 	
- 	<delete id="deleteRoleByIds" parameterType="Long">
- 	    update sys_role set del_flag = '2' where role_id in
- 		<foreach collection="array" item="roleId" open="(" separator="," close=")">
- 			#{roleId}
-        </foreach> 
- 	</delete>
- 	
+                 left join sys_user_role ur on ur.role_id = r.role_id
+                 left join sys_user u on u.user_id = ur.user_id
+        where u.user_id = #{userId}
+    </select>
+
+    <select id="selectRoleById" parameterType="Long" resultMap="SysRoleResult">
+        <include refid="selectRoleVo"/>
+        where r.role_id = #{roleId}
+    </select>
+
+    <select id="selectRolesByUserName" parameterType="String" resultMap="SysRoleResult">
+        <include refid="selectRoleVo"/>
+        WHERE r.del_flag = '0' and u.user_name = #{userName}
+    </select>
+
+    <select id="checkRoleNameUnique" parameterType="String" resultMap="SysRoleResult">
+        <include refid="selectRoleVo"/>
+        where r.role_name=#{roleName} and r.del_flag = '0' limit 1
+    </select>
+
+    <select id="checkRoleKeyUnique" parameterType="String" resultMap="SysRoleResult">
+        <include refid="selectRoleVo"/>
+        where r.role_key=#{roleKey} and r.del_flag = '0' limit 1
+    </select>
+
+    <insert id="insertRole" parameterType="com.ruoyi.common.core.domain.entity.SysRole" useGeneratedKeys="true"
+            keyProperty="roleId">
+        insert into sys_role(
+        <if test="roleId != null and roleId != 0">role_id,</if>
+        <if test="roleName != null and roleName != ''">role_name,</if>
+        <if test="roleKey != null and roleKey != ''">role_key,</if>
+        <if test="roleSort != null">role_sort,</if>
+        <if test="dataScope != null and dataScope != ''">data_scope,</if>
+        <if test="menuCheckStrictly != null">menu_check_strictly,</if>
+        <if test="deptCheckStrictly != null">dept_check_strictly,</if>
+        <if test="status != null and status != ''">status,</if>
+        <if test="remark != null and remark != ''">remark,</if>
+        <if test="createBy != null and createBy != ''">create_by,</if>
+        create_time
+        )values(
+        <if test="roleId != null and roleId != 0">#{roleId},</if>
+        <if test="roleName != null and roleName != ''">#{roleName},</if>
+        <if test="roleKey != null and roleKey != ''">#{roleKey},</if>
+        <if test="roleSort != null">#{roleSort},</if>
+        <if test="dataScope != null and dataScope != ''">#{dataScope},</if>
+        <if test="menuCheckStrictly != null">#{menuCheckStrictly},</if>
+        <if test="deptCheckStrictly != null">#{deptCheckStrictly},</if>
+        <if test="status != null and status != ''">#{status},</if>
+        <if test="remark != null and remark != ''">#{remark},</if>
+        <if test="createBy != null and createBy != ''">#{createBy},</if>
+        sysdate()
+        )
+    </insert>
+
+    <update id="updateRole" parameterType="com.ruoyi.common.core.domain.entity.SysRole">
+        update sys_role
+        <set>
+            <if test="roleName != null and roleName != ''">role_name = #{roleName},</if>
+            <if test="roleKey != null and roleKey != ''">role_key = #{roleKey},</if>
+            <if test="roleSort != null">role_sort = #{roleSort},</if>
+            <if test="dataScope != null and dataScope != ''">data_scope = #{dataScope},</if>
+            <if test="menuCheckStrictly != null">menu_check_strictly = #{menuCheckStrictly},</if>
+            <if test="deptCheckStrictly != null">dept_check_strictly = #{deptCheckStrictly},</if>
+            <if test="status != null and status != ''">status = #{status},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+            update_time = sysdate()
+        </set>
+        where role_id = #{roleId}
+    </update>
+
+    <delete id="deleteRoleById" parameterType="Long">
+        update sys_role
+        set del_flag = '2'
+        where role_id = #{roleId}
+    </delete>
+
+    <delete id="deleteRoleByIds" parameterType="Long">
+        update sys_role set del_flag = '2' where role_id in
+        <foreach collection="array" item="roleId" open="(" separator="," close=")">
+            #{roleId}
+        </foreach>
+    </delete>
+
 </mapper> 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml
index cb60a85..49dbdbd 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml
@@ -1,34 +1,38 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysRoleMenuMapper">
 
-	<resultMap type="SysRoleMenu" id="SysRoleMenuResult">
-		<result property="roleId"     column="role_id"      />
-		<result property="menuId"     column="menu_id"      />
-	</resultMap>
-	
-	<select id="checkMenuExistRole" resultType="Integer">
-	    select count(1) from sys_role_menu where menu_id = #{menuId}
-	</select>
+    <resultMap type="com.ruoyi.system.domain.SysRoleMenu" id="SysRoleMenuResult">
+        <result property="roleId" column="role_id"/>
+        <result property="menuId" column="menu_id"/>
+    </resultMap>
+
+    <select id="checkMenuExistRole" resultType="Integer">
+        select count(1)
+        from sys_role_menu
+        where menu_id = #{menuId}
+    </select>
+
+    <delete id="deleteRoleMenuByRoleId" parameterType="Long">
+        delete
+        from sys_role_menu
+        where role_id = #{roleId}
+    </delete>
+
+    <delete id="deleteRoleMenu" parameterType="Long">
+        delete from sys_role_menu where role_id in
+        <foreach collection="array" item="roleId" open="(" separator="," close=")">
+            #{roleId}
+        </foreach>
+    </delete>
+
+    <insert id="batchRoleMenu">
+        insert into sys_role_menu(role_id, menu_id) values
+        <foreach item="item" index="index" collection="list" separator=",">
+            (#{item.roleId},#{item.menuId})
+        </foreach>
+    </insert>
 
-	<delete id="deleteRoleMenuByRoleId" parameterType="Long">
-		delete from sys_role_menu where role_id=#{roleId}
-	</delete>
-	
-	<delete id="deleteRoleMenu" parameterType="Long">
- 		delete from sys_role_menu where role_id in
- 		<foreach collection="array" item="roleId" open="(" separator="," close=")">
- 			#{roleId}
-        </foreach> 
- 	</delete>
-	
-	<insert id="batchRoleMenu">
-		insert into sys_role_menu(role_id, menu_id) values
-		<foreach item="item" index="index" collection="list" separator=",">
-			(#{item.roleId},#{item.menuId})
-		</foreach>
-	</insert>
-	
 </mapper> 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index eca3694..c038083 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -1,221 +1,274 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysUserMapper">
 
-    <resultMap type="SysUser" id="SysUserResult">
-        <id     property="userId"       column="user_id"      />
-        <result property="deptId"       column="dept_id"      />
-        <result property="userName"     column="user_name"    />
-        <result property="nickName"     column="nick_name"    />
-        <result property="email"        column="email"        />
-        <result property="phonenumber"  column="phonenumber"  />
-        <result property="sex"          column="sex"          />
-        <result property="avatar"       column="avatar"       />
-        <result property="password"     column="password"     />
-        <result property="status"       column="status"       />
-        <result property="delFlag"      column="del_flag"     />
-        <result property="loginIp"      column="login_ip"     />
-        <result property="loginDate"    column="login_date"   />
-        <result property="createBy"     column="create_by"    />
-        <result property="createTime"   column="create_time"  />
-        <result property="updateBy"     column="update_by"    />
-        <result property="updateTime"   column="update_time"  />
-        <result property="remark"       column="remark"       />
-        <association property="dept"    javaType="SysDept"         resultMap="deptResult" />
-        <collection  property="roles"   javaType="java.util.List"  resultMap="RoleResult" />
+    <resultMap type="com.ruoyi.common.core.domain.entity.SysUser" id="SysUserResult">
+        <id property="userId" column="user_id"/>
+        <result property="deptId" column="dept_id"/>
+        <result property="userName" column="user_name"/>
+        <result property="nickName" column="nick_name"/>
+        <result property="email" column="email"/>
+        <result property="phonenumber" column="phonenumber"/>
+        <result property="sex" column="sex"/>
+        <result property="avatar" column="avatar"/>
+        <result property="password" column="password"/>
+        <result property="status" column="status"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="loginIp" column="login_ip"/>
+        <result property="loginDate" column="login_date"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+        <association property="dept" javaType="com.ruoyi.common.core.domain.entity.SysDept" resultMap="deptResult"/>
+        <collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>
     </resultMap>
-	
-    <resultMap id="deptResult" type="SysDept">
-        <id     property="deptId"    column="dept_id"     />
-        <result property="parentId"  column="parent_id"   />
-        <result property="deptName"  column="dept_name"   />
-        <result property="ancestors" column="ancestors"   />
-        <result property="orderNum"  column="order_num"   />
-        <result property="leader"    column="leader"      />
-        <result property="status"    column="dept_status" />
+
+    <resultMap id="deptResult" type="com.ruoyi.common.core.domain.entity.SysDept">
+        <id property="deptId" column="dept_id"/>
+        <result property="parentId" column="parent_id"/>
+        <result property="deptName" column="dept_name"/>
+        <result property="ancestors" column="ancestors"/>
+        <result property="orderNum" column="order_num"/>
+        <result property="leader" column="leader"/>
+        <result property="status" column="dept_status"/>
     </resultMap>
-	
-    <resultMap id="RoleResult" type="SysRole">
-        <id     property="roleId"       column="role_id"        />
-        <result property="roleName"     column="role_name"      />
-        <result property="roleKey"      column="role_key"       />
-        <result property="roleSort"     column="role_sort"      />
-        <result property="dataScope"    column="data_scope"     />
-        <result property="status"       column="role_status"    />
+
+    <resultMap id="RoleResult" type="com.ruoyi.common.core.domain.entity.SysRole">
+        <id property="roleId" column="role_id"/>
+        <result property="roleName" column="role_name"/>
+        <result property="roleKey" column="role_key"/>
+        <result property="roleSort" column="role_sort"/>
+        <result property="dataScope" column="data_scope"/>
+        <result property="status" column="role_status"/>
     </resultMap>
-	
-	<sql id="selectUserVo">
-        select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, 
-        d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
-        r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
+
+    <sql id="selectUserVo">
+        select u.user_id,
+               u.dept_id,
+               u.user_name,
+               u.nick_name,
+               u.email,
+               u.avatar,
+               u.phonenumber,
+               u.password,
+               u.sex,
+               u.status,
+               u.del_flag,
+               u.login_ip,
+               u.login_date,
+               u.create_by,
+               u.create_time,
+               u.remark,
+               d.dept_id,
+               d.parent_id,
+               d.ancestors,
+               d.dept_name,
+               d.order_num,
+               d.leader,
+               d.status as dept_status,
+               r.role_id,
+               r.role_name,
+               r.role_key,
+               r.role_sort,
+               r.data_scope,
+               r.status as role_status
         from sys_user u
-		    left join sys_dept d on u.dept_id = d.dept_id
-		    left join sys_user_role ur on u.user_id = ur.user_id
-		    left join sys_role r on r.role_id = ur.role_id
+                 left join sys_dept d on u.dept_id = d.dept_id
+                 left join sys_user_role ur on u.user_id = ur.user_id
+                 left join sys_role r on r.role_id = ur.role_id
     </sql>
-    
-    <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
-		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
-		left join sys_dept d on u.dept_id = d.dept_id
-		where u.del_flag = '0'
-		<if test="userId != null and userId != 0">
-			AND u.user_id = #{userId}
-		</if>
-		<if test="userName != null and userName != ''">
-			AND u.user_name like concat('%', #{userName}, '%')
-		</if>
-		<if test="status != null and status != ''">
-			AND u.status = #{status}
-		</if>
-		<if test="phonenumber != null and phonenumber != ''">
-			AND u.phonenumber like concat('%', #{phonenumber}, '%')
-		</if>
-		<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
-			AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
-		</if>
-		<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
-			AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
-		</if>
-		<if test="deptId != null and deptId != 0">
-			AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))
-		</if>
-		<!-- 数据范围过滤 -->
-		${params.dataScope}
-	</select>
-	
-	<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
-	    select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
-	    from sys_user u
-			 left join sys_dept d on u.dept_id = d.dept_id
-			 left join sys_user_role ur on u.user_id = ur.user_id
-			 left join sys_role r on r.role_id = ur.role_id
-	    where u.del_flag = '0' and r.role_id = #{roleId}
-	    <if test="userName != null and userName != ''">
-			AND u.user_name like concat('%', #{userName}, '%')
-		</if>
-		<if test="phonenumber != null and phonenumber != ''">
-			AND u.phonenumber like concat('%', #{phonenumber}, '%')
-		</if>
-		<!-- 数据范围过滤 -->
-		${params.dataScope}
-	</select>
-	
-	<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
-	    select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
-	    from sys_user u
-			 left join sys_dept d on u.dept_id = d.dept_id
-			 left join sys_user_role ur on u.user_id = ur.user_id
-			 left join sys_role r on r.role_id = ur.role_id
-	    where u.del_flag = '0' and (r.role_id != #{roleId} or r.role_id IS NULL)
-	    and u.user_id not in (select u.user_id from sys_user u inner join sys_user_role ur on u.user_id = ur.user_id and ur.role_id = #{roleId})
-	    <if test="userName != null and userName != ''">
-			AND u.user_name like concat('%', #{userName}, '%')
-		</if>
-		<if test="phonenumber != null and phonenumber != ''">
-			AND u.phonenumber like concat('%', #{phonenumber}, '%')
-		</if>
-		<!-- 数据范围过滤 -->
-		${params.dataScope}
-	</select>
-	
-	<select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
-	    <include refid="selectUserVo"/>
-		where u.user_name = #{userName} and u.del_flag = '0'
-	</select>
-	
-	<select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
-		<include refid="selectUserVo"/>
-		where u.user_id = #{userId}
-	</select>
-	
-	<select id="checkUserNameUnique" parameterType="String" resultMap="SysUserResult">
-		select user_id, user_name from sys_user where user_name = #{userName} and del_flag = '0' limit 1
-	</select>
-	
-	<select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
-		select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} and del_flag = '0' limit 1
-	</select>
-	
-	<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
-		select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
-	</select>
-	
-	<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
- 		insert into sys_user(
- 			<if test="userId != null and userId != 0">user_id,</if>
- 			<if test="deptId != null and deptId != 0">dept_id,</if>
- 			<if test="userName != null and userName != ''">user_name,</if>
- 			<if test="nickName != null and nickName != ''">nick_name,</if>
- 			<if test="email != null and email != ''">email,</if>
- 			<if test="avatar != null and avatar != ''">avatar,</if>
- 			<if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
- 			<if test="sex != null and sex != ''">sex,</if>
- 			<if test="password != null and password != ''">password,</if>
- 			<if test="status != null and status != ''">status,</if>
- 			<if test="createBy != null and createBy != ''">create_by,</if>
- 			<if test="remark != null and remark != ''">remark,</if>
- 			create_time
- 		)values(
- 			<if test="userId != null and userId != ''">#{userId},</if>
- 			<if test="deptId != null and deptId != ''">#{deptId},</if>
- 			<if test="userName != null and userName != ''">#{userName},</if>
- 			<if test="nickName != null and nickName != ''">#{nickName},</if>
- 			<if test="email != null and email != ''">#{email},</if>
- 			<if test="avatar != null and avatar != ''">#{avatar},</if>
- 			<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
- 			<if test="sex != null and sex != ''">#{sex},</if>
- 			<if test="password != null and password != ''">#{password},</if>
- 			<if test="status != null and status != ''">#{status},</if>
- 			<if test="createBy != null and createBy != ''">#{createBy},</if>
- 			<if test="remark != null and remark != ''">#{remark},</if>
- 			sysdate()
- 		)
-	</insert>
-	
-	<update id="updateUser" parameterType="SysUser">
- 		update sys_user
- 		<set>
- 			<if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
- 			<if test="userName != null and userName != ''">user_name = #{userName},</if>
- 			<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
- 			<if test="email != null ">email = #{email},</if>
- 			<if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
- 			<if test="sex != null and sex != ''">sex = #{sex},</if>
- 			<if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
- 			<if test="password != null and password != ''">password = #{password},</if>
- 			<if test="status != null and status != ''">status = #{status},</if>
- 			<if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
- 			<if test="loginDate != null">login_date = #{loginDate},</if>
- 			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
- 			<if test="remark != null">remark = #{remark},</if>
- 			update_time = sysdate()
- 		</set>
- 		where user_id = #{userId}
-	</update>
-	
-	<update id="updateUserStatus" parameterType="SysUser">
- 		update sys_user set status = #{status} where user_id = #{userId}
-	</update>
-	
-	<update id="updateUserAvatar" parameterType="SysUser">
- 		update sys_user set avatar = #{avatar} where user_name = #{userName}
-	</update>
-	
-	<update id="resetUserPwd" parameterType="SysUser">
- 		update sys_user set password = #{password} where user_name = #{userName}
-	</update>
-	
-	<delete id="deleteUserById" parameterType="Long">
- 		update sys_user set del_flag = '2' where user_id = #{userId}
- 	</delete>
- 	
- 	<delete id="deleteUserByIds" parameterType="Long">
- 		update sys_user set del_flag = '2' where user_id in
- 		<foreach collection="array" item="userId" open="(" separator="," close=")">
- 			#{userId}
-        </foreach> 
- 	</delete>
-	
+
+    <select id="selectUserList" parameterType="com.ruoyi.common.core.domain.entity.SysUser" resultMap="SysUserResult">
+        select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status,
+        u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user
+        u
+        left join sys_dept d on u.dept_id = d.dept_id
+        where u.del_flag = '0'
+        <if test="userId != null and userId != 0">
+            AND u.user_id = #{userId}
+        </if>
+        <if test="userName != null and userName != ''">
+            AND u.user_name like concat('%', #{userName}, '%')
+        </if>
+        <if test="status != null and status != ''">
+            AND u.status = #{status}
+        </if>
+        <if test="phonenumber != null and phonenumber != ''">
+            AND u.phonenumber like concat('%', #{phonenumber}, '%')
+        </if>
+        <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
+            AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
+        </if>
+        <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
+            AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
+        </if>
+        <if test="deptId != null and deptId != 0">
+            AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId},
+            ancestors) ))
+        </if>
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
+    </select>
+
+    <select id="selectAllocatedList" parameterType="com.ruoyi.common.core.domain.entity.SysUser"
+            resultMap="SysUserResult">
+        select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
+        from sys_user u
+        left join sys_dept d on u.dept_id = d.dept_id
+        left join sys_user_role ur on u.user_id = ur.user_id
+        left join sys_role r on r.role_id = ur.role_id
+        where u.del_flag = '0' and r.role_id = #{roleId}
+        <if test="userName != null and userName != ''">
+            AND u.user_name like concat('%', #{userName}, '%')
+        </if>
+        <if test="phonenumber != null and phonenumber != ''">
+            AND u.phonenumber like concat('%', #{phonenumber}, '%')
+        </if>
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
+    </select>
+
+    <select id="selectUnallocatedList" parameterType="com.ruoyi.common.core.domain.entity.SysUser"
+            resultMap="SysUserResult">
+        select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
+        from sys_user u
+        left join sys_dept d on u.dept_id = d.dept_id
+        left join sys_user_role ur on u.user_id = ur.user_id
+        left join sys_role r on r.role_id = ur.role_id
+        where u.del_flag = '0' and (r.role_id != #{roleId} or r.role_id IS NULL)
+        and u.user_id not in (select u.user_id from sys_user u inner join sys_user_role ur on u.user_id = ur.user_id and
+        ur.role_id = #{roleId})
+        <if test="userName != null and userName != ''">
+            AND u.user_name like concat('%', #{userName}, '%')
+        </if>
+        <if test="phonenumber != null and phonenumber != ''">
+            AND u.phonenumber like concat('%', #{phonenumber}, '%')
+        </if>
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
+    </select>
+
+    <select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
+        <include refid="selectUserVo"/>
+        where u.user_name = #{userName} and u.del_flag = '0'
+    </select>
+
+    <select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
+        <include refid="selectUserVo"/>
+        where u.user_id = #{userId}
+    </select>
+
+    <select id="checkUserNameUnique" parameterType="String" resultMap="SysUserResult">
+        select user_id, user_name
+        from sys_user
+        where user_name = #{userName}
+          and del_flag = '0'
+        limit 1
+    </select>
+
+    <select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
+        select user_id, phonenumber
+        from sys_user
+        where phonenumber = #{phonenumber}
+          and del_flag = '0'
+        limit 1
+    </select>
+
+    <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
+        select user_id, email
+        from sys_user
+        where email = #{email}
+          and del_flag = '0'
+        limit 1
+    </select>
+
+    <insert id="insertUser" parameterType="com.ruoyi.common.core.domain.entity.SysUser" useGeneratedKeys="true"
+            keyProperty="userId">
+        insert into sys_user(
+        <if test="userId != null and userId != 0">user_id,</if>
+        <if test="deptId != null and deptId != 0">dept_id,</if>
+        <if test="userName != null and userName != ''">user_name,</if>
+        <if test="nickName != null and nickName != ''">nick_name,</if>
+        <if test="email != null and email != ''">email,</if>
+        <if test="avatar != null and avatar != ''">avatar,</if>
+        <if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
+        <if test="sex != null and sex != ''">sex,</if>
+        <if test="password != null and password != ''">password,</if>
+        <if test="status != null and status != ''">status,</if>
+        <if test="createBy != null and createBy != ''">create_by,</if>
+        <if test="remark != null and remark != ''">remark,</if>
+        create_time
+        )values(
+        <if test="userId != null and userId != ''">#{userId},</if>
+        <if test="deptId != null and deptId != ''">#{deptId},</if>
+        <if test="userName != null and userName != ''">#{userName},</if>
+        <if test="nickName != null and nickName != ''">#{nickName},</if>
+        <if test="email != null and email != ''">#{email},</if>
+        <if test="avatar != null and avatar != ''">#{avatar},</if>
+        <if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
+        <if test="sex != null and sex != ''">#{sex},</if>
+        <if test="password != null and password != ''">#{password},</if>
+        <if test="status != null and status != ''">#{status},</if>
+        <if test="createBy != null and createBy != ''">#{createBy},</if>
+        <if test="remark != null and remark != ''">#{remark},</if>
+        sysdate()
+        )
+    </insert>
+
+    <update id="updateUser" parameterType="com.ruoyi.common.core.domain.entity.SysUser">
+        update sys_user
+        <set>
+            <if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
+            <if test="userName != null and userName != ''">user_name = #{userName},</if>
+            <if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
+            <if test="email != null ">email = #{email},</if>
+            <if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
+            <if test="sex != null and sex != ''">sex = #{sex},</if>
+            <if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
+            <if test="password != null and password != ''">password = #{password},</if>
+            <if test="status != null and status != ''">status = #{status},</if>
+            <if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
+            <if test="loginDate != null">login_date = #{loginDate},</if>
+            <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            update_time = sysdate()
+        </set>
+        where user_id = #{userId}
+    </update>
+
+    <update id="updateUserStatus" parameterType="com.ruoyi.common.core.domain.entity.SysUser">
+        update sys_user
+        set status = #{status}
+        where user_id = #{userId}
+    </update>
+
+    <update id="updateUserAvatar" parameterType="com.ruoyi.common.core.domain.entity.SysUser">
+        update sys_user
+        set avatar = #{avatar}
+        where user_name = #{userName}
+    </update>
+
+    <update id="resetUserPwd" parameterType="com.ruoyi.common.core.domain.entity.SysUser">
+        update sys_user
+        set password = #{password}
+        where user_name = #{userName}
+    </update>
+
+    <delete id="deleteUserById" parameterType="Long">
+        update sys_user
+        set del_flag = '2'
+        where user_id = #{userId}
+    </delete>
+
+    <delete id="deleteUserByIds" parameterType="Long">
+        update sys_user set del_flag = '2' where user_id in
+        <foreach collection="array" item="userId" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+    </delete>
+
 </mapper> 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml
index 2b90bc4..37eac8b 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml
@@ -1,34 +1,38 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysUserPostMapper">
 
-	<resultMap type="SysUserPost" id="SysUserPostResult">
-		<result property="userId"     column="user_id"      />
-		<result property="postId"     column="post_id"      />
-	</resultMap>
+    <resultMap type="com.ruoyi.system.domain.SysUserPost" id="SysUserPostResult">
+        <result property="userId" column="user_id"/>
+        <result property="postId" column="post_id"/>
+    </resultMap>
+
+    <delete id="deleteUserPostByUserId" parameterType="Long">
+        delete
+        from sys_user_post
+        where user_id = #{userId}
+    </delete>
+
+    <select id="countUserPostById" resultType="Integer">
+        select count(1)
+        from sys_user_post
+        where post_id = #{postId}
+    </select>
+
+    <delete id="deleteUserPost" parameterType="Long">
+        delete from sys_user_post where user_id in
+        <foreach collection="array" item="userId" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+    </delete>
+
+    <insert id="batchUserPost">
+        insert into sys_user_post(user_id, post_id) values
+        <foreach item="item" index="index" collection="list" separator=",">
+            (#{item.userId},#{item.postId})
+        </foreach>
+    </insert>
 
-	<delete id="deleteUserPostByUserId" parameterType="Long">
-		delete from sys_user_post where user_id=#{userId}
-	</delete>
-	
-	<select id="countUserPostById" resultType="Integer">
-	    select count(1) from sys_user_post where post_id=#{postId}  
-	</select>
-	
-	<delete id="deleteUserPost" parameterType="Long">
- 		delete from sys_user_post where user_id in
- 		<foreach collection="array" item="userId" open="(" separator="," close=")">
- 			#{userId}
-        </foreach> 
- 	</delete>
-	
-	<insert id="batchUserPost">
-		insert into sys_user_post(user_id, post_id) values
-		<foreach item="item" index="index" collection="list" separator=",">
-			(#{item.userId},#{item.postId})
-		</foreach>
-	</insert>
-	
 </mapper> 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml
index dd72689..0c96069 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml
@@ -1,44 +1,51 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysUserRoleMapper">
 
-	<resultMap type="SysUserRole" id="SysUserRoleResult">
-		<result property="userId"     column="user_id"      />
-		<result property="roleId"     column="role_id"      />
-	</resultMap>
+    <resultMap type="com.ruoyi.system.domain.SysUserRole" id="SysUserRoleResult">
+        <result property="userId" column="user_id"/>
+        <result property="roleId" column="role_id"/>
+    </resultMap>
 
-	<delete id="deleteUserRoleByUserId" parameterType="Long">
-		delete from sys_user_role where user_id=#{userId}
-	</delete>
-	
-	<select id="countUserRoleByRoleId" resultType="Integer">
-	    select count(1) from sys_user_role where role_id=#{roleId}  
-	</select>
-	
-	<delete id="deleteUserRole" parameterType="Long">
- 		delete from sys_user_role where user_id in
- 		<foreach collection="array" item="userId" open="(" separator="," close=")">
- 			#{userId}
-        </foreach> 
- 	</delete>
-	
-	<insert id="batchUserRole">
-		insert into sys_user_role(user_id, role_id) values
-		<foreach item="item" index="index" collection="list" separator=",">
-			(#{item.userId},#{item.roleId})
-		</foreach>
-	</insert>
-	
-	<delete id="deleteUserRoleInfo" parameterType="SysUserRole">
-		delete from sys_user_role where user_id=#{userId} and role_id=#{roleId}
-	</delete>
-	
-	<delete id="deleteUserRoleInfos">
-	    delete from sys_user_role where role_id=#{roleId} and user_id in
- 	    <foreach collection="userIds" item="userId" open="(" separator="," close=")">
- 	        #{userId}
-            </foreach> 
-	</delete>
+    <delete id="deleteUserRoleByUserId" parameterType="Long">
+        delete
+        from sys_user_role
+        where user_id = #{userId}
+    </delete>
+
+    <select id="countUserRoleByRoleId" resultType="Integer">
+        select count(1)
+        from sys_user_role
+        where role_id = #{roleId}
+    </select>
+
+    <delete id="deleteUserRole" parameterType="Long">
+        delete from sys_user_role where user_id in
+        <foreach collection="array" item="userId" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+    </delete>
+
+    <insert id="batchUserRole">
+        insert into sys_user_role(user_id, role_id) values
+        <foreach item="item" index="index" collection="list" separator=",">
+            (#{item.userId},#{item.roleId})
+        </foreach>
+    </insert>
+
+    <delete id="deleteUserRoleInfo" parameterType="com.ruoyi.system.domain.SysUserRole">
+        delete
+        from sys_user_role
+        where user_id = #{userId}
+          and role_id = #{roleId}
+    </delete>
+
+    <delete id="deleteUserRoleInfos">
+        delete from sys_user_role where role_id=#{roleId} and user_id in
+        <foreach collection="userIds" item="userId" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+    </delete>
 </mapper> 
\ No newline at end of file
diff --git a/ruoyi-ui/.editorconfig b/ruoyi-ui/.editorconfig
deleted file mode 100644
index 7034f9b..0000000
--- a/ruoyi-ui/.editorconfig
+++ /dev/null
@@ -1,22 +0,0 @@
-# 告诉EditorConfig插件,这是根文件,不用继续往上查找
-root = true
-
-# 匹配全部文件
-[*]
-# 设置字符集
-charset = utf-8
-# 缩进风格,可选space、tab
-indent_style = space
-# 缩进的空格数
-indent_size = 2
-# 结尾换行符,可选lf、cr、crlf
-end_of_line = lf
-# 在文件结尾插入新行
-insert_final_newline = true
-# 删除一行中的前后空格
-trim_trailing_whitespace = true
-
-# 匹配md结尾的文件
-[*.md]
-insert_final_newline = false
-trim_trailing_whitespace = false
diff --git a/ruoyi-ui/.env.development b/ruoyi-ui/.env.development
deleted file mode 100644
index 302ecd1..0000000
--- a/ruoyi-ui/.env.development
+++ /dev/null
@@ -1,11 +0,0 @@
-# 页面标题
-VUE_APP_TITLE = 若依管理系统
-
-# 开发环境配置
-ENV = 'development'
-
-# 若依管理系统/开发环境
-VUE_APP_BASE_API = '/dev-api'
-
-# 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true
diff --git a/ruoyi-ui/.env.production b/ruoyi-ui/.env.production
deleted file mode 100644
index b4893b0..0000000
--- a/ruoyi-ui/.env.production
+++ /dev/null
@@ -1,8 +0,0 @@
-# 页面标题
-VUE_APP_TITLE = 若依管理系统
-
-# 生产环境配置
-ENV = 'production'
-
-# 若依管理系统/生产环境
-VUE_APP_BASE_API = '/prod-api'
diff --git a/ruoyi-ui/.env.staging b/ruoyi-ui/.env.staging
deleted file mode 100644
index 361859f..0000000
--- a/ruoyi-ui/.env.staging
+++ /dev/null
@@ -1,10 +0,0 @@
-# 页面标题
-VUE_APP_TITLE = 若依管理系统
-
-NODE_ENV = production
-
-# 测试环境配置
-ENV = 'staging'
-
-# 若依管理系统/测试环境
-VUE_APP_BASE_API = '/stage-api'
diff --git a/ruoyi-ui/.eslintignore b/ruoyi-ui/.eslintignore
deleted file mode 100644
index 89be6f6..0000000
--- a/ruoyi-ui/.eslintignore
+++ /dev/null
@@ -1,10 +0,0 @@
-# 忽略build目录下类型为js的文件的语法检查
-build/*.js
-# 忽略src/assets目录下文件的语法检查
-src/assets
-# 忽略public目录下文件的语法检查
-public
-# 忽略当前目录下为js的文件的语法检查
-*.js
-# 忽略当前目录下为vue的文件的语法检查
-*.vue
\ No newline at end of file
diff --git a/ruoyi-ui/.eslintrc.js b/ruoyi-ui/.eslintrc.js
deleted file mode 100644
index 82bbdee..0000000
--- a/ruoyi-ui/.eslintrc.js
+++ /dev/null
@@ -1,199 +0,0 @@
-// ESlint 检查配置
-module.exports = {
-  root: true,
-  parserOptions: {
-    parser: 'babel-eslint',
-    sourceType: 'module'
-  },
-  env: {
-    browser: true,
-    node: true,
-    es6: true,
-  },
-  extends: ['plugin:vue/recommended', 'eslint:recommended'],
-
-  // add your custom rules here
-  //it is base on https://github.com/vuejs/eslint-config-vue
-  rules: {
-    "vue/max-attributes-per-line": [2, {
-      "singleline": 10,
-      "multiline": {
-        "max": 1,
-        "allowFirstLine": false
-      }
-    }],
-    "vue/singleline-html-element-content-newline": "off",
-    "vue/multiline-html-element-content-newline":"off",
-    "vue/name-property-casing": ["error", "PascalCase"],
-    "vue/no-v-html": "off",
-    'accessor-pairs': 2,
-    'arrow-spacing': [2, {
-      'before': true,
-      'after': true
-    }],
-    'block-spacing': [2, 'always'],
-    'brace-style': [2, '1tbs', {
-      'allowSingleLine': true
-    }],
-    'camelcase': [0, {
-      'properties': 'always'
-    }],
-    'comma-dangle': [2, 'never'],
-    'comma-spacing': [2, {
-      'before': false,
-      'after': true
-    }],
-    'comma-style': [2, 'last'],
-    'constructor-super': 2,
-    'curly': [2, 'multi-line'],
-    'dot-location': [2, 'property'],
-    'eol-last': 2,
-    'eqeqeq': ["error", "always", {"null": "ignore"}],
-    'generator-star-spacing': [2, {
-      'before': true,
-      'after': true
-    }],
-    'handle-callback-err': [2, '^(err|error)$'],
-    'indent': [2, 2, {
-      'SwitchCase': 1
-    }],
-    'jsx-quotes': [2, 'prefer-single'],
-    'key-spacing': [2, {
-      'beforeColon': false,
-      'afterColon': true
-    }],
-    'keyword-spacing': [2, {
-      'before': true,
-      'after': true
-    }],
-    'new-cap': [2, {
-      'newIsCap': true,
-      'capIsNew': false
-    }],
-    'new-parens': 2,
-    'no-array-constructor': 2,
-    'no-caller': 2,
-    'no-console': 'off',
-    'no-class-assign': 2,
-    'no-cond-assign': 2,
-    'no-const-assign': 2,
-    'no-control-regex': 0,
-    'no-delete-var': 2,
-    'no-dupe-args': 2,
-    'no-dupe-class-members': 2,
-    'no-dupe-keys': 2,
-    'no-duplicate-case': 2,
-    'no-empty-character-class': 2,
-    'no-empty-pattern': 2,
-    'no-eval': 2,
-    'no-ex-assign': 2,
-    'no-extend-native': 2,
-    'no-extra-bind': 2,
-    'no-extra-boolean-cast': 2,
-    'no-extra-parens': [2, 'functions'],
-    'no-fallthrough': 2,
-    'no-floating-decimal': 2,
-    'no-func-assign': 2,
-    'no-implied-eval': 2,
-    'no-inner-declarations': [2, 'functions'],
-    'no-invalid-regexp': 2,
-    'no-irregular-whitespace': 2,
-    'no-iterator': 2,
-    'no-label-var': 2,
-    'no-labels': [2, {
-      'allowLoop': false,
-      'allowSwitch': false
-    }],
-    'no-lone-blocks': 2,
-    'no-mixed-spaces-and-tabs': 2,
-    'no-multi-spaces': 2,
-    'no-multi-str': 2,
-    'no-multiple-empty-lines': [2, {
-      'max': 1
-    }],
-    'no-native-reassign': 2,
-    'no-negated-in-lhs': 2,
-    'no-new-object': 2,
-    'no-new-require': 2,
-    'no-new-symbol': 2,
-    'no-new-wrappers': 2,
-    'no-obj-calls': 2,
-    'no-octal': 2,
-    'no-octal-escape': 2,
-    'no-path-concat': 2,
-    'no-proto': 2,
-    'no-redeclare': 2,
-    'no-regex-spaces': 2,
-    'no-return-assign': [2, 'except-parens'],
-    'no-self-assign': 2,
-    'no-self-compare': 2,
-    'no-sequences': 2,
-    'no-shadow-restricted-names': 2,
-    'no-spaced-func': 2,
-    'no-sparse-arrays': 2,
-    'no-this-before-super': 2,
-    'no-throw-literal': 2,
-    'no-trailing-spaces': 2,
-    'no-undef': 2,
-    'no-undef-init': 2,
-    'no-unexpected-multiline': 2,
-    'no-unmodified-loop-condition': 2,
-    'no-unneeded-ternary': [2, {
-      'defaultAssignment': false
-    }],
-    'no-unreachable': 2,
-    'no-unsafe-finally': 2,
-    'no-unused-vars': [2, {
-      'vars': 'all',
-      'args': 'none'
-    }],
-    'no-useless-call': 2,
-    'no-useless-computed-key': 2,
-    'no-useless-constructor': 2,
-    'no-useless-escape': 0,
-    'no-whitespace-before-property': 2,
-    'no-with': 2,
-    'one-var': [2, {
-      'initialized': 'never'
-    }],
-    'operator-linebreak': [2, 'after', {
-      'overrides': {
-        '?': 'before',
-        ':': 'before'
-      }
-    }],
-    'padded-blocks': [2, 'never'],
-    'quotes': [2, 'single', {
-      'avoidEscape': true,
-      'allowTemplateLiterals': true
-    }],
-    'semi': [2, 'never'],
-    'semi-spacing': [2, {
-      'before': false,
-      'after': true
-    }],
-    'space-before-blocks': [2, 'always'],
-    'space-before-function-paren': [2, 'never'],
-    'space-in-parens': [2, 'never'],
-    'space-infix-ops': 2,
-    'space-unary-ops': [2, {
-      'words': true,
-      'nonwords': false
-    }],
-    'spaced-comment': [2, 'always', {
-      'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
-    }],
-    'template-curly-spacing': [2, 'never'],
-    'use-isnan': 2,
-    'valid-typeof': 2,
-    'wrap-iife': [2, 'any'],
-    'yield-star-spacing': [2, 'both'],
-    'yoda': [2, 'never'],
-    'prefer-const': 2,
-    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
-    'object-curly-spacing': [2, 'always', {
-      objectsInObjects: false
-    }],
-    'array-bracket-spacing': [2, 'never']
-  }
-}
diff --git a/ruoyi-ui/.gitignore b/ruoyi-ui/.gitignore
deleted file mode 100644
index 78a752d..0000000
--- a/ruoyi-ui/.gitignore
+++ /dev/null
@@ -1,23 +0,0 @@
-.DS_Store
-node_modules/
-dist/
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-**/*.log
-
-tests/**/coverage/
-tests/e2e/reports
-selenium-debug.log
-
-# Editor directories and files
-.idea
-.vscode
-*.suo
-*.ntvs*
-*.njsproj
-*.sln
-*.local
-
-package-lock.json
-yarn.lock
diff --git a/ruoyi-ui/README.md b/ruoyi-ui/README.md
deleted file mode 100644
index 00c0ab8..0000000
--- a/ruoyi-ui/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-## 开发
-
-```bash
-# 克隆项目
-git clone https://gitee.com/y_project/RuoYi-Vue
-
-# 进入项目目录
-cd ruoyi-ui
-
-# 安装依赖
-npm install
-
-# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
-npm install --registry=https://registry.npmmirror.com
-
-# 启动服务
-npm run dev
-```
-
-浏览器访问 http://localhost:80
-
-## 发布
-
-```bash
-# 构建测试环境
-npm run build:stage
-
-# 构建生产环境
-npm run build:prod
-```
\ No newline at end of file
diff --git a/ruoyi-ui/babel.config.js b/ruoyi-ui/babel.config.js
deleted file mode 100644
index c8267b2..0000000
--- a/ruoyi-ui/babel.config.js
+++ /dev/null
@@ -1,13 +0,0 @@
-module.exports = {
-  presets: [
-    // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
-    '@vue/cli-plugin-babel/preset'
-  ],
-  'env': {
-    'development': {
-      // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
-      // This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
-      'plugins': ['dynamic-import-node']
-    }
-  }
-}
\ No newline at end of file
diff --git a/ruoyi-ui/bin/build.bat b/ruoyi-ui/bin/build.bat
deleted file mode 100644
index dda590d..0000000
--- a/ruoyi-ui/bin/build.bat
+++ /dev/null
@@ -1,12 +0,0 @@
-@echo off
-echo.
-echo [��Ϣ] ���Web���̣�����dist�ļ���
-echo.
-
-%~d0
-cd %~dp0
-
-cd ..
-npm run build:prod
-
-pause
\ No newline at end of file
diff --git a/ruoyi-ui/bin/package.bat b/ruoyi-ui/bin/package.bat
deleted file mode 100644
index 0e5bc0f..0000000
--- a/ruoyi-ui/bin/package.bat
+++ /dev/null
@@ -1,12 +0,0 @@
-@echo off
-echo.
-echo [��Ϣ] ��װWeb���̣�����node_modules�ļ���
-echo.
-
-%~d0
-cd %~dp0
-
-cd ..
-npm install --registry=https://registry.npmmirror.com
-
-pause
\ No newline at end of file
diff --git a/ruoyi-ui/bin/run-web.bat b/ruoyi-ui/bin/run-web.bat
deleted file mode 100644
index d30deae..0000000
--- a/ruoyi-ui/bin/run-web.bat
+++ /dev/null
@@ -1,12 +0,0 @@
-@echo off
-echo.
-echo [��Ϣ] ʹ�� Vue CLI �������� Web ���̡�
-echo.
-
-%~d0
-cd %~dp0
-
-cd ..
-npm run dev
-
-pause
\ No newline at end of file
diff --git a/ruoyi-ui/build/index.js b/ruoyi-ui/build/index.js
deleted file mode 100644
index 0c57de2..0000000
--- a/ruoyi-ui/build/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-const { run } = require('runjs')
-const chalk = require('chalk')
-const config = require('../vue.config.js')
-const rawArgv = process.argv.slice(2)
-const args = rawArgv.join(' ')
-
-if (process.env.npm_config_preview || rawArgv.includes('--preview')) {
-  const report = rawArgv.includes('--report')
-
-  run(`vue-cli-service build ${args}`)
-
-  const port = 9526
-  const publicPath = config.publicPath
-
-  var connect = require('connect')
-  var serveStatic = require('serve-static')
-  const app = connect()
-
-  app.use(
-    publicPath,
-    serveStatic('./dist', {
-      index: ['index.html', '/']
-    })
-  )
-
-  app.listen(port, function () {
-    console.log(chalk.green(`> Preview at  http://localhost:${port}${publicPath}`))
-    if (report) {
-      console.log(chalk.green(`> Report at  http://localhost:${port}${publicPath}report.html`))
-    }
-
-  })
-} else {
-  run(`vue-cli-service build ${args}`)
-}
diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json
deleted file mode 100644
index 2e4b91e..0000000
--- a/ruoyi-ui/package.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
-  "name": "ruoyi",
-  "version": "3.8.7",
-  "description": "若依管理系统",
-  "author": "若依",
-  "license": "MIT",
-  "scripts": {
-    "dev": "vue-cli-service serve",
-    "build:prod": "vue-cli-service build",
-    "build:stage": "vue-cli-service build --mode staging",
-    "preview": "node build/index.js --preview",
-    "lint": "eslint --ext .js,.vue src"
-  },
-  "husky": {
-    "hooks": {
-      "pre-commit": "lint-staged"
-    }
-  },
-  "lint-staged": {
-    "src/**/*.{js,vue}": [
-      "eslint --fix",
-      "git add"
-    ]
-  },
-  "keywords": [
-    "vue",
-    "admin",
-    "dashboard",
-    "element-ui",
-    "boilerplate",
-    "admin-template",
-    "management-system"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "https://gitee.com/y_project/RuoYi-Vue.git"
-  },
-  "dependencies": {
-    "@riophae/vue-treeselect": "0.4.0",
-    "axios": "0.24.0",
-    "clipboard": "2.0.8",
-    "core-js": "3.25.3",
-    "echarts": "5.4.0",
-    "element-ui": "2.15.14",
-    "file-saver": "2.0.5",
-    "fuse.js": "6.4.3",
-    "highlight.js": "9.18.5",
-    "js-beautify": "1.13.0",
-    "js-cookie": "3.0.1",
-    "jsencrypt": "3.0.0-rc.1",
-    "nprogress": "0.2.0",
-    "quill": "1.3.7",
-    "screenfull": "5.0.2",
-    "sortablejs": "1.10.2",
-    "vue": "2.6.12",
-    "vue-count-to": "1.0.13",
-    "vue-cropper": "0.5.5",
-    "vue-meta": "2.4.0",
-    "vue-router": "3.4.9",
-    "vuedraggable": "2.24.3",
-    "vuex": "3.6.0"
-  },
-  "devDependencies": {
-    "@vue/cli-plugin-babel": "4.4.6",
-    "@vue/cli-plugin-eslint": "4.4.6",
-    "@vue/cli-service": "4.4.6",
-    "babel-eslint": "10.1.0",
-    "babel-plugin-dynamic-import-node": "2.3.3",
-    "chalk": "4.1.0",
-    "compression-webpack-plugin": "6.1.2",
-    "connect": "3.6.6",
-    "eslint": "7.15.0",
-    "eslint-plugin-vue": "7.2.0",
-    "lint-staged": "10.5.3",
-    "runjs": "4.4.2",
-    "sass": "1.32.13",
-    "sass-loader": "10.1.1",
-    "script-ext-html-webpack-plugin": "2.1.5",
-    "svg-sprite-loader": "5.1.1",
-    "vue-template-compiler": "2.6.12"
-  },
-  "engines": {
-    "node": ">=8.9",
-    "npm": ">= 3.0.0"
-  },
-  "browserslist": [
-    "> 1%",
-    "last 2 versions"
-  ]
-}
diff --git a/ruoyi-ui/public/favicon.ico b/ruoyi-ui/public/favicon.ico
deleted file mode 100644
index e26376026420542212ed58d90d0ed34f554fa4ae..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5663
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

diff --git a/ruoyi-ui/public/html/ie.html b/ruoyi-ui/public/html/ie.html
deleted file mode 100644
index 052ffcd..0000000
--- a/ruoyi-ui/public/html/ie.html
+++ /dev/null
@@ -1,46 +0,0 @@
-
-<!DOCTYPE html>
-<html lang="zh-CN">
-<head>
-    <meta charset="UTF-8" />
-    <title>请升级您的浏览器</title>
-    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" >
-    <meta name="renderer" content="webkit">
-    <base target="_blank" />
-    <style type="text/css">
-        html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0}
-        a{text-decoration:none;color:#0072c6;}a:hover{text-decoration:none;color:#004d8c;}
-        body{width:960px;margin:0 auto;padding:10px;font-size:14px;line-height:24px;color:#454545;font-family:'Microsoft YaHei UI','Microsoft YaHei',DengXian,SimSun,'Segoe UI',Tahoma,Helvetica,sans-serif;overflow-y:scroll}
-        h1{font-size:40px;line-height:80px;font-weight:100;margin-bottom:10px;}
-        h2{font-size:20px;line-height:25px;font-weight:100;margin:10px 0;}
-        em{color:red}
-        p{margin-bottom:10px;}
-        hr{margin:20px 0;border:0;border-top:1px solid #dadada}
-        span{display:block;font-size:12px;line-height:12px;}
-        .clean{clear:both;}
-        .browser{padding:10px 10px;}
-        .browser li{width:auto;padding:0 80px;margin-top:30px;height:34px;line-height:22px;float:left;list-style:none;background:url(data:image/png;base64,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) no-repeat;padding-left:40px}
-        .browser .browser-firefox{background-position:0 -34px}
-        .browser .browser-ie{background-position:0 -68px;margin-left:0px}
-        .browser .browser-360{background-position:0 -170px;margin-left: -27px}
-    </style>
-</head>
-<body style="margin-top:50px">
-<h1>请升级您的浏览器,以便我们更好的为您提供服务!</h1>
-<p>您正在使用 Internet Explorer 的早期版本(IE11以下版本或使用该内核的浏览器)。这意味着在升级浏览器前,您将无法访问此网站。</p>
-<hr>
-<h2>请注意:微软公司对Windows XP 及 Internet Explorer 早期版本的支持已经结束</h2>
-<p>自 2016 年 1 月 12 日起,Microsoft 不再为 IE 11 以下版本提供相应支持和更新。没有关键的浏览器安全更新,您的电脑可能易受有害病毒、间谍软件和其他恶意软件的攻击,它们可以窃取或损害您的业务数据和信息。请参阅 <a href="https://www.microsoft.com/zh-cn/WindowsForBusiness/End-of-IE-support">微软对 Internet Explorer 早期版本的支持将于 2016 年 1 月 12 日结束的说明</a> 。</p>
-<hr>
-<h2>您可以选择更先进的浏览器</h2>
-<p>推荐使用以下浏览器的最新版本。如果您的电脑已有以下浏览器的最新版本则直接使用该浏览器访问即可。</p>
-<ul class="browser">
-    <li class="browser-chrome"><a href="https://www.google.cn/chrome/browser/desktop/index.html?hl=zh-CN&standalone=1"> 谷歌浏览器<span>Google Chrome</span></a></li>
-    <li class="browser-firefox"><a href="https://www.mozilla.org/zh-CN/firefox/new/"> 火狐浏览器<span>Mozilla Firefox</span></a></li>
-    <li class="browser-ie"><a href="https://windows.microsoft.com/zh-cn/internet-explorer/download-ie"> IE 11 浏览器<span>Internet Explorer</span></a></li>
-    <li class="browser-360"><a href="http://se.360.cn/"> 360安全浏览器<span>360 Chrome</span></a></li>
-    <div class="clean"></div>
-</ul>
-<hr>
-</body>
-</html>
\ No newline at end of file
diff --git a/ruoyi-ui/public/index.html b/ruoyi-ui/public/index.html
deleted file mode 100644
index 925455c..0000000
--- a/ruoyi-ui/public/index.html
+++ /dev/null
@@ -1,208 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <meta name="renderer" content="webkit">
-    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
-    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
-    <title><%= webpackConfig.name %></title>
-    <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
-	  <style>
-    html,
-    body,
-    #app {
-      height: 100%;
-      margin: 0px;
-      padding: 0px;
-    }
-    .chromeframe {
-      margin: 0.2em 0;
-      background: #ccc;
-      color: #000;
-      padding: 0.2em 0;
-    }
-
-    #loader-wrapper {
-      position: fixed;
-      top: 0;
-      left: 0;
-      width: 100%;
-      height: 100%;
-      z-index: 999999;
-    }
-
-    #loader {
-      display: block;
-      position: relative;
-      left: 50%;
-      top: 50%;
-      width: 150px;
-      height: 150px;
-      margin: -75px 0 0 -75px;
-      border-radius: 50%;
-      border: 3px solid transparent;
-      border-top-color: #FFF;
-      -webkit-animation: spin 2s linear infinite;
-      -ms-animation: spin 2s linear infinite;
-      -moz-animation: spin 2s linear infinite;
-      -o-animation: spin 2s linear infinite;
-      animation: spin 2s linear infinite;
-      z-index: 1001;
-    }
-
-    #loader:before {
-      content: "";
-      position: absolute;
-      top: 5px;
-      left: 5px;
-      right: 5px;
-      bottom: 5px;
-      border-radius: 50%;
-      border: 3px solid transparent;
-      border-top-color: #FFF;
-      -webkit-animation: spin 3s linear infinite;
-      -moz-animation: spin 3s linear infinite;
-      -o-animation: spin 3s linear infinite;
-      -ms-animation: spin 3s linear infinite;
-      animation: spin 3s linear infinite;
-    }
-
-    #loader:after {
-      content: "";
-      position: absolute;
-      top: 15px;
-      left: 15px;
-      right: 15px;
-      bottom: 15px;
-      border-radius: 50%;
-      border: 3px solid transparent;
-      border-top-color: #FFF;
-      -moz-animation: spin 1.5s linear infinite;
-      -o-animation: spin 1.5s linear infinite;
-      -ms-animation: spin 1.5s linear infinite;
-      -webkit-animation: spin 1.5s linear infinite;
-      animation: spin 1.5s linear infinite;
-    }
-
-
-    @-webkit-keyframes spin {
-      0% {
-        -webkit-transform: rotate(0deg);
-        -ms-transform: rotate(0deg);
-        transform: rotate(0deg);
-      }
-      100% {
-        -webkit-transform: rotate(360deg);
-        -ms-transform: rotate(360deg);
-        transform: rotate(360deg);
-      }
-    }
-
-    @keyframes spin {
-      0% {
-        -webkit-transform: rotate(0deg);
-        -ms-transform: rotate(0deg);
-        transform: rotate(0deg);
-      }
-      100% {
-        -webkit-transform: rotate(360deg);
-        -ms-transform: rotate(360deg);
-        transform: rotate(360deg);
-      }
-    }
-
-
-    #loader-wrapper .loader-section {
-      position: fixed;
-      top: 0;
-      width: 51%;
-      height: 100%;
-      background: #7171C6;
-      z-index: 1000;
-      -webkit-transform: translateX(0);
-      -ms-transform: translateX(0);
-      transform: translateX(0);
-    }
-
-    #loader-wrapper .loader-section.section-left {
-      left: 0;
-    }
-
-    #loader-wrapper .loader-section.section-right {
-      right: 0;
-    }
-
-
-    .loaded #loader-wrapper .loader-section.section-left {
-      -webkit-transform: translateX(-100%);
-      -ms-transform: translateX(-100%);
-      transform: translateX(-100%);
-      -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
-      transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
-    }
-
-    .loaded #loader-wrapper .loader-section.section-right {
-      -webkit-transform: translateX(100%);
-      -ms-transform: translateX(100%);
-      transform: translateX(100%);
-      -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
-      transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
-    }
-
-    .loaded #loader {
-      opacity: 0;
-      -webkit-transition: all 0.3s ease-out;
-      transition: all 0.3s ease-out;
-    }
-
-    .loaded #loader-wrapper {
-      visibility: hidden;
-      -webkit-transform: translateY(-100%);
-      -ms-transform: translateY(-100%);
-      transform: translateY(-100%);
-      -webkit-transition: all 0.3s 1s ease-out;
-      transition: all 0.3s 1s ease-out;
-    }
-
-    .no-js #loader-wrapper {
-      display: none;
-    }
-
-    .no-js h1 {
-      color: #222222;
-    }
-
-    #loader-wrapper .load_title {
-      font-family: 'Open Sans';
-      color: #FFF;
-      font-size: 19px;
-      width: 100%;
-      text-align: center;
-      z-index: 9999999999999;
-      position: absolute;
-      top: 60%;
-      opacity: 1;
-      line-height: 30px;
-    }
-
-    #loader-wrapper .load_title span {
-      font-weight: normal;
-      font-style: italic;
-      font-size: 13px;
-      color: #FFF;
-      opacity: 0.5;
-    }
-  </style>
-  </head>
-  <body>
-    <div id="app">
-	    <div id="loader-wrapper">
-		    <div id="loader"></div>
-		    <div class="loader-section section-left"></div>
-		    <div class="loader-section section-right"></div>
-		    <div class="load_title">正在加载系统资源,请耐心等待</div>
-        </div>
-	</div>
-  </body>
-</html>
diff --git a/ruoyi-ui/public/robots.txt b/ruoyi-ui/public/robots.txt
deleted file mode 100644
index 77470cb..0000000
--- a/ruoyi-ui/public/robots.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-User-agent: *
-Disallow: /
\ No newline at end of file
diff --git a/ruoyi-ui/src/App.vue b/ruoyi-ui/src/App.vue
deleted file mode 100644
index b92ea37..0000000
--- a/ruoyi-ui/src/App.vue
+++ /dev/null
@@ -1,28 +0,0 @@
-<template>
-  <div id="app">
-    <router-view />
-    <theme-picker />
-  </div>
-</template>
-
-<script>
-import ThemePicker from "@/components/ThemePicker";
-
-export default {
-  name: "App",
-  components: { ThemePicker },
-  metaInfo() {
-    return {
-      title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
-      titleTemplate: title => {
-        return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
-      }
-    }
-  }
-};
-</script>
-<style scoped>
-#app .theme-picker {
-  display: none;
-}
-</style>
diff --git a/ruoyi-ui/src/api/login.js b/ruoyi-ui/src/api/login.js
deleted file mode 100644
index 7b7388f..0000000
--- a/ruoyi-ui/src/api/login.js
+++ /dev/null
@@ -1,60 +0,0 @@
-import request from '@/utils/request'
-
-// 登录方法
-export function login(username, password, code, uuid) {
-  const data = {
-    username,
-    password,
-    code,
-    uuid
-  }
-  return request({
-    url: '/login',
-    headers: {
-      isToken: false,
-      repeatSubmit: false
-    },
-    method: 'post',
-    data: data
-  })
-}
-
-// 注册方法
-export function register(data) {
-  return request({
-    url: '/register',
-    headers: {
-      isToken: false
-    },
-    method: 'post',
-    data: data
-  })
-}
-
-// 获取用户详细信息
-export function getInfo() {
-  return request({
-    url: '/getInfo',
-    method: 'get'
-  })
-}
-
-// 退出方法
-export function logout() {
-  return request({
-    url: '/logout',
-    method: 'post'
-  })
-}
-
-// 获取验证码
-export function getCodeImg() {
-  return request({
-    url: '/captchaImage',
-    headers: {
-      isToken: false
-    },
-    method: 'get',
-    timeout: 20000
-  })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/menu.js b/ruoyi-ui/src/api/menu.js
deleted file mode 100644
index faef101..0000000
--- a/ruoyi-ui/src/api/menu.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import request from '@/utils/request'
-
-// 获取路由
-export const getRouters = () => {
-  return request({
-    url: '/getRouters',
-    method: 'get'
-  })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/monitor/cache.js b/ruoyi-ui/src/api/monitor/cache.js
deleted file mode 100644
index 72c5f6a..0000000
--- a/ruoyi-ui/src/api/monitor/cache.js
+++ /dev/null
@@ -1,57 +0,0 @@
-import request from '@/utils/request'
-
-// 查询缓存详细
-export function getCache() {
-  return request({
-    url: '/monitor/cache',
-    method: 'get'
-  })
-}
-
-// 查询缓存名称列表
-export function listCacheName() {
-  return request({
-    url: '/monitor/cache/getNames',
-    method: 'get'
-  })
-}
-
-// 查询缓存键名列表
-export function listCacheKey(cacheName) {
-  return request({
-    url: '/monitor/cache/getKeys/' + cacheName,
-    method: 'get'
-  })
-}
-
-// 查询缓存内容
-export function getCacheValue(cacheName, cacheKey) {
-  return request({
-    url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey,
-    method: 'get'
-  })
-}
-
-// 清理指定名称缓存
-export function clearCacheName(cacheName) {
-  return request({
-    url: '/monitor/cache/clearCacheName/' + cacheName,
-    method: 'delete'
-  })
-}
-
-// 清理指定键名缓存
-export function clearCacheKey(cacheKey) {
-  return request({
-    url: '/monitor/cache/clearCacheKey/' + cacheKey,
-    method: 'delete'
-  })
-}
-
-// 清理全部缓存
-export function clearCacheAll() {
-  return request({
-    url: '/monitor/cache/clearCacheAll',
-    method: 'delete'
-  })
-}
diff --git a/ruoyi-ui/src/api/monitor/job.js b/ruoyi-ui/src/api/monitor/job.js
deleted file mode 100644
index 3815569..0000000
--- a/ruoyi-ui/src/api/monitor/job.js
+++ /dev/null
@@ -1,71 +0,0 @@
-import request from '@/utils/request'
-
-// 查询定时任务调度列表
-export function listJob(query) {
-  return request({
-    url: '/monitor/job/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询定时任务调度详细
-export function getJob(jobId) {
-  return request({
-    url: '/monitor/job/' + jobId,
-    method: 'get'
-  })
-}
-
-// 新增定时任务调度
-export function addJob(data) {
-  return request({
-    url: '/monitor/job',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改定时任务调度
-export function updateJob(data) {
-  return request({
-    url: '/monitor/job',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除定时任务调度
-export function delJob(jobId) {
-  return request({
-    url: '/monitor/job/' + jobId,
-    method: 'delete'
-  })
-}
-
-// 任务状态修改
-export function changeJobStatus(jobId, status) {
-  const data = {
-    jobId,
-    status
-  }
-  return request({
-    url: '/monitor/job/changeStatus',
-    method: 'put',
-    data: data
-  })
-}
-
-
-// 定时任务立即执行一次
-export function runJob(jobId, jobGroup) {
-  const data = {
-    jobId,
-    jobGroup
-  }
-  return request({
-    url: '/monitor/job/run',
-    method: 'put',
-    data: data
-  })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/monitor/jobLog.js b/ruoyi-ui/src/api/monitor/jobLog.js
deleted file mode 100644
index 6e0be61..0000000
--- a/ruoyi-ui/src/api/monitor/jobLog.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import request from '@/utils/request'
-
-// 查询调度日志列表
-export function listJobLog(query) {
-  return request({
-    url: '/monitor/jobLog/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 删除调度日志
-export function delJobLog(jobLogId) {
-  return request({
-    url: '/monitor/jobLog/' + jobLogId,
-    method: 'delete'
-  })
-}
-
-// 清空调度日志
-export function cleanJobLog() {
-  return request({
-    url: '/monitor/jobLog/clean',
-    method: 'delete'
-  })
-}
diff --git a/ruoyi-ui/src/api/monitor/logininfor.js b/ruoyi-ui/src/api/monitor/logininfor.js
deleted file mode 100644
index 4d112b7..0000000
--- a/ruoyi-ui/src/api/monitor/logininfor.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import request from '@/utils/request'
-
-// 查询登录日志列表
-export function list(query) {
-  return request({
-    url: '/monitor/logininfor/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 删除登录日志
-export function delLogininfor(infoId) {
-  return request({
-    url: '/monitor/logininfor/' + infoId,
-    method: 'delete'
-  })
-}
-
-// 解锁用户登录状态
-export function unlockLogininfor(userName) {
-  return request({
-    url: '/monitor/logininfor/unlock/' + userName,
-    method: 'get'
-  })
-}
-
-// 清空登录日志
-export function cleanLogininfor() {
-  return request({
-    url: '/monitor/logininfor/clean',
-    method: 'delete'
-  })
-}
diff --git a/ruoyi-ui/src/api/monitor/online.js b/ruoyi-ui/src/api/monitor/online.js
deleted file mode 100644
index bd22137..0000000
--- a/ruoyi-ui/src/api/monitor/online.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import request from '@/utils/request'
-
-// 查询在线用户列表
-export function list(query) {
-  return request({
-    url: '/monitor/online/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 强退用户
-export function forceLogout(tokenId) {
-  return request({
-    url: '/monitor/online/' + tokenId,
-    method: 'delete'
-  })
-}
diff --git a/ruoyi-ui/src/api/monitor/operlog.js b/ruoyi-ui/src/api/monitor/operlog.js
deleted file mode 100644
index a04bca8..0000000
--- a/ruoyi-ui/src/api/monitor/operlog.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import request from '@/utils/request'
-
-// 查询操作日志列表
-export function list(query) {
-  return request({
-    url: '/monitor/operlog/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 删除操作日志
-export function delOperlog(operId) {
-  return request({
-    url: '/monitor/operlog/' + operId,
-    method: 'delete'
-  })
-}
-
-// 清空操作日志
-export function cleanOperlog() {
-  return request({
-    url: '/monitor/operlog/clean',
-    method: 'delete'
-  })
-}
diff --git a/ruoyi-ui/src/api/monitor/server.js b/ruoyi-ui/src/api/monitor/server.js
deleted file mode 100644
index e1f9ca2..0000000
--- a/ruoyi-ui/src/api/monitor/server.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import request from '@/utils/request'
-
-// 获取服务信息
-export function getServer() {
-  return request({
-    url: '/monitor/server',
-    method: 'get'
-  })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/system/config.js b/ruoyi-ui/src/api/system/config.js
deleted file mode 100644
index a404d82..0000000
--- a/ruoyi-ui/src/api/system/config.js
+++ /dev/null
@@ -1,60 +0,0 @@
-import request from '@/utils/request'
-
-// 查询参数列表
-export function listConfig(query) {
-  return request({
-    url: '/system/config/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询参数详细
-export function getConfig(configId) {
-  return request({
-    url: '/system/config/' + configId,
-    method: 'get'
-  })
-}
-
-// 根据参数键名查询参数值
-export function getConfigKey(configKey) {
-  return request({
-    url: '/system/config/configKey/' + configKey,
-    method: 'get'
-  })
-}
-
-// 新增参数配置
-export function addConfig(data) {
-  return request({
-    url: '/system/config',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改参数配置
-export function updateConfig(data) {
-  return request({
-    url: '/system/config',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除参数配置
-export function delConfig(configId) {
-  return request({
-    url: '/system/config/' + configId,
-    method: 'delete'
-  })
-}
-
-// 刷新参数缓存
-export function refreshCache() {
-  return request({
-    url: '/system/config/refreshCache',
-    method: 'delete'
-  })
-}
diff --git a/ruoyi-ui/src/api/system/dept.js b/ruoyi-ui/src/api/system/dept.js
deleted file mode 100644
index fc943cd..0000000
--- a/ruoyi-ui/src/api/system/dept.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import request from '@/utils/request'
-
-// 查询部门列表
-export function listDept(query) {
-  return request({
-    url: '/system/dept/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询部门列表(排除节点)
-export function listDeptExcludeChild(deptId) {
-  return request({
-    url: '/system/dept/list/exclude/' + deptId,
-    method: 'get'
-  })
-}
-
-// 查询部门详细
-export function getDept(deptId) {
-  return request({
-    url: '/system/dept/' + deptId,
-    method: 'get'
-  })
-}
-
-// 新增部门
-export function addDept(data) {
-  return request({
-    url: '/system/dept',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改部门
-export function updateDept(data) {
-  return request({
-    url: '/system/dept',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除部门
-export function delDept(deptId) {
-  return request({
-    url: '/system/dept/' + deptId,
-    method: 'delete'
-  })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/system/dict/data.js b/ruoyi-ui/src/api/system/dict/data.js
deleted file mode 100644
index 6c9eb79..0000000
--- a/ruoyi-ui/src/api/system/dict/data.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import request from '@/utils/request'
-
-// 查询字典数据列表
-export function listData(query) {
-  return request({
-    url: '/system/dict/data/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询字典数据详细
-export function getData(dictCode) {
-  return request({
-    url: '/system/dict/data/' + dictCode,
-    method: 'get'
-  })
-}
-
-// 根据字典类型查询字典数据信息
-export function getDicts(dictType) {
-  return request({
-    url: '/system/dict/data/type/' + dictType,
-    method: 'get'
-  })
-}
-
-// 新增字典数据
-export function addData(data) {
-  return request({
-    url: '/system/dict/data',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改字典数据
-export function updateData(data) {
-  return request({
-    url: '/system/dict/data',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除字典数据
-export function delData(dictCode) {
-  return request({
-    url: '/system/dict/data/' + dictCode,
-    method: 'delete'
-  })
-}
diff --git a/ruoyi-ui/src/api/system/dict/type.js b/ruoyi-ui/src/api/system/dict/type.js
deleted file mode 100644
index a7a6e01..0000000
--- a/ruoyi-ui/src/api/system/dict/type.js
+++ /dev/null
@@ -1,60 +0,0 @@
-import request from '@/utils/request'
-
-// 查询字典类型列表
-export function listType(query) {
-  return request({
-    url: '/system/dict/type/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询字典类型详细
-export function getType(dictId) {
-  return request({
-    url: '/system/dict/type/' + dictId,
-    method: 'get'
-  })
-}
-
-// 新增字典类型
-export function addType(data) {
-  return request({
-    url: '/system/dict/type',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改字典类型
-export function updateType(data) {
-  return request({
-    url: '/system/dict/type',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除字典类型
-export function delType(dictId) {
-  return request({
-    url: '/system/dict/type/' + dictId,
-    method: 'delete'
-  })
-}
-
-// 刷新字典缓存
-export function refreshCache() {
-  return request({
-    url: '/system/dict/type/refreshCache',
-    method: 'delete'
-  })
-}
-
-// 获取字典选择框列表
-export function optionselect() {
-  return request({
-    url: '/system/dict/type/optionselect',
-    method: 'get'
-  })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/system/menu.js b/ruoyi-ui/src/api/system/menu.js
deleted file mode 100644
index f6415c6..0000000
--- a/ruoyi-ui/src/api/system/menu.js
+++ /dev/null
@@ -1,60 +0,0 @@
-import request from '@/utils/request'
-
-// 查询菜单列表
-export function listMenu(query) {
-  return request({
-    url: '/system/menu/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询菜单详细
-export function getMenu(menuId) {
-  return request({
-    url: '/system/menu/' + menuId,
-    method: 'get'
-  })
-}
-
-// 查询菜单下拉树结构
-export function treeselect() {
-  return request({
-    url: '/system/menu/treeselect',
-    method: 'get'
-  })
-}
-
-// 根据角色ID查询菜单下拉树结构
-export function roleMenuTreeselect(roleId) {
-  return request({
-    url: '/system/menu/roleMenuTreeselect/' + roleId,
-    method: 'get'
-  })
-}
-
-// 新增菜单
-export function addMenu(data) {
-  return request({
-    url: '/system/menu',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改菜单
-export function updateMenu(data) {
-  return request({
-    url: '/system/menu',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除菜单
-export function delMenu(menuId) {
-  return request({
-    url: '/system/menu/' + menuId,
-    method: 'delete'
-  })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/system/notice.js b/ruoyi-ui/src/api/system/notice.js
deleted file mode 100644
index c274ea5..0000000
--- a/ruoyi-ui/src/api/system/notice.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import request from '@/utils/request'
-
-// 查询公告列表
-export function listNotice(query) {
-  return request({
-    url: '/system/notice/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询公告详细
-export function getNotice(noticeId) {
-  return request({
-    url: '/system/notice/' + noticeId,
-    method: 'get'
-  })
-}
-
-// 新增公告
-export function addNotice(data) {
-  return request({
-    url: '/system/notice',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改公告
-export function updateNotice(data) {
-  return request({
-    url: '/system/notice',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除公告
-export function delNotice(noticeId) {
-  return request({
-    url: '/system/notice/' + noticeId,
-    method: 'delete'
-  })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/system/post.js b/ruoyi-ui/src/api/system/post.js
deleted file mode 100644
index 1a8e9ca..0000000
--- a/ruoyi-ui/src/api/system/post.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import request from '@/utils/request'
-
-// 查询岗位列表
-export function listPost(query) {
-  return request({
-    url: '/system/post/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询岗位详细
-export function getPost(postId) {
-  return request({
-    url: '/system/post/' + postId,
-    method: 'get'
-  })
-}
-
-// 新增岗位
-export function addPost(data) {
-  return request({
-    url: '/system/post',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改岗位
-export function updatePost(data) {
-  return request({
-    url: '/system/post',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除岗位
-export function delPost(postId) {
-  return request({
-    url: '/system/post/' + postId,
-    method: 'delete'
-  })
-}
diff --git a/ruoyi-ui/src/api/system/role.js b/ruoyi-ui/src/api/system/role.js
deleted file mode 100644
index f13e6f4..0000000
--- a/ruoyi-ui/src/api/system/role.js
+++ /dev/null
@@ -1,119 +0,0 @@
-import request from '@/utils/request'
-
-// 查询角色列表
-export function listRole(query) {
-  return request({
-    url: '/system/role/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询角色详细
-export function getRole(roleId) {
-  return request({
-    url: '/system/role/' + roleId,
-    method: 'get'
-  })
-}
-
-// 新增角色
-export function addRole(data) {
-  return request({
-    url: '/system/role',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改角色
-export function updateRole(data) {
-  return request({
-    url: '/system/role',
-    method: 'put',
-    data: data
-  })
-}
-
-// 角色数据权限
-export function dataScope(data) {
-  return request({
-    url: '/system/role/dataScope',
-    method: 'put',
-    data: data
-  })
-}
-
-// 角色状态修改
-export function changeRoleStatus(roleId, status) {
-  const data = {
-    roleId,
-    status
-  }
-  return request({
-    url: '/system/role/changeStatus',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除角色
-export function delRole(roleId) {
-  return request({
-    url: '/system/role/' + roleId,
-    method: 'delete'
-  })
-}
-
-// 查询角色已授权用户列表
-export function allocatedUserList(query) {
-  return request({
-    url: '/system/role/authUser/allocatedList',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询角色未授权用户列表
-export function unallocatedUserList(query) {
-  return request({
-    url: '/system/role/authUser/unallocatedList',
-    method: 'get',
-    params: query
-  })
-}
-
-// 取消用户授权角色
-export function authUserCancel(data) {
-  return request({
-    url: '/system/role/authUser/cancel',
-    method: 'put',
-    data: data
-  })
-}
-
-// 批量取消用户授权角色
-export function authUserCancelAll(data) {
-  return request({
-    url: '/system/role/authUser/cancelAll',
-    method: 'put',
-    params: data
-  })
-}
-
-// 授权用户选择
-export function authUserSelectAll(data) {
-  return request({
-    url: '/system/role/authUser/selectAll',
-    method: 'put',
-    params: data
-  })
-}
-
-// 根据角色ID查询部门树结构
-export function deptTreeSelect(roleId) {
-  return request({
-    url: '/system/role/deptTree/' + roleId,
-    method: 'get'
-  })
-}
diff --git a/ruoyi-ui/src/api/system/user.js b/ruoyi-ui/src/api/system/user.js
deleted file mode 100644
index f2f76ef..0000000
--- a/ruoyi-ui/src/api/system/user.js
+++ /dev/null
@@ -1,135 +0,0 @@
-import request from '@/utils/request'
-import { parseStrEmpty } from "@/utils/ruoyi";
-
-// 查询用户列表
-export function listUser(query) {
-  return request({
-    url: '/system/user/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询用户详细
-export function getUser(userId) {
-  return request({
-    url: '/system/user/' + parseStrEmpty(userId),
-    method: 'get'
-  })
-}
-
-// 新增用户
-export function addUser(data) {
-  return request({
-    url: '/system/user',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改用户
-export function updateUser(data) {
-  return request({
-    url: '/system/user',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除用户
-export function delUser(userId) {
-  return request({
-    url: '/system/user/' + userId,
-    method: 'delete'
-  })
-}
-
-// 用户密码重置
-export function resetUserPwd(userId, password) {
-  const data = {
-    userId,
-    password
-  }
-  return request({
-    url: '/system/user/resetPwd',
-    method: 'put',
-    data: data
-  })
-}
-
-// 用户状态修改
-export function changeUserStatus(userId, status) {
-  const data = {
-    userId,
-    status
-  }
-  return request({
-    url: '/system/user/changeStatus',
-    method: 'put',
-    data: data
-  })
-}
-
-// 查询用户个人信息
-export function getUserProfile() {
-  return request({
-    url: '/system/user/profile',
-    method: 'get'
-  })
-}
-
-// 修改用户个人信息
-export function updateUserProfile(data) {
-  return request({
-    url: '/system/user/profile',
-    method: 'put',
-    data: data
-  })
-}
-
-// 用户密码重置
-export function updateUserPwd(oldPassword, newPassword) {
-  const data = {
-    oldPassword,
-    newPassword
-  }
-  return request({
-    url: '/system/user/profile/updatePwd',
-    method: 'put',
-    params: data
-  })
-}
-
-// 用户头像上传
-export function uploadAvatar(data) {
-  return request({
-    url: '/system/user/profile/avatar',
-    method: 'post',
-    data: data
-  })
-}
-
-// 查询授权角色
-export function getAuthRole(userId) {
-  return request({
-    url: '/system/user/authRole/' + userId,
-    method: 'get'
-  })
-}
-
-// 保存授权角色
-export function updateAuthRole(data) {
-  return request({
-    url: '/system/user/authRole',
-    method: 'put',
-    params: data
-  })
-}
-
-// 查询部门下拉树结构
-export function deptTreeSelect() {
-  return request({
-    url: '/system/user/deptTree',
-    method: 'get'
-  })
-}
diff --git a/ruoyi-ui/src/api/tool/gen.js b/ruoyi-ui/src/api/tool/gen.js
deleted file mode 100644
index 2075677..0000000
--- a/ruoyi-ui/src/api/tool/gen.js
+++ /dev/null
@@ -1,85 +0,0 @@
-import request from '@/utils/request'
-
-// 查询生成表数据
-export function listTable(query) {
-  return request({
-    url: '/tool/gen/list',
-    method: 'get',
-    params: query
-  })
-}
-// 查询db数据库列表
-export function listDbTable(query) {
-  return request({
-    url: '/tool/gen/db/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询表详细信息
-export function getGenTable(tableId) {
-  return request({
-    url: '/tool/gen/' + tableId,
-    method: 'get'
-  })
-}
-
-// 修改代码生成信息
-export function updateGenTable(data) {
-  return request({
-    url: '/tool/gen',
-    method: 'put',
-    data: data
-  })
-}
-
-// 导入表
-export function importTable(data) {
-  return request({
-    url: '/tool/gen/importTable',
-    method: 'post',
-    params: data
-  })
-}
-
-// 创建表
-export function createTable(data) {
-  return request({
-    url: '/tool/gen/createTable',
-    method: 'post',
-    params: data
-  })
-}
-
-// 预览生成代码
-export function previewTable(tableId) {
-  return request({
-    url: '/tool/gen/preview/' + tableId,
-    method: 'get'
-  })
-}
-
-// 删除表数据
-export function delTable(tableId) {
-  return request({
-    url: '/tool/gen/' + tableId,
-    method: 'delete'
-  })
-}
-
-// 生成代码(自定义路径)
-export function genCode(tableName) {
-  return request({
-    url: '/tool/gen/genCode/' + tableName,
-    method: 'get'
-  })
-}
-
-// 同步数据库
-export function synchDb(tableName) {
-  return request({
-    url: '/tool/gen/synchDb/' + tableName,
-    method: 'get'
-  })
-}
diff --git a/ruoyi-ui/src/assets/401_images/401.gif b/ruoyi-ui/src/assets/401_images/401.gif
deleted file mode 100644
index cd6e0d9433421b3f29d0ec0c40f755e354728000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 164227
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%0DrCP2Rz0d`>pMVr1-JQ9bI3~`<2w)b7I
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
GY5fOuZZib{

diff --git a/ruoyi-ui/src/assets/404_images/404.png b/ruoyi-ui/src/assets/404_images/404.png
deleted file mode 100644
index 3d8e2305cc973ad2121403aee4bf08728f76c461..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 98071
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

diff --git a/ruoyi-ui/src/assets/404_images/404_cloud.png b/ruoyi-ui/src/assets/404_images/404_cloud.png
deleted file mode 100644
index c6281d09013e0a2c5f8e699a0a6038d9480291e5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4766
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

diff --git a/ruoyi-ui/src/assets/icons/index.js b/ruoyi-ui/src/assets/icons/index.js
deleted file mode 100644
index 2c6b309..0000000
--- a/ruoyi-ui/src/assets/icons/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import Vue from 'vue'
-import SvgIcon from '@/components/SvgIcon'// svg component
-
-// register globally
-Vue.component('svg-icon', SvgIcon)
-
-const req = require.context('./svg', false, /\.svg$/)
-const requireAll = requireContext => requireContext.keys().map(requireContext)
-requireAll(req)
diff --git a/ruoyi-ui/src/assets/icons/svg/404.svg b/ruoyi-ui/src/assets/icons/svg/404.svg
deleted file mode 100644
index 6df5019..0000000
--- a/ruoyi-ui/src/assets/icons/svg/404.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M121.718 73.272v9.953c3.957-7.584 6.199-16.05 6.199-24.995C127.917 26.079 99.273 0 63.958 0 28.644 0 0 26.079 0 58.23c0 .403.028.806.028 1.21l22.97-25.953h13.34l-19.76 27.187h6.42V53.77l13.728-19.477v49.361H22.998V73.272H2.158c5.951 20.284 23.608 36.208 45.998 41.399-1.44 3.3-5.618 11.263-12.565 12.674-8.607 1.764 23.358.428 46.163-13.178 17.519-4.611 31.938-15.849 39.77-30.513h-13.506V73.272H85.02V59.464l22.998-25.977h13.008l-19.429 27.187h6.421v-7.433l13.727-19.402v39.433h-.027zm-78.24 2.822a10.516 10.516 0 0 1-.996-4.535V44.548c0-1.613.332-3.124.996-4.535a11.66 11.66 0 0 1 2.713-3.68c1.134-1.032 2.49-1.864 4.04-2.468 1.55-.605 3.21-.908 4.982-.908h11.292c1.77 0 3.431.303 4.981.908 1.522.604 2.85 1.41 3.986 2.418l-12.26 16.303v-2.898a1.96 1.96 0 0 0-.665-1.512c-.443-.403-.996-.604-1.66-.604-.665 0-1.218.201-1.661.604a1.96 1.96 0 0 0-.664 1.512v9.071L44.364 77.606a10.556 10.556 0 0 1-.886-1.512zm35.73-4.535c0 1.613-.332 3.124-.997 4.535a11.66 11.66 0 0 1-2.712 3.68c-1.134 1.032-2.49 1.864-4.04 2.469-1.55.604-3.21.907-4.982.907H55.185c-1.77 0-3.431-.303-4.981-.907-1.55-.605-2.906-1.437-4.041-2.47a12.49 12.49 0 0 1-1.384-1.512l13.727-18.217v6.375c0 .605.222 1.109.665 1.512.442.403.996.604 1.66.604.664 0 1.218-.201 1.66-.604a1.96 1.96 0 0 0 .665-1.512V53.87L75.97 36.838c.913.932 1.66 1.99 2.214 3.175.664 1.41.996 2.922.996 4.535v27.011h.028z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/bug.svg b/ruoyi-ui/src/assets/icons/svg/bug.svg
deleted file mode 100644
index 05a150d..0000000
--- a/ruoyi-ui/src/assets/icons/svg/bug.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M127.88 73.143c0 1.412-.506 2.635-1.518 3.669-1.011 1.033-2.209 1.55-3.592 1.55h-17.887c0 9.296-1.783 17.178-5.35 23.645l16.609 17.044c1.011 1.034 1.517 2.257 1.517 3.67 0 1.412-.506 2.635-1.517 3.668-.958 1.033-2.155 1.55-3.593 1.55-1.438 0-2.635-.517-3.593-1.55l-15.811-16.063a15.49 15.49 0 0 1-1.196 1.06c-.532.434-1.65 1.208-3.353 2.322a50.104 50.104 0 0 1-5.192 2.974c-1.758.87-3.94 1.658-6.546 2.364-2.607.706-5.189 1.06-7.748 1.06V47.044H58.89v73.062c-2.716 0-5.417-.367-8.106-1.102-2.688-.734-5.003-1.631-6.945-2.692a66.769 66.769 0 0 1-5.268-3.179c-1.571-1.057-2.73-1.94-3.476-2.65L33.9 109.34l-14.611 16.877c-1.066 1.14-2.344 1.711-3.833 1.711-1.277 0-2.422-.434-3.434-1.304-1.012-.978-1.557-2.187-1.635-3.627-.079-1.44.333-2.705 1.236-3.794l16.129-18.51c-3.087-6.197-4.63-13.644-4.63-22.342H5.235c-1.383 0-2.58-.517-3.592-1.55S.125 74.545.125 73.132c0-1.412.506-2.635 1.518-3.668 1.012-1.034 2.21-1.55 3.592-1.55h17.887V43.939L9.308 29.833c-1.012-1.033-1.517-2.256-1.517-3.669 0-1.412.505-2.635 1.517-3.668 1.012-1.034 2.21-1.55 3.593-1.55s2.58.516 3.593 1.55l13.813 14.106h67.396l13.814-14.106c1.012-1.034 2.21-1.55 3.592-1.55 1.384 0 2.581.516 3.593 1.55 1.012 1.033 1.518 2.256 1.518 3.668 0 1.413-.506 2.636-1.518 3.67l-13.814 14.105v23.975h17.887c1.383 0 2.58.516 3.593 1.55 1.011 1.033 1.517 2.256 1.517 3.668l-.005.01zM89.552 26.175H38.448c0-7.23 2.489-13.386 7.466-18.469C50.892 2.623 56.92.082 64 .082c7.08 0 13.108 2.541 18.086 7.624 4.977 5.083 7.466 11.24 7.466 18.469z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/build.svg b/ruoyi-ui/src/assets/icons/svg/build.svg
deleted file mode 100644
index 97c4688..0000000
--- a/ruoyi-ui/src/assets/icons/svg/build.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1568899741379" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2054" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M960 591.424V368.96c0-0.288 0.16-0.512 0.16-0.768S960 367.68 960 367.424V192a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v175.424c0 0.288-0.16 0.512-0.16 0.768s0.16 0.48 0.16 0.768v222.464c0 0.288-0.16 0.512-0.16 0.768s0.16 0.48 0.16 0.768V864a32 32 0 0 0 32 32h832a32 32 0 0 0 32-32v-271.04c0-0.288 0.16-0.512 0.16-0.768S960 591.68 960 591.424z m-560-31.232v-160H608v160h-208z m208 64V832h-208v-207.808H608z m-480-224h208v160H128v-160z m544 0h224v160h-224v-160zM896 224v112.192H128V224h768zM128 624.192h208V832H128v-207.808zM672 832v-207.808h224V832h-224z" p-id="2055"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/button.svg b/ruoyi-ui/src/assets/icons/svg/button.svg
deleted file mode 100644
index 904fddc..0000000
--- a/ruoyi-ui/src/assets/icons/svg/button.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1588670460195" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1314" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M230.4 307.712c13.824 0 25.088-11.264 25.088-25.088 0-100.352 81.92-182.272 182.272-182.272s182.272 81.408 182.272 182.272c0 13.824 11.264 25.088 25.088 25.088s25.088-11.264 24.576-25.088c0-127.488-103.936-231.936-231.936-231.936S205.824 154.624 205.824 282.624c-0.512 14.336 10.752 25.088 24.576 25.088z m564.736 234.496c-11.264 0-21.504 2.048-31.232 6.144 0-44.544-40.448-81.92-88.064-81.92-14.848 0-28.16 3.584-39.936 10.24-13.824-28.16-44.544-48.128-78.848-48.128-12.288 0-24.576 2.56-35.328 7.68V284.16c0-45.568-37.888-81.92-84.48-81.92s-84.48 36.864-84.48 81.92v348.672l-69.12-112.64c-18.432-28.16-58.368-36.864-91.136-19.968-26.624 14.336-46.592 47.104-30.208 88.064 3.072 8.192 76.8 205.312 171.52 311.296 0 0 28.16 24.576 43.008 58.88 4.096 9.728 13.312 15.36 22.528 15.36 3.072 0 6.656-0.512 9.728-2.048 12.288-5.12 18.432-19.968 12.8-32.256-19.456-44.544-53.76-74.752-53.76-74.752C281.6 768 209.408 573.44 208.384 570.88c-5.12-12.8-2.56-20.992 7.168-26.112 9.216-4.608 21.504-4.608 26.112 2.56l113.152 184.32c4.096 8.704 12.8 14.336 22.528 14.336 13.824 0 25.088-10.752 25.088-25.088V284.16c0-17.92 15.36-32.256 34.816-32.256s34.816 14.336 34.816 32.256v284.16c0 13.824 10.24 25.088 24.576 25.088 13.824 0 25.088-11.264 25.088-25.088v-57.344c0-17.92 15.36-32.768 34.816-32.768 19.968 0 37.376 15.36 37.376 32.768v95.232c0 7.168 3.072 13.312 7.68 17.92 4.608 4.608 10.752 7.168 17.92 7.168 13.824 0 24.576-11.264 24.576-25.088V547.84c0-18.432 13.824-32.256 32.256-32.256 20.48 0 38.912 15.36 38.912 32.256v95.232c0 13.824 11.264 25.088 25.088 25.088s24.576-11.264 25.088-25.088v-18.944c0-18.944 12.8-32.256 30.72-32.256 18.432 0 22.528 18.944 22.528 31.744 0 1.024-11.776 99.84-50.688 173.056-30.72 58.368-45.056 112.128-51.2 146.944-2.56 13.312 6.656 26.112 19.968 28.672 1.536 0 3.072 0.512 4.608 0.512 11.776 0 22.016-8.192 24.064-20.48 5.632-31.232 18.432-79.36 46.08-132.608 43.52-81.92 55.808-186.88 56.32-193.536-0.512-50.688-29.696-83.968-72.704-83.968z"></path></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/cascader.svg b/ruoyi-ui/src/assets/icons/svg/cascader.svg
deleted file mode 100644
index e256024..0000000
--- a/ruoyi-ui/src/assets/icons/svg/cascader.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1576153230908" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="971" xmlns:xlink="http://www.w3.org/1999/xlink" width="81" height="81"><defs><style type="text/css"></style></defs><path d="M772.87036133 734.06115723c-43.34106445 0-80.00793458 27.93273926-93.76831055 66.57714843H475.90991211c-56.60705567 0-102.66723633-46.06018067-102.66723633-102.66723633V600.82446289h305.859375c13.76037598 38.64440918 50.42724609 66.57714844 93.76831055 66.57714844 55.12390137 0 99.94812012-44.82421875 99.94812012-99.94812012S827.9942627 467.50537109 772.87036133 467.50537109c-43.34106445 0-80.00793458 27.93273926-93.76831055 66.57714844H373.24267578V401.01062011h321.92687989c55.12390137 0 99.94812012-44.82421875 99.94812011-99.94812011V190.07312011C795.11767578 134.94921875 750.29345703 90.125 695.16955567 90.125H251.12963867C196.0057373 90.125 151.18151855 134.94921875 151.18151855 190.07312011V301.0625c0 55.12390137 44.82421875 99.94812012 99.94812012 99.94812012h55.53588867v296.96044921c0 93.35632325 75.97045898 169.32678223 169.32678224 169.32678223h203.19213866c13.76037598 38.64440918 50.42724609 66.57714844 93.76831055 66.57714844 55.12390137 0 99.94812012-44.82421875 99.94812012-99.94812012s-44.90661622-99.86572266-100.03051758-99.86572265z m0-199.89624024c18.37463379 0 33.28857422 14.91394043 33.28857422 33.28857423s-14.91394043 33.28857422-33.28857422 33.28857421-33.28857422-14.91394043-33.28857422-33.28857421 14.91394043-33.28857422 33.28857422-33.28857422zM217.75866699 301.0625V190.07312011c0-18.37463379 14.91394043-33.28857422 33.28857423-33.28857421h444.03991698c18.37463379 0 33.28857422 14.91394043 33.28857422 33.28857422V301.0625c0 18.37463379-14.91394043 33.28857422-33.28857422 33.28857422H251.12963867c-18.37463379 0-33.37097168-14.91394043-33.37097168-33.28857422z m555.11169434 566.23535156c-18.37463379 0-33.28857422-14.91394043-33.28857422-33.28857422 0-18.37463379 14.91394043-33.28857422 33.28857422-33.28857422s33.28857422 14.91394043 33.28857422 33.28857422c0.08239747 18.29223633-14.91394043 33.28857422-33.28857422 33.28857422z" p-id="972"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/chart.svg b/ruoyi-ui/src/assets/icons/svg/chart.svg
deleted file mode 100644
index 27728fb..0000000
--- a/ruoyi-ui/src/assets/icons/svg/chart.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 54.857h36.571V128H0V54.857zM91.429 27.43H128V128H91.429V27.429zM45.714 0h36.572v128H45.714V0z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/checkbox.svg b/ruoyi-ui/src/assets/icons/svg/checkbox.svg
deleted file mode 100644
index 013fd3a..0000000
--- a/ruoyi-ui/src/assets/icons/svg/checkbox.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575982282951" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="902" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M828.40625 90.125H195.59375C137.375 90.125 90.125 137.375 90.125 195.59375v632.8125c0 58.21875 47.25 105.46875 105.46875 105.46875h632.8125c58.21875 0 105.46875-47.25 105.46875-105.46875V195.59375c0-58.21875-47.25-105.46875-105.46875-105.46875z m52.734375 738.28125c0 29.16-23.57015625 52.734375-52.734375 52.734375H195.59375c-29.109375 0-52.734375-23.574375-52.734375-52.734375V195.59375c0-29.109375 23.625-52.734375 52.734375-52.734375h632.8125c29.16 0 52.734375 23.625 52.734375 52.734375v632.8125z" p-id="903"></path><path d="M421.52890625 709.55984375a36.28125 36.28125 0 0 1-27.55265625-12.66890625L205.17453125 476.613125a36.28546875 36.28546875 0 0 1 55.10109375-47.22890625l164.986875 192.4846875 342.16171875-298.48078125a36.2896875 36.2896875 0 0 1 47.70984375 54.68765625L445.3859375 700.6203125a36.3234375 36.3234375 0 0 1-23.85703125 8.93953125z" p-id="904"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/clipboard.svg b/ruoyi-ui/src/assets/icons/svg/clipboard.svg
deleted file mode 100644
index 90923ff..0000000
--- a/ruoyi-ui/src/assets/icons/svg/clipboard.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M54.857 118.857h64V73.143H89.143c-1.902 0-3.52-.668-4.855-2.002-1.335-1.335-2.002-2.954-2.002-4.855V36.57H54.857v82.286zM73.143 16v-4.571a2.2 2.2 0 0 0-.677-1.61 2.198 2.198 0 0 0-1.609-.676H20.571c-.621 0-1.158.225-1.609.676a2.198 2.198 0 0 0-.676 1.61V16a2.2 2.2 0 0 0 .676 1.61c.451.45.988.676 1.61.676h50.285c.622 0 1.158-.226 1.61-.677.45-.45.676-.987.676-1.609zm18.286 48h21.357L91.43 42.642V64zM128 73.143v48c0 1.902-.667 3.52-2.002 4.855-1.335 1.335-2.953 2.002-4.855 2.002H52.57c-1.901 0-3.52-.667-4.854-2.002-1.335-1.335-2.003-2.953-2.003-4.855v-11.429H6.857c-1.902 0-3.52-.667-4.855-2.002C.667 106.377 0 104.759 0 102.857v-96c0-1.902.667-3.52 2.002-4.855C3.337.667 4.955 0 6.857 0h77.714c1.902 0 3.52.667 4.855 2.002 1.335 1.335 2.003 2.953 2.003 4.855V30.29c1 .622 1.856 1.29 2.569 2.003l29.147 29.147c1.335 1.335 2.478 3.145 3.429 5.43.95 2.287 1.426 4.383 1.426 6.291v-.018z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/code.svg b/ruoyi-ui/src/assets/icons/svg/code.svg
deleted file mode 100644
index 5f9c5ab..0000000
--- a/ruoyi-ui/src/assets/icons/svg/code.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1546567861908" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2422" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M318.577778 819.2L17.066667 512l301.511111-307.2 45.511111 45.511111L96.711111 512l267.377778 261.688889zM705.422222 819.2l-45.511111-45.511111L927.288889 512l-267.377778-261.688889 45.511111-45.511111L1006.933333 512zM540.785778 221.866667l55.751111 11.150222L483.157333 802.133333l-55.751111-11.093333z" p-id="2423"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/color.svg b/ruoyi-ui/src/assets/icons/svg/color.svg
deleted file mode 100644
index 44a81aa..0000000
--- a/ruoyi-ui/src/assets/icons/svg/color.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1577252187056" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2508" xmlns:xlink="http://www.w3.org/1999/xlink" width="81" height="81"><defs><style type="text/css"></style></defs><path d="M747.59340925 691.12859384c11.51396329 0.25305413 22.43746719-0.21087818 40.74171707-1.51832482 29.35428085-2.10878421 35.84933734-2.36183835 46.47761114-0.8856895 24.71495444 3.37405491 41.12129828 21.76265671 32.47528161 47.95376084-85.57447632 258.19957947-442.00123984 249.76444099-628.67084683 50.73735554-153.47733892-159.33976008-153.09775772-414.41833795 0.92786545-573.42069196 159.71934128-162.67163983 424.03439521-166.59397897 565.78689185 0.63263534 80.38686649 94.81095318 108.34934958 169.16669549 89.11723508 230.57450162-15.01454608 47.99593598-50.61082928 77.68762207-119.77896259 114.63352789-4.89237973 2.65706845-29.35428085 15.52065436-35.84933652 19.02123633-46.94154346 25.30541465-63.51659033 41.20565021-62.20914449 58.45550757 2.95229856 39.13904114 24.16667102 52.7196135 70.98168823 53.81618115z m44.41100207 50.10472101c-19.82257471 1.43397372-32.05352527 1.940082-45.63409763 1.6448519-70.34905207-1.60267593-115.98314969-30.91478165-121.38163769-101.64341492-3.45840683-46.05585397 24.7571304-73.13264758 89.24376132-107.96976837 6.7902866-3.66928501 31.37871396-16.57504688 36.06021551-19.06341229 57.69634516-30.83042972 85.15271997-53.73183005 94.76877722-84.47790866 12.77923398-40.78389304-9.10994898-98.94417051-79.24812286-181.6507002-121.17075953-142.97559219-350.14258521-139.60153647-489.2380134 2.06660824-134.49827774 138.84237405-134.79350784 362.12048163-0.42175717 501.637667 158.53842169 168.99799328 451.9968783 181.18676788 534.57688175-11.80919339-4.68150156 0.2952301-10.71262573 0.67481131-18.72600705 1.26527069z" p-id="2509"></path><path d="M346.03865637 637.18588562a78.82636652 78.82636652 0 0 0 78.32025825-79.29029883c0-43.69401562-35.005823-79.29029883-78.32025825-79.29029882a78.82636652 78.82636652 0 0 0-78.36243338 79.29029882c0 43.69401562 35.005823 79.29029883 78.36243338 79.29029883z m0-51.7495729a27.07679361 27.07679361 0 0 1-26.5706845-27.54072593c0-15.30977536 11.97789643-27.54072593 26.5706845-27.54072592 14.55061295 0 26.57068533 12.23095057 26.57068533 27.54072592a27.07679361 27.07679361 0 0 1-26.57068533 27.54072593zM475.7289063 807.11174353a78.82636652 78.82636652 0 0 0 78.3624334-79.29029882c0-43.69401562-34.96364785-79.29029883-78.32025825-79.29029883a78.82636652 78.82636652 0 0 0-78.32025742 79.29029883c0 43.69401562 34.96364785 79.29029883 78.32025742 79.29029882z m0-51.74957208a27.07679361 27.07679361 0 0 1-26.57068532-27.54072674c0-15.30977536 12.06224753-27.54072593 26.57068532-27.54072593 14.59278892 0 26.57068533 12.23095057 26.57068453 27.54072593a27.07679361 27.07679361 0 0 1-26.57068453 27.54072674zM601.24376214 377.21492718a78.82636652 78.82636652 0 0 0 78.32025742-79.29029883c0-43.69401562-34.96364785-79.29029883-78.32025742-79.29029882a78.82636652 78.82636652 0 0 0-78.32025823 79.29029883c0 43.69401562 34.96364785 79.29029883 78.32025824 79.29029883z m1e-8-51.74957208a27.07679361 27.07679361 0 0 1-26.57068534-27.54072675c0-15.30977536 11.97789643-27.54072593 26.57068534-27.54072591 14.55061295 0 26.57068533 12.23095057 26.57068451 27.54072592a27.07679361 27.07679361 0 0 1-26.57068451 27.54072674zM378.80916809 433.85687983a78.82636652 78.82636652 0 0 0 78.32025824-79.29029883c0-43.69401562-34.96364785-79.29029883-78.32025824-79.29029802a78.82636652 78.82636652 0 0 0-78.32025742 79.29029802c0 43.69401562 34.96364785 79.29029883 78.32025742 79.29029883z m0-51.74957209a27.07679361 27.07679361 0 0 1-26.57068451-27.54072674c0-15.30977536 11.97789643-27.54072593 26.57068451-27.54072593 14.55061295 0 26.57068533 12.23095057 26.57068533 27.54072593a27.07679361 27.07679361 0 0 1-26.57068533 27.54072674z" p-id="2510"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/component.svg b/ruoyi-ui/src/assets/icons/svg/component.svg
deleted file mode 100644
index 29c3458..0000000
--- a/ruoyi-ui/src/assets/icons/svg/component.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575804206892" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3145" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M826.56 470.016c-32.896 0-64.384 12.288-89.984 35.52l0-104.96c0-62.208-50.496-112.832-112.64-113.088L623.936 287.04 519.552 287.104C541.824 262.72 554.56 230.72 554.56 197.12c0-73.536-59.904-133.44-133.504-133.44-73.472 0-133.376 59.904-133.376 133.44 0 32.896 12.224 64.256 35.52 89.984L175.232 287.104l0 0.576C113.728 288.704 64 338.88 64 400.576l0.32 0 0.32 116.48C60.864 544.896 70.592 577.728 100.8 588.48c12.736 4.608 37.632 7.488 60.864-25.28 12.992-18.368 34.24-29.248 56.64-29.248 38.336 0 69.504 31.104 69.504 69.312 0 38.4-31.168 69.504-69.504 69.504-22.656 0-44.032-11.264-57.344-30.4C138.688 610.112 112.576 615.36 102.464 619.136c-29.824 10.752-39.104 43.776-38.144 67.392l0 160.384L64 846.912C64 909.248 114.752 960 177.216 960l446.272 0c62.4 0 113.152-50.752 113.152-113.152l0-145.024c24.384 22.272 56.384 35.008 89.984 35.008 73.536 0 133.44-59.904 133.44-133.504C960 529.92 900.096 470.016 826.56 470.016zM826.56 672.896c-22.72 0-44.032-11.264-57.344-30.4-22.272-32.384-48.448-27.136-58.56-23.36-29.824 10.752-39.04 43.776-38.08 67.392l0 160.384c0 27.136-22.016 49.152-49.152 49.152L177.216 896.064C150.08 896 128 873.984 128 846.848l0.32 0 0-145.024c24.384 22.272 56.384 35.008 89.984 35.008 73.6 0 133.504-59.904 133.504-133.504 0-73.472-59.904-133.376-133.504-133.376-32.896 0-64.32 12.288-89.984 35.52l0-104.96L128 400.512c0-27.072 22.08-49.152 49.216-49.152L177.216 351.04 334.656 350.72c3.776 0.512 7.616 0.832 11.52 0.832 24.896 0 50.752-10.816 60.032-37.056 4.544-12.736 7.424-37.568-25.344-60.736C362.624 240.768 351.68 219.52 351.68 197.12c0-38.272 31.104-69.44 69.376-69.44 38.336 0 69.504 31.168 69.504 69.44 0 22.72-11.264 44.032-30.528 57.472C427.968 276.736 433.088 302.784 436.8 313.024c10.752 29.888 43.072 39.232 67.392 38.08l119.232 0 0 0.384c27.136 0 49.152 22.08 49.152 49.152l0.256 116.48c-3.776 27.84 6.016 60.736 36.224 71.488 12.736 4.608 37.632 7.488 60.8-25.28 13.056-18.368 34.24-29.248 56.704-29.248C864.832 534.016 896 565.12 896 603.392 896 641.728 864.832 672.896 826.56 672.896z" p-id="3146"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/dashboard.svg b/ruoyi-ui/src/assets/icons/svg/dashboard.svg
deleted file mode 100644
index 5317d37..0000000
--- a/ruoyi-ui/src/assets/icons/svg/dashboard.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="100" xmlns="http://www.w3.org/2000/svg"><path d="M27.429 63.638c0-2.508-.893-4.65-2.679-6.424-1.786-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.465 2.662-1.785 1.774-2.678 3.916-2.678 6.424 0 2.508.893 4.65 2.678 6.424 1.786 1.775 3.94 2.662 6.465 2.662 2.524 0 4.678-.887 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm13.714-31.801c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM71.714 65.98l7.215-27.116c.285-1.23.107-2.378-.536-3.443-.643-1.064-1.56-1.762-2.75-2.094-1.19-.33-2.333-.177-3.429.462-1.095.639-1.81 1.573-2.143 2.804l-7.214 27.116c-2.857.237-5.405 1.266-7.643 3.088-2.238 1.822-3.738 4.152-4.5 6.992-.952 3.644-.476 7.098 1.429 10.364 1.905 3.265 4.69 5.37 8.357 6.317 3.667.947 7.143.474 10.429-1.42 3.285-1.892 5.404-4.66 6.357-8.305.762-2.84.619-5.607-.429-8.305-1.047-2.697-2.762-4.85-5.143-6.46zm47.143-2.342c0-2.508-.893-4.65-2.678-6.424-1.786-1.775-3.94-2.662-6.465-2.662-2.524 0-4.678.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.786 1.775 3.94 2.662 6.464 2.662 2.524 0 4.679-.887 6.465-2.662 1.785-1.775 2.678-3.916 2.678-6.424zm-45.714-45.43c0-2.509-.893-4.65-2.679-6.425C68.68 10.01 66.524 9.122 64 9.122c-2.524 0-4.679.887-6.464 2.661-1.786 1.775-2.679 3.916-2.679 6.425 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm32 13.629c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM128 63.638c0 12.351-3.357 23.78-10.071 34.286-.905 1.372-2.19 2.058-3.858 2.058H13.93c-1.667 0-2.953-.686-3.858-2.058C3.357 87.465 0 76.037 0 63.638c0-8.613 1.69-16.847 5.071-24.703C8.452 31.08 13 24.312 18.714 18.634c5.715-5.68 12.524-10.199 20.429-13.559C47.048 1.715 55.333.035 64 .035c8.667 0 16.952 1.68 24.857 5.04 7.905 3.36 14.714 7.88 20.429 13.559 5.714 5.678 10.262 12.446 13.643 20.301 3.38 7.856 5.071 16.09 5.071 24.703z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/date-range.svg b/ruoyi-ui/src/assets/icons/svg/date-range.svg
deleted file mode 100644
index fda571e..0000000
--- a/ruoyi-ui/src/assets/icons/svg/date-range.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1579774833889" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1376" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M887.466667 192.853333h-100.693334V119.466667c0-10.24-6.826667-17.066667-17.066666-17.066667s-17.066667 6.826667-17.066667 17.066667v73.386666H303.786667V119.466667c0-10.24-6.826667-17.066667-17.066667-17.066667s-17.066667 6.826667-17.066667 17.066667v73.386666H168.96c-46.08 0-85.333333 37.546667-85.333333 85.333334V836.266667c0 46.08 37.546667 85.333333 85.333333 85.333333H887.466667c46.08 0 85.333333-37.546667 85.333333-85.333333V278.186667c0-47.786667-37.546667-85.333333-85.333333-85.333334z m-718.506667 34.133334h100.693333v66.56c0 10.24 6.826667 17.066667 17.066667 17.066666s17.066667-6.826667 17.066667-17.066666v-66.56h450.56v66.56c0 10.24 6.826667 17.066667 17.066666 17.066666s17.066667-6.826667 17.066667-17.066666v-66.56H887.466667c27.306667 0 51.2 22.186667 51.2 51.2v88.746666H117.76v-88.746666c0-29.013333 22.186667-51.2 51.2-51.2zM887.466667 887.466667H168.96c-27.306667 0-51.2-22.186667-51.2-51.2V401.066667H938.666667V836.266667c0 27.306667-22.186667 51.2-51.2 51.2z" p-id="1377"></path><path d="M858.453333 493.226667H327.68c-10.24 0-17.066667 6.826667-17.066667 17.066666v114.346667h-116.053333c-10.24 0-17.066667 6.826667-17.066667 17.066667v133.12c0 10.24 6.826667 17.066667 17.066667 17.066666H460.8c10.24 0 17.066667-6.826667 17.066667-17.066666v-114.346667h380.586666c10.24 0 17.066667-6.826667 17.066667-17.066667v-133.12c0-10.24-6.826667-17.066667-17.066667-17.066666z m-413.013333 34.133333v97.28h-98.986667v-97.28h98.986667z m-230.4 131.413333h98.986667v98.986667h-98.986667v-98.986667z m131.413333 97.28v-97.28h98.986667v97.28h-98.986667z m133.12-228.693333h97.28v98.986667h-97.28v-98.986667z m131.413334 0h98.986666v98.986667h-98.986666v-98.986667z m230.4 97.28h-98.986667v-98.986667h98.986667v98.986667z" p-id="1378"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/date.svg b/ruoyi-ui/src/assets/icons/svg/date.svg
deleted file mode 100644
index 52dc73e..0000000
--- a/ruoyi-ui/src/assets/icons/svg/date.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1577186573535" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1068" xmlns:xlink="http://www.w3.org/1999/xlink" width="81" height="81"><defs><style type="text/css"></style></defs><path d="M479.85714249 608.42857168h64.28571502c19.28571417 0 32.14285751-12.85714249 32.14285664-32.14285751s-12.85714249-32.14285751-32.14285664-32.14285664h-64.28571504c-19.28571417 0-32.14285751 12.85714249-32.14285664 32.14285662s12.85714249 32.14285751 32.14285664 32.14285753z m-2e-8 122.14285665h64.28571504c19.28571417 0 32.14285751-12.85714249 32.14285664-32.14285665s-12.85714249-32.14285751-32.14285664-32.14285751h-64.28571504c-19.28571417 0-32.14285751 12.85714249-32.14285664 32.14285751s12.85714249 32.14285751 32.14285664 32.14285664z m353.57142921-559.28571416h-128.57142921v-32.14285664c0-19.28571417-12.85714249-32.14285751-32.14285664-32.14285753s-32.14285751 12.85714249-32.14285751 32.14285753v32.14285664h-257.14285665v-32.14285664c0-19.28571417-12.85714249-32.14285751-32.14285752-32.14285753s-32.14285751 12.85714249-32.14285664 32.14285753v32.14285664h-128.57142919c-70.71428585 0-128.57142832 57.85714249-128.57142832 122.14285751v501.42857081c0 70.71428585 57.85714249 128.57142832 128.57142832 122.14285751h642.85714335c70.71428585 0 128.57142832-57.85714249 128.57142833-122.14285751v-501.42857081c0-70.71428585-57.85714249-122.14285753-128.57142833-122.14285751z m64.28571415 623.57142832c0 32.14285751-32.14285751 64.28571415-64.28571416 64.28571504h-642.85714335c-32.14285751 0-64.28571415-25.71428583-64.28571417-64.28571504v-372.85714249h771.42857168v372.85714249z m0-437.14285664h-771.42857168v-64.28571417c0-32.14285751 32.14285751-64.28571415 64.28571417-64.28571415h128.57142919v32.14285664c0 19.28571417 12.85714249 32.14285751 32.14285664 32.14285751s32.14285751-12.85714249 32.14285753-32.14285751v-32.14285664h257.14285665v32.14285664c0 19.28571417 12.85714249 32.14285751 32.1428575 32.14285751s32.14285751-12.85714249 32.14285664-32.14285751v-32.14285664h128.57142921c32.14285751 0 64.28571415 25.71428583 64.28571415 64.28571415v64.28571417z m-610.71428583 372.85714247h64.28571415c19.28571417 0 32.14285751-12.85714249 32.14285753-32.14285664s-12.85714249-32.14285751-32.14285753-32.14285751h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285751 32.14285751s12.85714249 32.14285751 32.14285751 32.14285665z m385.71428583-122.14285664h64.28571417c19.28571417 0 32.14285751-12.85714249 32.14285751-32.14285751s-12.85714249-32.14285751-32.14285751-32.14285664h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285753 32.14285664s12.85714249 32.14285751 32.14285753 32.14285751z m-385.71428583 0h64.28571415c19.28571417 0 32.14285751-12.85714249 32.14285753-32.14285751s-12.85714249-32.14285751-32.14285753-32.14285664h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285751 32.14285664s12.85714249 32.14285751 32.14285751 32.14285751z m385.71428583 122.14285665h64.28571417c19.28571417 0 32.14285751-12.85714249 32.14285751-32.14285665s-12.85714249-32.14285751-32.14285751-32.14285751h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285753 32.14285751s12.85714249 32.14285751 32.14285753 32.14285665z" p-id="1069"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/dict.svg b/ruoyi-ui/src/assets/icons/svg/dict.svg
deleted file mode 100644
index 4849377..0000000
--- a/ruoyi-ui/src/assets/icons/svg/dict.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566035680909" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3601" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1002.0848 744.672l-33.568 10.368c0.96 7.264 2.144 14.304 2.144 21.76 0 7.328-1.184 14.432-2.368 21.568l33.792 10.56c7.936 2.24 14.496 7.616 18.336 14.752 3.84 7.328 4.672 15.808 1.952 23.552-5.376 16-23.168 24.672-39.936 19.68l-34.176-10.624c-7.136 12.8-15.776 24.672-26.208 35.2l20.8 27.488a28.96 28.96 0 0 1 5.824 22.816 29.696 29.696 0 0 1-12.704 19.616 32.544 32.544 0 0 1-44.416-6.752l-20.8-27.552c-13.696 6.56-28.192 11.2-43.008 13.888v33.632c0 16.736-14.112 30.432-31.648 30.432-17.6 0-31.872-13.696-31.872-30.432v-33.632a167.616 167.616 0 0 1-42.88-13.888l-20.928 27.552c-10.72 13.76-30.08 16.64-44.288 6.752a29.632 29.632 0 0 1-12.704-19.616 29.28 29.28 0 0 1 5.696-22.816l20.896-27.808a166.72 166.72 0 0 1-27.008-34.688l-33.376 10.432c-16.8 5.184-34.56-3.552-39.936-19.616a29.824 29.824 0 0 1 20.224-38.24l33.472-10.432c-0.8-7.264-2.016-14.304-2.016-21.824 0-7.36 1.184-14.496 2.304-21.632l-33.792-10.368c-16.672-5.376-25.632-22.496-20.224-38.432 5.376-16 23.136-24.672 39.936-19.68l34.016 10.752c7.328-12.672 15.84-24.8 26.336-35.328l-20.8-27.552a29.44 29.44 0 0 1 6.944-42.432 32.704 32.704 0 0 1 44.384 6.752l20.832 27.616c13.696-6.432 28.224-11.2 43.104-13.952v-33.568c0-16.736 14.048-30.432 31.648-30.432 17.536 0 31.808 13.568 31.808 30.432v33.504c15.072 2.688 29.344 7.808 42.848 14.016l20.992-27.616a32.48 32.48 0 0 1 44.224-6.752 29.568 29.568 0 0 1 7.136 42.432l-21.024 27.808c10.432 10.432 19.872 21.888 27.04 34.752l33.376-10.432c16.768-5.12 34.56 3.68 39.936 19.68 5.536 15.936-3.712 33.056-20.32 38.304z m-206.016-74.432c-61.344 0-111.136 47.808-111.136 106.56 0 58.88 49.792 106.496 111.136 106.496 61.312 0 111.104-47.616 111.104-106.496 0-58.752-49.792-106.56-111.104-106.56z" p-id="3602"></path><path d="M802.7888 57.152h-76.448c0-22.08-21.024-38.24-42.848-38.24H39.3968a39.68 39.68 0 0 0-39.36 40.032v795.616s41.888 120.192 110.752 120.192H673.2848a227.488 227.488 0 0 1-107.04-97.44H117.6368s-40.608-13.696-40.608-41.248l470.304-0.256 1.664 3.36a227.68 227.68 0 0 1-12.64-73.632c0-60.576 24-118.624 66.88-161.44a228.352 228.352 0 0 1 123.552-63.392l-3.2 0.288 2.144-424.672h38.208l0.576 421.024c27.04 0 52.672 4.8 76.64 13.344V101.536c0.032 0-6.304-44.384-38.368-44.384zM149.7648 514.336H72.3888v-77.408H149.7648v77.408z m0-144.32H72.3888v-77.44H149.7648v77.44z m0-137.248H72.3888v-77.44H149.7648v77.44z m501.856 281.568H206.0848v-77.408h445.536v77.408z m0-144.32H206.0848v-77.44h445.536v77.44z m0-137.248H206.0848v-77.44h445.536v77.44z" p-id="3603"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/documentation.svg b/ruoyi-ui/src/assets/icons/svg/documentation.svg
deleted file mode 100644
index 7043122..0000000
--- a/ruoyi-ui/src/assets/icons/svg/documentation.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M71.984 44.815H115.9L71.984 9.642v35.173zM16.094.05h63.875l47.906 38.37v76.74c0 3.392-1.682 6.645-4.677 9.044-2.995 2.399-7.056 3.746-11.292 3.746H16.094c-4.236 0-8.297-1.347-11.292-3.746-2.995-2.399-4.677-5.652-4.677-9.044V12.84C.125 5.742 7.23.05 16.094.05zm71.86 102.32V89.58h-71.86v12.79h71.86zm23.952-25.58V64H16.094v12.79h95.812z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/download.svg b/ruoyi-ui/src/assets/icons/svg/download.svg
deleted file mode 100644
index c896951..0000000
--- a/ruoyi-ui/src/assets/icons/svg/download.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1569915748289" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3062" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M768.35456 416a256 256 0 1 0-512 0 192 192 0 1 0 0 384v64a256 256 0 0 1-58.88-505.216 320.128 320.128 0 0 1 629.76 0A256.128 256.128 0 0 1 768.35456 864v-64a192 192 0 0 0 0-384z m-512 384h64v64H256.35456v-64z m448 0h64v64h-64v-64z" fill="#333333" p-id="3063"></path><path d="M539.04256 845.248V512.192a32.448 32.448 0 0 0-32-32.192c-17.664 0-32 14.912-32 32.192v333.056l-36.096-36.096a32.192 32.192 0 0 0-45.056 0.192 31.616 31.616 0 0 0-0.192 45.056l90.88 90.944a31.36 31.36 0 0 0 22.528 9.088 30.08 30.08 0 0 0 22.4-9.088l90.88-90.88a32.192 32.192 0 0 0-0.192-45.12 31.616 31.616 0 0 0-45.056-0.192l-36.096 36.096z" fill="#333333" p-id="3064"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/drag.svg b/ruoyi-ui/src/assets/icons/svg/drag.svg
deleted file mode 100644
index 4185d3c..0000000
--- a/ruoyi-ui/src/assets/icons/svg/drag.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M73.137 29.08h-9.209 29.7L63.886.093 34.373 29.08h20.49v27.035H27.238v17.948h27.625v27.133h18.274V74.063h27.41V56.115h-27.41V29.08zm-9.245 98.827l27.518-26.711H36.59l27.302 26.71zM.042 64.982l27.196 27.029V38.167L.042 64.982zm100.505-26.815V92.01l27.41-27.029-27.41-26.815z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/druid.svg b/ruoyi-ui/src/assets/icons/svg/druid.svg
deleted file mode 100644
index a2b4b4e..0000000
--- a/ruoyi-ui/src/assets/icons/svg/druid.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566036347051" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5853" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M832 128H192a64.19 64.19 0 0 0-64 64v640a64.19 64.19 0 0 0 64 64h640a64.19 64.19 0 0 0 64-64V192a64.19 64.19 0 0 0-64-64z m0 703.89l-0.11 0.11H192.11l-0.11-0.11V768h640zM832 544H720L605.6 696.54 442.18 435.07 333.25 544H192v-64h114.75l147.07-147.07L610.4 583.46 688 480h144z m0-288H192v-63.89l0.11-0.11h639.78l0.11 0.11z" p-id="5854"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/edit.svg b/ruoyi-ui/src/assets/icons/svg/edit.svg
deleted file mode 100644
index d26101f..0000000
--- a/ruoyi-ui/src/assets/icons/svg/edit.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M106.133 67.2a4.797 4.797 0 0 0-4.8 4.8c0 .187.014.36.027.533h-.027V118.4H9.6V26.667h50.133c2.654 0 4.8-2.147 4.8-4.8 0-2.654-2.146-4.8-4.8-4.8H9.6a9.594 9.594 0 0 0-9.6 9.6V118.4c0 5.307 4.293 9.6 9.6 9.6h91.733c5.307 0 9.6-4.293 9.6-9.6V72.533h-.026c.013-.173.026-.346.026-.533 0-2.653-2.146-4.8-4.8-4.8z"/><path d="M125.16 13.373L114.587 2.8c-3.747-3.747-9.854-3.72-13.6.027l-52.96 52.96a4.264 4.264 0 0 0-.907 1.36L33.813 88.533c-.746 1.76-.226 3.534.907 4.68 1.133 1.147 2.92 1.667 4.693.92l31.4-13.293c.507-.213.96-.52 1.36-.907l52.96-52.96c3.747-3.746 3.774-9.853.027-13.6zM66.107 72.4l-18.32 7.76 7.76-18.32L92.72 24.667l10.56 10.56L66.107 72.4zm52.226-52.227l-8.266 8.267-10.56-10.56 8.266-8.267.027-.026 10.56 10.56-.027.026z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/education.svg b/ruoyi-ui/src/assets/icons/svg/education.svg
deleted file mode 100644
index 7bfb01d..0000000
--- a/ruoyi-ui/src/assets/icons/svg/education.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M88.883 119.565c-7.284 0-19.434 2.495-21.333 8.25v.127c-4.232.13-5.222 0-7.108 0-1.895-5.76-14.045-8.256-21.333-8.256H0V0h42.523c9.179 0 17.109 5.47 21.47 13.551C68.352 5.475 76.295 0 85.478 0H128v119.57l-39.113-.005h-.004zM60.442 24.763c0-9.651-8.978-16.507-17.777-16.507H7.108V111.43H39.11c7.054-.14 18.177.082 21.333 6.12v-4.628c-.134-5.722-.004-13.522 0-13.832V27.413l.004-2.655-.004.005zm60.442-16.517h-35.55c-8.802 0-17.78 6.856-17.78 16.493v74.259c.004.32.138 8.115 0 13.813v4.627c3.155-6.022 14.279-6.26 21.333-6.114h32V8.25l-.003-.005z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/email.svg b/ruoyi-ui/src/assets/icons/svg/email.svg
deleted file mode 100644
index 74d25e2..0000000
--- a/ruoyi-ui/src/assets/icons/svg/email.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="96" xmlns="http://www.w3.org/2000/svg"><path d="M64.125 56.975L120.188.912A12.476 12.476 0 0 0 115.5 0h-103c-1.588 0-3.113.3-4.513.838l56.138 56.137z"/><path d="M64.125 68.287l-62.3-62.3A12.42 12.42 0 0 0 0 12.5v71C0 90.4 5.6 96 12.5 96h103c6.9 0 12.5-5.6 12.5-12.5v-71a12.47 12.47 0 0 0-1.737-6.35L64.125 68.287z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/example.svg b/ruoyi-ui/src/assets/icons/svg/example.svg
deleted file mode 100644
index 46f42b5..0000000
--- a/ruoyi-ui/src/assets/icons/svg/example.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M96.258 57.462h31.421C124.794 27.323 100.426 2.956 70.287.07v31.422a32.856 32.856 0 0 1 25.971 25.97zm-38.796-25.97V.07C27.323 2.956 2.956 27.323.07 57.462h31.422a32.856 32.856 0 0 1 25.97-25.97zm12.825 64.766v31.421c30.46-2.885 54.507-27.253 57.713-57.712H96.579c-2.886 13.466-13.146 23.726-26.292 26.291zM31.492 70.287H.07c2.886 30.46 27.253 54.507 57.713 57.713V96.579c-13.466-2.886-23.726-13.146-26.291-26.292z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/excel.svg b/ruoyi-ui/src/assets/icons/svg/excel.svg
deleted file mode 100644
index 74d97b8..0000000
--- a/ruoyi-ui/src/assets/icons/svg/excel.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M78.208 16.576v8.384h38.72v5.376h-38.72v8.704h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.512h38.72v5.376h-38.72v11.136H128v-94.72H78.208zM0 114.368L72.128 128V0L0 13.632v100.736z"/><path d="M28.672 82.56h-11.2l14.784-23.488-14.08-22.592h11.52l8.192 14.976 8.448-14.976h11.136l-14.08 22.208L58.368 82.56H46.656l-8.768-15.68z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/exit-fullscreen.svg b/ruoyi-ui/src/assets/icons/svg/exit-fullscreen.svg
deleted file mode 100644
index 485c128..0000000
--- a/ruoyi-ui/src/assets/icons/svg/exit-fullscreen.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M49.217 41.329l-.136-35.24c-.06-2.715-2.302-4.345-5.022-4.405h-3.65c-2.712-.06-4.866 2.303-4.806 5.016l.152 19.164-24.151-23.79a6.698 6.698 0 0 0-9.499 0 6.76 6.76 0 0 0 0 9.526l23.93 23.713-18.345.074c-2.712-.069-5.228 1.813-5.64 5.02v3.462c.069 2.721 2.31 4.97 5.022 5.03l35.028-.207c.052.005.087.025.133.025l2.457.054a4.626 4.626 0 0 0 3.436-1.38c.88-.874 1.205-2.096 1.169-3.462l-.262-2.465c0-.048.182-.081.182-.136h.002zm52.523 51.212l18.32-.073c2.713.06 5.224-1.609 5.64-4.815v-3.462c-.068-2.722-2.317-4.97-5.021-5.04l-34.58.21c-.053 0-.086-.021-.138-.021l-2.451-.06a4.64 4.64 0 0 0-3.445 1.381c-.885.868-1.201 2.094-1.174 3.46l.27 2.46c.005.06-.177.095-.177.141l.141 34.697c.069 2.713 2.31 4.338 5.022 4.397l3.45.006c2.705.062 4.867-2.31 4.8-5.026l-.153-18.752 24.151 23.946a6.69 6.69 0 0 0 9.494 0 6.747 6.747 0 0 0 0-9.523L101.74 92.54v.001zM48.125 80.662a4.636 4.636 0 0 0-3.437-1.382l-2.457.06c-.05 0-.082.022-.137.022l-35.025-.21c-2.712.07-4.957 2.318-5.022 5.04v3.462c.409 3.206 2.925 4.874 5.633 4.814l18.554.06-24.132 23.928c-2.62 2.626-2.62 6.89 0 9.524a6.694 6.694 0 0 0 9.496 0l24.155-23.79-.155 18.866c-.06 2.722 2.094 5.093 4.801 5.025h3.65c2.72-.069 4.962-1.685 5.022-4.406l.141-34.956c0-.05-.182-.082-.182-.136l.262-2.46c.03-1.366-.286-2.592-1.166-3.46h-.001zM80.08 47.397a4.62 4.62 0 0 0 3.443 1.374l2.45-.054c.055 0 .088-.02.143-.028l35.08.21c2.712-.062 4.953-2.312 5.021-5.033l.009-3.463c-.417-3.211-2.937-5.084-5.64-5.025l-18.615-.073 23.917-23.715c2.63-2.623 2.63-6.879.008-9.513a6.691 6.691 0 0 0-9.494 0L92.251 26.016l.155-19.312c.065-2.713-2.097-5.085-4.802-5.025h-3.45c-2.713.069-4.954 1.693-5.022 4.406l-.139 35.247c0 .054.18.088.18.136l-.267 2.465c-.028 1.366.288 2.588 1.174 3.463v.001z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/eye-open.svg b/ruoyi-ui/src/assets/icons/svg/eye-open.svg
deleted file mode 100644
index 88dcc98..0000000
--- a/ruoyi-ui/src/assets/icons/svg/eye-open.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="128" height="128"><defs><style/></defs><path d="M512 128q69.675 0 135.51 21.163t115.498 54.997 93.483 74.837 73.685 82.006 51.67 74.837 32.17 54.827L1024 512q-2.347 4.992-6.315 13.483T998.87 560.17t-31.658 51.669-44.331 59.99-56.832 64.34-69.504 60.16-82.347 51.5-94.848 34.687T512 896q-69.675 0-135.51-21.163t-115.498-54.826-93.483-74.326-73.685-81.493-51.67-74.496-32.17-54.997L0 513.707q2.347-4.992 6.315-13.483t18.816-34.816 31.658-51.84 44.331-60.33 56.832-64.683 69.504-60.331 82.347-51.84 94.848-34.816T512 128.085zm0 85.333q-46.677 0-91.648 12.331t-81.152 31.83-70.656 47.146-59.648 54.485-48.853 57.686-37.675 52.821-26.325 43.99q12.33 21.674 26.325 43.52t37.675 52.351 48.853 57.003 59.648 53.845T339.2 767.02t81.152 31.488T512 810.667t91.648-12.331 81.152-31.659 70.656-46.848 59.648-54.186 48.853-57.344 37.675-52.651T927.957 512q-12.33-21.675-26.325-43.648t-37.675-52.65-48.853-57.345-59.648-54.186-70.656-46.848-81.152-31.659T512 213.334zm0 128q70.656 0 120.661 50.006T682.667 512 632.66 632.661 512 682.667 391.339 632.66 341.333 512t50.006-120.661T512 341.333zm0 85.334q-35.328 0-60.33 25.002T426.666 512t25.002 60.33T512 597.334t60.33-25.002T597.334 512t-25.002-60.33T512 426.666z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/eye.svg b/ruoyi-ui/src/assets/icons/svg/eye.svg
deleted file mode 100644
index 16ed2d8..0000000
--- a/ruoyi-ui/src/assets/icons/svg/eye.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="64" xmlns="http://www.w3.org/2000/svg"><path d="M127.072 7.994c1.37-2.208.914-5.152-.914-6.87-2.056-1.717-4.797-1.226-6.396.982-.229.245-25.586 32.382-55.74 32.382-29.24 0-55.74-32.382-55.968-32.627-1.6-1.963-4.57-2.208-6.397-.49C-.17 3.086-.399 6.275 1.2 8.238c.457.736 5.94 7.36 14.62 14.72L4.17 35.96c-1.828 1.963-1.6 5.152.228 6.87.457.98 1.6 1.471 2.742 1.471s2.284-.49 3.198-1.472l12.564-13.983c5.94 4.416 13.021 8.587 20.788 11.53l-4.797 17.418c-.685 2.699.686 5.397 3.198 6.133h1.37c2.057 0 3.884-1.472 4.341-3.68L52.6 42.83c3.655.736 7.538 1.227 11.422 1.227 3.883 0 7.767-.49 11.422-1.227l4.797 17.173c.457 2.208 2.513 3.68 4.34 3.68.457 0 .914 0 1.143-.246 2.513-.736 3.883-3.434 3.198-6.133l-4.797-17.172c7.767-2.944 14.848-7.114 20.788-11.53l12.336 13.738c.913.981 2.056 1.472 3.198 1.472s2.284-.49 3.198-1.472c1.828-1.963 1.828-4.906.228-6.87l-11.65-13.001c9.366-7.36 14.849-14.474 14.849-14.474z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/form.svg b/ruoyi-ui/src/assets/icons/svg/form.svg
deleted file mode 100644
index dcbaa18..0000000
--- a/ruoyi-ui/src/assets/icons/svg/form.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M84.068 23.784c-1.02 0-1.877-.32-2.572-.96a8.588 8.588 0 0 1-1.738-2.237 11.524 11.524 0 0 1-1.042-2.621c-.232-.895-.348-1.641-.348-2.238V0h.278c.834 0 1.622.085 2.363.256.742.17 1.645.575 2.711 1.214 1.066.64 2.363 1.535 3.892 2.686 1.53 1.15 3.453 2.664 5.77 4.54 2.502 2.045 4.494 3.771 5.977 5.178 1.483 1.406 2.618 2.6 3.406 3.58.787.98 1.274 1.812 1.46 2.494.185.682.277 1.278.277 1.79v2.046H84.068zM127.3 84.01c.278.682.464 1.535.556 2.558.093 1.023-.37 2.003-1.39 2.94-.463.427-.88.832-1.25 1.215-.372.384-.696.704-.974.96a6.69 6.69 0 0 1-.973.767l-11.816-10.741a44.331 44.331 0 0 0 1.877-1.535 31.028 31.028 0 0 1 1.737-1.406c1.112-.938 2.317-1.343 3.615-1.215 1.297.128 2.363.405 3.197.83.927.427 1.923 1.173 2.989 2.239 1.065 1.065 1.876 2.195 2.432 3.388zM78.23 95.902c2.038 0 3.752-.511 5.143-1.534l-26.969 25.83H18.037c-1.761 0-3.684-.47-5.77-1.407a24.549 24.549 0 0 1-5.838-3.709 21.373 21.373 0 0 1-4.518-5.306c-1.204-2.003-1.807-4.07-1.807-6.202V16.495c0-1.79.44-3.665 1.32-5.626A18.41 18.41 0 0 1 5.04 5.562a21.798 21.798 0 0 1 5.213-3.964C12.198.533 14.237 0 16.37 0h53.24v15.984c0 1.62.278 3.367.834 5.242a16.704 16.704 0 0 0 2.572 5.179c1.159 1.577 2.665 2.898 4.518 3.964 1.853 1.066 4.078 1.598 6.673 1.598h20.295v42.325L85.458 92.45c1.02-1.364 1.529-2.856 1.529-4.476 0-2.216-.857-4.113-2.572-5.69-1.714-1.577-3.776-2.366-6.186-2.366H26.1c-2.409 0-4.448.789-6.116 2.366-1.668 1.577-2.502 3.474-2.502 5.69 0 2.217.834 4.092 2.502 5.626 1.668 1.535 3.707 2.302 6.117 2.302h52.13zM26.1 47.951c-2.41 0-4.449.789-6.117 2.366-1.668 1.577-2.502 3.473-2.502 5.69 0 2.216.834 4.092 2.502 5.626 1.668 1.534 3.707 2.302 6.117 2.302h52.13c2.409 0 4.47-.768 6.185-2.302 1.715-1.534 2.572-3.41 2.572-5.626 0-2.217-.857-4.113-2.572-5.69-1.714-1.577-3.776-2.366-6.186-2.366H26.1zm52.407 64.063l1.807-1.663 3.476-3.196a479.75 479.75 0 0 0 4.587-4.284 500.757 500.757 0 0 1 5.004-4.667c3.985-3.666 8.48-7.758 13.485-12.276l11.677 10.741-13.485 12.404-5.004 4.603-4.587 4.22a179.46 179.46 0 0 0-3.267 3.068c-.88.853-1.367 1.322-1.46 1.407-.463.341-.973.703-1.529 1.087-.556.383-1.112.703-1.668.959-.556.256-1.413.575-2.572.959a83.5 83.5 0 0 1-3.545 1.087 72.2 72.2 0 0 1-3.475.895c-1.112.256-1.946.426-2.502.511-1.112.17-1.854.043-2.224-.383-.371-.426-.464-1.151-.278-2.174.092-.511.278-1.279.556-2.302.278-1.023.602-2.067.973-3.132l1.042-3.005c.325-.938.58-1.577.765-1.918a10.157 10.157 0 0 1 2.224-2.941z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/fullscreen.svg b/ruoyi-ui/src/assets/icons/svg/fullscreen.svg
deleted file mode 100644
index 0e86b6f..0000000
--- a/ruoyi-ui/src/assets/icons/svg/fullscreen.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M38.47 52L52 38.462l-23.648-23.67L43.209 0H.035L0 43.137l14.757-14.865L38.47 52zm74.773 47.726L89.526 76 76 89.536l23.648 23.672L84.795 128h43.174L128 84.863l-14.757 14.863zM89.538 52l23.668-23.648L128 43.207V.038L84.866 0 99.73 14.76 76 38.472 89.538 52zM38.46 76L14.792 99.651 0 84.794v43.173l43.137.033-14.865-14.757L52 89.53 38.46 76z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/github.svg b/ruoyi-ui/src/assets/icons/svg/github.svg
deleted file mode 100644
index db0a0d4..0000000
--- a/ruoyi-ui/src/assets/icons/svg/github.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1581238998885" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4187" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M511.542857 14.057143C228.914286 13.942857 0 242.742857 0 525.142857 0 748.457143 143.2 938.285714 342.628571 1008c26.857143 6.742857 22.742857-12.342857 22.742858-25.371429v-88.571428c-155.085714 18.171429-161.371429-84.457143-171.771429-101.6C172.571429 756.571429 122.857143 747.428571 137.714286 730.285714c35.314286-18.171429 71.314286 4.571429 113.028571 66.171429 30.171429 44.685714 89.028571 37.142857 118.857143 29.714286 6.514286-26.857143 20.457143-50.857143 39.657143-69.485715-160.685714-28.8-227.657143-126.857143-227.657143-243.428571 0-56.571429 18.628571-108.571429 55.2-150.514286-23.314286-69.142857 2.171429-128.342857 5.6-137.142857 66.4-5.942857 135.428571 47.542857 140.8 51.771429 37.714286-10.171429 80.8-15.542857 129.028571-15.542858 48.457143 0 91.657143 5.6 129.714286 15.885715 12.914286-9.828571 76.914286-55.771429 138.628572-50.171429 3.314286 8.8 28.228571 66.628571 6.285714 134.857143 37.028571 42.057143 55.885714 94.514286 55.885714 151.2 0 116.8-67.428571 214.971429-228.571428 243.314286a145.714286 145.714286 0 0 1 43.542857 104v128.571428c0.914286 10.285714 0 20.457143 17.142857 20.457143 202.4-68.228571 348.114286-259.428571 348.114286-484.685714 0-282.514286-229.028571-511.2-511.428572-511.2z" p-id="4188"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/guide.svg b/ruoyi-ui/src/assets/icons/svg/guide.svg
deleted file mode 100644
index b271001..0000000
--- a/ruoyi-ui/src/assets/icons/svg/guide.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M1.482 70.131l36.204 16.18 69.932-65.485-61.38 70.594 46.435 18.735c1.119.425 2.397-.17 2.797-1.363v-.085L127.998.047 1.322 65.874c-1.12.597-1.519 1.959-1.04 3.151.32.511.72.937 1.2 1.107zm44.676 57.821L64.22 107.26l-18.062-7.834v28.527z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/icon.svg b/ruoyi-ui/src/assets/icons/svg/icon.svg
deleted file mode 100644
index 82be8ee..0000000
--- a/ruoyi-ui/src/assets/icons/svg/icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M115.147.062a13 13 0 0 1 4.94.945c1.55.63 2.907 1.526 4.069 2.688a13.148 13.148 0 0 1 2.761 4.069c.678 1.55 1.017 3.245 1.017 5.086v102.3c0 3.681-1.187 6.733-3.56 9.155-2.373 2.422-5.352 3.633-8.937 3.633H12.992c-3.875 0-7-1.26-9.373-3.779-2.373-2.518-3.56-5.667-3.56-9.445V12.704c0-3.39 1.163-6.345 3.488-8.863C5.872 1.32 8.972.062 12.847.062h102.3zM81.434 109.047c1.744 0 3.003-.412 3.778-1.235.775-.824 1.163-1.914 1.163-3.27 0-1.26-.388-2.325-1.163-3.197-.775-.872-2.034-1.307-3.778-1.307H72.57c.097-.194.145-.485.145-.872V27.09h9.01c1.743 0 2.954-.436 3.633-1.308.678-.872 1.017-1.938 1.017-3.197 0-1.26-.34-2.325-1.017-3.197-.679-.872-1.89-1.308-3.633-1.308H46.268c-1.743 0-2.954.436-3.632 1.308-.678.872-1.018 1.938-1.018 3.197 0 1.26.34 2.325 1.018 3.197.678.872 1.889 1.308 3.632 1.308h8.138v72.075c0 .193.024.339.073.436.048.096.072.242.072.436H46.56c-1.744 0-3.003.435-3.778 1.307-.775.872-1.163 1.938-1.163 3.197 0 1.356.388 2.446 1.163 3.27.775.823 2.034 1.235 3.778 1.235h34.875z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/input.svg b/ruoyi-ui/src/assets/icons/svg/input.svg
deleted file mode 100644
index ab91381..0000000
--- a/ruoyi-ui/src/assets/icons/svg/input.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575802859706" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3102" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M896 224H128c-35.2 0-64 28.8-64 64v448c0 35.2 28.8 64 64 64h768c35.2 0 64-28.8 64-64V288c0-35.2-28.8-64-64-64z m0 480c0 19.2-12.8 32-32 32H160c-19.2 0-32-12.8-32-32V320c0-19.2 12.8-32 32-32h704c19.2 0 32 12.8 32 32v384z" p-id="3103"></path><path d="M224 352c-19.2 0-32 12.8-32 32v256c0 16 12.8 32 32 32s32-12.8 32-32V384c0-16-12.8-32-32-32z" p-id="3104"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/international.svg b/ruoyi-ui/src/assets/icons/svg/international.svg
deleted file mode 100644
index e9b56ee..0000000
--- a/ruoyi-ui/src/assets/icons/svg/international.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M83.287 103.01c-1.57-3.84-6.778-10.414-15.447-19.548-2.327-2.444-2.182-4.306-1.338-9.862v-.64c.553-3.81 1.513-6.05 14.313-8.087 6.516-1.018 8.203 1.57 10.589 5.178l.785 1.193a12.625 12.625 0 0 0 6.43 5.207c1.134.524 2.53 1.164 4.421 2.24 4.596 2.53 4.596 5.41 4.596 11.753v.727a26.91 26.91 0 0 1-5.178 17.454 59.055 59.055 0 0 1-19.025 11.026c3.49-6.546.814-14.313 0-16.553l-.146-.087zM64 5.12a58.502 58.502 0 0 1 25.484 5.818 54.313 54.313 0 0 0-12.859 10.327c-.93 1.28-1.716 2.473-2.472 3.579-2.444 3.694-3.637 5.352-5.818 5.614a25.105 25.105 0 0 1-4.219 0c-4.276-.29-10.094-.64-11.956 4.422-1.193 3.23-1.396 11.956 2.444 16.495.66 1.077.778 2.4.32 3.578a7.01 7.01 0 0 1-2.066 3.229 18.938 18.938 0 0 1-2.909-2.91 18.91 18.91 0 0 0-8.32-6.603c-1.25-.349-2.647-.64-3.985-.93-3.782-.786-8.03-1.688-9.019-3.812a14.895 14.895 0 0 1-.727-5.818 21.935 21.935 0 0 0-1.396-9.25 8.873 8.873 0 0 0-5.557-4.946A58.705 58.705 0 0 1 64 5.12zM0 64c0 35.346 28.654 64 64 64 35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/job.svg b/ruoyi-ui/src/assets/icons/svg/job.svg
deleted file mode 100644
index 2a93a25..0000000
--- a/ruoyi-ui/src/assets/icons/svg/job.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566036191400" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5472" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M934.912 1016.832H192c-14.336 0-25.6-11.264-25.6-25.6v-189.44c0-14.336 11.264-25.6 25.6-25.6s25.6 11.264 25.6 25.6v163.84h691.712V64H217.6v148.48c0 14.336-11.264 25.6-25.6 25.6s-25.6-11.264-25.6-25.6v-174.08c0-14.336 11.264-25.6 25.6-25.6h742.912c14.336 0 25.6 11.264 25.6 25.6v952.832c0 14.336-11.264 25.6-25.6 25.6z" p-id="5473"></path><path d="M232.96 371.2h-117.76c-14.336 0-25.6-11.264-25.6-25.6s11.264-25.6 25.6-25.6h117.76c14.336 0 25.6 11.264 25.6 25.6s-11.264 25.6-25.6 25.6zM232.96 540.16h-117.76c-14.336 0-25.6-11.264-25.6-25.6s11.264-25.6 25.6-25.6h117.76c14.336 0 25.6 11.264 25.6 25.6s-11.264 25.6-25.6 25.6zM232.96 698.88h-117.76c-14.336 0-25.6-11.264-25.6-25.6s11.264-25.6 25.6-25.6h117.76c14.336 0 25.6 11.264 25.6 25.6s-11.264 25.6-25.6 25.6zM574.464 762.88c-134.144 0-243.2-109.056-243.2-243.2S440.32 276.48 574.464 276.48s243.2 109.056 243.2 243.2-109.056 243.2-243.2 243.2z m0-435.2c-105.984 0-192 86.016-192 192S468.48 711.68 574.464 711.68s192-86.016 192-192S680.448 327.68 574.464 327.68z" p-id="5474"></path><path d="M663.04 545.28h-87.04c-14.336 0-25.6-11.264-25.6-25.6s11.264-25.6 25.6-25.6h87.04c14.336 0 25.6 11.264 25.6 25.6s-11.264 25.6-25.6 25.6z" p-id="5475"></path><path d="M576 545.28c-14.336 0-25.6-11.264-25.6-25.6v-87.04c0-14.336 11.264-25.6 25.6-25.6s25.6 11.264 25.6 25.6v87.04c0 14.336-11.264 25.6-25.6 25.6z" p-id="5476"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/language.svg b/ruoyi-ui/src/assets/icons/svg/language.svg
deleted file mode 100644
index 0082b57..0000000
--- a/ruoyi-ui/src/assets/icons/svg/language.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M84.742 36.8c2.398 7.2 5.595 12.8 11.19 18.4 4.795-4.8 7.992-11.2 10.39-18.4h-21.58zm-52.748 40h20.78l-10.39-28-10.39 28z"/><path d="M111.916 0H16.009C7.218 0 .025 7.2.025 16v96c0 8.8 7.193 16 15.984 16h95.907c8.791 0 15.984-7.2 15.984-16V16c0-8.8-6.394-16-15.984-16zM72.754 103.2c-1.598 1.6-3.197 1.6-4.795 1.6-.8 0-2.398 0-3.197-.8-.8-.8-1.599 0-1.599-.8s-.799-1.6-1.598-3.2c-.8-1.6-.8-2.4-1.599-4l-3.196-8.8H28.797L25.6 96c-1.598 3.2-2.398 5.6-3.197 7.2-.8 1.6-2.398 1.6-4.795 1.6-1.599 0-3.197-.8-4.796-1.6-1.598-1.6-2.397-2.4-2.397-4 0-.8 0-1.6.799-3.2.8-1.6.8-2.4 1.598-4l17.583-44.8c.8-1.6.8-3.2 1.599-4.8.799-1.6 1.598-3.2 2.397-4 .8-.8 1.599-2.4 3.197-3.2 1.599-.8 3.197-.8 4.796-.8 1.598 0 3.196 0 4.795.8 1.598.8 2.398 1.6 3.197 3.2.799.8 1.598 2.4 2.397 4 .8 1.6 1.599 3.2 2.398 5.6l17.583 44c1.598 3.2 2.398 5.6 2.398 7.2-.8.8-1.599 2.4-2.398 4zM116.711 72c-8.791-3.2-15.185-7.2-20.78-12-5.594 5.6-12.787 9.6-21.579 12l-2.397-4c8.791-2.4 15.984-5.6 21.579-11.2C87.939 51.2 83.144 44 81.545 36h-7.992v-3.2h21.58c-1.6-2.4-3.198-5.6-4.796-8l2.397-.8c1.599 2.4 3.997 5.6 5.595 8.8h19.98v4h-7.992c-2.397 8-6.393 15.2-11.189 20 5.595 4.8 11.988 8.8 20.78 11.2l-3.197 4z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/link.svg b/ruoyi-ui/src/assets/icons/svg/link.svg
deleted file mode 100644
index 48197ba..0000000
--- a/ruoyi-ui/src/assets/icons/svg/link.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M115.625 127.937H.063V12.375h57.781v12.374H12.438v90.813h90.813V70.156h12.374z"/><path d="M116.426 2.821l8.753 8.753-56.734 56.734-8.753-8.745z"/><path d="M127.893 37.982h-12.375V12.375H88.706V0h39.187z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/list.svg b/ruoyi-ui/src/assets/icons/svg/list.svg
deleted file mode 100644
index 20259ed..0000000
--- a/ruoyi-ui/src/assets/icons/svg/list.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M1.585 12.087c0 6.616 3.974 11.98 8.877 11.98 4.902 0 8.877-5.364 8.877-11.98 0-6.616-3.975-11.98-8.877-11.98-4.903 0-8.877 5.364-8.877 11.98zM125.86.107H35.613c-1.268 0-2.114 1.426-2.114 2.852v18.255c0 1.712 1.057 2.853 2.114 2.853h90.247c1.268 0 2.114-1.426 2.114-2.853V2.96c0-1.711-1.057-2.852-2.114-2.852zM.106 62.86c0 6.615 3.974 11.979 8.876 11.979 4.903 0 8.877-5.364 8.877-11.98 0-6.616-3.974-11.98-8.877-11.98-4.902 0-8.876 5.364-8.876 11.98zM124.17 50.88H33.921c-1.268 0-2.114 1.425-2.114 2.851v18.256c0 1.711 1.057 2.852 2.114 2.852h90.247c1.268 0 2.114-1.426 2.114-2.852V53.73c0-1.426-.846-2.852-2.114-2.852zM.106 115.913c0 6.616 3.974 11.98 8.876 11.98 4.903 0 8.877-5.364 8.877-11.98 0-6.616-3.974-11.98-8.877-11.98-4.902 0-8.876 5.364-8.876 11.98zm124.064-11.98H33.921c-1.268 0-2.114 1.426-2.114 2.853v18.255c0 1.711 1.057 2.852 2.114 2.852h90.247c1.268 0 2.114-1.426 2.114-2.852v-18.255c0-1.427-.846-2.853-2.114-2.853z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/lock.svg b/ruoyi-ui/src/assets/icons/svg/lock.svg
deleted file mode 100644
index 74fee54..0000000
--- a/ruoyi-ui/src/assets/icons/svg/lock.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M119.88 49.674h-7.987V39.52C111.893 17.738 90.45.08 63.996.08 37.543.08 16.1 17.738 16.1 39.52v10.154H8.113c-4.408 0-7.987 2.94-7.987 6.577v65.13c0 3.637 3.57 6.577 7.987 6.577H119.88c4.407 0 7.987-2.94 7.987-6.577v-65.13c-.008-3.636-3.58-6.577-7.987-6.577zm-23.953 0H32.065V39.52c0-14.524 14.301-26.295 31.931-26.295 17.63 0 31.932 11.777 31.932 26.295v10.153z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/log.svg b/ruoyi-ui/src/assets/icons/svg/log.svg
deleted file mode 100644
index d879d33..0000000
--- a/ruoyi-ui/src/assets/icons/svg/log.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566035943711" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4805" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M208.736 566.336H64.384v59.328h144.352v-59.328z m0-336.096H165.44V74.592c0-7.968 4.896-14.848 10.464-14.848h502.016V0.448H175.936c-38.72 1.248-69.248 34.368-68.192 74.144v155.648H64.384V289.6h144.352V230.24z m0 168.096H64.384v59.328h144.352v-59.328z m714.656 76.576h-57.76v474.496c0 7.936-4.896 14.848-10.464 14.848H175.936c-5.568 0-10.464-6.912-10.464-14.848v-155.68h43.296v-59.296H64.384v59.296h43.328v155.68c-1.024 39.776 29.472 72.896 68.192 74.144h679.232c38.72-1.184 69.248-34.368 68.256-74.144V474.912z m14.944-290.336l-83.072-85.312a71.264 71.264 0 0 0-52.544-21.728 71.52 71.52 0 0 0-51.616 23.872L386.528 507.264a30.496 30.496 0 0 0-6.176 10.72L308.16 740.512a30.016 30.016 0 0 0 6.976 30.24c7.712 7.968 19.2 10.752 29.568 7.2l216.544-74.112a28.736 28.736 0 0 0 12.128-7.936L940.448 287.456a75.552 75.552 0 0 0-2.112-102.88z m-557.12 518.272l39.104-120.64 78.336 80.416-117.44 40.224z m170.048-70.016l-103.552-106.016 200.16-222.4 103.52 106.304-200.128 222.112zM897.952 247.072l-0.256 0.224-107.136 119.168-103.52-106.528 106.432-118.624a14.144 14.144 0 0 1 10.304-4.736 13.44 13.44 0 0 1 10.464 4.288l83.264 85.696c5.472 5.6 5.664 14.72 0.448 20.512z" p-id="4806"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/logininfor.svg b/ruoyi-ui/src/assets/icons/svg/logininfor.svg
deleted file mode 100644
index 267f844..0000000
--- a/ruoyi-ui/src/assets/icons/svg/logininfor.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566036016814" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5261" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M896 128h-85.333333a42.666667 42.666667 0 0 0 0 85.333333h42.666666v640H170.666667V213.333333h42.666666a42.666667 42.666667 0 0 0 0-85.333333H128a42.666667 42.666667 0 0 0-42.666667 42.666667v725.333333a42.666667 42.666667 0 0 0 42.666667 42.666667h768a42.666667 42.666667 0 0 0 42.666667-42.666667V170.666667a42.666667 42.666667 0 0 0-42.666667-42.666667z" p-id="5262"></path><path d="M341.333333 298.666667a42.666667 42.666667 0 0 0 42.666667-42.666667V128a42.666667 42.666667 0 0 0-85.333333 0v128a42.666667 42.666667 0 0 0 42.666666 42.666667zM512 298.666667a42.666667 42.666667 0 0 0 42.666667-42.666667V128a42.666667 42.666667 0 0 0-85.333334 0v128a42.666667 42.666667 0 0 0 42.666667 42.666667zM682.666667 298.666667a42.666667 42.666667 0 0 0 42.666666-42.666667V128a42.666667 42.666667 0 0 0-85.333333 0v128a42.666667 42.666667 0 0 0 42.666667 42.666667zM341.333333 768a42.666667 42.666667 0 0 0 42.666667-42.666667 128 128 0 0 1 256 0 42.666667 42.666667 0 0 0 85.333333 0 213.333333 213.333333 0 0 0-107.52-184.32A128 128 0 0 0 640 469.333333a128 128 0 0 0-256 0 128 128 0 0 0 22.186667 71.68A213.333333 213.333333 0 0 0 298.666667 725.333333a42.666667 42.666667 0 0 0 42.666666 42.666667z m128-298.666667a42.666667 42.666667 0 1 1 42.666667 42.666667 42.666667 42.666667 0 0 1-42.666667-42.666667z" p-id="5263"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/message.svg b/ruoyi-ui/src/assets/icons/svg/message.svg
deleted file mode 100644
index 14ca817..0000000
--- a/ruoyi-ui/src/assets/icons/svg/message.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 20.967v59.59c0 11.59 8.537 20.966 19.075 20.966h28.613l1 26.477L76.8 101.523h32.125c10.538 0 19.075-9.377 19.075-20.966v-59.59C128 9.377 119.463 0 108.925 0h-89.85C8.538 0 0 9.377 0 20.967zm82.325 33.1c0-5.524 4.013-9.935 9.037-9.935 5.026 0 9.038 4.41 9.038 9.934 0 5.524-4.025 9.934-9.038 9.934-5.024 0-9.037-4.41-9.037-9.934zm-27.613 0c0-5.524 4.013-9.935 9.038-9.935s9.037 4.41 9.037 9.934c0 5.524-4.025 9.934-9.037 9.934-5.025 0-9.038-4.41-9.038-9.934zm-27.1 0c0-5.524 4.013-9.935 9.038-9.935s9.038 4.41 9.038 9.934c0 5.524-4.026 9.934-9.05 9.934-5.013 0-9.025-4.41-9.025-9.934z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/money.svg b/ruoyi-ui/src/assets/icons/svg/money.svg
deleted file mode 100644
index c1580de..0000000
--- a/ruoyi-ui/src/assets/icons/svg/money.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M54.122 127.892v-28.68H7.513V87.274h46.609v-12.4H7.513v-12.86h38.003L.099 0h22.6l32.556 45.07c3.617 5.144 6.44 9.611 8.487 13.385 1.788-3.05 4.89-7.779 9.301-14.186L103.93 0h24.01L82.385 62.013h38.34v12.862h-46.41v12.4h46.41v11.937h-46.41v28.68H54.123z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/monitor.svg b/ruoyi-ui/src/assets/icons/svg/monitor.svg
deleted file mode 100644
index bc308cb..0000000
--- a/ruoyi-ui/src/assets/icons/svg/monitor.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1543827393750" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4695" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css">@font-face { font-family: rbicon; src: url("chrome-extension://dipiagiiohfljcicegpgffpbnjmgjcnf/fonts/rbicon.woff2") format("woff2"); font-weight: normal; font-style: normal; }
-</style></defs><path d="M64 64V640H896V64H64zM0 0h960v704H0V0z" p-id="4696"></path><path d="M192 896H768v64H192zM448 640H512v256h-64z" p-id="4697"></path><path d="M479.232 561.604267l309.9904-348.330667-47.803733-42.5472-259.566934 291.669333L303.957333 240.008533 163.208533 438.6048l52.224 37.009067 91.6224-129.28z" p-id="4698"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/nested.svg b/ruoyi-ui/src/assets/icons/svg/nested.svg
deleted file mode 100644
index 06713a8..0000000
--- a/ruoyi-ui/src/assets/icons/svg/nested.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M.002 9.2c0 5.044 3.58 9.133 7.998 9.133 4.417 0 7.997-4.089 7.997-9.133 0-5.043-3.58-9.132-7.997-9.132S.002 4.157.002 9.2zM31.997.066h95.981V18.33H31.997V.066zm0 45.669c0 5.044 3.58 9.132 7.998 9.132 4.417 0 7.997-4.088 7.997-9.132 0-3.263-1.524-6.278-3.998-7.91-2.475-1.63-5.524-1.63-7.998 0-2.475 1.632-4 4.647-4 7.91zM63.992 36.6h63.986v18.265H63.992V36.6zm-31.995 82.2c0 5.043 3.58 9.132 7.998 9.132 4.417 0 7.997-4.089 7.997-9.132 0-5.044-3.58-9.133-7.997-9.133s-7.998 4.089-7.998 9.133zm31.995-9.131h63.986v18.265H63.992V109.67zm0-27.404c0 5.044 3.58 9.133 7.998 9.133 4.417 0 7.997-4.089 7.997-9.133 0-3.263-1.524-6.277-3.998-7.909-2.475-1.631-5.524-1.631-7.998 0-2.475 1.632-4 4.646-4 7.91zm31.995-9.13h31.991V91.4H95.987V73.135z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/number.svg b/ruoyi-ui/src/assets/icons/svg/number.svg
deleted file mode 100644
index ad5ce9a..0000000
--- a/ruoyi-ui/src/assets/icons/svg/number.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575802851180" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2867" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M279.272727 791.272727h512a46.545455 46.545455 0 0 1 0 93.090909H279.272727a46.545455 46.545455 0 0 1 0-93.090909z m33.838546-617.984V651.636364H193.722182V395.170909c0-37.003636-0.884364-59.298909-2.653091-66.746182a24.948364 24.948364 0 0 0-14.615273-16.989091c-8.005818-3.863273-25.786182-5.771636-53.341091-5.771636h-11.822545v-55.854545c57.716364-12.381091 101.562182-37.888 131.490909-76.520728h70.283636z m303.709091 396.8V651.636364H354.164364v-68.235637c77.777455-127.255273 124.043636-206.010182 138.705454-236.218182 14.661818-30.254545 22.016-53.853091 22.016-70.74909 0-13.032727-2.234182-22.714182-6.656-29.137455-4.421818-6.376727-11.170909-9.588364-20.247273-9.588364a22.248727 22.248727 0 0 0-20.200727 10.612364c-4.468364 7.121455-6.656 21.178182-6.656 42.263273v45.521454H354.164364v-17.454545c0-26.763636 1.396364-47.941818 4.142545-63.348364 2.746182-15.499636 9.541818-30.72 20.386909-45.661091 10.798545-14.987636 24.901818-26.298182 42.216727-33.978182 17.361455-7.68 38.167273-11.543273 62.37091-11.543272 47.476364 0 83.316364 11.776 107.706181 35.328 24.296727 23.552 36.445091 53.341091 36.445091 89.367272 0 27.368727-6.842182 56.32-20.48 86.853819-13.730909 30.533818-54.039273 95.325091-121.018182 194.420363h130.885819z m270.615272-189.393454c18.152727 6.097455 31.650909 16.104727 40.494546 29.975272 8.843636 13.917091 13.312 46.452364 13.312 97.652364 0 38.027636-4.328727 67.490909-13.032727 88.529455-8.657455 20.945455-23.598545 36.910545-44.869819 47.848727-21.271273 10.938182-48.593455 16.384-81.873454 16.384-37.794909 0-67.490909-6.330182-89.088-19.083636-21.550545-12.660364-35.746909-28.253091-42.542546-46.638546-6.795636-18.432-10.193455-50.362182-10.193454-95.883636v-37.841455h119.389091v77.730909c0 20.666182 1.210182 33.838545 3.723636 39.424 2.420364 5.585455 7.912727 8.424727 16.337455 8.424728 9.309091 0 15.36-3.537455 18.338909-10.612364 2.932364-7.121455 4.421818-25.6 4.421818-55.575273v-33.047273c0-18.338909-2.048-31.744-6.190546-40.215272a30.72 30.72 0 0 0-18.338909-16.709818c-8.052364-2.653091-23.738182-4.189091-46.964363-4.561455V357.050182c28.392727 0 45.893818-1.070545 52.596363-3.258182a22.946909 22.946909 0 0 0 14.475637-14.149818c2.932364-7.307636 4.421818-18.711273 4.421818-34.257455v-26.624c0-16.756364-1.722182-27.741091-5.12-33.047272-3.490909-5.352727-8.843636-8.005818-16.151273-8.005819-8.285091 0-13.963636 2.792727-16.989091 8.378182-3.025455 5.632-4.561455 17.640727-4.561454 35.933091v39.284364h-119.389091v-40.773818c0-45.661091 10.472727-76.567273 31.325091-92.625455 20.898909-16.058182 54.085818-24.064 99.607272-24.064 56.878545 0 95.511273 11.170909 115.805091 33.373091 20.293818 22.248727 30.394182 53.201455 30.394182 92.765091 0 26.810182-3.630545 46.173091-10.891636 58.088727-7.307636 11.915636-20.107636 22.807273-38.446546 32.628364z" p-id="2868"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/online.svg b/ruoyi-ui/src/assets/icons/svg/online.svg
deleted file mode 100644
index 330a202..0000000
--- a/ruoyi-ui/src/assets/icons/svg/online.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1568899557259" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="535" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M356.246145 681.56286c-68.156286-41.949414-107.246583-103.84102-107.246583-169.805384 0-65.966411 39.090297-127.860063 107.246583-169.809477 12.046361-7.414877 15.800871-23.190165 8.385994-35.236526-7.413853-12.046361-23.191188-15.801894-35.236526-8.387018-39.640836 24.399713-72.539106 56.044434-95.137801 91.515297-23.86657 37.461193-36.481889 79.620385-36.481889 121.917724 0 42.297338 12.615319 84.454484 36.481889 121.914654 22.598694 35.469839 55.496965 67.11456 95.137801 91.51325 4.185322 2.576685 8.821923 3.804652 13.400195 3.804652 8.598842 0 16.998139-4.329609 21.836331-12.190647C372.047016 704.752002 368.291482 688.976714 356.246145 681.56286zM263.943926 754.580874c-92.603071-61.111846-145.713686-149.623739-145.713686-242.840794 0-93.195565 53.094242-181.682899 145.667637-242.774279 11.805884-7.79043 15.061021-23.677259 7.269567-35.483142-7.79043-11.805884-23.677259-15.062044-35.483142-7.269567C128.487861 296.954249 67.006602 401.024489 67.006602 511.74008c0 110.73708 61.496609 214.830857 168.721703 285.593504 4.343935 2.867304 9.240455 4.238534 14.08274 4.238534 8.317433 0 16.476253-4.046153 21.400403-11.507078C279.003923 778.258133 275.748786 762.372328 263.943926 754.580874zM788.660552 226.213092c-11.80486-7.791453-27.692712-4.536316-35.483142 7.269567-7.79043 11.805884-4.536316 27.692712 7.269567 35.483142 92.575442 61.092403 145.670707 149.579737 145.670707 242.774279 0 93.216032-53.111638 181.727924-145.715733 242.840794-11.805884 7.79043-15.059997 23.678282-7.269567 35.484166 4.925173 7.461949 13.081946 11.507078 21.400403 11.507078 4.841262 0 9.739828-1.37123 14.083763-4.238534 107.22714-70.761624 168.724773-174.857447 168.724773-285.593504C957.341323 401.025513 895.860063 296.955272 788.660552 226.213092zM790.090111 633.67213c23.865547-37.459147 36.480866-79.617315 36.480866-121.914654 0-42.298362-12.615319-84.45653-36.480866-121.917724-22.598694-35.470863-55.496965-67.115584-95.139847-91.515297-12.047384-7.413853-27.821649-3.659343-35.236526 8.387018-7.414877 12.045337-3.659343 27.821649 8.385994 35.236526 68.156286 41.949414 107.247606 103.842043 107.247606 169.809477 0 65.964364-39.090297 127.85597-107.247606 169.804361-12.045337 7.414877-15.800871 23.190165-8.385994 35.237549 4.838192 7.861038 13.236466 12.190647 21.835308 12.190647 4.579295 0 9.215896-1.227967 13.400195-3.804652C734.591099 700.786691 767.490394 669.142993 790.090111 633.67213zM567.129086 518.274914c24.12342-17.150612 39.887452-45.305859 39.887452-77.07133 0-52.128241-42.452881-94.538143-94.634334-94.538143-52.18043 0-94.633311 42.408879-94.633311 94.538143 0 31.695886 15.696494 59.797921 39.730886 76.958766-49.875944 21.128203-84.917018 70.234621-84.917018 127.301338 0 2.366907 0.061398 4.762467 0.182149 7.119141l1.249457 24.296359 276.373515 0 1.238201-24.308639c0.119727-2.358721 0.181125-4.750187 0.181125-7.106862C651.786185 588.497255 616.865861 539.465538 567.129086 518.274914zM512.381182 397.889079c23.937179 0 43.411719 19.430538 43.411719 43.314505 0 23.882943-19.47454 43.313481-43.411719 43.313481-23.936155 0-43.409672-19.430538-43.409672-43.313481C468.971509 417.320641 488.445026 397.889079 512.381182 397.889079zM426.08884 625.656573c9.119705-38.542828 44.254923-67.337641 86.085634-67.337641s76.966952 28.794813 86.085634 67.337641L426.08884 625.656573z" p-id="536"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/password.svg b/ruoyi-ui/src/assets/icons/svg/password.svg
deleted file mode 100644
index 6c64def..0000000
--- a/ruoyi-ui/src/assets/icons/svg/password.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575802846045" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2750" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M868.593046 403.832442c-30.081109-28.844955-70.037123-44.753273-112.624057-44.753273L265.949606 359.079168c-42.554188 0-82.510202 15.908318-112.469538 44.690852-30.236652 28.782533-46.857191 67.222007-46.857191 108.198258l0 294.079782c0 40.977273 16.619516 79.414701 46.702672 108.136859 29.959336 28.844955 70.069869 44.814672 112.624057 44.814672l490.019383 0c42.585911 0 82.696444-15.969717 112.624057-44.814672 30.082132-28.844955 46.579875-67.222007 46.579875-108.136859L915.172921 511.968278C915.171897 471.053426 898.675178 432.677397 868.593046 403.832442zM841.821309 806.049083c0 22.098297-8.882298 42.772152-25.099654 58.306964-16.154935 15.661701-37.81935 24.203238-60.752666 24.203238L265.949606 888.559285c-22.934339 0-44.567032-8.54256-60.877509-24.264637-16.186657-15.474436-25.067932-36.148291-25.067932-58.246589L180.004165 511.968278c0-22.035876 8.881274-42.772152 25.192775-58.307987 16.186657-15.536858 37.81935-24.139793 60.753689-24.139793l490.019383 0c22.933315 0 44.597731 8.602935 60.752666 24.139793 16.21838 15.535835 25.099654 36.272112 25.099654 58.307987L841.822332 806.049083zM510.974136 135.440715c114.914216 0 208.318536 89.75214 208.318536 200.055338l73.350588 0c0-149.113109-126.366036-270.496667-281.669124-270.496667-155.333788 0-281.699824 121.383558-281.699824 270.496667l73.350588 0C302.623877 225.193879 396.059919 135.440715 510.974136 135.440715zM474.299865 747.244792l73.350588 0L547.650453 629.576859l-73.350588 0L474.299865 747.244792z" p-id="2751"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/pdf.svg b/ruoyi-ui/src/assets/icons/svg/pdf.svg
deleted file mode 100644
index 957aa0c..0000000
--- a/ruoyi-ui/src/assets/icons/svg/pdf.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="128" height="128"><path d="M869.073 277.307H657.111V65.344l211.962 211.963zm-238.232 26.27V65.344l-476.498-.054v416.957h714.73v-178.67H630.841zm-335.836 360.57c-5.07-3.064-10.944-5.133-17.61-6.201-6.67-1.064-13.603-1.6-20.81-1.6h-48.821v85.641h48.822c7.206 0 14.14-.532 20.81-1.6 6.665-1.065 12.54-3.133 17.609-6.202 5.064-3.063 9.134-7.406 12.208-13.007 3.065-5.602 4.6-12.937 4.6-22.011 0-9.07-1.535-16.408-4.6-22.01-3.074-5.603-7.144-9.94-12.208-13.01zM35.82 541.805v416.904h952.358V541.805H35.821zm331.421 191.179c-3.6 11.071-9.343 20.879-17.209 29.413-7.874 8.542-18.078 15.408-30.617 20.61-12.544 5.206-27.747 7.807-45.621 7.807h-66.036v102.45h-62.831V607.517h128.867c17.874 0 33.077 2.6 45.62 7.802 12.541 5.207 22.745 12.076 30.618 20.615 7.866 8.538 13.604 18.277 17.21 29.212 3.6 10.943 5.401 22.278 5.401 34.018 0 11.477-1.8 22.752-5.402 33.819zM644.9 806.417c-5.343 17.61-13.408 32.818-24.212 45.627-10.807 12.803-24.283 22.879-40.423 30.213-16.146 7.343-35.155 11.007-57.03 11.007h-123.26V607.518h123.26c18.41 0 35.552 2.941 51.428 8.808 15.873 5.869 29.618 14.671 41.22 26.412 11.608 11.744 20.674 26.411 27.217 44.02 6.535 17.61 9.803 38.288 9.803 62.035 0 20.81-2.67 40.02-8.003 57.624zm245.362-146.07h-138.07v66.03h119.66v48.829h-119.66v118.058h-62.83V607.518h200.9v52.829h-.001zm-318.2 25.611c-6.402-8.266-14.877-14.604-25.412-19.01-10.544-4.402-23.551-6.602-39.019-6.602h-44.825v180.088h56.029c9.07 0 17.872-1.463 26.415-4.401 8.535-2.932 16.14-7.802 22.812-14.609 6.665-6.8 12.007-15.667 16.007-26.61 4.003-10.94 6.003-24.275 6.003-40.021 0-14.408-1.4-27.416-4.202-39.019-2.8-11.607-7.406-21.542-13.808-29.816zm0 0"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/people.svg b/ruoyi-ui/src/assets/icons/svg/people.svg
deleted file mode 100644
index 2bd54ae..0000000
--- a/ruoyi-ui/src/assets/icons/svg/people.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M104.185 95.254c8.161 7.574 13.145 17.441 13.145 28.28 0 1.508-.098 2.998-.285 4.466h-10.784c.238-1.465.403-2.948.403-4.465 0-8.983-4.36-17.115-11.419-23.216C86 104.66 75.355 107.162 64 107.162c-11.344 0-21.98-2.495-31.22-6.83-7.064 6.099-11.444 14.218-11.444 23.203 0 1.517.165 3 .403 4.465H10.955a35.444 35.444 0 0 1-.285-4.465c0-10.838 4.974-20.713 13.127-28.291C9.294 85.42.003 70.417.003 53.58.003 23.99 28.656.001 64 .001s63.997 23.988 63.997 53.58c0 16.842-9.299 31.85-23.812 41.673zM64 36.867c-29.454 0-53.33-10.077-53.33 15.342 0 25.418 23.876 46.023 53.33 46.023 29.454 0 53.33-20.605 53.33-46.023 0-25.419-23.876-15.342-53.33-15.342zm24.888 25.644c-3.927 0-7.111-2.665-7.111-5.953 0-3.288 3.184-5.954 7.11-5.954 3.928 0 7.111 2.666 7.111 5.954s-3.183 5.953-7.11 5.953zm-3.556 16.372c0 4.11-9.55 7.442-21.332 7.442-11.781 0-21.332-3.332-21.332-7.442 0-1.06.656-2.064 1.8-2.976 3.295 2.626 10.79 4.465 19.532 4.465 8.743 0 16.237-1.84 19.531-4.465 1.145.912 1.801 1.916 1.801 2.976zm-46.22-16.372c-3.927 0-7.11-2.665-7.11-5.953 0-3.288 3.183-5.954 7.11-5.954 3.927 0 7.111 2.666 7.111 5.954s-3.184 5.953-7.11 5.953z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/peoples.svg b/ruoyi-ui/src/assets/icons/svg/peoples.svg
deleted file mode 100644
index aab852e..0000000
--- a/ruoyi-ui/src/assets/icons/svg/peoples.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M95.648 118.762c0 5.035-3.563 9.121-7.979 9.121H7.98c-4.416 0-7.979-4.086-7.979-9.121C0 100.519 15.408 83.47 31.152 76.75c-9.099-6.43-15.216-17.863-15.216-30.987v-9.128c0-20.16 14.293-36.518 31.893-36.518s31.894 16.358 31.894 36.518v9.122c0 13.137-6.123 24.556-15.216 30.993 15.738 6.726 31.141 23.769 31.141 42.012z"/><path d="M106.032 118.252h15.867c3.376 0 6.101-3.125 6.101-6.972 0-13.957-11.787-26.984-23.819-32.123 6.955-4.919 11.638-13.66 11.638-23.704v-6.985c0-15.416-10.928-27.926-24.39-27.926-1.674 0-3.306.193-4.89.561 1.936 4.713 3.018 9.974 3.018 15.526v9.121c0 13.137-3.056 23.111-11.066 30.993 14.842 4.41 27.312 23.42 27.541 41.509z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/phone.svg b/ruoyi-ui/src/assets/icons/svg/phone.svg
deleted file mode 100644
index ab8e8c4..0000000
--- a/ruoyi-ui/src/assets/icons/svg/phone.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1567417214476" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2266" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M761.503029 2.90619 242.121921 2.90619c-32.405037 0-58.932204 26.060539-58.932204 58.527998l0 902.302287c0 32.156374 26.217105 58.216913 58.932204 58.216913l519.381108 0c32.344662 0 58.591443-26.060539 58.591443-58.216913L820.094472 61.123103C820.094472 28.966729 793.847691 2.90619 761.503029 2.90619M452.878996 61.123103l98.147344 0c6.780427 0 12.31549 5.536087 12.31549 12.253068 0 6.748704-5.535063 12.253068-12.31549 12.253068l-98.147344 0c-6.779404 0-12.345166-5.504364-12.345166-12.253068C440.532807 66.659189 446.099592 61.123103 452.878996 61.123103M501.641583 980.593398c-29.636994 0-53.987588-23.946388-53.987588-53.677527 0-29.356608 24.039509-53.614082 53.987588-53.614082 29.91738 0 53.987588 23.883967 53.987588 53.614082C555.629171 956.647009 531.559986 980.593398 501.641583 980.593398M766.35657 803.142893c0 16.23373-13.186324 29.107945-29.233811 29.107945l-470.618521 0c-16.35755 0-29.325909-13.186324-29.325909-29.107945L237.178329 163.500794c0-16.232706 13.279445-29.138644 29.325909-29.138644l470.246037 0c16.420995 0 29.357632 13.1853 29.357632 29.138644l0 639.642099L766.35657 803.142893zM766.35657 803.142893" p-id="2267"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/post.svg b/ruoyi-ui/src/assets/icons/svg/post.svg
deleted file mode 100644
index 2922c61..0000000
--- a/ruoyi-ui/src/assets/icons/svg/post.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566035724641" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3998" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M136.4 434.3h77.7c21.5 0 38.9-17.4 38.9-38.9s-17.4-38.9-38.9-38.9h-77.7c-21.5 0-38.9 17.4-38.9 38.9s17.4 38.9 38.9 38.9zM252.9 628.6c0-21.5-17.4-38.9-38.9-38.9h-77.7c-21.5 0-38.9 17.4-38.9 38.9s17.4 38.9 38.9 38.9H214c21.5-0.1 38.9-17.5 38.9-38.9z" p-id="3999"></path><path d="M874.7 97.5H227c-28.6 0-51.8 23.2-51.8 51.8v194.3h38.9c28.6 0 51.8 23.2 51.8 51.8 0 28.6-23.2 51.8-51.8 51.8h-38.9v129.5h38.9c28.6 0 51.8 23.2 51.8 51.8 0 28.6-23.2 51.8-51.8 51.8h-38.9v194.3c0 28.6 23.2 51.8 51.8 51.8h647.7c28.6 0 51.8-23.2 51.8-51.8V149.3c0-28.6-23.2-51.8-51.8-51.8z m-311.3 723c-15.6 0-146.7-71.6-146.7-91 0-19.4 102-368.6 102-368.6l-83.6-104s-12.3-23.1 24.6-23.1h208.9c36.9 0 18.4 23.1 18.4 23.1l-79 104s102 351.3 102 368.6c0.1 17.3-131 91-146.6 91z m169.2-253.6l-27.9 40.2-74.5-240 103.4 171.7c4.6 7.9 4.2 20.6-1 28.1z" p-id="4000"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/qq.svg b/ruoyi-ui/src/assets/icons/svg/qq.svg
deleted file mode 100644
index ee13d4e..0000000
--- a/ruoyi-ui/src/assets/icons/svg/qq.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M18.448 57.545l-.244-.744-.198-.968-.132-.53v-2.181l.236-.859.24-.908.317-.953.428-1.06.561-1.103.794-1.104v-.773l.077-.724.123-.984.34-1.106.313-1.194.25-.548.289-.511.371-.569.405-.423v-2.73l.234-1.407.236-1.633.42-1.955.577-2.035.43-1.118.426-1.217.468-1.135.559-1.216.57-1.332.655-1.247.737-1.331.929-1.33.43-.762.457-.624.995-1.406 1.025-1.403 1.163-1.444 1.246-1.405 1.352-1.384 1.41-1.423 1.708-1.536 1.083-.934 1.322-1.008 1.34-.89 1.448-.855 1.392-.76 1.57-.63 1.667-.775 1.657-.532 1.653-.552 1.787-.548 1.785-.417 1.876-.347L59.128.68l1.879-.245 1.876-.252 2.002-.106h5.912l1.97.243 1.981.231 2.019.207 1.874.441 1.979.413 1.857.475 2.035.53 1.862.646 1.782.738 1.904.78 1.736.853 1.689.95 1.655 1.044 1.425.971.662.548.693.401 1.323 1.1 1.115 1.064 1.112 1.1 1.083 1.214.894 1.178 1.064 1.217.74 1.306.752 1.162.798 1.352.661 1.175 1.113 2.489.546 1.286.428 1.192.428 1.294.384 1.217.267 1.047.347 1.231.607 2.198.388 1.924.253 1.861.217 1.497.342 2.28.077.362.274.41.737 1.18.473.8.42.832.534.892.472 1.07.307 1.093.334 1.2.252 1.232.115.605.106.746v.648l-.106.643v.8l-.192.774-.35 1.5-.403.76-.299.852v.213l.142.264.4.623 1.746 2.53 1.377 1.9.66 1.267.889 1.389.774 1.52.893 1.627.894 1.828 1.006 2.069.567 1.268.518 1.239.447 1.307.44 1.175.336 1.235.342 1.16.432 2.261.343 2.31.235 2.05v2.891l-.158 1.025-.226 1.768-.308 1.59-.48 1.44-.18.588-.336.707-.28.493-.375.607-.33.383-.42.494-.375.4-.401.34-.48.207-.432.207-.355.114h-.543l-.346-.114-.66-.32-.302-.212-.317-.223-.347-.304-.35-.342-.579-.63-.684-.89-.539-.917-.538-.734-.526-.855-.741-1.517-.833-1.579-.098-.055h-.138l-.338.247-.196.415-.326.516-.567 1.533-.856 2.182-1.096 2.626-.824 1.308-.864 1.366-1.027 1.536-1.09 1.503-.557.68-.676.743-1.555 1.497.136.135.21.214.777.446 3.235 1.524 1.41.779 1.347.756 1.332.953 1.187.982.574.443.432.511.445.593.367.643.198.533.242.64.105.554.115.647-.115.433v.44l-.105.454-.242.415-.092.325-.22.394-.587.784-.543.627-.42.47-.35.348-.893.638-1.01.556-1.077.532-1.155.511-1.287.495-.693.207-.608.167-1.496.342-1.545.325-1.552.323-1.689.27-1.74.072-1.785.21h-5.539l-1.998-.114-1.86-.168-2.005-.27-1.99-.209-2.095-.286-2.03-.495-1.981-.374-1.968-.552-2.019-.707-1.98-.585-1.044-.342-.927-.323-.586-.223-.582-.12h-1.647l-1.904-.131-.962-.096-1.24-.135-.795.705-1.085.665-1.471.701-1.628.875-.99.475-1.033.376-2.281.914-1.24.305-1.3.343-1.803.344-1.13.086-1.193.1-1.246.135-1.45.053h-5.926l-3.346-.053-3.25-.321-1.644-.23-1.589-.23-1.546-.227-1.547-.305-1.442-.456-1.434-.325-1.294-.51-1.223-.474-1.142-.533-.99-.583-.984-.71-.336-.343-.44-.415-.334-.362-.3-.417-.278-.415-.215-.42-.311-.89-.109-.46-.138-.51v-.473l.138-.533v-.53l.109-.53v-1.069l.052-.564.259-.647.215-.646.39-.779.286-.3.236-.348.615-.738.49-.38.464-.266.428-.338.676-.21.543-.324.676-.341.77-.227.775-.231.897-.192.85-.11 1.008-.13 1.093-.081.284-.092h.063l.137-.115v-.13l-.2-.266-.58-.27-1.45-1.231-.975-.761-1.127-.967-1.136-1.082-1.181-1.382-1.36-1.558-.508-.843-.672-.87-.58-1.007-.522-1.1-.704-1.047-.459-1.194-.547-1.192-.546-1.33-.397-1.273-.378-1.575-.112-.057h-.115l-.059-.113h-.14l-.23.113-.114.057-.158.264-.057.321-.119.286-.206.477-.664 1.157-.345.701-.546.612-.58.736-.641.816-.677.724-.795.701-.734.658-.814.524-.89.546-.855.325-1.008.247-.99.095h-.233l-.228-.095-.18-.384-.29-.188-.38-.912-.237-.493-.255-.707-.21-.734-.113-.724-.313-1.648-.12-.972v-3.185l.12-2.379.196-1.214.23-1.252.21-1.347.374-1.254.42-1.443.431-1.407.578-1.448.545-1.38.754-1.4.699-1.52.855-1.425 1.006-1.538 1.023-1.382 1.069-1.538.891-1.071 1.142-1.227 1.202-1.237.56-.59.678-.662.985-.836 1.012-.853 1.647-1.446 1.242-.889z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/question.svg b/ruoyi-ui/src/assets/icons/svg/question.svg
deleted file mode 100644
index cf75bd4..0000000
--- a/ruoyi-ui/src/assets/icons/svg/question.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1581238842264" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1409" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512 0C229.233778 0 0 229.233778 0 512s229.233778 512 512 512 512-229.233778 512-512A512 512 0 0 0 512 0z m0 938.666667C276.366222 938.666667 85.333333 747.633778 85.333333 512 85.333333 276.366222 276.366222 85.333333 512 85.333333c235.633778 0 426.666667 191.032889 426.666667 426.666667a426.666667 426.666667 0 0 1-426.666667 426.666667z m0-717.653334a170.666667 170.666667 0 0 0-170.666667 170.666667 42.666667 42.666667 0 0 0 85.333334 0 85.333333 85.333333 0 1 1 85.333333 85.333333 42.666667 42.666667 0 0 0-42.666667 42.666667v111.36a42.666667 42.666667 0 0 0 85.333334 0v-74.24A170.666667 170.666667 0 0 0 512 221.013333z m-42.666667 542.293334a42.666667 42.666667 0 1 0 85.333334 0 42.666667 42.666667 0 0 0-85.333334 0z" p-id="1410"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/radio.svg b/ruoyi-ui/src/assets/icons/svg/radio.svg
deleted file mode 100644
index 0cde345..0000000
--- a/ruoyi-ui/src/assets/icons/svg/radio.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575966775973" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="879" xmlns:xlink="http://www.w3.org/1999/xlink" width="81" height="81"><defs><style type="text/css"></style></defs><path d="M507.39346659 71.84873358c241.53533667 0 437.39770766 195.85422109 437.39770767 437.37442191 0 241.53766571-195.86237099 437.38955776-437.39770767 437.38955776-241.50040803 0-437.34997219-195.85189205-437.34997219-437.38955776C70.0434944 267.70295467 265.89189347 71.84873358 507.39346659 71.84873358L507.39346659 71.84873358zM507.39346659 282.81899805c-125.00686734 0-226.37039389 101.38914133-226.37039388 226.41813048 0 125.01268821 101.36352768 226.39717262 226.37039388 226.39717262 125.04295993 0 226.42395136-101.38448441 226.42395136-226.39717262C733.81625401 384.20813938 632.43642653 282.81899805 507.39346659 282.81899805L507.39346659 282.81899805zM507.39346659 120.78172615c-214.46664192 0-388.42047261 173.95150279-388.4204726 388.44026539 0 214.51204949 173.95499463 388.46122325 388.4204726 388.46122325 214.52369237 0 388.46005817-173.94800981 388.46005818-388.46122325C895.85236082 294.73322894 721.91715897 120.78172615 507.39346659 120.78172615z" p-id="880"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/rate.svg b/ruoyi-ui/src/assets/icons/svg/rate.svg
deleted file mode 100644
index aa3b14d..0000000
--- a/ruoyi-ui/src/assets/icons/svg/rate.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1577246781606" class="icon" viewBox="0 0 1069 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1098" xmlns:xlink="http://www.w3.org/1999/xlink" width="84.5595703125" height="81"><defs><style type="text/css"></style></defs><path d="M633.72929961 378.02038203l9.49872568 18.68789795 20.78025469 2.79745225 206.61592412 27.33248408a11.46496817 11.46496817 0 0 1 6.6095543 19.47324902l-147.2675168 147.35350284-14.89299345 14.89299345 3.8006376 20.68280244 37.84585956 204.89044571a11.46496817 11.46496817 0 0 1-16.4808914 12.2961788L554.68980898 751.84713388l-18.68789794-9.49299345-18.48726123 9.99171915-183.23885392 99.34968163a11.46496817 11.46496817 0 0 1-16.78471347-11.8662416l32.5433127-205.79617881 3.29617793-20.78598692-15.19108243-14.49172002-151.03375839-143.48407587a11.46496817 11.46496817 0 0 1 6.09936328-19.63949062l205.79617881-32.63503185 20.78598691-3.2961788L428.87898125 380.72038203 518.59235674 192.64331182a11.46496817 11.46496817 0 0 1 20.56815264-0.26369385l94.56879023 185.63503183zM496.64840732 85.52038203l-121.75796162 254.98089229L95.76433145 384.76178369A34.3949045 34.3949045 0 0 0 77.46050938 443.66879023l204.87324901 194.66369385-44.16879023 279.1146498a34.3949045 34.3949045 0 0 0 50.36560489 35.61592325l248.4-134.67898038 251.84522285 128.27579591a34.3949045 34.3949045 0 0 0 49.43694287-36.89426777l-51.30573223-277.85350284 199.73120977-199.90891758a34.3949045 34.3949045 0 0 0-19.82866201-58.40827998l-280.11783428-37.03184736L558.32993633 84.71210205a34.3949045 34.3949045 0 0 0-61.68152901 0.80254775z" p-id="1099"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/redis-list.svg b/ruoyi-ui/src/assets/icons/svg/redis-list.svg
deleted file mode 100644
index 98a15b2..0000000
--- a/ruoyi-ui/src/assets/icons/svg/redis-list.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1656035183065" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3395" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
-</style></defs><path d="M958.88 730.06H65.12c-18.28 0-33.12-14.82-33.12-33.12V68.91c0-18.29 14.83-33.12 33.12-33.12h893.77c18.28 0 33.12 14.82 33.12 33.12v628.03c-0.01 18.3-14.84 33.12-33.13 33.12zM98.23 663.83h827.53v-561.8H98.23v561.8z" p-id="3396"></path><path d="M512 954.55c-18.28 0-33.12-14.82-33.12-33.12V733.92c0-18.29 14.83-33.12 33.12-33.12s33.12 14.82 33.12 33.12v187.51c0 18.3-14.84 33.12-33.12 33.12z" p-id="3397"></path><path d="M762.01 988.21H261.99c-18.28 0-33.12-14.82-33.12-33.12 0-18.29 14.83-33.12 33.12-33.12h500.03c18.28 0 33.12 14.82 33.12 33.12-0.01 18.29-14.84 33.12-33.13 33.12zM514.74 578.55c-21.63 0-43.31-3.87-64.21-11.65-45.95-17.13-82.49-51.13-102.86-95.74-5.07-11.08-0.19-24.19 10.89-29.26 11.08-5.09 24.19-0.18 29.26 10.91 15.5 33.88 43.25 59.7 78.14 72.71 34.93 12.99 72.79 11.64 106.66-3.85 33.22-15.17 58.8-42.26 72.03-76.3 4.42-11.37 17.21-17.01 28.57-12.58 11.36 4.42 16.99 17.22 12.57 28.58-17.42 44.82-51.1 80.5-94.82 100.47-24.34 11.12-50.25 16.71-76.23 16.71z" p-id="3398"></path><path d="M325.27 528.78c-1.66 0-3.34-0.18-5.02-0.57-11.88-2.77-19.28-14.63-16.49-26.51l18.84-81c1.34-5.82 5-10.84 10.13-13.92 5.09-3.09 11.3-3.96 17.03-2.41l80.51 21.43c11.79 3.14 18.8 15.23 15.67 27.02-3.15 11.79-15.42 18.75-27.02 15.65l-58.49-15.57-13.69 58.81c-2.37 10.2-11.45 17.07-21.47 17.07zM360.8 351.01c-2.65 0-5.37-0.49-8-1.51-11.36-4.41-16.99-17.21-12.59-28.57 17.4-44.79 51.06-80.47 94.8-100.48 92.15-42.06 201.25-1.39 243.31 90.68 5.07 11.08 0.19 24.19-10.89 29.26-11.13 5.07-24.19 0.17-29.26-10.91-31.97-69.91-114.9-100.82-184.79-68.86-33.22 15.19-58.8 42.28-71.99 76.29-3.41 8.74-11.75 14.1-20.59 14.1z" p-id="3399"></path><path d="M684.68 376.74c-1.47 0-2.95-0.15-4.42-0.44l-81.61-16.68c-11.94-2.45-19.64-14.11-17.21-26.06 2.44-11.96 14.1-19.64 26.04-17.22l59.29 12.12 10.23-59.5c2.05-12 13.52-20.19 25.48-18.01 12.03 2.06 20.09 13.48 18.02 25.5l-14.08 81.96a22.089 22.089 0 0 1-9.29 14.49c-3.7 2.51-8.03 3.84-12.45 3.84z" p-id="3400"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/redis.svg b/ruoyi-ui/src/assets/icons/svg/redis.svg
deleted file mode 100644
index 2f1d62d..0000000
--- a/ruoyi-ui/src/assets/icons/svg/redis.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1605865043777" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="856" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1023.786667 611.84c-0.426667 9.770667-13.354667 20.693333-39.893334 34.56-54.613333 28.458667-337.749333 144.896-397.994666 176.298667-60.288 31.402667-93.738667 31.104-141.354667 8.32-47.616-22.741333-348.842667-144.469333-403.114667-170.368-27.093333-12.970667-40.917333-23.893333-41.386666-34.218667v103.509333c0 10.325333 14.250667 21.290667 41.386666 34.261334 54.272 25.941333 355.541333 147.626667 403.114667 170.368 47.616 22.784 81.066667 23.082667 141.354667-8.362667 60.245333-31.402667 343.338667-147.797333 397.994666-176.298667 27.776-14.464 40.106667-25.728 40.106667-35.925333v-102.058667l-0.213333-0.085333z m0-168.746667c-0.512 9.770667-13.397333 20.650667-39.893334 34.517334-54.613333 28.458667-337.749333 144.896-397.994666 176.298666-60.288 31.402667-93.738667 31.104-141.354667 8.362667-47.616-22.741333-348.842667-144.469333-403.114667-170.410667-27.093333-12.928-40.917333-23.893333-41.386666-34.176v103.509334c0 10.325333 14.250667 21.248 41.386666 34.218666 54.272 25.941333 355.498667 147.626667 403.114667 170.368 47.616 22.784 81.066667 23.082667 141.354667-8.32 60.245333-31.402667 343.338667-147.84 397.994666-176.298666 27.776-14.506667 40.106667-25.770667 40.106667-35.968v-102.058667l-0.256-0.042667z m0-175.018666c0.469333-10.410667-13.141333-19.541333-40.533334-29.610667-53.248-19.498667-334.634667-131.498667-388.522666-151.253333-53.888-19.712-75.818667-18.901333-139.093334 3.84C392.234667 113.706667 92.629333 231.253333 39.338667 252.074667c-26.666667 10.496-39.68 20.181333-39.253334 30.506666V386.133333c0 10.325333 14.250667 21.248 41.386667 34.218667 54.272 25.941333 355.498667 147.669333 403.114667 170.410667 47.616 22.741333 81.066667 23.04 141.354666-8.362667 60.245333-31.402667 343.338667-147.84 397.994667-176.298667 27.776-14.506667 40.106667-25.770667 40.106667-35.968V268.074667h-0.341334zM366.677333 366.08l237.269334-36.437333-71.68 105.088-165.546667-68.650667z m524.8-94.634667l-140.330666 55.466667-15.232 5.973333-140.245334-55.466666 155.392-61.44 140.373334 55.466666z m-411.989333-101.674666l-22.954667-42.325334 71.594667 27.989334 67.498667-22.101334-18.261334 43.733334 68.778667 25.770666-88.704 9.216-19.882667 47.786667-32.085333-53.290667-102.4-9.216 76.416-27.562666z m-176.768 59.733333c70.058667 0 126.805333 21.973333 126.805333 49.109333s-56.746667 49.152-126.805333 49.152-126.848-22.058667-126.848-49.152c0-27.136 56.789333-49.152 126.848-49.152z" p-id="857"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/row.svg b/ruoyi-ui/src/assets/icons/svg/row.svg
deleted file mode 100644
index 0780992..0000000
--- a/ruoyi-ui/src/assets/icons/svg/row.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1579339929870" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1182" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M152 854.856875h325.7146875V237.715625H134.856875v600q0 6.99375 5.0746875 12.0684375T152 854.856875z m737.143125-17.1421875v-600H546.284375v617.1421875H872q6.99375 0 12.0684375-5.07375t5.0746875-12.0684375z m68.5715625-651.429375V837.715625q0 35.3821875-25.16625 60.5484375T872 923.4284375H152q-35.383125 0-60.5484375-25.1653125T66.284375 837.7146875V186.284375q0-35.3821875 25.16625-60.5484375T152 100.5715625h720q35.383125 0 60.5484375 25.1653125t25.16625 60.5484375z" p-id="1183"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/search.svg b/ruoyi-ui/src/assets/icons/svg/search.svg
deleted file mode 100644
index 84233dd..0000000
--- a/ruoyi-ui/src/assets/icons/svg/search.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M124.884 109.812L94.256 79.166c-.357-.357-.757-.629-1.129-.914a50.366 50.366 0 0 0 8.186-27.59C101.327 22.689 78.656 0 50.67 0 22.685 0 0 22.688 0 50.663c0 27.989 22.685 50.663 50.656 50.663 10.186 0 19.643-3.03 27.6-8.201.286.385.557.771.9 1.114l30.628 30.632a10.633 10.633 0 0 0 7.543 3.129c2.728 0 5.457-1.043 7.543-3.115 4.171-4.157 4.171-10.915.014-15.073M50.671 85.338C31.557 85.338 16 69.78 16 50.663c0-19.102 15.557-34.661 34.67-34.661 19.115 0 34.657 15.559 34.657 34.675 0 19.102-15.557 34.661-34.656 34.661"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/select.svg b/ruoyi-ui/src/assets/icons/svg/select.svg
deleted file mode 100644
index d628382..0000000
--- a/ruoyi-ui/src/assets/icons/svg/select.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575803481213" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="804" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M62 511.97954521C62 263.86590869 263.90681826 62 511.97954521 62s449.97954521 201.825 449.97954521 449.97954521c0 248.19545479-201.90681826 449.97954521-449.97954521 449.97954521C263.90681826 962 62 760.175 62 511.97954521M901.98636348 511.97954521c0-215.24318174-175.00909131-390.41590869-390.00681827-390.41590869-215.03863652 0-389.96590869 175.17272695-389.96590868 390.41590869 0 215.28409131 175.00909131 390.45681826 389.96590868 390.45681826C727.01818174 902.47727305 901.98636348 727.30454521 901.98636348 511.97954521M264.17272695 430.28409131c0-5.76818174 2.12727305-11.51590869 6.64772696-15.87272696 8.71363652-8.75454521 22.88863652-8.75454521 31.725 0l209.4340913 208.22727305L721.45454521 414.53409131c8.75454521-8.71363652 22.97045479-8.71363652 31.90909132 0 8.71363652 8.75454521 8.71363652 22.88863652 0 31.60227304L511.97954521 685.74090869 270.71818174 446.01363653C266.27954521 441.77954521 264.17272695 436.05227305 264.17272695 430.28409131" p-id="805"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/server.svg b/ruoyi-ui/src/assets/icons/svg/server.svg
deleted file mode 100644
index eb287e3..0000000
--- a/ruoyi-ui/src/assets/icons/svg/server.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1547360688278" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M890 120H134a70 70 0 0 0-70 70v500a70 70 0 0 0 70 70h756a70 70 0 0 0 70-70V190a70 70 0 0 0-70-70z m-10 520a40 40 0 0 1-40 40H712V448a40 40 0 0 0-80 0v232h-80V368a40 40 0 0 0-80 0v312h-80V512a40 40 0 0 0-80 0v168H184a40 40 0 0 1-40-40V240a40 40 0 0 1 40-40h656a40 40 0 0 1 40 40zM696 824H328a40 40 0 0 0 0 80h368a40 40 0 0 0 0-80z" p-id="6718"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/shopping.svg b/ruoyi-ui/src/assets/icons/svg/shopping.svg
deleted file mode 100644
index 87513e7..0000000
--- a/ruoyi-ui/src/assets/icons/svg/shopping.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M42.913 101.36c1.642 0 3.198.332 4.667.996a12.28 12.28 0 0 1 3.89 2.772c1.123 1.184 1.987 2.582 2.592 4.193.605 1.612.908 3.318.908 5.118 0 1.8-.303 3.507-.908 5.118-.605 1.611-1.469 3.01-2.593 4.194a13.3 13.3 0 0 1-3.889 2.843 10.582 10.582 0 0 1-4.667 1.066c-1.729 0-3.306-.355-4.732-1.066a13.604 13.604 0 0 1-3.825-2.843c-1.123-1.185-1.988-2.583-2.593-4.194a14.437 14.437 0 0 1-.907-5.118c0-1.8.302-3.506.907-5.118.605-1.61 1.47-3.009 2.593-4.193a12.515 12.515 0 0 1 3.825-2.772c1.426-.664 3.003-.996 4.732-.996zm53.932.285c1.643 0 3.22.331 4.733.995a11.386 11.386 0 0 1 3.889 2.772c1.08 1.185 1.945 2.583 2.593 4.194.648 1.61.972 3.317.972 5.118 0 1.8-.324 3.506-.972 5.117-.648 1.611-1.513 3.01-2.593 4.194a12.253 12.253 0 0 1-3.89 2.843 11 11 0 0 1-4.732 1.066 10.58 10.58 0 0 1-4.667-1.066 12.478 12.478 0 0 1-3.824-2.843c-1.08-1.185-1.945-2.583-2.593-4.194a13.581 13.581 0 0 1-.973-5.117c0-1.801.325-3.507.973-5.118.648-1.611 1.512-3.01 2.593-4.194a11.559 11.559 0 0 1 3.824-2.772 11.212 11.212 0 0 1 4.667-.995zm21.781-80.747c2.42 0 4.3.355 5.64 1.066 1.34.71 2.29 1.587 2.852 2.63a6.427 6.427 0 0 1 .778 3.34c-.044 1.185-.195 2.204-.454 3.057-.26.853-.8 2.606-1.62 5.26a589.268 589.268 0 0 1-2.788 8.743 1236.373 1236.373 0 0 0-3.047 9.453c-.994 3.128-1.75 5.592-2.269 7.393-1.123 3.79-2.55 6.42-4.278 7.89-1.728 1.469-3.846 2.203-6.352 2.203H39.023l1.945 12.795h65.342c4.148 0 6.223 1.943 6.223 5.828 0 1.896-.41 3.53-1.232 4.905-.821 1.374-2.442 2.061-4.862 2.061H38.505c-1.729 0-3.176-.426-4.343-1.28-1.167-.852-2.14-1.966-2.917-3.34a21.277 21.277 0 0 1-1.88-4.478 44.128 44.128 0 0 1-1.102-4.55c-.087-.568-.324-1.942-.713-4.122-.39-2.18-.865-4.904-1.426-8.174l-1.88-10.947c-.692-4.027-1.383-8.079-2.075-12.154-1.642-9.572-3.5-20.234-5.574-31.986H6.87c-1.296 0-2.377-.356-3.24-1.067a9.024 9.024 0 0 1-2.14-2.558 10.416 10.416 0 0 1-1.167-3.2C.108 8.53 0 7.488 0 6.54c0-1.896.583-3.46 1.75-4.69C2.917.615 4.494 0 6.482 0h13.095c1.728 0 3.111.284 4.148.853 1.037.569 1.858 1.28 2.463 2.132a8.548 8.548 0 0 1 1.297 2.701c.26.948.475 1.754.648 2.417.173.758.346 1.825.519 3.199.173 1.374.345 2.772.518 4.193.26 1.706.519 3.507.778 5.403h88.678z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/size.svg b/ruoyi-ui/src/assets/icons/svg/size.svg
deleted file mode 100644
index ddb25b8..0000000
--- a/ruoyi-ui/src/assets/icons/svg/size.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 54.857h54.796v18.286H36.531V128H18.265V73.143H0V54.857zm127.857-36.571H91.935V128H72.456V18.286H36.534V0h91.326l-.003 18.286z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/skill.svg b/ruoyi-ui/src/assets/icons/svg/skill.svg
deleted file mode 100644
index a3b7312..0000000
--- a/ruoyi-ui/src/assets/icons/svg/skill.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M31.652 93.206h33.401c1.44 2.418 3.077 4.663 4.93 6.692h-38.33v-6.692zm0-10.586h28.914a44.8 44.8 0 0 1-1.264-6.688h-27.65v6.688zm0-17.27H59.39c.288-2.286.714-4.532 1.34-6.687H31.65v6.687h.003zm53.913 44.84v5.85c0 2.798-2.095 5.075-4.667 5.075h-70.07c-2.576 0-4.663-2.277-4.663-5.075V31.26l23.22-20.96v22.25H17.16v6.688h18.39V6.688h45.348c2.576 0 4.667 2.277 4.667 5.066v20.009c1.987-.675 4.053-1.128 6.17-1.445v-18.56C91.738 5.28 86.874 0 80.902 0H31.15L0 28.118v87.917c0 6.48 4.859 11.759 10.832 11.759h70.07c5.974 0 10.837-5.27 10.837-11.759v-4.41c-2.117-.312-4.183-.765-6.17-1.435h-.004zM23.279 58.667h-7.96v6.688h7.96v-6.688zm-7.956 41.23h7.96v-6.691h-7.96v6.692zm7.956-23.96h-7.96v6.687h7.96v-6.688zm89.718-15.042l-4.896-4.07-12.447 17.613-11.19-9.305-3.762 5.311 16.091 13.38 16.204-22.929zM128 70.978c0-18.632-13.97-33.782-31.147-33.782-17.168 0-31.135 15.155-31.135 33.782 0 18.628 13.97 33.783 31.135 33.783 17.172 0 31.143-15.15 31.143-33.783H128zm-6.17 0c0 14.933-11.203 27.1-24.981 27.1-13.77 0-24.987-12.158-24.987-27.1 0-14.941 11.195-27.099 24.987-27.099 13.778 0 24.982 12.158 24.982 27.1z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/slider.svg b/ruoyi-ui/src/assets/icons/svg/slider.svg
deleted file mode 100644
index fbe4f39..0000000
--- a/ruoyi-ui/src/assets/icons/svg/slider.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1577185310368" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1238" xmlns:xlink="http://www.w3.org/1999/xlink" width="81" height="81"><defs><style type="text/css"></style></defs><path d="M951.453125 476.84375H523.671875a131.8359375 131.8359375 0 0 0-254.1796875 0H72.546875v70.3125h196.9453125a131.8359375 131.8359375 0 0 0 254.1796875 0H951.453125z" p-id="1239"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/star.svg b/ruoyi-ui/src/assets/icons/svg/star.svg
deleted file mode 100644
index 6cf86e6..0000000
--- a/ruoyi-ui/src/assets/icons/svg/star.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M70.66 4.328l14.01 29.693c1.088 2.29 3.177 3.882 5.603 4.25l31.347 4.76c6.087.926 8.528 8.756 4.117 13.247L103.05 79.395c-1.75 1.78-2.544 4.352-2.132 6.867l5.352 32.641c1.043 6.337-5.33 11.182-10.778 8.19l-28.039-15.409a7.13 7.13 0 0 0-6.91 0l-28.039 15.41c-5.448 2.99-11.821-1.854-10.777-8.19l5.352-32.642c.415-2.515-.387-5.088-2.136-6.867L2.264 56.278C-2.146 51.787.286 43.957 6.38 43.031l31.343-4.76c2.419-.368 4.51-1.96 5.595-4.25L57.334 4.328c2.728-5.77 10.605-5.77 13.325 0z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/swagger.svg b/ruoyi-ui/src/assets/icons/svg/swagger.svg
deleted file mode 100644
index 05d4e7b..0000000
--- a/ruoyi-ui/src/assets/icons/svg/swagger.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566036776944" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6463" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M64 223.995345h168.001164v47.997673c0 26.428509 18.878836 47.997673 41.984 47.997673h140.036654c23.095855 0 41.984-21.569164 41.984-47.997673v-47.997673h504.003491a32.004655 32.004655 0 0 0 0-64.009309H455.996509V111.988364c0-26.428509-18.878836-47.997673-41.984-47.997673H273.985164c-23.095855 0-41.984 21.569164-41.984 47.997673v47.997672H64a32.004655 32.004655 0 0 0 0 64.009309zM288.004655 128h111.997672V256H288.004655V128zM960 479.995345H791.998836v-47.997672c0-26.372655-18.878836-47.997673-41.984-47.997673H609.978182c-23.095855 0-41.984 21.634327-41.984 47.997673v47.997672H64a32.004655 32.004655 0 0 0 0 64.00931h504.003491v47.997672c0 26.363345 18.878836 47.997673 41.984 47.997673h140.036654c23.095855 0 41.984-21.634327 41.984-47.997673v-47.997672h168.001164a32.004655 32.004655 0 1 0-0.009309-64.00931zM735.995345 576H623.997673v-128h111.997672v128zM960 800.293236v-0.288581H455.996509v-47.997673c0-26.363345-18.878836-47.997673-41.984-47.997673H274.050327c-23.105164 0-41.984 21.634327-41.984 47.997673v47.997673H64v0.288581a32.004655 32.004655 0 0 0 0 64.009309c0.986764 0 1.917673-0.195491 2.885818-0.288581h165.115346v47.997672c0 26.363345 18.878836 47.997673 41.984 47.997673h140.036654c23.095855 0 41.984-21.634327 41.984-47.997673v-47.997672h501.108364c0.968145 0.093091 1.899055 0.288582 2.895127 0.288581a32.004655 32.004655 0 1 0-0.009309-64.009309zM400.002327 896H288.004655V768h111.997672v128z" fill="" p-id="6464"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/switch.svg b/ruoyi-ui/src/assets/icons/svg/switch.svg
deleted file mode 100644
index 0ba61e3..0000000
--- a/ruoyi-ui/src/assets/icons/svg/switch.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1576042673958" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1110" xmlns:xlink="http://www.w3.org/1999/xlink" width="81" height="81"><defs><style type="text/css"></style></defs><path d="M692 792H332c-150 0-270-120-270-270s120-270 270-270h360c150 0 270 120 270 270 0 147-120 270-270 270zM332 312c-117 0-210 93-210 210s93 210 210 210h360c117 0 210-93 210-210s-93-210-210-210H332z" p-id="1111"></path><path d="M341 522m-150 0a150 150 0 1 0 300 0 150 150 0 1 0-300 0Z" p-id="1112"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/system.svg b/ruoyi-ui/src/assets/icons/svg/system.svg
deleted file mode 100644
index 5992593..0000000
--- a/ruoyi-ui/src/assets/icons/svg/system.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1543827724451" class="icon" style="" viewBox="0 0 1084 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10233" xmlns:xlink="http://www.w3.org/1999/xlink" width="211.71875" height="200"><defs><style type="text/css">@font-face { font-family: rbicon; src: url("chrome-extension://dipiagiiohfljcicegpgffpbnjmgjcnf/fonts/rbicon.woff2") format("woff2"); font-weight: normal; font-style: normal; }
-</style></defs><path d="M1080.09609 434.500756c-4.216302-23.731757-26.9241-47.945376-50.595623-53.185637l-17.648235-4.095836a175.940257 175.940257 0 0 1-101.612877-80.832531 177.807476 177.807476 0 0 1-18.732427-129.801867l5.541425-16.684509c7.10748-23.129428-2.108151-54.992624-20.599646-70.833873 0 0-16.624276-14.094495-63.244529-41.199293-46.800951-26.984332-66.858502-34.513443-66.858502-34.513443-22.76803-8.372371-54.631227-0.361397-71.255503 17.407304l-12.287509 13.251234a173.470708 173.470708 0 0 1-120.465769 48.065842A174.13327 174.13327 0 0 1 421.329029 33.590675L409.583617 20.761071C393.140039 2.99237 361.096144-4.898138 338.267881 3.353767c0 0-20.358715 7.529111-67.099434 34.513443-46.800951 27.34573-63.244529 41.440225-63.244529 41.440225-18.431263 15.66055-27.646894 47.222582-20.539413 70.592941l5.059562 16.865207a178.048407 178.048407 0 0 1-18.672194 129.621169 174.916297 174.916297 0 0 1-102.275439 81.073463l-17.045906 3.854904c-23.310126 5.42096-46.258856 29.333415-50.595623 53.185637 0 0-3.854905 21.382674-3.854905 75.712737 0 54.330062 3.854905 75.712736 3.854905 75.712736 4.216302 23.972688 26.9241 47.945376 50.595623 53.185637l16.624276 3.854905a174.253736 174.253736 0 0 1 102.395904 81.314394c23.310126 40.837896 28.911785 87.337683 18.732427 129.801867l-4.81863 16.443578c-7.10748 23.129428 2.108151 54.992624 20.599646 70.833872 0 0 16.624276 14.094495 63.244529 41.199293 46.800951 27.104798 66.918735 34.513443 66.918735 34.513443 22.707798 8.372371 54.631227 0.361397 71.255503-17.407303l11.624947-12.588673a175.096996 175.096996 0 0 1 242.256662 0.120465l11.624947 12.648906c16.383345 17.708468 48.427239 25.598976 71.255503 17.347071 0 0 20.358715-7.529111 67.159666-34.513443 46.740719-27.104798 63.124063-41.199293 63.124064-41.199293 18.491496-15.600317 27.707127-47.463513 20.599646-70.833873l-5.059562-17.106139a176.723284 176.723284 0 0 1 18.672194-129.139305 176.060722 176.060722 0 0 1 102.395904-81.314394l16.68451-3.854905c23.310126-5.42096 46.258856-29.333415 50.595623-53.185637 0 0 3.854905-21.382674 3.854904-75.712737-0.240932-54.330062-4.095836-75.833202-4.095836-75.833202z m-537.819428 293.334149c-119.261112 0-216.175824-97.336342-216.175824-217.621412a216.657687 216.657687 0 0 1 216.236057-217.320249c119.200879 0 216.115591 97.276109 216.11559 217.56118-0.240932 120.044139-96.974945 217.320248-216.175823 217.320249z" p-id="10234"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/tab.svg b/ruoyi-ui/src/assets/icons/svg/tab.svg
deleted file mode 100644
index b4b48e4..0000000
--- a/ruoyi-ui/src/assets/icons/svg/tab.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M78.921.052H49.08c-1.865 0-3.198 1.599-3.198 3.464v6.661c0 1.865 1.6 3.464 3.198 3.464h29.84c1.865 0 3.198-1.599 3.198-3.464V3.516C82.385 1.65 80.786.052 78.92.052zm45.563 0H94.642c-1.865 0-3.464 1.599-3.464 3.464v6.661c0 1.865 1.599 3.464 3.464 3.464h29.842c1.865-.266 3.464-1.599 3.464-3.464V3.516c0-1.865-1.599-3.464-3.464-3.464zm0 22.382H40.02c-1.866 0-3.464-1.599-3.464-3.464V3.516c0-1.865-1.599-3.464-3.464-3.464H3.516C1.65.052.052 1.651.052 3.516V124.75c0 1.598 1.599 3.197 3.464 3.197h120.968c1.865 0 3.464-1.599 3.464-3.464V25.898c0-1.865-1.599-3.464-3.464-3.464z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/table.svg b/ruoyi-ui/src/assets/icons/svg/table.svg
deleted file mode 100644
index 0e3dc9d..0000000
--- a/ruoyi-ui/src/assets/icons/svg/table.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M.006.064h127.988v31.104H.006V.064zm0 38.016h38.396v41.472H.006V38.08zm0 48.384h38.396v41.472H.006V86.464zM44.802 38.08h38.396v41.472H44.802V38.08zm0 48.384h38.396v41.472H44.802V86.464zM89.598 38.08h38.396v41.472H89.598zm0 48.384h38.396v41.472H89.598z"/><path d="M.006.064h127.988v31.104H.006V.064zm0 38.016h38.396v41.472H.006V38.08zm0 48.384h38.396v41.472H.006V86.464zM44.802 38.08h38.396v41.472H44.802V38.08zm0 48.384h38.396v41.472H44.802V86.464zM89.598 38.08h38.396v41.472H89.598zm0 48.384h38.396v41.472H89.598z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/textarea.svg b/ruoyi-ui/src/assets/icons/svg/textarea.svg
deleted file mode 100644
index 2709f29..0000000
--- a/ruoyi-ui/src/assets/icons/svg/textarea.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575802855098" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2984" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M896 160H128c-35.2 0-64 28.8-64 64v576c0 35.2 28.8 64 64 64h768c35.2 0 64-28.8 64-64V224c0-35.2-28.8-64-64-64z m0 608c0 16-12.8 32-32 32H160c-19.2 0-32-12.8-32-32V256c0-16 12.8-32 32-32h704c19.2 0 32 12.8 32 32v512z" p-id="2985"></path><path d="M224 288c-19.2 0-32 12.8-32 32v256c0 16 12.8 32 32 32s32-12.8 32-32V320c0-16-12.8-32-32-32z m608 480c19.2 0 32-12.8 32-32V608L704 768h128z" p-id="2986"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/theme.svg b/ruoyi-ui/src/assets/icons/svg/theme.svg
deleted file mode 100644
index 5982a2f..0000000
--- a/ruoyi-ui/src/assets/icons/svg/theme.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M125.5 36.984L95.336 2.83C93.735 1.018 91.565 0 89.3 0c-2.263 0-4.433 1.018-6.033 2.83l-3.786 4.286c-1.6 1.812-3.77 2.83-6.032 2.831H54.553c-2.263 0-4.434-1.018-6.033-2.83L44.734 2.83C43.134 1.018 40.964 0 38.701 0c-2.263 0-4.434 1.018-6.034 2.83L2.5 36.984C.9 38.796 0 41.254 0 43.815c0 2.562.899 5.02 2.5 6.831L14.565 64.31c2.178 2.468 5.367 3.403 8.33 2.444 1.35-.435 2.709.592 2.709 2.18v49.407c0 5.313 3.84 9.66 8.532 9.66h59.726c4.693 0 8.532-4.347 8.532-9.66V68.934c0-1.59 1.36-2.616 2.71-2.181 2.962.96 6.15.024 8.329-2.444L125.5 50.646c1.6-1.811 2.499-4.269 2.499-6.83 0-2.563-.899-5.02-2.5-6.832z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/time-range.svg b/ruoyi-ui/src/assets/icons/svg/time-range.svg
deleted file mode 100644
index 13c1202..0000000
--- a/ruoyi-ui/src/assets/icons/svg/time-range.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1579774825624" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1248" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M498.595712 482.290351 345.420077 482.290351l0 57.307194 210.477712 0L555.897789 274.196942l-57.301054 0L498.596735 482.290351zM498.595712 482.290351" p-id="1249"></path><path d="M577.685002 644.98478l379.879913 0 0 57.302077L577.685002 702.286858 577.685002 644.98478 577.685002 644.98478zM577.685002 644.98478" p-id="1250"></path><path d="M577.685002 773.764795l379.879913 0 0 57.307194L577.685002 831.071989 577.685002 773.764795 577.685002 773.764795zM577.685002 773.764795" p-id="1251"></path><path d="M577.685002 902.549927l379.879913 0 0 57.307194L577.685002 959.857121 577.685002 902.549927 577.685002 902.549927zM577.685002 902.549927" p-id="1252"></path><path d="M102.523001 382.290823c4.450359 2.615571 9.470699 3.954055 14.530948 3.954055 2.969635 0 5.952572-0.461511 8.836249-1.394766l190.809767-61.886489c15.052834-4.882194 23.297612-21.040199 18.415418-36.08894-4.882194-15.052834-21.040199-23.297612-36.093033-18.415418L175.676092 308.458257c15.994276-26.115797 35.170011-50.537 57.370639-72.743768 73.767074-73.767074 171.845857-114.388237 276.16783-114.388237 104.32095 0 202.39564 40.622186 276.16169 114.388237s114.393353 171.845857 114.393353 276.16783c0 26.427906-2.615571 52.449559-7.709589 77.780481l58.302871 0c4.464685-25.499767 6.708795-51.470255 6.708795-77.780481 0-60.449767-11.845793-119.102608-35.204803-174.336584-22.559808-53.334719-54.850236-101.226472-95.968725-142.349055-41.122583-41.122583-89.017406-73.408917-142.348032-95.968725C628.317169 75.866898 569.659211 64.021106 509.215584 64.021106c-60.448744 0-119.106702 11.845793-174.336584 35.207873-53.334719 22.559808-101.230566 54.846142-142.349055 95.968725-23.980157 23.980157-44.934398 50.278103-62.727647 78.601172l-20.738323-105.655342c-3.043313-15.527648-18.105357-25.642007-33.631982-22.599717-15.527648 3.048429-25.64303 18.105357-22.599717 33.637098l36.102243 183.932126C90.51348 371.153158 95.460142 378.13313 102.523001 382.290823L102.523001 382.290823zM102.523001 382.290823" p-id="1253"></path><path d="M126.020158 587.9416 67.768453 587.9416c5.759167 33.679054 15.368012 66.544579 28.789697 98.278327 22.559808 53.333696 54.850236 101.225449 95.971795 142.348032 41.122583 41.122583 89.014336 73.408917 142.349055 95.968725 54.112432 22.88829 111.517863 34.71157 170.668031 35.18229L505.547031 902.395408c-102.94972-0.941442-199.594851-41.445948-272.499277-114.349351C177.545672 732.543975 140.810003 663.275355 126.020158 587.9416L126.020158 587.9416zM126.020158 587.9416" p-id="1254"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/time.svg b/ruoyi-ui/src/assets/icons/svg/time.svg
deleted file mode 100644
index b376e32..0000000
--- a/ruoyi-ui/src/assets/icons/svg/time.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1577099827399" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1008" xmlns:xlink="http://www.w3.org/1999/xlink" width="81" height="81"><defs><style type="text/css"></style></defs><path d="M520 559h204c17.673 0 32 14.327 32 32 0 17.673-14.327 32-32 32H488c-17.673 0-32-14.327-32-32 0-0.167 0.001-0.334 0.004-0.5a32.65 32.65 0 0 1-0.004-0.5V277c0-17.673 14.327-32 32-32 17.673 0 32 14.327 32 32v282z m-8 401C264.576 960 64 759.424 64 512S264.576 64 512 64s448 200.576 448 448-200.576 448-448 448z m0-64c212.077 0 384-171.923 384-384S724.077 128 512 128 128 299.923 128 512s171.923 384 384 384z" p-id="1009"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/tool.svg b/ruoyi-ui/src/assets/icons/svg/tool.svg
deleted file mode 100644
index 48e0e35..0000000
--- a/ruoyi-ui/src/assets/icons/svg/tool.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1553828490559" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1684" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M898.831744 900.517641 103.816972 900.517641c-36.002982 0-65.363683-29.286-65.363683-65.313541l0-554.949184c0-36.041868 29.361725-65.326844 65.363683-65.326844l795.015795 0c36.002982 0 65.198931 29.284977 65.198931 65.326844l0 554.949184C964.030675 871.231641 934.834726 900.517641 898.831744 900.517641L898.831744 900.517641zM103.816972 255.593236c-13.576203 0-24.711821 11.085476-24.711821 24.662703l0 554.949184c0 13.576203 11.136641 24.662703 24.711821 24.662703l795.015795 0c13.577227 0 24.547069-11.086499 24.547069-24.662703l0-554.949184c0-13.577227-10.970866-24.662703-24.547069-24.662703L103.816972 255.593236 103.816972 255.593236zM664.346245 251.774257c-11.161201 0-20.332071-9.080819-20.332071-20.332071l0-101.278661c0-13.576203-11.047614-24.623817-24.699542-24.623817L383.181611 105.539708c-13.576203 0-24.712845 11.04659-24.712845 24.623817l0 101.278661c0 11.252275-9.041934 20.332071-20.332071 20.332071-11.20111 0-20.319791-9.080819-20.319791-20.332071l0-101.278661c0-35.989679 29.323862-65.275679 65.364707-65.275679l236.133022 0c36.06745 0 65.402569 29.284977 65.402569 65.275679l0 101.278661C684.717202 242.694461 675.636383 251.774257 664.346245 251.774257L664.346245 251.774257zM413.233044 521.725502 75.694471 521.725502c-11.163247 0-20.333094-9.117658-20.333094-20.35663 0-11.252275 9.169847-20.332071 20.333094-20.332071l337.538573 0c11.277858 0 20.319791 9.080819 20.319791 20.332071C433.552835 512.607844 424.510902 521.725502 413.233044 521.725502L413.233044 521.725502zM912.894018 521.725502 575.367725 521.725502c-11.213389 0-20.332071-9.117658-20.332071-20.35663 0-11.252275 9.118682-20.332071 20.332071-20.332071l337.526293 0c11.290137 0 20.332071 9.080819 20.332071 20.332071C933.226089 512.607844 924.184155 521.725502 912.894018 521.725502L912.894018 521.725502zM557.56322 634.217552 445.085496 634.217552c-11.213389 0-20.332071-9.079796-20.332071-20.331048l0-168.763658c0-11.251252 9.118682-20.332071 20.332071-20.332071l112.478747 0c11.290137 0 20.370956 9.080819 20.370956 20.332071l0 168.763658C577.934177 625.137757 568.853357 634.217552 557.56322 634.217552L557.56322 634.217552zM465.417567 593.514525l71.827909 0L537.245476 465.454918l-71.827909 0L465.417567 593.514525 465.417567 593.514525z" p-id="1685"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/tree-table.svg b/ruoyi-ui/src/assets/icons/svg/tree-table.svg
deleted file mode 100644
index 8aafdb8..0000000
--- a/ruoyi-ui/src/assets/icons/svg/tree-table.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M44.8 0h79.543C126.78 0 128 1.422 128 4.267v23.466c0 2.845-1.219 4.267-3.657 4.267H44.8c-2.438 0-3.657-1.422-3.657-4.267V4.267C41.143 1.422 42.362 0 44.8 0zm22.857 48h56.686c2.438 0 3.657 1.422 3.657 4.267v23.466c0 2.845-1.219 4.267-3.657 4.267H67.657C65.22 80 64 78.578 64 75.733V52.267C64 49.422 65.219 48 67.657 48zm0 48h56.686c2.438 0 3.657 1.422 3.657 4.267v23.466c0 2.845-1.219 4.267-3.657 4.267H67.657C65.22 128 64 126.578 64 123.733v-23.466C64 97.422 65.219 96 67.657 96zM50.286 68.267c2.02 0 3.657-1.91 3.657-4.267 0-2.356-1.638-4.267-3.657-4.267H17.37V32h6.4c2.02 0 3.658-1.91 3.658-4.267V4.267C27.429 1.91 25.79 0 23.77 0H3.657C1.637 0 0 1.91 0 4.267v23.466C0 30.09 1.637 32 3.657 32h6.4v80c0 2.356 1.638 4.267 3.657 4.267h36.572c2.02 0 3.657-1.91 3.657-4.267 0-2.356-1.638-4.267-3.657-4.267H17.37V68.267h32.915z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/tree.svg b/ruoyi-ui/src/assets/icons/svg/tree.svg
deleted file mode 100644
index dd4b7dd..0000000
--- a/ruoyi-ui/src/assets/icons/svg/tree.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M126.713 90.023c.858.985 1.287 2.134 1.287 3.447v29.553c0 1.423-.429 2.6-1.287 3.53-.858.93-1.907 1.395-3.146 1.395H97.824c-1.145 0-2.146-.465-3.004-1.395-.858-.93-1.287-2.107-1.287-3.53V93.47c0-.875.19-1.696.572-2.462.382-.766.906-1.368 1.573-1.806a3.84 3.84 0 0 1 2.146-.657h9.725V69.007a3.84 3.84 0 0 0-.43-1.806 3.569 3.569 0 0 0-1.143-1.313 2.714 2.714 0 0 0-1.573-.492h-36.47v23.149h9.725c1.144 0 2.145.492 3.004 1.478.858.985 1.287 2.134 1.287 3.447v29.553c0 .876-.191 1.696-.573 2.463-.38.766-.905 1.368-1.573 1.806a3.84 3.84 0 0 1-2.145.656H51.915a3.84 3.84 0 0 1-2.145-.656c-.668-.438-1.216-1.04-1.645-1.806a4.96 4.96 0 0 1-.644-2.463V93.47c0-1.313.43-2.462 1.288-3.447.858-.986 1.907-1.478 3.146-1.478h9.582v-23.15h-37.9c-.953 0-1.74.356-2.359 1.068-.62.711-.93 1.56-.93 2.544v19.538h9.726c1.239 0 2.264.492 3.074 1.478.81.985 1.216 2.134 1.216 3.447v29.553c0 1.423-.405 2.6-1.216 3.53-.81.93-1.835 1.395-3.074 1.395H4.29c-.476 0-.93-.082-1.358-.246a4.1 4.1 0 0 1-1.144-.657 4.658 4.658 0 0 1-.93-1.067 5.186 5.186 0 0 1-.643-1.395 5.566 5.566 0 0 1-.215-1.56V93.47c0-.437.048-.875.143-1.313a3.95 3.95 0 0 1 .429-1.15c.19-.328.429-.656.715-.984.286-.329.572-.602.858-.821.286-.22.62-.383 1.001-.493.382-.11.763-.164 1.144-.164h9.726V61.619c0-.985.31-1.833.93-2.544.619-.712 1.358-1.068 2.216-1.068h44.335V39.62h-9.582c-1.24 0-2.288-.492-3.146-1.477a5.09 5.09 0 0 1-1.287-3.448V5.14c0-1.423.429-2.627 1.287-3.612.858-.985 1.907-1.477 3.146-1.477h25.743c.763 0 1.478.246 2.145.739a5.17 5.17 0 0 1 1.573 1.888c.382.766.573 1.587.573 2.462v29.553c0 1.313-.43 2.463-1.287 3.448-.859.985-1.86 1.477-3.004 1.477h-9.725v18.389h42.762c.954 0 1.74.355 2.36 1.067.62.711.93 1.56.93 2.545v26.925h9.582c1.239 0 2.288.492 3.146 1.478z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/upload.svg b/ruoyi-ui/src/assets/icons/svg/upload.svg
deleted file mode 100644
index bae49c0..0000000
--- a/ruoyi-ui/src/assets/icons/svg/upload.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1577540289643" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7922" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M530.944 458.24l4.8 3.456 122.176 106.816a32 32 0 0 1-37.44 51.584l-4.672-3.392L546.56 556.16v280.704a32 32 0 0 1-26.24 31.488l-5.76 0.512a32 32 0 0 1-31.424-26.24l-0.512-5.76-0.064-280.704-69.12 60.48a32 32 0 0 1-40.96 0.896l-4.16-3.968a32 32 0 0 1-0.96-40.96l4.032-4.16 122.176-106.816a32 32 0 0 1 37.312-3.456zM497.92 128c128.128 0 239.168 82.304 275.52 199.04 123.968 11.264 221.312 113.088 221.312 237.44 0 128.128-103.68 232.96-234.88 238.272h-5.888l-35.52 0.192a32 32 0 0 1-0.192-64l35.264-0.128 4.672-0.064c96.384-3.84 172.544-80.896 172.544-174.272 0-96.128-80.512-174.464-179.584-174.464h-1.984a32 32 0 0 1-32-25.28C695.872 264.96 604.736 192 497.92 192 381.824 192 285.44 277.76 274.816 388.48a32 32 0 0 1-28.352 28.8c-83.968 9.152-147.84 78.208-147.84 159.552l0.192 7.936c3.84 85.76 77.056 154.112 166.592 154.112h45.632a32 32 0 0 1 0 64h-45.632C142.016 802.944 40.32 708.032 34.88 586.88l-0.192-9.28c0-106.88 76.352-197.184 179.968-219.904C239.488 226.112 357.76 128 497.856 128z" p-id="7923"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/user.svg b/ruoyi-ui/src/assets/icons/svg/user.svg
deleted file mode 100644
index 0ba0716..0000000
--- a/ruoyi-ui/src/assets/icons/svg/user.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="130" height="130" xmlns="http://www.w3.org/2000/svg"><path d="M63.444 64.996c20.633 0 37.359-14.308 37.359-31.953 0-17.649-16.726-31.952-37.359-31.952-20.631 0-37.36 14.303-37.358 31.952 0 17.645 16.727 31.953 37.359 31.953zM80.57 75.65H49.434c-26.652 0-48.26 18.477-48.26 41.27v2.664c0 9.316 21.608 9.325 48.26 9.325H80.57c26.649 0 48.256-.344 48.256-9.325v-2.663c0-22.794-21.605-41.271-48.256-41.271z" stroke="#979797"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/validCode.svg b/ruoyi-ui/src/assets/icons/svg/validCode.svg
deleted file mode 100644
index cfb1021..0000000
--- a/ruoyi-ui/src/assets/icons/svg/validCode.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1569580729849" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1939" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M513.3 958.5c-142.2 0-397.9-222.1-401.6-440.5V268c1.7-39.6 31.7-72.3 71.1-77.3 49-4.6 97.1-16.5 142.7-35.3 47.8-14 91.9-38.3 129.4-71.1 30.3-24.4 72.9-26.3 105.3-4.6 39.9 30.7 83.8 55.9 130.5 74.6 48.6 14.7 98.2 25.9 148.4 33.7 38.5 7.6 67.1 40.3 69.5 79.5 3.3 84.9 2.5 169.9-2.6 254.7-33.7 281.6-253.7 436.4-392.7 436.3z m-0.1-813.7c-7.2-0.2-14.3 2-20 6.4-39.7 35.2-86.8 61.1-137.7 75.7-46.8 19.2-96.2 31-146.6 35.2-11 3.2-18.8 13-19.5 24.4v230.1c3.5 180.3 223.3 361 323.9 361s287.3-120.2 317.6-360.5c7.3-142.7 0-228.6 0-229.6-1.3-13.3-11-24.3-24-27.3-49.6-7.7-98.6-19-146.5-33.7-46.3-19.5-89.7-45.3-129-76.7-5.8-3.8-12.7-5.5-19.5-4.9l1.3-0.1z" fill="#C6CCDA" p-id="1940"></path><path d="M750.1 428L490.7 673.2c-11.7 11.1-29.5 12.9-43.1 4.2l-6.8-5.8-141.2-149.4c-9.3-9.3-12.7-22.9-9-35.5 3.8-12.6 14.1-22.1 27-24.8 12.9-2.7 26.1 1.9 34.6 11.9L469 597.5l233.7-221c14.6-12.8 36.8-11.6 49.9 2.7 13.2 14.2 11.5 35.3-2.5 48.8" fill="#C6CCDA" p-id="1941"></path></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/wechat.svg b/ruoyi-ui/src/assets/icons/svg/wechat.svg
deleted file mode 100644
index c586e55..0000000
--- a/ruoyi-ui/src/assets/icons/svg/wechat.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="110" xmlns="http://www.w3.org/2000/svg"><path d="M86.635 33.334c1.467 0 2.917.113 4.358.283C87.078 14.392 67.58.111 45.321.111 20.44.111.055 17.987.055 40.687c0 13.104 6.781 23.863 18.115 32.209l-4.527 14.352 15.82-8.364c5.666 1.182 10.207 2.395 15.858 2.395 1.42 0 2.829-.073 4.227-.189-.886-3.19-1.398-6.53-1.398-9.996 0-20.845 16.98-37.76 38.485-37.76zm-24.34-12.936c3.407 0 5.665 2.363 5.665 5.954 0 3.576-2.258 5.97-5.666 5.97-3.392 0-6.795-2.395-6.795-5.97 0-3.591 3.403-5.954 6.795-5.954zM30.616 32.323c-3.393 0-6.818-2.395-6.818-5.971 0-3.591 3.425-5.954 6.818-5.954 3.392 0 5.65 2.363 5.65 5.954 0 3.576-2.258 5.97-5.65 5.97z"/><path d="M127.945 70.52c0-19.075-18.108-34.623-38.448-34.623-21.537 0-38.5 15.548-38.5 34.623 0 19.108 16.963 34.622 38.5 34.622 4.508 0 9.058-1.2 13.584-2.395l12.414 7.167-3.404-11.923c9.087-7.184 15.854-16.712 15.854-27.471zm-50.928-5.97c-2.254 0-4.53-2.362-4.53-4.773 0-2.378 2.276-4.771 4.53-4.771 3.422 0 5.665 2.393 5.665 4.771 0 2.41-2.243 4.773-5.665 4.773zm24.897 0c-2.24 0-4.498-2.362-4.498-4.773 0-2.378 2.258-4.771 4.498-4.771 3.392 0 5.665 2.393 5.665 4.771 0 2.41-2.273 4.773-5.665 4.773z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/zip.svg b/ruoyi-ui/src/assets/icons/svg/zip.svg
deleted file mode 100644
index f806fc4..0000000
--- a/ruoyi-ui/src/assets/icons/svg/zip.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M78.527 116.793c.178.008.348.024.527.024h40.233c4.711-.005 8.53-3.677 8.534-8.21V18.895c-.004-4.532-3.823-8.204-8.534-8.209H79.054c-.179 0-.353.016-.527.024V0L0 10.082v107.406l78.527 10.342v-11.037zm0-101.362c.174-.024.348-.052.527-.052h40.233c2.018 0 3.659 1.578 3.659 3.52v89.713c-.003 1.942-1.64 3.517-3.659 3.519H79.054c-.179 0-.353-.028-.527-.052V15.431zM30.262 75.757l-18.721-.46V72.37l11.3-16.673v-.148l-10.266.164v-4.51l17.504-.44v3.264L18.696 70.76v.144l11.566.176v4.678zm9.419.231l-5.823-.144V50.671l5.823-.144v25.461zm22.255-11.632c-2.168 1.922-5.353 2.76-9.02 2.736-.702.004-1.402-.04-2.097-.131v9.303l-5.997-.148V50.743c1.852-.352 4.473-.647 8.218-.743 3.838-.096 6.608.539 8.48 1.913 1.807 1.306 3.032 3.5 3.032 6.112s-.926 4.833-2.612 6.331h-.004zM53.36 54.45c-.856-.01-1.71.083-2.541.275v7.682c.523.116 1.167.152 2.06.152 3.301-.004 5.36-1.614 5.36-4.314 0-2.425-1.772-3.843-4.875-3.791l-.004-.004zm39.847-37.066h9.564v3.795h-9.564v-3.795zm-9.568 5.68h9.564v3.8h-9.564v-3.8zm9.568 6.216h9.564v3.799h-9.564V29.28zm0 12h9.564v3.794h-9.564V41.28zm-9.568-6.096h9.564v3.795h-9.564v-3.795zm9.472 47.064c2.512 0 4.921-.96 6.697-2.67 1.776-1.708 2.773-4.026 2.772-6.442l-1.748-15.263c0-5.033-2.492-9.112-7.725-9.112-5.232 0-7.72 4.079-7.72 9.112l-1.752 15.263c-.001 2.417.996 4.735 2.773 6.444 1.777 1.71 4.187 2.669 6.7 2.668h.003zm-3.135-16.75h6.27v12.743h-6.27V65.5z"/></svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svgo.yml b/ruoyi-ui/src/assets/icons/svgo.yml
deleted file mode 100644
index d11906a..0000000
--- a/ruoyi-ui/src/assets/icons/svgo.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-# replace default config
-
-# multipass: true
-# full: true
-
-plugins:
-
-  # - name
-  #
-  # or:
-  # - name: false
-  # - name: true
-  #
-  # or:
-  # - name:
-  #     param1: 1
-  #     param2: 2
-
-- removeAttrs:
-    attrs:
-      - 'fill'
-      - 'fill-rule'
diff --git a/ruoyi-ui/src/assets/images/dark.svg b/ruoyi-ui/src/assets/images/dark.svg
deleted file mode 100644
index f646bd7..0000000
--- a/ruoyi-ui/src/assets/images/dark.svg
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="52px" height="45px" viewBox="0 0 52 45" version="1.1" 
-    xmlns="http://www.w3.org/2000/svg" 
-    xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <filter x="-9.4%" y="-6.2%" width="118.8%" height="122.5%" filterUnits="objectBoundingBox" id="filter-1">
-            <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.15 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
-                <feMergeNode in="SourceGraphic"></feMergeNode>
-            </feMerge>
-        </filter>
-        <rect id="path-2" x="0" y="0" width="48" height="40" rx="4"></rect>
-        <filter x="-4.2%" y="-2.5%" width="108.3%" height="110.0%" filterUnits="objectBoundingBox" id="filter-4">
-            <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-    </defs>
-    <g id="配置面板" width="48" height="40" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="setting-copy-2" width="48" height="40" transform="translate(-1190.000000, -136.000000)">
-            <g id="Group-8" width="48" height="40" transform="translate(1167.000000, 0.000000)">
-                <g id="Group-5-Copy-5" filter="url(#filter-1)" transform="translate(25.000000, 137.000000)">
-                    <mask id="mask-3" fill="white">
-                        <use xlink:href="#path-2"></use>
-                    </mask>
-                    <g id="Rectangle-18">
-                        <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-2"></use>
-                        <use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-2"></use>
-                    </g>
-                    <rect id="Rectangle-11" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="48" height="10"></rect>
-                    <rect id="Rectangle-18" fill="#303648" mask="url(#mask-3)" x="0" y="0" width="16" height="40"></rect>
-                </g>
-            </g>
-        </g>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/images/light.svg b/ruoyi-ui/src/assets/images/light.svg
deleted file mode 100644
index ab7cc08..0000000
--- a/ruoyi-ui/src/assets/images/light.svg
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="52px" height="45px" viewBox="0 0 52 45" version="1.1" 
-    xmlns="http://www.w3.org/2000/svg" 
-    xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <filter x="-9.4%" y="-6.2%" width="118.8%" height="122.5%" filterUnits="objectBoundingBox" id="filter-1">
-            <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.15 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
-                <feMergeNode in="SourceGraphic"></feMergeNode>
-            </feMerge>
-        </filter>
-        <rect id="path-2" x="0" y="0" width="48" height="40" rx="4"></rect>
-        <filter x="-4.2%" y="-2.5%" width="108.3%" height="110.0%" filterUnits="objectBoundingBox" id="filter-4">
-            <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-    </defs>
-    <g id="配置面板" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="setting-copy-2" transform="translate(-1254.000000, -136.000000)">
-            <g id="Group-8" transform="translate(1167.000000, 0.000000)">
-                <g id="Group-5" filter="url(#filter-1)" transform="translate(89.000000, 137.000000)">
-                    <mask id="mask-3" fill="white">
-                        <use xlink:href="#path-2"></use>
-                    </mask>
-                    <g id="Rectangle-18">
-                        <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-2"></use>
-                        <use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-2"></use>
-                    </g>
-                    <rect id="Rectangle-18" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="16" height="40"></rect>
-                    <rect id="Rectangle-11" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="48" height="10"></rect>
-                </g>
-            </g>
-        </g>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/images/login-background.jpg b/ruoyi-ui/src/assets/images/login-background.jpg
deleted file mode 100644
index 8a89eb8291d5cb7d9f37ec4f275deab911c9e28e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 521275
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
XL@8i0W`Lsrl}D;qJ|-Lg^UMDMwcpa%

diff --git a/ruoyi-ui/src/assets/images/pay.png b/ruoyi-ui/src/assets/images/pay.png
deleted file mode 100644
index bb8b9672381a3e4119fcd33e6ddc21973672e273..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 140720
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
DPqhcR

diff --git a/ruoyi-ui/src/assets/images/profile.jpg b/ruoyi-ui/src/assets/images/profile.jpg
deleted file mode 100644
index b3a940b21cc9dcea01e62d94e243eebcf76d96bc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 81131
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

diff --git a/ruoyi-ui/src/assets/logo/logo.png b/ruoyi-ui/src/assets/logo/logo.png
deleted file mode 100644
index e26376026420542212ed58d90d0ed34f554fa4ae..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5663
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

diff --git a/ruoyi-ui/src/assets/styles/btn.scss b/ruoyi-ui/src/assets/styles/btn.scss
deleted file mode 100644
index e6ba1a8..0000000
--- a/ruoyi-ui/src/assets/styles/btn.scss
+++ /dev/null
@@ -1,99 +0,0 @@
-@import './variables.scss';
-
-@mixin colorBtn($color) {
-  background: $color;
-
-  &:hover {
-    color: $color;
-
-    &:before,
-    &:after {
-      background: $color;
-    }
-  }
-}
-
-.blue-btn {
-  @include colorBtn($blue)
-}
-
-.light-blue-btn {
-  @include colorBtn($light-blue)
-}
-
-.red-btn {
-  @include colorBtn($red)
-}
-
-.pink-btn {
-  @include colorBtn($pink)
-}
-
-.green-btn {
-  @include colorBtn($green)
-}
-
-.tiffany-btn {
-  @include colorBtn($tiffany)
-}
-
-.yellow-btn {
-  @include colorBtn($yellow)
-}
-
-.pan-btn {
-  font-size: 14px;
-  color: #fff;
-  padding: 14px 36px;
-  border-radius: 8px;
-  border: none;
-  outline: none;
-  transition: 600ms ease all;
-  position: relative;
-  display: inline-block;
-
-  &:hover {
-    background: #fff;
-
-    &:before,
-    &:after {
-      width: 100%;
-      transition: 600ms ease all;
-    }
-  }
-
-  &:before,
-  &:after {
-    content: '';
-    position: absolute;
-    top: 0;
-    right: 0;
-    height: 2px;
-    width: 0;
-    transition: 400ms ease all;
-  }
-
-  &::after {
-    right: inherit;
-    top: inherit;
-    left: 0;
-    bottom: 0;
-  }
-}
-
-.custom-button {
-  display: inline-block;
-  line-height: 1;
-  white-space: nowrap;
-  cursor: pointer;
-  background: #fff;
-  color: #fff;
-  -webkit-appearance: none;
-  text-align: center;
-  box-sizing: border-box;
-  outline: 0;
-  margin: 0;
-  padding: 10px 15px;
-  font-size: 14px;
-  border-radius: 4px;
-}
diff --git a/ruoyi-ui/src/assets/styles/element-ui.scss b/ruoyi-ui/src/assets/styles/element-ui.scss
deleted file mode 100644
index 363092a..0000000
--- a/ruoyi-ui/src/assets/styles/element-ui.scss
+++ /dev/null
@@ -1,92 +0,0 @@
-// cover some element-ui styles
-
-.el-breadcrumb__inner,
-.el-breadcrumb__inner a {
-  font-weight: 400 !important;
-}
-
-.el-upload {
-  input[type="file"] {
-    display: none !important;
-  }
-}
-
-.el-upload__input {
-  display: none;
-}
-
-.cell {
-  .el-tag {
-    margin-right: 0px;
-  }
-}
-
-.small-padding {
-  .cell {
-    padding-left: 5px;
-    padding-right: 5px;
-  }
-}
-
-.fixed-width {
-  .el-button--mini {
-    padding: 7px 10px;
-    width: 60px;
-  }
-}
-
-.status-col {
-  .cell {
-    padding: 0 10px;
-    text-align: center;
-
-    .el-tag {
-      margin-right: 0px;
-    }
-  }
-}
-
-// to fixed https://github.com/ElemeFE/element/issues/2461
-.el-dialog {
-  transform: none;
-  left: 0;
-  position: relative;
-  margin: 0 auto;
-}
-
-// refine element ui upload
-.upload-container {
-  .el-upload {
-    width: 100%;
-
-    .el-upload-dragger {
-      width: 100%;
-      height: 200px;
-    }
-  }
-}
-
-// dropdown
-.el-dropdown-menu {
-  a {
-    display: block
-  }
-}
-
-// fix date-picker ui bug in filter-item
-.el-range-editor.el-input__inner {
-  display: inline-flex !important;
-}
-
-// to fix el-date-picker css style
-.el-range-separator {
-  box-sizing: content-box;
-}
-
-.el-menu--collapse
-  > div
-  > .el-submenu
-  > .el-submenu__title
-  .el-submenu__icon-arrow {
-  display: none;
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/styles/element-variables.scss b/ruoyi-ui/src/assets/styles/element-variables.scss
deleted file mode 100644
index 1615ff2..0000000
--- a/ruoyi-ui/src/assets/styles/element-variables.scss
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
-* I think element-ui's default theme color is too light for long-term use.
-* So I modified the default color and you can modify it to your liking.
-**/
-
-/* theme color */
-$--color-primary: #1890ff;
-$--color-success: #13ce66;
-$--color-warning: #ffba00;
-$--color-danger: #ff4949;
-// $--color-info: #1E1E1E;
-
-$--button-font-weight: 400;
-
-// $--color-text-regular: #1f2d3d;
-
-$--border-color-light: #dfe4ed;
-$--border-color-lighter: #e6ebf5;
-
-$--table-border: 1px solid #dfe6ec;
-
-/* icon font path, required */
-$--font-path: '~element-ui/lib/theme-chalk/fonts';
-
-@import "~element-ui/packages/theme-chalk/src/index";
-
-// the :export directive is the magic sauce for webpack
-// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
-:export {
-  theme: $--color-primary;
-}
diff --git a/ruoyi-ui/src/assets/styles/index.scss b/ruoyi-ui/src/assets/styles/index.scss
deleted file mode 100644
index 2f3b9ef..0000000
--- a/ruoyi-ui/src/assets/styles/index.scss
+++ /dev/null
@@ -1,182 +0,0 @@
-@import './variables.scss';
-@import './mixin.scss';
-@import './transition.scss';
-@import './element-ui.scss';
-@import './sidebar.scss';
-@import './btn.scss';
-
-body {
-  height: 100%;
-  -moz-osx-font-smoothing: grayscale;
-  -webkit-font-smoothing: antialiased;
-  text-rendering: optimizeLegibility;
-  font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
-}
-
-label {
-  font-weight: 700;
-}
-
-html {
-  height: 100%;
-  box-sizing: border-box;
-}
-
-#app {
-  height: 100%;
-}
-
-*,
-*:before,
-*:after {
-  box-sizing: inherit;
-}
-
-.no-padding {
-  padding: 0px !important;
-}
-
-.padding-content {
-  padding: 4px 0;
-}
-
-a:focus,
-a:active {
-  outline: none;
-}
-
-a,
-a:focus,
-a:hover {
-  cursor: pointer;
-  color: inherit;
-  text-decoration: none;
-}
-
-div:focus {
-  outline: none;
-}
-
-.fr {
-  float: right;
-}
-
-.fl {
-  float: left;
-}
-
-.pr-5 {
-  padding-right: 5px;
-}
-
-.pl-5 {
-  padding-left: 5px;
-}
-
-.block {
-  display: block;
-}
-
-.pointer {
-  cursor: pointer;
-}
-
-.inlineBlock {
-  display: block;
-}
-
-.clearfix {
-  &:after {
-    visibility: hidden;
-    display: block;
-    font-size: 0;
-    content: " ";
-    clear: both;
-    height: 0;
-  }
-}
-
-aside {
-  background: #eef1f6;
-  padding: 8px 24px;
-  margin-bottom: 20px;
-  border-radius: 2px;
-  display: block;
-  line-height: 32px;
-  font-size: 16px;
-  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
-  color: #2c3e50;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-
-  a {
-    color: #337ab7;
-    cursor: pointer;
-
-    &:hover {
-      color: rgb(32, 160, 255);
-    }
-  }
-}
-
-//main-container全局样式
-.app-container {
-  padding: 20px;
-}
-
-.components-container {
-  margin: 30px 50px;
-  position: relative;
-}
-
-.pagination-container {
-  margin-top: 30px;
-}
-
-.text-center {
-  text-align: center
-}
-
-.sub-navbar {
-  height: 50px;
-  line-height: 50px;
-  position: relative;
-  width: 100%;
-  text-align: right;
-  padding-right: 20px;
-  transition: 600ms ease position;
-  background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%);
-
-  .subtitle {
-    font-size: 20px;
-    color: #fff;
-  }
-
-  &.draft {
-    background: #d0d0d0;
-  }
-
-  &.deleted {
-    background: #d0d0d0;
-  }
-}
-
-.link-type,
-.link-type:focus {
-  color: #337ab7;
-  cursor: pointer;
-
-  &:hover {
-    color: rgb(32, 160, 255);
-  }
-}
-
-.filter-container {
-  padding-bottom: 10px;
-
-  .filter-item {
-    display: inline-block;
-    vertical-align: middle;
-    margin-bottom: 10px;
-  }
-}
diff --git a/ruoyi-ui/src/assets/styles/mixin.scss b/ruoyi-ui/src/assets/styles/mixin.scss
deleted file mode 100644
index 06fa061..0000000
--- a/ruoyi-ui/src/assets/styles/mixin.scss
+++ /dev/null
@@ -1,66 +0,0 @@
-@mixin clearfix {
-  &:after {
-    content: "";
-    display: table;
-    clear: both;
-  }
-}
-
-@mixin scrollBar {
-  &::-webkit-scrollbar-track-piece {
-    background: #d3dce6;
-  }
-
-  &::-webkit-scrollbar {
-    width: 6px;
-  }
-
-  &::-webkit-scrollbar-thumb {
-    background: #99a9bf;
-    border-radius: 20px;
-  }
-}
-
-@mixin relative {
-  position: relative;
-  width: 100%;
-  height: 100%;
-}
-
-@mixin pct($pct) {
-  width: #{$pct};
-  position: relative;
-  margin: 0 auto;
-}
-
-@mixin triangle($width, $height, $color, $direction) {
-  $width: $width/2;
-  $color-border-style: $height solid $color;
-  $transparent-border-style: $width solid transparent;
-  height: 0;
-  width: 0;
-
-  @if $direction==up {
-    border-bottom: $color-border-style;
-    border-left: $transparent-border-style;
-    border-right: $transparent-border-style;
-  }
-
-  @else if $direction==right {
-    border-left: $color-border-style;
-    border-top: $transparent-border-style;
-    border-bottom: $transparent-border-style;
-  }
-
-  @else if $direction==down {
-    border-top: $color-border-style;
-    border-left: $transparent-border-style;
-    border-right: $transparent-border-style;
-  }
-
-  @else if $direction==left {
-    border-right: $color-border-style;
-    border-top: $transparent-border-style;
-    border-bottom: $transparent-border-style;
-  }
-}
diff --git a/ruoyi-ui/src/assets/styles/ruoyi.scss b/ruoyi-ui/src/assets/styles/ruoyi.scss
deleted file mode 100644
index 4e29874..0000000
--- a/ruoyi-ui/src/assets/styles/ruoyi.scss
+++ /dev/null
@@ -1,291 +0,0 @@
-/**
-* 通用css样式布局处理
-* Copyright (c) 2019 ruoyi
-*/
-
-/** 基础通用 **/
-.pt5 {
-  padding-top: 5px;
-}
-
-.pr5 {
-  padding-right: 5px;
-}
-
-.pb5 {
-  padding-bottom: 5px;
-}
-
-.mt5 {
-  margin-top: 5px;
-}
-
-.mr5 {
-  margin-right: 5px;
-}
-
-.mb5 {
-  margin-bottom: 5px;
-}
-
-.mb8 {
-  margin-bottom: 8px;
-}
-
-.ml5 {
-  margin-left: 5px;
-}
-
-.mt10 {
-  margin-top: 10px;
-}
-
-.mr10 {
-  margin-right: 10px;
-}
-
-.mb10 {
-  margin-bottom: 10px;
-}
-.ml10 {
-	margin-left: 10px;
-}
-
-.mt20 {
-  margin-top: 20px;
-}
-
-.mr20 {
-  margin-right: 20px;
-}
-
-.mb20 {
-  margin-bottom: 20px;
-}
-.ml20 {
-	margin-left: 20px;
-}
-
-.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
-  font-family: inherit;
-  font-weight: 500;
-  line-height: 1.1;
-  color: inherit;
-}
-
-.el-message-box__status + .el-message-box__message{
-  word-break: break-word;
-}
-
-.el-dialog:not(.is-fullscreen) {
-  margin-top: 6vh !important;
-}
-
-.el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body {
-  overflow: auto;
-  overflow-x: hidden;
-  max-height: 70vh;
-  padding: 10px 20px 0;
-}
-
-.el-table {
-  .el-table__header-wrapper, .el-table__fixed-header-wrapper {
-    th {
-      word-break: break-word;
-      background-color: #f8f8f9;
-      color: #515a6e;
-      height: 40px;
-      font-size: 13px;
-    }
-  }
-
-  .el-table__body-wrapper {
-    .el-button [class*="el-icon-"] + span {
-      margin-left: 1px;
-    }
-  }
-}
-
-/** 表单布局 **/
-.form-header {
-  font-size: 15px;
-  color: #6379bb;
-  border-bottom: 1px solid #ddd;
-  margin: 8px 10px 25px 10px;
-  padding-bottom: 5px
-}
-
-/** 表格布局 **/
-.pagination-container {
-  position: relative;
-  height: 25px;
-  margin-bottom: 10px;
-  margin-top: 15px;
-  padding: 10px 20px !important;
-}
-
-/* tree border */
-.tree-border {
-  margin-top: 5px;
-  border: 1px solid #e5e6e7;
-  background: #FFFFFF none;
-  border-radius: 4px;
-}
-
-.pagination-container .el-pagination {
-  right: 0;
-  position: absolute;
-}
-
-@media (max-width: 768px) {
-  .pagination-container .el-pagination > .el-pagination__jump {
-    display: none !important;
-  }
-  .pagination-container .el-pagination > .el-pagination__sizes {
-    display: none !important;
-  }
-}
-
-.el-table .fixed-width .el-button--mini {
-  padding-left: 0;
-  padding-right: 0;
-  width: inherit;
-}
-
-/** 表格更多操作下拉样式 */
-.el-table .el-dropdown-link,.el-table .el-dropdown-selfdefine {
-	cursor: pointer;
-	margin-left: 5px;
-}
-
-.el-table .el-dropdown, .el-icon-arrow-down {
-  font-size: 12px;
-}
-
-.el-tree-node__content > .el-checkbox {
-  margin-right: 8px;
-}
-
-.list-group-striped > .list-group-item {
-  border-left: 0;
-  border-right: 0;
-  border-radius: 0;
-  padding-left: 0;
-  padding-right: 0;
-}
-
-.list-group {
-  padding-left: 0px;
-  list-style: none;
-}
-
-.list-group-item {
-  border-bottom: 1px solid #e7eaec;
-  border-top: 1px solid #e7eaec;
-  margin-bottom: -1px;
-  padding: 11px 0px;
-  font-size: 13px;
-}
-
-.pull-right {
-  float: right !important;
-}
-
-.el-card__header {
-  padding: 14px 15px 7px;
-  min-height: 40px;
-}
-
-.el-card__body {
-  padding: 15px 20px 20px 20px;
-}
-
-.card-box {
-  padding-right: 15px;
-  padding-left: 15px;
-  margin-bottom: 10px;
-}
-
-/* button color */
-.el-button--cyan.is-active,
-.el-button--cyan:active {
-  background: #20B2AA;
-  border-color: #20B2AA;
-  color: #FFFFFF;
-}
-
-.el-button--cyan:focus,
-.el-button--cyan:hover {
-  background: #48D1CC;
-  border-color: #48D1CC;
-  color: #FFFFFF;
-}
-
-.el-button--cyan {
-  background-color: #20B2AA;
-  border-color: #20B2AA;
-  color: #FFFFFF;
-}
-
-/* text color */
-.text-navy {
-  color: #1ab394;
-}
-
-.text-primary {
-  color: inherit;
-}
-
-.text-success {
-  color: #1c84c6;
-}
-
-.text-info {
-  color: #23c6c8;
-}
-
-.text-warning {
-  color: #f8ac59;
-}
-
-.text-danger {
-  color: #ed5565;
-}
-
-.text-muted {
-  color: #888888;
-}
-
-/* image */
-.img-circle {
-  border-radius: 50%;
-}
-
-.img-lg {
-  width: 120px;
-  height: 120px;
-}
-
-.avatar-upload-preview {
-  position: relative;
-  top: 50%;
-  left: 50%;
-  transform: translate(-50%, -50%);
-  width: 200px;
-  height: 200px;
-  border-radius: 50%;
-  box-shadow: 0 0 4px #ccc;
-  overflow: hidden;
-}
-
-/* 拖拽列样式 */
-.sortable-ghost {
-  opacity: .8;
-  color: #fff !important;
-  background: #42b983 !important;
-}
-
-.top-right-btn {
-  position: relative;
-  float: right;
-}
diff --git a/ruoyi-ui/src/assets/styles/sidebar.scss b/ruoyi-ui/src/assets/styles/sidebar.scss
deleted file mode 100644
index abe5b63..0000000
--- a/ruoyi-ui/src/assets/styles/sidebar.scss
+++ /dev/null
@@ -1,227 +0,0 @@
-#app {
-
-  .main-container {
-    height: 100%;
-    transition: margin-left .28s;
-    margin-left: $base-sidebar-width;
-    position: relative;
-  }
-
-  .sidebarHide {
-    margin-left: 0!important;
-  }
-
-  .sidebar-container {
-    -webkit-transition: width .28s;
-    transition: width 0.28s;
-    width: $base-sidebar-width !important;
-    background-color: $base-menu-background;
-    height: 100%;
-    position: fixed;
-    font-size: 0px;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    z-index: 1001;
-    overflow: hidden;
-    -webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35);
-    box-shadow: 2px 0 6px rgba(0,21,41,.35);
-
-    // reset element-ui css
-    .horizontal-collapse-transition {
-      transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
-    }
-
-    .scrollbar-wrapper {
-      overflow-x: hidden !important;
-    }
-
-    .el-scrollbar__bar.is-vertical {
-      right: 0px;
-    }
-
-    .el-scrollbar {
-      height: 100%;
-    }
-
-    &.has-logo {
-      .el-scrollbar {
-        height: calc(100% - 50px);
-      }
-    }
-
-    .is-horizontal {
-      display: none;
-    }
-
-    a {
-      display: inline-block;
-      width: 100%;
-      overflow: hidden;
-    }
-
-    .svg-icon {
-      margin-right: 16px;
-    }
-
-    .el-menu {
-      border: none;
-      height: 100%;
-      width: 100% !important;
-    }
-
-    .el-menu-item, .el-submenu__title {
-      overflow: hidden !important;
-      text-overflow: ellipsis !important;
-      white-space: nowrap !important;
-    }
-
-    // menu hover
-    .submenu-title-noDropdown,
-    .el-submenu__title {
-      &:hover {
-        background-color: rgba(0, 0, 0, 0.06) !important;
-      }
-    }
-
-    & .theme-dark .is-active > .el-submenu__title {
-      color: $base-menu-color-active !important;
-    }
-
-    & .nest-menu .el-submenu>.el-submenu__title,
-    & .el-submenu .el-menu-item {
-      min-width: $base-sidebar-width !important;
-
-      &:hover {
-        background-color: rgba(0, 0, 0, 0.06) !important;
-      }
-    }
-
-    & .theme-dark .nest-menu .el-submenu>.el-submenu__title,
-    & .theme-dark .el-submenu .el-menu-item {
-      background-color: $base-sub-menu-background !important;
-
-      &:hover {
-        background-color: $base-sub-menu-hover !important;
-      }
-    }
-  }
-
-  .hideSidebar {
-    .sidebar-container {
-      width: 54px !important;
-    }
-
-    .main-container {
-      margin-left: 54px;
-    }
-
-    .submenu-title-noDropdown {
-      padding: 0 !important;
-      position: relative;
-
-      .el-tooltip {
-        padding: 0 !important;
-
-        .svg-icon {
-          margin-left: 20px;
-        }
-      }
-    }
-
-    .el-submenu {
-      overflow: hidden;
-
-      &>.el-submenu__title {
-        padding: 0 !important;
-
-        .svg-icon {
-          margin-left: 20px;
-        }
-
-      }
-    }
-
-    .el-menu--collapse {
-      .el-submenu {
-        &>.el-submenu__title {
-          &>span {
-            height: 0;
-            width: 0;
-            overflow: hidden;
-            visibility: hidden;
-            display: inline-block;
-          }
-        }
-      }
-    }
-  }
-
-  .el-menu--collapse .el-menu .el-submenu {
-    min-width: $base-sidebar-width !important;
-  }
-
-  // mobile responsive
-  .mobile {
-    .main-container {
-      margin-left: 0px;
-    }
-
-    .sidebar-container {
-      transition: transform .28s;
-      width: $base-sidebar-width !important;
-    }
-
-    &.hideSidebar {
-      .sidebar-container {
-        pointer-events: none;
-        transition-duration: 0.3s;
-        transform: translate3d(-$base-sidebar-width, 0, 0);
-      }
-    }
-  }
-
-  .withoutAnimation {
-
-    .main-container,
-    .sidebar-container {
-      transition: none;
-    }
-  }
-}
-
-// when menu collapsed
-.el-menu--vertical {
-  &>.el-menu {
-    .svg-icon {
-      margin-right: 16px;
-    }
-  }
-
-  .nest-menu .el-submenu>.el-submenu__title,
-  .el-menu-item {
-    &:hover {
-      // you can use $subMenuHover
-      background-color: rgba(0, 0, 0, 0.06) !important;
-    }
-  }
-
-  // the scroll bar appears when the subMenu is too long
-  >.el-menu--popup {
-    max-height: 100vh;
-    overflow-y: auto;
-
-    &::-webkit-scrollbar-track-piece {
-      background: #d3dce6;
-    }
-
-    &::-webkit-scrollbar {
-      width: 6px;
-    }
-
-    &::-webkit-scrollbar-thumb {
-      background: #99a9bf;
-      border-radius: 20px;
-    }
-  }
-}
diff --git a/ruoyi-ui/src/assets/styles/transition.scss b/ruoyi-ui/src/assets/styles/transition.scss
deleted file mode 100644
index 073f8c6..0000000
--- a/ruoyi-ui/src/assets/styles/transition.scss
+++ /dev/null
@@ -1,49 +0,0 @@
-// global transition css
-
-/* fade */
-.fade-enter-active,
-.fade-leave-active {
-  transition: opacity 0.28s;
-}
-
-.fade-enter,
-.fade-leave-active {
-  opacity: 0;
-}
-
-/* fade-transform */
-.fade-transform--move,
-.fade-transform-leave-active,
-.fade-transform-enter-active {
-  transition: all .5s;
-}
-
-.fade-transform-enter {
-  opacity: 0;
-  transform: translateX(-30px);
-}
-
-.fade-transform-leave-to {
-  opacity: 0;
-  transform: translateX(30px);
-}
-
-/* breadcrumb transition */
-.breadcrumb-enter-active,
-.breadcrumb-leave-active {
-  transition: all .5s;
-}
-
-.breadcrumb-enter,
-.breadcrumb-leave-active {
-  opacity: 0;
-  transform: translateX(20px);
-}
-
-.breadcrumb-move {
-  transition: all .5s;
-}
-
-.breadcrumb-leave-active {
-  position: absolute;
-}
diff --git a/ruoyi-ui/src/assets/styles/variables.scss b/ruoyi-ui/src/assets/styles/variables.scss
deleted file mode 100644
index 34484d4..0000000
--- a/ruoyi-ui/src/assets/styles/variables.scss
+++ /dev/null
@@ -1,54 +0,0 @@
-// base color
-$blue:#324157;
-$light-blue:#3A71A8;
-$red:#C03639;
-$pink: #E65D6E;
-$green: #30B08F;
-$tiffany: #4AB7BD;
-$yellow:#FEC171;
-$panGreen: #30B08F;
-
-// 默认菜单主题风格
-$base-menu-color:#bfcbd9;
-$base-menu-color-active:#f4f4f5;
-$base-menu-background:#304156;
-$base-logo-title-color: #ffffff;
-
-$base-menu-light-color:rgba(0,0,0,.70);
-$base-menu-light-background:#ffffff;
-$base-logo-light-title-color: #001529;
-
-$base-sub-menu-background:#1f2d3d;
-$base-sub-menu-hover:#001528;
-
-// 自定义暗色菜单风格
-/**
-$base-menu-color:hsla(0,0%,100%,.65);
-$base-menu-color-active:#fff;
-$base-menu-background:#001529;
-$base-logo-title-color: #ffffff;
-
-$base-menu-light-color:rgba(0,0,0,.70);
-$base-menu-light-background:#ffffff;
-$base-logo-light-title-color: #001529;
-
-$base-sub-menu-background:#000c17;
-$base-sub-menu-hover:#001528;
-*/
-
-$base-sidebar-width: 200px;
-
-// the :export directive is the magic sauce for webpack
-// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
-:export {
-  menuColor: $base-menu-color;
-  menuLightColor: $base-menu-light-color;
-  menuColorActive: $base-menu-color-active;
-  menuBackground: $base-menu-background;
-  menuLightBackground: $base-menu-light-background;
-  subMenuBackground: $base-sub-menu-background;
-  subMenuHover: $base-sub-menu-hover;
-  sideBarWidth: $base-sidebar-width;
-  logoTitleColor: $base-logo-title-color;
-  logoLightTitleColor: $base-logo-light-title-color
-}
diff --git a/ruoyi-ui/src/components/Breadcrumb/index.vue b/ruoyi-ui/src/components/Breadcrumb/index.vue
deleted file mode 100644
index 1696f54..0000000
--- a/ruoyi-ui/src/components/Breadcrumb/index.vue
+++ /dev/null
@@ -1,74 +0,0 @@
-<template>
-  <el-breadcrumb class="app-breadcrumb" separator="/">
-    <transition-group name="breadcrumb">
-      <el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
-        <span v-if="item.redirect === 'noRedirect' || index == levelList.length - 1" class="no-redirect">{{ item.meta.title }}</span>
-        <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
-      </el-breadcrumb-item>
-    </transition-group>
-  </el-breadcrumb>
-</template>
-
-<script>
-export default {
-  data() {
-    return {
-      levelList: null
-    }
-  },
-  watch: {
-    $route(route) {
-      // if you go to the redirect page, do not update the breadcrumbs
-      if (route.path.startsWith('/redirect/')) {
-        return
-      }
-      this.getBreadcrumb()
-    }
-  },
-  created() {
-    this.getBreadcrumb()
-  },
-  methods: {
-    getBreadcrumb() {
-      // only show routes with meta.title
-      let matched = this.$route.matched.filter(item => item.meta && item.meta.title)
-      const first = matched[0]
-
-      if (!this.isDashboard(first)) {
-        matched = [{ path: '/index', meta: { title: '首页' }}].concat(matched)
-      }
-
-      this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false)
-    },
-    isDashboard(route) {
-      const name = route && route.name
-      if (!name) {
-        return false
-      }
-      return name.trim() === 'Index'
-    },
-    handleLink(item) {
-      const { redirect, path } = item
-      if (redirect) {
-        this.$router.push(redirect)
-        return
-      }
-      this.$router.push(path)
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.app-breadcrumb.el-breadcrumb {
-  display: inline-block;
-  font-size: 14px;
-  line-height: 50px;
-  margin-left: 8px;
-
-  .no-redirect {
-    color: #97a8be;
-    cursor: text;
-  }
-}
-</style>
diff --git a/ruoyi-ui/src/components/Crontab/day.vue b/ruoyi-ui/src/components/Crontab/day.vue
deleted file mode 100644
index fe3eaf0..0000000
--- a/ruoyi-ui/src/components/Crontab/day.vue
+++ /dev/null
@@ -1,161 +0,0 @@
-<template>
-	<el-form size="small">
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="1">
-				日,允许的通配符[, - * ? / L W]
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="2">
-				不指定
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="3">
-				周期从
-				<el-input-number v-model='cycle01' :min="1" :max="30" /> -
-				<el-input-number v-model='cycle02' :min="cycle01 ? cycle01 + 1 : 2" :max="31" /> 日
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="4">
-				从
-				<el-input-number v-model='average01' :min="1" :max="30" /> 号开始,每
-				<el-input-number v-model='average02' :min="1" :max="31 - average01 || 1" /> 日执行一次
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="5">
-				每月
-				<el-input-number v-model='workday' :min="1" :max="31" /> 号最近的那个工作日
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="6">
-				本月最后一天
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="7">
-				指定
-				<el-select clearable v-model="checkboxList" placeholder="可多选" multiple style="width:100%">
-					<el-option v-for="item in 31" :key="item" :value="item">{{item}}</el-option>
-				</el-select>
-			</el-radio>
-		</el-form-item>
-	</el-form>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			radioValue: 1,
-			workday: 1,
-			cycle01: 1,
-			cycle02: 2,
-			average01: 1,
-			average02: 1,
-			checkboxList: [],
-			checkNum: this.$options.propsData.check
-		}
-	},
-	name: 'crontab-day',
-	props: ['check', 'cron'],
-	methods: {
-		// 单选按钮值变化时
-		radioChange() {
-			('day rachange');
-			if (this.radioValue !== 2 && this.cron.week !== '?') {
-				this.$emit('update', 'week', '?', 'day')
-			}
-
-			switch (this.radioValue) {
-				case 1:
-					this.$emit('update', 'day', '*');
-					break;
-				case 2:
-					this.$emit('update', 'day', '?');
-					break;
-				case 3:
-					this.$emit('update', 'day', this.cycleTotal);
-					break;
-				case 4:
-					this.$emit('update', 'day', this.averageTotal);
-					break;
-				case 5:
-					this.$emit('update', 'day', this.workday + 'W');
-					break;
-				case 6:
-					this.$emit('update', 'day', 'L');
-					break;
-				case 7:
-					this.$emit('update', 'day', this.checkboxString);
-					break;
-			}
-			('day rachange end');
-		},
-		// 周期两个值变化时
-		cycleChange() {
-			if (this.radioValue == '3') {
-				this.$emit('update', 'day', this.cycleTotal);
-			}
-		},
-		// 平均两个值变化时
-		averageChange() {
-			if (this.radioValue == '4') {
-				this.$emit('update', 'day', this.averageTotal);
-			}
-		},
-		// 最近工作日值变化时
-		workdayChange() {
-			if (this.radioValue == '5') {
-				this.$emit('update', 'day', this.workdayCheck + 'W');
-			}
-		},
-		// checkbox值变化时
-		checkboxChange() {
-			if (this.radioValue == '7') {
-				this.$emit('update', 'day', this.checkboxString);
-			}
-		}
-	},
-	watch: {
-		'radioValue': 'radioChange',
-		'cycleTotal': 'cycleChange',
-		'averageTotal': 'averageChange',
-		'workdayCheck': 'workdayChange',
-		'checkboxString': 'checkboxChange',
-	},
-	computed: {
-		// 计算两个周期值
-		cycleTotal: function () {
-			const cycle01 = this.checkNum(this.cycle01, 1, 30)
-			const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 2, 31, 31)
-			return cycle01 + '-' + cycle02;
-		},
-		// 计算平均用到的值
-		averageTotal: function () {
-			const average01 = this.checkNum(this.average01, 1, 30)
-			const average02 = this.checkNum(this.average02, 1, 31 - average01 || 0)
-			return average01 + '/' + average02;
-		},
-		// 计算工作日格式
-		workdayCheck: function () {
-			const workday = this.checkNum(this.workday, 1, 31)
-			return workday;
-		},
-		// 计算勾选的checkbox值合集
-		checkboxString: function () {
-			let str = this.checkboxList.join();
-			return str == '' ? '*' : str;
-		}
-	}
-}
-</script>
diff --git a/ruoyi-ui/src/components/Crontab/hour.vue b/ruoyi-ui/src/components/Crontab/hour.vue
deleted file mode 100644
index 4b1f1fc..0000000
--- a/ruoyi-ui/src/components/Crontab/hour.vue
+++ /dev/null
@@ -1,114 +0,0 @@
-<template>
-	<el-form size="small">
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="1">
-				小时,允许的通配符[, - * /]
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="2">
-				周期从
-				<el-input-number v-model='cycle01' :min="0" :max="22" /> -
-				<el-input-number v-model='cycle02' :min="cycle01 ? cycle01 + 1 : 1" :max="23" /> 小时
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="3">
-				从
-				<el-input-number v-model='average01' :min="0" :max="22" /> 小时开始,每
-				<el-input-number v-model='average02' :min="1" :max="23 - average01 || 0" /> 小时执行一次
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="4">
-				指定
-				<el-select clearable v-model="checkboxList" placeholder="可多选" multiple style="width:100%">
-					<el-option v-for="item in 24" :key="item" :value="item-1">{{item-1}}</el-option>
-				</el-select>
-			</el-radio>
-		</el-form-item>
-	</el-form>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			radioValue: 1,
-			cycle01: 0,
-			cycle02: 1,
-			average01: 0,
-			average02: 1,
-			checkboxList: [],
-			checkNum: this.$options.propsData.check
-		}
-	},
-	name: 'crontab-hour',
-	props: ['check', 'cron'],
-	methods: {
-		// 单选按钮值变化时
-		radioChange() {
-			switch (this.radioValue) {
-				case 1:
-        	this.$emit('update', 'hour', '*')
-        	break;
-				case 2:
-					this.$emit('update', 'hour', this.cycleTotal);
-					break;
-				case 3:
-					this.$emit('update', 'hour', this.averageTotal);
-					break;
-				case 4:
-					this.$emit('update', 'hour', this.checkboxString);
-					break;
-			}
-		},
-		// 周期两个值变化时
-		cycleChange() {
-			if (this.radioValue == '2') {
-				this.$emit('update', 'hour', this.cycleTotal);
-			}
-		},
-		// 平均两个值变化时
-		averageChange() {
-			if (this.radioValue == '3') {
-				this.$emit('update', 'hour', this.averageTotal);
-			}
-		},
-		// checkbox值变化时
-		checkboxChange() {
-			if (this.radioValue == '4') {
-				this.$emit('update', 'hour', this.checkboxString);
-			}
-		}
-	},
-	watch: {
-		'radioValue': 'radioChange',
-		'cycleTotal': 'cycleChange',
-		'averageTotal': 'averageChange',
-		'checkboxString': 'checkboxChange'
-	},
-	computed: {
-		// 计算两个周期值
-		cycleTotal: function () {
-			const cycle01 = this.checkNum(this.cycle01, 0, 22)
-			const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 1, 23)
-			return cycle01 + '-' + cycle02;
-		},
-		// 计算平均用到的值
-		averageTotal: function () {
-			const average01 = this.checkNum(this.average01, 0, 22)
-			const average02 = this.checkNum(this.average02, 1, 23 - average01 || 0)
-			return average01 + '/' + average02;
-		},
-		// 计算勾选的checkbox值合集
-		checkboxString: function () {
-			let str = this.checkboxList.join();
-			return str == '' ? '*' : str;
-		}
-	}
-}
-</script>
diff --git a/ruoyi-ui/src/components/Crontab/index.vue b/ruoyi-ui/src/components/Crontab/index.vue
deleted file mode 100644
index 3963df2..0000000
--- a/ruoyi-ui/src/components/Crontab/index.vue
+++ /dev/null
@@ -1,430 +0,0 @@
-<template>
-  <div>
-    <el-tabs type="border-card">
-      <el-tab-pane label="秒" v-if="shouldHide('second')">
-        <CrontabSecond
-          @update="updateCrontabValue"
-          :check="checkNumber"
-          :cron="crontabValueObj"
-          ref="cronsecond"
-        />
-      </el-tab-pane>
-
-      <el-tab-pane label="分钟" v-if="shouldHide('min')">
-        <CrontabMin
-          @update="updateCrontabValue"
-          :check="checkNumber"
-          :cron="crontabValueObj"
-          ref="cronmin"
-        />
-      </el-tab-pane>
-
-      <el-tab-pane label="小时" v-if="shouldHide('hour')">
-        <CrontabHour
-          @update="updateCrontabValue"
-          :check="checkNumber"
-          :cron="crontabValueObj"
-          ref="cronhour"
-        />
-      </el-tab-pane>
-
-      <el-tab-pane label="日" v-if="shouldHide('day')">
-        <CrontabDay
-          @update="updateCrontabValue"
-          :check="checkNumber"
-          :cron="crontabValueObj"
-          ref="cronday"
-        />
-      </el-tab-pane>
-
-      <el-tab-pane label="月" v-if="shouldHide('month')">
-        <CrontabMonth
-          @update="updateCrontabValue"
-          :check="checkNumber"
-          :cron="crontabValueObj"
-          ref="cronmonth"
-        />
-      </el-tab-pane>
-
-      <el-tab-pane label="周" v-if="shouldHide('week')">
-        <CrontabWeek
-          @update="updateCrontabValue"
-          :check="checkNumber"
-          :cron="crontabValueObj"
-          ref="cronweek"
-        />
-      </el-tab-pane>
-
-      <el-tab-pane label="年" v-if="shouldHide('year')">
-        <CrontabYear
-          @update="updateCrontabValue"
-          :check="checkNumber"
-          :cron="crontabValueObj"
-          ref="cronyear"
-        />
-      </el-tab-pane>
-    </el-tabs>
-
-    <div class="popup-main">
-      <div class="popup-result">
-        <p class="title">时间表达式</p>
-        <table>
-          <thead>
-            <th v-for="item of tabTitles" width="40" :key="item">{{item}}</th>
-            <th>Cron 表达式</th>
-          </thead>
-          <tbody>
-            <td>
-              <span>{{crontabValueObj.second}}</span>
-            </td>
-            <td>
-              <span>{{crontabValueObj.min}}</span>
-            </td>
-            <td>
-              <span>{{crontabValueObj.hour}}</span>
-            </td>
-            <td>
-              <span>{{crontabValueObj.day}}</span>
-            </td>
-            <td>
-              <span>{{crontabValueObj.month}}</span>
-            </td>
-            <td>
-              <span>{{crontabValueObj.week}}</span>
-            </td>
-            <td>
-              <span>{{crontabValueObj.year}}</span>
-            </td>
-            <td>
-              <span>{{crontabValueString}}</span>
-            </td>
-          </tbody>
-        </table>
-      </div>
-      <CrontabResult :ex="crontabValueString"></CrontabResult>
-
-      <div class="pop_btn">
-        <el-button size="small" type="primary" @click="submitFill">确定</el-button>
-        <el-button size="small" type="warning" @click="clearCron">重置</el-button>
-        <el-button size="small" @click="hidePopup">取消</el-button>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import CrontabSecond from "./second.vue";
-import CrontabMin from "./min.vue";
-import CrontabHour from "./hour.vue";
-import CrontabDay from "./day.vue";
-import CrontabMonth from "./month.vue";
-import CrontabWeek from "./week.vue";
-import CrontabYear from "./year.vue";
-import CrontabResult from "./result.vue";
-
-export default {
-  data() {
-    return {
-      tabTitles: ["秒", "分钟", "小时", "日", "月", "周", "年"],
-      tabActive: 0,
-      myindex: 0,
-      crontabValueObj: {
-        second: "*",
-        min: "*",
-        hour: "*",
-        day: "*",
-        month: "*",
-        week: "?",
-        year: "",
-      },
-    };
-  },
-  name: "vcrontab",
-  props: ["expression", "hideComponent"],
-  methods: {
-    shouldHide(key) {
-      if (this.hideComponent && this.hideComponent.includes(key)) return false;
-      return true;
-    },
-    resolveExp() {
-      // 反解析 表达式
-      if (this.expression) {
-        let arr = this.expression.split(" ");
-        if (arr.length >= 6) {
-          //6 位以上是合法表达式
-          let obj = {
-            second: arr[0],
-            min: arr[1],
-            hour: arr[2],
-            day: arr[3],
-            month: arr[4],
-            week: arr[5],
-            year: arr[6] ? arr[6] : "",
-          };
-          this.crontabValueObj = {
-            ...obj,
-          };
-          for (let i in obj) {
-            if (obj[i]) this.changeRadio(i, obj[i]);
-          }
-        }
-      } else {
-        // 没有传入的表达式 则还原
-        this.clearCron();
-      }
-    },
-    // tab切换值
-    tabCheck(index) {
-      this.tabActive = index;
-    },
-    // 由子组件触发,更改表达式组成的字段值
-    updateCrontabValue(name, value, from) {
-      "updateCrontabValue", name, value, from;
-      this.crontabValueObj[name] = value;
-      if (from && from !== name) {
-        console.log(`来自组件 ${from} 改变了 ${name} ${value}`);
-        this.changeRadio(name, value);
-      }
-    },
-    // 赋值到组件
-    changeRadio(name, value) {
-      let arr = ["second", "min", "hour", "month"],
-        refName = "cron" + name,
-        insValue;
-
-      if (!this.$refs[refName]) return;
-
-      if (arr.includes(name)) {
-        if (value === "*") {
-          insValue = 1;
-        } else if (value.indexOf("-") > -1) {
-          let indexArr = value.split("-");
-          isNaN(indexArr[0])
-            ? (this.$refs[refName].cycle01 = 0)
-            : (this.$refs[refName].cycle01 = indexArr[0]);
-          this.$refs[refName].cycle02 = indexArr[1];
-          insValue = 2;
-        } else if (value.indexOf("/") > -1) {
-          let indexArr = value.split("/");
-          isNaN(indexArr[0])
-            ? (this.$refs[refName].average01 = 0)
-            : (this.$refs[refName].average01 = indexArr[0]);
-          this.$refs[refName].average02 = indexArr[1];
-          insValue = 3;
-        } else {
-          insValue = 4;
-          this.$refs[refName].checkboxList = value.split(",");
-        }
-      } else if (name == "day") {
-        if (value === "*") {
-          insValue = 1;
-        } else if (value == "?") {
-          insValue = 2;
-        } else if (value.indexOf("-") > -1) {
-          let indexArr = value.split("-");
-          isNaN(indexArr[0])
-            ? (this.$refs[refName].cycle01 = 0)
-            : (this.$refs[refName].cycle01 = indexArr[0]);
-          this.$refs[refName].cycle02 = indexArr[1];
-          insValue = 3;
-        } else if (value.indexOf("/") > -1) {
-          let indexArr = value.split("/");
-          isNaN(indexArr[0])
-            ? (this.$refs[refName].average01 = 0)
-            : (this.$refs[refName].average01 = indexArr[0]);
-          this.$refs[refName].average02 = indexArr[1];
-          insValue = 4;
-        } else if (value.indexOf("W") > -1) {
-          let indexArr = value.split("W");
-          isNaN(indexArr[0])
-            ? (this.$refs[refName].workday = 0)
-            : (this.$refs[refName].workday = indexArr[0]);
-          insValue = 5;
-        } else if (value === "L") {
-          insValue = 6;
-        } else {
-          this.$refs[refName].checkboxList = value.split(",");
-          insValue = 7;
-        }
-      } else if (name == "week") {
-        if (value === "*") {
-          insValue = 1;
-        } else if (value == "?") {
-          insValue = 2;
-        } else if (value.indexOf("-") > -1) {
-          let indexArr = value.split("-");
-          isNaN(indexArr[0])
-            ? (this.$refs[refName].cycle01 = 0)
-            : (this.$refs[refName].cycle01 = indexArr[0]);
-          this.$refs[refName].cycle02 = indexArr[1];
-          insValue = 3;
-        } else if (value.indexOf("#") > -1) {
-          let indexArr = value.split("#");
-          isNaN(indexArr[0])
-            ? (this.$refs[refName].average01 = 1)
-            : (this.$refs[refName].average01 = indexArr[0]);
-          this.$refs[refName].average02 = indexArr[1];
-          insValue = 4;
-        } else if (value.indexOf("L") > -1) {
-          let indexArr = value.split("L");
-          isNaN(indexArr[0])
-            ? (this.$refs[refName].weekday = 1)
-            : (this.$refs[refName].weekday = indexArr[0]);
-          insValue = 5;
-        } else {
-          this.$refs[refName].checkboxList = value.split(",");
-          insValue = 6;
-        }
-      } else if (name == "year") {
-        if (value == "") {
-          insValue = 1;
-        } else if (value == "*") {
-          insValue = 2;
-        } else if (value.indexOf("-") > -1) {
-          insValue = 3;
-        } else if (value.indexOf("/") > -1) {
-          insValue = 4;
-        } else {
-          this.$refs[refName].checkboxList = value.split(",");
-          insValue = 5;
-        }
-      }
-      this.$refs[refName].radioValue = insValue;
-    },
-    // 表单选项的子组件校验数字格式(通过-props传递)
-    checkNumber(value, minLimit, maxLimit) {
-      // 检查必须为整数
-      value = Math.floor(value);
-      if (value < minLimit) {
-        value = minLimit;
-      } else if (value > maxLimit) {
-        value = maxLimit;
-      }
-      return value;
-    },
-    // 隐藏弹窗
-    hidePopup() {
-      this.$emit("hide");
-    },
-    // 填充表达式
-    submitFill() {
-      this.$emit("fill", this.crontabValueString);
-      this.hidePopup();
-    },
-    clearCron() {
-      // 还原选择项
-      ("准备还原");
-      this.crontabValueObj = {
-        second: "*",
-        min: "*",
-        hour: "*",
-        day: "*",
-        month: "*",
-        week: "?",
-        year: "",
-      };
-      for (let j in this.crontabValueObj) {
-        this.changeRadio(j, this.crontabValueObj[j]);
-      }
-    },
-  },
-  computed: {
-    crontabValueString: function() {
-      let obj = this.crontabValueObj;
-      let str =
-        obj.second +
-        " " +
-        obj.min +
-        " " +
-        obj.hour +
-        " " +
-        obj.day +
-        " " +
-        obj.month +
-        " " +
-        obj.week +
-        (obj.year == "" ? "" : " " + obj.year);
-      return str;
-    },
-  },
-  components: {
-    CrontabSecond,
-    CrontabMin,
-    CrontabHour,
-    CrontabDay,
-    CrontabMonth,
-    CrontabWeek,
-    CrontabYear,
-    CrontabResult,
-  },
-  watch: {
-    expression: "resolveExp",
-    hideComponent(value) {
-      // 隐藏部分组件
-    },
-  },
-  mounted: function() {
-    this.resolveExp();
-  },
-};
-</script>
-<style scoped>
-.pop_btn {
-  text-align: center;
-  margin-top: 20px;
-}
-.popup-main {
-  position: relative;
-  margin: 10px auto;
-  background: #fff;
-  border-radius: 5px;
-  font-size: 12px;
-  overflow: hidden;
-}
-.popup-title {
-  overflow: hidden;
-  line-height: 34px;
-  padding-top: 6px;
-  background: #f2f2f2;
-}
-.popup-result {
-  box-sizing: border-box;
-  line-height: 24px;
-  margin: 25px auto;
-  padding: 15px 10px 10px;
-  border: 1px solid #ccc;
-  position: relative;
-}
-.popup-result .title {
-  position: absolute;
-  top: -28px;
-  left: 50%;
-  width: 140px;
-  font-size: 14px;
-  margin-left: -70px;
-  text-align: center;
-  line-height: 30px;
-  background: #fff;
-}
-.popup-result table {
-  text-align: center;
-  width: 100%;
-  margin: 0 auto;
-}
-.popup-result table span {
-  display: block;
-  width: 100%;
-  font-family: arial;
-  line-height: 30px;
-  height: 30px;
-  white-space: nowrap;
-  overflow: hidden;
-  border: 1px solid #e8e8e8;
-}
-.popup-result-scroll {
-  font-size: 12px;
-  line-height: 24px;
-  height: 10em;
-  overflow-y: auto;
-}
-</style>
diff --git a/ruoyi-ui/src/components/Crontab/min.vue b/ruoyi-ui/src/components/Crontab/min.vue
deleted file mode 100644
index 43cab90..0000000
--- a/ruoyi-ui/src/components/Crontab/min.vue
+++ /dev/null
@@ -1,116 +0,0 @@
-<template>
-	<el-form size="small">
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="1">
-				分钟,允许的通配符[, - * /]
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="2">
-				周期从
-				<el-input-number v-model='cycle01' :min="0" :max="58" /> -
-				<el-input-number v-model='cycle02' :min="cycle01 ? cycle01 + 1 : 1" :max="59" /> 分钟
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="3">
-				从
-				<el-input-number v-model='average01' :min="0" :max="58" /> 分钟开始,每
-				<el-input-number v-model='average02' :min="1" :max="59 - average01 || 0" /> 分钟执行一次
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="4">
-				指定
-				<el-select clearable v-model="checkboxList" placeholder="可多选" multiple style="width:100%">
-					<el-option v-for="item in 60" :key="item" :value="item-1">{{item-1}}</el-option>
-				</el-select>
-			</el-radio>
-		</el-form-item>
-	</el-form>
-
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			radioValue: 1,
-			cycle01: 1,
-			cycle02: 2,
-			average01: 0,
-			average02: 1,
-			checkboxList: [],
-			checkNum: this.$options.propsData.check
-		}
-	},
-	name: 'crontab-min',
-	props: ['check', 'cron'],
-	methods: {
-		// 单选按钮值变化时
-		radioChange() {
-			switch (this.radioValue) {
-				case 1:
-					this.$emit('update', 'min', '*', 'min');
-					break;
-				case 2:
-					this.$emit('update', 'min', this.cycleTotal, 'min');
-					break;
-				case 3:
-					this.$emit('update', 'min', this.averageTotal, 'min');
-					break;
-				case 4:
-					this.$emit('update', 'min', this.checkboxString, 'min');
-					break;
-			}
-		},
-		// 周期两个值变化时
-		cycleChange() {
-			if (this.radioValue == '2') {
-				this.$emit('update', 'min', this.cycleTotal, 'min');
-			}
-		},
-		// 平均两个值变化时
-		averageChange() {
-			if (this.radioValue == '3') {
-				this.$emit('update', 'min', this.averageTotal, 'min');
-			}
-		},
-		// checkbox值变化时
-		checkboxChange() {
-			if (this.radioValue == '4') {
-				this.$emit('update', 'min', this.checkboxString, 'min');
-			}
-		},
-
-	},
-	watch: {
-		'radioValue': 'radioChange',
-		'cycleTotal': 'cycleChange',
-		'averageTotal': 'averageChange',
-		'checkboxString': 'checkboxChange',
-	},
-	computed: {
-		// 计算两个周期值
-		cycleTotal: function () {
-			const cycle01 = this.checkNum(this.cycle01, 0, 58)
-			const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 1, 59)
-			return cycle01 + '-' + cycle02;
-		},
-		// 计算平均用到的值
-		averageTotal: function () {
-			const average01 = this.checkNum(this.average01, 0, 58)
-			const average02 = this.checkNum(this.average02, 1, 59 - average01 || 0)
-			return average01 + '/' + average02;
-		},
-		// 计算勾选的checkbox值合集
-		checkboxString: function () {
-			let str = this.checkboxList.join();
-			return str == '' ? '*' : str;
-		}
-	}
-}
-</script>
\ No newline at end of file
diff --git a/ruoyi-ui/src/components/Crontab/month.vue b/ruoyi-ui/src/components/Crontab/month.vue
deleted file mode 100644
index fd0ac38..0000000
--- a/ruoyi-ui/src/components/Crontab/month.vue
+++ /dev/null
@@ -1,114 +0,0 @@
-<template>
-	<el-form size='small'>
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="1">
-				月,允许的通配符[, - * /]
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="2">
-				周期从
-				<el-input-number v-model='cycle01' :min="1" :max="11" /> -
-				<el-input-number v-model='cycle02' :min="cycle01 ? cycle01 + 1 : 2" :max="12" /> 月
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="3">
-				从
-				<el-input-number v-model='average01' :min="1" :max="11" /> 月开始,每
-				<el-input-number v-model='average02' :min="1" :max="12 - average01 || 0" /> 月月执行一次
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="4">
-				指定
-				<el-select clearable v-model="checkboxList" placeholder="可多选" multiple style="width:100%">
-					<el-option v-for="item in 12" :key="item" :value="item">{{item}}</el-option>
-				</el-select>
-			</el-radio>
-		</el-form-item>
-	</el-form>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			radioValue: 1,
-			cycle01: 1,
-			cycle02: 2,
-			average01: 1,
-			average02: 1,
-			checkboxList: [],
-			checkNum: this.check
-		}
-	},
-	name: 'crontab-month',
-	props: ['check', 'cron'],
-	methods: {
-		// 单选按钮值变化时
-		radioChange() {
-			switch (this.radioValue) {
-				case 1:
-					this.$emit('update', 'month', '*');
-					break;
-				case 2:
-					this.$emit('update', 'month', this.cycleTotal);
-					break;
-				case 3:
-					this.$emit('update', 'month', this.averageTotal);
-					break;
-				case 4:
-					this.$emit('update', 'month', this.checkboxString);
-					break;
-			}
-		},
-		// 周期两个值变化时
-		cycleChange() {
-			if (this.radioValue == '2') {
-				this.$emit('update', 'month', this.cycleTotal);
-			}
-		},
-		// 平均两个值变化时
-		averageChange() {
-			if (this.radioValue == '3') {
-				this.$emit('update', 'month', this.averageTotal);
-			}
-		},
-		// checkbox值变化时
-		checkboxChange() {
-			if (this.radioValue == '4') {
-				this.$emit('update', 'month', this.checkboxString);
-			}
-		}
-	},
-	watch: {
-		'radioValue': 'radioChange',
-		'cycleTotal': 'cycleChange',
-		'averageTotal': 'averageChange',
-		'checkboxString': 'checkboxChange'
-	},
-	computed: {
-		// 计算两个周期值
-		cycleTotal: function () {
-			const cycle01 = this.checkNum(this.cycle01, 1, 11)
-			const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 2, 12)
-			return cycle01 + '-' + cycle02;
-		},
-		// 计算平均用到的值
-		averageTotal: function () {
-			const average01 = this.checkNum(this.average01, 1, 11)
-			const average02 = this.checkNum(this.average02, 1, 12 - average01 || 0)
-			return average01 + '/' + average02;
-		},
-		// 计算勾选的checkbox值合集
-		checkboxString: function () {
-			let str = this.checkboxList.join();
-			return str == '' ? '*' : str;
-		}
-	}
-}
-</script>
diff --git a/ruoyi-ui/src/components/Crontab/result.vue b/ruoyi-ui/src/components/Crontab/result.vue
deleted file mode 100644
index aea6e0e..0000000
--- a/ruoyi-ui/src/components/Crontab/result.vue
+++ /dev/null
@@ -1,559 +0,0 @@
-<template>
-	<div class="popup-result">
-		<p class="title">最近5次运行时间</p>
-		<ul class="popup-result-scroll">
-			<template v-if='isShow'>
-				<li v-for='item in resultList' :key="item">{{item}}</li>
-			</template>
-			<li v-else>计算结果中...</li>
-		</ul>
-	</div>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			dayRule: '',
-			dayRuleSup: '',
-			dateArr: [],
-			resultList: [],
-			isShow: false
-		}
-	},
-	name: 'crontab-result',
-	methods: {
-		// 表达式值变化时,开始去计算结果
-		expressionChange() {
-
-			// 计算开始-隐藏结果
-			this.isShow = false;
-			// 获取规则数组[0秒、1分、2时、3日、4月、5星期、6年]
-			let ruleArr = this.$options.propsData.ex.split(' ');
-			// 用于记录进入循环的次数
-			let nums = 0;
-			// 用于暂时存符号时间规则结果的数组
-			let resultArr = [];
-			// 获取当前时间精确至[年、月、日、时、分、秒]
-			let nTime = new Date();
-			let nYear = nTime.getFullYear();
-			let nMonth = nTime.getMonth() + 1;
-			let nDay = nTime.getDate();
-			let nHour = nTime.getHours();
-			let nMin = nTime.getMinutes();
-			let nSecond = nTime.getSeconds();
-			// 根据规则获取到近100年可能年数组、月数组等等
-			this.getSecondArr(ruleArr[0]);
-			this.getMinArr(ruleArr[1]);
-			this.getHourArr(ruleArr[2]);
-			this.getDayArr(ruleArr[3]);
-			this.getMonthArr(ruleArr[4]);
-			this.getWeekArr(ruleArr[5]);
-			this.getYearArr(ruleArr[6], nYear);
-			// 将获取到的数组赋值-方便使用
-			let sDate = this.dateArr[0];
-			let mDate = this.dateArr[1];
-			let hDate = this.dateArr[2];
-			let DDate = this.dateArr[3];
-			let MDate = this.dateArr[4];
-			let YDate = this.dateArr[5];
-			// 获取当前时间在数组中的索引
-			let sIdx = this.getIndex(sDate, nSecond);
-			let mIdx = this.getIndex(mDate, nMin);
-			let hIdx = this.getIndex(hDate, nHour);
-			let DIdx = this.getIndex(DDate, nDay);
-			let MIdx = this.getIndex(MDate, nMonth);
-			let YIdx = this.getIndex(YDate, nYear);
-			// 重置月日时分秒的函数(后面用的比较多)
-			const resetSecond = function () {
-				sIdx = 0;
-				nSecond = sDate[sIdx]
-			}
-			const resetMin = function () {
-				mIdx = 0;
-				nMin = mDate[mIdx]
-				resetSecond();
-			}
-			const resetHour = function () {
-				hIdx = 0;
-				nHour = hDate[hIdx]
-				resetMin();
-			}
-			const resetDay = function () {
-				DIdx = 0;
-				nDay = DDate[DIdx]
-				resetHour();
-			}
-			const resetMonth = function () {
-				MIdx = 0;
-				nMonth = MDate[MIdx]
-				resetDay();
-			}
-			// 如果当前年份不为数组中当前值
-			if (nYear !== YDate[YIdx]) {
-				resetMonth();
-			}
-			// 如果当前月份不为数组中当前值
-			if (nMonth !== MDate[MIdx]) {
-				resetDay();
-			}
-			// 如果当前“日”不为数组中当前值
-			if (nDay !== DDate[DIdx]) {
-				resetHour();
-			}
-			// 如果当前“时”不为数组中当前值
-			if (nHour !== hDate[hIdx]) {
-				resetMin();
-			}
-			// 如果当前“分”不为数组中当前值
-			if (nMin !== mDate[mIdx]) {
-				resetSecond();
-			}
-
-			// 循环年份数组
-			goYear: for (let Yi = YIdx; Yi < YDate.length; Yi++) {
-				let YY = YDate[Yi];
-				// 如果到达最大值时
-				if (nMonth > MDate[MDate.length - 1]) {
-					resetMonth();
-					continue;
-				}
-				// 循环月份数组
-				goMonth: for (let Mi = MIdx; Mi < MDate.length; Mi++) {
-					// 赋值、方便后面运算
-					let MM = MDate[Mi];
-					MM = MM < 10 ? '0' + MM : MM;
-					// 如果到达最大值时
-					if (nDay > DDate[DDate.length - 1]) {
-						resetDay();
-						if (Mi == MDate.length - 1) {
-							resetMonth();
-							continue goYear;
-						}
-						continue;
-					}
-					// 循环日期数组
-					goDay: for (let Di = DIdx; Di < DDate.length; Di++) {
-						// 赋值、方便后面运算
-						let DD = DDate[Di];
-						let thisDD = DD < 10 ? '0' + DD : DD;
-
-						// 如果到达最大值时
-						if (nHour > hDate[hDate.length - 1]) {
-							resetHour();
-							if (Di == DDate.length - 1) {
-								resetDay();
-								if (Mi == MDate.length - 1) {
-									resetMonth();
-									continue goYear;
-								}
-								continue goMonth;
-							}
-							continue;
-						}
-
-						// 判断日期的合法性,不合法的话也是跳出当前循环
-						if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true && this.dayRule !== 'workDay' && this.dayRule !== 'lastWeek' && this.dayRule !== 'lastDay') {
-							resetDay();
-							continue goMonth;
-						}
-						// 如果日期规则中有值时
-						if (this.dayRule == 'lastDay') {
-							// 如果不是合法日期则需要将前将日期调到合法日期即月末最后一天
-
-							if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
-								while (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
-									DD--;
-
-									thisDD = DD < 10 ? '0' + DD : DD;
-								}
-							}
-						} else if (this.dayRule == 'workDay') {
-							// 校验并调整如果是2月30号这种日期传进来时需调整至正常月底
-							if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
-								while (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
-									DD--;
-									thisDD = DD < 10 ? '0' + DD : DD;
-								}
-							}
-							// 获取达到条件的日期是星期X
-							let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week');
-							// 当星期日时
-							if (thisWeek == 1) {
-								// 先找下一个日,并判断是否为月底
-								DD++;
-								thisDD = DD < 10 ? '0' + DD : DD;
-								// 判断下一日已经不是合法日期
-								if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
-									DD -= 3;
-								}
-							} else if (thisWeek == 7) {
-								// 当星期6时只需判断不是1号就可进行操作
-								if (this.dayRuleSup !== 1) {
-									DD--;
-								} else {
-									DD += 2;
-								}
-							}
-						} else if (this.dayRule == 'weekDay') {
-							// 如果指定了是星期几
-							// 获取当前日期是属于星期几
-							let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week');
-							// 校验当前星期是否在星期池(dayRuleSup)中
-							if (this.dayRuleSup.indexOf(thisWeek) < 0) {
-								// 如果到达最大值时
-								if (Di == DDate.length - 1) {
-									resetDay();
-									if (Mi == MDate.length - 1) {
-										resetMonth();
-										continue goYear;
-									}
-									continue goMonth;
-								}
-								continue;
-							}
-						} else if (this.dayRule == 'assWeek') {
-							// 如果指定了是第几周的星期几
-							// 获取每月1号是属于星期几
-							let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week');
-							if (this.dayRuleSup[1] >= thisWeek) {
-								DD = (this.dayRuleSup[0] - 1) * 7 + this.dayRuleSup[1] - thisWeek + 1;
-							} else {
-								DD = this.dayRuleSup[0] * 7 + this.dayRuleSup[1] - thisWeek + 1;
-							}
-						} else if (this.dayRule == 'lastWeek') {
-							// 如果指定了每月最后一个星期几
-							// 校验并调整如果是2月30号这种日期传进来时需调整至正常月底
-							if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
-								while (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
-									DD--;
-									thisDD = DD < 10 ? '0' + DD : DD;
-								}
-							}
-							// 获取月末最后一天是星期几
-							let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week');
-							// 找到要求中最近的那个星期几
-							if (this.dayRuleSup < thisWeek) {
-								DD -= thisWeek - this.dayRuleSup;
-							} else if (this.dayRuleSup > thisWeek) {
-								DD -= 7 - (this.dayRuleSup - thisWeek)
-							}
-						}
-						// 判断时间值是否小于10置换成“05”这种格式
-						DD = DD < 10 ? '0' + DD : DD;
-
-						// 循环“时”数组
-						goHour: for (let hi = hIdx; hi < hDate.length; hi++) {
-							let hh = hDate[hi] < 10 ? '0' + hDate[hi] : hDate[hi]
-
-							// 如果到达最大值时
-							if (nMin > mDate[mDate.length - 1]) {
-								resetMin();
-								if (hi == hDate.length - 1) {
-									resetHour();
-									if (Di == DDate.length - 1) {
-										resetDay();
-										if (Mi == MDate.length - 1) {
-											resetMonth();
-											continue goYear;
-										}
-										continue goMonth;
-									}
-									continue goDay;
-								}
-								continue;
-							}
-							// 循环"分"数组
-							goMin: for (let mi = mIdx; mi < mDate.length; mi++) {
-								let mm = mDate[mi] < 10 ? '0' + mDate[mi] : mDate[mi];
-
-								// 如果到达最大值时
-								if (nSecond > sDate[sDate.length - 1]) {
-									resetSecond();
-									if (mi == mDate.length - 1) {
-										resetMin();
-										if (hi == hDate.length - 1) {
-											resetHour();
-											if (Di == DDate.length - 1) {
-												resetDay();
-												if (Mi == MDate.length - 1) {
-													resetMonth();
-													continue goYear;
-												}
-												continue goMonth;
-											}
-											continue goDay;
-										}
-										continue goHour;
-									}
-									continue;
-								}
-								// 循环"秒"数组
-								goSecond: for (let si = sIdx; si <= sDate.length - 1; si++) {
-									let ss = sDate[si] < 10 ? '0' + sDate[si] : sDate[si];
-									// 添加当前时间(时间合法性在日期循环时已经判断)
-									if (MM !== '00' && DD !== '00') {
-										resultArr.push(YY + '-' + MM + '-' + DD + ' ' + hh + ':' + mm + ':' + ss)
-										nums++;
-									}
-									// 如果条数满了就退出循环
-									if (nums == 5) break goYear;
-									// 如果到达最大值时
-									if (si == sDate.length - 1) {
-										resetSecond();
-										if (mi == mDate.length - 1) {
-											resetMin();
-											if (hi == hDate.length - 1) {
-												resetHour();
-												if (Di == DDate.length - 1) {
-													resetDay();
-													if (Mi == MDate.length - 1) {
-														resetMonth();
-														continue goYear;
-													}
-													continue goMonth;
-												}
-												continue goDay;
-											}
-											continue goHour;
-										}
-										continue goMin;
-									}
-								} //goSecond
-							} //goMin
-						}//goHour
-					}//goDay
-				}//goMonth
-			}
-			// 判断100年内的结果条数
-			if (resultArr.length == 0) {
-				this.resultList = ['没有达到条件的结果!'];
-			} else {
-				this.resultList = resultArr;
-				if (resultArr.length !== 5) {
-					this.resultList.push('最近100年内只有上面' + resultArr.length + '条结果!')
-				}
-			}
-			// 计算完成-显示结果
-			this.isShow = true;
-
-
-		},
-		// 用于计算某位数字在数组中的索引
-		getIndex(arr, value) {
-			if (value <= arr[0] || value > arr[arr.length - 1]) {
-				return 0;
-			} else {
-				for (let i = 0; i < arr.length - 1; i++) {
-					if (value > arr[i] && value <= arr[i + 1]) {
-						return i + 1;
-					}
-				}
-			}
-		},
-		// 获取"年"数组
-		getYearArr(rule, year) {
-			this.dateArr[5] = this.getOrderArr(year, year + 100);
-			if (rule !== undefined) {
-				if (rule.indexOf('-') >= 0) {
-					this.dateArr[5] = this.getCycleArr(rule, year + 100, false)
-				} else if (rule.indexOf('/') >= 0) {
-					this.dateArr[5] = this.getAverageArr(rule, year + 100)
-				} else if (rule !== '*') {
-					this.dateArr[5] = this.getAssignArr(rule)
-				}
-			}
-		},
-		// 获取"月"数组
-		getMonthArr(rule) {
-			this.dateArr[4] = this.getOrderArr(1, 12);
-			if (rule.indexOf('-') >= 0) {
-				this.dateArr[4] = this.getCycleArr(rule, 12, false)
-			} else if (rule.indexOf('/') >= 0) {
-				this.dateArr[4] = this.getAverageArr(rule, 12)
-			} else if (rule !== '*') {
-				this.dateArr[4] = this.getAssignArr(rule)
-			}
-		},
-		// 获取"日"数组-主要为日期规则
-		getWeekArr(rule) {
-			// 只有当日期规则的两个值均为“”时则表达日期是有选项的
-			if (this.dayRule == '' && this.dayRuleSup == '') {
-				if (rule.indexOf('-') >= 0) {
-					this.dayRule = 'weekDay';
-					this.dayRuleSup = this.getCycleArr(rule, 7, false)
-				} else if (rule.indexOf('#') >= 0) {
-					this.dayRule = 'assWeek';
-					let matchRule = rule.match(/[0-9]{1}/g);
-					this.dayRuleSup = [Number(matchRule[1]), Number(matchRule[0])];
-					this.dateArr[3] = [1];
-					if (this.dayRuleSup[1] == 7) {
-						this.dayRuleSup[1] = 0;
-					}
-				} else if (rule.indexOf('L') >= 0) {
-					this.dayRule = 'lastWeek';
-					this.dayRuleSup = Number(rule.match(/[0-9]{1,2}/g)[0]);
-					this.dateArr[3] = [31];
-					if (this.dayRuleSup == 7) {
-						this.dayRuleSup = 0;
-					}
-				} else if (rule !== '*' && rule !== '?') {
-					this.dayRule = 'weekDay';
-					this.dayRuleSup = this.getAssignArr(rule)
-				}
-			}
-		},
-		// 获取"日"数组-少量为日期规则
-		getDayArr(rule) {
-			this.dateArr[3] = this.getOrderArr(1, 31);
-			this.dayRule = '';
-			this.dayRuleSup = '';
-			if (rule.indexOf('-') >= 0) {
-				this.dateArr[3] = this.getCycleArr(rule, 31, false)
-				this.dayRuleSup = 'null';
-			} else if (rule.indexOf('/') >= 0) {
-				this.dateArr[3] = this.getAverageArr(rule, 31)
-				this.dayRuleSup = 'null';
-			} else if (rule.indexOf('W') >= 0) {
-				this.dayRule = 'workDay';
-				this.dayRuleSup = Number(rule.match(/[0-9]{1,2}/g)[0]);
-				this.dateArr[3] = [this.dayRuleSup];
-			} else if (rule.indexOf('L') >= 0) {
-				this.dayRule = 'lastDay';
-				this.dayRuleSup = 'null';
-				this.dateArr[3] = [31];
-			} else if (rule !== '*' && rule !== '?') {
-				this.dateArr[3] = this.getAssignArr(rule)
-				this.dayRuleSup = 'null';
-			} else if (rule == '*') {
-				this.dayRuleSup = 'null';
-			}
-		},
-		// 获取"时"数组
-		getHourArr(rule) {
-			this.dateArr[2] = this.getOrderArr(0, 23);
-			if (rule.indexOf('-') >= 0) {
-				this.dateArr[2] = this.getCycleArr(rule, 24, true)
-			} else if (rule.indexOf('/') >= 0) {
-				this.dateArr[2] = this.getAverageArr(rule, 23)
-			} else if (rule !== '*') {
-				this.dateArr[2] = this.getAssignArr(rule)
-			}
-		},
-		// 获取"分"数组
-		getMinArr(rule) {
-			this.dateArr[1] = this.getOrderArr(0, 59);
-			if (rule.indexOf('-') >= 0) {
-				this.dateArr[1] = this.getCycleArr(rule, 60, true)
-			} else if (rule.indexOf('/') >= 0) {
-				this.dateArr[1] = this.getAverageArr(rule, 59)
-			} else if (rule !== '*') {
-				this.dateArr[1] = this.getAssignArr(rule)
-			}
-		},
-		// 获取"秒"数组
-		getSecondArr(rule) {
-			this.dateArr[0] = this.getOrderArr(0, 59);
-			if (rule.indexOf('-') >= 0) {
-				this.dateArr[0] = this.getCycleArr(rule, 60, true)
-			} else if (rule.indexOf('/') >= 0) {
-				this.dateArr[0] = this.getAverageArr(rule, 59)
-			} else if (rule !== '*') {
-				this.dateArr[0] = this.getAssignArr(rule)
-			}
-		},
-		// 根据传进来的min-max返回一个顺序的数组
-		getOrderArr(min, max) {
-			let arr = [];
-			for (let i = min; i <= max; i++) {
-				arr.push(i);
-			}
-			return arr;
-		},
-		// 根据规则中指定的零散值返回一个数组
-		getAssignArr(rule) {
-			let arr = [];
-			let assiginArr = rule.split(',');
-			for (let i = 0; i < assiginArr.length; i++) {
-				arr[i] = Number(assiginArr[i])
-			}
-			arr.sort(this.compare)
-			return arr;
-		},
-		// 根据一定算术规则计算返回一个数组
-		getAverageArr(rule, limit) {
-			let arr = [];
-			let agArr = rule.split('/');
-			let min = Number(agArr[0]);
-			let step = Number(agArr[1]);
-			while (min <= limit) {
-				arr.push(min);
-				min += step;
-			}
-			return arr;
-		},
-		// 根据规则返回一个具有周期性的数组
-		getCycleArr(rule, limit, status) {
-			// status--表示是否从0开始(则从1开始)
-			let arr = [];
-			let cycleArr = rule.split('-');
-			let min = Number(cycleArr[0]);
-			let max = Number(cycleArr[1]);
-			if (min > max) {
-				max += limit;
-			}
-			for (let i = min; i <= max; i++) {
-				let add = 0;
-				if (status == false && i % limit == 0) {
-					add = limit;
-				}
-				arr.push(Math.round(i % limit + add))
-			}
-			arr.sort(this.compare)
-			return arr;
-		},
-		// 比较数字大小(用于Array.sort)
-		compare(value1, value2) {
-			if (value2 - value1 > 0) {
-				return -1;
-			} else {
-				return 1;
-			}
-		},
-		// 格式化日期格式如:2017-9-19 18:04:33
-		formatDate(value, type) {
-			// 计算日期相关值
-			let time = typeof value == 'number' ? new Date(value) : value;
-			let Y = time.getFullYear();
-			let M = time.getMonth() + 1;
-			let D = time.getDate();
-			let h = time.getHours();
-			let m = time.getMinutes();
-			let s = time.getSeconds();
-			let week = time.getDay();
-			// 如果传递了type的话
-			if (type == undefined) {
-				return Y + '-' + (M < 10 ? '0' + M : M) + '-' + (D < 10 ? '0' + D : D) + ' ' + (h < 10 ? '0' + h : h) + ':' + (m < 10 ? '0' + m : m) + ':' + (s < 10 ? '0' + s : s);
-			} else if (type == 'week') {
-				// 在quartz中 1为星期日
-				return week + 1;
-			}
-		},
-		// 检查日期是否存在
-		checkDate(value) {
-			let time = new Date(value);
-			let format = this.formatDate(time)
-			return value === format;
-		}
-	},
-	watch: {
-		'ex': 'expressionChange'
-	},
-	props: ['ex'],
-	mounted: function () {
-		// 初始化 获取一次结果
-		this.expressionChange();
-	}
-}
-
-</script>
diff --git a/ruoyi-ui/src/components/Crontab/second.vue b/ruoyi-ui/src/components/Crontab/second.vue
deleted file mode 100644
index e7b7761..0000000
--- a/ruoyi-ui/src/components/Crontab/second.vue
+++ /dev/null
@@ -1,117 +0,0 @@
-<template>
-	<el-form size="small">
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="1">
-				秒,允许的通配符[, - * /]
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="2">
-				周期从
-				<el-input-number v-model='cycle01' :min="0" :max="58" /> -
-				<el-input-number v-model='cycle02' :min="cycle01 ? cycle01 + 1 : 1" :max="59" /> 秒
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="3">
-				从
-				<el-input-number v-model='average01' :min="0" :max="58" /> 秒开始,每
-				<el-input-number v-model='average02' :min="1" :max="59 - average01 || 0" /> 秒执行一次
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="4">
-				指定
-				<el-select clearable v-model="checkboxList" placeholder="可多选" multiple style="width:100%">
-					<el-option v-for="item in 60" :key="item" :value="item-1">{{item-1}}</el-option>
-				</el-select>
-			</el-radio>
-		</el-form-item>
-	</el-form>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			radioValue: 1,
-			cycle01: 1,
-			cycle02: 2,
-			average01: 0,
-			average02: 1,
-			checkboxList: [],
-			checkNum: this.$options.propsData.check
-		}
-	},
-	name: 'crontab-second',
-	props: ['check', 'radioParent'],
-	methods: {
-		// 单选按钮值变化时
-		radioChange() {
-			switch (this.radioValue) {
-				case 1:
-					this.$emit('update', 'second', '*', 'second');
-					break;
-				case 2:
-					this.$emit('update', 'second', this.cycleTotal);
-					break;
-				case 3:
-					this.$emit('update', 'second', this.averageTotal);
-					break;
-				case 4:
-					this.$emit('update', 'second', this.checkboxString);
-					break;
-			}
-		},
-		// 周期两个值变化时
-		cycleChange() {
-			if (this.radioValue == '2') {
-				this.$emit('update', 'second', this.cycleTotal);
-			}
-		},
-		// 平均两个值变化时
-		averageChange() {
-			if (this.radioValue == '3') {
-				this.$emit('update', 'second', this.averageTotal);
-			}
-		},
-		// checkbox值变化时
-		checkboxChange() {
-			if (this.radioValue == '4') {
-				this.$emit('update', 'second', this.checkboxString);
-			}
-		}
-	},
-	watch: {
-		'radioValue': 'radioChange',
-		'cycleTotal': 'cycleChange',
-		'averageTotal': 'averageChange',
-		'checkboxString': 'checkboxChange',
-		radioParent() {
-			this.radioValue = this.radioParent
-		}
-	},
-	computed: {
-		// 计算两个周期值
-		cycleTotal: function () {
-			const cycle01 = this.checkNum(this.cycle01, 0, 58)
-			const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 1, 59)
-			return cycle01 + '-' + cycle02;
-		},
-		// 计算平均用到的值
-		averageTotal: function () {
-			const average01 = this.checkNum(this.average01, 0, 58)
-			const average02 = this.checkNum(this.average02, 1, 59 - average01 || 0)
-			return average01 + '/' + average02;
-		},
-		// 计算勾选的checkbox值合集
-		checkboxString: function () {
-			let str = this.checkboxList.join();
-			return str == '' ? '*' : str;
-		}
-	}
-}
-</script>
diff --git a/ruoyi-ui/src/components/Crontab/week.vue b/ruoyi-ui/src/components/Crontab/week.vue
deleted file mode 100644
index 1cec700..0000000
--- a/ruoyi-ui/src/components/Crontab/week.vue
+++ /dev/null
@@ -1,202 +0,0 @@
-<template>
-	<el-form size='small'>
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="1">
-				周,允许的通配符[, - * ? / L #]
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="2">
-				不指定
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="3">
-				周期从星期
-				<el-select clearable v-model="cycle01">
-					<el-option
-						v-for="(item,index) of weekList"
-						:key="index"
-						:label="item.value"
-						:value="item.key"
-						:disabled="item.key === 1"
-					>{{item.value}}</el-option>
-				</el-select>
-				-
-				<el-select clearable v-model="cycle02">
-					<el-option
-						v-for="(item,index) of weekList"
-						:key="index"
-						:label="item.value"
-						:value="item.key"
-						:disabled="item.key < cycle01 && item.key !== 1"
-					>{{item.value}}</el-option>
-				</el-select>
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="4">
-				第
-				<el-input-number v-model='average01' :min="1" :max="4" /> 周的星期
-				<el-select clearable v-model="average02">
-					<el-option v-for="(item,index) of weekList" :key="index" :label="item.value" :value="item.key">{{item.value}}</el-option>
-				</el-select>
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="5">
-				本月最后一个星期
-				<el-select clearable v-model="weekday">
-					<el-option v-for="(item,index) of weekList" :key="index" :label="item.value" :value="item.key">{{item.value}}</el-option>
-				</el-select>
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio v-model='radioValue' :label="6">
-				指定
-				<el-select clearable v-model="checkboxList" placeholder="可多选" multiple style="width:100%">
-					<el-option v-for="(item,index) of weekList" :key="index" :label="item.value" :value="String(item.key)">{{item.value}}</el-option>
-				</el-select>
-			</el-radio>
-		</el-form-item>
-
-	</el-form>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			radioValue: 2,
-			weekday: 2,
-			cycle01: 2,
-			cycle02: 3,
-			average01: 1,
-			average02: 2,
-			checkboxList: [],
-			weekList: [
-				{
-					key: 2,
-					value: '星期一'
-				},
-				{
-					key: 3,
-					value: '星期二'
-				},
-				{
-					key: 4,
-					value: '星期三'
-				},
-				{
-					key: 5,
-					value: '星期四'
-				},
-				{
-					key: 6,
-					value: '星期五'
-				},
-				{
-					key: 7,
-					value: '星期六'
-				},
-				{
-					key: 1,
-					value: '星期日'
-				}
-			],
-			checkNum: this.$options.propsData.check
-		}
-	},
-	name: 'crontab-week',
-	props: ['check', 'cron'],
-	methods: {
-		// 单选按钮值变化时
-		radioChange() {
-			if (this.radioValue !== 2 && this.cron.day !== '?') {
-				this.$emit('update', 'day', '?', 'week');
-			}
-			switch (this.radioValue) {
-				case 1:
-					this.$emit('update', 'week', '*');
-					break;
-				case 2:
-					this.$emit('update', 'week', '?');
-					break;
-				case 3:
-					this.$emit('update', 'week', this.cycleTotal);
-					break;
-				case 4:
-					this.$emit('update', 'week', this.averageTotal);
-					break;
-				case 5:
-					this.$emit('update', 'week', this.weekdayCheck + 'L');
-					break;
-				case 6:
-					this.$emit('update', 'week', this.checkboxString);
-					break;
-			}
-		},
-
-		// 周期两个值变化时
-		cycleChange() {
-			if (this.radioValue == '3') {
-				this.$emit('update', 'week', this.cycleTotal);
-			}
-		},
-		// 平均两个值变化时
-		averageChange() {
-			if (this.radioValue == '4') {
-				this.$emit('update', 'week', this.averageTotal);
-			}
-		},
-		// 最近工作日值变化时
-		weekdayChange() {
-			if (this.radioValue == '5') {
-				this.$emit('update', 'week', this.weekday + 'L');
-			}
-		},
-		// checkbox值变化时
-		checkboxChange() {
-			if (this.radioValue == '6') {
-				this.$emit('update', 'week', this.checkboxString);
-			}
-		},
-	},
-	watch: {
-		'radioValue': 'radioChange',
-		'cycleTotal': 'cycleChange',
-		'averageTotal': 'averageChange',
-		'weekdayCheck': 'weekdayChange',
-		'checkboxString': 'checkboxChange',
-	},
-	computed: {
-		// 计算两个周期值
-		cycleTotal: function () {
-			this.cycle01 = this.checkNum(this.cycle01, 1, 7)
-			this.cycle02 = this.checkNum(this.cycle02, 1, 7)
-			return this.cycle01 + '-' + this.cycle02;
-		},
-		// 计算平均用到的值
-		averageTotal: function () {
-			this.average01 = this.checkNum(this.average01, 1, 4)
-			this.average02 = this.checkNum(this.average02, 1, 7)
-			return this.average02 + '#' + this.average01;
-		},
-		// 最近的工作日(格式)
-		weekdayCheck: function () {
-			this.weekday = this.checkNum(this.weekday, 1, 7)
-			return this.weekday;
-		},
-		// 计算勾选的checkbox值合集
-		checkboxString: function () {
-			let str = this.checkboxList.join();
-			return str == '' ? '*' : str;
-		}
-	}
-}
-</script>
diff --git a/ruoyi-ui/src/components/Crontab/year.vue b/ruoyi-ui/src/components/Crontab/year.vue
deleted file mode 100644
index 5487a6c..0000000
--- a/ruoyi-ui/src/components/Crontab/year.vue
+++ /dev/null
@@ -1,131 +0,0 @@
-<template>
-	<el-form size="small">
-		<el-form-item>
-			<el-radio :label="1" v-model='radioValue'>
-				不填,允许的通配符[, - * /]
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio :label="2" v-model='radioValue'>
-				每年
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio :label="3" v-model='radioValue'>
-				周期从
-				<el-input-number v-model='cycle01' :min='fullYear' :max="2098" /> -
-				<el-input-number v-model='cycle02' :min="cycle01 ? cycle01 + 1 : fullYear + 1" :max="2099" />
-			</el-radio>
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio :label="4" v-model='radioValue'>
-				从
-				<el-input-number v-model='average01' :min='fullYear' :max="2098"/> 年开始,每
-				<el-input-number v-model='average02' :min="1" :max="2099 - average01 || fullYear" /> 年执行一次
-			</el-radio>
-
-		</el-form-item>
-
-		<el-form-item>
-			<el-radio :label="5" v-model='radioValue'>
-				指定
-				<el-select clearable v-model="checkboxList" placeholder="可多选" multiple>
-					<el-option v-for="item in 9" :key="item" :value="item - 1 + fullYear" :label="item -1 + fullYear" />
-				</el-select>
-			</el-radio>
-		</el-form-item>
-	</el-form>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			fullYear: 0,
-			radioValue: 1,
-			cycle01: 0,
-			cycle02: 0,
-			average01: 0,
-			average02: 1,
-			checkboxList: [],
-			checkNum: this.$options.propsData.check
-		}
-	},
-	name: 'crontab-year',
-	props: ['check', 'month', 'cron'],
-	methods: {
-		// 单选按钮值变化时
-		radioChange() {
-			switch (this.radioValue) {
-				case 1:
-					this.$emit('update', 'year', '');
-					break;
-				case 2:
-					this.$emit('update', 'year', '*');
-					break;
-				case 3:
-					this.$emit('update', 'year', this.cycleTotal);
-					break;
-				case 4:
-					this.$emit('update', 'year', this.averageTotal);
-					break;
-				case 5:
-					this.$emit('update', 'year', this.checkboxString);
-					break;
-			}
-		},
-		// 周期两个值变化时
-		cycleChange() {
-			if (this.radioValue == '3') {
-				this.$emit('update', 'year', this.cycleTotal);
-			}
-		},
-		// 平均两个值变化时
-		averageChange() {
-			if (this.radioValue == '4') {
-				this.$emit('update', 'year', this.averageTotal);
-			}
-		},
-		// checkbox值变化时
-		checkboxChange() {
-			if (this.radioValue == '5') {
-				this.$emit('update', 'year', this.checkboxString);
-			}
-		}
-	},
-	watch: {
-		'radioValue': 'radioChange',
-		'cycleTotal': 'cycleChange',
-		'averageTotal': 'averageChange',
-		'checkboxString': 'checkboxChange'
-	},
-	computed: {
-		// 计算两个周期值
-		cycleTotal: function () {
-			const cycle01 = this.checkNum(this.cycle01, this.fullYear, 2098)
-			const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : this.fullYear + 1, 2099)
-			return cycle01 + '-' + cycle02;
-		},
-		// 计算平均用到的值
-		averageTotal: function () {
-			const average01 = this.checkNum(this.average01, this.fullYear, 2098)
-			const average02 = this.checkNum(this.average02, 1, 2099 - average01 || this.fullYear)
-			return average01 + '/' + average02;
-		},
-		// 计算勾选的checkbox值合集
-		checkboxString: function () {
-			let str = this.checkboxList.join();
-			return str;
-		}
-	},
-	mounted: function () {
-		// 仅获取当前年份
-		this.fullYear = Number(new Date().getFullYear());
-		this.cycle01 = this.fullYear
-		this.average01 = this.fullYear
-	}
-}
-</script>
diff --git a/ruoyi-ui/src/components/DictData/index.js b/ruoyi-ui/src/components/DictData/index.js
deleted file mode 100644
index 7b85d4a..0000000
--- a/ruoyi-ui/src/components/DictData/index.js
+++ /dev/null
@@ -1,49 +0,0 @@
-import Vue from 'vue'
-import store from '@/store'
-import DataDict from '@/utils/dict'
-import { getDicts as getDicts } from '@/api/system/dict/data'
-
-function searchDictByKey(dict, key) {
-  if (key == null && key == "") {
-    return null
-  }
-  try {
-    for (let i = 0; i < dict.length; i++) {
-      if (dict[i].key == key) {
-        return dict[i].value
-      }
-    }
-  } catch (e) {
-    return null
-  }
-}
-
-function install() {
-  Vue.use(DataDict, {
-    metas: {
-      '*': {
-        labelField: 'dictLabel',
-        valueField: 'dictValue',
-        request(dictMeta) {
-          const storeDict = searchDictByKey(store.getters.dict, dictMeta.type)
-          if (storeDict) {
-            return new Promise(resolve => { resolve(storeDict) })
-          } else {
-            return new Promise((resolve, reject) => {
-              getDicts(dictMeta.type).then(res => {
-                store.dispatch('dict/setDict', { key: dictMeta.type, value: res.data })
-                resolve(res.data)
-              }).catch(error => {
-                reject(error)
-              })
-            })
-          }
-        },
-      },
-    },
-  })
-}
-
-export default {
-  install,
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/components/DictTag/index.vue b/ruoyi-ui/src/components/DictTag/index.vue
deleted file mode 100644
index 6b5b230..0000000
--- a/ruoyi-ui/src/components/DictTag/index.vue
+++ /dev/null
@@ -1,89 +0,0 @@
-<template>
-  <div>
-    <template v-for="(item, index) in options">
-      <template v-if="values.includes(item.value)">
-        <span
-          v-if="(item.raw.listClass == 'default' || item.raw.listClass == '') && (item.raw.cssClass == '' || item.raw.cssClass == null)"
-          :key="item.value"
-          :index="index"
-          :class="item.raw.cssClass"
-          >{{ item.label + ' ' }}</span
-        >
-        <el-tag
-          v-else
-          :disable-transitions="true"
-          :key="item.value"
-          :index="index"
-          :type="item.raw.listClass == 'primary' ? '' : item.raw.listClass"
-          :class="item.raw.cssClass"
-        >
-          {{ item.label + ' ' }}
-        </el-tag>
-      </template>
-    </template>
-    <template v-if="unmatch && showValue">
-      {{ unmatchArray | handleArray }}
-    </template>
-  </div>
-</template>
-
-<script>
-export default {
-  name: "DictTag",
-  props: {
-    options: {
-      type: Array,
-      default: null,
-    },
-    value: [Number, String, Array],
-    // 当未找到匹配的数据时,显示value
-    showValue: {
-      type: Boolean,
-      default: true,
-    },
-    separator: {
-      type: String,
-      default: ","
-    }
-  },
-  data() {
-    return {
-      unmatchArray: [], // 记录未匹配的项
-    }
-  },
-  computed: {
-    values() {
-      if (this.value === null || typeof this.value === 'undefined' || this.value === '') return []
-      return Array.isArray(this.value) ? this.value.map(item => '' + item) : String(this.value).split(this.separator)
-    },
-    unmatch() {
-      this.unmatchArray = []
-      // 没有value不显示
-      if (this.value === null || typeof this.value === 'undefined' || this.value === '' || this.options.length === 0) return false
-      // 传入值为数组
-      let unmatch = false // 添加一个标志来判断是否有未匹配项
-      this.values.forEach(item => {
-        if (!this.options.some(v => v.value === item)) {
-          this.unmatchArray.push(item)
-          unmatch = true // 如果有未匹配项,将标志设置为true
-        }
-      })
-      return unmatch // 返回标志的值
-    },
-
-  },
-  filters: {
-    handleArray(array) {
-      if (array.length === 0) return '';
-      return array.reduce((pre, cur) => {
-        return pre + ' ' + cur;
-      })
-    },
-  }
-};
-</script>
-<style scoped>
-.el-tag + .el-tag {
-  margin-left: 10px;
-}
-</style>
diff --git a/ruoyi-ui/src/components/Editor/index.vue b/ruoyi-ui/src/components/Editor/index.vue
deleted file mode 100644
index 8981d76..0000000
--- a/ruoyi-ui/src/components/Editor/index.vue
+++ /dev/null
@@ -1,274 +0,0 @@
-<template>
-  <div>
-    <el-upload
-      :action="uploadUrl"
-      :before-upload="handleBeforeUpload"
-      :on-success="handleUploadSuccess"
-      :on-error="handleUploadError"
-      name="file"
-      :show-file-list="false"
-      :headers="headers"
-      style="display: none"
-      ref="upload"
-      v-if="this.type == 'url'"
-    >
-    </el-upload>
-    <div class="editor" ref="editor" :style="styles"></div>
-  </div>
-</template>
-
-<script>
-import Quill from "quill";
-import "quill/dist/quill.core.css";
-import "quill/dist/quill.snow.css";
-import "quill/dist/quill.bubble.css";
-import { getToken } from "@/utils/auth";
-
-export default {
-  name: "Editor",
-  props: {
-    /* 编辑器的内容 */
-    value: {
-      type: String,
-      default: "",
-    },
-    /* 高度 */
-    height: {
-      type: Number,
-      default: null,
-    },
-    /* 最小高度 */
-    minHeight: {
-      type: Number,
-      default: null,
-    },
-    /* 只读 */
-    readOnly: {
-      type: Boolean,
-      default: false,
-    },
-    /* 上传文件大小限制(MB) */
-    fileSize: {
-      type: Number,
-      default: 5,
-    },
-    /* 类型(base64格式、url格式) */
-    type: {
-      type: String,
-      default: "url",
-    }
-  },
-  data() {
-    return {
-      uploadUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
-      headers: {
-        Authorization: "Bearer " + getToken()
-      },
-      Quill: null,
-      currentValue: "",
-      options: {
-        theme: "snow",
-        bounds: document.body,
-        debug: "warn",
-        modules: {
-          // 工具栏配置
-          toolbar: [
-            ["bold", "italic", "underline", "strike"],       // 加粗 斜体 下划线 删除线
-            ["blockquote", "code-block"],                    // 引用  代码块
-            [{ list: "ordered" }, { list: "bullet" }],       // 有序、无序列表
-            [{ indent: "-1" }, { indent: "+1" }],            // 缩进
-            [{ size: ["small", false, "large", "huge"] }],   // 字体大小
-            [{ header: [1, 2, 3, 4, 5, 6, false] }],         // 标题
-            [{ color: [] }, { background: [] }],             // 字体颜色、字体背景颜色
-            [{ align: [] }],                                 // 对齐方式
-            ["clean"],                                       // 清除文本格式
-            ["link", "image", "video"]                       // 链接、图片、视频
-          ],
-        },
-        placeholder: "请输入内容",
-        readOnly: this.readOnly,
-      },
-    };
-  },
-  computed: {
-    styles() {
-      let style = {};
-      if (this.minHeight) {
-        style.minHeight = `${this.minHeight}px`;
-      }
-      if (this.height) {
-        style.height = `${this.height}px`;
-      }
-      return style;
-    },
-  },
-  watch: {
-    value: {
-      handler(val) {
-        if (val !== this.currentValue) {
-          this.currentValue = val === null ? "" : val;
-          if (this.Quill) {
-            this.Quill.pasteHTML(this.currentValue);
-          }
-        }
-      },
-      immediate: true,
-    },
-  },
-  mounted() {
-    this.init();
-  },
-  beforeDestroy() {
-    this.Quill = null;
-  },
-  methods: {
-    init() {
-      const editor = this.$refs.editor;
-      this.Quill = new Quill(editor, this.options);
-      // 如果设置了上传地址则自定义图片上传事件
-      if (this.type == 'url') {
-        let toolbar = this.Quill.getModule("toolbar");
-        toolbar.addHandler("image", (value) => {
-          if (value) {
-            this.$refs.upload.$children[0].$refs.input.click();
-          } else {
-            this.quill.format("image", false);
-          }
-        });
-      }
-      this.Quill.pasteHTML(this.currentValue);
-      this.Quill.on("text-change", (delta, oldDelta, source) => {
-        const html = this.$refs.editor.children[0].innerHTML;
-        const text = this.Quill.getText();
-        const quill = this.Quill;
-        this.currentValue = html;
-        this.$emit("input", html);
-        this.$emit("on-change", { html, text, quill });
-      });
-      this.Quill.on("text-change", (delta, oldDelta, source) => {
-        this.$emit("on-text-change", delta, oldDelta, source);
-      });
-      this.Quill.on("selection-change", (range, oldRange, source) => {
-        this.$emit("on-selection-change", range, oldRange, source);
-      });
-      this.Quill.on("editor-change", (eventName, ...args) => {
-        this.$emit("on-editor-change", eventName, ...args);
-      });
-    },
-    // 上传前校检格式和大小
-    handleBeforeUpload(file) {
-      const type = ["image/jpeg", "image/jpg", "image/png", "image/svg"];
-      const isJPG = type.includes(file.type);
-      // 检验文件格式
-      if (!isJPG) {
-        this.$message.error(`图片格式错误!`);
-        return false;
-      }
-      // 校检文件大小
-      if (this.fileSize) {
-        const isLt = file.size / 1024 / 1024 < this.fileSize;
-        if (!isLt) {
-          this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);
-          return false;
-        }
-      }
-      return true;
-    },
-    handleUploadSuccess(res, file) {
-      // 如果上传成功
-      if (res.code == 200) {
-        // 获取富文本组件实例
-        let quill = this.Quill;
-        // 获取光标所在位置
-        let length = quill.getSelection().index;
-        // 插入图片  res.url为服务器返回的图片地址
-        quill.insertEmbed(length, "image", process.env.VUE_APP_BASE_API + res.fileName);
-        // 调整光标到最后
-        quill.setSelection(length + 1);
-      } else {
-        this.$message.error("图片插入失败");
-      }
-    },
-    handleUploadError() {
-      this.$message.error("图片插入失败");
-    },
-  },
-};
-</script>
-
-<style>
-.editor, .ql-toolbar {
-  white-space: pre-wrap !important;
-  line-height: normal !important;
-}
-.quill-img {
-  display: none;
-}
-.ql-snow .ql-tooltip[data-mode="link"]::before {
-  content: "请输入链接地址:";
-}
-.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
-  border-right: 0px;
-  content: "保存";
-  padding-right: 0px;
-}
-.ql-snow .ql-tooltip[data-mode="video"]::before {
-  content: "请输入视频地址:";
-}
-.ql-snow .ql-picker.ql-size .ql-picker-label::before,
-.ql-snow .ql-picker.ql-size .ql-picker-item::before {
-  content: "14px";
-}
-.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="small"]::before,
-.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="small"]::before {
-  content: "10px";
-}
-.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="large"]::before,
-.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="large"]::before {
-  content: "18px";
-}
-.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="huge"]::before,
-.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="huge"]::before {
-  content: "32px";
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item::before {
-  content: "文本";
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
-  content: "标题1";
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
-  content: "标题2";
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
-  content: "标题3";
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
-  content: "标题4";
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
-  content: "标题5";
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
-  content: "标题6";
-}
-.ql-snow .ql-picker.ql-font .ql-picker-label::before,
-.ql-snow .ql-picker.ql-font .ql-picker-item::before {
-  content: "标准字体";
-}
-.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before,
-.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before {
-  content: "衬线字体";
-}
-.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before,
-.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before {
-  content: "等宽字体";
-}
-</style>
diff --git a/ruoyi-ui/src/components/FileUpload/index.vue b/ruoyi-ui/src/components/FileUpload/index.vue
deleted file mode 100644
index c7f6b0a..0000000
--- a/ruoyi-ui/src/components/FileUpload/index.vue
+++ /dev/null
@@ -1,216 +0,0 @@
-<template>
-  <div class="upload-file">
-    <el-upload
-      multiple
-      :action="uploadFileUrl"
-      :before-upload="handleBeforeUpload"
-      :file-list="fileList"
-      :limit="limit"
-      :on-error="handleUploadError"
-      :on-exceed="handleExceed"
-      :on-success="handleUploadSuccess"
-      :show-file-list="false"
-      :headers="headers"
-      class="upload-file-uploader"
-      ref="fileUpload"
-    >
-      <!-- 上传按钮 -->
-      <el-button size="mini" type="primary">选取文件</el-button>
-      <!-- 上传提示 -->
-      <div class="el-upload__tip" slot="tip" v-if="showTip">
-        请上传
-        <template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>
-        <template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>
-        的文件
-      </div>
-    </el-upload>
-
-    <!-- 文件列表 -->
-    <transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">
-      <li :key="file.url" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList">
-        <el-link :href="`${baseUrl}${file.url}`" :underline="false" target="_blank">
-          <span class="el-icon-document"> {{ getFileName(file.name) }} </span>
-        </el-link>
-        <div class="ele-upload-list__item-content-action">
-          <el-link :underline="false" @click="handleDelete(index)" type="danger">删除</el-link>
-        </div>
-      </li>
-    </transition-group>
-  </div>
-</template>
-
-<script>
-import { getToken } from "@/utils/auth";
-
-export default {
-  name: "FileUpload",
-  props: {
-    // 值
-    value: [String, Object, Array],
-    // 数量限制
-    limit: {
-      type: Number,
-      default: 5,
-    },
-    // 大小限制(MB)
-    fileSize: {
-      type: Number,
-      default: 5,
-    },
-    // 文件类型, 例如['png', 'jpg', 'jpeg']
-    fileType: {
-      type: Array,
-      default: () => ["doc", "xls", "ppt", "txt", "pdf"],
-    },
-    // 是否显示提示
-    isShowTip: {
-      type: Boolean,
-      default: true
-    }
-  },
-  data() {
-    return {
-      number: 0,
-      uploadList: [],
-      baseUrl: process.env.VUE_APP_BASE_API,
-      uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传文件服务器地址
-      headers: {
-        Authorization: "Bearer " + getToken(),
-      },
-      fileList: [],
-    };
-  },
-  watch: {
-    value: {
-      handler(val) {
-        if (val) {
-          let temp = 1;
-          // 首先将值转为数组
-          const list = Array.isArray(val) ? val : this.value.split(',');
-          // 然后将数组转为对象数组
-          this.fileList = list.map(item => {
-            if (typeof item === "string") {
-              item = { name: item, url: item };
-            }
-            item.uid = item.uid || new Date().getTime() + temp++;
-            return item;
-          });
-        } else {
-          this.fileList = [];
-          return [];
-        }
-      },
-      deep: true,
-      immediate: true
-    }
-  },
-  computed: {
-    // 是否显示提示
-    showTip() {
-      return this.isShowTip && (this.fileType || this.fileSize);
-    },
-  },
-  methods: {
-    // 上传前校检格式和大小
-    handleBeforeUpload(file) {
-      // 校检文件类型
-      if (this.fileType) {
-        const fileName = file.name.split('.');
-        const fileExt = fileName[fileName.length - 1];
-        const isTypeOk = this.fileType.indexOf(fileExt) >= 0;
-        if (!isTypeOk) {
-          this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`);
-          return false;
-        }
-      }
-      // 校检文件大小
-      if (this.fileSize) {
-        const isLt = file.size / 1024 / 1024 < this.fileSize;
-        if (!isLt) {
-          this.$modal.msgError(`上传文件大小不能超过 ${this.fileSize} MB!`);
-          return false;
-        }
-      }
-      this.$modal.loading("正在上传文件,请稍候...");
-      this.number++;
-      return true;
-    },
-    // 文件个数超出
-    handleExceed() {
-      this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
-    },
-    // 上传失败
-    handleUploadError(err) {
-      this.$modal.msgError("上传文件失败,请重试");
-      this.$modal.closeLoading();
-    },
-    // 上传成功回调
-    handleUploadSuccess(res, file) {
-      if (res.code === 200) {
-        this.uploadList.push({ name: res.fileName, url: res.fileName });
-        this.uploadedSuccessfully();
-      } else {
-        this.number--;
-        this.$modal.closeLoading();
-        this.$modal.msgError(res.msg);
-        this.$refs.fileUpload.handleRemove(file);
-        this.uploadedSuccessfully();
-      }
-    },
-    // 删除文件
-    handleDelete(index) {
-      this.fileList.splice(index, 1);
-      this.$emit("input", this.listToString(this.fileList));
-    },
-    // 上传结束处理
-    uploadedSuccessfully() {
-      if (this.number > 0 && this.uploadList.length === this.number) {
-        this.fileList = this.fileList.concat(this.uploadList);
-        this.uploadList = [];
-        this.number = 0;
-        this.$emit("input", this.listToString(this.fileList));
-        this.$modal.closeLoading();
-      }
-    },
-    // 获取文件名称
-    getFileName(name) {
-      // 如果是url那么取最后的名字 如果不是直接返回
-      if (name.lastIndexOf("/") > -1) {
-        return name.slice(name.lastIndexOf("/") + 1);
-      } else {
-        return name;
-      }
-    },
-    // 对象转成指定字符串分隔
-    listToString(list, separator) {
-      let strs = "";
-      separator = separator || ",";
-      for (let i in list) {
-        strs += list[i].url + separator;
-      }
-      return strs != '' ? strs.substr(0, strs.length - 1) : '';
-    }
-  }
-};
-</script>
-
-<style scoped lang="scss">
-.upload-file-uploader {
-  margin-bottom: 5px;
-}
-.upload-file-list .el-upload-list__item {
-  border: 1px solid #e4e7ed;
-  line-height: 2;
-  margin-bottom: 10px;
-  position: relative;
-}
-.upload-file-list .ele-upload-list__item-content {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  color: inherit;
-}
-.ele-upload-list__item-content-action .el-link {
-  margin-right: 10px;
-}
-</style>
diff --git a/ruoyi-ui/src/components/Hamburger/index.vue b/ruoyi-ui/src/components/Hamburger/index.vue
deleted file mode 100644
index 368b002..0000000
--- a/ruoyi-ui/src/components/Hamburger/index.vue
+++ /dev/null
@@ -1,44 +0,0 @@
-<template>
-  <div style="padding: 0 15px;" @click="toggleClick">
-    <svg
-      :class="{'is-active':isActive}"
-      class="hamburger"
-      viewBox="0 0 1024 1024"
-      xmlns="http://www.w3.org/2000/svg"
-      width="64"
-      height="64"
-    >
-      <path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z" />
-    </svg>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'Hamburger',
-  props: {
-    isActive: {
-      type: Boolean,
-      default: false
-    }
-  },
-  methods: {
-    toggleClick() {
-      this.$emit('toggleClick')
-    }
-  }
-}
-</script>
-
-<style scoped>
-.hamburger {
-  display: inline-block;
-  vertical-align: middle;
-  width: 20px;
-  height: 20px;
-}
-
-.hamburger.is-active {
-  transform: rotate(180deg);
-}
-</style>
diff --git a/ruoyi-ui/src/components/HeaderSearch/index.vue b/ruoyi-ui/src/components/HeaderSearch/index.vue
deleted file mode 100644
index 7d6780b..0000000
--- a/ruoyi-ui/src/components/HeaderSearch/index.vue
+++ /dev/null
@@ -1,198 +0,0 @@
-<template>
-  <div :class="{'show':show}" class="header-search">
-    <svg-icon class-name="search-icon" icon-class="search" @click.stop="click" />
-    <el-select
-      ref="headerSearchSelect"
-      v-model="search"
-      :remote-method="querySearch"
-      filterable
-      default-first-option
-      remote
-      placeholder="Search"
-      class="header-search-select"
-      @change="change"
-    >
-      <el-option v-for="option in options" :key="option.item.path" :value="option.item" :label="option.item.title.join(' > ')" />
-    </el-select>
-  </div>
-</template>
-
-<script>
-// fuse is a lightweight fuzzy-search module
-// make search results more in line with expectations
-import Fuse from 'fuse.js/dist/fuse.min.js'
-import path from 'path'
-
-export default {
-  name: 'HeaderSearch',
-  data() {
-    return {
-      search: '',
-      options: [],
-      searchPool: [],
-      show: false,
-      fuse: undefined
-    }
-  },
-  computed: {
-    routes() {
-      return this.$store.getters.permission_routes
-    }
-  },
-  watch: {
-    routes() {
-      this.searchPool = this.generateRoutes(this.routes)
-    },
-    searchPool(list) {
-      this.initFuse(list)
-    },
-    show(value) {
-      if (value) {
-        document.body.addEventListener('click', this.close)
-      } else {
-        document.body.removeEventListener('click', this.close)
-      }
-    }
-  },
-  mounted() {
-    this.searchPool = this.generateRoutes(this.routes)
-  },
-  methods: {
-    click() {
-      this.show = !this.show
-      if (this.show) {
-        this.$refs.headerSearchSelect && this.$refs.headerSearchSelect.focus()
-      }
-    },
-    close() {
-      this.$refs.headerSearchSelect && this.$refs.headerSearchSelect.blur()
-      this.options = []
-      this.show = false
-    },
-    change(val) {
-      const path = val.path;
-      const query = val.query;
-      if(this.ishttp(val.path)) {
-        // http(s):// 路径新窗口打开
-        const pindex = path.indexOf("http");
-        window.open(path.substr(pindex, path.length), "_blank");
-      } else {
-        if (query) {
-          this.$router.push({ path: path, query: JSON.parse(query) });
-        } else {
-          this.$router.push(path)
-        }
-      }
-      this.search = ''
-      this.options = []
-      this.$nextTick(() => {
-        this.show = false
-      })
-    },
-    initFuse(list) {
-      this.fuse = new Fuse(list, {
-        shouldSort: true,
-        threshold: 0.4,
-        location: 0,
-        distance: 100,
-        minMatchCharLength: 1,
-        keys: [{
-          name: 'title',
-          weight: 0.7
-        }, {
-          name: 'path',
-          weight: 0.3
-        }]
-      })
-    },
-    // Filter out the routes that can be displayed in the sidebar
-    // And generate the internationalized title
-    generateRoutes(routes, basePath = '/', prefixTitle = []) {
-      let res = []
-
-      for (const router of routes) {
-        // skip hidden router
-        if (router.hidden) { continue }
-
-        const data = {
-          path: !this.ishttp(router.path) ? path.resolve(basePath, router.path) : router.path,
-          title: [...prefixTitle]
-        }
-
-        if (router.meta && router.meta.title) {
-          data.title = [...data.title, router.meta.title]
-
-          if (router.redirect !== 'noRedirect') {
-            // only push the routes with title
-            // special case: need to exclude parent router without redirect
-            res.push(data)
-          }
-        }
-
-        if (router.query) {
-          data.query = router.query
-        }
-
-        // recursive child routes
-        if (router.children) {
-          const tempRoutes = this.generateRoutes(router.children, data.path, data.title)
-          if (tempRoutes.length >= 1) {
-            res = [...res, ...tempRoutes]
-          }
-        }
-      }
-      return res
-    },
-    querySearch(query) {
-      if (query !== '') {
-        this.options = this.fuse.search(query)
-      } else {
-        this.options = []
-      }
-    },
-    ishttp(url) {
-      return url.indexOf('http://') !== -1 || url.indexOf('https://') !== -1
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.header-search {
-  font-size: 0 !important;
-
-  .search-icon {
-    cursor: pointer;
-    font-size: 18px;
-    vertical-align: middle;
-  }
-
-  .header-search-select {
-    font-size: 18px;
-    transition: width 0.2s;
-    width: 0;
-    overflow: hidden;
-    background: transparent;
-    border-radius: 0;
-    display: inline-block;
-    vertical-align: middle;
-
-    ::v-deep .el-input__inner {
-      border-radius: 0;
-      border: 0;
-      padding-left: 0;
-      padding-right: 0;
-      box-shadow: none !important;
-      border-bottom: 1px solid #d9d9d9;
-      vertical-align: middle;
-    }
-  }
-
-  &.show {
-    .header-search-select {
-      width: 210px;
-      margin-left: 10px;
-    }
-  }
-}
-</style>
diff --git a/ruoyi-ui/src/components/IconSelect/index.vue b/ruoyi-ui/src/components/IconSelect/index.vue
deleted file mode 100644
index 8dadc02..0000000
--- a/ruoyi-ui/src/components/IconSelect/index.vue
+++ /dev/null
@@ -1,104 +0,0 @@
-<!-- @author zhengjie -->
-<template>
-  <div class="icon-body">
-    <el-input v-model="name" class="icon-search" clearable placeholder="请输入图标名称" @clear="filterIcons" @input="filterIcons">
-      <i slot="suffix" class="el-icon-search el-input__icon" />
-    </el-input>
-    <div class="icon-list">
-      <div class="list-container">
-        <div v-for="(item, index) in iconList" class="icon-item-wrapper" :key="index" @click="selectedIcon(item)">
-          <div :class="['icon-item', { active: activeIcon === item }]">
-            <svg-icon :icon-class="item" class-name="icon" style="height: 25px;width: 16px;"/>
-            <span>{{ item }}</span>
-          </div>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import icons from './requireIcons'
-export default {
-  name: 'IconSelect',
-  props: {
-    activeIcon: {
-      type: String
-    }
-  },
-  data() {
-    return {
-      name: '',
-      iconList: icons
-    }
-  },
-  methods: {
-    filterIcons() {
-      this.iconList = icons
-      if (this.name) {
-        this.iconList = this.iconList.filter(item => item.includes(this.name))
-      }
-    },
-    selectedIcon(name) {
-      this.$emit('selected', name)
-      document.body.click()
-    },
-    reset() {
-      this.name = ''
-      this.iconList = icons
-    }
-  }
-}
-</script>
-
-<style rel="stylesheet/scss" lang="scss" scoped>
-  .icon-body {
-    width: 100%;
-    padding: 10px;
-    .icon-search {
-      position: relative;
-      margin-bottom: 5px;
-    }
-    .icon-list {
-      height: 200px;
-      overflow: auto;
-      .list-container {
-        display: flex;
-        flex-wrap: wrap;
-        .icon-item-wrapper {
-          width: calc(100% / 3);
-          height: 25px;
-          line-height: 25px;
-          cursor: pointer;
-          display: flex;
-          .icon-item {
-            display: flex;
-            max-width: 100%;
-            height: 100%;
-            padding: 0 5px;
-            &:hover {
-              background: #ececec;
-              border-radius: 5px;
-            }
-            .icon {
-              flex-shrink: 0;
-            }
-            span {
-              display: inline-block;
-              vertical-align: -0.15em;
-              fill: currentColor;
-              padding-left: 2px;
-              overflow: hidden;
-              text-overflow: ellipsis;
-              white-space: nowrap;
-            }
-          }
-          .icon-item.active {
-            background: #ececec;
-            border-radius: 5px;
-          }
-        }
-      }
-    }
-  }
-</style>
diff --git a/ruoyi-ui/src/components/IconSelect/requireIcons.js b/ruoyi-ui/src/components/IconSelect/requireIcons.js
deleted file mode 100644
index 99e5c54..0000000
--- a/ruoyi-ui/src/components/IconSelect/requireIcons.js
+++ /dev/null
@@ -1,11 +0,0 @@
-
-const req = require.context('../../assets/icons/svg', false, /\.svg$/)
-const requireAll = requireContext => requireContext.keys()
-
-const re = /\.\/(.*)\.svg/
-
-const icons = requireAll(req).map(i => {
-  return i.match(re)[1]
-})
-
-export default icons
diff --git a/ruoyi-ui/src/components/ImagePreview/index.vue b/ruoyi-ui/src/components/ImagePreview/index.vue
deleted file mode 100644
index 3c770c7..0000000
--- a/ruoyi-ui/src/components/ImagePreview/index.vue
+++ /dev/null
@@ -1,90 +0,0 @@
-<template>
-  <el-image
-    :src="`${realSrc}`"
-    fit="cover"
-    :style="`width:${realWidth};height:${realHeight};`"
-    :preview-src-list="realSrcList"
-  >
-    <div slot="error" class="image-slot">
-      <i class="el-icon-picture-outline"></i>
-    </div>
-  </el-image>
-</template>
-
-<script>
-import { isExternal } from "@/utils/validate";
-
-export default {
-  name: "ImagePreview",
-  props: {
-    src: {
-      type: String,
-      default: ""
-    },
-    width: {
-      type: [Number, String],
-      default: ""
-    },
-    height: {
-      type: [Number, String],
-      default: ""
-    }
-  },
-  computed: {
-    realSrc() {
-      if (!this.src) {
-        return;
-      }
-      let real_src = this.src.split(",")[0];
-      if (isExternal(real_src)) {
-        return real_src;
-      }
-      return process.env.VUE_APP_BASE_API + real_src;
-    },
-    realSrcList() {
-      if (!this.src) {
-        return;
-      }
-      let real_src_list = this.src.split(",");
-      let srcList = [];
-      real_src_list.forEach(item => {
-        if (isExternal(item)) {
-          return srcList.push(item);
-        }
-        return srcList.push(process.env.VUE_APP_BASE_API + item);
-      });
-      return srcList;
-    },
-    realWidth() {
-      return typeof this.width == "string" ? this.width : `${this.width}px`;
-    },
-    realHeight() {
-      return typeof this.height == "string" ? this.height : `${this.height}px`;
-    }
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-.el-image {
-  border-radius: 5px;
-  background-color: #ebeef5;
-  box-shadow: 0 0 5px 1px #ccc;
-  ::v-deep .el-image__inner {
-    transition: all 0.3s;
-    cursor: pointer;
-    &:hover {
-      transform: scale(1.2);
-    }
-  }
-  ::v-deep .image-slot {
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    width: 100%;
-    height: 100%;
-    color: #909399;
-    font-size: 30px;
-  }
-}
-</style>
diff --git a/ruoyi-ui/src/components/ImageUpload/index.vue b/ruoyi-ui/src/components/ImageUpload/index.vue
deleted file mode 100644
index 2e64c9b..0000000
--- a/ruoyi-ui/src/components/ImageUpload/index.vue
+++ /dev/null
@@ -1,226 +0,0 @@
-<template>
-  <div class="component-upload-image">
-    <el-upload
-      multiple
-      :action="uploadImgUrl"
-      list-type="picture-card"
-      :on-success="handleUploadSuccess"
-      :before-upload="handleBeforeUpload"
-      :limit="limit"
-      :on-error="handleUploadError"
-      :on-exceed="handleExceed"
-      ref="imageUpload"
-      :on-remove="handleDelete"
-      :show-file-list="true"
-      :headers="headers"
-      :file-list="fileList"
-      :on-preview="handlePictureCardPreview"
-      :class="{hide: this.fileList.length >= this.limit}"
-    >
-      <i class="el-icon-plus"></i>
-    </el-upload>
-
-    <!-- 上传提示 -->
-    <div class="el-upload__tip" slot="tip" v-if="showTip">
-      请上传
-      <template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>
-      <template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>
-      的文件
-    </div>
-
-    <el-dialog
-      :visible.sync="dialogVisible"
-      title="预览"
-      width="800"
-      append-to-body
-    >
-      <img
-        :src="dialogImageUrl"
-        style="display: block; max-width: 100%; margin: 0 auto"
-      />
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { getToken } from "@/utils/auth";
-
-export default {
-  props: {
-    value: [String, Object, Array],
-    // 图片数量限制
-    limit: {
-      type: Number,
-      default: 5,
-    },
-    // 大小限制(MB)
-    fileSize: {
-       type: Number,
-      default: 5,
-    },
-    // 文件类型, 例如['png', 'jpg', 'jpeg']
-    fileType: {
-      type: Array,
-      default: () => ["png", "jpg", "jpeg"],
-    },
-    // 是否显示提示
-    isShowTip: {
-      type: Boolean,
-      default: true
-    }
-  },
-  data() {
-    return {
-      number: 0,
-      uploadList: [],
-      dialogImageUrl: "",
-      dialogVisible: false,
-      hideUpload: false,
-      baseUrl: process.env.VUE_APP_BASE_API,
-      uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
-      headers: {
-        Authorization: "Bearer " + getToken(),
-      },
-      fileList: []
-    };
-  },
-  watch: {
-    value: {
-      handler(val) {
-        if (val) {
-          // 首先将值转为数组
-          const list = Array.isArray(val) ? val : this.value.split(',');
-          // 然后将数组转为对象数组
-          this.fileList = list.map(item => {
-            if (typeof item === "string") {
-              if (item.indexOf(this.baseUrl) === -1) {
-                  item = { name: this.baseUrl + item, url: this.baseUrl + item };
-              } else {
-                  item = { name: item, url: item };
-              }
-            }
-            return item;
-          });
-        } else {
-          this.fileList = [];
-          return [];
-        }
-      },
-      deep: true,
-      immediate: true
-    }
-  },
-  computed: {
-    // 是否显示提示
-    showTip() {
-      return this.isShowTip && (this.fileType || this.fileSize);
-    },
-  },
-  methods: {
-    // 上传前loading加载
-    handleBeforeUpload(file) {
-      let isImg = false;
-      if (this.fileType.length) {
-        let fileExtension = "";
-        if (file.name.lastIndexOf(".") > -1) {
-          fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1);
-        }
-        isImg = this.fileType.some(type => {
-          if (file.type.indexOf(type) > -1) return true;
-          if (fileExtension && fileExtension.indexOf(type) > -1) return true;
-          return false;
-        });
-      } else {
-        isImg = file.type.indexOf("image") > -1;
-      }
-
-      if (!isImg) {
-        this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}图片格式文件!`);
-        return false;
-      }
-      if (this.fileSize) {
-        const isLt = file.size / 1024 / 1024 < this.fileSize;
-        if (!isLt) {
-          this.$modal.msgError(`上传头像图片大小不能超过 ${this.fileSize} MB!`);
-          return false;
-        }
-      }
-      this.$modal.loading("正在上传图片,请稍候...");
-      this.number++;
-    },
-    // 文件个数超出
-    handleExceed() {
-      this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
-    },
-    // 上传成功回调
-    handleUploadSuccess(res, file) {
-      if (res.code === 200) {
-        this.uploadList.push({ name: res.fileName, url: res.fileName });
-        this.uploadedSuccessfully();
-      } else {
-        this.number--;
-        this.$modal.closeLoading();
-        this.$modal.msgError(res.msg);
-        this.$refs.imageUpload.handleRemove(file);
-        this.uploadedSuccessfully();
-      }
-    },
-    // 删除图片
-    handleDelete(file) {
-      const findex = this.fileList.map(f => f.name).indexOf(file.name);
-      if (findex > -1) {
-        this.fileList.splice(findex, 1);
-        this.$emit("input", this.listToString(this.fileList));
-      }
-    },
-    // 上传失败
-    handleUploadError() {
-      this.$modal.msgError("上传图片失败,请重试");
-      this.$modal.closeLoading();
-    },
-    // 上传结束处理
-    uploadedSuccessfully() {
-      if (this.number > 0 && this.uploadList.length === this.number) {
-        this.fileList = this.fileList.concat(this.uploadList);
-        this.uploadList = [];
-        this.number = 0;
-        this.$emit("input", this.listToString(this.fileList));
-        this.$modal.closeLoading();
-      }
-    },
-    // 预览
-    handlePictureCardPreview(file) {
-      this.dialogImageUrl = file.url;
-      this.dialogVisible = true;
-    },
-    // 对象转成指定字符串分隔
-    listToString(list, separator) {
-      let strs = "";
-      separator = separator || ",";
-      for (let i in list) {
-        if (list[i].url) {
-          strs += list[i].url.replace(this.baseUrl, "") + separator;
-        }
-      }
-      return strs != '' ? strs.substr(0, strs.length - 1) : '';
-    }
-  }
-};
-</script>
-<style scoped lang="scss">
-// .el-upload--picture-card 控制加号部分
-::v-deep.hide .el-upload--picture-card {
-    display: none;
-}
-// 去掉动画效果
-::v-deep .el-list-enter-active,
-::v-deep .el-list-leave-active {
-    transition: all 0s;
-}
-
-::v-deep .el-list-enter, .el-list-leave-active {
-  opacity: 0;
-  transform: translateY(0);
-}
-</style>
-
diff --git a/ruoyi-ui/src/components/Pagination/index.vue b/ruoyi-ui/src/components/Pagination/index.vue
deleted file mode 100644
index 56f5a6b..0000000
--- a/ruoyi-ui/src/components/Pagination/index.vue
+++ /dev/null
@@ -1,114 +0,0 @@
-<template>
-  <div :class="{'hidden':hidden}" class="pagination-container">
-    <el-pagination
-      :background="background"
-      :current-page.sync="currentPage"
-      :page-size.sync="pageSize"
-      :layout="layout"
-      :page-sizes="pageSizes"
-      :pager-count="pagerCount"
-      :total="total"
-      v-bind="$attrs"
-      @size-change="handleSizeChange"
-      @current-change="handleCurrentChange"
-    />
-  </div>
-</template>
-
-<script>
-import { scrollTo } from '@/utils/scroll-to'
-
-export default {
-  name: 'Pagination',
-  props: {
-    total: {
-      required: true,
-      type: Number
-    },
-    page: {
-      type: Number,
-      default: 1
-    },
-    limit: {
-      type: Number,
-      default: 20
-    },
-    pageSizes: {
-      type: Array,
-      default() {
-        return [10, 20, 30, 50]
-      }
-    },
-    // 移动端页码按钮的数量端默认值5
-    pagerCount: {
-      type: Number,
-      default: document.body.clientWidth < 992 ? 5 : 7
-    },
-    layout: {
-      type: String,
-      default: 'total, sizes, prev, pager, next, jumper'
-    },
-    background: {
-      type: Boolean,
-      default: true
-    },
-    autoScroll: {
-      type: Boolean,
-      default: true
-    },
-    hidden: {
-      type: Boolean,
-      default: false
-    }
-  },
-  data() {
-    return {
-    };
-  },
-  computed: {
-    currentPage: {
-      get() {
-        return this.page
-      },
-      set(val) {
-        this.$emit('update:page', val)
-      }
-    },
-    pageSize: {
-      get() {
-        return this.limit
-      },
-      set(val) {
-        this.$emit('update:limit', val)
-      }
-    }
-  },
-  methods: {
-    handleSizeChange(val) {
-      if (this.currentPage * val > this.total) {
-        this.currentPage = 1
-      }
-      this.$emit('pagination', { page: this.currentPage, limit: val })
-      if (this.autoScroll) {
-        scrollTo(0, 800)
-      }
-    },
-    handleCurrentChange(val) {
-      this.$emit('pagination', { page: val, limit: this.pageSize })
-      if (this.autoScroll) {
-        scrollTo(0, 800)
-      }
-    }
-  }
-}
-</script>
-
-<style scoped>
-.pagination-container {
-  background: #fff;
-  padding: 32px 16px;
-}
-.pagination-container.hidden {
-  display: none;
-}
-</style>
diff --git a/ruoyi-ui/src/components/PanThumb/index.vue b/ruoyi-ui/src/components/PanThumb/index.vue
deleted file mode 100644
index 1bcf417..0000000
--- a/ruoyi-ui/src/components/PanThumb/index.vue
+++ /dev/null
@@ -1,142 +0,0 @@
-<template>
-  <div :style="{zIndex:zIndex,height:height,width:width}" class="pan-item">
-    <div class="pan-info">
-      <div class="pan-info-roles-container">
-        <slot />
-      </div>
-    </div>
-    <!-- eslint-disable-next-line -->
-    <div :style="{backgroundImage: `url(${image})`}" class="pan-thumb"></div>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'PanThumb',
-  props: {
-    image: {
-      type: String,
-      required: true
-    },
-    zIndex: {
-      type: Number,
-      default: 1
-    },
-    width: {
-      type: String,
-      default: '150px'
-    },
-    height: {
-      type: String,
-      default: '150px'
-    }
-  }
-}
-</script>
-
-<style scoped>
-.pan-item {
-  width: 200px;
-  height: 200px;
-  border-radius: 50%;
-  display: inline-block;
-  position: relative;
-  cursor: default;
-  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
-}
-
-.pan-info-roles-container {
-  padding: 20px;
-  text-align: center;
-}
-
-.pan-thumb {
-  width: 100%;
-  height: 100%;
-  background-position: center center;
-  background-size: cover;
-  border-radius: 50%;
-  overflow: hidden;
-  position: absolute;
-  transform-origin: 95% 40%;
-  transition: all 0.3s ease-in-out;
-}
-
-/* .pan-thumb:after {
-  content: '';
-  width: 8px;
-  height: 8px;
-  position: absolute;
-  border-radius: 50%;
-  top: 40%;
-  left: 95%;
-  margin: -4px 0 0 -4px;
-  background: radial-gradient(ellipse at center, rgba(14, 14, 14, 1) 0%, rgba(125, 126, 125, 1) 100%);
-  box-shadow: 0 0 1px rgba(255, 255, 255, 0.9);
-} */
-
-.pan-info {
-  position: absolute;
-  width: inherit;
-  height: inherit;
-  border-radius: 50%;
-  overflow: hidden;
-  box-shadow: inset 0 0 0 5px rgba(0, 0, 0, 0.05);
-}
-
-.pan-info h3 {
-  color: #fff;
-  text-transform: uppercase;
-  position: relative;
-  letter-spacing: 2px;
-  font-size: 18px;
-  margin: 0 60px;
-  padding: 22px 0 0 0;
-  height: 85px;
-  font-family: 'Open Sans', Arial, sans-serif;
-  text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3);
-}
-
-.pan-info p {
-  color: #fff;
-  padding: 10px 5px;
-  font-style: italic;
-  margin: 0 30px;
-  font-size: 12px;
-  border-top: 1px solid rgba(255, 255, 255, 0.5);
-}
-
-.pan-info p a {
-  display: block;
-  color: #333;
-  width: 80px;
-  height: 80px;
-  background: rgba(255, 255, 255, 0.3);
-  border-radius: 50%;
-  color: #fff;
-  font-style: normal;
-  font-weight: 700;
-  text-transform: uppercase;
-  font-size: 9px;
-  letter-spacing: 1px;
-  padding-top: 24px;
-  margin: 7px auto 0;
-  font-family: 'Open Sans', Arial, sans-serif;
-  opacity: 0;
-  transition: transform 0.3s ease-in-out 0.2s, opacity 0.3s ease-in-out 0.2s, background 0.2s linear 0s;
-  transform: translateX(60px) rotate(90deg);
-}
-
-.pan-info p a:hover {
-  background: rgba(255, 255, 255, 0.5);
-}
-
-.pan-item:hover .pan-thumb {
-  transform: rotate(-110deg);
-}
-
-.pan-item:hover .pan-info p a {
-  opacity: 1;
-  transform: translateX(0px) rotate(0deg);
-}
-</style>
diff --git a/ruoyi-ui/src/components/ParentView/index.vue b/ruoyi-ui/src/components/ParentView/index.vue
deleted file mode 100644
index 7bf6148..0000000
--- a/ruoyi-ui/src/components/ParentView/index.vue
+++ /dev/null
@@ -1,3 +0,0 @@
-<template >
-  <router-view />
-</template>
diff --git a/ruoyi-ui/src/components/RightPanel/index.vue b/ruoyi-ui/src/components/RightPanel/index.vue
deleted file mode 100644
index 5abeecb..0000000
--- a/ruoyi-ui/src/components/RightPanel/index.vue
+++ /dev/null
@@ -1,106 +0,0 @@
-<template>
-  <div ref="rightPanel" class="rightPanel-container">
-    <div class="rightPanel-background" />
-    <div class="rightPanel">
-      <div class="rightPanel-items">
-        <slot />
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'RightPanel',
-  props: {
-    clickNotClose: {
-      default: false,
-      type: Boolean
-    }
-  },
-  computed: {
-    show: {
-      get() {
-        return this.$store.state.settings.showSettings
-      },
-      set(val) {
-        this.$store.dispatch('settings/changeSetting', {
-          key: 'showSettings',
-          value: val
-        })
-      }
-    }
-  },
-  watch: {
-    show(value) {
-      if (value && !this.clickNotClose) {
-        this.addEventClick()
-      }
-    }
-  },
-  mounted() {
-    this.addEventClick()
-  },
-  beforeDestroy() {
-    const elx = this.$refs.rightPanel
-    elx.remove()
-  },
-  methods: {
-    addEventClick() {
-      window.addEventListener('click', this.closeSidebar)
-    },
-    closeSidebar(evt) {
-      const parent = evt.target.closest('.el-drawer__body')
-      if (!parent) {
-        this.show = false
-        window.removeEventListener('click', this.closeSidebar)
-      }
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.rightPanel-background {
-  position: fixed;
-  top: 0;
-  left: 0;
-  opacity: 0;
-  transition: opacity .3s cubic-bezier(.7, .3, .1, 1);
-  background: rgba(0, 0, 0, .2);
-  z-index: -1;
-}
-
-.rightPanel {
-  width: 100%;
-  max-width: 260px;
-  height: 100vh;
-  position: fixed;
-  top: 0;
-  right: 0;
-  box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, .05);
-  transition: all .25s cubic-bezier(.7, .3, .1, 1);
-  transform: translate(100%);
-  background: #fff;
-  z-index: 40000;
-}
-
-.handle-button {
-  width: 48px;
-  height: 48px;
-  position: absolute;
-  left: -48px;
-  text-align: center;
-  font-size: 24px;
-  border-radius: 6px 0 0 6px !important;
-  z-index: 0;
-  pointer-events: auto;
-  cursor: pointer;
-  color: #fff;
-  line-height: 48px;
-  i {
-    font-size: 24px;
-    line-height: 48px;
-  }
-}
-</style>
diff --git a/ruoyi-ui/src/components/RightToolbar/index.vue b/ruoyi-ui/src/components/RightToolbar/index.vue
deleted file mode 100644
index 67da293..0000000
--- a/ruoyi-ui/src/components/RightToolbar/index.vue
+++ /dev/null
@@ -1,129 +0,0 @@
-<template>
-  <div class="top-right-btn" :style="style">
-    <el-row>
-      <el-tooltip class="item" effect="dark" :content="showSearch ? '隐藏搜索' : '显示搜索'" placement="top" v-if="search">
-        <el-button size="mini" circle icon="el-icon-search" @click="toggleSearch()" />
-      </el-tooltip>
-      <el-tooltip class="item" effect="dark" content="刷新" placement="top">
-        <el-button size="mini" circle icon="el-icon-refresh" @click="refresh()" />
-      </el-tooltip>
-      <el-tooltip class="item" effect="dark" content="显隐列" placement="top" v-if="columns">
-        <el-button size="mini" circle icon="el-icon-menu" @click="showColumn()" v-if="showColumnsType == 'transfer'"/>
-        <el-dropdown trigger="click" :hide-on-click="false" style="padding-left: 12px" v-if="showColumnsType == 'checkbox'">
-          <el-button size="mini" circle icon="el-icon-menu" />
-          <el-dropdown-menu slot="dropdown">
-            <template v-for="item in columns">
-              <el-dropdown-item :key="item.key">
-                <el-checkbox :checked="item.visible" @change="checkboxChange($event, item.label)" :label="item.label" />
-              </el-dropdown-item>
-            </template>
-          </el-dropdown-menu>
-        </el-dropdown>
-      </el-tooltip>
-    </el-row>
-    <el-dialog :title="title" :visible.sync="open" append-to-body>
-      <el-transfer
-        :titles="['显示', '隐藏']"
-        v-model="value"
-        :data="columns"
-        @change="dataChange"
-      ></el-transfer>
-    </el-dialog>
-  </div>
-</template>
-<script>
-export default {
-  name: "RightToolbar",
-  data() {
-    return {
-      // 显隐数据
-      value: [],
-      // 弹出层标题
-      title: "显示/隐藏",
-      // 是否显示弹出层
-      open: false,
-    };
-  },
-  props: {
-    /* 是否显示检索条件 */
-    showSearch: {
-      type: Boolean,
-      default: true,
-    },
-    /* 显隐列信息 */
-    columns: {
-      type: Array,
-    },
-    /* 是否显示检索图标 */
-    search: {
-      type: Boolean,
-      default: true,
-    },
-    /* 显隐列类型(transfer穿梭框、checkbox复选框) */
-    showColumnsType: {
-      type: String,
-      default: "checkbox",
-    },
-    /* 右外边距 */
-    gutter: {
-      type: Number,
-      default: 10,
-    },
-  },
-  computed: {
-    style() {
-      const ret = {};
-      if (this.gutter) {
-        ret.marginRight = `${this.gutter / 2}px`;
-      }
-      return ret;
-    }
-  },
-  created() {
-    if (this.showColumnsType == 'transfer') {
-      // 显隐列初始默认隐藏列
-      for (let item in this.columns) {
-        if (this.columns[item].visible === false) {
-          this.value.push(parseInt(item));
-        }
-      }
-    }
-  },
-  methods: {
-    // 搜索
-    toggleSearch() {
-      this.$emit("update:showSearch", !this.showSearch);
-    },
-    // 刷新
-    refresh() {
-      this.$emit("queryTable");
-    },
-    // 右侧列表元素变化
-    dataChange(data) {
-      for (let item in this.columns) {
-        const key = this.columns[item].key;
-        this.columns[item].visible = !data.includes(key);
-      }
-    },
-    // 打开显隐列dialog
-    showColumn() {
-      this.open = true;
-    },
-    // 勾选
-    checkboxChange(event, label) {
-      this.columns.filter(item => item.label == label)[0].visible = event;
-    }
-  },
-};
-</script>
-<style lang="scss" scoped>
-::v-deep .el-transfer__button {
-  border-radius: 50%;
-  padding: 12px;
-  display: block;
-  margin-left: 0px;
-}
-::v-deep .el-transfer__button:first-child {
-  margin-bottom: 10px;
-}
-</style>
diff --git a/ruoyi-ui/src/components/RuoYi/Doc/index.vue b/ruoyi-ui/src/components/RuoYi/Doc/index.vue
deleted file mode 100644
index 75fa864..0000000
--- a/ruoyi-ui/src/components/RuoYi/Doc/index.vue
+++ /dev/null
@@ -1,21 +0,0 @@
-<template>
-  <div>
-    <svg-icon icon-class="question" @click="goto" />
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'RuoYiDoc',
-  data() {
-    return {
-      url: 'http://doc.ruoyi.vip/ruoyi-vue'
-    }
-  },
-  methods: {
-    goto() {
-      window.open(this.url)
-    }
-  }
-}
-</script>
\ No newline at end of file
diff --git a/ruoyi-ui/src/components/RuoYi/Git/index.vue b/ruoyi-ui/src/components/RuoYi/Git/index.vue
deleted file mode 100644
index bdafbae..0000000
--- a/ruoyi-ui/src/components/RuoYi/Git/index.vue
+++ /dev/null
@@ -1,21 +0,0 @@
-<template>
-  <div>
-    <svg-icon icon-class="github" @click="goto" />
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'RuoYiGit',
-  data() {
-    return {
-      url: 'https://gitee.com/y_project/RuoYi-Vue'
-    }
-  },
-  methods: {
-    goto() {
-      window.open(this.url)
-    }
-  }
-}
-</script>
\ No newline at end of file
diff --git a/ruoyi-ui/src/components/Screenfull/index.vue b/ruoyi-ui/src/components/Screenfull/index.vue
deleted file mode 100644
index d4e539c..0000000
--- a/ruoyi-ui/src/components/Screenfull/index.vue
+++ /dev/null
@@ -1,57 +0,0 @@
-<template>
-  <div>
-    <svg-icon :icon-class="isFullscreen?'exit-fullscreen':'fullscreen'" @click="click" />
-  </div>
-</template>
-
-<script>
-import screenfull from 'screenfull'
-
-export default {
-  name: 'Screenfull',
-  data() {
-    return {
-      isFullscreen: false
-    }
-  },
-  mounted() {
-    this.init()
-  },
-  beforeDestroy() {
-    this.destroy()
-  },
-  methods: {
-    click() {
-      if (!screenfull.isEnabled) {
-        this.$message({ message: '你的浏览器不支持全屏', type: 'warning' })
-        return false
-      }
-      screenfull.toggle()
-    },
-    change() {
-      this.isFullscreen = screenfull.isFullscreen
-    },
-    init() {
-      if (screenfull.isEnabled) {
-        screenfull.on('change', this.change)
-      }
-    },
-    destroy() {
-      if (screenfull.isEnabled) {
-        screenfull.off('change', this.change)
-      }
-    }
-  }
-}
-</script>
-
-<style scoped>
-.screenfull-svg {
-  display: inline-block;
-  cursor: pointer;
-  fill: #5a5e66;;
-  width: 20px;
-  height: 20px;
-  vertical-align: 10px;
-}
-</style>
diff --git a/ruoyi-ui/src/components/SizeSelect/index.vue b/ruoyi-ui/src/components/SizeSelect/index.vue
deleted file mode 100644
index 069b5de..0000000
--- a/ruoyi-ui/src/components/SizeSelect/index.vue
+++ /dev/null
@@ -1,56 +0,0 @@
-<template>
-  <el-dropdown trigger="click" @command="handleSetSize">
-    <div>
-      <svg-icon class-name="size-icon" icon-class="size" />
-    </div>
-    <el-dropdown-menu slot="dropdown">
-      <el-dropdown-item v-for="item of sizeOptions" :key="item.value" :disabled="size===item.value" :command="item.value">
-        {{ item.label }}
-      </el-dropdown-item>
-    </el-dropdown-menu>
-  </el-dropdown>
-</template>
-
-<script>
-export default {
-  data() {
-    return {
-      sizeOptions: [
-        { label: 'Default', value: 'default' },
-        { label: 'Medium', value: 'medium' },
-        { label: 'Small', value: 'small' },
-        { label: 'Mini', value: 'mini' }
-      ]
-    }
-  },
-  computed: {
-    size() {
-      return this.$store.getters.size
-    }
-  },
-  methods: {
-    handleSetSize(size) {
-      this.$ELEMENT.size = size
-      this.$store.dispatch('app/setSize', size)
-      this.refreshView()
-      this.$message({
-        message: 'Switch Size Success',
-        type: 'success'
-      })
-    },
-    refreshView() {
-      // In order to make the cached page re-rendered
-      this.$store.dispatch('tagsView/delAllCachedViews', this.$route)
-
-      const { fullPath } = this.$route
-
-      this.$nextTick(() => {
-        this.$router.replace({
-          path: '/redirect' + fullPath
-        })
-      })
-    }
-  }
-
-}
-</script>
diff --git a/ruoyi-ui/src/components/SvgIcon/index.vue b/ruoyi-ui/src/components/SvgIcon/index.vue
deleted file mode 100644
index e4bf5ad..0000000
--- a/ruoyi-ui/src/components/SvgIcon/index.vue
+++ /dev/null
@@ -1,61 +0,0 @@
-<template>
-  <div v-if="isExternal" :style="styleExternalIcon" class="svg-external-icon svg-icon" v-on="$listeners" />
-  <svg v-else :class="svgClass" aria-hidden="true" v-on="$listeners">
-    <use :xlink:href="iconName" />
-  </svg>
-</template>
-
-<script>
-import { isExternal } from '@/utils/validate'
-
-export default {
-  name: 'SvgIcon',
-  props: {
-    iconClass: {
-      type: String,
-      required: true
-    },
-    className: {
-      type: String,
-      default: ''
-    }
-  },
-  computed: {
-    isExternal() {
-      return isExternal(this.iconClass)
-    },
-    iconName() {
-      return `#icon-${this.iconClass}`
-    },
-    svgClass() {
-      if (this.className) {
-        return 'svg-icon ' + this.className
-      } else {
-        return 'svg-icon'
-      }
-    },
-    styleExternalIcon() {
-      return {
-        mask: `url(${this.iconClass}) no-repeat 50% 50%`,
-        '-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%`
-      }
-    }
-  }
-}
-</script>
-
-<style scoped>
-.svg-icon {
-  width: 1em;
-  height: 1em;
-  vertical-align: -0.15em;
-  fill: currentColor;
-  overflow: hidden;
-}
-
-.svg-external-icon {
-  background-color: currentColor;
-  mask-size: cover!important;
-  display: inline-block;
-}
-</style>
diff --git a/ruoyi-ui/src/components/ThemePicker/index.vue b/ruoyi-ui/src/components/ThemePicker/index.vue
deleted file mode 100644
index 1714e1f..0000000
--- a/ruoyi-ui/src/components/ThemePicker/index.vue
+++ /dev/null
@@ -1,173 +0,0 @@
-<template>
-  <el-color-picker
-    v-model="theme"
-    :predefine="['#409EFF', '#1890ff', '#304156','#212121','#11a983', '#13c2c2', '#6959CD', '#f5222d', ]"
-    class="theme-picker"
-    popper-class="theme-picker-dropdown"
-  />
-</template>
-
-<script>
-const version = require('element-ui/package.json').version // element-ui version from node_modules
-const ORIGINAL_THEME = '#409EFF' // default color
-
-export default {
-  data() {
-    return {
-      chalk: '', // content of theme-chalk css
-      theme: ''
-    }
-  },
-  computed: {
-    defaultTheme() {
-      return this.$store.state.settings.theme
-    }
-  },
-  watch: {
-    defaultTheme: {
-      handler: function(val, oldVal) {
-        this.theme = val
-      },
-      immediate: true
-    },
-    async theme(val) {
-      await this.setTheme(val)
-    }
-  },
-  created() {
-    if(this.defaultTheme !== ORIGINAL_THEME) {
-      this.setTheme(this.defaultTheme)
-    }
-  },
-
-  methods: {
-    async setTheme(val) {
-      const oldVal = this.chalk ? this.theme : ORIGINAL_THEME
-      if (typeof val !== 'string') return
-      const themeCluster = this.getThemeCluster(val.replace('#', ''))
-      const originalCluster = this.getThemeCluster(oldVal.replace('#', ''))
-
-      const getHandler = (variable, id) => {
-        return () => {
-          const originalCluster = this.getThemeCluster(ORIGINAL_THEME.replace('#', ''))
-          const newStyle = this.updateStyle(this[variable], originalCluster, themeCluster)
-
-          let styleTag = document.getElementById(id)
-          if (!styleTag) {
-            styleTag = document.createElement('style')
-            styleTag.setAttribute('id', id)
-            document.head.appendChild(styleTag)
-          }
-          styleTag.innerText = newStyle
-        }
-      }
-
-      if (!this.chalk) {
-        const url = `https://unpkg.com/element-ui@${version}/lib/theme-chalk/index.css`
-        await this.getCSSString(url, 'chalk')
-      }
-
-      const chalkHandler = getHandler('chalk', 'chalk-style')
-
-      chalkHandler()
-
-      const styles = [].slice.call(document.querySelectorAll('style'))
-        .filter(style => {
-          const text = style.innerText
-          return new RegExp(oldVal, 'i').test(text) && !/Chalk Variables/.test(text)
-        })
-      styles.forEach(style => {
-        const { innerText } = style
-        if (typeof innerText !== 'string') return
-        style.innerText = this.updateStyle(innerText, originalCluster, themeCluster)
-      })
-
-      this.$emit('change', val)
-    },
-
-    updateStyle(style, oldCluster, newCluster) {
-      let newStyle = style
-      oldCluster.forEach((color, index) => {
-        newStyle = newStyle.replace(new RegExp(color, 'ig'), newCluster[index])
-      })
-      return newStyle
-    },
-
-    getCSSString(url, variable) {
-      return new Promise(resolve => {
-        const xhr = new XMLHttpRequest()
-        xhr.onreadystatechange = () => {
-          if (xhr.readyState === 4 && xhr.status === 200) {
-            this[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, '')
-            resolve()
-          }
-        }
-        xhr.open('GET', url)
-        xhr.send()
-      })
-    },
-
-    getThemeCluster(theme) {
-      const tintColor = (color, tint) => {
-        let red = parseInt(color.slice(0, 2), 16)
-        let green = parseInt(color.slice(2, 4), 16)
-        let blue = parseInt(color.slice(4, 6), 16)
-
-        if (tint === 0) { // when primary color is in its rgb space
-          return [red, green, blue].join(',')
-        } else {
-          red += Math.round(tint * (255 - red))
-          green += Math.round(tint * (255 - green))
-          blue += Math.round(tint * (255 - blue))
-
-          red = red.toString(16)
-          green = green.toString(16)
-          blue = blue.toString(16)
-
-          return `#${red}${green}${blue}`
-        }
-      }
-
-      const shadeColor = (color, shade) => {
-        let red = parseInt(color.slice(0, 2), 16)
-        let green = parseInt(color.slice(2, 4), 16)
-        let blue = parseInt(color.slice(4, 6), 16)
-
-        red = Math.round((1 - shade) * red)
-        green = Math.round((1 - shade) * green)
-        blue = Math.round((1 - shade) * blue)
-
-        red = red.toString(16)
-        green = green.toString(16)
-        blue = blue.toString(16)
-
-        return `#${red}${green}${blue}`
-      }
-
-      const clusters = [theme]
-      for (let i = 0; i <= 9; i++) {
-        clusters.push(tintColor(theme, Number((i / 10).toFixed(2))))
-      }
-      clusters.push(shadeColor(theme, 0.1))
-      return clusters
-    }
-  }
-}
-</script>
-
-<style>
-.theme-message,
-.theme-picker-dropdown {
-  z-index: 99999 !important;
-}
-
-.theme-picker .el-color-picker__trigger {
-  height: 26px !important;
-  width: 26px !important;
-  padding: 2px;
-}
-
-.theme-picker-dropdown .el-color-dropdown__link-btn {
-  display: none;
-}
-</style>
diff --git a/ruoyi-ui/src/components/TopNav/index.vue b/ruoyi-ui/src/components/TopNav/index.vue
deleted file mode 100644
index 86a91c4..0000000
--- a/ruoyi-ui/src/components/TopNav/index.vue
+++ /dev/null
@@ -1,195 +0,0 @@
-<template>
-  <el-menu
-    :default-active="activeMenu"
-    mode="horizontal"
-    @select="handleSelect"
-  >
-    <template v-for="(item, index) in topMenus">
-      <el-menu-item :style="{'--theme': theme}" :index="item.path" :key="index" v-if="index < visibleNumber">
-        <svg-icon
-        v-if="item.meta && item.meta.icon && item.meta.icon !== '#'"
-        :icon-class="item.meta.icon"/>
-        {{ item.meta.title }}
-      </el-menu-item>
-    </template>
-
-    <!-- 顶部菜单超出数量折叠 -->
-    <el-submenu :style="{'--theme': theme}" index="more" v-if="topMenus.length > visibleNumber">
-      <template slot="title">更多菜单</template>
-      <template v-for="(item, index) in topMenus">
-        <el-menu-item
-          :index="item.path"
-          :key="index"
-          v-if="index >= visibleNumber">
-          <svg-icon
-            v-if="item.meta && item.meta.icon && item.meta.icon !== '#'"
-            :icon-class="item.meta.icon"/>
-          {{ item.meta.title }}
-        </el-menu-item>
-      </template>
-    </el-submenu>
-  </el-menu>
-</template>
-
-<script>
-import { constantRoutes } from "@/router";
-
-// 隐藏侧边栏路由
-const hideList = ['/index', '/user/profile'];
-
-export default {
-  data() {
-    return {
-      // 顶部栏初始数
-      visibleNumber: 5,
-      // 当前激活菜单的 index
-      currentIndex: undefined
-    };
-  },
-  computed: {
-    theme() {
-      return this.$store.state.settings.theme;
-    },
-    // 顶部显示菜单
-    topMenus() {
-      let topMenus = [];
-      this.routers.map((menu) => {
-        if (menu.hidden !== true) {
-          // 兼容顶部栏一级菜单内部跳转
-          if (menu.path === "/") {
-            topMenus.push(menu.children[0]);
-          } else {
-            topMenus.push(menu);
-          }
-        }
-      });
-      return topMenus;
-    },
-    // 所有的路由信息
-    routers() {
-      return this.$store.state.permission.topbarRouters;
-    },
-    // 设置子路由
-    childrenMenus() {
-      var childrenMenus = [];
-      this.routers.map((router) => {
-        for (var item in router.children) {
-          if (router.children[item].parentPath === undefined) {
-            if(router.path === "/") {
-              router.children[item].path = "/" + router.children[item].path;
-            } else {
-              if(!this.ishttp(router.children[item].path)) {
-                router.children[item].path = router.path + "/" + router.children[item].path;
-              }
-            }
-            router.children[item].parentPath = router.path;
-          }
-          childrenMenus.push(router.children[item]);
-        }
-      });
-      return constantRoutes.concat(childrenMenus);
-    },
-    // 默认激活的菜单
-    activeMenu() {
-      const path = this.$route.path;
-      let activePath = path;
-      if (path !== undefined && path.lastIndexOf("/") > 0 && hideList.indexOf(path) === -1) {
-        const tmpPath = path.substring(1, path.length);
-        activePath = "/" + tmpPath.substring(0, tmpPath.indexOf("/"));
-        if (!this.$route.meta.link) {
-          this.$store.dispatch('app/toggleSideBarHide', false);
-        }
-      } else if(!this.$route.children) {
-        activePath = path;
-        this.$store.dispatch('app/toggleSideBarHide', true);
-      }
-      this.activeRoutes(activePath);
-      return activePath;
-    },
-  },
-  beforeMount() {
-    window.addEventListener('resize', this.setVisibleNumber)
-  },
-  beforeDestroy() {
-    window.removeEventListener('resize', this.setVisibleNumber)
-  },
-  mounted() {
-    this.setVisibleNumber();
-  },
-  methods: {
-    // 根据宽度计算设置显示栏数
-    setVisibleNumber() {
-      const width = document.body.getBoundingClientRect().width / 3;
-      this.visibleNumber = parseInt(width / 85);
-    },
-    // 菜单选择事件
-    handleSelect(key, keyPath) {
-      this.currentIndex = key;
-      const route = this.routers.find(item => item.path === key);
-      if (this.ishttp(key)) {
-        // http(s):// 路径新窗口打开
-        window.open(key, "_blank");
-      } else if (!route || !route.children) {
-        // 没有子路由路径内部打开
-        const routeMenu = this.childrenMenus.find(item => item.path === key);
-        if (routeMenu && routeMenu.query) {
-          let query = JSON.parse(routeMenu.query);
-          this.$router.push({ path: key, query: query });
-        } else {
-          this.$router.push({ path: key });
-        }
-        this.$store.dispatch('app/toggleSideBarHide', true);
-      } else {
-        // 显示左侧联动菜单
-        this.activeRoutes(key);
-        this.$store.dispatch('app/toggleSideBarHide', false);
-      }
-    },
-    // 当前激活的路由
-    activeRoutes(key) {
-      var routes = [];
-      if (this.childrenMenus && this.childrenMenus.length > 0) {
-        this.childrenMenus.map((item) => {
-          if (key == item.parentPath || (key == "index" && "" == item.path)) {
-            routes.push(item);
-          }
-        });
-      }
-      if(routes.length > 0) {
-        this.$store.commit("SET_SIDEBAR_ROUTERS", routes);
-      } else {
-        this.$store.dispatch('app/toggleSideBarHide', true);
-      }
-    },
-    ishttp(url) {
-      return url.indexOf('http://') !== -1 || url.indexOf('https://') !== -1
-    }
-  },
-};
-</script>
-
-<style lang="scss">
-.topmenu-container.el-menu--horizontal > .el-menu-item {
-  float: left;
-  height: 50px !important;
-  line-height: 50px !important;
-  color: #999093 !important;
-  padding: 0 5px !important;
-  margin: 0 10px !important;
-}
-
-.topmenu-container.el-menu--horizontal > .el-menu-item.is-active, .el-menu--horizontal > .el-submenu.is-active .el-submenu__title {
-  border-bottom: 2px solid #{'var(--theme)'} !important;
-  color: #303133;
-}
-
-/* submenu item */
-.topmenu-container.el-menu--horizontal > .el-submenu .el-submenu__title {
-  float: left;
-  height: 50px !important;
-  line-height: 50px !important;
-  color: #999093 !important;
-  padding: 0 5px !important;
-  margin: 0 10px !important;
-}
-</style>
diff --git a/ruoyi-ui/src/components/iFrame/index.vue b/ruoyi-ui/src/components/iFrame/index.vue
deleted file mode 100644
index 426857f..0000000
--- a/ruoyi-ui/src/components/iFrame/index.vue
+++ /dev/null
@@ -1,36 +0,0 @@
-<template>
-  <div v-loading="loading" :style="'height:' + height">
-    <iframe
-      :src="src"
-      frameborder="no"
-      style="width: 100%; height: 100%"
-      scrolling="auto"
-    />
-  </div>
-</template>
-<script>
-export default {
-  props: {
-    src: {
-      type: String,
-      required: true
-    },
-  },
-  data() {
-    return {
-      height: document.documentElement.clientHeight - 94.5 + "px;",
-      loading: true,
-      url: this.src
-    };
-  },
-  mounted: function () {
-    setTimeout(() => {
-      this.loading = false;
-    }, 300);
-    const that = this;
-    window.onresize = function temp() {
-      that.height = document.documentElement.clientHeight - 94.5 + "px;";
-    };
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/directive/dialog/drag.js b/ruoyi-ui/src/directive/dialog/drag.js
deleted file mode 100644
index 2e82346..0000000
--- a/ruoyi-ui/src/directive/dialog/drag.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
-* v-dialogDrag 弹窗拖拽
-* Copyright (c) 2019 ruoyi
-*/
-
-export default {
-  bind(el, binding, vnode, oldVnode) {
-    const value = binding.value
-    if (value == false) return
-    // 获取拖拽内容头部
-    const dialogHeaderEl = el.querySelector('.el-dialog__header');
-    const dragDom = el.querySelector('.el-dialog');
-    dialogHeaderEl.style.cursor = 'move';
-    // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
-    const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null);
-    dragDom.style.position = 'absolute';
-    dragDom.style.marginTop = 0;
-    let width = dragDom.style.width;
-    if (width.includes('%')) {
-      width = +document.body.clientWidth * (+width.replace(/\%/g, '') / 100);
-    } else {
-      width = +width.replace(/\px/g, '');
-    }
-    dragDom.style.left = `${(document.body.clientWidth - width) / 2}px`;
-    // 鼠标按下事件
-    dialogHeaderEl.onmousedown = (e) => {
-      // 鼠标按下,计算当前元素距离可视区的距离 (鼠标点击位置距离可视窗口的距离)
-      const disX = e.clientX - dialogHeaderEl.offsetLeft;
-      const disY = e.clientY - dialogHeaderEl.offsetTop;
-
-      // 获取到的值带px 正则匹配替换
-      let styL, styT;
-
-      // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
-      if (sty.left.includes('%')) {
-        styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100);
-        styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100);
-      } else {
-        styL = +sty.left.replace(/\px/g, '');
-        styT = +sty.top.replace(/\px/g, '');
-      };
-
-      // 鼠标拖拽事件
-      document.onmousemove = function (e) {
-        // 通过事件委托,计算移动的距离 (开始拖拽至结束拖拽的距离)
-        const l = e.clientX - disX;
-        const t = e.clientY - disY;
-
-        let finallyL = l + styL
-        let finallyT = t + styT
-
-        // 移动当前元素
-        dragDom.style.left = `${finallyL}px`;
-        dragDom.style.top = `${finallyT}px`;
-
-      };
-
-      document.onmouseup = function (e) {
-        document.onmousemove = null;
-        document.onmouseup = null;
-      };
-    }
-  }
-};
\ No newline at end of file
diff --git a/ruoyi-ui/src/directive/dialog/dragHeight.js b/ruoyi-ui/src/directive/dialog/dragHeight.js
deleted file mode 100644
index 97e5305..0000000
--- a/ruoyi-ui/src/directive/dialog/dragHeight.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * v-dialogDragWidth 可拖动弹窗高度(右下角)
- * Copyright (c) 2019 ruoyi
- */
-
-export default {
-  bind(el) {
-    const dragDom = el.querySelector('.el-dialog');
-    const lineEl = document.createElement('div');
-    lineEl.style = 'width: 6px; background: inherit; height: 10px; position: absolute; right: 0; bottom: 0; margin: auto; z-index: 1; cursor: nwse-resize;';
-    lineEl.addEventListener('mousedown',
-      function(e) {
-        // 鼠标按下,计算当前元素距离可视区的距离
-        const disX = e.clientX - el.offsetLeft;
-        const disY = e.clientY - el.offsetTop;
-        // 当前宽度 高度
-        const curWidth = dragDom.offsetWidth;
-        const curHeight = dragDom.offsetHeight;
-        document.onmousemove = function(e) {
-          e.preventDefault(); // 移动时禁用默认事件
-          // 通过事件委托,计算移动的距离
-          const xl = e.clientX - disX;
-          const yl = e.clientY - disY
-          dragDom.style.width = `${curWidth + xl}px`;
-          dragDom.style.height = `${curHeight + yl}px`;
-        };
-        document.onmouseup = function(e) {
-          document.onmousemove = null;
-          document.onmouseup = null;
-        };
-      }, false);
-    dragDom.appendChild(lineEl);
-  }
-}
diff --git a/ruoyi-ui/src/directive/dialog/dragWidth.js b/ruoyi-ui/src/directive/dialog/dragWidth.js
deleted file mode 100644
index 2df0867..0000000
--- a/ruoyi-ui/src/directive/dialog/dragWidth.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * v-dialogDragWidth 可拖动弹窗宽度(右侧边)
- * Copyright (c) 2019 ruoyi
- */
-
-export default {
-  bind(el) {
-    const dragDom = el.querySelector('.el-dialog');
-    const lineEl = document.createElement('div');
-    lineEl.style = 'width: 5px; background: inherit; height: 80%; position: absolute; right: 0; top: 0; bottom: 0; margin: auto; z-index: 1; cursor: w-resize;';
-    lineEl.addEventListener('mousedown',
-      function (e) {
-        // 鼠标按下,计算当前元素距离可视区的距离
-        const disX = e.clientX - el.offsetLeft;
-        // 当前宽度
-        const curWidth = dragDom.offsetWidth;
-        document.onmousemove = function (e) {
-          e.preventDefault(); // 移动时禁用默认事件
-          // 通过事件委托,计算移动的距离
-          const l = e.clientX - disX;
-          dragDom.style.width = `${curWidth + l}px`;
-        };
-        document.onmouseup = function (e) {
-          document.onmousemove = null;
-          document.onmouseup = null;
-        };
-      }, false);
-    dragDom.appendChild(lineEl);
-  }
-}
diff --git a/ruoyi-ui/src/directive/index.js b/ruoyi-ui/src/directive/index.js
deleted file mode 100644
index b9b07da..0000000
--- a/ruoyi-ui/src/directive/index.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import hasRole from './permission/hasRole'
-import hasPermi from './permission/hasPermi'
-import dialogDrag from './dialog/drag'
-import dialogDragWidth from './dialog/dragWidth'
-import dialogDragHeight from './dialog/dragHeight'
-import clipboard from './module/clipboard'
-
-const install = function(Vue) {
-  Vue.directive('hasRole', hasRole)
-  Vue.directive('hasPermi', hasPermi)
-  Vue.directive('clipboard', clipboard)
-  Vue.directive('dialogDrag', dialogDrag)
-  Vue.directive('dialogDragWidth', dialogDragWidth)
-  Vue.directive('dialogDragHeight', dialogDragHeight)
-}
-
-if (window.Vue) {
-  window['hasRole'] = hasRole
-  window['hasPermi'] = hasPermi
-  Vue.use(install); // eslint-disable-line
-}
-
-export default install
diff --git a/ruoyi-ui/src/directive/module/clipboard.js b/ruoyi-ui/src/directive/module/clipboard.js
deleted file mode 100644
index 635315a..0000000
--- a/ruoyi-ui/src/directive/module/clipboard.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
-* v-clipboard 文字复制剪贴
-* Copyright (c) 2021 ruoyi
-*/
-
-import Clipboard from 'clipboard'
-export default {
-  bind(el, binding, vnode) {
-    switch (binding.arg) {
-      case 'success':
-        el._vClipBoard_success = binding.value;
-        break;
-      case 'error':
-        el._vClipBoard_error = binding.value;
-        break;
-      default: {
-        const clipboard = new Clipboard(el, {
-          text: () => binding.value,
-          action: () => binding.arg === 'cut' ? 'cut' : 'copy'
-        });
-        clipboard.on('success', e => {
-          const callback = el._vClipBoard_success;
-          callback && callback(e);
-        });
-        clipboard.on('error', e => {
-          const callback = el._vClipBoard_error;
-          callback && callback(e);
-        });
-        el._vClipBoard = clipboard;
-      }
-    }
-  },
-  update(el, binding) {
-    if (binding.arg === 'success') {
-      el._vClipBoard_success = binding.value;
-    } else if (binding.arg === 'error') {
-      el._vClipBoard_error = binding.value;
-    } else {
-      el._vClipBoard.text = function () { return binding.value; };
-      el._vClipBoard.action = () => binding.arg === 'cut' ? 'cut' : 'copy';
-    }
-  },
-  unbind(el, binding) {
-    if (!el._vClipboard) return
-    if (binding.arg === 'success') {
-      delete el._vClipBoard_success;
-    } else if (binding.arg === 'error') {
-      delete el._vClipBoard_error;
-    } else {
-      el._vClipBoard.destroy();
-      delete el._vClipBoard;
-    }
-  }
-}
diff --git a/ruoyi-ui/src/directive/permission/hasPermi.js b/ruoyi-ui/src/directive/permission/hasPermi.js
deleted file mode 100644
index 7101e3e..0000000
--- a/ruoyi-ui/src/directive/permission/hasPermi.js
+++ /dev/null
@@ -1,28 +0,0 @@
- /**
- * v-hasPermi 操作权限处理
- * Copyright (c) 2019 ruoyi
- */
-
-import store from '@/store'
-
-export default {
-  inserted(el, binding, vnode) {
-    const { value } = binding
-    const all_permission = "*:*:*";
-    const permissions = store.getters && store.getters.permissions
-
-    if (value && value instanceof Array && value.length > 0) {
-      const permissionFlag = value
-
-      const hasPermissions = permissions.some(permission => {
-        return all_permission === permission || permissionFlag.includes(permission)
-      })
-
-      if (!hasPermissions) {
-        el.parentNode && el.parentNode.removeChild(el)
-      }
-    } else {
-      throw new Error(`请设置操作权限标签值`)
-    }
-  }
-}
diff --git a/ruoyi-ui/src/directive/permission/hasRole.js b/ruoyi-ui/src/directive/permission/hasRole.js
deleted file mode 100644
index ad9d4d7..0000000
--- a/ruoyi-ui/src/directive/permission/hasRole.js
+++ /dev/null
@@ -1,28 +0,0 @@
- /**
- * v-hasRole 角色权限处理
- * Copyright (c) 2019 ruoyi
- */
-
-import store from '@/store'
-
-export default {
-  inserted(el, binding, vnode) {
-    const { value } = binding
-    const super_admin = "admin";
-    const roles = store.getters && store.getters.roles
-
-    if (value && value instanceof Array && value.length > 0) {
-      const roleFlag = value
-
-      const hasRole = roles.some(role => {
-        return super_admin === role || roleFlag.includes(role)
-      })
-
-      if (!hasRole) {
-        el.parentNode && el.parentNode.removeChild(el)
-      }
-    } else {
-      throw new Error(`请设置角色权限标签值"`)
-    }
-  }
-}
diff --git a/ruoyi-ui/src/layout/components/AppMain.vue b/ruoyi-ui/src/layout/components/AppMain.vue
deleted file mode 100644
index a25c562..0000000
--- a/ruoyi-ui/src/layout/components/AppMain.vue
+++ /dev/null
@@ -1,75 +0,0 @@
-<template>
-  <section class="app-main">
-    <transition name="fade-transform" mode="out-in">
-      <keep-alive :include="cachedViews">
-        <router-view v-if="!$route.meta.link" :key="key" />
-      </keep-alive>
-    </transition>
-    <iframe-toggle />
-  </section>
-</template>
-
-<script>
-import iframeToggle from "./IframeToggle/index"
-
-export default {
-  name: 'AppMain',
-  components: { iframeToggle },
-  computed: {
-    cachedViews() {
-      return this.$store.state.tagsView.cachedViews
-    },
-    key() {
-      return this.$route.path
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.app-main {
-  /* 50= navbar  50  */
-  min-height: calc(100vh - 50px);
-  width: 100%;
-  position: relative;
-  overflow: hidden;
-}
-
-.fixed-header + .app-main {
-  padding-top: 50px;
-}
-
-.hasTagsView {
-  .app-main {
-    /* 84 = navbar + tags-view = 50 + 34 */
-    min-height: calc(100vh - 84px);
-  }
-
-  .fixed-header + .app-main {
-    padding-top: 84px;
-  }
-}
-</style>
-
-<style lang="scss">
-// fix css style bug in open el-dialog
-.el-popup-parent--hidden {
-  .fixed-header {
-    padding-right: 6px;
-  }
-}
-
-::-webkit-scrollbar {
-  width: 6px;
-  height: 6px;
-}
-
-::-webkit-scrollbar-track {
-  background-color: #f1f1f1;
-}
-
-::-webkit-scrollbar-thumb {
-  background-color: #c0c0c0;
-  border-radius: 3px;
-}
-</style>
diff --git a/ruoyi-ui/src/layout/components/IframeToggle/index.vue b/ruoyi-ui/src/layout/components/IframeToggle/index.vue
deleted file mode 100644
index 39ad15b..0000000
--- a/ruoyi-ui/src/layout/components/IframeToggle/index.vue
+++ /dev/null
@@ -1,33 +0,0 @@
-<template>
-  <transition-group name="fade-transform" mode="out-in">
-    <inner-link
-      v-for="(item, index) in iframeViews"
-      :key="item.path"
-      :iframeId="'iframe' + index"
-      v-show="$route.path === item.path"
-      :src="iframeUrl(item.meta.link, item.query)"
-    ></inner-link>
-  </transition-group>
-</template>
-
-<script>
-import InnerLink from "../InnerLink/index";
-
-export default {
-  components: { InnerLink },
-  computed: {
-    iframeViews() {
-      return this.$store.state.tagsView.iframeViews;
-    }
-  },
-  methods: {
-    iframeUrl(url, query) {
-      if (Object.keys(query).length > 0) {
-        let params = Object.keys(query).map((key) => key + "=" + query[key]).join("&");
-        return url + "?" + params;
-      }
-      return url;
-    }
-  }
-}
-</script>
diff --git a/ruoyi-ui/src/layout/components/InnerLink/index.vue b/ruoyi-ui/src/layout/components/InnerLink/index.vue
deleted file mode 100644
index badefc5..0000000
--- a/ruoyi-ui/src/layout/components/InnerLink/index.vue
+++ /dev/null
@@ -1,47 +0,0 @@
-<template>
-  <div :style="'height:' + height" v-loading="loading" element-loading-text="正在加载页面,请稍候!">
-    <iframe
-      :id="iframeId"
-      style="width: 100%; height: 100%"
-      :src="src"
-      frameborder="no"
-    ></iframe>
-  </div>
-</template>
-
-<script>
-export default {
-  props: {
-    src: {
-      type: String,
-      default: "/"
-    },
-    iframeId: {
-      type: String
-    }
-  },
-  data() {
-    return {
-      loading: false,
-      height: document.documentElement.clientHeight - 94.5 + "px;"
-    };
-  },
-  mounted() {
-    var _this = this;
-    const iframeId = ("#" + this.iframeId).replace(/\//g, "\\/");
-    const iframe = document.querySelector(iframeId);
-    // iframe页面loading控制
-    if (iframe.attachEvent) {
-      this.loading = true;
-      iframe.attachEvent("onload", function () {
-        _this.loading = false;
-      });
-    } else {
-      this.loading = true;
-      iframe.onload = function () {
-        _this.loading = false;
-      };
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/layout/components/Navbar.vue b/ruoyi-ui/src/layout/components/Navbar.vue
deleted file mode 100644
index 466cd98..0000000
--- a/ruoyi-ui/src/layout/components/Navbar.vue
+++ /dev/null
@@ -1,200 +0,0 @@
-<template>
-  <div class="navbar">
-    <hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
-
-    <breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav"/>
-    <top-nav id="topmenu-container" class="topmenu-container" v-if="topNav"/>
-
-    <div class="right-menu">
-      <template v-if="device!=='mobile'">
-        <search id="header-search" class="right-menu-item" />
-
-        <el-tooltip content="源码地址" effect="dark" placement="bottom">
-          <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
-        </el-tooltip>
-
-        <el-tooltip content="文档地址" effect="dark" placement="bottom">
-          <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
-        </el-tooltip>
-
-        <screenfull id="screenfull" class="right-menu-item hover-effect" />
-
-        <el-tooltip content="布局大小" effect="dark" placement="bottom">
-          <size-select id="size-select" class="right-menu-item hover-effect" />
-        </el-tooltip>
-
-      </template>
-
-      <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
-        <div class="avatar-wrapper">
-          <img :src="avatar" class="user-avatar">
-          <i class="el-icon-caret-bottom" />
-        </div>
-        <el-dropdown-menu slot="dropdown">
-          <router-link to="/user/profile">
-            <el-dropdown-item>个人中心</el-dropdown-item>
-          </router-link>
-          <el-dropdown-item @click.native="setting = true">
-            <span>布局设置</span>
-          </el-dropdown-item>
-          <el-dropdown-item divided @click.native="logout">
-            <span>退出登录</span>
-          </el-dropdown-item>
-        </el-dropdown-menu>
-      </el-dropdown>
-    </div>
-  </div>
-</template>
-
-<script>
-import { mapGetters } from 'vuex'
-import Breadcrumb from '@/components/Breadcrumb'
-import TopNav from '@/components/TopNav'
-import Hamburger from '@/components/Hamburger'
-import Screenfull from '@/components/Screenfull'
-import SizeSelect from '@/components/SizeSelect'
-import Search from '@/components/HeaderSearch'
-import RuoYiGit from '@/components/RuoYi/Git'
-import RuoYiDoc from '@/components/RuoYi/Doc'
-
-export default {
-  components: {
-    Breadcrumb,
-    TopNav,
-    Hamburger,
-    Screenfull,
-    SizeSelect,
-    Search,
-    RuoYiGit,
-    RuoYiDoc
-  },
-  computed: {
-    ...mapGetters([
-      'sidebar',
-      'avatar',
-      'device'
-    ]),
-    setting: {
-      get() {
-        return this.$store.state.settings.showSettings
-      },
-      set(val) {
-        this.$store.dispatch('settings/changeSetting', {
-          key: 'showSettings',
-          value: val
-        })
-      }
-    },
-    topNav: {
-      get() {
-        return this.$store.state.settings.topNav
-      }
-    }
-  },
-  methods: {
-    toggleSideBar() {
-      this.$store.dispatch('app/toggleSideBar')
-    },
-    async logout() {
-      this.$confirm('确定注销并退出系统吗?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        this.$store.dispatch('LogOut').then(() => {
-          location.href = '/index';
-        })
-      }).catch(() => {});
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.navbar {
-  height: 50px;
-  overflow: hidden;
-  position: relative;
-  background: #fff;
-  box-shadow: 0 1px 4px rgba(0,21,41,.08);
-
-  .hamburger-container {
-    line-height: 46px;
-    height: 100%;
-    float: left;
-    cursor: pointer;
-    transition: background .3s;
-    -webkit-tap-highlight-color:transparent;
-
-    &:hover {
-      background: rgba(0, 0, 0, .025)
-    }
-  }
-
-  .breadcrumb-container {
-    float: left;
-  }
-
-  .topmenu-container {
-    position: absolute;
-    left: 50px;
-  }
-
-  .errLog-container {
-    display: inline-block;
-    vertical-align: top;
-  }
-
-  .right-menu {
-    float: right;
-    height: 100%;
-    line-height: 50px;
-
-    &:focus {
-      outline: none;
-    }
-
-    .right-menu-item {
-      display: inline-block;
-      padding: 0 8px;
-      height: 100%;
-      font-size: 18px;
-      color: #5a5e66;
-      vertical-align: text-bottom;
-
-      &.hover-effect {
-        cursor: pointer;
-        transition: background .3s;
-
-        &:hover {
-          background: rgba(0, 0, 0, .025)
-        }
-      }
-    }
-
-    .avatar-container {
-      margin-right: 30px;
-
-      .avatar-wrapper {
-        margin-top: 5px;
-        position: relative;
-
-        .user-avatar {
-          cursor: pointer;
-          width: 40px;
-          height: 40px;
-          border-radius: 10px;
-        }
-
-        .el-icon-caret-bottom {
-          cursor: pointer;
-          position: absolute;
-          right: -20px;
-          top: 25px;
-          font-size: 12px;
-        }
-      }
-    }
-  }
-}
-</style>
diff --git a/ruoyi-ui/src/layout/components/Settings/index.vue b/ruoyi-ui/src/layout/components/Settings/index.vue
deleted file mode 100644
index bb3c9ce..0000000
--- a/ruoyi-ui/src/layout/components/Settings/index.vue
+++ /dev/null
@@ -1,260 +0,0 @@
-<template>
-  <el-drawer size="280px" :visible="visible" :with-header="false" :append-to-body="true" :show-close="false">
-    <div class="drawer-container">
-      <div>
-        <div class="setting-drawer-content">
-          <div class="setting-drawer-title">
-            <h3 class="drawer-title">主题风格设置</h3>
-          </div>
-          <div class="setting-drawer-block-checbox">
-            <div class="setting-drawer-block-checbox-item" @click="handleTheme('theme-dark')">
-              <img src="@/assets/images/dark.svg" alt="dark">
-              <div v-if="sideTheme === 'theme-dark'" class="setting-drawer-block-checbox-selectIcon" style="display: block;">
-                <i aria-label="图标: check" class="anticon anticon-check">
-                  <svg viewBox="64 64 896 896" data-icon="check" width="1em" height="1em" :fill="theme" aria-hidden="true" focusable="false" class="">
-                    <path d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"/>
-                  </svg>
-                </i>
-              </div>
-            </div>
-            <div class="setting-drawer-block-checbox-item" @click="handleTheme('theme-light')">
-              <img src="@/assets/images/light.svg" alt="light">
-              <div v-if="sideTheme === 'theme-light'" class="setting-drawer-block-checbox-selectIcon" style="display: block;">
-                <i aria-label="图标: check" class="anticon anticon-check">
-                  <svg viewBox="64 64 896 896" data-icon="check" width="1em" height="1em" :fill="theme" aria-hidden="true" focusable="false" class="">
-                    <path d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"/>
-                  </svg>
-                </i>
-              </div>
-            </div>
-          </div>
-
-          <div class="drawer-item">
-            <span>主题颜色</span>
-            <theme-picker style="float: right;height: 26px;margin: -3px 8px 0 0;" @change="themeChange" />
-          </div>
-        </div>
-
-        <el-divider/>
-
-        <h3 class="drawer-title">系统布局配置</h3>
-
-        <div class="drawer-item">
-          <span>开启 TopNav</span>
-          <el-switch v-model="topNav" class="drawer-switch" />
-        </div>
-
-        <div class="drawer-item">
-          <span>开启 Tags-Views</span>
-          <el-switch v-model="tagsView" class="drawer-switch" />
-        </div>
-
-        <div class="drawer-item">
-          <span>固定 Header</span>
-          <el-switch v-model="fixedHeader" class="drawer-switch" />
-        </div>
-
-        <div class="drawer-item">
-          <span>显示 Logo</span>
-          <el-switch v-model="sidebarLogo" class="drawer-switch" />
-        </div>
-
-        <div class="drawer-item">
-          <span>动态标题</span>
-          <el-switch v-model="dynamicTitle" class="drawer-switch" />
-        </div>
-
-        <el-divider/>
-
-        <el-button size="small" type="primary" plain icon="el-icon-document-add" @click="saveSetting">保存配置</el-button>
-        <el-button size="small" plain icon="el-icon-refresh" @click="resetSetting">重置配置</el-button>
-      </div>
-    </div>
-  </el-drawer>
-</template>
-
-<script>
-import ThemePicker from '@/components/ThemePicker'
-
-export default {
-  components: { ThemePicker },
-  data() {
-    return {
-      theme: this.$store.state.settings.theme,
-      sideTheme: this.$store.state.settings.sideTheme
-    };
-  },
-  computed: {
-    visible: {
-      get() {
-        return this.$store.state.settings.showSettings
-      }
-    },
-    fixedHeader: {
-      get() {
-        return this.$store.state.settings.fixedHeader
-      },
-      set(val) {
-        this.$store.dispatch('settings/changeSetting', {
-          key: 'fixedHeader',
-          value: val
-        })
-      }
-    },
-    topNav: {
-      get() {
-        return this.$store.state.settings.topNav
-      },
-      set(val) {
-        this.$store.dispatch('settings/changeSetting', {
-          key: 'topNav',
-          value: val
-        })
-        if (!val) {
-          this.$store.dispatch('app/toggleSideBarHide', false);
-          this.$store.commit("SET_SIDEBAR_ROUTERS", this.$store.state.permission.defaultRoutes);
-        }
-      }
-    },
-    tagsView: {
-      get() {
-        return this.$store.state.settings.tagsView
-      },
-      set(val) {
-        this.$store.dispatch('settings/changeSetting', {
-          key: 'tagsView',
-          value: val
-        })
-      }
-    },
-    sidebarLogo: {
-      get() {
-        return this.$store.state.settings.sidebarLogo
-      },
-      set(val) {
-        this.$store.dispatch('settings/changeSetting', {
-          key: 'sidebarLogo',
-          value: val
-        })
-      }
-    },
-    dynamicTitle: {
-      get() {
-        return this.$store.state.settings.dynamicTitle
-      },
-      set(val) {
-        this.$store.dispatch('settings/changeSetting', {
-          key: 'dynamicTitle',
-          value: val
-        })
-      }
-    },
-  },
-  methods: {
-    themeChange(val) {
-      this.$store.dispatch('settings/changeSetting', {
-        key: 'theme',
-        value: val
-      })
-      this.theme = val;
-    },
-    handleTheme(val) {
-      this.$store.dispatch('settings/changeSetting', {
-        key: 'sideTheme',
-        value: val
-      })
-      this.sideTheme = val;
-    },
-    saveSetting() {
-      this.$modal.loading("正在保存到本地,请稍候...");
-      this.$cache.local.set(
-        "layout-setting",
-        `{
-            "topNav":${this.topNav},
-            "tagsView":${this.tagsView},
-            "fixedHeader":${this.fixedHeader},
-            "sidebarLogo":${this.sidebarLogo},
-            "dynamicTitle":${this.dynamicTitle},
-            "sideTheme":"${this.sideTheme}",
-            "theme":"${this.theme}"
-          }`
-      );
-      setTimeout(this.$modal.closeLoading(), 1000)
-    },
-    resetSetting() {
-      this.$modal.loading("正在清除设置缓存并刷新,请稍候...");
-      this.$cache.local.remove("layout-setting")
-      setTimeout("window.location.reload()", 1000)
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-  .setting-drawer-content {
-    .setting-drawer-title {
-      margin-bottom: 12px;
-      color: rgba(0, 0, 0, .85);
-      font-size: 14px;
-      line-height: 22px;
-      font-weight: bold;
-    }
-
-    .setting-drawer-block-checbox {
-      display: flex;
-      justify-content: flex-start;
-      align-items: center;
-      margin-top: 10px;
-      margin-bottom: 20px;
-
-      .setting-drawer-block-checbox-item {
-        position: relative;
-        margin-right: 16px;
-        border-radius: 2px;
-        cursor: pointer;
-
-        img {
-          width: 48px;
-          height: 48px;
-        }
-
-        .setting-drawer-block-checbox-selectIcon {
-          position: absolute;
-          top: 0;
-          right: 0;
-          width: 100%;
-          height: 100%;
-          padding-top: 15px;
-          padding-left: 24px;
-          color: #1890ff;
-          font-weight: 700;
-          font-size: 14px;
-        }
-      }
-    }
-  }
-
-  .drawer-container {
-    padding: 20px;
-    font-size: 14px;
-    line-height: 1.5;
-    word-wrap: break-word;
-
-    .drawer-title {
-      margin-bottom: 12px;
-      color: rgba(0, 0, 0, .85);
-      font-size: 14px;
-      line-height: 22px;
-    }
-
-    .drawer-item {
-      color: rgba(0, 0, 0, .65);
-      font-size: 14px;
-      padding: 12px 0;
-    }
-
-    .drawer-switch {
-      float: right
-    }
-  }
-</style>
diff --git a/ruoyi-ui/src/layout/components/Sidebar/FixiOSBug.js b/ruoyi-ui/src/layout/components/Sidebar/FixiOSBug.js
deleted file mode 100644
index 6823726..0000000
--- a/ruoyi-ui/src/layout/components/Sidebar/FixiOSBug.js
+++ /dev/null
@@ -1,25 +0,0 @@
-export default {
-  computed: {
-    device() {
-      return this.$store.state.app.device
-    }
-  },
-  mounted() {
-    // In order to fix the click on menu on the ios device will trigger the mouseleave bug
-    this.fixBugIniOS()
-  },
-  methods: {
-    fixBugIniOS() {
-      const $subMenu = this.$refs.subMenu
-      if ($subMenu) {
-        const handleMouseleave = $subMenu.handleMouseleave
-        $subMenu.handleMouseleave = (e) => {
-          if (this.device === 'mobile') {
-            return
-          }
-          handleMouseleave(e)
-        }
-      }
-    }
-  }
-}
diff --git a/ruoyi-ui/src/layout/components/Sidebar/Item.vue b/ruoyi-ui/src/layout/components/Sidebar/Item.vue
deleted file mode 100644
index be3285d..0000000
--- a/ruoyi-ui/src/layout/components/Sidebar/Item.vue
+++ /dev/null
@@ -1,33 +0,0 @@
-<script>
-export default {
-  name: 'MenuItem',
-  functional: true,
-  props: {
-    icon: {
-      type: String,
-      default: ''
-    },
-    title: {
-      type: String,
-      default: ''
-    }
-  },
-  render(h, context) {
-    const { icon, title } = context.props
-    const vnodes = []
-
-    if (icon) {
-      vnodes.push(<svg-icon icon-class={icon}/>)
-    }
-
-    if (title) {
-      if (title.length > 5) {
-        vnodes.push(<span slot='title' title={(title)}>{(title)}</span>)
-      } else {
-        vnodes.push(<span slot='title'>{(title)}</span>)
-      }
-    }
-    return vnodes
-  }
-}
-</script>
diff --git a/ruoyi-ui/src/layout/components/Sidebar/Link.vue b/ruoyi-ui/src/layout/components/Sidebar/Link.vue
deleted file mode 100644
index 8b0bc93..0000000
--- a/ruoyi-ui/src/layout/components/Sidebar/Link.vue
+++ /dev/null
@@ -1,43 +0,0 @@
-<template>
-  <component :is="type" v-bind="linkProps(to)">
-    <slot />
-  </component>
-</template>
-
-<script>
-import { isExternal } from '@/utils/validate'
-
-export default {
-  props: {
-    to: {
-      type: [String, Object],
-      required: true
-    }
-  },
-  computed: {
-    isExternal() {
-      return isExternal(this.to)
-    },
-    type() {
-      if (this.isExternal) {
-        return 'a'
-      }
-      return 'router-link'
-    }
-  },
-  methods: {
-    linkProps(to) {
-      if (this.isExternal) {
-        return {
-          href: to,
-          target: '_blank',
-          rel: 'noopener'
-        }
-      }
-      return {
-        to: to
-      }
-    }
-  }
-}
-</script>
diff --git a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue b/ruoyi-ui/src/layout/components/Sidebar/Logo.vue
deleted file mode 100644
index 2774cc8..0000000
--- a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue
+++ /dev/null
@@ -1,93 +0,0 @@
-<template>
-  <div class="sidebar-logo-container" :class="{'collapse':collapse}" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }">
-    <transition name="sidebarLogoFade">
-      <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
-        <img v-if="logo" :src="logo" class="sidebar-logo" />
-        <h1 v-else class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
-      </router-link>
-      <router-link v-else key="expand" class="sidebar-logo-link" to="/">
-        <img v-if="logo" :src="logo" class="sidebar-logo" />
-        <h1 class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
-      </router-link>
-    </transition>
-  </div>
-</template>
-
-<script>
-import logoImg from '@/assets/logo/logo.png'
-import variables from '@/assets/styles/variables.scss'
-
-export default {
-  name: 'SidebarLogo',
-  props: {
-    collapse: {
-      type: Boolean,
-      required: true
-    }
-  },
-  computed: {
-    variables() {
-      return variables;
-    },
-    sideTheme() {
-      return this.$store.state.settings.sideTheme
-    }
-  },
-  data() {
-    return {
-      title: process.env.VUE_APP_TITLE,
-      logo: logoImg
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.sidebarLogoFade-enter-active {
-  transition: opacity 1.5s;
-}
-
-.sidebarLogoFade-enter,
-.sidebarLogoFade-leave-to {
-  opacity: 0;
-}
-
-.sidebar-logo-container {
-  position: relative;
-  width: 100%;
-  height: 50px;
-  line-height: 50px;
-  background: #2b2f3a;
-  text-align: center;
-  overflow: hidden;
-
-  & .sidebar-logo-link {
-    height: 100%;
-    width: 100%;
-
-    & .sidebar-logo {
-      width: 32px;
-      height: 32px;
-      vertical-align: middle;
-      margin-right: 12px;
-    }
-
-    & .sidebar-title {
-      display: inline-block;
-      margin: 0;
-      color: #fff;
-      font-weight: 600;
-      line-height: 50px;
-      font-size: 14px;
-      font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
-      vertical-align: middle;
-    }
-  }
-
-  &.collapse {
-    .sidebar-logo {
-      margin-right: 0px;
-    }
-  }
-}
-</style>
diff --git a/ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue b/ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue
deleted file mode 100644
index 82ba407..0000000
--- a/ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue
+++ /dev/null
@@ -1,100 +0,0 @@
-<template>
-  <div v-if="!item.hidden">
-    <template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow">
-      <app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path, onlyOneChild.query)">
-        <el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}">
-          <item :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="onlyOneChild.meta.title" />
-        </el-menu-item>
-      </app-link>
-    </template>
-
-    <el-submenu v-else ref="subMenu" :index="resolvePath(item.path)" popper-append-to-body>
-      <template slot="title">
-        <item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="item.meta.title" />
-      </template>
-      <sidebar-item
-        v-for="(child, index) in item.children"
-        :key="child.path + index"
-        :is-nest="true"
-        :item="child"
-        :base-path="resolvePath(child.path)"
-        class="nest-menu"
-      />
-    </el-submenu>
-  </div>
-</template>
-
-<script>
-import path from 'path'
-import { isExternal } from '@/utils/validate'
-import Item from './Item'
-import AppLink from './Link'
-import FixiOSBug from './FixiOSBug'
-
-export default {
-  name: 'SidebarItem',
-  components: { Item, AppLink },
-  mixins: [FixiOSBug],
-  props: {
-    // route object
-    item: {
-      type: Object,
-      required: true
-    },
-    isNest: {
-      type: Boolean,
-      default: false
-    },
-    basePath: {
-      type: String,
-      default: ''
-    }
-  },
-  data() {
-    this.onlyOneChild = null
-    return {}
-  },
-  methods: {
-    hasOneShowingChild(children = [], parent) {
-      if (!children) {
-        children = [];
-      }
-      const showingChildren = children.filter(item => {
-        if (item.hidden) {
-          return false
-        } else {
-          // Temp set(will be used if only has one showing child)
-          this.onlyOneChild = item
-          return true
-        }
-      })
-
-      // When there is only one child router, the child router is displayed by default
-      if (showingChildren.length === 1) {
-        return true
-      }
-
-      // Show parent if there are no child router to display
-      if (showingChildren.length === 0) {
-        this.onlyOneChild = { ... parent, path: '', noShowingChildren: true }
-        return true
-      }
-
-      return false
-    },
-    resolvePath(routePath, routeQuery) {
-      if (isExternal(routePath)) {
-        return routePath
-      }
-      if (isExternal(this.basePath)) {
-        return this.basePath
-      }
-      if (routeQuery) {
-        let query = JSON.parse(routeQuery);
-        return { path: path.resolve(this.basePath, routePath), query: query }
-      }
-      return path.resolve(this.basePath, routePath)
-    }
-  }
-}
-</script>
diff --git a/ruoyi-ui/src/layout/components/Sidebar/index.vue b/ruoyi-ui/src/layout/components/Sidebar/index.vue
deleted file mode 100644
index 51d0839..0000000
--- a/ruoyi-ui/src/layout/components/Sidebar/index.vue
+++ /dev/null
@@ -1,57 +0,0 @@
-<template>
-    <div :class="{'has-logo':showLogo}" :style="{ backgroundColor: settings.sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }">
-        <logo v-if="showLogo" :collapse="isCollapse" />
-        <el-scrollbar :class="settings.sideTheme" wrap-class="scrollbar-wrapper">
-            <el-menu
-                :default-active="activeMenu"
-                :collapse="isCollapse"
-                :background-color="settings.sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground"
-                :text-color="settings.sideTheme === 'theme-dark' ? variables.menuColor : variables.menuLightColor"
-                :unique-opened="true"
-                :active-text-color="settings.theme"
-                :collapse-transition="false"
-                mode="vertical"
-            >
-                <sidebar-item
-                    v-for="(route, index) in sidebarRouters"
-                    :key="route.path  + index"
-                    :item="route"
-                    :base-path="route.path"
-                />
-            </el-menu>
-        </el-scrollbar>
-    </div>
-</template>
-
-<script>
-import { mapGetters, mapState } from "vuex";
-import Logo from "./Logo";
-import SidebarItem from "./SidebarItem";
-import variables from "@/assets/styles/variables.scss";
-
-export default {
-    components: { SidebarItem, Logo },
-    computed: {
-        ...mapState(["settings"]),
-        ...mapGetters(["sidebarRouters", "sidebar"]),
-        activeMenu() {
-            const route = this.$route;
-            const { meta, path } = route;
-            // if set path, the sidebar will highlight the path you set
-            if (meta.activeMenu) {
-                return meta.activeMenu;
-            }
-            return path;
-        },
-        showLogo() {
-            return this.$store.state.settings.sidebarLogo;
-        },
-        variables() {
-            return variables;
-        },
-        isCollapse() {
-            return !this.sidebar.opened;
-        }
-    }
-};
-</script>
diff --git a/ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue b/ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue
deleted file mode 100644
index bb753a1..0000000
--- a/ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue
+++ /dev/null
@@ -1,94 +0,0 @@
-<template>
-  <el-scrollbar ref="scrollContainer" :vertical="false" class="scroll-container" @wheel.native.prevent="handleScroll">
-    <slot />
-  </el-scrollbar>
-</template>
-
-<script>
-const tagAndTagSpacing = 4 // tagAndTagSpacing
-
-export default {
-  name: 'ScrollPane',
-  data() {
-    return {
-      left: 0
-    }
-  },
-  computed: {
-    scrollWrapper() {
-      return this.$refs.scrollContainer.$refs.wrap
-    }
-  },
-  mounted() {
-    this.scrollWrapper.addEventListener('scroll', this.emitScroll, true)
-  },
-  beforeDestroy() {
-    this.scrollWrapper.removeEventListener('scroll', this.emitScroll)
-  },
-  methods: {
-    handleScroll(e) {
-      const eventDelta = e.wheelDelta || -e.deltaY * 40
-      const $scrollWrapper = this.scrollWrapper
-      $scrollWrapper.scrollLeft = $scrollWrapper.scrollLeft + eventDelta / 4
-    },
-    emitScroll() {
-      this.$emit('scroll')
-    },
-    moveToTarget(currentTag) {
-      const $container = this.$refs.scrollContainer.$el
-      const $containerWidth = $container.offsetWidth
-      const $scrollWrapper = this.scrollWrapper
-      const tagList = this.$parent.$refs.tag
-
-      let firstTag = null
-      let lastTag = null
-
-      // find first tag and last tag
-      if (tagList.length > 0) {
-        firstTag = tagList[0]
-        lastTag = tagList[tagList.length - 1]
-      }
-
-      if (firstTag === currentTag) {
-        $scrollWrapper.scrollLeft = 0
-      } else if (lastTag === currentTag) {
-        $scrollWrapper.scrollLeft = $scrollWrapper.scrollWidth - $containerWidth
-      } else {
-        // find preTag and nextTag
-        const currentIndex = tagList.findIndex(item => item === currentTag)
-        const prevTag = tagList[currentIndex - 1]
-        const nextTag = tagList[currentIndex + 1]
-
-        // the tag's offsetLeft after of nextTag
-        const afterNextTagOffsetLeft = nextTag.$el.offsetLeft + nextTag.$el.offsetWidth + tagAndTagSpacing
-
-        // the tag's offsetLeft before of prevTag
-        const beforePrevTagOffsetLeft = prevTag.$el.offsetLeft - tagAndTagSpacing
-
-        if (afterNextTagOffsetLeft > $scrollWrapper.scrollLeft + $containerWidth) {
-          $scrollWrapper.scrollLeft = afterNextTagOffsetLeft - $containerWidth
-        } else if (beforePrevTagOffsetLeft < $scrollWrapper.scrollLeft) {
-          $scrollWrapper.scrollLeft = beforePrevTagOffsetLeft
-        }
-      }
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.scroll-container {
-  white-space: nowrap;
-  position: relative;
-  overflow: hidden;
-  width: 100%;
-  ::v-deep {
-    .el-scrollbar__bar {
-      bottom: 0px;
-    }
-    .el-scrollbar__wrap {
-      height: 49px;
-    }
-  }
-}
-</style>
diff --git a/ruoyi-ui/src/layout/components/TagsView/index.vue b/ruoyi-ui/src/layout/components/TagsView/index.vue
deleted file mode 100644
index 96585a5..0000000
--- a/ruoyi-ui/src/layout/components/TagsView/index.vue
+++ /dev/null
@@ -1,332 +0,0 @@
-<template>
-  <div id="tags-view-container" class="tags-view-container">
-    <scroll-pane ref="scrollPane" class="tags-view-wrapper" @scroll="handleScroll">
-      <router-link
-        v-for="tag in visitedViews"
-        ref="tag"
-        :key="tag.path"
-        :class="isActive(tag)?'active':''"
-        :to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }"
-        tag="span"
-        class="tags-view-item"
-        :style="activeStyle(tag)"
-        @click.middle.native="!isAffix(tag)?closeSelectedTag(tag):''"
-        @contextmenu.prevent.native="openMenu(tag,$event)"
-      >
-        {{ tag.title }}
-        <span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" />
-      </router-link>
-    </scroll-pane>
-    <ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu">
-      <li @click="refreshSelectedTag(selectedTag)"><i class="el-icon-refresh-right"></i> 刷新页面</li>
-      <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)"><i class="el-icon-close"></i> 关闭当前</li>
-      <li @click="closeOthersTags"><i class="el-icon-circle-close"></i> 关闭其他</li>
-      <li v-if="!isFirstView()" @click="closeLeftTags"><i class="el-icon-back"></i> 关闭左侧</li>
-      <li v-if="!isLastView()" @click="closeRightTags"><i class="el-icon-right"></i> 关闭右侧</li>
-      <li @click="closeAllTags(selectedTag)"><i class="el-icon-circle-close"></i> 全部关闭</li>
-    </ul>
-  </div>
-</template>
-
-<script>
-import ScrollPane from './ScrollPane'
-import path from 'path'
-
-export default {
-  components: { ScrollPane },
-  data() {
-    return {
-      visible: false,
-      top: 0,
-      left: 0,
-      selectedTag: {},
-      affixTags: []
-    }
-  },
-  computed: {
-    visitedViews() {
-      return this.$store.state.tagsView.visitedViews
-    },
-    routes() {
-      return this.$store.state.permission.routes
-    },
-    theme() {
-      return this.$store.state.settings.theme;
-    }
-  },
-  watch: {
-    $route() {
-      this.addTags()
-      this.moveToCurrentTag()
-    },
-    visible(value) {
-      if (value) {
-        document.body.addEventListener('click', this.closeMenu)
-      } else {
-        document.body.removeEventListener('click', this.closeMenu)
-      }
-    }
-  },
-  mounted() {
-    this.initTags()
-    this.addTags()
-  },
-  methods: {
-    isActive(route) {
-      return route.path === this.$route.path
-    },
-    activeStyle(tag) {
-      if (!this.isActive(tag)) return {};
-      return {
-        "background-color": this.theme,
-        "border-color": this.theme
-      };
-    },
-    isAffix(tag) {
-      return tag.meta && tag.meta.affix
-    },
-    isFirstView() {
-      try {
-        return this.selectedTag.fullPath === '/index' || this.selectedTag.fullPath === this.visitedViews[1].fullPath
-      } catch (err) {
-        return false
-      }
-    },
-    isLastView() {
-      try {
-        return this.selectedTag.fullPath === this.visitedViews[this.visitedViews.length - 1].fullPath
-      } catch (err) {
-        return false
-      }
-    },
-    filterAffixTags(routes, basePath = '/') {
-      let tags = []
-      routes.forEach(route => {
-        if (route.meta && route.meta.affix) {
-          const tagPath = path.resolve(basePath, route.path)
-          tags.push({
-            fullPath: tagPath,
-            path: tagPath,
-            name: route.name,
-            meta: { ...route.meta }
-          })
-        }
-        if (route.children) {
-          const tempTags = this.filterAffixTags(route.children, route.path)
-          if (tempTags.length >= 1) {
-            tags = [...tags, ...tempTags]
-          }
-        }
-      })
-      return tags
-    },
-    initTags() {
-      const affixTags = this.affixTags = this.filterAffixTags(this.routes)
-      for (const tag of affixTags) {
-        // Must have tag name
-        if (tag.name) {
-          this.$store.dispatch('tagsView/addVisitedView', tag)
-        }
-      }
-    },
-    addTags() {
-      const { name } = this.$route
-      if (name) {
-        this.$store.dispatch('tagsView/addView', this.$route)
-        if (this.$route.meta.link) {
-          this.$store.dispatch('tagsView/addIframeView', this.$route)
-        }
-      }
-      return false
-    },
-    moveToCurrentTag() {
-      const tags = this.$refs.tag
-      this.$nextTick(() => {
-        for (const tag of tags) {
-          if (tag.to.path === this.$route.path) {
-            this.$refs.scrollPane.moveToTarget(tag)
-            // when query is different then update
-            if (tag.to.fullPath !== this.$route.fullPath) {
-              this.$store.dispatch('tagsView/updateVisitedView', this.$route)
-            }
-            break
-          }
-        }
-      })
-    },
-    refreshSelectedTag(view) {
-      this.$tab.refreshPage(view);
-      if (this.$route.meta.link) {
-        this.$store.dispatch('tagsView/delIframeView', this.$route)
-      }
-    },
-    closeSelectedTag(view) {
-      this.$tab.closePage(view).then(({ visitedViews }) => {
-        if (this.isActive(view)) {
-          this.toLastView(visitedViews, view)
-        }
-      })
-    },
-    closeRightTags() {
-      this.$tab.closeRightPage(this.selectedTag).then(visitedViews => {
-        if (!visitedViews.find(i => i.fullPath === this.$route.fullPath)) {
-          this.toLastView(visitedViews)
-        }
-      })
-    },
-    closeLeftTags() {
-      this.$tab.closeLeftPage(this.selectedTag).then(visitedViews => {
-        if (!visitedViews.find(i => i.fullPath === this.$route.fullPath)) {
-          this.toLastView(visitedViews)
-        }
-      })
-    },
-    closeOthersTags() {
-      this.$router.push(this.selectedTag.fullPath).catch(()=>{});
-      this.$tab.closeOtherPage(this.selectedTag).then(() => {
-        this.moveToCurrentTag()
-      })
-    },
-    closeAllTags(view) {
-      this.$tab.closeAllPage().then(({ visitedViews }) => {
-        if (this.affixTags.some(tag => tag.path === this.$route.path)) {
-          return
-        }
-        this.toLastView(visitedViews, view)
-      })
-    },
-    toLastView(visitedViews, view) {
-      const latestView = visitedViews.slice(-1)[0]
-      if (latestView) {
-        this.$router.push(latestView.fullPath)
-      } else {
-        // now the default is to redirect to the home page if there is no tags-view,
-        // you can adjust it according to your needs.
-        if (view.name === 'Dashboard') {
-          // to reload home page
-          this.$router.replace({ path: '/redirect' + view.fullPath })
-        } else {
-          this.$router.push('/')
-        }
-      }
-    },
-    openMenu(tag, e) {
-      const menuMinWidth = 105
-      const offsetLeft = this.$el.getBoundingClientRect().left // container margin left
-      const offsetWidth = this.$el.offsetWidth // container width
-      const maxLeft = offsetWidth - menuMinWidth // left boundary
-      const left = e.clientX - offsetLeft + 15 // 15: margin right
-
-      if (left > maxLeft) {
-        this.left = maxLeft
-      } else {
-        this.left = left
-      }
-
-      this.top = e.clientY
-      this.visible = true
-      this.selectedTag = tag
-    },
-    closeMenu() {
-      this.visible = false
-    },
-    handleScroll() {
-      this.closeMenu()
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.tags-view-container {
-  height: 34px;
-  width: 100%;
-  background: #fff;
-  border-bottom: 1px solid #d8dce5;
-  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04);
-  .tags-view-wrapper {
-    .tags-view-item {
-      display: inline-block;
-      position: relative;
-      cursor: pointer;
-      height: 26px;
-      line-height: 26px;
-      border: 1px solid #d8dce5;
-      color: #495060;
-      background: #fff;
-      padding: 0 8px;
-      font-size: 12px;
-      margin-left: 5px;
-      margin-top: 4px;
-      &:first-of-type {
-        margin-left: 15px;
-      }
-      &:last-of-type {
-        margin-right: 15px;
-      }
-      &.active {
-        background-color: #42b983;
-        color: #fff;
-        border-color: #42b983;
-        &::before {
-          content: '';
-          background: #fff;
-          display: inline-block;
-          width: 8px;
-          height: 8px;
-          border-radius: 50%;
-          position: relative;
-          margin-right: 2px;
-        }
-      }
-    }
-  }
-  .contextmenu {
-    margin: 0;
-    background: #fff;
-    z-index: 3000;
-    position: absolute;
-    list-style-type: none;
-    padding: 5px 0;
-    border-radius: 4px;
-    font-size: 12px;
-    font-weight: 400;
-    color: #333;
-    box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, .3);
-    li {
-      margin: 0;
-      padding: 7px 16px;
-      cursor: pointer;
-      &:hover {
-        background: #eee;
-      }
-    }
-  }
-}
-</style>
-
-<style lang="scss">
-//reset element css of el-icon-close
-.tags-view-wrapper {
-  .tags-view-item {
-    .el-icon-close {
-      width: 16px;
-      height: 16px;
-      vertical-align: 2px;
-      border-radius: 50%;
-      text-align: center;
-      transition: all .3s cubic-bezier(.645, .045, .355, 1);
-      transform-origin: 100% 50%;
-      &:before {
-        transform: scale(.6);
-        display: inline-block;
-        vertical-align: -3px;
-      }
-      &:hover {
-        background-color: #b4bccc;
-        color: #fff;
-      }
-    }
-  }
-}
-</style>
diff --git a/ruoyi-ui/src/layout/components/index.js b/ruoyi-ui/src/layout/components/index.js
deleted file mode 100644
index 104bd3a..0000000
--- a/ruoyi-ui/src/layout/components/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export { default as AppMain } from './AppMain'
-export { default as Navbar } from './Navbar'
-export { default as Settings } from './Settings'
-export { default as Sidebar } from './Sidebar/index.vue'
-export { default as TagsView } from './TagsView/index.vue'
diff --git a/ruoyi-ui/src/layout/index.vue b/ruoyi-ui/src/layout/index.vue
deleted file mode 100644
index dba4393..0000000
--- a/ruoyi-ui/src/layout/index.vue
+++ /dev/null
@@ -1,111 +0,0 @@
-<template>
-  <div :class="classObj" class="app-wrapper" :style="{'--current-color': theme}">
-    <div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside"/>
-    <sidebar v-if="!sidebar.hide" class="sidebar-container"/>
-    <div :class="{hasTagsView:needTagsView,sidebarHide:sidebar.hide}" class="main-container">
-      <div :class="{'fixed-header':fixedHeader}">
-        <navbar/>
-        <tags-view v-if="needTagsView"/>
-      </div>
-      <app-main/>
-      <right-panel>
-        <settings/>
-      </right-panel>
-    </div>
-  </div>
-</template>
-
-<script>
-import RightPanel from '@/components/RightPanel'
-import { AppMain, Navbar, Settings, Sidebar, TagsView } from './components'
-import ResizeMixin from './mixin/ResizeHandler'
-import { mapState } from 'vuex'
-import variables from '@/assets/styles/variables.scss'
-
-export default {
-  name: 'Layout',
-  components: {
-    AppMain,
-    Navbar,
-    RightPanel,
-    Settings,
-    Sidebar,
-    TagsView
-  },
-  mixins: [ResizeMixin],
-  computed: {
-    ...mapState({
-      theme: state => state.settings.theme,
-      sideTheme: state => state.settings.sideTheme,
-      sidebar: state => state.app.sidebar,
-      device: state => state.app.device,
-      needTagsView: state => state.settings.tagsView,
-      fixedHeader: state => state.settings.fixedHeader
-    }),
-    classObj() {
-      return {
-        hideSidebar: !this.sidebar.opened,
-        openSidebar: this.sidebar.opened,
-        withoutAnimation: this.sidebar.withoutAnimation,
-        mobile: this.device === 'mobile'
-      }
-    },
-    variables() {
-      return variables;
-    }
-  },
-  methods: {
-    handleClickOutside() {
-      this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-  @import "~@/assets/styles/mixin.scss";
-  @import "~@/assets/styles/variables.scss";
-
-  .app-wrapper {
-    @include clearfix;
-    position: relative;
-    height: 100%;
-    width: 100%;
-
-    &.mobile.openSidebar {
-      position: fixed;
-      top: 0;
-    }
-  }
-
-  .drawer-bg {
-    background: #000;
-    opacity: 0.3;
-    width: 100%;
-    top: 0;
-    height: 100%;
-    position: absolute;
-    z-index: 999;
-  }
-
-  .fixed-header {
-    position: fixed;
-    top: 0;
-    right: 0;
-    z-index: 9;
-    width: calc(100% - #{$base-sidebar-width});
-    transition: width 0.28s;
-  }
-
-  .hideSidebar .fixed-header {
-    width: calc(100% - 54px);
-  }
-
-  .sidebarHide .fixed-header {
-    width: 100%;
-  }
-
-  .mobile .fixed-header {
-    width: 100%;
-  }
-</style>
diff --git a/ruoyi-ui/src/layout/mixin/ResizeHandler.js b/ruoyi-ui/src/layout/mixin/ResizeHandler.js
deleted file mode 100644
index e8d0df8..0000000
--- a/ruoyi-ui/src/layout/mixin/ResizeHandler.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import store from '@/store'
-
-const { body } = document
-const WIDTH = 992 // refer to Bootstrap's responsive design
-
-export default {
-  watch: {
-    $route(route) {
-      if (this.device === 'mobile' && this.sidebar.opened) {
-        store.dispatch('app/closeSideBar', { withoutAnimation: false })
-      }
-    }
-  },
-  beforeMount() {
-    window.addEventListener('resize', this.$_resizeHandler)
-  },
-  beforeDestroy() {
-    window.removeEventListener('resize', this.$_resizeHandler)
-  },
-  mounted() {
-    const isMobile = this.$_isMobile()
-    if (isMobile) {
-      store.dispatch('app/toggleDevice', 'mobile')
-      store.dispatch('app/closeSideBar', { withoutAnimation: true })
-    }
-  },
-  methods: {
-    // use $_ for mixins properties
-    // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
-    $_isMobile() {
-      const rect = body.getBoundingClientRect()
-      return rect.width - 1 < WIDTH
-    },
-    $_resizeHandler() {
-      if (!document.hidden) {
-        const isMobile = this.$_isMobile()
-        store.dispatch('app/toggleDevice', isMobile ? 'mobile' : 'desktop')
-
-        if (isMobile) {
-          store.dispatch('app/closeSideBar', { withoutAnimation: true })
-        }
-      }
-    }
-  }
-}
diff --git a/ruoyi-ui/src/main.js b/ruoyi-ui/src/main.js
deleted file mode 100644
index 13c6cf2..0000000
--- a/ruoyi-ui/src/main.js
+++ /dev/null
@@ -1,86 +0,0 @@
-import Vue from 'vue'
-
-import Cookies from 'js-cookie'
-
-import Element from 'element-ui'
-import './assets/styles/element-variables.scss'
-
-import '@/assets/styles/index.scss' // global css
-import '@/assets/styles/ruoyi.scss' // ruoyi css
-import App from './App'
-import store from './store'
-import router from './router'
-import directive from './directive' // directive
-import plugins from './plugins' // plugins
-import { download } from '@/utils/request'
-
-import './assets/icons' // icon
-import './permission' // permission control
-import { getDicts } from "@/api/system/dict/data";
-import { getConfigKey } from "@/api/system/config";
-import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi";
-// 分页组件
-import Pagination from "@/components/Pagination";
-// 自定义表格工具组件
-import RightToolbar from "@/components/RightToolbar"
-// 富文本组件
-import Editor from "@/components/Editor"
-// 文件上传组件
-import FileUpload from "@/components/FileUpload"
-// 图片上传组件
-import ImageUpload from "@/components/ImageUpload"
-// 图片预览组件
-import ImagePreview from "@/components/ImagePreview"
-// 字典标签组件
-import DictTag from '@/components/DictTag'
-// 头部标签组件
-import VueMeta from 'vue-meta'
-// 字典数据组件
-import DictData from '@/components/DictData'
-
-// 全局方法挂载
-Vue.prototype.getDicts = getDicts
-Vue.prototype.getConfigKey = getConfigKey
-Vue.prototype.parseTime = parseTime
-Vue.prototype.resetForm = resetForm
-Vue.prototype.addDateRange = addDateRange
-Vue.prototype.selectDictLabel = selectDictLabel
-Vue.prototype.selectDictLabels = selectDictLabels
-Vue.prototype.download = download
-Vue.prototype.handleTree = handleTree
-
-// 全局组件挂载
-Vue.component('DictTag', DictTag)
-Vue.component('Pagination', Pagination)
-Vue.component('RightToolbar', RightToolbar)
-Vue.component('Editor', Editor)
-Vue.component('FileUpload', FileUpload)
-Vue.component('ImageUpload', ImageUpload)
-Vue.component('ImagePreview', ImagePreview)
-
-Vue.use(directive)
-Vue.use(plugins)
-Vue.use(VueMeta)
-DictData.install()
-
-/**
- * If you don't want to use mock-server
- * you want to use MockJs for mock api
- * you can execute: mockXHR()
- *
- * Currently MockJs will be used in the production environment,
- * please remove it before going online! ! !
- */
-
-Vue.use(Element, {
-  size: Cookies.get('size') || 'medium' // set element-ui default size
-})
-
-Vue.config.productionTip = false
-
-new Vue({
-  el: '#app',
-  router,
-  store,
-  render: h => h(App)
-})
diff --git a/ruoyi-ui/src/permission.js b/ruoyi-ui/src/permission.js
deleted file mode 100644
index c568979..0000000
--- a/ruoyi-ui/src/permission.js
+++ /dev/null
@@ -1,58 +0,0 @@
-import router from './router'
-import store from './store'
-import { Message } from 'element-ui'
-import NProgress from 'nprogress'
-import 'nprogress/nprogress.css'
-import { getToken } from '@/utils/auth'
-import { isRelogin } from '@/utils/request'
-
-NProgress.configure({ showSpinner: false })
-
-const whiteList = ['/login', '/register']
-
-router.beforeEach((to, from, next) => {
-  NProgress.start()
-  if (getToken()) {
-    to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
-    /* has token*/
-    if (to.path === '/login') {
-      next({ path: '/' })
-      NProgress.done()
-    } else if (whiteList.indexOf(to.path) !== -1) {
-      next()
-    } else {
-      if (store.getters.roles.length === 0) {
-        isRelogin.show = true
-        // 判断当前用户是否已拉取完user_info信息
-        store.dispatch('GetInfo').then(() => {
-          isRelogin.show = false
-          store.dispatch('GenerateRoutes').then(accessRoutes => {
-            // 根据roles权限生成可访问的路由表
-            router.addRoutes(accessRoutes) // 动态添加可访问路由表
-            next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
-          })
-        }).catch(err => {
-            store.dispatch('LogOut').then(() => {
-              Message.error(err)
-              next({ path: '/' })
-            })
-          })
-      } else {
-        next()
-      }
-    }
-  } else {
-    // 没有token
-    if (whiteList.indexOf(to.path) !== -1) {
-      // 在免登录白名单,直接进入
-      next()
-    } else {
-      next(`/login?redirect=${encodeURIComponent(to.fullPath)}`) // 否则全部重定向到登录页
-      NProgress.done()
-    }
-  }
-})
-
-router.afterEach(() => {
-  NProgress.done()
-})
diff --git a/ruoyi-ui/src/plugins/auth.js b/ruoyi-ui/src/plugins/auth.js
deleted file mode 100644
index 6c6bc24..0000000
--- a/ruoyi-ui/src/plugins/auth.js
+++ /dev/null
@@ -1,60 +0,0 @@
-import store from '@/store'
-
-function authPermission(permission) {
-  const all_permission = "*:*:*";
-  const permissions = store.getters && store.getters.permissions
-  if (permission && permission.length > 0) {
-    return permissions.some(v => {
-      return all_permission === v || v === permission
-    })
-  } else {
-    return false
-  }
-}
-
-function authRole(role) {
-  const super_admin = "admin";
-  const roles = store.getters && store.getters.roles
-  if (role && role.length > 0) {
-    return roles.some(v => {
-      return super_admin === v || v === role
-    })
-  } else {
-    return false
-  }
-}
-
-export default {
-  // 验证用户是否具备某权限
-  hasPermi(permission) {
-    return authPermission(permission);
-  },
-  // 验证用户是否含有指定权限,只需包含其中一个
-  hasPermiOr(permissions) {
-    return permissions.some(item => {
-      return authPermission(item)
-    })
-  },
-  // 验证用户是否含有指定权限,必须全部拥有
-  hasPermiAnd(permissions) {
-    return permissions.every(item => {
-      return authPermission(item)
-    })
-  },
-  // 验证用户是否具备某角色
-  hasRole(role) {
-    return authRole(role);
-  },
-  // 验证用户是否含有指定角色,只需包含其中一个
-  hasRoleOr(roles) {
-    return roles.some(item => {
-      return authRole(item)
-    })
-  },
-  // 验证用户是否含有指定角色,必须全部拥有
-  hasRoleAnd(roles) {
-    return roles.every(item => {
-      return authRole(item)
-    })
-  }
-}
diff --git a/ruoyi-ui/src/plugins/cache.js b/ruoyi-ui/src/plugins/cache.js
deleted file mode 100644
index 6b5c00b..0000000
--- a/ruoyi-ui/src/plugins/cache.js
+++ /dev/null
@@ -1,77 +0,0 @@
-const sessionCache = {
-  set (key, value) {
-    if (!sessionStorage) {
-      return
-    }
-    if (key != null && value != null) {
-      sessionStorage.setItem(key, value)
-    }
-  },
-  get (key) {
-    if (!sessionStorage) {
-      return null
-    }
-    if (key == null) {
-      return null
-    }
-    return sessionStorage.getItem(key)
-  },
-  setJSON (key, jsonValue) {
-    if (jsonValue != null) {
-      this.set(key, JSON.stringify(jsonValue))
-    }
-  },
-  getJSON (key) {
-    const value = this.get(key)
-    if (value != null) {
-      return JSON.parse(value)
-    }
-  },
-  remove (key) {
-    sessionStorage.removeItem(key);
-  }
-}
-const localCache = {
-  set (key, value) {
-    if (!localStorage) {
-      return
-    }
-    if (key != null && value != null) {
-      localStorage.setItem(key, value)
-    }
-  },
-  get (key) {
-    if (!localStorage) {
-      return null
-    }
-    if (key == null) {
-      return null
-    }
-    return localStorage.getItem(key)
-  },
-  setJSON (key, jsonValue) {
-    if (jsonValue != null) {
-      this.set(key, JSON.stringify(jsonValue))
-    }
-  },
-  getJSON (key) {
-    const value = this.get(key)
-    if (value != null) {
-      return JSON.parse(value)
-    }
-  },
-  remove (key) {
-    localStorage.removeItem(key);
-  }
-}
-
-export default {
-  /**
-   * 会话级缓存
-   */
-  session: sessionCache,
-  /**
-   * 本地缓存
-   */
-  local: localCache
-}
diff --git a/ruoyi-ui/src/plugins/download.js b/ruoyi-ui/src/plugins/download.js
deleted file mode 100644
index 42acd00..0000000
--- a/ruoyi-ui/src/plugins/download.js
+++ /dev/null
@@ -1,79 +0,0 @@
-import axios from 'axios'
-import {Loading, Message} from 'element-ui'
-import { saveAs } from 'file-saver'
-import { getToken } from '@/utils/auth'
-import errorCode from '@/utils/errorCode'
-import { blobValidate } from "@/utils/ruoyi";
-
-const baseURL = process.env.VUE_APP_BASE_API
-let downloadLoadingInstance;
-
-export default {
-  name(name, isDelete = true) {
-    var url = baseURL + "/common/download?fileName=" + encodeURIComponent(name) + "&delete=" + isDelete
-    axios({
-      method: 'get',
-      url: url,
-      responseType: 'blob',
-      headers: { 'Authorization': 'Bearer ' + getToken() }
-    }).then((res) => {
-      const isBlob = blobValidate(res.data);
-      if (isBlob) {
-        const blob = new Blob([res.data])
-        this.saveAs(blob, decodeURIComponent(res.headers['download-filename']))
-      } else {
-        this.printErrMsg(res.data);
-      }
-    })
-  },
-  resource(resource) {
-    var url = baseURL + "/common/download/resource?resource=" + encodeURIComponent(resource);
-    axios({
-      method: 'get',
-      url: url,
-      responseType: 'blob',
-      headers: { 'Authorization': 'Bearer ' + getToken() }
-    }).then((res) => {
-      const isBlob = blobValidate(res.data);
-      if (isBlob) {
-        const blob = new Blob([res.data])
-        this.saveAs(blob, decodeURIComponent(res.headers['download-filename']))
-      } else {
-        this.printErrMsg(res.data);
-      }
-    })
-  },
-  zip(url, name) {
-    var url = baseURL + url
-    downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })
-    axios({
-      method: 'get',
-      url: url,
-      responseType: 'blob',
-      headers: { 'Authorization': 'Bearer ' + getToken() }
-    }).then((res) => {
-      const isBlob = blobValidate(res.data);
-      if (isBlob) {
-        const blob = new Blob([res.data], { type: 'application/zip' })
-        this.saveAs(blob, name)
-      } else {
-        this.printErrMsg(res.data);
-      }
-      downloadLoadingInstance.close();
-    }).catch((r) => {
-      console.error(r)
-      Message.error('下载文件出现错误,请联系管理员!')
-      downloadLoadingInstance.close();
-    })
-  },
-  saveAs(text, name, opts) {
-    saveAs(text, name, opts);
-  },
-  async printErrMsg(data) {
-    const resText = await data.text();
-    const rspObj = JSON.parse(resText);
-    const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
-    Message.error(errMsg);
-  }
-}
-
diff --git a/ruoyi-ui/src/plugins/index.js b/ruoyi-ui/src/plugins/index.js
deleted file mode 100644
index d000f2d..0000000
--- a/ruoyi-ui/src/plugins/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import tab from './tab'
-import auth from './auth'
-import cache from './cache'
-import modal from './modal'
-import download from './download'
-
-export default {
-  install(Vue) {
-    // 页签操作
-    Vue.prototype.$tab = tab
-    // 认证对象
-    Vue.prototype.$auth = auth
-    // 缓存对象
-    Vue.prototype.$cache = cache
-    // 模态框对象
-    Vue.prototype.$modal = modal
-    // 下载文件
-    Vue.prototype.$download = download
-  }
-}
diff --git a/ruoyi-ui/src/plugins/modal.js b/ruoyi-ui/src/plugins/modal.js
deleted file mode 100644
index b37ca14..0000000
--- a/ruoyi-ui/src/plugins/modal.js
+++ /dev/null
@@ -1,83 +0,0 @@
-import { Message, MessageBox, Notification, Loading } from 'element-ui'
-
-let loadingInstance;
-
-export default {
-  // 消息提示
-  msg(content) {
-    Message.info(content)
-  },
-  // 错误消息
-  msgError(content) {
-    Message.error(content)
-  },
-  // 成功消息
-  msgSuccess(content) {
-    Message.success(content)
-  },
-  // 警告消息
-  msgWarning(content) {
-    Message.warning(content)
-  },
-  // 弹出提示
-  alert(content) {
-    MessageBox.alert(content, "系统提示")
-  },
-  // 错误提示
-  alertError(content) {
-    MessageBox.alert(content, "系统提示", { type: 'error' })
-  },
-  // 成功提示
-  alertSuccess(content) {
-    MessageBox.alert(content, "系统提示", { type: 'success' })
-  },
-  // 警告提示
-  alertWarning(content) {
-    MessageBox.alert(content, "系统提示", { type: 'warning' })
-  },
-  // 通知提示
-  notify(content) {
-    Notification.info(content)
-  },
-  // 错误通知
-  notifyError(content) {
-    Notification.error(content);
-  },
-  // 成功通知
-  notifySuccess(content) {
-    Notification.success(content)
-  },
-  // 警告通知
-  notifyWarning(content) {
-    Notification.warning(content)
-  },
-  // 确认窗体
-  confirm(content) {
-    return MessageBox.confirm(content, "系统提示", {
-      confirmButtonText: '确定',
-      cancelButtonText: '取消',
-      type: "warning",
-    })
-  },
-  // 提交内容
-  prompt(content) {
-    return MessageBox.prompt(content, "系统提示", {
-      confirmButtonText: '确定',
-      cancelButtonText: '取消',
-      type: "warning",
-    })
-  },
-  // 打开遮罩层
-  loading(content) {
-    loadingInstance = Loading.service({
-      lock: true,
-      text: content,
-      spinner: "el-icon-loading",
-      background: "rgba(0, 0, 0, 0.7)",
-    })
-  },
-  // 关闭遮罩层
-  closeLoading() {
-    loadingInstance.close();
-  }
-}
diff --git a/ruoyi-ui/src/plugins/tab.js b/ruoyi-ui/src/plugins/tab.js
deleted file mode 100644
index fcde419..0000000
--- a/ruoyi-ui/src/plugins/tab.js
+++ /dev/null
@@ -1,71 +0,0 @@
-import store from '@/store'
-import router from '@/router';
-
-export default {
-  // 刷新当前tab页签
-  refreshPage(obj) {
-    const { path, query, matched } = router.currentRoute;
-    if (obj === undefined) {
-      matched.forEach((m) => {
-        if (m.components && m.components.default && m.components.default.name) {
-          if (!['Layout', 'ParentView'].includes(m.components.default.name)) {
-            obj = { name: m.components.default.name, path: path, query: query };
-          }
-        }
-      });
-    }
-    return store.dispatch('tagsView/delCachedView', obj).then(() => {
-      const { path, query } = obj
-      router.replace({
-        path: '/redirect' + path,
-        query: query
-      })
-    })
-  },
-  // 关闭当前tab页签,打开新页签
-  closeOpenPage(obj) {
-    store.dispatch("tagsView/delView", router.currentRoute);
-    if (obj !== undefined) {
-      return router.push(obj);
-    }
-  },
-  // 关闭指定tab页签
-  closePage(obj) {
-    if (obj === undefined) {
-      return store.dispatch('tagsView/delView', router.currentRoute).then(({ visitedViews }) => {
-        const latestView = visitedViews.slice(-1)[0]
-        if (latestView) {
-          return router.push(latestView.fullPath)
-        }
-        return router.push('/');
-      });
-    }
-    return store.dispatch('tagsView/delView', obj);
-  },
-  // 关闭所有tab页签
-  closeAllPage() {
-    return store.dispatch('tagsView/delAllViews');
-  },
-  // 关闭左侧tab页签
-  closeLeftPage(obj) {
-    return store.dispatch('tagsView/delLeftTags', obj || router.currentRoute);
-  },
-  // 关闭右侧tab页签
-  closeRightPage(obj) {
-    return store.dispatch('tagsView/delRightTags', obj || router.currentRoute);
-  },
-  // 关闭其他tab页签
-  closeOtherPage(obj) {
-    return store.dispatch('tagsView/delOthersViews', obj || router.currentRoute);
-  },
-  // 添加tab页签
-  openPage(title, url, params) {
-    const obj = { path: url, meta: { title: title } }
-    store.dispatch('tagsView/addView', obj);
-    return router.push({ path: url, query: params });
-  },
-  // 修改tab页签
-  updatePage(obj) {
-    return store.dispatch('tagsView/updateVisitedView', obj);
-  }
-}
diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js
deleted file mode 100644
index 71907b6..0000000
--- a/ruoyi-ui/src/router/index.js
+++ /dev/null
@@ -1,183 +0,0 @@
-import Vue from 'vue'
-import Router from 'vue-router'
-
-Vue.use(Router)
-
-/* Layout */
-import Layout from '@/layout'
-
-/**
- * Note: 路由配置项
- *
- * hidden: true                     // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1
- * alwaysShow: true                 // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面
- *                                  // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面
- *                                  // 若你想不管路由下面的 children 声明的个数都显示你的根路由
- *                                  // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由
- * redirect: noRedirect             // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
- * name:'router-name'               // 设定路由的名字,一定要填写不然使用<keep-alive>时会出现各种问题
- * query: '{"id": 1, "name": "ry"}' // 访问路由的默认传递参数
- * roles: ['admin', 'common']       // 访问路由的角色权限
- * permissions: ['a:a:a', 'b:b:b']  // 访问路由的菜单权限
- * meta : {
-    noCache: true                   // 如果设置为true,则不会被 <keep-alive> 缓存(默认 false)
-    title: 'title'                  // 设置该路由在侧边栏和面包屑中展示的名字
-    icon: 'svg-name'                // 设置该路由的图标,对应路径src/assets/icons/svg
-    breadcrumb: false               // 如果设置为false,则不会在breadcrumb面包屑中显示
-    activeMenu: '/system/user'      // 当路由设置了该属性,则会高亮相对应的侧边栏。
-  }
- */
-
-// 公共路由
-export const constantRoutes = [
-  {
-    path: '/redirect',
-    component: Layout,
-    hidden: true,
-    children: [
-      {
-        path: '/redirect/:path(.*)',
-        component: () => import('@/views/redirect')
-      }
-    ]
-  },
-  {
-    path: '/login',
-    component: () => import('@/views/login'),
-    hidden: true
-  },
-  {
-    path: '/register',
-    component: () => import('@/views/register'),
-    hidden: true
-  },
-  {
-    path: '/404',
-    component: () => import('@/views/error/404'),
-    hidden: true
-  },
-  {
-    path: '/401',
-    component: () => import('@/views/error/401'),
-    hidden: true
-  },
-  {
-    path: '',
-    component: Layout,
-    redirect: 'index',
-    children: [
-      {
-        path: 'index',
-        component: () => import('@/views/index'),
-        name: 'Index',
-        meta: { title: '首页', icon: 'dashboard', affix: true }
-      }
-    ]
-  },
-  {
-    path: '/user',
-    component: Layout,
-    hidden: true,
-    redirect: 'noredirect',
-    children: [
-      {
-        path: 'profile',
-        component: () => import('@/views/system/user/profile/index'),
-        name: 'Profile',
-        meta: { title: '个人中心', icon: 'user' }
-      }
-    ]
-  }
-]
-
-// 动态路由,基于用户权限动态去加载
-export const dynamicRoutes = [
-  {
-    path: '/system/user-auth',
-    component: Layout,
-    hidden: true,
-    permissions: ['system:user:edit'],
-    children: [
-      {
-        path: 'role/:userId(\\d+)',
-        component: () => import('@/views/system/user/authRole'),
-        name: 'AuthRole',
-        meta: { title: '分配角色', activeMenu: '/system/user' }
-      }
-    ]
-  },
-  {
-    path: '/system/role-auth',
-    component: Layout,
-    hidden: true,
-    permissions: ['system:role:edit'],
-    children: [
-      {
-        path: 'user/:roleId(\\d+)',
-        component: () => import('@/views/system/role/authUser'),
-        name: 'AuthUser',
-        meta: { title: '分配用户', activeMenu: '/system/role' }
-      }
-    ]
-  },
-  {
-    path: '/system/dict-data',
-    component: Layout,
-    hidden: true,
-    permissions: ['system:dict:list'],
-    children: [
-      {
-        path: 'index/:dictId(\\d+)',
-        component: () => import('@/views/system/dict/data'),
-        name: 'Data',
-        meta: { title: '字典数据', activeMenu: '/system/dict' }
-      }
-    ]
-  },
-  {
-    path: '/monitor/job-log',
-    component: Layout,
-    hidden: true,
-    permissions: ['monitor:job:list'],
-    children: [
-      {
-        path: 'index/:jobId(\\d+)',
-        component: () => import('@/views/monitor/job/log'),
-        name: 'JobLog',
-        meta: { title: '调度日志', activeMenu: '/monitor/job' }
-      }
-    ]
-  },
-  {
-    path: '/tool/gen-edit',
-    component: Layout,
-    hidden: true,
-    permissions: ['tool:gen:edit'],
-    children: [
-      {
-        path: 'index/:tableId(\\d+)',
-        component: () => import('@/views/tool/gen/editTable'),
-        name: 'GenEdit',
-        meta: { title: '修改生成配置', activeMenu: '/tool/gen' }
-      }
-    ]
-  }
-]
-
-// 防止连续点击多次路由报错
-let routerPush = Router.prototype.push;
-let routerReplace = Router.prototype.replace;
-// push
-Router.prototype.push = function push(location) {
-  return routerPush.call(this, location).catch(err => err)
-}
-// replace
-Router.prototype.replace = function push(location) {
-  return routerReplace.call(this, location).catch(err => err)
-}
-
-export default new Router({
-  mode: 'history', // 去掉url中的#
-  scrollBehavior: () => ({ y: 0 }),
-  routes: constantRoutes
-})
diff --git a/ruoyi-ui/src/settings.js b/ruoyi-ui/src/settings.js
deleted file mode 100644
index 6a0b09f..0000000
--- a/ruoyi-ui/src/settings.js
+++ /dev/null
@@ -1,44 +0,0 @@
-module.exports = {
-  /**
-   * 侧边栏主题 深色主题theme-dark,浅色主题theme-light
-   */
-  sideTheme: 'theme-dark',
-
-  /**
-   * 是否系统布局配置
-   */
-  showSettings: false,
-
-  /**
-   * 是否显示顶部导航
-   */
-  topNav: false,
-
-  /**
-   * 是否显示 tagsView
-   */
-  tagsView: true,
-
-  /**
-   * 是否固定头部
-   */
-  fixedHeader: false,
-
-  /**
-   * 是否显示logo
-   */
-  sidebarLogo: true,
-
-  /**
-   * 是否显示动态标题
-   */
-  dynamicTitle: false,
-
-  /**
-   * @type {string | array} 'production' | ['production', 'development']
-   * @description Need show err logs component.
-   * The default is only used in the production env
-   * If you want to also use it in dev, you can pass ['production', 'development']
-   */
-  errorLog: 'production'
-}
diff --git a/ruoyi-ui/src/store/getters.js b/ruoyi-ui/src/store/getters.js
deleted file mode 100644
index 8adb1b6..0000000
--- a/ruoyi-ui/src/store/getters.js
+++ /dev/null
@@ -1,19 +0,0 @@
-const getters = {
-  sidebar: state => state.app.sidebar,
-  size: state => state.app.size,
-  device: state => state.app.device,
-  dict: state => state.dict.dict,
-  visitedViews: state => state.tagsView.visitedViews,
-  cachedViews: state => state.tagsView.cachedViews,
-  token: state => state.user.token,
-  avatar: state => state.user.avatar,
-  name: state => state.user.name,
-  introduction: state => state.user.introduction,
-  roles: state => state.user.roles,
-  permissions: state => state.user.permissions,
-  permission_routes: state => state.permission.routes,
-  topbarRouters:state => state.permission.topbarRouters,
-  defaultRoutes:state => state.permission.defaultRoutes,
-  sidebarRouters:state => state.permission.sidebarRouters,
-}
-export default getters
diff --git a/ruoyi-ui/src/store/index.js b/ruoyi-ui/src/store/index.js
deleted file mode 100644
index 97aaef8..0000000
--- a/ruoyi-ui/src/store/index.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import Vue from 'vue'
-import Vuex from 'vuex'
-import app from './modules/app'
-import dict from './modules/dict'
-import user from './modules/user'
-import tagsView from './modules/tagsView'
-import permission from './modules/permission'
-import settings from './modules/settings'
-import getters from './getters'
-
-Vue.use(Vuex)
-
-const store = new Vuex.Store({
-  modules: {
-    app,
-    dict,
-    user,
-    tagsView,
-    permission,
-    settings
-  },
-  getters
-})
-
-export default store
diff --git a/ruoyi-ui/src/store/modules/app.js b/ruoyi-ui/src/store/modules/app.js
deleted file mode 100644
index 3e22d1c..0000000
--- a/ruoyi-ui/src/store/modules/app.js
+++ /dev/null
@@ -1,66 +0,0 @@
-import Cookies from 'js-cookie'
-
-const state = {
-  sidebar: {
-    opened: Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true,
-    withoutAnimation: false,
-    hide: false
-  },
-  device: 'desktop',
-  size: Cookies.get('size') || 'medium'
-}
-
-const mutations = {
-  TOGGLE_SIDEBAR: state => {
-    if (state.sidebar.hide) {
-      return false;
-    }
-    state.sidebar.opened = !state.sidebar.opened
-    state.sidebar.withoutAnimation = false
-    if (state.sidebar.opened) {
-      Cookies.set('sidebarStatus', 1)
-    } else {
-      Cookies.set('sidebarStatus', 0)
-    }
-  },
-  CLOSE_SIDEBAR: (state, withoutAnimation) => {
-    Cookies.set('sidebarStatus', 0)
-    state.sidebar.opened = false
-    state.sidebar.withoutAnimation = withoutAnimation
-  },
-  TOGGLE_DEVICE: (state, device) => {
-    state.device = device
-  },
-  SET_SIZE: (state, size) => {
-    state.size = size
-    Cookies.set('size', size)
-  },
-  SET_SIDEBAR_HIDE: (state, status) => {
-    state.sidebar.hide = status
-  }
-}
-
-const actions = {
-  toggleSideBar({ commit }) {
-    commit('TOGGLE_SIDEBAR')
-  },
-  closeSideBar({ commit }, { withoutAnimation }) {
-    commit('CLOSE_SIDEBAR', withoutAnimation)
-  },
-  toggleDevice({ commit }, device) {
-    commit('TOGGLE_DEVICE', device)
-  },
-  setSize({ commit }, size) {
-    commit('SET_SIZE', size)
-  },
-  toggleSideBarHide({ commit }, status) {
-    commit('SET_SIDEBAR_HIDE', status)
-  }
-}
-
-export default {
-  namespaced: true,
-  state,
-  mutations,
-  actions
-}
diff --git a/ruoyi-ui/src/store/modules/dict.js b/ruoyi-ui/src/store/modules/dict.js
deleted file mode 100644
index 7a1b2f0..0000000
--- a/ruoyi-ui/src/store/modules/dict.js
+++ /dev/null
@@ -1,50 +0,0 @@
-const state = {
-  dict: new Array()
-}
-const mutations = {
-  SET_DICT: (state, { key, value }) => {
-    if (key !== null && key !== "") {
-      state.dict.push({
-        key: key,
-        value: value
-      })
-    }
-  },
-  REMOVE_DICT: (state, key) => {
-    try {
-      for (let i = 0; i < state.dict.length; i++) {
-        if (state.dict[i].key == key) {
-          state.dict.splice(i, 1)
-          return true
-        }
-      }
-    } catch (e) {
-    }
-  },
-  CLEAN_DICT: (state) => {
-    state.dict = new Array()
-  }
-}
-
-const actions = {
-  // 设置字典
-  setDict({ commit }, data) {
-    commit('SET_DICT', data)
-  },
-  // 删除字典
-  removeDict({ commit }, key) {
-    commit('REMOVE_DICT', key)
-  },
-  // 清空字典
-  cleanDict({ commit }) {
-    commit('CLEAN_DICT')
-  }
-}
-
-export default {
-  namespaced: true,
-  state,
-  mutations,
-  actions
-}
-
diff --git a/ruoyi-ui/src/store/modules/permission.js b/ruoyi-ui/src/store/modules/permission.js
deleted file mode 100644
index b3c216a..0000000
--- a/ruoyi-ui/src/store/modules/permission.js
+++ /dev/null
@@ -1,137 +0,0 @@
-import auth from '@/plugins/auth'
-import router, { constantRoutes, dynamicRoutes } from '@/router'
-import { getRouters } from '@/api/menu'
-import Layout from '@/layout/index'
-import ParentView from '@/components/ParentView'
-import InnerLink from '@/layout/components/InnerLink'
-
-const permission = {
-  state: {
-    routes: [],
-    addRoutes: [],
-    defaultRoutes: [],
-    topbarRouters: [],
-    sidebarRouters: []
-  },
-  mutations: {
-    SET_ROUTES: (state, routes) => {
-      state.addRoutes = routes
-      state.routes = constantRoutes.concat(routes)
-    },
-    SET_DEFAULT_ROUTES: (state, routes) => {
-      state.defaultRoutes = constantRoutes.concat(routes)
-    },
-    SET_TOPBAR_ROUTES: (state, routes) => {
-      state.topbarRouters = routes
-    },
-    SET_SIDEBAR_ROUTERS: (state, routes) => {
-      state.sidebarRouters = routes
-    },
-  },
-  actions: {
-    // 生成路由
-    GenerateRoutes({ commit }) {
-      return new Promise(resolve => {
-        // 向后端请求路由数据
-        getRouters().then(res => {
-          const sdata = JSON.parse(JSON.stringify(res.data))
-          const rdata = JSON.parse(JSON.stringify(res.data))
-          const sidebarRoutes = filterAsyncRouter(sdata)
-          const rewriteRoutes = filterAsyncRouter(rdata, false, true)
-          const asyncRoutes = filterDynamicRoutes(dynamicRoutes);
-          rewriteRoutes.push({ path: '*', redirect: '/404', hidden: true })
-          router.addRoutes(asyncRoutes);
-          commit('SET_ROUTES', rewriteRoutes)
-          commit('SET_SIDEBAR_ROUTERS', constantRoutes.concat(sidebarRoutes))
-          commit('SET_DEFAULT_ROUTES', sidebarRoutes)
-          commit('SET_TOPBAR_ROUTES', sidebarRoutes)
-          resolve(rewriteRoutes)
-        })
-      })
-    }
-  }
-}
-
-// 遍历后台传来的路由字符串,转换为组件对象
-function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) {
-  return asyncRouterMap.filter(route => {
-    if (type && route.children) {
-      route.children = filterChildren(route.children)
-    }
-    if (route.component) {
-      // Layout ParentView 组件特殊处理
-      if (route.component === 'Layout') {
-        route.component = Layout
-      } else if (route.component === 'ParentView') {
-        route.component = ParentView
-      } else if (route.component === 'InnerLink') {
-        route.component = InnerLink
-      } else {
-        route.component = loadView(route.component)
-      }
-    }
-    if (route.children != null && route.children && route.children.length) {
-      route.children = filterAsyncRouter(route.children, route, type)
-    } else {
-      delete route['children']
-      delete route['redirect']
-    }
-    return true
-  })
-}
-
-function filterChildren(childrenMap, lastRouter = false) {
-  var children = []
-  childrenMap.forEach((el, index) => {
-    if (el.children && el.children.length) {
-      if (el.component === 'ParentView' && !lastRouter) {
-        el.children.forEach(c => {
-          c.path = el.path + '/' + c.path
-          if (c.children && c.children.length) {
-            children = children.concat(filterChildren(c.children, c))
-            return
-          }
-          children.push(c)
-        })
-        return
-      }
-    }
-    if (lastRouter) {
-      el.path = lastRouter.path + '/' + el.path
-      if (el.children && el.children.length) {
-        children = children.concat(filterChildren(el.children, el))
-        return
-      }
-    }
-    children = children.concat(el)
-  })
-  return children
-}
-
-// 动态路由遍历,验证是否具备权限
-export function filterDynamicRoutes(routes) {
-  const res = []
-  routes.forEach(route => {
-    if (route.permissions) {
-      if (auth.hasPermiOr(route.permissions)) {
-        res.push(route)
-      }
-    } else if (route.roles) {
-      if (auth.hasRoleOr(route.roles)) {
-        res.push(route)
-      }
-    }
-  })
-  return res
-}
-
-export const loadView = (view) => {
-  if (process.env.NODE_ENV === 'development') {
-    return (resolve) => require([`@/views/${view}`], resolve)
-  } else {
-    // 使用 import 实现生产环境的路由懒加载
-    return () => import(`@/views/${view}`)
-  }
-}
-
-export default permission
diff --git a/ruoyi-ui/src/store/modules/settings.js b/ruoyi-ui/src/store/modules/settings.js
deleted file mode 100644
index 2455a1e..0000000
--- a/ruoyi-ui/src/store/modules/settings.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import defaultSettings from '@/settings'
-
-const { sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle } = defaultSettings
-
-const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''
-const state = {
-  title: '',
-  theme: storageSetting.theme || '#409EFF',
-  sideTheme: storageSetting.sideTheme || sideTheme,
-  showSettings: showSettings,
-  topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav,
-  tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView,
-  fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader,
-  sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo,
-  dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle
-}
-const mutations = {
-  CHANGE_SETTING: (state, { key, value }) => {
-    if (state.hasOwnProperty(key)) {
-      state[key] = value
-    }
-  }
-}
-
-const actions = {
-  // 修改布局设置
-  changeSetting({ commit }, data) {
-    commit('CHANGE_SETTING', data)
-  },
-  // 设置网页标题
-  setTitle({ commit }, title) {
-    state.title = title
-  }
-}
-
-export default {
-  namespaced: true,
-  state,
-  mutations,
-  actions
-}
-
diff --git a/ruoyi-ui/src/store/modules/tagsView.js b/ruoyi-ui/src/store/modules/tagsView.js
deleted file mode 100644
index 5fc011c..0000000
--- a/ruoyi-ui/src/store/modules/tagsView.js
+++ /dev/null
@@ -1,228 +0,0 @@
-const state = {
-  visitedViews: [],
-  cachedViews: [],
-  iframeViews: []
-}
-
-const mutations = {
-  ADD_IFRAME_VIEW: (state, view) => {
-    if (state.iframeViews.some(v => v.path === view.path)) return
-    state.iframeViews.push(
-      Object.assign({}, view, {
-        title: view.meta.title || 'no-name'
-      })
-    )
-  },
-  ADD_VISITED_VIEW: (state, view) => {
-    if (state.visitedViews.some(v => v.path === view.path)) return
-    state.visitedViews.push(
-      Object.assign({}, view, {
-        title: view.meta.title || 'no-name'
-      })
-    )
-  },
-  ADD_CACHED_VIEW: (state, view) => {
-    if (state.cachedViews.includes(view.name)) return
-    if (view.meta && !view.meta.noCache) {
-      state.cachedViews.push(view.name)
-    }
-  },
-  DEL_VISITED_VIEW: (state, view) => {
-    for (const [i, v] of state.visitedViews.entries()) {
-      if (v.path === view.path) {
-        state.visitedViews.splice(i, 1)
-        break
-      }
-    }
-    state.iframeViews = state.iframeViews.filter(item => item.path !== view.path)
-  },
-  DEL_IFRAME_VIEW: (state, view) => {
-    state.iframeViews = state.iframeViews.filter(item => item.path !== view.path)
-  },
-  DEL_CACHED_VIEW: (state, view) => {
-    const index = state.cachedViews.indexOf(view.name)
-    index > -1 && state.cachedViews.splice(index, 1)
-  },
-
-  DEL_OTHERS_VISITED_VIEWS: (state, view) => {
-    state.visitedViews = state.visitedViews.filter(v => {
-      return v.meta.affix || v.path === view.path
-    })
-    state.iframeViews = state.iframeViews.filter(item => item.path === view.path)
-  },
-  DEL_OTHERS_CACHED_VIEWS: (state, view) => {
-    const index = state.cachedViews.indexOf(view.name)
-    if (index > -1) {
-      state.cachedViews = state.cachedViews.slice(index, index + 1)
-    } else {
-      state.cachedViews = []
-    }
-  },
-  DEL_ALL_VISITED_VIEWS: state => {
-    // keep affix tags
-    const affixTags = state.visitedViews.filter(tag => tag.meta.affix)
-    state.visitedViews = affixTags
-    state.iframeViews = []
-  },
-  DEL_ALL_CACHED_VIEWS: state => {
-    state.cachedViews = []
-  },
-  UPDATE_VISITED_VIEW: (state, view) => {
-    for (let v of state.visitedViews) {
-      if (v.path === view.path) {
-        v = Object.assign(v, view)
-        break
-      }
-    }
-  },
-  DEL_RIGHT_VIEWS: (state, view) => {
-    const index = state.visitedViews.findIndex(v => v.path === view.path)
-    if (index === -1) {
-      return
-    }
-    state.visitedViews = state.visitedViews.filter((item, idx) => {
-      if (idx <= index || (item.meta && item.meta.affix)) {
-        return true
-      }
-      const i = state.cachedViews.indexOf(item.name)
-      if (i > -1) {
-        state.cachedViews.splice(i, 1)
-      }
-      if(item.meta.link) {
-        const fi = state.iframeViews.findIndex(v => v.path === item.path)
-        state.iframeViews.splice(fi, 1)
-      }
-      return false
-    })
-  },
-  DEL_LEFT_VIEWS: (state, view) => {
-    const index = state.visitedViews.findIndex(v => v.path === view.path)
-    if (index === -1) {
-      return
-    }
-    state.visitedViews = state.visitedViews.filter((item, idx) => {
-      if (idx >= index || (item.meta && item.meta.affix)) {
-        return true
-      }
-      const i = state.cachedViews.indexOf(item.name)
-      if (i > -1) {
-        state.cachedViews.splice(i, 1)
-      }
-      if(item.meta.link) {
-        const fi = state.iframeViews.findIndex(v => v.path === item.path)
-        state.iframeViews.splice(fi, 1)
-      }
-      return false
-    })
-  }
-}
-
-const actions = {
-  addView({ dispatch }, view) {
-    dispatch('addVisitedView', view)
-    dispatch('addCachedView', view)
-  },
-  addIframeView({ commit }, view) {
-    commit('ADD_IFRAME_VIEW', view)
-  },
-  addVisitedView({ commit }, view) {
-    commit('ADD_VISITED_VIEW', view)
-  },
-  addCachedView({ commit }, view) {
-    commit('ADD_CACHED_VIEW', view)
-  },
-  delView({ dispatch, state }, view) {
-    return new Promise(resolve => {
-      dispatch('delVisitedView', view)
-      dispatch('delCachedView', view)
-      resolve({
-        visitedViews: [...state.visitedViews],
-        cachedViews: [...state.cachedViews]
-      })
-    })
-  },
-  delVisitedView({ commit, state }, view) {
-    return new Promise(resolve => {
-      commit('DEL_VISITED_VIEW', view)
-      resolve([...state.visitedViews])
-    })
-  },
-  delIframeView({ commit, state }, view) {
-    return new Promise(resolve => {
-      commit('DEL_IFRAME_VIEW', view)
-      resolve([...state.iframeViews])
-    })
-  },
-  delCachedView({ commit, state }, view) {
-    return new Promise(resolve => {
-      commit('DEL_CACHED_VIEW', view)
-      resolve([...state.cachedViews])
-    })
-  },
-  delOthersViews({ dispatch, state }, view) {
-    return new Promise(resolve => {
-      dispatch('delOthersVisitedViews', view)
-      dispatch('delOthersCachedViews', view)
-      resolve({
-        visitedViews: [...state.visitedViews],
-        cachedViews: [...state.cachedViews]
-      })
-    })
-  },
-  delOthersVisitedViews({ commit, state }, view) {
-    return new Promise(resolve => {
-      commit('DEL_OTHERS_VISITED_VIEWS', view)
-      resolve([...state.visitedViews])
-    })
-  },
-  delOthersCachedViews({ commit, state }, view) {
-    return new Promise(resolve => {
-      commit('DEL_OTHERS_CACHED_VIEWS', view)
-      resolve([...state.cachedViews])
-    })
-  },
-  delAllViews({ dispatch, state }, view) {
-    return new Promise(resolve => {
-      dispatch('delAllVisitedViews', view)
-      dispatch('delAllCachedViews', view)
-      resolve({
-        visitedViews: [...state.visitedViews],
-        cachedViews: [...state.cachedViews]
-      })
-    })
-  },
-  delAllVisitedViews({ commit, state }) {
-    return new Promise(resolve => {
-      commit('DEL_ALL_VISITED_VIEWS')
-      resolve([...state.visitedViews])
-    })
-  },
-  delAllCachedViews({ commit, state }) {
-    return new Promise(resolve => {
-      commit('DEL_ALL_CACHED_VIEWS')
-      resolve([...state.cachedViews])
-    })
-  },
-  updateVisitedView({ commit }, view) {
-    commit('UPDATE_VISITED_VIEW', view)
-  },
-  delRightTags({ commit }, view) {
-    return new Promise(resolve => {
-      commit('DEL_RIGHT_VIEWS', view)
-      resolve([...state.visitedViews])
-    })
-  },
-  delLeftTags({ commit }, view) {
-    return new Promise(resolve => {
-      commit('DEL_LEFT_VIEWS', view)
-      resolve([...state.visitedViews])
-    })
-  },
-}
-
-export default {
-  namespaced: true,
-  state,
-  mutations,
-  actions
-}
diff --git a/ruoyi-ui/src/store/modules/user.js b/ruoyi-ui/src/store/modules/user.js
deleted file mode 100644
index cdbab1e..0000000
--- a/ruoyi-ui/src/store/modules/user.js
+++ /dev/null
@@ -1,101 +0,0 @@
-import { login, logout, getInfo } from '@/api/login'
-import { getToken, setToken, removeToken } from '@/utils/auth'
-
-const user = {
-  state: {
-    token: getToken(),
-    id: '',
-    name: '',
-    avatar: '',
-    roles: [],
-    permissions: []
-  },
-
-  mutations: {
-    SET_TOKEN: (state, token) => {
-      state.token = token
-    },
-    SET_ID: (state, id) => {
-      state.id = id
-    },
-    SET_NAME: (state, name) => {
-      state.name = name
-    },
-    SET_AVATAR: (state, avatar) => {
-      state.avatar = avatar
-    },
-    SET_ROLES: (state, roles) => {
-      state.roles = roles
-    },
-    SET_PERMISSIONS: (state, permissions) => {
-      state.permissions = permissions
-    }
-  },
-
-  actions: {
-    // 登录
-    Login({ commit }, userInfo) {
-      const username = userInfo.username.trim()
-      const password = userInfo.password
-      const code = userInfo.code
-      const uuid = userInfo.uuid
-      return new Promise((resolve, reject) => {
-        login(username, password, code, uuid).then(res => {
-          setToken(res.token)
-          commit('SET_TOKEN', res.token)
-          resolve()
-        }).catch(error => {
-          reject(error)
-        })
-      })
-    },
-
-    // 获取用户信息
-    GetInfo({ commit, state }) {
-      return new Promise((resolve, reject) => {
-        getInfo().then(res => {
-          const user = res.user
-          const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
-          if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
-            commit('SET_ROLES', res.roles)
-            commit('SET_PERMISSIONS', res.permissions)
-          } else {
-            commit('SET_ROLES', ['ROLE_DEFAULT'])
-          }
-          commit('SET_ID', user.userId)
-          commit('SET_NAME', user.userName)
-          commit('SET_AVATAR', avatar)
-          resolve(res)
-        }).catch(error => {
-          reject(error)
-        })
-      })
-    },
-
-    // 退出系统
-    LogOut({ commit, state }) {
-      return new Promise((resolve, reject) => {
-        logout(state.token).then(() => {
-          commit('SET_TOKEN', '')
-          commit('SET_ROLES', [])
-          commit('SET_PERMISSIONS', [])
-          removeToken()
-          resolve()
-        }).catch(error => {
-          reject(error)
-        })
-      })
-    },
-
-    // 前端 登出
-    FedLogOut({ commit }) {
-      return new Promise(resolve => {
-        commit('SET_TOKEN', '')
-        removeToken()
-        resolve()
-      })
-    }
-  }
-}
-
-export default user
diff --git a/ruoyi-ui/src/utils/auth.js b/ruoyi-ui/src/utils/auth.js
deleted file mode 100644
index 08a43d6..0000000
--- a/ruoyi-ui/src/utils/auth.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import Cookies from 'js-cookie'
-
-const TokenKey = 'Admin-Token'
-
-export function getToken() {
-  return Cookies.get(TokenKey)
-}
-
-export function setToken(token) {
-  return Cookies.set(TokenKey, token)
-}
-
-export function removeToken() {
-  return Cookies.remove(TokenKey)
-}
diff --git a/ruoyi-ui/src/utils/dict/Dict.js b/ruoyi-ui/src/utils/dict/Dict.js
deleted file mode 100644
index 104bd6e..0000000
--- a/ruoyi-ui/src/utils/dict/Dict.js
+++ /dev/null
@@ -1,82 +0,0 @@
-import Vue from 'vue'
-import { mergeRecursive } from "@/utils/ruoyi";
-import DictMeta from './DictMeta'
-import DictData from './DictData'
-
-const DEFAULT_DICT_OPTIONS = {
-  types: [],
-}
-
-/**
- * @classdesc 字典
- * @property {Object} label 标签对象,内部属性名为字典类型名称
- * @property {Object} dict 字段数组,内部属性名为字典类型名称
- * @property {Array.<DictMeta>} _dictMetas 字典元数据数组
- */
-export default class Dict {
-  constructor() {
-    this.owner = null
-    this.label = {}
-    this.type = {}
-  }
-
-  init(options) {
-    if (options instanceof Array) {
-      options = { types: options }
-    }
-    const opts = mergeRecursive(DEFAULT_DICT_OPTIONS, options)
-    if (opts.types === undefined) {
-      throw new Error('need dict types')
-    }
-    const ps = []
-    this._dictMetas = opts.types.map(t => DictMeta.parse(t))
-    this._dictMetas.forEach(dictMeta => {
-      const type = dictMeta.type
-      Vue.set(this.label, type, {})
-      Vue.set(this.type, type, [])
-      if (dictMeta.lazy) {
-        return
-      }
-      ps.push(loadDict(this, dictMeta))
-    })
-    return Promise.all(ps)
-  }
-
-  /**
-   * 重新加载字典
-   * @param {String} type 字典类型
-   */
-  reloadDict(type) {
-    const dictMeta = this._dictMetas.find(e => e.type === type)
-    if (dictMeta === undefined) {
-      return Promise.reject(`the dict meta of ${type} was not found`)
-    }
-    return loadDict(this, dictMeta)
-  }
-}
-
-/**
- * 加载字典
- * @param {Dict} dict 字典
- * @param {DictMeta} dictMeta 字典元数据
- * @returns {Promise}
- */
-function loadDict(dict, dictMeta) {
-  return dictMeta.request(dictMeta)
-    .then(response => {
-      const type = dictMeta.type
-      let dicts = dictMeta.responseConverter(response, dictMeta)
-      if (!(dicts instanceof Array)) {
-        console.error('the return of responseConverter must be Array.<DictData>')
-        dicts = []
-      } else if (dicts.filter(d => d instanceof DictData).length !== dicts.length) {
-        console.error('the type of elements in dicts must be DictData')
-        dicts = []
-      }
-      dict.type[type].splice(0, Number.MAX_SAFE_INTEGER, ...dicts)
-      dicts.forEach(d => {
-        Vue.set(dict.label[type], d.value, d.label)
-      })
-      return dicts
-    })
-}
diff --git a/ruoyi-ui/src/utils/dict/DictConverter.js b/ruoyi-ui/src/utils/dict/DictConverter.js
deleted file mode 100644
index 0cf5df8..0000000
--- a/ruoyi-ui/src/utils/dict/DictConverter.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import DictOptions from './DictOptions'
-import DictData from './DictData'
-
-export default function(dict, dictMeta) {
-  const label = determineDictField(dict, dictMeta.labelField, ...DictOptions.DEFAULT_LABEL_FIELDS)
-  const value = determineDictField(dict, dictMeta.valueField, ...DictOptions.DEFAULT_VALUE_FIELDS)
-  return new DictData(dict[label], dict[value], dict)
-}
-
-/**
- * 确定字典字段
- * @param {DictData} dict
- * @param  {...String} fields
- */
-function determineDictField(dict, ...fields) {
-  return fields.find(f => Object.prototype.hasOwnProperty.call(dict, f))
-}
diff --git a/ruoyi-ui/src/utils/dict/DictData.js b/ruoyi-ui/src/utils/dict/DictData.js
deleted file mode 100644
index afc763e..0000000
--- a/ruoyi-ui/src/utils/dict/DictData.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * @classdesc 字典数据
- * @property {String} label 标签
- * @property {*} value 标签
- * @property {Object} raw 原始数据
- */
-export default class DictData {
-  constructor(label, value, raw) {
-    this.label = label
-    this.value = value
-    this.raw = raw
-  }
-}
diff --git a/ruoyi-ui/src/utils/dict/DictMeta.js b/ruoyi-ui/src/utils/dict/DictMeta.js
deleted file mode 100644
index 9779daa..0000000
--- a/ruoyi-ui/src/utils/dict/DictMeta.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import { mergeRecursive } from "@/utils/ruoyi";
-import DictOptions from './DictOptions'
-
-/**
- * @classdesc 字典元数据
- * @property {String} type 类型
- * @property {Function} request 请求
- * @property {String} label 标签字段
- * @property {String} value 值字段
- */
-export default class DictMeta {
-  constructor(options) {
-    this.type = options.type
-    this.request = options.request
-    this.responseConverter = options.responseConverter
-    this.labelField = options.labelField
-    this.valueField = options.valueField
-    this.lazy = options.lazy === true
-  }
-}
-
-
-/**
- * 解析字典元数据
- * @param {Object} options
- * @returns {DictMeta}
- */
-DictMeta.parse= function(options) {
-  let opts = null
-  if (typeof options === 'string') {
-    opts = DictOptions.metas[options] || {}
-    opts.type = options
-  } else if (typeof options === 'object') {
-    opts = options
-  }
-  opts = mergeRecursive(DictOptions.metas['*'], opts)
-  return new DictMeta(opts)
-}
diff --git a/ruoyi-ui/src/utils/dict/DictOptions.js b/ruoyi-ui/src/utils/dict/DictOptions.js
deleted file mode 100644
index 338a94e..0000000
--- a/ruoyi-ui/src/utils/dict/DictOptions.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import { mergeRecursive } from "@/utils/ruoyi";
-import dictConverter from './DictConverter'
-
-export const options = {
-  metas: {
-    '*': {
-      /**
-       * 字典请求,方法签名为function(dictMeta: DictMeta): Promise
-       */
-      request: (dictMeta) => {
-        console.log(`load dict ${dictMeta.type}`)
-        return Promise.resolve([])
-      },
-      /**
-       * 字典响应数据转换器,方法签名为function(response: Object, dictMeta: DictMeta): DictData
-       */
-      responseConverter,
-      labelField: 'label',
-      valueField: 'value',
-    },
-  },
-  /**
-   * 默认标签字段
-   */
-  DEFAULT_LABEL_FIELDS: ['label', 'name', 'title'],
-  /**
-   * 默认值字段
-   */
-  DEFAULT_VALUE_FIELDS: ['value', 'id', 'uid', 'key'],
-}
-
-/**
- * 映射字典
- * @param {Object} response 字典数据
- * @param {DictMeta} dictMeta 字典元数据
- * @returns {DictData}
- */
-function responseConverter(response, dictMeta) {
-  const dicts = response.content instanceof Array ? response.content : response
-  if (dicts === undefined) {
-    console.warn(`no dict data of "${dictMeta.type}" found in the response`)
-    return []
-  }
-  return dicts.map(d => dictConverter(d, dictMeta))
-}
-
-export function mergeOptions(src) {
-  mergeRecursive(options, src)
-}
-
-export default options
diff --git a/ruoyi-ui/src/utils/dict/index.js b/ruoyi-ui/src/utils/dict/index.js
deleted file mode 100644
index 215eb9e..0000000
--- a/ruoyi-ui/src/utils/dict/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import Dict from './Dict'
-import { mergeOptions } from './DictOptions'
-
-export default function(Vue, options) {
-  mergeOptions(options)
-  Vue.mixin({
-    data() {
-      if (this.$options === undefined || this.$options.dicts === undefined || this.$options.dicts === null) {
-        return {}
-      }
-      const dict = new Dict()
-      dict.owner = this
-      return {
-        dict
-      }
-    },
-    created() {
-      if (!(this.dict instanceof Dict)) {
-        return
-      }
-      options.onCreated && options.onCreated(this.dict)
-      this.dict.init(this.$options.dicts).then(() => {
-        options.onReady && options.onReady(this.dict)
-        this.$nextTick(() => {
-          this.$emit('dictReady', this.dict)
-          if (this.$options.methods && this.$options.methods.onDictReady instanceof Function) {
-            this.$options.methods.onDictReady.call(this, this.dict)
-          }
-        })
-      })
-    },
-  })
-}
diff --git a/ruoyi-ui/src/utils/errorCode.js b/ruoyi-ui/src/utils/errorCode.js
deleted file mode 100644
index d2111ee..0000000
--- a/ruoyi-ui/src/utils/errorCode.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
-  '401': '认证失败,无法访问系统资源',
-  '403': '当前操作没有权限',
-  '404': '访问资源不存在',
-  'default': '系统未知错误,请反馈给管理员'
-}
diff --git a/ruoyi-ui/src/utils/generator/config.js b/ruoyi-ui/src/utils/generator/config.js
deleted file mode 100644
index 7abf227..0000000
--- a/ruoyi-ui/src/utils/generator/config.js
+++ /dev/null
@@ -1,438 +0,0 @@
-export const formConf = {
-  formRef: 'elForm',
-  formModel: 'formData',
-  size: 'medium',
-  labelPosition: 'right',
-  labelWidth: 100,
-  formRules: 'rules',
-  gutter: 15,
-  disabled: false,
-  span: 24,
-  formBtns: true
-}
-
-export const inputComponents = [
-  {
-    label: '单行文本',
-    tag: 'el-input',
-    tagIcon: 'input',
-    placeholder: '请输入',
-    defaultValue: undefined,
-    span: 24,
-    labelWidth: null,
-    style: { width: '100%' },
-    clearable: true,
-    prepend: '',
-    append: '',
-    'prefix-icon': '',
-    'suffix-icon': '',
-    maxlength: null,
-    'show-word-limit': false,
-    readonly: false,
-    disabled: false,
-    required: true,
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/input'
-  },
-  {
-    label: '多行文本',
-    tag: 'el-input',
-    tagIcon: 'textarea',
-    type: 'textarea',
-    placeholder: '请输入',
-    defaultValue: undefined,
-    span: 24,
-    labelWidth: null,
-    autosize: {
-      minRows: 4,
-      maxRows: 4
-    },
-    style: { width: '100%' },
-    maxlength: null,
-    'show-word-limit': false,
-    readonly: false,
-    disabled: false,
-    required: true,
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/input'
-  },
-  {
-    label: '密码',
-    tag: 'el-input',
-    tagIcon: 'password',
-    placeholder: '请输入',
-    defaultValue: undefined,
-    span: 24,
-    'show-password': true,
-    labelWidth: null,
-    style: { width: '100%' },
-    clearable: true,
-    prepend: '',
-    append: '',
-    'prefix-icon': '',
-    'suffix-icon': '',
-    maxlength: null,
-    'show-word-limit': false,
-    readonly: false,
-    disabled: false,
-    required: true,
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/input'
-  },
-  {
-    label: '计数器',
-    tag: 'el-input-number',
-    tagIcon: 'number',
-    placeholder: '',
-    defaultValue: undefined,
-    span: 24,
-    labelWidth: null,
-    min: undefined,
-    max: undefined,
-    step: undefined,
-    'step-strictly': false,
-    precision: undefined,
-    'controls-position': '',
-    disabled: false,
-    required: true,
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/input-number'
-  }
-]
-
-export const selectComponents = [
-  {
-    label: '下拉选择',
-    tag: 'el-select',
-    tagIcon: 'select',
-    placeholder: '请选择',
-    defaultValue: undefined,
-    span: 24,
-    labelWidth: null,
-    style: { width: '100%' },
-    clearable: true,
-    disabled: false,
-    required: true,
-    filterable: false,
-    multiple: false,
-    options: [{
-      label: '选项一',
-      value: 1
-    }, {
-      label: '选项二',
-      value: 2
-    }],
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/select'
-  },
-  {
-    label: '级联选择',
-    tag: 'el-cascader',
-    tagIcon: 'cascader',
-    placeholder: '请选择',
-    defaultValue: [],
-    span: 24,
-    labelWidth: null,
-    style: { width: '100%' },
-    props: {
-      props: {
-        multiple: false
-      }
-    },
-    'show-all-levels': true,
-    disabled: false,
-    clearable: true,
-    filterable: false,
-    required: true,
-    options: [{
-      id: 1,
-      value: 1,
-      label: '选项1',
-      children: [{
-        id: 2,
-        value: 2,
-        label: '选项1-1'
-      }]
-    }],
-    dataType: 'dynamic',
-    labelKey: 'label',
-    valueKey: 'value',
-    childrenKey: 'children',
-    separator: '/',
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/cascader'
-  },
-  {
-    label: '单选框组',
-    tag: 'el-radio-group',
-    tagIcon: 'radio',
-    defaultValue: undefined,
-    span: 24,
-    labelWidth: null,
-    style: {},
-    optionType: 'default',
-    border: false,
-    size: 'medium',
-    disabled: false,
-    required: true,
-    options: [{
-      label: '选项一',
-      value: 1
-    }, {
-      label: '选项二',
-      value: 2
-    }],
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/radio'
-  },
-  {
-    label: '多选框组',
-    tag: 'el-checkbox-group',
-    tagIcon: 'checkbox',
-    defaultValue: [],
-    span: 24,
-    labelWidth: null,
-    style: {},
-    optionType: 'default',
-    border: false,
-    size: 'medium',
-    disabled: false,
-    required: true,
-    options: [{
-      label: '选项一',
-      value: 1
-    }, {
-      label: '选项二',
-      value: 2
-    }],
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/checkbox'
-  },
-  {
-    label: '开关',
-    tag: 'el-switch',
-    tagIcon: 'switch',
-    defaultValue: false,
-    span: 24,
-    labelWidth: null,
-    style: {},
-    disabled: false,
-    required: true,
-    'active-text': '',
-    'inactive-text': '',
-    'active-color': null,
-    'inactive-color': null,
-    'active-value': true,
-    'inactive-value': false,
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/switch'
-  },
-  {
-    label: '滑块',
-    tag: 'el-slider',
-    tagIcon: 'slider',
-    defaultValue: null,
-    span: 24,
-    labelWidth: null,
-    disabled: false,
-    required: true,
-    min: 0,
-    max: 100,
-    step: 1,
-    'show-stops': false,
-    range: false,
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/slider'
-  },
-  {
-    label: '时间选择',
-    tag: 'el-time-picker',
-    tagIcon: 'time',
-    placeholder: '请选择',
-    defaultValue: null,
-    span: 24,
-    labelWidth: null,
-    style: { width: '100%' },
-    disabled: false,
-    clearable: true,
-    required: true,
-    'picker-options': {
-      selectableRange: '00:00:00-23:59:59'
-    },
-    format: 'HH:mm:ss',
-    'value-format': 'HH:mm:ss',
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/time-picker'
-  },
-  {
-    label: '时间范围',
-    tag: 'el-time-picker',
-    tagIcon: 'time-range',
-    defaultValue: null,
-    span: 24,
-    labelWidth: null,
-    style: { width: '100%' },
-    disabled: false,
-    clearable: true,
-    required: true,
-    'is-range': true,
-    'range-separator': '至',
-    'start-placeholder': '开始时间',
-    'end-placeholder': '结束时间',
-    format: 'HH:mm:ss',
-    'value-format': 'HH:mm:ss',
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/time-picker'
-  },
-  {
-    label: '日期选择',
-    tag: 'el-date-picker',
-    tagIcon: 'date',
-    placeholder: '请选择',
-    defaultValue: null,
-    type: 'date',
-    span: 24,
-    labelWidth: null,
-    style: { width: '100%' },
-    disabled: false,
-    clearable: true,
-    required: true,
-    format: 'yyyy-MM-dd',
-    'value-format': 'yyyy-MM-dd',
-    readonly: false,
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/date-picker'
-  },
-  {
-    label: '日期范围',
-    tag: 'el-date-picker',
-    tagIcon: 'date-range',
-    defaultValue: null,
-    span: 24,
-    labelWidth: null,
-    style: { width: '100%' },
-    type: 'daterange',
-    'range-separator': '至',
-    'start-placeholder': '开始日期',
-    'end-placeholder': '结束日期',
-    disabled: false,
-    clearable: true,
-    required: true,
-    format: 'yyyy-MM-dd',
-    'value-format': 'yyyy-MM-dd',
-    readonly: false,
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/date-picker'
-  },
-  {
-    label: '评分',
-    tag: 'el-rate',
-    tagIcon: 'rate',
-    defaultValue: 0,
-    span: 24,
-    labelWidth: null,
-    style: {},
-    max: 5,
-    'allow-half': false,
-    'show-text': false,
-    'show-score': false,
-    disabled: false,
-    required: true,
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/rate'
-  },
-  {
-    label: '颜色选择',
-    tag: 'el-color-picker',
-    tagIcon: 'color',
-    defaultValue: null,
-    labelWidth: null,
-    'show-alpha': false,
-    'color-format': '',
-    disabled: false,
-    required: true,
-    size: 'medium',
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/color-picker'
-  },
-  {
-    label: '上传',
-    tag: 'el-upload',
-    tagIcon: 'upload',
-    action: 'https://jsonplaceholder.typicode.com/posts/',
-    defaultValue: null,
-    labelWidth: null,
-    disabled: false,
-    required: true,
-    accept: '',
-    name: 'file',
-    'auto-upload': true,
-    showTip: false,
-    buttonText: '点击上传',
-    fileSize: 2,
-    sizeUnit: 'MB',
-    'list-type': 'text',
-    multiple: false,
-    regList: [],
-    changeTag: true,
-    document: 'https://element.eleme.cn/#/zh-CN/component/upload'
-  }
-]
-
-export const layoutComponents = [
-  {
-    layout: 'rowFormItem',
-    tagIcon: 'row',
-    type: 'default',
-    justify: 'start',
-    align: 'top',
-    label: '行容器',
-    layoutTree: true,
-    children: [],
-    document: 'https://element.eleme.cn/#/zh-CN/component/layout'
-  },
-  {
-    layout: 'colFormItem',
-    label: '按钮',
-    changeTag: true,
-    labelWidth: null,
-    tag: 'el-button',
-    tagIcon: 'button',
-    span: 24,
-    default: '主要按钮',
-    type: 'primary',
-    icon: 'el-icon-search',
-    size: 'medium',
-    disabled: false,
-    document: 'https://element.eleme.cn/#/zh-CN/component/button'
-  }
-]
-
-// 组件rule的触发方式,无触发方式的组件不生成rule
-export const trigger = {
-  'el-input': 'blur',
-  'el-input-number': 'blur',
-  'el-select': 'change',
-  'el-radio-group': 'change',
-  'el-checkbox-group': 'change',
-  'el-cascader': 'change',
-  'el-time-picker': 'change',
-  'el-date-picker': 'change',
-  'el-rate': 'change'
-}
diff --git a/ruoyi-ui/src/utils/generator/css.js b/ruoyi-ui/src/utils/generator/css.js
deleted file mode 100644
index c1c62e6..0000000
--- a/ruoyi-ui/src/utils/generator/css.js
+++ /dev/null
@@ -1,18 +0,0 @@
-const styles = {
-  'el-rate': '.el-rate{display: inline-block; vertical-align: text-top;}',
-  'el-upload': '.el-upload__tip{line-height: 1.2;}'
-}
-
-function addCss(cssList, el) {
-  const css = styles[el.tag]
-  css && cssList.indexOf(css) === -1 && cssList.push(css)
-  if (el.children) {
-    el.children.forEach(el2 => addCss(cssList, el2))
-  }
-}
-
-export function makeUpCss(conf) {
-  const cssList = []
-  conf.fields.forEach(el => addCss(cssList, el))
-  return cssList.join('\n')
-}
diff --git a/ruoyi-ui/src/utils/generator/drawingDefault.js b/ruoyi-ui/src/utils/generator/drawingDefault.js
deleted file mode 100644
index 09f133c..0000000
--- a/ruoyi-ui/src/utils/generator/drawingDefault.js
+++ /dev/null
@@ -1,29 +0,0 @@
-export default [
-  {
-    layout: 'colFormItem',
-    tagIcon: 'input',
-    label: '手机号',
-    vModel: 'mobile',
-    formId: 6,
-    tag: 'el-input',
-    placeholder: '请输入手机号',
-    defaultValue: '',
-    span: 24,
-    style: { width: '100%' },
-    clearable: true,
-    prepend: '',
-    append: '',
-    'prefix-icon': 'el-icon-mobile',
-    'suffix-icon': '',
-    maxlength: 11,
-    'show-word-limit': true,
-    readonly: false,
-    disabled: false,
-    required: true,
-    changeTag: true,
-    regList: [{
-      pattern: '/^1(3|4|5|7|8|9)\\d{9}$/',
-      message: '手机号格式错误'
-    }]
-  }
-]
diff --git a/ruoyi-ui/src/utils/generator/html.js b/ruoyi-ui/src/utils/generator/html.js
deleted file mode 100644
index 9bcc536..0000000
--- a/ruoyi-ui/src/utils/generator/html.js
+++ /dev/null
@@ -1,359 +0,0 @@
-/* eslint-disable max-len */
-import { trigger } from './config'
-
-let confGlobal
-let someSpanIsNot24
-
-export function dialogWrapper(str) {
-  return `<el-dialog v-bind="$attrs" v-on="$listeners" @open="onOpen" @close="onClose" title="Dialog Title">
-    ${str}
-    <div slot="footer">
-      <el-button @click="close">取消</el-button>
-      <el-button type="primary" @click="handleConfirm">确定</el-button>
-    </div>
-  </el-dialog>`
-}
-
-export function vueTemplate(str) {
-  return `<template>
-    <div>
-      ${str}
-    </div>
-  </template>`
-}
-
-export function vueScript(str) {
-  return `<script>
-    ${str}
-  </script>`
-}
-
-export function cssStyle(cssStr) {
-  return `<style>
-    ${cssStr}
-  </style>`
-}
-
-function buildFormTemplate(conf, child, type) {
-  let labelPosition = ''
-  if (conf.labelPosition !== 'right') {
-    labelPosition = `label-position="${conf.labelPosition}"`
-  }
-  const disabled = conf.disabled ? `:disabled="${conf.disabled}"` : ''
-  let str = `<el-form ref="${conf.formRef}" :model="${conf.formModel}" :rules="${conf.formRules}" size="${conf.size}" ${disabled} label-width="${conf.labelWidth}px" ${labelPosition}>
-      ${child}
-      ${buildFromBtns(conf, type)}
-    </el-form>`
-  if (someSpanIsNot24) {
-    str = `<el-row :gutter="${conf.gutter}">
-        ${str}
-      </el-row>`
-  }
-  return str
-}
-
-function buildFromBtns(conf, type) {
-  let str = ''
-  if (conf.formBtns && type === 'file') {
-    str = `<el-form-item size="large">
-          <el-button type="primary" @click="submitForm">提交</el-button>
-          <el-button @click="resetForm">重置</el-button>
-        </el-form-item>`
-    if (someSpanIsNot24) {
-      str = `<el-col :span="24">
-          ${str}
-        </el-col>`
-    }
-  }
-  return str
-}
-
-// span不为24的用el-col包裹
-function colWrapper(element, str) {
-  if (someSpanIsNot24 || element.span !== 24) {
-    return `<el-col :span="${element.span}">
-      ${str}
-    </el-col>`
-  }
-  return str
-}
-
-const layouts = {
-  colFormItem(element) {
-    let labelWidth = ''
-    if (element.labelWidth && element.labelWidth !== confGlobal.labelWidth) {
-      labelWidth = `label-width="${element.labelWidth}px"`
-    }
-    const required = !trigger[element.tag] && element.required ? 'required' : ''
-    const tagDom = tags[element.tag] ? tags[element.tag](element) : null
-    let str = `<el-form-item ${labelWidth} label="${element.label}" prop="${element.vModel}" ${required}>
-        ${tagDom}
-      </el-form-item>`
-    str = colWrapper(element, str)
-    return str
-  },
-  rowFormItem(element) {
-    const type = element.type === 'default' ? '' : `type="${element.type}"`
-    const justify = element.type === 'default' ? '' : `justify="${element.justify}"`
-    const align = element.type === 'default' ? '' : `align="${element.align}"`
-    const gutter = element.gutter ? `gutter="${element.gutter}"` : ''
-    const children = element.children.map(el => layouts[el.layout](el))
-    let str = `<el-row ${type} ${justify} ${align} ${gutter}>
-      ${children.join('\n')}
-    </el-row>`
-    str = colWrapper(element, str)
-    return str
-  }
-}
-
-const tags = {
-  'el-button': el => {
-    const {
-      tag, disabled
-    } = attrBuilder(el)
-    const type = el.type ? `type="${el.type}"` : ''
-    const icon = el.icon ? `icon="${el.icon}"` : ''
-    const size = el.size ? `size="${el.size}"` : ''
-    let child = buildElButtonChild(el)
-
-    if (child) child = `\n${child}\n` // 换行
-    return `<${el.tag} ${type} ${icon} ${size} ${disabled}>${child}</${el.tag}>`
-  },
-  'el-input': el => {
-    const {
-      disabled, vModel, clearable, placeholder, width
-    } = attrBuilder(el)
-    const maxlength = el.maxlength ? `:maxlength="${el.maxlength}"` : ''
-    const showWordLimit = el['show-word-limit'] ? 'show-word-limit' : ''
-    const readonly = el.readonly ? 'readonly' : ''
-    const prefixIcon = el['prefix-icon'] ? `prefix-icon='${el['prefix-icon']}'` : ''
-    const suffixIcon = el['suffix-icon'] ? `suffix-icon='${el['suffix-icon']}'` : ''
-    const showPassword = el['show-password'] ? 'show-password' : ''
-    const type = el.type ? `type="${el.type}"` : ''
-    const autosize = el.autosize && el.autosize.minRows
-      ? `:autosize="{minRows: ${el.autosize.minRows}, maxRows: ${el.autosize.maxRows}}"`
-      : ''
-    let child = buildElInputChild(el)
-
-    if (child) child = `\n${child}\n` // 换行
-    return `<${el.tag} ${vModel} ${type} ${placeholder} ${maxlength} ${showWordLimit} ${readonly} ${disabled} ${clearable} ${prefixIcon} ${suffixIcon} ${showPassword} ${autosize} ${width}>${child}</${el.tag}>`
-  },
-  'el-input-number': el => {
-    const { disabled, vModel, placeholder } = attrBuilder(el)
-    const controlsPosition = el['controls-position'] ? `controls-position=${el['controls-position']}` : ''
-    const min = el.min ? `:min='${el.min}'` : ''
-    const max = el.max ? `:max='${el.max}'` : ''
-    const step = el.step ? `:step='${el.step}'` : ''
-    const stepStrictly = el['step-strictly'] ? 'step-strictly' : ''
-    const precision = el.precision ? `:precision='${el.precision}'` : ''
-
-    return `<${el.tag} ${vModel} ${placeholder} ${step} ${stepStrictly} ${precision} ${controlsPosition} ${min} ${max} ${disabled}></${el.tag}>`
-  },
-  'el-select': el => {
-    const {
-      disabled, vModel, clearable, placeholder, width
-    } = attrBuilder(el)
-    const filterable = el.filterable ? 'filterable' : ''
-    const multiple = el.multiple ? 'multiple' : ''
-    let child = buildElSelectChild(el)
-
-    if (child) child = `\n${child}\n` // 换行
-    return `<${el.tag} ${vModel} ${placeholder} ${disabled} ${multiple} ${filterable} ${clearable} ${width}>${child}</${el.tag}>`
-  },
-  'el-radio-group': el => {
-    const { disabled, vModel } = attrBuilder(el)
-    const size = `size="${el.size}"`
-    let child = buildElRadioGroupChild(el)
-
-    if (child) child = `\n${child}\n` // 换行
-    return `<${el.tag} ${vModel} ${size} ${disabled}>${child}</${el.tag}>`
-  },
-  'el-checkbox-group': el => {
-    const { disabled, vModel } = attrBuilder(el)
-    const size = `size="${el.size}"`
-    const min = el.min ? `:min="${el.min}"` : ''
-    const max = el.max ? `:max="${el.max}"` : ''
-    let child = buildElCheckboxGroupChild(el)
-
-    if (child) child = `\n${child}\n` // 换行
-    return `<${el.tag} ${vModel} ${min} ${max} ${size} ${disabled}>${child}</${el.tag}>`
-  },
-  'el-switch': el => {
-    const { disabled, vModel } = attrBuilder(el)
-    const activeText = el['active-text'] ? `active-text="${el['active-text']}"` : ''
-    const inactiveText = el['inactive-text'] ? `inactive-text="${el['inactive-text']}"` : ''
-    const activeColor = el['active-color'] ? `active-color="${el['active-color']}"` : ''
-    const inactiveColor = el['inactive-color'] ? `inactive-color="${el['inactive-color']}"` : ''
-    const activeValue = el['active-value'] !== true ? `:active-value='${JSON.stringify(el['active-value'])}'` : ''
-    const inactiveValue = el['inactive-value'] !== false ? `:inactive-value='${JSON.stringify(el['inactive-value'])}'` : ''
-
-    return `<${el.tag} ${vModel} ${activeText} ${inactiveText} ${activeColor} ${inactiveColor} ${activeValue} ${inactiveValue} ${disabled}></${el.tag}>`
-  },
-  'el-cascader': el => {
-    const {
-      disabled, vModel, clearable, placeholder, width
-    } = attrBuilder(el)
-    const options = el.options ? `:options="${el.vModel}Options"` : ''
-    const props = el.props ? `:props="${el.vModel}Props"` : ''
-    const showAllLevels = el['show-all-levels'] ? '' : ':show-all-levels="false"'
-    const filterable = el.filterable ? 'filterable' : ''
-    const separator = el.separator === '/' ? '' : `separator="${el.separator}"`
-
-    return `<${el.tag} ${vModel} ${options} ${props} ${width} ${showAllLevels} ${placeholder} ${separator} ${filterable} ${clearable} ${disabled}></${el.tag}>`
-  },
-  'el-slider': el => {
-    const { disabled, vModel } = attrBuilder(el)
-    const min = el.min ? `:min='${el.min}'` : ''
-    const max = el.max ? `:max='${el.max}'` : ''
-    const step = el.step ? `:step='${el.step}'` : ''
-    const range = el.range ? 'range' : ''
-    const showStops = el['show-stops'] ? `:show-stops="${el['show-stops']}"` : ''
-
-    return `<${el.tag} ${min} ${max} ${step} ${vModel} ${range} ${showStops} ${disabled}></${el.tag}>`
-  },
-  'el-time-picker': el => {
-    const {
-      disabled, vModel, clearable, placeholder, width
-    } = attrBuilder(el)
-    const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : ''
-    const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : ''
-    const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : ''
-    const isRange = el['is-range'] ? 'is-range' : ''
-    const format = el.format ? `format="${el.format}"` : ''
-    const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : ''
-    const pickerOptions = el['picker-options'] ? `:picker-options='${JSON.stringify(el['picker-options'])}'` : ''
-
-    return `<${el.tag} ${vModel} ${isRange} ${format} ${valueFormat} ${pickerOptions} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${disabled}></${el.tag}>`
-  },
-  'el-date-picker': el => {
-    const {
-      disabled, vModel, clearable, placeholder, width
-    } = attrBuilder(el)
-    const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : ''
-    const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : ''
-    const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : ''
-    const format = el.format ? `format="${el.format}"` : ''
-    const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : ''
-    const type = el.type === 'date' ? '' : `type="${el.type}"`
-    const readonly = el.readonly ? 'readonly' : ''
-
-    return `<${el.tag} ${type} ${vModel} ${format} ${valueFormat} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${readonly} ${disabled}></${el.tag}>`
-  },
-  'el-rate': el => {
-    const { disabled, vModel } = attrBuilder(el)
-    const max = el.max ? `:max='${el.max}'` : ''
-    const allowHalf = el['allow-half'] ? 'allow-half' : ''
-    const showText = el['show-text'] ? 'show-text' : ''
-    const showScore = el['show-score'] ? 'show-score' : ''
-
-    return `<${el.tag} ${vModel} ${allowHalf} ${showText} ${showScore} ${disabled}></${el.tag}>`
-  },
-  'el-color-picker': el => {
-    const { disabled, vModel } = attrBuilder(el)
-    const size = `size="${el.size}"`
-    const showAlpha = el['show-alpha'] ? 'show-alpha' : ''
-    const colorFormat = el['color-format'] ? `color-format="${el['color-format']}"` : ''
-
-    return `<${el.tag} ${vModel} ${size} ${showAlpha} ${colorFormat} ${disabled}></${el.tag}>`
-  },
-  'el-upload': el => {
-    const disabled = el.disabled ? ':disabled=\'true\'' : ''
-    const action = el.action ? `:action="${el.vModel}Action"` : ''
-    const multiple = el.multiple ? 'multiple' : ''
-    const listType = el['list-type'] !== 'text' ? `list-type="${el['list-type']}"` : ''
-    const accept = el.accept ? `accept="${el.accept}"` : ''
-    const name = el.name !== 'file' ? `name="${el.name}"` : ''
-    const autoUpload = el['auto-upload'] === false ? ':auto-upload="false"' : ''
-    const beforeUpload = `:before-upload="${el.vModel}BeforeUpload"`
-    const fileList = `:file-list="${el.vModel}fileList"`
-    const ref = `ref="${el.vModel}"`
-    let child = buildElUploadChild(el)
-
-    if (child) child = `\n${child}\n` // 换行
-    return `<${el.tag} ${ref} ${fileList} ${action} ${autoUpload} ${multiple} ${beforeUpload} ${listType} ${accept} ${name} ${disabled}>${child}</${el.tag}>`
-  }
-}
-
-function attrBuilder(el) {
-  return {
-    vModel: `v-model="${confGlobal.formModel}.${el.vModel}"`,
-    clearable: el.clearable ? 'clearable' : '',
-    placeholder: el.placeholder ? `placeholder="${el.placeholder}"` : '',
-    width: el.style && el.style.width ? ':style="{width: \'100%\'}"' : '',
-    disabled: el.disabled ? ':disabled=\'true\'' : ''
-  }
-}
-
-// el-buttin 子级
-function buildElButtonChild(conf) {
-  const children = []
-  if (conf.default) {
-    children.push(conf.default)
-  }
-  return children.join('\n')
-}
-
-// el-input innerHTML
-function buildElInputChild(conf) {
-  const children = []
-  if (conf.prepend) {
-    children.push(`<template slot="prepend">${conf.prepend}</template>`)
-  }
-  if (conf.append) {
-    children.push(`<template slot="append">${conf.append}</template>`)
-  }
-  return children.join('\n')
-}
-
-function buildElSelectChild(conf) {
-  const children = []
-  if (conf.options && conf.options.length) {
-    children.push(`<el-option v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.label" :value="item.value" :disabled="item.disabled"></el-option>`)
-  }
-  return children.join('\n')
-}
-
-function buildElRadioGroupChild(conf) {
-  const children = []
-  if (conf.options && conf.options.length) {
-    const tag = conf.optionType === 'button' ? 'el-radio-button' : 'el-radio'
-    const border = conf.border ? 'border' : ''
-    children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}</${tag}>`)
-  }
-  return children.join('\n')
-}
-
-function buildElCheckboxGroupChild(conf) {
-  const children = []
-  if (conf.options && conf.options.length) {
-    const tag = conf.optionType === 'button' ? 'el-checkbox-button' : 'el-checkbox'
-    const border = conf.border ? 'border' : ''
-    children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}</${tag}>`)
-  }
-  return children.join('\n')
-}
-
-function buildElUploadChild(conf) {
-  const list = []
-  if (conf['list-type'] === 'picture-card') list.push('<i class="el-icon-plus"></i>')
-  else list.push(`<el-button size="small" type="primary" icon="el-icon-upload">${conf.buttonText}</el-button>`)
-  if (conf.showTip) list.push(`<div slot="tip" class="el-upload__tip">只能上传不超过 ${conf.fileSize}${conf.sizeUnit} 的${conf.accept}文件</div>`)
-  return list.join('\n')
-}
-
-export function makeUpHtml(conf, type) {
-  const htmlList = []
-  confGlobal = conf
-  someSpanIsNot24 = conf.fields.some(item => item.span !== 24)
-  conf.fields.forEach(el => {
-    htmlList.push(layouts[el.layout](el))
-  })
-  const htmlStr = htmlList.join('\n')
-
-  let temp = buildFormTemplate(conf, htmlStr, type)
-  if (type === 'dialog') {
-    temp = dialogWrapper(temp)
-  }
-  confGlobal = null
-  return temp
-}
diff --git a/ruoyi-ui/src/utils/generator/icon.json b/ruoyi-ui/src/utils/generator/icon.json
deleted file mode 100644
index 2d9999a..0000000
--- a/ruoyi-ui/src/utils/generator/icon.json
+++ /dev/null
@@ -1 +0,0 @@
-["platform-eleme","eleme","delete-solid","delete","s-tools","setting","user-solid","user","phone","phone-outline","more","more-outline","star-on","star-off","s-goods","goods","warning","warning-outline","question","info","remove","circle-plus","success","error","zoom-in","zoom-out","remove-outline","circle-plus-outline","circle-check","circle-close","s-help","help","minus","plus","check","close","picture","picture-outline","picture-outline-round","upload","upload2","download","camera-solid","camera","video-camera-solid","video-camera","message-solid","bell","s-cooperation","s-order","s-platform","s-fold","s-unfold","s-operation","s-promotion","s-home","s-release","s-ticket","s-management","s-open","s-shop","s-marketing","s-flag","s-comment","s-finance","s-claim","s-custom","s-opportunity","s-data","s-check","s-grid","menu","share","d-caret","caret-left","caret-right","caret-bottom","caret-top","bottom-left","bottom-right","back","right","bottom","top","top-left","top-right","arrow-left","arrow-right","arrow-down","arrow-up","d-arrow-left","d-arrow-right","video-pause","video-play","refresh","refresh-right","refresh-left","finished","sort","sort-up","sort-down","rank","loading","view","c-scale-to-original","date","edit","edit-outline","folder","folder-opened","folder-add","folder-remove","folder-delete","folder-checked","tickets","document-remove","document-delete","document-copy","document-checked","document","document-add","printer","paperclip","takeaway-box","search","monitor","attract","mobile","scissors","umbrella","headset","brush","mouse","coordinate","magic-stick","reading","data-line","data-board","pie-chart","data-analysis","collection-tag","film","suitcase","suitcase-1","receiving","collection","files","notebook-1","notebook-2","toilet-paper","office-building","school","table-lamp","house","no-smoking","smoking","shopping-cart-full","shopping-cart-1","shopping-cart-2","shopping-bag-1","shopping-bag-2","sold-out","sell","present","box","bank-card","money","coin","wallet","discount","price-tag","news","guide","male","female","thumb","cpu","link","connection","open","turn-off","set-up","chat-round","chat-line-round","chat-square","chat-dot-round","chat-dot-square","chat-line-square","message","postcard","position","turn-off-microphone","microphone","close-notification","bangzhu","time","odometer","crop","aim","switch-button","full-screen","copy-document","mic","stopwatch","medal-1","medal","trophy","trophy-1","first-aid-kit","discover","place","location","location-outline","location-information","add-location","delete-location","map-location","alarm-clock","timer","watch-1","watch","lock","unlock","key","service","mobile-phone","bicycle","truck","ship","basketball","football","soccer","baseball","wind-power","light-rain","lightning","heavy-rain","sunrise","sunrise-1","sunset","sunny","cloudy","partly-cloudy","cloudy-and-sunny","moon","moon-night","dish","dish-1","food","chicken","fork-spoon","knife-fork","burger","tableware","sugar","dessert","ice-cream","hot-water","water-cup","coffee-cup","cold-drink","goblet","goblet-full","goblet-square","goblet-square-full","refrigerator","grape","watermelon","cherry","apple","pear","orange","coffee","ice-tea","ice-drink","milk-tea","potato-strips","lollipop","ice-cream-square","ice-cream-round"]
\ No newline at end of file
diff --git a/ruoyi-ui/src/utils/generator/js.js b/ruoyi-ui/src/utils/generator/js.js
deleted file mode 100644
index ee8668d..0000000
--- a/ruoyi-ui/src/utils/generator/js.js
+++ /dev/null
@@ -1,235 +0,0 @@
-import { exportDefault, titleCase } from '@/utils/index'
-import { trigger } from './config'
-
-const units = {
-  KB: '1024',
-  MB: '1024 / 1024',
-  GB: '1024 / 1024 / 1024'
-}
-let confGlobal
-const inheritAttrs = {
-  file: '',
-  dialog: 'inheritAttrs: false,'
-}
-
-
-export function makeUpJs(conf, type) {
-  confGlobal = conf = JSON.parse(JSON.stringify(conf))
-  const dataList = []
-  const ruleList = []
-  const optionsList = []
-  const propsList = []
-  const methodList = mixinMethod(type)
-  const uploadVarList = []
-
-  conf.fields.forEach(el => {
-    buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList)
-  })
-
-  const script = buildexport(
-    conf,
-    type,
-    dataList.join('\n'),
-    ruleList.join('\n'),
-    optionsList.join('\n'),
-    uploadVarList.join('\n'),
-    propsList.join('\n'),
-    methodList.join('\n')
-  )
-  confGlobal = null
-  return script
-}
-
-function buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) {
-  buildData(el, dataList)
-  buildRules(el, ruleList)
-
-  if (el.options && el.options.length) {
-    buildOptions(el, optionsList)
-    if (el.dataType === 'dynamic') {
-      const model = `${el.vModel}Options`
-      const options = titleCase(model)
-      buildOptionMethod(`get${options}`, model, methodList)
-    }
-  }
-
-  if (el.props && el.props.props) {
-    buildProps(el, propsList)
-  }
-
-  if (el.action && el.tag === 'el-upload') {
-    uploadVarList.push(
-      `${el.vModel}Action: '${el.action}',
-      ${el.vModel}fileList: [],`
-    )
-    methodList.push(buildBeforeUpload(el))
-    if (!el['auto-upload']) {
-      methodList.push(buildSubmitUpload(el))
-    }
-  }
-
-  if (el.children) {
-    el.children.forEach(el2 => {
-      buildAttributes(el2, dataList, ruleList, optionsList, methodList, propsList, uploadVarList)
-    })
-  }
-}
-
-function mixinMethod(type) {
-  const list = []; const
-    minxins = {
-      file: confGlobal.formBtns ? {
-        submitForm: `submitForm() {
-        this.$refs['${confGlobal.formRef}'].validate(valid => {
-          if(!valid) return
-          // TODO 提交表单
-        })
-      },`,
-        resetForm: `resetForm() {
-        this.$refs['${confGlobal.formRef}'].resetFields()
-      },`
-      } : null,
-      dialog: {
-        onOpen: 'onOpen() {},',
-        onClose: `onClose() {
-        this.$refs['${confGlobal.formRef}'].resetFields()
-      },`,
-        close: `close() {
-        this.$emit('update:visible', false)
-      },`,
-        handleConfirm: `handleConfirm() {
-        this.$refs['${confGlobal.formRef}'].validate(valid => {
-          if(!valid) return
-          this.close()
-        })
-      },`
-      }
-    }
-
-  const methods = minxins[type]
-  if (methods) {
-    Object.keys(methods).forEach(key => {
-      list.push(methods[key])
-    })
-  }
-
-  return list
-}
-
-function buildData(conf, dataList) {
-  if (conf.vModel === undefined) return
-  let defaultValue
-  if (typeof (conf.defaultValue) === 'string' && !conf.multiple) {
-    defaultValue = `'${conf.defaultValue}'`
-  } else {
-    defaultValue = `${JSON.stringify(conf.defaultValue)}`
-  }
-  dataList.push(`${conf.vModel}: ${defaultValue},`)
-}
-
-function buildRules(conf, ruleList) {
-  if (conf.vModel === undefined) return
-  const rules = []
-  if (trigger[conf.tag]) {
-    if (conf.required) {
-      const type = Array.isArray(conf.defaultValue) ? 'type: \'array\',' : ''
-      let message = Array.isArray(conf.defaultValue) ? `请至少选择一个${conf.vModel}` : conf.placeholder
-      if (message === undefined) message = `${conf.label}不能为空`
-      rules.push(`{ required: true, ${type} message: '${message}', trigger: '${trigger[conf.tag]}' }`)
-    }
-    if (conf.regList && Array.isArray(conf.regList)) {
-      conf.regList.forEach(item => {
-        if (item.pattern) {
-          rules.push(`{ pattern: ${eval(item.pattern)}, message: '${item.message}', trigger: '${trigger[conf.tag]}' }`)
-        }
-      })
-    }
-    ruleList.push(`${conf.vModel}: [${rules.join(',')}],`)
-  }
-}
-
-function buildOptions(conf, optionsList) {
-  if (conf.vModel === undefined) return
-  if (conf.dataType === 'dynamic') { conf.options = [] }
-  const str = `${conf.vModel}Options: ${JSON.stringify(conf.options)},`
-  optionsList.push(str)
-}
-
-function buildProps(conf, propsList) {
-  if (conf.dataType === 'dynamic') {
-    conf.valueKey !== 'value' && (conf.props.props.value = conf.valueKey)
-    conf.labelKey !== 'label' && (conf.props.props.label = conf.labelKey)
-    conf.childrenKey !== 'children' && (conf.props.props.children = conf.childrenKey)
-  }
-  const str = `${conf.vModel}Props: ${JSON.stringify(conf.props.props)},`
-  propsList.push(str)
-}
-
-function buildBeforeUpload(conf) {
-  const unitNum = units[conf.sizeUnit]; let rightSizeCode = ''; let acceptCode = ''; const
-    returnList = []
-  if (conf.fileSize) {
-    rightSizeCode = `let isRightSize = file.size / ${unitNum} < ${conf.fileSize}
-    if(!isRightSize){
-      this.$message.error('文件大小超过 ${conf.fileSize}${conf.sizeUnit}')
-    }`
-    returnList.push('isRightSize')
-  }
-  if (conf.accept) {
-    acceptCode = `let isAccept = new RegExp('${conf.accept}').test(file.type)
-    if(!isAccept){
-      this.$message.error('应该选择${conf.accept}类型的文件')
-    }`
-    returnList.push('isAccept')
-  }
-  const str = `${conf.vModel}BeforeUpload(file) {
-    ${rightSizeCode}
-    ${acceptCode}
-    return ${returnList.join('&&')}
-  },`
-  return returnList.length ? str : ''
-}
-
-function buildSubmitUpload(conf) {
-  const str = `submitUpload() {
-    this.$refs['${conf.vModel}'].submit()
-  },`
-  return str
-}
-
-function buildOptionMethod(methodName, model, methodList) {
-  const str = `${methodName}() {
-    // TODO 发起请求获取数据
-    this.${model}
-  },`
-  methodList.push(str)
-}
-
-function buildexport(conf, type, data, rules, selectOptions, uploadVar, props, methods) {
-  const str = `${exportDefault}{
-  ${inheritAttrs[type]}
-  components: {},
-  props: [],
-  data () {
-    return {
-      ${conf.formModel}: {
-        ${data}
-      },
-      ${conf.formRules}: {
-        ${rules}
-      },
-      ${uploadVar}
-      ${selectOptions}
-      ${props}
-    }
-  },
-  computed: {},
-  watch: {},
-  created () {},
-  mounted () {},
-  methods: {
-    ${methods}
-  }
-}`
-  return str
-}
diff --git a/ruoyi-ui/src/utils/generator/render.js b/ruoyi-ui/src/utils/generator/render.js
deleted file mode 100644
index e8640f0..0000000
--- a/ruoyi-ui/src/utils/generator/render.js
+++ /dev/null
@@ -1,126 +0,0 @@
-import { makeMap } from '@/utils/index'
-
-// 参考https://github.com/vuejs/vue/blob/v2.6.10/src/platforms/web/server/util.js
-const isAttr = makeMap(
-  'accept,accept-charset,accesskey,action,align,alt,async,autocomplete,'
-  + 'autofocus,autoplay,autosave,bgcolor,border,buffered,challenge,charset,'
-  + 'checked,cite,class,code,codebase,color,cols,colspan,content,http-equiv,'
-  + 'name,contenteditable,contextmenu,controls,coords,data,datetime,default,'
-  + 'defer,dir,dirname,disabled,download,draggable,dropzone,enctype,method,for,'
-  + 'form,formaction,headers,height,hidden,high,href,hreflang,http-equiv,'
-  + 'icon,id,ismap,itemprop,keytype,kind,label,lang,language,list,loop,low,'
-  + 'manifest,max,maxlength,media,method,GET,POST,min,multiple,email,file,'
-  + 'muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,'
-  + 'preload,radiogroup,readonly,rel,required,reversed,rows,rowspan,sandbox,'
-  + 'scope,scoped,seamless,selected,shape,size,type,text,password,sizes,span,'
-  + 'spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,'
-  + 'target,title,type,usemap,value,width,wrap'
-)
-
-function vModel(self, dataObject, defaultValue) {
-  dataObject.props.value = defaultValue
-
-  dataObject.on.input = val => {
-    self.$emit('input', val)
-  }
-}
-
-const componentChild = {
-  'el-button': {
-    default(h, conf, key) {
-      return conf[key]
-    },
-  },
-  'el-input': {
-    prepend(h, conf, key) {
-      return <template slot="prepend">{conf[key]}</template>
-    },
-    append(h, conf, key) {
-      return <template slot="append">{conf[key]}</template>
-    }
-  },
-  'el-select': {
-    options(h, conf, key) {
-      const list = []
-      conf.options.forEach(item => {
-        list.push(<el-option label={item.label} value={item.value} disabled={item.disabled}></el-option>)
-      })
-      return list
-    }
-  },
-  'el-radio-group': {
-    options(h, conf, key) {
-      const list = []
-      conf.options.forEach(item => {
-        if (conf.optionType === 'button') list.push(<el-radio-button label={item.value}>{item.label}</el-radio-button>)
-        else list.push(<el-radio label={item.value} border={conf.border}>{item.label}</el-radio>)
-      })
-      return list
-    }
-  },
-  'el-checkbox-group': {
-    options(h, conf, key) {
-      const list = []
-      conf.options.forEach(item => {
-        if (conf.optionType === 'button') {
-          list.push(<el-checkbox-button label={item.value}>{item.label}</el-checkbox-button>)
-        } else {
-          list.push(<el-checkbox label={item.value} border={conf.border}>{item.label}</el-checkbox>)
-        }
-      })
-      return list
-    }
-  },
-  'el-upload': {
-    'list-type': (h, conf, key) => {
-      const list = []
-      if (conf['list-type'] === 'picture-card') {
-        list.push(<i class="el-icon-plus"></i>)
-      } else {
-        list.push(<el-button size="small" type="primary" icon="el-icon-upload">{conf.buttonText}</el-button>)
-      }
-      if (conf.showTip) {
-        list.push(<div slot="tip" class="el-upload__tip">只能上传不超过 {conf.fileSize}{conf.sizeUnit} 的{conf.accept}文件</div>)
-      }
-      return list
-    }
-  }
-}
-
-export default {
-  render(h) {
-    const dataObject = {
-      attrs: {},
-      props: {},
-      on: {},
-      style: {}
-    }
-    const confClone = JSON.parse(JSON.stringify(this.conf))
-    const children = []
-
-    const childObjs = componentChild[confClone.tag]
-    if (childObjs) {
-      Object.keys(childObjs).forEach(key => {
-        const childFunc = childObjs[key]
-        if (confClone[key]) {
-          children.push(childFunc(h, confClone, key))
-        }
-      })
-    }
-
-    Object.keys(confClone).forEach(key => {
-      const val = confClone[key]
-      if (key === 'vModel') {
-        vModel(this, dataObject, confClone.defaultValue)
-      } else if (dataObject[key]) {
-        dataObject[key] = val
-      } else if (!isAttr(key)) {
-        dataObject.props[key] = val
-      } else {
-        dataObject.attrs[key] = val
-      }
-    })
-    return h(this.conf.tag, dataObject, children)
-  },
-  props: ['conf']
-}
diff --git a/ruoyi-ui/src/utils/index.js b/ruoyi-ui/src/utils/index.js
deleted file mode 100644
index df5db12..0000000
--- a/ruoyi-ui/src/utils/index.js
+++ /dev/null
@@ -1,390 +0,0 @@
-import { parseTime } from './ruoyi'
-
-/**
- * 表格时间格式化
- */
-export function formatDate(cellValue) {
-  if (cellValue == null || cellValue == "") return "";
-  var date = new Date(cellValue)
-  var year = date.getFullYear()
-  var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
-  var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
-  var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
-  var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
-  var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
-  return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
-}
-
-/**
- * @param {number} time
- * @param {string} option
- * @returns {string}
- */
-export function formatTime(time, option) {
-  if (('' + time).length === 10) {
-    time = parseInt(time) * 1000
-  } else {
-    time = +time
-  }
-  const d = new Date(time)
-  const now = Date.now()
-
-  const diff = (now - d) / 1000
-
-  if (diff < 30) {
-    return '刚刚'
-  } else if (diff < 3600) {
-    // less 1 hour
-    return Math.ceil(diff / 60) + '分钟前'
-  } else if (diff < 3600 * 24) {
-    return Math.ceil(diff / 3600) + '小时前'
-  } else if (diff < 3600 * 24 * 2) {
-    return '1天前'
-  }
-  if (option) {
-    return parseTime(time, option)
-  } else {
-    return (
-      d.getMonth() +
-      1 +
-      '月' +
-      d.getDate() +
-      '日' +
-      d.getHours() +
-      '时' +
-      d.getMinutes() +
-      '分'
-    )
-  }
-}
-
-/**
- * @param {string} url
- * @returns {Object}
- */
-export function getQueryObject(url) {
-  url = url == null ? window.location.href : url
-  const search = url.substring(url.lastIndexOf('?') + 1)
-  const obj = {}
-  const reg = /([^?&=]+)=([^?&=]*)/g
-  search.replace(reg, (rs, $1, $2) => {
-    const name = decodeURIComponent($1)
-    let val = decodeURIComponent($2)
-    val = String(val)
-    obj[name] = val
-    return rs
-  })
-  return obj
-}
-
-/**
- * @param {string} input value
- * @returns {number} output value
- */
-export function byteLength(str) {
-  // returns the byte length of an utf8 string
-  let s = str.length
-  for (var i = str.length - 1; i >= 0; i--) {
-    const code = str.charCodeAt(i)
-    if (code > 0x7f && code <= 0x7ff) s++
-    else if (code > 0x7ff && code <= 0xffff) s += 2
-    if (code >= 0xDC00 && code <= 0xDFFF) i--
-  }
-  return s
-}
-
-/**
- * @param {Array} actual
- * @returns {Array}
- */
-export function cleanArray(actual) {
-  const newArray = []
-  for (let i = 0; i < actual.length; i++) {
-    if (actual[i]) {
-      newArray.push(actual[i])
-    }
-  }
-  return newArray
-}
-
-/**
- * @param {Object} json
- * @returns {Array}
- */
-export function param(json) {
-  if (!json) return ''
-  return cleanArray(
-    Object.keys(json).map(key => {
-      if (json[key] === undefined) return ''
-      return encodeURIComponent(key) + '=' + encodeURIComponent(json[key])
-    })
-  ).join('&')
-}
-
-/**
- * @param {string} url
- * @returns {Object}
- */
-export function param2Obj(url) {
-  const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ')
-  if (!search) {
-    return {}
-  }
-  const obj = {}
-  const searchArr = search.split('&')
-  searchArr.forEach(v => {
-    const index = v.indexOf('=')
-    if (index !== -1) {
-      const name = v.substring(0, index)
-      const val = v.substring(index + 1, v.length)
-      obj[name] = val
-    }
-  })
-  return obj
-}
-
-/**
- * @param {string} val
- * @returns {string}
- */
-export function html2Text(val) {
-  const div = document.createElement('div')
-  div.innerHTML = val
-  return div.textContent || div.innerText
-}
-
-/**
- * Merges two objects, giving the last one precedence
- * @param {Object} target
- * @param {(Object|Array)} source
- * @returns {Object}
- */
-export function objectMerge(target, source) {
-  if (typeof target !== 'object') {
-    target = {}
-  }
-  if (Array.isArray(source)) {
-    return source.slice()
-  }
-  Object.keys(source).forEach(property => {
-    const sourceProperty = source[property]
-    if (typeof sourceProperty === 'object') {
-      target[property] = objectMerge(target[property], sourceProperty)
-    } else {
-      target[property] = sourceProperty
-    }
-  })
-  return target
-}
-
-/**
- * @param {HTMLElement} element
- * @param {string} className
- */
-export function toggleClass(element, className) {
-  if (!element || !className) {
-    return
-  }
-  let classString = element.className
-  const nameIndex = classString.indexOf(className)
-  if (nameIndex === -1) {
-    classString += '' + className
-  } else {
-    classString =
-      classString.substr(0, nameIndex) +
-      classString.substr(nameIndex + className.length)
-  }
-  element.className = classString
-}
-
-/**
- * @param {string} type
- * @returns {Date}
- */
-export function getTime(type) {
-  if (type === 'start') {
-    return new Date().getTime() - 3600 * 1000 * 24 * 90
-  } else {
-    return new Date(new Date().toDateString())
-  }
-}
-
-/**
- * @param {Function} func
- * @param {number} wait
- * @param {boolean} immediate
- * @return {*}
- */
-export function debounce(func, wait, immediate) {
-  let timeout, args, context, timestamp, result
-
-  const later = function() {
-    // 据上一次触发时间间隔
-    const last = +new Date() - timestamp
-
-    // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait
-    if (last < wait && last > 0) {
-      timeout = setTimeout(later, wait - last)
-    } else {
-      timeout = null
-      // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用
-      if (!immediate) {
-        result = func.apply(context, args)
-        if (!timeout) context = args = null
-      }
-    }
-  }
-
-  return function(...args) {
-    context = this
-    timestamp = +new Date()
-    const callNow = immediate && !timeout
-    // 如果延时不存在,重新设定延时
-    if (!timeout) timeout = setTimeout(later, wait)
-    if (callNow) {
-      result = func.apply(context, args)
-      context = args = null
-    }
-
-    return result
-  }
-}
-
-/**
- * This is just a simple version of deep copy
- * Has a lot of edge cases bug
- * If you want to use a perfect deep copy, use lodash's _.cloneDeep
- * @param {Object} source
- * @returns {Object}
- */
-export function deepClone(source) {
-  if (!source && typeof source !== 'object') {
-    throw new Error('error arguments', 'deepClone')
-  }
-  const targetObj = source.constructor === Array ? [] : {}
-  Object.keys(source).forEach(keys => {
-    if (source[keys] && typeof source[keys] === 'object') {
-      targetObj[keys] = deepClone(source[keys])
-    } else {
-      targetObj[keys] = source[keys]
-    }
-  })
-  return targetObj
-}
-
-/**
- * @param {Array} arr
- * @returns {Array}
- */
-export function uniqueArr(arr) {
-  return Array.from(new Set(arr))
-}
-
-/**
- * @returns {string}
- */
-export function createUniqueString() {
-  const timestamp = +new Date() + ''
-  const randomNum = parseInt((1 + Math.random()) * 65536) + ''
-  return (+(randomNum + timestamp)).toString(32)
-}
-
-/**
- * Check if an element has a class
- * @param {HTMLElement} elm
- * @param {string} cls
- * @returns {boolean}
- */
-export function hasClass(ele, cls) {
-  return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'))
-}
-
-/**
- * Add class to element
- * @param {HTMLElement} elm
- * @param {string} cls
- */
-export function addClass(ele, cls) {
-  if (!hasClass(ele, cls)) ele.className += ' ' + cls
-}
-
-/**
- * Remove class from element
- * @param {HTMLElement} elm
- * @param {string} cls
- */
-export function removeClass(ele, cls) {
-  if (hasClass(ele, cls)) {
-    const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)')
-    ele.className = ele.className.replace(reg, ' ')
-  }
-}
-
-export function makeMap(str, expectsLowerCase) {
-  const map = Object.create(null)
-  const list = str.split(',')
-  for (let i = 0; i < list.length; i++) {
-    map[list[i]] = true
-  }
-  return expectsLowerCase
-    ? val => map[val.toLowerCase()]
-    : val => map[val]
-}
-
-export const exportDefault = 'export default '
-
-export const beautifierConf = {
-  html: {
-    indent_size: '2',
-    indent_char: ' ',
-    max_preserve_newlines: '-1',
-    preserve_newlines: false,
-    keep_array_indentation: false,
-    break_chained_methods: false,
-    indent_scripts: 'separate',
-    brace_style: 'end-expand',
-    space_before_conditional: true,
-    unescape_strings: false,
-    jslint_happy: false,
-    end_with_newline: true,
-    wrap_line_length: '110',
-    indent_inner_html: true,
-    comma_first: false,
-    e4x: true,
-    indent_empty_lines: true
-  },
-  js: {
-    indent_size: '2',
-    indent_char: ' ',
-    max_preserve_newlines: '-1',
-    preserve_newlines: false,
-    keep_array_indentation: false,
-    break_chained_methods: false,
-    indent_scripts: 'normal',
-    brace_style: 'end-expand',
-    space_before_conditional: true,
-    unescape_strings: false,
-    jslint_happy: true,
-    end_with_newline: true,
-    wrap_line_length: '110',
-    indent_inner_html: true,
-    comma_first: false,
-    e4x: true,
-    indent_empty_lines: true
-  }
-}
-
-// 首字母大小
-export function titleCase(str) {
-  return str.replace(/( |^)[a-z]/g, L => L.toUpperCase())
-}
-
-// 下划转驼峰
-export function camelCase(str) {
-  return str.replace(/_[a-z]/g, str1 => str1.substr(-1).toUpperCase())
-}
-
-export function isNumberStr(str) {
-  return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str)
-}
-
diff --git a/ruoyi-ui/src/utils/jsencrypt.js b/ruoyi-ui/src/utils/jsencrypt.js
deleted file mode 100644
index 78d9523..0000000
--- a/ruoyi-ui/src/utils/jsencrypt.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
-
-// 密钥对生成 http://web.chacuo.net/netrsakeypair
-
-const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' +
-  'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
-
-const privateKey = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' +
-  '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' +
-  'PuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\n' +
-  'kM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\n' +
-  'cSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\n' +
-  'DQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\n' +
-  'YhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\n' +
-  'UP8iWi1Qw0Y='
-
-// 加密
-export function encrypt(txt) {
-  const encryptor = new JSEncrypt()
-  encryptor.setPublicKey(publicKey) // 设置公钥
-  return encryptor.encrypt(txt) // 对数据进行加密
-}
-
-// 解密
-export function decrypt(txt) {
-  const encryptor = new JSEncrypt()
-  encryptor.setPrivateKey(privateKey) // 设置私钥
-  return encryptor.decrypt(txt) // 对数据进行解密
-}
-
diff --git a/ruoyi-ui/src/utils/permission.js b/ruoyi-ui/src/utils/permission.js
deleted file mode 100644
index 189a716..0000000
--- a/ruoyi-ui/src/utils/permission.js
+++ /dev/null
@@ -1,47 +0,0 @@
-import store from '@/store'
-
-/**
- * 字符权限校验
- * @param {Array} value 校验值
- * @returns {Boolean}
- */
-export function checkPermi(value) {
-  if (value && value instanceof Array && value.length > 0) {
-    const permissions = store.getters && store.getters.permissions
-    const permissionDatas = value
-    const all_permission = "*:*:*";
-
-    const hasPermission = permissions.some(permission => {
-      return all_permission === permission || permissionDatas.includes(permission)
-    })
-
-    return hasPermission;
-
-  } else {
-    console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`)
-    return false
-  }
-}
-
-/**
- * 角色权限校验
- * @param {Array} value 校验值
- * @returns {Boolean}
- */
-export function checkRole(value) {
-  if (value && value instanceof Array && value.length > 0) {
-    const roles = store.getters && store.getters.roles
-    const permissionRoles = value
-    const super_admin = "admin";
-
-    const hasRole = roles.some(role => {
-      return super_admin === role || permissionRoles.includes(role)
-    })
-
-    return hasRole;
-
-  } else {
-    console.error(`need roles! Like checkRole="['admin','editor']"`)
-    return false
-  }
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/utils/request.js b/ruoyi-ui/src/utils/request.js
deleted file mode 100644
index ffb0d21..0000000
--- a/ruoyi-ui/src/utils/request.js
+++ /dev/null
@@ -1,152 +0,0 @@
-import axios from 'axios'
-import { Notification, MessageBox, Message, Loading } from 'element-ui'
-import store from '@/store'
-import { getToken } from '@/utils/auth'
-import errorCode from '@/utils/errorCode'
-import { tansParams, blobValidate } from "@/utils/ruoyi";
-import cache from '@/plugins/cache'
-import { saveAs } from 'file-saver'
-
-let downloadLoadingInstance;
-// 是否显示重新登录
-export let isRelogin = { show: false };
-
-axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
-// 创建axios实例
-const service = axios.create({
-  // axios中请求配置有baseURL选项,表示请求URL公共部分
-  baseURL: process.env.VUE_APP_BASE_API,
-  // 超时
-  timeout: 10000
-})
-
-// request拦截器
-service.interceptors.request.use(config => {
-  // 是否需要设置 token
-  const isToken = (config.headers || {}).isToken === false
-  // 是否需要防止数据重复提交
-  const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
-  if (getToken() && !isToken) {
-    config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
-  }
-  // get请求映射params参数
-  if (config.method === 'get' && config.params) {
-    let url = config.url + '?' + tansParams(config.params);
-    url = url.slice(0, -1);
-    config.params = {};
-    config.url = url;
-  }
-  if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
-    const requestObj = {
-      url: config.url,
-      data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data,
-      time: new Date().getTime()
-    }
-    const requestSize = Object.keys(JSON.stringify(requestObj)).length; // 请求数据大小
-    const limitSize = 5 * 1024 * 1024; // 限制存放数据5M
-    if (requestSize >= limitSize) {
-      console.warn(`[${config.url}]: ` + '请求数据大小超出允许的5M限制,无法进行防重复提交验证。')
-      return config;
-    }
-    const sessionObj = cache.session.getJSON('sessionObj')
-    if (sessionObj === undefined || sessionObj === null || sessionObj === '') {
-      cache.session.setJSON('sessionObj', requestObj)
-    } else {
-      const s_url = sessionObj.url;                  // 请求地址
-      const s_data = sessionObj.data;                // 请求数据
-      const s_time = sessionObj.time;                // 请求时间
-      const interval = 1000;                         // 间隔时间(ms),小于此时间视为重复提交
-      if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
-        const message = '数据正在处理,请勿重复提交';
-        console.warn(`[${s_url}]: ` + message)
-        return Promise.reject(new Error(message))
-      } else {
-        cache.session.setJSON('sessionObj', requestObj)
-      }
-    }
-  }
-  return config
-}, error => {
-    console.log(error)
-    Promise.reject(error)
-})
-
-// 响应拦截器
-service.interceptors.response.use(res => {
-    // 未设置状态码则默认成功状态
-    const code = res.data.code || 200;
-    // 获取错误信息
-    const msg = errorCode[code] || res.data.msg || errorCode['default']
-    // 二进制数据则直接返回
-    if (res.request.responseType ===  'blob' || res.request.responseType ===  'arraybuffer') {
-      return res.data
-    }
-    if (code === 401) {
-      if (!isRelogin.show) {
-        isRelogin.show = true;
-        MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => {
-          isRelogin.show = false;
-          store.dispatch('LogOut').then(() => {
-            location.href = '/index';
-          })
-      }).catch(() => {
-        isRelogin.show = false;
-      });
-    }
-      return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
-    } else if (code === 500) {
-      Message({ message: msg, type: 'error' })
-      return Promise.reject(new Error(msg))
-    } else if (code === 601) {
-      Message({ message: msg, type: 'warning' })
-      return Promise.reject('error')
-    } else if (code !== 200) {
-      Notification.error({ title: msg })
-      return Promise.reject('error')
-    } else {
-      return res.data
-    }
-  },
-  error => {
-    console.log('err' + error)
-    let { message } = error;
-    if (message == "Network Error") {
-      message = "后端接口连接异常";
-    } else if (message.includes("timeout")) {
-      message = "系统接口请求超时";
-    } else if (message.includes("Request failed with status code")) {
-      message = "系统接口" + message.substr(message.length - 3) + "异常";
-    }
-    Message({ message: message, type: 'error', duration: 5 * 1000 })
-    return Promise.reject(error)
-  }
-)
-
-// 通用下载方法
-export function download(url, params, filename, config) {
-  downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })
-  return service.post(url, params, {
-    transformRequest: [(params) => { return tansParams(params) }],
-    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
-    responseType: 'blob',
-    ...config
-  }).then(async (data) => {
-    const isBlob = blobValidate(data);
-    if (isBlob) {
-      const blob = new Blob([data])
-      saveAs(blob, filename)
-    } else {
-      const resText = await data.text();
-      const rspObj = JSON.parse(resText);
-      const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
-      Message.error(errMsg);
-    }
-    downloadLoadingInstance.close();
-  }).catch((r) => {
-    console.error(r)
-    Message.error('下载文件出现错误,请联系管理员!')
-    downloadLoadingInstance.close();
-  })
-}
-
-export default service
diff --git a/ruoyi-ui/src/utils/ruoyi.js b/ruoyi-ui/src/utils/ruoyi.js
deleted file mode 100644
index 44bf9c4..0000000
--- a/ruoyi-ui/src/utils/ruoyi.js
+++ /dev/null
@@ -1,233 +0,0 @@
-
-
-/**
- * 通用js方法封装处理
- * Copyright (c) 2019 ruoyi
- */
-
-// 日期格式化
-export function parseTime(time, pattern) {
-  if (arguments.length === 0 || !time) {
-    return null
-  }
-  const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
-  let date
-  if (typeof time === 'object') {
-    date = time
-  } else {
-    if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
-      time = parseInt(time)
-    } else if (typeof time === 'string') {
-      time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), '');
-    }
-    if ((typeof time === 'number') && (time.toString().length === 10)) {
-      time = time * 1000
-    }
-    date = new Date(time)
-  }
-  const formatObj = {
-    y: date.getFullYear(),
-    m: date.getMonth() + 1,
-    d: date.getDate(),
-    h: date.getHours(),
-    i: date.getMinutes(),
-    s: date.getSeconds(),
-    a: date.getDay()
-  }
-  const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
-    let value = formatObj[key]
-    // Note: getDay() returns 0 on Sunday
-    if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
-    if (result.length > 0 && value < 10) {
-      value = '0' + value
-    }
-    return value || 0
-  })
-  return time_str
-}
-
-// 表单重置
-export function resetForm(refName) {
-  if (this.$refs[refName]) {
-    this.$refs[refName].resetFields();
-  }
-}
-
-// 添加日期范围
-export function addDateRange(params, dateRange, propName) {
-  let search = params;
-  search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {};
-  dateRange = Array.isArray(dateRange) ? dateRange : [];
-  if (typeof (propName) === 'undefined') {
-    search.params['beginTime'] = dateRange[0];
-    search.params['endTime'] = dateRange[1];
-  } else {
-    search.params['begin' + propName] = dateRange[0];
-    search.params['end' + propName] = dateRange[1];
-  }
-  return search;
-}
-
-// 回显数据字典
-export function selectDictLabel(datas, value) {
-  if (value === undefined) {
-    return "";
-  }
-  var actions = [];
-  Object.keys(datas).some((key) => {
-    if (datas[key].value == ('' + value)) {
-      actions.push(datas[key].label);
-      return true;
-    }
-  })
-  if (actions.length === 0) {
-    actions.push(value);
-  }
-  return actions.join('');
-}
-
-// 回显数据字典(字符串、数组)
-export function selectDictLabels(datas, value, separator) {
-  if (value === undefined || value.length ===0) {
-    return "";
-  }
-  if (Array.isArray(value)) {
-    value = value.join(",");
-  }
-  var actions = [];
-  var currentSeparator = undefined === separator ? "," : separator;
-  var temp = value.split(currentSeparator);
-  Object.keys(value.split(currentSeparator)).some((val) => {
-    var match = false;
-    Object.keys(datas).some((key) => {
-      if (datas[key].value == ('' + temp[val])) {
-        actions.push(datas[key].label + currentSeparator);
-        match = true;
-      }
-    })
-    if (!match) {
-      actions.push(temp[val] + currentSeparator);
-    }
-  })
-  return actions.join('').substring(0, actions.join('').length - 1);
-}
-
-// 字符串格式化(%s )
-export function sprintf(str) {
-  var args = arguments, flag = true, i = 1;
-  str = str.replace(/%s/g, function () {
-    var arg = args[i++];
-    if (typeof arg === 'undefined') {
-      flag = false;
-      return '';
-    }
-    return arg;
-  });
-  return flag ? str : '';
-}
-
-// 转换字符串,undefined,null等转化为""
-export function parseStrEmpty(str) {
-  if (!str || str == "undefined" || str == "null") {
-    return "";
-  }
-  return str;
-}
-
-// 数据合并
-export function mergeRecursive(source, target) {
-  for (var p in target) {
-    try {
-      if (target[p].constructor == Object) {
-        source[p] = mergeRecursive(source[p], target[p]);
-      } else {
-        source[p] = target[p];
-      }
-    } catch (e) {
-      source[p] = target[p];
-    }
-  }
-  return source;
-};
-
-/**
- * 构造树型结构数据
- * @param {*} data 数据源
- * @param {*} id id字段 默认 'id'
- * @param {*} parentId 父节点字段 默认 'parentId'
- * @param {*} children 孩子节点字段 默认 'children'
- */
-export function handleTree(data, id, parentId, children) {
-  let config = {
-    id: id || 'id',
-    parentId: parentId || 'parentId',
-    childrenList: children || 'children'
-  };
-
-  var childrenListMap = {};
-  var nodeIds = {};
-  var tree = [];
-
-  for (let d of data) {
-    let parentId = d[config.parentId];
-    if (childrenListMap[parentId] == null) {
-      childrenListMap[parentId] = [];
-    }
-    nodeIds[d[config.id]] = d;
-    childrenListMap[parentId].push(d);
-  }
-
-  for (let d of data) {
-    let parentId = d[config.parentId];
-    if (nodeIds[parentId] == null) {
-      tree.push(d);
-    }
-  }
-
-  for (let t of tree) {
-    adaptToChildrenList(t);
-  }
-
-  function adaptToChildrenList(o) {
-    if (childrenListMap[o[config.id]] !== null) {
-      o[config.childrenList] = childrenListMap[o[config.id]];
-    }
-    if (o[config.childrenList]) {
-      for (let c of o[config.childrenList]) {
-        adaptToChildrenList(c);
-      }
-    }
-  }
-  return tree;
-}
-
-/**
-* 参数处理
-* @param {*} params  参数
-*/
-export function tansParams(params) {
-  let result = ''
-  for (const propName of Object.keys(params)) {
-    const value = params[propName];
-    var part = encodeURIComponent(propName) + "=";
-    if (value !== null && value !== "" && typeof (value) !== "undefined") {
-      if (typeof value === 'object') {
-        for (const key of Object.keys(value)) {
-          if (value[key] !== null && value[key] !== "" && typeof (value[key]) !== 'undefined') {
-            let params = propName + '[' + key + ']';
-            var subPart = encodeURIComponent(params) + "=";
-            result += subPart + encodeURIComponent(value[key]) + "&";
-          }
-        }
-      } else {
-        result += part + encodeURIComponent(value) + "&";
-      }
-    }
-  }
-  return result
-}
-
-// 验证是否为blob格式
-export function blobValidate(data) {
-  return data.type !== 'application/json'
-}
diff --git a/ruoyi-ui/src/utils/scroll-to.js b/ruoyi-ui/src/utils/scroll-to.js
deleted file mode 100644
index c5d8e04..0000000
--- a/ruoyi-ui/src/utils/scroll-to.js
+++ /dev/null
@@ -1,58 +0,0 @@
-Math.easeInOutQuad = function(t, b, c, d) {
-  t /= d / 2
-  if (t < 1) {
-    return c / 2 * t * t + b
-  }
-  t--
-  return -c / 2 * (t * (t - 2) - 1) + b
-}
-
-// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts
-var requestAnimFrame = (function() {
-  return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60) }
-})()
-
-/**
- * Because it's so fucking difficult to detect the scrolling element, just move them all
- * @param {number} amount
- */
-function move(amount) {
-  document.documentElement.scrollTop = amount
-  document.body.parentNode.scrollTop = amount
-  document.body.scrollTop = amount
-}
-
-function position() {
-  return document.documentElement.scrollTop || document.body.parentNode.scrollTop || document.body.scrollTop
-}
-
-/**
- * @param {number} to
- * @param {number} duration
- * @param {Function} callback
- */
-export function scrollTo(to, duration, callback) {
-  const start = position()
-  const change = to - start
-  const increment = 20
-  let currentTime = 0
-  duration = (typeof (duration) === 'undefined') ? 500 : duration
-  var animateScroll = function() {
-    // increment the time
-    currentTime += increment
-    // find the value with the quadratic in-out easing function
-    var val = Math.easeInOutQuad(currentTime, start, change, duration)
-    // move the document.body
-    move(val)
-    // do the animation unless its over
-    if (currentTime < duration) {
-      requestAnimFrame(animateScroll)
-    } else {
-      if (callback && typeof (callback) === 'function') {
-        // the animation is done so lets callback
-        callback()
-      }
-    }
-  }
-  animateScroll()
-}
diff --git a/ruoyi-ui/src/utils/validate.js b/ruoyi-ui/src/utils/validate.js
deleted file mode 100644
index 57a568e..0000000
--- a/ruoyi-ui/src/utils/validate.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * @param {string} path
- * @returns {Boolean}
- */
-export function isExternal(path) {
-  return /^(https?:|mailto:|tel:)/.test(path)
-}
-
-/**
- * @param {string} str
- * @returns {Boolean}
- */
-export function validUsername(str) {
-  const valid_map = ['admin', 'editor']
-  return valid_map.indexOf(str.trim()) >= 0
-}
-
-/**
- * @param {string} url
- * @returns {Boolean}
- */
-export function validURL(url) {
-  const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
-  return reg.test(url)
-}
-
-/**
- * @param {string} str
- * @returns {Boolean}
- */
-export function validLowerCase(str) {
-  const reg = /^[a-z]+$/
-  return reg.test(str)
-}
-
-/**
- * @param {string} str
- * @returns {Boolean}
- */
-export function validUpperCase(str) {
-  const reg = /^[A-Z]+$/
-  return reg.test(str)
-}
-
-/**
- * @param {string} str
- * @returns {Boolean}
- */
-export function validAlphabets(str) {
-  const reg = /^[A-Za-z]+$/
-  return reg.test(str)
-}
-
-/**
- * @param {string} email
- * @returns {Boolean}
- */
-export function validEmail(email) {
-  const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
-  return reg.test(email)
-}
-
-/**
- * @param {string} str
- * @returns {Boolean}
- */
-export function isString(str) {
-  return typeof str === 'string' || str instanceof String;
-}
-
-/**
- * @param {Array} arg
- * @returns {Boolean}
- */
-export function isArray(arg) {
-  if (typeof Array.isArray === 'undefined') {
-    return Object.prototype.toString.call(arg) === '[object Array]'
-  }
-  return Array.isArray(arg)
-}
diff --git a/ruoyi-ui/src/views/dashboard/BarChart.vue b/ruoyi-ui/src/views/dashboard/BarChart.vue
deleted file mode 100644
index 88e7ef6..0000000
--- a/ruoyi-ui/src/views/dashboard/BarChart.vue
+++ /dev/null
@@ -1,102 +0,0 @@
-<template>
-  <div :class="className" :style="{height:height,width:width}" />
-</template>
-
-<script>
-import * as echarts from 'echarts'
-require('echarts/theme/macarons') // echarts theme
-import resize from './mixins/resize'
-
-const animationDuration = 6000
-
-export default {
-  mixins: [resize],
-  props: {
-    className: {
-      type: String,
-      default: 'chart'
-    },
-    width: {
-      type: String,
-      default: '100%'
-    },
-    height: {
-      type: String,
-      default: '300px'
-    }
-  },
-  data() {
-    return {
-      chart: null
-    }
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.initChart()
-    })
-  },
-  beforeDestroy() {
-    if (!this.chart) {
-      return
-    }
-    this.chart.dispose()
-    this.chart = null
-  },
-  methods: {
-    initChart() {
-      this.chart = echarts.init(this.$el, 'macarons')
-
-      this.chart.setOption({
-        tooltip: {
-          trigger: 'axis',
-          axisPointer: { // 坐标轴指示器,坐标轴触发有效
-            type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
-          }
-        },
-        grid: {
-          top: 10,
-          left: '2%',
-          right: '2%',
-          bottom: '3%',
-          containLabel: true
-        },
-        xAxis: [{
-          type: 'category',
-          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
-          axisTick: {
-            alignWithLabel: true
-          }
-        }],
-        yAxis: [{
-          type: 'value',
-          axisTick: {
-            show: false
-          }
-        }],
-        series: [{
-          name: 'pageA',
-          type: 'bar',
-          stack: 'vistors',
-          barWidth: '60%',
-          data: [79, 52, 200, 334, 390, 330, 220],
-          animationDuration
-        }, {
-          name: 'pageB',
-          type: 'bar',
-          stack: 'vistors',
-          barWidth: '60%',
-          data: [80, 52, 200, 334, 390, 330, 220],
-          animationDuration
-        }, {
-          name: 'pageC',
-          type: 'bar',
-          stack: 'vistors',
-          barWidth: '60%',
-          data: [30, 52, 200, 334, 390, 330, 220],
-          animationDuration
-        }]
-      })
-    }
-  }
-}
-</script>
diff --git a/ruoyi-ui/src/views/dashboard/LineChart.vue b/ruoyi-ui/src/views/dashboard/LineChart.vue
deleted file mode 100644
index 702ff73..0000000
--- a/ruoyi-ui/src/views/dashboard/LineChart.vue
+++ /dev/null
@@ -1,135 +0,0 @@
-<template>
-  <div :class="className" :style="{height:height,width:width}" />
-</template>
-
-<script>
-import * as echarts from 'echarts'
-require('echarts/theme/macarons') // echarts theme
-import resize from './mixins/resize'
-
-export default {
-  mixins: [resize],
-  props: {
-    className: {
-      type: String,
-      default: 'chart'
-    },
-    width: {
-      type: String,
-      default: '100%'
-    },
-    height: {
-      type: String,
-      default: '350px'
-    },
-    autoResize: {
-      type: Boolean,
-      default: true
-    },
-    chartData: {
-      type: Object,
-      required: true
-    }
-  },
-  data() {
-    return {
-      chart: null
-    }
-  },
-  watch: {
-    chartData: {
-      deep: true,
-      handler(val) {
-        this.setOptions(val)
-      }
-    }
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.initChart()
-    })
-  },
-  beforeDestroy() {
-    if (!this.chart) {
-      return
-    }
-    this.chart.dispose()
-    this.chart = null
-  },
-  methods: {
-    initChart() {
-      this.chart = echarts.init(this.$el, 'macarons')
-      this.setOptions(this.chartData)
-    },
-    setOptions({ expectedData, actualData } = {}) {
-      this.chart.setOption({
-        xAxis: {
-          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
-          boundaryGap: false,
-          axisTick: {
-            show: false
-          }
-        },
-        grid: {
-          left: 10,
-          right: 10,
-          bottom: 20,
-          top: 30,
-          containLabel: true
-        },
-        tooltip: {
-          trigger: 'axis',
-          axisPointer: {
-            type: 'cross'
-          },
-          padding: [5, 10]
-        },
-        yAxis: {
-          axisTick: {
-            show: false
-          }
-        },
-        legend: {
-          data: ['expected', 'actual']
-        },
-        series: [{
-          name: 'expected', itemStyle: {
-            normal: {
-              color: '#FF005A',
-              lineStyle: {
-                color: '#FF005A',
-                width: 2
-              }
-            }
-          },
-          smooth: true,
-          type: 'line',
-          data: expectedData,
-          animationDuration: 2800,
-          animationEasing: 'cubicInOut'
-        },
-        {
-          name: 'actual',
-          smooth: true,
-          type: 'line',
-          itemStyle: {
-            normal: {
-              color: '#3888fa',
-              lineStyle: {
-                color: '#3888fa',
-                width: 2
-              },
-              areaStyle: {
-                color: '#f3f8ff'
-              }
-            }
-          },
-          data: actualData,
-          animationDuration: 2800,
-          animationEasing: 'quadraticOut'
-        }]
-      })
-    }
-  }
-}
-</script>
diff --git a/ruoyi-ui/src/views/dashboard/PanelGroup.vue b/ruoyi-ui/src/views/dashboard/PanelGroup.vue
deleted file mode 100644
index 1a1081f..0000000
--- a/ruoyi-ui/src/views/dashboard/PanelGroup.vue
+++ /dev/null
@@ -1,181 +0,0 @@
-<template>
-  <el-row :gutter="40" class="panel-group">
-    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
-      <div class="card-panel" @click="handleSetLineChartData('newVisitis')">
-        <div class="card-panel-icon-wrapper icon-people">
-          <svg-icon icon-class="peoples" class-name="card-panel-icon" />
-        </div>
-        <div class="card-panel-description">
-          <div class="card-panel-text">
-            访客
-          </div>
-          <count-to :start-val="0" :end-val="102400" :duration="2600" class="card-panel-num" />
-        </div>
-      </div>
-    </el-col>
-    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
-      <div class="card-panel" @click="handleSetLineChartData('messages')">
-        <div class="card-panel-icon-wrapper icon-message">
-          <svg-icon icon-class="message" class-name="card-panel-icon" />
-        </div>
-        <div class="card-panel-description">
-          <div class="card-panel-text">
-            消息
-          </div>
-          <count-to :start-val="0" :end-val="81212" :duration="3000" class="card-panel-num" />
-        </div>
-      </div>
-    </el-col>
-    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
-      <div class="card-panel" @click="handleSetLineChartData('purchases')">
-        <div class="card-panel-icon-wrapper icon-money">
-          <svg-icon icon-class="money" class-name="card-panel-icon" />
-        </div>
-        <div class="card-panel-description">
-          <div class="card-panel-text">
-            金额
-          </div>
-          <count-to :start-val="0" :end-val="9280" :duration="3200" class="card-panel-num" />
-        </div>
-      </div>
-    </el-col>
-    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
-      <div class="card-panel" @click="handleSetLineChartData('shoppings')">
-        <div class="card-panel-icon-wrapper icon-shopping">
-          <svg-icon icon-class="shopping" class-name="card-panel-icon" />
-        </div>
-        <div class="card-panel-description">
-          <div class="card-panel-text">
-            订单
-          </div>
-          <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" />
-        </div>
-      </div>
-    </el-col>
-  </el-row>
-</template>
-
-<script>
-import CountTo from 'vue-count-to'
-
-export default {
-  components: {
-    CountTo
-  },
-  methods: {
-    handleSetLineChartData(type) {
-      this.$emit('handleSetLineChartData', type)
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.panel-group {
-  margin-top: 18px;
-
-  .card-panel-col {
-    margin-bottom: 32px;
-  }
-
-  .card-panel {
-    height: 108px;
-    cursor: pointer;
-    font-size: 12px;
-    position: relative;
-    overflow: hidden;
-    color: #666;
-    background: #fff;
-    box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
-    border-color: rgba(0, 0, 0, .05);
-
-    &:hover {
-      .card-panel-icon-wrapper {
-        color: #fff;
-      }
-
-      .icon-people {
-        background: #40c9c6;
-      }
-
-      .icon-message {
-        background: #36a3f7;
-      }
-
-      .icon-money {
-        background: #f4516c;
-      }
-
-      .icon-shopping {
-        background: #34bfa3
-      }
-    }
-
-    .icon-people {
-      color: #40c9c6;
-    }
-
-    .icon-message {
-      color: #36a3f7;
-    }
-
-    .icon-money {
-      color: #f4516c;
-    }
-
-    .icon-shopping {
-      color: #34bfa3
-    }
-
-    .card-panel-icon-wrapper {
-      float: left;
-      margin: 14px 0 0 14px;
-      padding: 16px;
-      transition: all 0.38s ease-out;
-      border-radius: 6px;
-    }
-
-    .card-panel-icon {
-      float: left;
-      font-size: 48px;
-    }
-
-    .card-panel-description {
-      float: right;
-      font-weight: bold;
-      margin: 26px;
-      margin-left: 0px;
-
-      .card-panel-text {
-        line-height: 18px;
-        color: rgba(0, 0, 0, 0.45);
-        font-size: 16px;
-        margin-bottom: 12px;
-      }
-
-      .card-panel-num {
-        font-size: 20px;
-      }
-    }
-  }
-}
-
-@media (max-width:550px) {
-  .card-panel-description {
-    display: none;
-  }
-
-  .card-panel-icon-wrapper {
-    float: none !important;
-    width: 100%;
-    height: 100%;
-    margin: 0 !important;
-
-    .svg-icon {
-      display: block;
-      margin: 14px auto !important;
-      float: none !important;
-    }
-  }
-}
-</style>
diff --git a/ruoyi-ui/src/views/dashboard/PieChart.vue b/ruoyi-ui/src/views/dashboard/PieChart.vue
deleted file mode 100644
index 63f0d84..0000000
--- a/ruoyi-ui/src/views/dashboard/PieChart.vue
+++ /dev/null
@@ -1,79 +0,0 @@
-<template>
-  <div :class="className" :style="{height:height,width:width}" />
-</template>
-
-<script>
-import * as echarts from 'echarts'
-require('echarts/theme/macarons') // echarts theme
-import resize from './mixins/resize'
-
-export default {
-  mixins: [resize],
-  props: {
-    className: {
-      type: String,
-      default: 'chart'
-    },
-    width: {
-      type: String,
-      default: '100%'
-    },
-    height: {
-      type: String,
-      default: '300px'
-    }
-  },
-  data() {
-    return {
-      chart: null
-    }
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.initChart()
-    })
-  },
-  beforeDestroy() {
-    if (!this.chart) {
-      return
-    }
-    this.chart.dispose()
-    this.chart = null
-  },
-  methods: {
-    initChart() {
-      this.chart = echarts.init(this.$el, 'macarons')
-
-      this.chart.setOption({
-        tooltip: {
-          trigger: 'item',
-          formatter: '{a} <br/>{b} : {c} ({d}%)'
-        },
-        legend: {
-          left: 'center',
-          bottom: '10',
-          data: ['Industries', 'Technology', 'Forex', 'Gold', 'Forecasts']
-        },
-        series: [
-          {
-            name: 'WEEKLY WRITE ARTICLES',
-            type: 'pie',
-            roseType: 'radius',
-            radius: [15, 95],
-            center: ['50%', '38%'],
-            data: [
-              { value: 320, name: 'Industries' },
-              { value: 240, name: 'Technology' },
-              { value: 149, name: 'Forex' },
-              { value: 100, name: 'Gold' },
-              { value: 59, name: 'Forecasts' }
-            ],
-            animationEasing: 'cubicInOut',
-            animationDuration: 2600
-          }
-        ]
-      })
-    }
-  }
-}
-</script>
diff --git a/ruoyi-ui/src/views/dashboard/RaddarChart.vue b/ruoyi-ui/src/views/dashboard/RaddarChart.vue
deleted file mode 100644
index 312e018..0000000
--- a/ruoyi-ui/src/views/dashboard/RaddarChart.vue
+++ /dev/null
@@ -1,116 +0,0 @@
-<template>
-  <div :class="className" :style="{height:height,width:width}" />
-</template>
-
-<script>
-import * as echarts from 'echarts'
-require('echarts/theme/macarons') // echarts theme
-import resize from './mixins/resize'
-
-const animationDuration = 3000
-
-export default {
-  mixins: [resize],
-  props: {
-    className: {
-      type: String,
-      default: 'chart'
-    },
-    width: {
-      type: String,
-      default: '100%'
-    },
-    height: {
-      type: String,
-      default: '300px'
-    }
-  },
-  data() {
-    return {
-      chart: null
-    }
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.initChart()
-    })
-  },
-  beforeDestroy() {
-    if (!this.chart) {
-      return
-    }
-    this.chart.dispose()
-    this.chart = null
-  },
-  methods: {
-    initChart() {
-      this.chart = echarts.init(this.$el, 'macarons')
-
-      this.chart.setOption({
-        tooltip: {
-          trigger: 'axis',
-          axisPointer: { // 坐标轴指示器,坐标轴触发有效
-            type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
-          }
-        },
-        radar: {
-          radius: '66%',
-          center: ['50%', '42%'],
-          splitNumber: 8,
-          splitArea: {
-            areaStyle: {
-              color: 'rgba(127,95,132,.3)',
-              opacity: 1,
-              shadowBlur: 45,
-              shadowColor: 'rgba(0,0,0,.5)',
-              shadowOffsetX: 0,
-              shadowOffsetY: 15
-            }
-          },
-          indicator: [
-            { name: 'Sales', max: 10000 },
-            { name: 'Administration', max: 20000 },
-            { name: 'Information Techology', max: 20000 },
-            { name: 'Customer Support', max: 20000 },
-            { name: 'Development', max: 20000 },
-            { name: 'Marketing', max: 20000 }
-          ]
-        },
-        legend: {
-          left: 'center',
-          bottom: '10',
-          data: ['Allocated Budget', 'Expected Spending', 'Actual Spending']
-        },
-        series: [{
-          type: 'radar',
-          symbolSize: 0,
-          areaStyle: {
-            normal: {
-              shadowBlur: 13,
-              shadowColor: 'rgba(0,0,0,.2)',
-              shadowOffsetX: 0,
-              shadowOffsetY: 10,
-              opacity: 1
-            }
-          },
-          data: [
-            {
-              value: [5000, 7000, 12000, 11000, 15000, 14000],
-              name: 'Allocated Budget'
-            },
-            {
-              value: [4000, 9000, 15000, 15000, 13000, 11000],
-              name: 'Expected Spending'
-            },
-            {
-              value: [5500, 11000, 12000, 15000, 12000, 12000],
-              name: 'Actual Spending'
-            }
-          ],
-          animationDuration: animationDuration
-        }]
-      })
-    }
-  }
-}
-</script>
diff --git a/ruoyi-ui/src/views/dashboard/mixins/resize.js b/ruoyi-ui/src/views/dashboard/mixins/resize.js
deleted file mode 100644
index b1e76e9..0000000
--- a/ruoyi-ui/src/views/dashboard/mixins/resize.js
+++ /dev/null
@@ -1,56 +0,0 @@
-import { debounce } from '@/utils'
-
-export default {
-  data() {
-    return {
-      $_sidebarElm: null,
-      $_resizeHandler: null
-    }
-  },
-  mounted() {
-    this.initListener()
-  },
-  activated() {
-    if (!this.$_resizeHandler) {
-      // avoid duplication init
-      this.initListener()
-    }
-
-    // when keep-alive chart activated, auto resize
-    this.resize()
-  },
-  beforeDestroy() {
-    this.destroyListener()
-  },
-  deactivated() {
-    this.destroyListener()
-  },
-  methods: {
-    // use $_ for mixins properties
-    // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
-    $_sidebarResizeHandler(e) {
-      if (e.propertyName === 'width') {
-        this.$_resizeHandler()
-      }
-    },
-    initListener() {
-      this.$_resizeHandler = debounce(() => {
-        this.resize()
-      }, 100)
-      window.addEventListener('resize', this.$_resizeHandler)
-
-      this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0]
-      this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler)
-    },
-    destroyListener() {
-      window.removeEventListener('resize', this.$_resizeHandler)
-      this.$_resizeHandler = null
-
-      this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler)
-    },
-    resize() {
-      const { chart } = this
-      chart && chart.resize()
-    }
-  }
-}
diff --git a/ruoyi-ui/src/views/error/401.vue b/ruoyi-ui/src/views/error/401.vue
deleted file mode 100644
index 448b6ec..0000000
--- a/ruoyi-ui/src/views/error/401.vue
+++ /dev/null
@@ -1,88 +0,0 @@
-<template>
-  <div class="errPage-container">
-    <el-button icon="arrow-left" class="pan-back-btn" @click="back">
-      返回
-    </el-button>
-    <el-row>
-      <el-col :span="12">
-        <h1 class="text-jumbo text-ginormous">
-          401错误!
-        </h1>
-        <h2>您没有访问权限!</h2>
-        <h6>对不起,您没有访问权限,请不要进行非法操作!您可以返回主页面</h6>
-        <ul class="list-unstyled">
-          <li class="link-type">
-            <router-link to="/">
-              回首页
-            </router-link>
-          </li>
-        </ul>
-      </el-col>
-      <el-col :span="12">
-        <img :src="errGif" width="313" height="428" alt="Girl has dropped her ice cream.">
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import errGif from '@/assets/401_images/401.gif'
-
-export default {
-  name: 'Page401',
-  data() {
-    return {
-      errGif: errGif + '?' + +new Date()
-    }
-  },
-  methods: {
-    back() {
-      if (this.$route.query.noGoBack) {
-        this.$router.push({ path: '/' })
-      } else {
-        this.$router.go(-1)
-      }
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-  .errPage-container {
-    width: 800px;
-    max-width: 100%;
-    margin: 100px auto;
-    .pan-back-btn {
-      background: #008489;
-      color: #fff;
-      border: none!important;
-    }
-    .pan-gif {
-      margin: 0 auto;
-      display: block;
-    }
-    .pan-img {
-      display: block;
-      margin: 0 auto;
-      width: 100%;
-    }
-    .text-jumbo {
-      font-size: 60px;
-      font-weight: 700;
-      color: #484848;
-    }
-    .list-unstyled {
-      font-size: 14px;
-      li {
-        padding-bottom: 5px;
-      }
-      a {
-        color: #008489;
-        text-decoration: none;
-        &:hover {
-          text-decoration: underline;
-        }
-      }
-    }
-  }
-</style>
diff --git a/ruoyi-ui/src/views/error/404.vue b/ruoyi-ui/src/views/error/404.vue
deleted file mode 100644
index 96f075c..0000000
--- a/ruoyi-ui/src/views/error/404.vue
+++ /dev/null
@@ -1,233 +0,0 @@
-<template>
-  <div class="wscn-http404-container">
-    <div class="wscn-http404">
-      <div class="pic-404">
-        <img class="pic-404__parent" src="@/assets/404_images/404.png" alt="404">
-        <img class="pic-404__child left" src="@/assets/404_images/404_cloud.png" alt="404">
-        <img class="pic-404__child mid" src="@/assets/404_images/404_cloud.png" alt="404">
-        <img class="pic-404__child right" src="@/assets/404_images/404_cloud.png" alt="404">
-      </div>
-      <div class="bullshit">
-        <div class="bullshit__oops">
-          404错误!
-        </div>
-        <div class="bullshit__headline">
-          {{ message }}
-        </div>
-        <div class="bullshit__info">
-          对不起,您正在寻找的页面不存在。尝试检查URL的错误,然后按浏览器上的刷新按钮或尝试在我们的应用程序中找到其他内容。
-        </div>
-        <router-link to="/" class="bullshit__return-home">
-          返回首页
-        </router-link>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-
-export default {
-  name: 'Page404',
-  computed: {
-    message() {
-      return '找不到网页!'
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.wscn-http404-container{
-  transform: translate(-50%,-50%);
-  position: absolute;
-  top: 40%;
-  left: 50%;
-}
-.wscn-http404 {
-  position: relative;
-  width: 1200px;
-  padding: 0 50px;
-  overflow: hidden;
-  .pic-404 {
-    position: relative;
-    float: left;
-    width: 600px;
-    overflow: hidden;
-    &__parent {
-      width: 100%;
-    }
-    &__child {
-      position: absolute;
-      &.left {
-        width: 80px;
-        top: 17px;
-        left: 220px;
-        opacity: 0;
-        animation-name: cloudLeft;
-        animation-duration: 2s;
-        animation-timing-function: linear;
-        animation-fill-mode: forwards;
-        animation-delay: 1s;
-      }
-      &.mid {
-        width: 46px;
-        top: 10px;
-        left: 420px;
-        opacity: 0;
-        animation-name: cloudMid;
-        animation-duration: 2s;
-        animation-timing-function: linear;
-        animation-fill-mode: forwards;
-        animation-delay: 1.2s;
-      }
-      &.right {
-        width: 62px;
-        top: 100px;
-        left: 500px;
-        opacity: 0;
-        animation-name: cloudRight;
-        animation-duration: 2s;
-        animation-timing-function: linear;
-        animation-fill-mode: forwards;
-        animation-delay: 1s;
-      }
-      @keyframes cloudLeft {
-        0% {
-          top: 17px;
-          left: 220px;
-          opacity: 0;
-        }
-        20% {
-          top: 33px;
-          left: 188px;
-          opacity: 1;
-        }
-        80% {
-          top: 81px;
-          left: 92px;
-          opacity: 1;
-        }
-        100% {
-          top: 97px;
-          left: 60px;
-          opacity: 0;
-        }
-      }
-      @keyframes cloudMid {
-        0% {
-          top: 10px;
-          left: 420px;
-          opacity: 0;
-        }
-        20% {
-          top: 40px;
-          left: 360px;
-          opacity: 1;
-        }
-        70% {
-          top: 130px;
-          left: 180px;
-          opacity: 1;
-        }
-        100% {
-          top: 160px;
-          left: 120px;
-          opacity: 0;
-        }
-      }
-      @keyframes cloudRight {
-        0% {
-          top: 100px;
-          left: 500px;
-          opacity: 0;
-        }
-        20% {
-          top: 120px;
-          left: 460px;
-          opacity: 1;
-        }
-        80% {
-          top: 180px;
-          left: 340px;
-          opacity: 1;
-        }
-        100% {
-          top: 200px;
-          left: 300px;
-          opacity: 0;
-        }
-      }
-    }
-  }
-  .bullshit {
-    position: relative;
-    float: left;
-    width: 300px;
-    padding: 30px 0;
-    overflow: hidden;
-    &__oops {
-      font-size: 32px;
-      font-weight: bold;
-      line-height: 40px;
-      color: #1482f0;
-      opacity: 0;
-      margin-bottom: 20px;
-      animation-name: slideUp;
-      animation-duration: 0.5s;
-      animation-fill-mode: forwards;
-    }
-    &__headline {
-      font-size: 20px;
-      line-height: 24px;
-      color: #222;
-      font-weight: bold;
-      opacity: 0;
-      margin-bottom: 10px;
-      animation-name: slideUp;
-      animation-duration: 0.5s;
-      animation-delay: 0.1s;
-      animation-fill-mode: forwards;
-    }
-    &__info {
-      font-size: 13px;
-      line-height: 21px;
-      color: grey;
-      opacity: 0;
-      margin-bottom: 30px;
-      animation-name: slideUp;
-      animation-duration: 0.5s;
-      animation-delay: 0.2s;
-      animation-fill-mode: forwards;
-    }
-    &__return-home {
-      display: block;
-      float: left;
-      width: 110px;
-      height: 36px;
-      background: #1482f0;
-      border-radius: 100px;
-      text-align: center;
-      color: #ffffff;
-      opacity: 0;
-      font-size: 14px;
-      line-height: 36px;
-      cursor: pointer;
-      animation-name: slideUp;
-      animation-duration: 0.5s;
-      animation-delay: 0.3s;
-      animation-fill-mode: forwards;
-    }
-    @keyframes slideUp {
-      0% {
-        transform: translateY(60px);
-        opacity: 0;
-      }
-      100% {
-        transform: translateY(0);
-        opacity: 1;
-      }
-    }
-  }
-}
-</style>
diff --git a/ruoyi-ui/src/views/index.vue b/ruoyi-ui/src/views/index.vue
deleted file mode 100644
index 1a7310a..0000000
--- a/ruoyi-ui/src/views/index.vue
+++ /dev/null
@@ -1,1067 +0,0 @@
-<template>
-  <div class="app-container home">
-    <el-row :gutter="20">
-      <el-col :sm="24" :lg="24">
-        <blockquote class="text-warning" style="font-size: 14px">
-          领取阿里云通用云产品1888优惠券
-          <br />
-          <el-link
-            href="https://www.aliyun.com/minisite/goods?userCode=brki8iof"
-            type="primary"
-            target="_blank"
-            >https://www.aliyun.com/minisite/goods?userCode=brki8iof</el-link
-          >
-          <br />
-          领取腾讯云通用云产品2860优惠券
-          <br />
-          <el-link
-            href="https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console"
-            type="primary"
-            target="_blank"
-            >https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console</el-link
-          >
-          <br />
-          阿里云服务器折扣区
-          <el-link href="http://aly.ruoyi.vip" type="primary" target="_blank"
-            >>☛☛点我进入☚☚</el-link
-          >
-          &nbsp;&nbsp;&nbsp; 腾讯云服务器秒杀区
-          <el-link href="http://txy.ruoyi.vip" type="primary" target="_blank"
-            >>☛☛点我进入☚☚</el-link
-          ><br />
-          <h4 class="text-danger">
-            云产品通用红包,可叠加官网常规优惠使用。(仅限新用户)
-          </h4>
-        </blockquote>
-
-        <hr />
-      </el-col>
-    </el-row>
-    <el-row :gutter="20">
-      <el-col :sm="24" :lg="12" style="padding-left: 20px">
-        <h2>若依后台管理框架</h2>
-        <p>
-          一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统,她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。
-        </p>
-        <p>
-          <b>当前版本:</b> <span>v{{ version }}</span>
-        </p>
-        <p>
-          <el-tag type="danger">&yen;免费开源</el-tag>
-        </p>
-        <p>
-          <el-button
-            type="primary"
-            size="mini"
-            icon="el-icon-cloudy"
-            plain
-            @click="goTarget('https://gitee.com/y_project/RuoYi-Vue')"
-            >访问码云</el-button
-          >
-          <el-button
-            size="mini"
-            icon="el-icon-s-home"
-            plain
-            @click="goTarget('http://ruoyi.vip')"
-            >访问主页</el-button
-          >
-        </p>
-      </el-col>
-
-      <el-col :sm="24" :lg="12" style="padding-left: 50px">
-        <el-row>
-          <el-col :span="12">
-            <h2>技术选型</h2>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="6">
-            <h4>后端技术</h4>
-            <ul>
-              <li>SpringBoot</li>
-              <li>Spring Security</li>
-              <li>JWT</li>
-              <li>MyBatis</li>
-              <li>Druid</li>
-              <li>Fastjson</li>
-              <li>...</li>
-            </ul>
-          </el-col>
-          <el-col :span="6">
-            <h4>前端技术</h4>
-            <ul>
-              <li>Vue</li>
-              <li>Vuex</li>
-              <li>Element-ui</li>
-              <li>Axios</li>
-              <li>Sass</li>
-              <li>Quill</li>
-              <li>...</li>
-            </ul>
-          </el-col>
-        </el-row>
-      </el-col>
-    </el-row>
-    <el-divider />
-    <el-row :gutter="20">
-      <el-col :xs="24" :sm="24" :md="12" :lg="8">
-        <el-card class="update-log">
-          <div slot="header" class="clearfix">
-            <span>联系信息</span>
-          </div>
-          <div class="body">
-            <p>
-              <i class="el-icon-s-promotion"></i> 官网:<el-link
-                href="http://www.ruoyi.vip"
-                target="_blank"
-                >http://www.ruoyi.vip</el-link
-              >
-            </p>
-            <p>
-              <i class="el-icon-user-solid"></i> QQ群:<s> 满937441 </s> <s> 满887144332 </s>
-              <s> 满180251782 </s> <s> 满104180207 </s> <s> 满186866453 </s> <s> 满201396349 </s>
-              <s> 满101456076 </s> <s> 满101539465 </s> <s> 满264312783 </s> <s> 满167385320 </s> 
-              <s> 满104748341 </s> <s> 满160110482 </s> <s> 满170801498 </s> <s> 满108482800 </s> 
-              <s> 满101046199 </s> <s> 满136919097 </s> <s> 满143961921 </s> <s> 满174951577 </s> 
-              <s> 满161281055 </s> <a href="http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XIzkm_mV2xTsUtFxo63bmicYoDBA6Ifm&authKey=dDW%2F4qsmw3x9govoZY9w%2FoWAoC4wbHqGal%2BbqLzoS6VBarU8EBptIgPKN%2FviyC8j&noverify=0&group_code=138988063" target="_blank">138988063</a>
-            </p>
-            <p>
-              <i class="el-icon-chat-dot-round"></i> 微信:<a
-                href="javascript:;"
-                >/ *若依</a
-              >
-            </p>
-            <p>
-              <i class="el-icon-money"></i> 支付宝:<a
-                href="javascript:;"
-                class="支付宝信息"
-                >/ *若依</a
-              >
-            </p>
-          </div>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="24" :md="12" :lg="8">
-        <el-card class="update-log">
-          <div slot="header" class="clearfix">
-            <span>更新日志</span>
-          </div>
-          <el-collapse accordion>
-            <el-collapse-item title="v3.8.7 - 2023-12-08">
-              <ol>
-                <li>操作日志记录部门名称</li>
-                <li>全局数据存储用户编号</li>
-                <li>新增编程式判断资源访问权限</li>
-                <li>操作日志列表新增IP地址查询</li>
-                <li>定时任务新增页去除状态选项</li>
-                <li>代码生成支持选择前端模板类型</li>
-                <li>显隐列组件支持复选框弹出类型</li>
-                <li>通用排序属性orderBy参数限制长度</li>
-                <li>Excel自定义数据处理器增加单元格/工作簿对象</li>
-                <li>升级oshi到最新版本6.4.8</li>
-                <li>升级druid到最新版本1.2.20</li>
-                <li>升级fastjson到最新版2.0.43</li>
-                <li>升级pagehelper到最新版1.4.7</li>
-                <li>升级commons.io到最新版本2.13.0</li>
-                <li>升级element-ui到最新版本2.15.14</li>
-                <li>修复五级路由缓存无效问题</li>
-                <li>修复外链带端口出现的异常</li>
-                <li>修复树模板父级编码变量错误</li>
-                <li>修复字典表详情页面搜索问题</li>
-                <li>修复内链iframe没有传递参数问题</li>
-                <li>修复自定义字典样式不生效的问题</li>
-                <li>修复字典缓存删除方法参数错误问题</li>
-                <li>修复Excel导入数据临时文件无法删除问题</li>
-                <li>修复未登录带参数访问成功后参数丢失问题</li>
-                <li>修复HeaderSearch组件跳转query参数丢失问题</li>
-                <li>修复代码生成导入后必填项与数据库不匹配问题</li>
-                <li>修复Excels导入时无法获取到dictType字典值问题</li>
-                <li>优化下载zip方法新增遮罩层</li>
-                <li>优化头像上传参数新增文件名称</li>
-                <li>优化字典标签支持自定义分隔符</li>
-                <li>优化菜单管理类型为按钮状态可选</li>
-                <li>优化前端防重复提交数据大小限制</li>
-                <li>优化TopNav菜单没有图标svg不显示</li>
-                <li>优化数字金额大写转换精度丢失问题</li>
-                <li>优化富文本Editor组件检验图片格式</li>
-                <li>优化页签在Firefox浏览器被遮挡的问题</li>
-                <li>优化个人中心/基本资料修改时数据显示问题</li>
-                <li>优化缓存监控图表支持跟随屏幕大小自适应调整</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.8.6 - 2023-06-30">
-              <ol>
-                <li>支持登录IP黑名单限制</li>
-                <li>新增监控页面图标显示</li>
-                <li>操作日志新增消耗时间属性</li>
-                <li>屏蔽定时任务bean违规的字符</li>
-                <li>日志管理使用索引提升查询性能</li>
-                <li>日志注解支持排除指定的请求参数</li>
-                <li>支持自定义隐藏属性列过滤子对象</li>
-                <li>升级oshi到最新版本6.4.3</li>
-                <li>升级druid到最新版本1.2.16</li>
-                <li>升级fastjson到最新版2.0.34</li>
-                <li>升级spring-boot到最新版本2.5.15</li>
-                <li>升级element-ui到最新版本2.15.13</li>
-                <li>移除apache/commons-fileupload依赖</li>
-                <li>修复页面切换时布局错乱的问题</li>
-                <li>修复匿名注解Anonymous空指针问题</li>
-                <li>修复路由跳转被阻止时内部产生报错信息问题</li>
-                <li>修复isMatchedIp的参数判断产生空指针的问题</li>
-                <li>修复用户多角色数据权限可能出现权限抬升的情况</li>
-                <li>修复开启TopNav后一级菜单路由参数设置无效问题</li>
-                <li>修复DictTag组件value没有匹配的值时则展示value</li>
-                <li>优化文件下载出现的异常</li>
-                <li>优化选择图标组件高亮回显</li>
-                <li>优化弹窗后导航栏偏移的问题</li>
-                <li>优化修改密码日志存储明文问题</li>
-                <li>优化页签栏关闭其他出现的异常问题</li>
-                <li>优化页签关闭左侧选项排除首页选项</li>
-                <li>优化关闭当前tab页跳转最右侧tab页</li>
-                <li>优化缓存列表清除操作提示不变的问题</li>
-                <li>优化字符未使用下划线不进行驼峰式处理</li>
-                <li>优化用户导入更新时需获取用户编号问题</li>
-                <li>优化侧边栏的平台标题与VUE_APP_TITLE保持同步</li>
-                <li>优化导出Excel时设置dictType属性重复查缓存问题</li>
-                <li>连接池Druid支持新的配置connectTimeout和socketTimeout</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.8.5 - 2023-01-01">
-              <ol>
-                <li>定时任务违规的字符</li>
-                <li>重置时取消部门选中</li>
-                <li>新增返回警告消息提示</li>
-                <li>忽略不必要的属性数据返回</li>
-                <li>修改参数键名时移除前缓存配置</li>
-                <li>导入更新用户数据前校验数据权限</li>
-                <li>兼容Excel下拉框内容过多无法显示的问题</li>
-                <li>升级echarts到最新版本5.4.0</li>
-                <li>升级core-js到最新版本3.25.3</li>
-                <li>升级oshi到最新版本6.4.0</li>
-                <li>升级kaptcha到最新版2.3.3</li>
-                <li>升级druid到最新版本1.2.15</li>
-                <li>升级fastjson到最新版2.0.20</li>
-                <li>升级pagehelper到最新版1.4.6</li>
-                <li>优化弹窗内容过多展示不全问题</li>
-                <li>优化swagger-ui静态资源使用缓存</li>
-                <li>开启TopNav没有子菜单隐藏侧边栏</li>
-                <li>删除fuse无效选项maxPatternLength</li>
-                <li>优化导出对象的子列表为空会出现[]问题</li>
-                <li>优化编辑头像时透明部分会变成黑色问题</li>
-                <li>优化小屏幕上修改头像界面布局错位的问题</li>
-                <li>修复代码生成勾选属性无效问题</li>
-                <li>修复文件上传组件格式验证问题</li>
-                <li>修复回显数据字典数组异常问题</li>
-                <li>修复sheet超出最大行数异常问题</li>
-                <li>修复Log注解GET请求记录不到参数问题</li>
-                <li>修复调度日志点击多次数据不变化的问题</li>
-                <li>修复主题颜色在Drawer组件不会加载问题</li>
-                <li>修复文件名包含特殊字符的文件无法下载问题</li>
-                <li>修复table中更多按钮切换主题色未生效修复问题</li>
-                <li>修复某些特性的环境生成代码变乱码TXT文件问题</li>
-                <li>修复代码生成图片/文件/单选时选择必填无法校验问题</li>
-                <li>修复某些特性的情况用户编辑对话框中角色和部门无法修改问题</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.8.4 - 2022-09-26">
-              <ol>
-                <li>数据逻辑删除不进行唯一验证</li>
-                <li>Excel注解支持导出对象的子列表方法</li>
-                <li>Excel注解支持自定义隐藏属性列</li>
-                <li>Excel注解支持backgroundColor属性设置背景色</li>
-                <li>支持配置密码最大错误次数/锁定时间</li>
-                <li>登录日志新增解锁账户功能</li>
-                <li>通用下载方法新增config配置选项</li>
-                <li>支持多权限字符匹配角色数据权限</li>
-                <li>页面内嵌iframe切换tab不刷新数据</li>
-                <li>操作日志记录支持排除敏感属性字段</li>
-                <li>修复多文件上传报错出现的异常问题</li>
-                <li>修复图片预览组件src属性为null值控制台报错问题</li>
-                <li>升级oshi到最新版本6.2.2</li>
-                <li>升级fastjson到最新版2.0.14</li>
-                <li>升级pagehelper到最新版1.4.3</li>
-                <li>升级core-js到最新版本3.25.2</li>
-                <li>升级element-ui到最新版本2.15.10</li>
-                <li>优化任务过期不执行调度</li>
-                <li>优化字典数据使用store存取</li>
-                <li>优化修改资料头像被覆盖的问题</li>
-                <li>优化修改用户登录账号重复验证</li>
-                <li>优化代码生成同步后值NULL问题</li>
-                <li>优化定时任务支持执行父类方法</li>
-                <li>优化用户个人信息接口防止修改部门</li>
-                <li>优化布局设置使用el-drawer抽屉显示</li>
-                <li>优化没有权限的用户编辑部门缺少数据</li>
-                <li>优化日志注解记录限制请求地址的长度</li>
-                <li>优化excel/scale属性导出单元格数值类型</li>
-                <li>优化日志操作中重置按钮时重复查询的问题</li>
-                <li>优化多个相同角色数据导致权限SQL重复问题</li>
-                <li>优化表格上右侧工具条(搜索按钮显隐&右侧样式凸出)</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.8.3 - 2022-06-27">
-              <ol>
-                <li>新增缓存列表菜单功能</li>
-                <li>代码生成树表新增(展开/折叠)</li>
-                <li>Excel注解支持color字体颜色</li>
-                <li>新增Anonymous匿名访问不鉴权注解</li>
-                <li>用户头像上传限制只能为图片格式</li>
-                <li>接口使用泛型使其看到响应属性字段</li>
-                <li>检查定时任务bean所在包名是否为白名单配置</li>
-                <li>添加页签openPage支持传递参数</li>
-                <li>用户缓存信息添加部门ancestors祖级列表</li>
-                <li>升级element-ui到最新版本2.15.8</li>
-                <li>升级oshi到最新版本6.1.6</li>
-                <li>升级druid到最新版本1.2.11</li>
-                <li>升级fastjson到最新版2.0.8</li>
-                <li>升级spring-boot到最新版本2.5.14</li>
-                <li>降级jsencrypt版本兼容IE浏览器</li>
-                <li>删除多余的salt字段</li>
-                <li>新增获取不带后缀文件名称方法</li>
-                <li>新增获取配置文件中的属性值方法</li>
-                <li>新增内容编码/解码方便插件集成使用</li>
-                <li>字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)</li>
-                <li>优化设置分页参数默认值</li>
-                <li>优化对空字符串参数处理的过滤</li>
-                <li>优化显示顺序orderNum类型为整型</li>
-                <li>优化表单构建按钮不显示正则校验</li>
-                <li>优化字典数据回显样式下拉框显示值</li>
-                <li>优化R响应成功状态码与全局保持一致</li>
-                <li>优化druid开启wall过滤器出现的异常问题</li>
-                <li>优化用户管理左侧树型组件增加选中高亮保持</li>
-                <li>优化新增用户与角色信息&用户与岗位信息逻辑</li>
-                <li>优化默认不启用压缩文件缓存防止node_modules过大</li>
-                <li>修复字典数据显示不全问题</li>
-                <li>修复操作日志查询类型条件为0时会查到所有数据</li>
-                <li>修复Excel注解prompt/combo同时使用不生效问题</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.8.2 - 2022-04-01">
-              <ol>
-                <li>前端支持设置是否需要防止数据重复提交</li>
-                <li>开启TopNav没有子菜单情况隐藏侧边栏</li>
-                <li>侧边栏菜单名称过长悬停显示标题</li>
-                <li>用户访问控制时校验数据权限,防止越权</li>
-                <li>导出Excel时屏蔽公式,防止CSV注入风险</li>
-                <li>组件ImagePreview支持多图预览显示</li>
-                <li>组件ImageUpload支持多图同时选择上传</li>
-                <li>组件FileUpload支持多文件同时选择上传</li>
-                <li>服务监控新增运行参数信息显示</li>
-                <li>定时任务目标字符串过滤特殊字符</li>
-                <li>定时任务目标字符串验证包名白名单</li>
-                <li>代码生成列表图片支持预览</li>
-                <li>代码生成编辑修改打开新页签</li>
-                <li>代码生成新增Java类型Boolean</li>
-                <li>代码生成子表支持日期/字典配置</li>
-                <li>代码生成同步保留必填/类型选项</li>
-                <li>升级oshi到最新版本6.1.2</li>
-                <li>升级fastjson到最新版1.2.80</li>
-                <li>升级pagehelper到最新版1.4.1</li>
-                <li>升级spring-boot到最新版本2.5.11</li>
-                <li>升级spring-boot-mybatis到最新版2.2.2</li>
-                <li>添加遗漏的分页参数合理化属性</li>
-                <li>修改npm即将过期的注册源地址</li>
-                <li>修复分页组件请求两次问题</li>
-                <li>修复通用文件下载接口跨域问题</li>
-                <li>修复Xss注解字段值为空时的异常问题</li>
-                <li>修复选项卡点击右键刷新丢失参数问题</li>
-                <li>修复表单清除元素位置未垂直居中问题</li>
-                <li>修复服务监控中运行参数显示条件错误</li>
-                <li>修复导入Excel时字典字段类型为Long转义为空问题</li>
-                <li>修复登录超时刷新页面跳转登录页面还提示重新登录问题</li>
-                <li>优化加载字典缓存数据</li>
-                <li>优化IP地址获取到多个的问题</li>
-                <li>优化任务队列满时任务拒绝策略</li>
-                <li>优化文件上传兼容Weblogic环境</li>
-                <li>优化定时任务默认保存到内存中执行</li>
-                <li>优化部门修改缩放后出现的错位问题</li>
-                <li>优化Excel格式化不同类型的日期对象</li>
-                <li>优化菜单表关键字导致的插件报错问题</li>
-                <li>优化Oracle用户头像列为空时不显示问题</li>
-                <li>优化页面若未匹配到字典标签则返回原字典值</li>
-                <li>优化修复登录失效后多次请求提示多次弹窗问题</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.8.1 - 2022-01-01">
-              <ol>
-                <li>新增Vue3前端代码生成模板</li>
-                <li>新增图片预览组件</li>
-                <li>新增压缩插件实现打包Gzip</li>
-                <li>自定义xss校验注解实现</li>
-                <li>自定义文字复制剪贴指令</li>
-                <li>代码生成预览支持复制内容</li>
-                <li>路由支持单独配置菜单或角色权限</li>
-                <li>用户管理部门查询选择节点后分页参数初始</li>
-                <li>修复用户分配角色属性错误</li>
-                <li>修复打包后字体图标偶现的乱码问题</li>
-                <li>修复菜单管理重置表单出现的错误</li>
-                <li>修复版本差异导致的懒加载报错问题</li>
-                <li>修复Cron组件中周回显问题</li>
-                <li>修复定时任务多参数逗号分隔的问题</li>
-                <li>修复根据ID查询列表可能出现的主键溢出问题</li>
-                <li>修复tomcat配置参数已过期问题</li>
-                <li>升级clipboard到最新版本2.0.8</li>
-                <li>升级oshi到最新版本v5.8.6</li>
-                <li>升级fastjson到最新版1.2.79</li>
-                <li>升级spring-boot到最新版本2.5.8</li>
-                <li>升级log4j2到2.17.1,防止漏洞风险</li>
-                <li>优化下载解析blob异常提示</li>
-                <li>优化代码生成字典组重复问题</li>
-                <li>优化查询用户的角色组&岗位组代码</li>
-                <li>优化定时任务cron表达式小时设置24</li>
-                <li>优化用户导入提示溢出则显示滚动条</li>
-                <li>优化防重复提交标识组合为(key+url+header)</li>
-                <li>优化分页方法设置成通用方便灵活调用</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.8.0 - 2021-12-01">
-              <ol>
-                <li>新增配套并同步的Vue3前端版本</li>
-                <li>新增通用方法简化模态/缓存/下载/权限/页签使用</li>
-                <li>优化导出数据/使用通用下载方法</li>
-                <li>Excel注解支持自定义数据处理器</li>
-                <li>Excel注解支持导入导出标题信息</li>
-                <li>Excel导入支持@Excels注解</li>
-                <li>新增组件data-dict,简化数据字典使用</li>
-                <li>新增Jaxb依赖,防止jdk8以上出现的兼容错误</li>
-                <li>生产环境使用路由懒加载提升页面响应速度</li>
-                <li>修复五级以上菜单出现的404问题</li>
-                <li>防重提交注解支持配置间隔时间/提示消息</li>
-                <li>日志注解新增是否保存响应参数</li>
-                <li>任务屏蔽违规字符&参数忽略双引号中的逗号</li>
-                <li>升级SpringBoot到最新版本2.5.6</li>
-                <li>升级pagehelper到最新版1.4.0</li>
-                <li>升级spring-boot-mybatis到最新版2.2.0</li>
-                <li>升级oshi到最新版本v5.8.2</li>
-                <li>升级druid到最新版1.2.8</li>
-                <li>升级velocity到最新版本2.3</li>
-                <li>升级fastjson到最新版1.2.78</li>
-                <li>升级axios到最新版本0.24.0</li>
-                <li>升级dart-sass到版本1.32.13</li>
-                <li>升级core-js到最新版本3.19.1</li>
-                <li>升级jsencrypt到最新版本3.2.1</li>
-                <li>升级js-cookie到最新版本3.0.1</li>
-                <li>升级file-saver到最新版本2.0.5</li>
-                <li>升级sass-loader到最新版本10.1.1</li>
-                <li>升级element-ui到最新版本2.15.6</li>
-                <li>新增sendGet无参请求方法</li>
-                <li>禁用el-tag组件的渐变动画</li>
-                <li>代码生成点击预览重置激活tab</li>
-                <li>AjaxResult重写put方法,以方便链式调用</li>
-                <li>优化登录/验证码请求headers不设置token</li>
-                <li>优化用户个人信息接口防止修改用户名</li>
-                <li>优化Cron表达式生成器关闭时销毁避免缓存</li>
-                <li>优化注册成功提示消息类型success</li>
-                <li>优化aop语法,使用spring自动注入注解</li>
-                <li>优化记录登录信息,移除不必要的修改</li>
-                <li>优化mybatis全局默认的执行器</li>
-                <li>优化Excel导入图片可能出现的异常</li>
-                <li>修复代码生成模板主子表删除缺少事务</li>
-                <li>修复日志记录可能出现的转换异常</li>
-                <li>修复代码生成复选框字典遗漏问题</li>
-                <li>修复关闭xss功能导致可重复读RepeatableFilter失效</li>
-                <li>修复字符串无法被反转义问题</li>
-                <li>修复后端主子表代码模板方法名生成错误问题</li>
-                <li>修复xss过滤后格式出现的异常</li>
-                <li>修复swagger没有指定dataTypeClass导致启动出现warn日志</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.7.0 - 2021-09-13">
-              <ol>
-                <li>参数管理支持配置验证码开关</li>
-                <li>新增是否开启用户注册功能</li>
-                <li>定时任务支持在线生成cron表达式</li>
-                <li>菜单管理支持配置路由参数</li>
-                <li>支持自定义注解实现接口限流</li>
-                <li>Excel注解支持Image图片导入</li>
-                <li>自定义弹层溢出滚动样式</li>
-                <li>自定义可拖动弹窗宽度指令</li>
-                <li>自定义可拖动弹窗高度指令</li>
-                <li>修复任意账户越权问题</li>
-                <li>修改时检查用户数据权限范围</li>
-                <li>修复保存配置主题颜色失效问题</li>
-                <li>新增暗色菜单风格主题</li>
-                <li>菜单&部门新增展开/折叠功能</li>
-                <li>页签新增关闭左侧&添加图标</li>
-                <li>顶部菜单排除隐藏的默认路由</li>
-                <li>顶部菜单同步系统主题样式</li>
-                <li>跳转路由高亮相对应的菜单栏</li>
-                <li>代码生成主子表多选行数据</li>
-                <li>日期范围支持添加多组</li>
-                <li>升级element-ui到最新版本2.15.5</li>
-                <li>升级oshi到最新版本v5.8.0</li>
-                <li>升级commons.io到最新版本v2.11.0</li>
-                <li>定时任务屏蔽ldap远程调用</li>
-                <li>定时任务屏蔽http(s)远程调用</li>
-                <li>补充定时任务表字段注释</li>
-                <li>定时任务对检查异常进行事务回滚</li>
-                <li>启用父部门状态排除顶级节点</li>
-                <li>富文本新增上传文件大小限制</li>
-                <li>默认首页使用keep-alive缓存</li>
-                <li>修改代码生成字典回显样式</li>
-                <li>自定义分页合理化传入参数</li>
-                <li>修复字典组件值为整形不显示问题</li>
-                <li>修复定时任务日志执行状态显示</li>
-                <li>角色&菜单新增字段属性提示信息</li>
-                <li>修复角色分配用户页面参数类型错误提醒</li>
-                <li>优化布局设置动画特效</li>
-                <li>优化异常处理信息</li>
-                <li>优化错误token导致的解析异常</li>
-                <li>密码框新增显示切换密码图标</li>
-                <li>定时任务新增更多操作</li>
-                <li>更多操作按钮添加权限控制</li>
-                <li>导入用户样式优化</li>
-                <li>提取通用方法到基类控制器</li>
-                <li>优化使用权限工具获取用户信息</li>
-                <li>优化用户不能删除自己</li>
-                <li>优化XSS跨站脚本过滤</li>
-                <li>优化代码生成模板</li>
-                <li>验证码默认20s超时</li>
-                <li>BLOB下载时清除URL对象引用</li>
-                <li>代码生成导入表按创建时间排序</li>
-                <li>修复代码生成页面数据编辑保存之后总是跳转第一页的问题</li>
-                <li>修复带safari浏览器无法格式化utc日期格式yyyy-MM-dd'T'HH:mm:ss.SSS问题</li>
-                <li>多图上传组件移除多余的api地址&验证失败导致图片删除问题&无法删除相应图片修复</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.6.0 - 2021-07-12">
-              <ol>
-                <li>角色管理新增分配用户功能</li>
-                <li>用户管理新增分配角色功能</li>
-                <li>日志列表支持排序操作</li>
-                <li>优化参数&字典缓存操作</li>
-                <li>系统布局配置支持动态标题开关</li>
-                <li>菜单路由配置支持内链访问</li>
-                <li>默认访问后端首页新增提示语</li>
-                <li>富文本默认上传返回url类型</li>
-                <li>新增自定义弹窗拖拽指令</li>
-                <li>全局注册常用通用组件</li>
-                <li>全局挂载字典标签组件</li>
-                <li>ImageUpload组件支持多图片上传</li>
-                <li>FileUpload组件支持多文件上传</li>
-                <li>文件上传组件添加数量限制属性</li>
-                <li>富文本编辑组件添加类型属性</li>
-                <li>富文本组件工具栏配置视频</li>
-                <li>封装通用iframe组件</li>
-                <li>限制超级管理员不允许操作</li>
-                <li>用户信息长度校验限制</li>
-                <li>分页组件新增pagerCount属性</li>
-                <li>添加bat脚本执行应用</li>
-                <li>升级oshi到最新版本v5.7.4</li>
-                <li>升级element-ui到最新版本2.15.2</li>
-                <li>升级pagehelper到最新版1.3.1</li>
-                <li>升级commons.io到最新版本v2.10.0</li>
-                <li>升级commons.fileupload到最新版本v1.4</li>
-                <li>升级swagger到最新版本v3.0.0</li>
-                <li>修复关闭confirm提示框控制台报错问题</li>
-                <li>修复存在的SQL注入漏洞问题</li>
-                <li>定时任务屏蔽rmi远程调用</li>
-                <li>修复用户搜索分页变量错误</li>
-                <li>修复导出角色数据范围翻译缺少仅本人</li>
-                <li>修复表单构建选择下拉选择控制台报错问题</li>
-                <li>优化图片工具类读取文件</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.5.0 - 2021-05-25">
-              <ol>
-                <li>新增菜单导航显示风格TopNav(false为左侧导航菜单,true为顶部导航菜单)</li>
-                <li>布局设置支持保存&重置配置</li>
-                <li>修复树表数据显示不全&加载慢问题</li>
-                <li>新增IE浏览器版本过低提示页面</li>
-                <li>用户登录后记录最后登录IP&时间</li>
-                <li>页面导出按钮点击之后添加遮罩</li>
-                <li>富文本编辑器支持自定义上传地址</li>
-                <li>富文本编辑组件新增readOnly属性</li>
-                <li>页签TagsView新增关闭右侧功能</li>
-                <li>显隐列组件加载初始默认隐藏列</li>
-                <li>关闭头像上传窗口还原默认图片</li>
-                <li>个人信息添加手机&邮箱重复验证</li>
-                <li>代码生成模板导出按钮点击后添加遮罩</li>
-                <li>代码生成模板树表操作列添加新增按钮</li>
-                <li>代码生成模板修复主子表字段重名问题</li>
-                <li>升级fastjson到最新版1.2.76</li>
-                <li>升级druid到最新版本v1.2.6</li>
-                <li>升级mybatis到最新版3.5.6 阻止远程代码执行漏洞</li>
-                <li>升级oshi到最新版本v5.6.0</li>
-                <li>velocity剔除commons-collections版本,防止3.2.1版本的反序列化漏洞</li>
-                <li>数据监控页默认账户密码防止越权访问</li>
-                <li>修复firefox下表单构建拖拽会新打卡一个选项卡</li>
-                <li>修正后端导入表权限标识</li>
-                <li>修正前端操作日志&登录日志权限标识</li>
-                <li>设置Redis配置HashKey序列化</li>
-                <li>删除操作日志记录信息</li>
-                <li>上传媒体类型添加视频格式</li>
-                <li>修复请求形参未传值记录日志异常问题</li>
-                <li>优化xss校验json请求条件</li>
-                <li>树级结构更新子节点使用replaceFirst</li>
-                <li>优化ExcelUtil空值处理</li>
-                <li>日志记录过滤BindingResult对象,防止异常</li>
-                <li>修改主题后mini类型按钮无效问题</li>
-                <li>优化通用下载完成后删除节点</li>
-                <li>通用Controller添加响应返回消息</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.4.0 - 2021-02-22">
-              <ol>
-                <li>代码生成模板支持主子表</li>
-                <li>表格右侧工具栏组件支持显隐列</li>
-                <li>图片组件添加预览&移除功能</li>
-                <li>Excel注解支持Image图片导出</li>
-                <li>操作按钮组调整为朴素按钮样式</li>
-                <li>代码生成支持文件上传组件</li>
-                <li>代码生成日期控件区分范围</li>
-                <li>代码生成数据库文本类型生成表单文本域</li>
-                <li>用户手机邮箱&菜单组件修改允许空字符串</li>
-                <li>升级SpringBoot到最新版本2.2.13 提升启动速度</li>
-                <li>升级druid到最新版本v1.2.4</li>
-                <li>升级fastjson到最新版1.2.75</li>
-                <li>升级element-ui到最新版本2.15.0</li>
-                <li>修复IE11浏览器报错问题</li>
-                <li>优化多级菜单之间切换无法缓存的问题</li>
-                <li>修复四级菜单无法显示问题</li>
-                <li>修正侧边栏静态路由丢失问题</li>
-                <li>修复角色管理-编辑角色-功能权限显示异常</li>
-                <li>配置文件新增redis数据库索引属性</li>
-                <li>权限工具类增加admin判断</li>
-                <li>角色非自定义权限范围清空选择值</li>
-                <li>修复导入数据为负浮点数时丢失精度问题</li>
-                <li>移除path-to-regexp正则匹配插件</li>
-                <li>修复生成树表代码异常</li>
-                <li>修改ip字段长度防止ipv6地址长度不够</li>
-                <li>防止get请求参数值为false或0等特殊值会导致无法正确的传参</li>
-                <li>登录后push添加catch防止出现检查错误</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.3.0 - 2020-12-14">
-              <ol>
-                <li>新增缓存监控功能</li>
-                <li>支持主题风格配置</li>
-                <li>修复多级菜单之间切换无法缓存的问题</li>
-                <li>多级菜单自动配置组件</li>
-                <li>代码生成预览支持高亮显示</li>
-                <li>支持Get请求映射Params参数</li>
-                <li>删除用户和角色解绑关联</li>
-                <li>去除用户手机邮箱部门必填验证</li>
-                <li>Excel支持注解align对齐方式</li>
-                <li>Excel支持导入Boolean型数据</li>
-                <li>优化头像样式,鼠标移入悬停遮罩</li>
-                <li>代码生成预览提供滚动机制</li>
-                <li>代码生成删除多余的数字float类型</li>
-                <li>修正转换字符串的目标字符集属性</li>
-                <li>回显数据字典防止空值报错</li>
-                <li>日志记录增加过滤多文件场景</li>
-                <li>修改缓存Set方法可能导致嵌套的问题</li>
-                <li>移除前端一些多余的依赖</li>
-                <li>防止安全扫描YUI出现的风险提示</li>
-                <li>修改node-sass为dart-sass</li>
-                <li>升级SpringBoot到最新版本2.1.18</li>
-                <li>升级poi到最新版本4.1.2</li>
-                <li>升级oshi到最新版本v5.3.6</li>
-                <li>升级bitwalker到最新版本1.21</li>
-                <li>升级axios到最新版本0.21.0</li>
-                <li>升级element-ui到最新版本2.14.1</li>
-                <li>升级vue到最新版本2.6.12</li>
-                <li>升级vuex到最新版本3.6.0</li>
-                <li>升级vue-cli到版本4.5.9</li>
-                <li>升级vue-router到最新版本3.4.9</li>
-                <li>升级vue-cli到最新版本4.4.6</li>
-                <li>升级vue-cropper到最新版本0.5.5</li>
-                <li>升级clipboard到最新版本2.0.6</li>
-                <li>升级core-js到最新版本3.8.1</li>
-                <li>升级echarts到最新版本4.9.0</li>
-                <li>升级file-saver到最新版本2.0.4</li>
-                <li>升级fuse.js到最新版本6.4.3</li>
-                <li>升级js-beautify到最新版本1.13.0</li>
-                <li>升级js-cookie到最新版本2.2.1</li>
-                <li>升级path-to-regexp到最新版本6.2.0</li>
-                <li>升级quill到最新版本1.3.7</li>
-                <li>升级screenfull到最新版本5.0.2</li>
-                <li>升级sortablejs到最新版本1.10.2</li>
-                <li>升级vuedraggable到最新版本2.24.3</li>
-                <li>升级chalk到最新版本4.1.0</li>
-                <li>升级eslint到最新版本7.15.0</li>
-                <li>升级eslint-plugin-vue到最新版本7.2.0</li>
-                <li>升级lint-staged到最新版本10.5.3</li>
-                <li>升级runjs到最新版本4.4.2</li>
-                <li>升级sass-loader到最新版本10.1.0</li>
-                <li>升级script-ext-html-webpack-plugin到最新版本2.1.5</li>
-                <li>升级svg-sprite-loader到最新版本5.1.1</li>
-                <li>升级vue-template-compiler到最新版本2.6.12</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.2.1 - 2020-11-18">
-              <ol>
-                <li>阻止任意文件下载漏洞</li>
-                <li>代码生成支持上传控件</li>
-                <li>新增图片上传组件</li>
-                <li>调整默认首页</li>
-                <li>升级druid到最新版本v1.2.2</li>
-                <li>mapperLocations配置支持分隔符</li>
-                <li>权限信息调整</li>
-                <li>调整sql默认时间</li>
-                <li>解决代码生成没有bit类型的问题</li>
-                <li>升级pagehelper到最新版1.3.0</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v3.2.0 - 2020-10-10">
-              <ol>
-                <li>升级springboot版本到2.1.17 提升安全性</li>
-                <li>升级oshi到最新版本v5.2.5</li>
-                <li>升级druid到最新版本v1.2.1</li>
-                <li>升级jjwt到版本0.9.1</li>
-                <li>升级fastjson到最新版1.2.74</li>
-                <li>修改sass为node-sass,避免el-icon图标乱码</li>
-                <li>代码生成支持同步数据库</li>
-                <li>代码生成支持富文本控件</li>
-                <li>代码生成页面时不忽略remark属性</li>
-                <li>代码生成添加select必填选项</li>
-                <li>Excel导出类型NUMERIC支持精度浮点类型</li>
-                <li>Excel导出targetAttr优化获取值,防止get方法不规范</li>
-                <li>Excel注解支持自动统计数据总和</li>
-                <li>Excel注解支持设置BigDecimal精度&舍入规则</li>
-                <li>菜单&数据权限新增(展开/折叠 全选/全不选 父子联动)</li>
-                <li>允许用户分配到部门父节点</li>
-                <li>菜单新增是否缓存keep-alive</li>
-                <li>表格操作列间距调整</li>
-                <li>限制系统内置参数不允许删除</li>
-                <li>富文本组件优化,支持自定义高度&图片冲突问题</li>
-                <li>富文本工具栏样式对齐</li>
-                <li>导入excel整形值校验优化</li>
-                <li>修复页签关闭所有时固定标签路由不刷新问题</li>
-                <li>表单构建布局型组件新增按钮</li>
-                <li>左侧菜单文字过长显示省略号</li>
-                <li>修正根节点为子部门时,树状结构显示问题</li>
-                <li>修正调用目标字符串最大长度</li>
-                <li>修正菜单提示信息错误</li>
-                <li>修正定时任务执行一次权限标识</li>
-                <li>修正数据库字符串类型nvarchar</li>
-                <li>优化递归子节点</li>
-                <li>优化数据权限判断</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-
-            <el-collapse-item title="v3.1.0 - 2020-08-13">
-              <ol>
-                <li>表格工具栏右侧添加刷新&显隐查询组件</li>
-                <li>后端支持CORS跨域请求</li>
-                <li>代码生成支持选择上级菜单</li>
-                <li>代码生成支持自定义路径</li>
-                <li>代码生成支持复选框</li>
-                <li>Excel导出导入支持dictType字典类型</li>
-                <li>Excel支持分割字符串组内容</li>
-                <li>验证码类型支持(数组计算、字符验证)</li>
-                <li>升级vue-cli版本到4.4.4</li>
-                <li>修改 node-sass 为 dart-sass</li>
-                <li>表单类型为Integer/Long设置整形默认值</li>
-                <li>代码生成器默认mapper路径与默认mapperScan路径不一致</li>
-                <li>优化防重复提交拦截器</li>
-                <li>优化上级菜单不能选择自己</li>
-                <li>修复角色的权限分配后,未实时生效问题</li>
-                <li>修复在线用户日志记录类型</li>
-                <li>修复富文本空格和缩进保存后不生效问题</li>
-                <li>修复在线用户判断逻辑</li>
-                <li>唯一限制条件只返回单条数据</li>
-                <li>添加获取当前的环境配置方法</li>
-                <li>超时登录后页面跳转到首页</li>
-                <li>全局异常状态汉化拦截处理</li>
-                <li>HTML过滤器改为将html转义</li>
-                <li>检查字符支持小数点&降级改成异常提醒</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-
-            <el-collapse-item title="v3.0.0 - 2020-07-20">
-              <ol>
-                <li>单应用调整为多模块项目</li>
-                <li>升级element-ui版本到2.13.2</li>
-                <li>删除babel,提高编译速度。</li>
-                <li>新增菜单默认主类目</li>
-                <li>编码文件名修改为uuid方式</li>
-                <li>定时任务cron表达式验证</li>
-                <li>角色权限修改时已有权限未自动勾选异常修复</li>
-                <li>防止切换权限用户后登录出现404</li>
-                <li>Excel支持sort导出排序</li>
-                <li>创建用户不允许选择超级管理员角色</li>
-                <li>修复代码生成导入表结构出现异常页面不提醒问题</li>
-                <li>修复代码生成点击多次表修改数据不变化的问题</li>
-                <li>修复头像上传成功二次打开无法改变裁剪框大小和位置问题</li>
-                <li>修复布局为small者mini用户表单显示错位问题</li>
-                <li>修复热部署导致的强换异常问题</li>
-                <li>修改用户管理复选框宽度,防止部分浏览器出现省略号</li>
-                <li>IpUtils工具,清除Xss特殊字符,防止Xff注入攻击</li>
-                <li>生成domain 如果是浮点型 统一用BigDecimal</li>
-                <li>定时任务调整label-width,防止部署出现错位</li>
-                <li>调整表头固定列默认样式</li>
-                <li>代码生成模板调整,字段为String并且必填则加空串条件</li>
-                <li>代码生成字典Integer/Long使用parseInt</li>
-                <li>
-                  修复dict_sort不可update为0的问题&查询返回增加dict_sort升序排序
-                </li>
-                <li>修正岗位导出权限注解</li>
-                <li>禁止加密密文返回前端</li>
-                <li>修复代码生成页面中的查询条件创建时间未生效的问题</li>
-                <li>修复首页搜索菜单外链无法点击跳转问题</li>
-                <li>修复菜单管理选择图标,backspace删除时不过滤数据</li>
-                <li>用户管理部门分支节点不可检查&显示计数</li>
-                <li>数据范围过滤属性调整</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-
-            <el-collapse-item title="v2.3.0 - 2020-06-01">
-              <ol>
-                <li>升级fastjson到最新版1.2.70 修复高危安全漏洞</li>
-                <li>dev启动默认打开浏览器</li>
-                <li>vue-cli使用默认source-map</li>
-                <li>slidebar eslint报错优化</li>
-                <li>当tags-view滚动关闭右键菜单</li>
-                <li>字典管理添加缓存读取</li>
-                <li>参数管理支持缓存操作</li>
-                <li>支持一级菜单(和主页同级)在main区域显示</li>
-                <li>限制外链地址必须以http(s)开头</li>
-                <li>tagview & sidebar 主题颜色与element ui(全局)同步</li>
-                <li>修改数据源类型优先级,先根据方法,再根据类</li>
-                <li>支持是否需要设置token属性,自定义返回码消息。</li>
-                <li>swagger请求前缀加入配置。</li>
-                <li>登录地点设置内容过长则隐藏显示</li>
-                <li>修复定时任务执行一次按钮后不提示消息问题</li>
-                <li>修改上级部门(选择项排除本身和下级)</li>
-                <li>通用http发送方法增加参数 contentType 编码类型</li>
-                <li>更换IP地址查询接口</li>
-                <li>修复页签变量undefined</li>
-                <li>添加校验部门包含未停用的子部门</li>
-                <li>修改定时任务详情下次执行时间日期显示错误</li>
-                <li>角色管理查询设置默认排序字段</li>
-                <li>swagger添加enable参数控制是否启用</li>
-                <li>只对json类型请求构建可重复读取inputStream的request</li>
-                <li>修改代码生成字典字段int类型没有自动选中问题</li>
-                <li>vuex用户名取值修正</li>
-                <li>表格树模板去掉多余的)</li>
-                <li>代码生成序号修正</li>
-                <li>全屏情况下不调整上外边距</li>
-                <li>代码生成Date字段添加默认格式</li>
-                <li>用户管理角色选择权限控制</li>
-                <li>修复路由懒加载报错问题</li>
-                <li>模板sql.vm添加菜单状态</li>
-                <li>设置用户名称不能修改</li>
-                <li>dialog添加append-to-body属性,防止ie遮罩</li>
-                <li>菜单区分状态和显示隐藏功能</li>
-                <li>升级fastjson到最新版1.2.68 修复安全加固</li>
-                <li>修复代码生成如果选择字典类型缺失逗号问题</li>
-                <li>登录请求params更换为data,防止暴露url</li>
-                <li>日志返回时间格式处理</li>
-                <li>添加handle控制允许拖动的元素</li>
-                <li>布局设置点击扩大范围</li>
-                <li>代码生成列属性排序查询</li>
-                <li>代码生成列支持拖动排序</li>
-                <li>修复时间格式不支持ios问题</li>
-                <li>表单构建添加父级class,防止冲突</li>
-                <li>定时任务并发属性修正</li>
-                <li>角色禁用&菜单隐藏不查询权限</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-
-            <el-collapse-item title="v2.2.0 - 2020-03-18">
-              <ol>
-                <li>系统监控新增定时任务功能</li>
-                <li>添加一个打包Web工程bat</li>
-                <li>修复页签鼠标滚轮按下的时候,可以关闭不可关闭的tag</li>
-                <li>修复点击退出登录有时会无提示问题</li>
-                <li>修复防重复提交注解无效问题</li>
-                <li>修复通知公告批量删除异常问题</li>
-                <li>添加菜单时路由地址必填限制</li>
-                <li>代码生成字段描述可编辑</li>
-                <li>修复用户修改个人信息导致缓存不过期问题</li>
-                <li>个人信息创建时间获取正确属性值</li>
-                <li>操作日志详细显示正确类型</li>
-                <li>导入表单击行数据时选中对应的复选框</li>
-                <li>批量替换表前缀逻辑调整</li>
-                <li>固定重定向路径表达式</li>
-                <li>升级element-ui版本到2.13.0</li>
-                <li>操作日志排序调整</li>
-                <li>修复charts切换侧边栏或者缩放窗口显示bug</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-
-            <el-collapse-item title="v2.1.0 - 2020-02-24">
-              <ol>
-                <li>新增表单构建</li>
-                <li>代码生成支持树表结构</li>
-                <li>新增用户导入</li>
-                <li>修复动态加载路由页面刷新问题</li>
-                <li>修复地址开关无效问题</li>
-                <li>汉化错误提示页面</li>
-                <li>代码生成已知问题修改</li>
-                <li>修复多数据源下配置关闭出现异常处理</li>
-                <li>添加HTML过滤器,用于去除XSS漏洞隐患</li>
-                <li>修复上传头像控制台出现异常</li>
-                <li>修改用户管理分页不正确的问题</li>
-                <li>修复验证码记录提示错误</li>
-                <li>修复request.js缺少Message引用</li>
-                <li>修复表格时间为空出现的异常</li>
-                <li>添加Jackson日期反序列化时区配置</li>
-                <li>调整根据用户权限加载菜单数据树形结构</li>
-                <li>调整成功登录不恢复按钮,防止多次点击</li>
-                <li>修改用户个人资料同步缓存信息</li>
-                <li>修复页面同时出现el-upload和Editor不显示处理</li>
-                <li>修复在角色管理页修改菜单权限偶尔未选中问题</li>
-                <li>配置文件新增redis密码属性</li>
-                <li>设置mybatis全局的配置文件</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-
-            <el-collapse-item title="v2.0.0 - 2019-12-02">
-              <ol>
-                <li>新增代码生成</li>
-                <li>新增@RepeatSubmit注解,防止重复提交</li>
-                <li>新增菜单主目录添加/删除操作</li>
-                <li>日志记录过滤特殊对象,防止转换异常</li>
-                <li>修改代码生成路由脚本错误</li>
-                <li>用户上传头像实时同步缓存,无需重新登录</li>
-                <li>调整切换页签后不重新加载数据</li>
-                <li>添加jsencrypt实现参数的前端加密</li>
-                <li>系统退出删除用户缓存记录</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v1.1.0 - 2019-11-11">
-              <ol>
-                <li>新增在线用户管理</li>
-                <li>新增按钮组功能实现(批量删除、导出、清空)</li>
-                <li>新增查询条件重置按钮</li>
-                <li>新增Swagger全局Token配置</li>
-                <li>新增后端参数校验</li>
-                <li>修复字典管理页面的日期查询异常</li>
-                <li>修改时间函数命名防止冲突</li>
-                <li>去除菜单上级校验,默认为顶级</li>
-                <li>修复用户密码无法修改问题</li>
-                <li>修复菜单类型为按钮时不显示权限标识</li>
-                <li>其他细节优化</li>
-              </ol>
-            </el-collapse-item>
-            <el-collapse-item title="v1.0.0 - 2019-10-08">
-              <ol>
-                <li>若依前后端分离系统正式发布</li>
-              </ol>
-            </el-collapse-item>
-          </el-collapse>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="24" :md="12" :lg="8">
-        <el-card class="update-log">
-          <div slot="header" class="clearfix">
-            <span>捐赠支持</span>
-          </div>
-          <div class="body">
-            <img
-              src="@/assets/images/pay.png"
-              alt="donate"
-              width="100%"
-            />
-            <span style="display: inline-block; height: 30px; line-height: 30px"
-              >你可以请作者喝杯咖啡表示鼓励</span
-            >
-          </div>
-        </el-card>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-export default {
-  name: "Index",
-  data() {
-    return {
-      // 版本号
-      version: "3.8.7"
-    };
-  },
-  methods: {
-    goTarget(href) {
-      window.open(href, "_blank");
-    }
-  }
-};
-</script>
-
-<style scoped lang="scss">
-.home {
-  blockquote {
-    padding: 10px 20px;
-    margin: 0 0 20px;
-    font-size: 17.5px;
-    border-left: 5px solid #eee;
-  }
-  hr {
-    margin-top: 20px;
-    margin-bottom: 20px;
-    border: 0;
-    border-top: 1px solid #eee;
-  }
-  .col-item {
-    margin-bottom: 20px;
-  }
-
-  ul {
-    padding: 0;
-    margin: 0;
-  }
-
-  font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  color: #676a6c;
-  overflow-x: hidden;
-
-  ul {
-    list-style-type: none;
-  }
-
-  h4 {
-    margin-top: 0px;
-  }
-
-  h2 {
-    margin-top: 10px;
-    font-size: 26px;
-    font-weight: 100;
-  }
-
-  p {
-    margin-top: 10px;
-
-    b {
-      font-weight: 700;
-    }
-  }
-
-  .update-log {
-    ol {
-      display: block;
-      list-style-type: decimal;
-      margin-block-start: 1em;
-      margin-block-end: 1em;
-      margin-inline-start: 0;
-      margin-inline-end: 0;
-      padding-inline-start: 40px;
-    }
-  }
-}
-</style>
-
diff --git a/ruoyi-ui/src/views/index_v1.vue b/ruoyi-ui/src/views/index_v1.vue
deleted file mode 100644
index d2d2ec6..0000000
--- a/ruoyi-ui/src/views/index_v1.vue
+++ /dev/null
@@ -1,98 +0,0 @@
-<template>
-  <div class="dashboard-editor-container">
-
-    <panel-group @handleSetLineChartData="handleSetLineChartData" />
-
-    <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
-      <line-chart :chart-data="lineChartData" />
-    </el-row>
-
-    <el-row :gutter="32">
-      <el-col :xs="24" :sm="24" :lg="8">
-        <div class="chart-wrapper">
-          <raddar-chart />
-        </div>
-      </el-col>
-      <el-col :xs="24" :sm="24" :lg="8">
-        <div class="chart-wrapper">
-          <pie-chart />
-        </div>
-      </el-col>
-      <el-col :xs="24" :sm="24" :lg="8">
-        <div class="chart-wrapper">
-          <bar-chart />
-        </div>
-      </el-col>
-    </el-row>
-
-    
-  </div>
-</template>
-
-<script>
-import PanelGroup from './dashboard/PanelGroup'
-import LineChart from './dashboard/LineChart'
-import RaddarChart from './dashboard/RaddarChart'
-import PieChart from './dashboard/PieChart'
-import BarChart from './dashboard/BarChart'
-
-const lineChartData = {
-  newVisitis: {
-    expectedData: [100, 120, 161, 134, 105, 160, 165],
-    actualData: [120, 82, 91, 154, 162, 140, 145]
-  },
-  messages: {
-    expectedData: [200, 192, 120, 144, 160, 130, 140],
-    actualData: [180, 160, 151, 106, 145, 150, 130]
-  },
-  purchases: {
-    expectedData: [80, 100, 121, 104, 105, 90, 100],
-    actualData: [120, 90, 100, 138, 142, 130, 130]
-  },
-  shoppings: {
-    expectedData: [130, 140, 141, 142, 145, 150, 160],
-    actualData: [120, 82, 91, 154, 162, 140, 130]
-  }
-}
-
-export default {
-  name: 'Index',
-  components: {
-    PanelGroup,
-    LineChart,
-    RaddarChart,
-    PieChart,
-    BarChart
-  },
-  data() {
-    return {
-      lineChartData: lineChartData.newVisitis
-    }
-  },
-  methods: {
-    handleSetLineChartData(type) {
-      this.lineChartData = lineChartData[type]
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.dashboard-editor-container {
-  padding: 32px;
-  background-color: rgb(240, 242, 245);
-  position: relative;
-
-  .chart-wrapper {
-    background: #fff;
-    padding: 16px 16px 0;
-    margin-bottom: 32px;
-  }
-}
-
-@media (max-width:1024px) {
-  .chart-wrapper {
-    padding: 8px;
-  }
-}
-</style>
diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue
deleted file mode 100644
index 06c09d2..0000000
--- a/ruoyi-ui/src/views/login.vue
+++ /dev/null
@@ -1,219 +0,0 @@
-<template>
-  <div class="login">
-    <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
-      <h3 class="title">若依后台管理系统</h3>
-      <el-form-item prop="username">
-        <el-input
-          v-model="loginForm.username"
-          type="text"
-          auto-complete="off"
-          placeholder="账号"
-        >
-          <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
-        </el-input>
-      </el-form-item>
-      <el-form-item prop="password">
-        <el-input
-          v-model="loginForm.password"
-          type="password"
-          auto-complete="off"
-          placeholder="密码"
-          @keyup.enter.native="handleLogin"
-        >
-          <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
-        </el-input>
-      </el-form-item>
-      <el-form-item prop="code" v-if="captchaEnabled">
-        <el-input
-          v-model="loginForm.code"
-          auto-complete="off"
-          placeholder="验证码"
-          style="width: 63%"
-          @keyup.enter.native="handleLogin"
-        >
-          <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
-        </el-input>
-        <div class="login-code">
-          <img :src="codeUrl" @click="getCode" class="login-code-img"/>
-        </div>
-      </el-form-item>
-      <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox>
-      <el-form-item style="width:100%;">
-        <el-button
-          :loading="loading"
-          size="medium"
-          type="primary"
-          style="width:100%;"
-          @click.native.prevent="handleLogin"
-        >
-          <span v-if="!loading">登 录</span>
-          <span v-else>登 录 中...</span>
-        </el-button>
-        <div style="float: right;" v-if="register">
-          <router-link class="link-type" :to="'/register'">立即注册</router-link>
-        </div>
-      </el-form-item>
-    </el-form>
-    <!--  底部  -->
-    <div class="el-login-footer">
-      <span>Copyright © 2018-2024 ruoyi.vip All Rights Reserved.</span>
-    </div>
-  </div>
-</template>
-
-<script>
-import { getCodeImg } from "@/api/login";
-import Cookies from "js-cookie";
-import { encrypt, decrypt } from '@/utils/jsencrypt'
-
-export default {
-  name: "Login",
-  data() {
-    return {
-      codeUrl: "",
-      loginForm: {
-        username: "admin",
-        password: "admin123",
-        rememberMe: false,
-        code: "",
-        uuid: ""
-      },
-      loginRules: {
-        username: [
-          { required: true, trigger: "blur", message: "请输入您的账号" }
-        ],
-        password: [
-          { required: true, trigger: "blur", message: "请输入您的密码" }
-        ],
-        code: [{ required: true, trigger: "change", message: "请输入验证码" }]
-      },
-      loading: false,
-      // 验证码开关
-      captchaEnabled: true,
-      // 注册开关
-      register: false,
-      redirect: undefined
-    };
-  },
-  watch: {
-    $route: {
-      handler: function(route) {
-        this.redirect = route.query && route.query.redirect;
-      },
-      immediate: true
-    }
-  },
-  created() {
-    this.getCode();
-    this.getCookie();
-  },
-  methods: {
-    getCode() {
-      getCodeImg().then(res => {
-        this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled;
-        if (this.captchaEnabled) {
-          this.codeUrl = "data:image/gif;base64," + res.img;
-          this.loginForm.uuid = res.uuid;
-        }
-      });
-    },
-    getCookie() {
-      const username = Cookies.get("username");
-      const password = Cookies.get("password");
-      const rememberMe = Cookies.get('rememberMe')
-      this.loginForm = {
-        username: username === undefined ? this.loginForm.username : username,
-        password: password === undefined ? this.loginForm.password : decrypt(password),
-        rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
-      };
-    },
-    handleLogin() {
-      this.$refs.loginForm.validate(valid => {
-        if (valid) {
-          this.loading = true;
-          if (this.loginForm.rememberMe) {
-            Cookies.set("username", this.loginForm.username, { expires: 30 });
-            Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
-            Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
-          } else {
-            Cookies.remove("username");
-            Cookies.remove("password");
-            Cookies.remove('rememberMe');
-          }
-          this.$store.dispatch("Login", this.loginForm).then(() => {
-            this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
-          }).catch(() => {
-            this.loading = false;
-            if (this.captchaEnabled) {
-              this.getCode();
-            }
-          });
-        }
-      });
-    }
-  }
-};
-</script>
-
-<style rel="stylesheet/scss" lang="scss">
-.login {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  height: 100%;
-  background-image: url("../assets/images/login-background.jpg");
-  background-size: cover;
-}
-.title {
-  margin: 0px auto 30px auto;
-  text-align: center;
-  color: #707070;
-}
-
-.login-form {
-  border-radius: 6px;
-  background: #ffffff;
-  width: 400px;
-  padding: 25px 25px 5px 25px;
-  .el-input {
-    height: 38px;
-    input {
-      height: 38px;
-    }
-  }
-  .input-icon {
-    height: 39px;
-    width: 14px;
-    margin-left: 2px;
-  }
-}
-.login-tip {
-  font-size: 13px;
-  text-align: center;
-  color: #bfbfbf;
-}
-.login-code {
-  width: 33%;
-  height: 38px;
-  float: right;
-  img {
-    cursor: pointer;
-    vertical-align: middle;
-  }
-}
-.el-login-footer {
-  height: 40px;
-  line-height: 40px;
-  position: fixed;
-  bottom: 0;
-  width: 100%;
-  text-align: center;
-  color: #fff;
-  font-family: Arial;
-  font-size: 12px;
-  letter-spacing: 1px;
-}
-.login-code-img {
-  height: 38px;
-}
-</style>
diff --git a/ruoyi-ui/src/views/monitor/cache/index.vue b/ruoyi-ui/src/views/monitor/cache/index.vue
deleted file mode 100644
index 8d2f378..0000000
--- a/ruoyi-ui/src/views/monitor/cache/index.vue
+++ /dev/null
@@ -1,148 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-row>
-      <el-col :span="24" class="card-box">
-        <el-card>
-          <div slot="header"><span><i class="el-icon-monitor"></i> 基本信息</span></div>
-          <div class="el-table el-table--enable-row-hover el-table--medium">
-            <table cellspacing="0" style="width: 100%">
-              <tbody>
-                <tr>
-                  <td class="el-table__cell is-leaf"><div class="cell">Redis版本</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.redis_version }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">运行模式</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.redis_mode == "standalone" ? "单机" : "集群" }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">端口</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.tcp_port }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">客户端数</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.connected_clients }}</div></td>
-                </tr>
-                <tr>
-                  <td class="el-table__cell is-leaf"><div class="cell">运行时间(天)</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.uptime_in_days }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">使用内存</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.used_memory_human }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">使用CPU</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ parseFloat(cache.info.used_cpu_user_children).toFixed(2) }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">内存配置</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.maxmemory_human }}</div></td>
-                </tr>
-                <tr>
-                  <td class="el-table__cell is-leaf"><div class="cell">AOF是否开启</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.aof_enabled == "0" ? "否" : "是" }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">RDB是否成功</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.rdb_last_bgsave_status }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">Key数量</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.dbSize">{{ cache.dbSize }} </div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">网络入口/出口</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.instantaneous_input_kbps }}kps/{{cache.info.instantaneous_output_kbps}}kps</div></td>
-                </tr>
-              </tbody>
-            </table>
-          </div>
-        </el-card>
-      </el-col>
-
-      <el-col :span="12" class="card-box">
-        <el-card>
-          <div slot="header"><span><i class="el-icon-pie-chart"></i> 命令统计</span></div>
-          <div class="el-table el-table--enable-row-hover el-table--medium">
-            <div ref="commandstats" style="height: 420px" />
-          </div>
-        </el-card>
-      </el-col>
-
-      <el-col :span="12" class="card-box">
-        <el-card>
-          <div slot="header"><span><i class="el-icon-odometer"></i> 内存信息</span></div>
-          <div class="el-table el-table--enable-row-hover el-table--medium">
-            <div ref="usedmemory" style="height: 420px" />
-          </div>
-        </el-card>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { getCache } from "@/api/monitor/cache";
-import * as echarts from "echarts";
-
-export default {
-  name: "Cache",
-  data() {
-    return {
-      // 统计命令信息
-      commandstats: null,
-      // 使用内存
-      usedmemory: null,
-      // cache信息
-      cache: []
-    }
-  },
-  created() {
-    this.getList();
-    this.openLoading();
-  },
-  methods: {
-    /** 查缓存询信息 */
-    getList() {
-      getCache().then((response) => {
-        this.cache = response.data;
-        this.$modal.closeLoading();
-
-        this.commandstats = echarts.init(this.$refs.commandstats, "macarons");
-        this.commandstats.setOption({
-          tooltip: {
-            trigger: "item",
-            formatter: "{a} <br/>{b} : {c} ({d}%)",
-          },
-          series: [
-            {
-              name: "命令",
-              type: "pie",
-              roseType: "radius",
-              radius: [15, 95],
-              center: ["50%", "38%"],
-              data: response.data.commandStats,
-              animationEasing: "cubicInOut",
-              animationDuration: 1000,
-            }
-          ]
-        });
-        this.usedmemory = echarts.init(this.$refs.usedmemory, "macarons");
-        this.usedmemory.setOption({
-          tooltip: {
-            formatter: "{b} <br/>{a} : " + this.cache.info.used_memory_human,
-          },
-          series: [
-            {
-              name: "峰值",
-              type: "gauge",
-              min: 0,
-              max: 1000,
-              detail: {
-                formatter: this.cache.info.used_memory_human,
-              },
-              data: [
-                {
-                  value: parseFloat(this.cache.info.used_memory_human),
-                  name: "内存消耗",
-                }
-              ]
-            }
-          ]
-        });
-        window.addEventListener("resize", () => {
-          this.commandstats.resize();
-          this.usedmemory.resize();
-        });
-      });
-    },
-    // 打开加载层
-    openLoading() {
-      this.$modal.loading("正在加载缓存监控数据,请稍候!");
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/monitor/cache/list.vue b/ruoyi-ui/src/views/monitor/cache/list.vue
deleted file mode 100644
index 29a7c74..0000000
--- a/ruoyi-ui/src/views/monitor/cache/list.vue
+++ /dev/null
@@ -1,241 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-row :gutter="10">
-      <el-col :span="8">
-        <el-card style="height: calc(100vh - 125px)">
-          <div slot="header">
-            <span><i class="el-icon-collection"></i> 缓存列表</span>
-            <el-button
-              style="float: right; padding: 3px 0"
-              type="text"
-              icon="el-icon-refresh-right"
-              @click="refreshCacheNames()"
-            ></el-button>
-          </div>
-          <el-table
-            v-loading="loading"
-            :data="cacheNames"
-            :height="tableHeight"
-            highlight-current-row
-            @row-click="getCacheKeys"
-            style="width: 100%"
-          >
-            <el-table-column
-              label="序号"
-              width="60"
-              type="index"
-            ></el-table-column>
-
-            <el-table-column
-              label="缓存名称"
-              align="center"
-              prop="cacheName"
-              :show-overflow-tooltip="true"
-              :formatter="nameFormatter"
-            ></el-table-column>
-
-            <el-table-column
-              label="备注"
-              align="center"
-              prop="remark"
-              :show-overflow-tooltip="true"
-            />
-            <el-table-column
-              label="操作"
-              width="60"
-              align="center"
-              class-name="small-padding fixed-width"
-            >
-              <template slot-scope="scope">
-                <el-button
-                  size="mini"
-                  type="text"
-                  icon="el-icon-delete"
-                  @click="handleClearCacheName(scope.row)"
-                ></el-button>
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-card>
-      </el-col>
-
-      <el-col :span="8">
-        <el-card style="height: calc(100vh - 125px)">
-          <div slot="header">
-            <span><i class="el-icon-key"></i> 键名列表</span>
-            <el-button
-              style="float: right; padding: 3px 0"
-              type="text"
-              icon="el-icon-refresh-right"
-              @click="refreshCacheKeys()"
-            ></el-button>
-          </div>
-          <el-table
-            v-loading="subLoading"
-            :data="cacheKeys"
-            :height="tableHeight"
-            highlight-current-row
-            @row-click="handleCacheValue"
-            style="width: 100%"
-          >
-            <el-table-column
-              label="序号"
-              width="60"
-              type="index"
-            ></el-table-column>
-            <el-table-column
-              label="缓存键名"
-              align="center"
-              :show-overflow-tooltip="true"
-              :formatter="keyFormatter"
-            >
-            </el-table-column>
-            <el-table-column
-              label="操作"
-              width="60"
-              align="center"
-              class-name="small-padding fixed-width"
-            >
-              <template slot-scope="scope">
-                <el-button
-                  size="mini"
-                  type="text"
-                  icon="el-icon-delete"
-                  @click="handleClearCacheKey(scope.row)"
-                ></el-button>
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-card>
-      </el-col>
-
-      <el-col :span="8">
-        <el-card :bordered="false" style="height: calc(100vh - 125px)">
-          <div slot="header">
-            <span><i class="el-icon-document"></i> 缓存内容</span>
-            <el-button
-              style="float: right; padding: 3px 0"
-              type="text"
-              icon="el-icon-refresh-right"
-              @click="handleClearCacheAll()"
-              >清理全部</el-button
-            >
-          </div>
-          <el-form :model="cacheForm">
-            <el-row :gutter="32">
-              <el-col :offset="1" :span="22">
-                <el-form-item label="缓存名称:" prop="cacheName">
-                  <el-input v-model="cacheForm.cacheName" :readOnly="true" />
-                </el-form-item>
-              </el-col>
-              <el-col :offset="1" :span="22">
-                <el-form-item label="缓存键名:" prop="cacheKey">
-                  <el-input v-model="cacheForm.cacheKey" :readOnly="true" />
-                </el-form-item>
-              </el-col>
-              <el-col :offset="1" :span="22">
-                <el-form-item label="缓存内容:" prop="cacheValue">
-                  <el-input
-                    v-model="cacheForm.cacheValue"
-                    type="textarea"
-                    :rows="8"
-                    :readOnly="true"
-                  />
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form>
-        </el-card>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { listCacheName, listCacheKey, getCacheValue, clearCacheName, clearCacheKey, clearCacheAll } from "@/api/monitor/cache";
-
-export default {
-  name: "CacheList",
-  data() {
-    return {
-      cacheNames: [],
-      cacheKeys: [],
-      cacheForm: {},
-      loading: true,
-      subLoading: false,
-      nowCacheName: "",
-      tableHeight: window.innerHeight - 200
-    };
-  },
-  created() {
-    this.getCacheNames();
-  },
-  methods: {
-    /** 查询缓存名称列表 */
-    getCacheNames() {
-      this.loading = true;
-      listCacheName().then(response => {
-        this.cacheNames = response.data;
-        this.loading = false;
-      });
-    },
-    /** 刷新缓存名称列表 */
-    refreshCacheNames() {
-      this.getCacheNames();
-      this.$modal.msgSuccess("刷新缓存列表成功");
-    },
-    /** 清理指定名称缓存 */
-    handleClearCacheName(row) {
-      clearCacheName(row.cacheName).then(response => {
-        this.$modal.msgSuccess("清理缓存名称[" + row.cacheName + "]成功");
-        this.getCacheKeys();
-      });
-    },
-    /** 查询缓存键名列表 */
-    getCacheKeys(row) {
-      const cacheName = row !== undefined ? row.cacheName : this.nowCacheName;
-      if (cacheName === "") {
-        return;
-      }
-      this.subLoading = true;
-      listCacheKey(cacheName).then(response => {
-        this.cacheKeys = response.data;
-        this.subLoading = false;
-        this.nowCacheName = cacheName;
-      });
-    },
-    /** 刷新缓存键名列表 */
-    refreshCacheKeys() {
-      this.getCacheKeys();
-      this.$modal.msgSuccess("刷新键名列表成功");
-    },
-    /** 清理指定键名缓存 */
-    handleClearCacheKey(cacheKey) {
-      clearCacheKey(cacheKey).then(response => {
-        this.$modal.msgSuccess("清理缓存键名[" + cacheKey + "]成功");
-        this.getCacheKeys();
-      });
-    },
-    /** 列表前缀去除 */
-    nameFormatter(row) {
-      return row.cacheName.replace(":", "");
-    },
-    /** 键名前缀去除 */
-    keyFormatter(cacheKey) {
-      return cacheKey.replace(this.nowCacheName, "");
-    },
-    /** 查询缓存内容详细 */
-    handleCacheValue(cacheKey) {
-      getCacheValue(this.nowCacheName, cacheKey).then(response => {
-        this.cacheForm = response.data;
-      });
-    },
-    /** 清理全部缓存 */
-    handleClearCacheAll() {
-      clearCacheAll().then(response => {
-        this.$modal.msgSuccess("清理全部缓存成功");
-      });
-    }
-  },
-};
-</script>
diff --git a/ruoyi-ui/src/views/monitor/druid/index.vue b/ruoyi-ui/src/views/monitor/druid/index.vue
deleted file mode 100644
index c6ad585..0000000
--- a/ruoyi-ui/src/views/monitor/druid/index.vue
+++ /dev/null
@@ -1,15 +0,0 @@
-<template>
-  <i-frame :src="url" />
-</template>
-<script>
-import iFrame from "@/components/iFrame/index";
-export default {
-  name: "Druid",
-  components: { iFrame },
-  data() {
-    return {
-      url: process.env.VUE_APP_BASE_API + "/druid/login.html"
-    };
-  },
-};
-</script>
diff --git a/ruoyi-ui/src/views/monitor/job/index.vue b/ruoyi-ui/src/views/monitor/job/index.vue
deleted file mode 100644
index 892c727..0000000
--- a/ruoyi-ui/src/views/monitor/job/index.vue
+++ /dev/null
@@ -1,513 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="任务名称" prop="jobName">
-        <el-input
-          v-model="queryParams.jobName"
-          placeholder="请输入任务名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="任务组名" prop="jobGroup">
-        <el-select v-model="queryParams.jobGroup" placeholder="请选择任务组名" clearable>
-          <el-option
-            v-for="dict in dict.type.sys_job_group"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="任务状态" prop="status">
-        <el-select v-model="queryParams.status" placeholder="请选择任务状态" clearable>
-          <el-option
-            v-for="dict in dict.type.sys_job_status"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['monitor:job:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['monitor:job:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['monitor:job:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['monitor:job:export']"
-        >导出</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="info"
-          plain
-          icon="el-icon-s-operation"
-          size="mini"
-          @click="handleJobLog"
-          v-hasPermi="['monitor:job:query']"
-        >日志</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="jobList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="任务编号" width="100" align="center" prop="jobId" />
-      <el-table-column label="任务名称" align="center" prop="jobName" :show-overflow-tooltip="true" />
-      <el-table-column label="任务组名" align="center" prop="jobGroup">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_job_group" :value="scope.row.jobGroup"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="调用目标字符串" align="center" prop="invokeTarget" :show-overflow-tooltip="true" />
-      <el-table-column label="cron执行表达式" align="center" prop="cronExpression" :show-overflow-tooltip="true" />
-      <el-table-column label="状态" align="center">
-        <template slot-scope="scope">
-          <el-switch
-            v-model="scope.row.status"
-            active-value="0"
-            inactive-value="1"
-            @change="handleStatusChange(scope.row)"
-          ></el-switch>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['monitor:job:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['monitor:job:remove']"
-          >删除</el-button>
-          <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['monitor:job:changeStatus', 'monitor:job:query']">
-            <el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item command="handleRun" icon="el-icon-caret-right"
-                v-hasPermi="['monitor:job:changeStatus']">执行一次</el-dropdown-item>
-              <el-dropdown-item command="handleView" icon="el-icon-view"
-                v-hasPermi="['monitor:job:query']">任务详细</el-dropdown-item>
-              <el-dropdown-item command="handleJobLog" icon="el-icon-s-operation"
-                v-hasPermi="['monitor:job:query']">调度日志</el-dropdown-item>
-            </el-dropdown-menu>
-          </el-dropdown>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改定时任务对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="任务名称" prop="jobName">
-              <el-input v-model="form.jobName" placeholder="请输入任务名称" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="任务分组" prop="jobGroup">
-              <el-select v-model="form.jobGroup" placeholder="请选择任务分组">
-                <el-option
-                  v-for="dict in dict.type.sys_job_group"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item prop="invokeTarget">
-              <span slot="label">
-                调用方法
-                <el-tooltip placement="top">
-                  <div slot="content">
-                    Bean调用示例:ryTask.ryParams('ry')
-                    <br />Class类调用示例:com.ruoyi.quartz.task.RyTask.ryParams('ry')
-                    <br />参数说明:支持字符串,布尔类型,长整型,浮点型,整型
-                  </div>
-                  <i class="el-icon-question"></i>
-                </el-tooltip>
-              </span>
-              <el-input v-model="form.invokeTarget" placeholder="请输入调用目标字符串" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="cron表达式" prop="cronExpression">
-              <el-input v-model="form.cronExpression" placeholder="请输入cron执行表达式">
-                <template slot="append">
-                  <el-button type="primary" @click="handleShowCron">
-                    生成表达式
-                    <i class="el-icon-time el-icon--right"></i>
-                  </el-button>
-                </template>
-              </el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24" v-if="form.jobId !== undefined">
-            <el-form-item label="状态">
-              <el-radio-group v-model="form.status">
-                <el-radio
-                  v-for="dict in dict.type.sys_job_status"
-                  :key="dict.value"
-                  :label="dict.value"
-                >{{dict.label}}</el-radio>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="执行策略" prop="misfirePolicy">
-              <el-radio-group v-model="form.misfirePolicy" size="small">
-                <el-radio-button label="1">立即执行</el-radio-button>
-                <el-radio-button label="2">执行一次</el-radio-button>
-                <el-radio-button label="3">放弃执行</el-radio-button>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="是否并发" prop="concurrent">
-              <el-radio-group v-model="form.concurrent" size="small">
-                <el-radio-button label="0">允许</el-radio-button>
-                <el-radio-button label="1">禁止</el-radio-button>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-
-    <el-dialog title="Cron表达式生成器" :visible.sync="openCron" append-to-body destroy-on-close class="scrollbar">
-      <crontab @hide="openCron=false" @fill="crontabFill" :expression="expression"></crontab>
-    </el-dialog>
-
-    <!-- 任务日志详细 -->
-    <el-dialog title="任务详细" :visible.sync="openView" width="700px" append-to-body>
-      <el-form ref="form" :model="form" label-width="120px" size="mini">
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="任务编号:">{{ form.jobId }}</el-form-item>
-            <el-form-item label="任务名称:">{{ form.jobName }}</el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="任务分组:">{{ jobGroupFormat(form) }}</el-form-item>
-            <el-form-item label="创建时间:">{{ form.createTime }}</el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="cron表达式:">{{ form.cronExpression }}</el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="下次执行时间:">{{ parseTime(form.nextValidTime) }}</el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="调用目标方法:">{{ form.invokeTarget }}</el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="任务状态:">
-              <div v-if="form.status == 0">正常</div>
-              <div v-else-if="form.status == 1">暂停</div>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="是否并发:">
-              <div v-if="form.concurrent == 0">允许</div>
-              <div v-else-if="form.concurrent == 1">禁止</div>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="执行策略:">
-              <div v-if="form.misfirePolicy == 0">默认策略</div>
-              <div v-else-if="form.misfirePolicy == 1">立即执行</div>
-              <div v-else-if="form.misfirePolicy == 2">执行一次</div>
-              <div v-else-if="form.misfirePolicy == 3">放弃执行</div>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="openView = false">关 闭</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listJob, getJob, delJob, addJob, updateJob, runJob, changeJobStatus } from "@/api/monitor/job";
-import Crontab from '@/components/Crontab'
-
-export default {
-  components: { Crontab },
-  name: "Job",
-  dicts: ['sys_job_group', 'sys_job_status'],
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 定时任务表格数据
-      jobList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 是否显示详细弹出层
-      openView: false,
-      // 是否显示Cron表达式弹出层
-      openCron: false,
-      // 传入的表达式
-      expression: "",
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        jobName: undefined,
-        jobGroup: undefined,
-        status: undefined
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        jobName: [
-          { required: true, message: "任务名称不能为空", trigger: "blur" }
-        ],
-        invokeTarget: [
-          { required: true, message: "调用目标字符串不能为空", trigger: "blur" }
-        ],
-        cronExpression: [
-          { required: true, message: "cron执行表达式不能为空", trigger: "blur" }
-        ]
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询定时任务列表 */
-    getList() {
-      this.loading = true;
-      listJob(this.queryParams).then(response => {
-        this.jobList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 任务组名字典翻译
-    jobGroupFormat(row, column) {
-      return this.selectDictLabel(this.dict.type.sys_job_group, row.jobGroup);
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        jobId: undefined,
-        jobName: undefined,
-        jobGroup: undefined,
-        invokeTarget: undefined,
-        cronExpression: undefined,
-        misfirePolicy: 1,
-        concurrent: 1,
-        status: "0"
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.jobId);
-      this.single = selection.length != 1;
-      this.multiple = !selection.length;
-    },
-    // 更多操作触发
-    handleCommand(command, row) {
-      switch (command) {
-        case "handleRun":
-          this.handleRun(row);
-          break;
-        case "handleView":
-          this.handleView(row);
-          break;
-        case "handleJobLog":
-          this.handleJobLog(row);
-          break;
-        default:
-          break;
-      }
-    },
-    // 任务状态修改
-    handleStatusChange(row) {
-      let text = row.status === "0" ? "启用" : "停用";
-      this.$modal.confirm('确认要"' + text + '""' + row.jobName + '"任务吗?').then(function() {
-        return changeJobStatus(row.jobId, row.status);
-      }).then(() => {
-        this.$modal.msgSuccess(text + "成功");
-      }).catch(function() {
-        row.status = row.status === "0" ? "1" : "0";
-      });
-    },
-    /* 立即执行一次 */
-    handleRun(row) {
-      this.$modal.confirm('确认要立即执行一次"' + row.jobName + '"任务吗?').then(function() {
-        return runJob(row.jobId, row.jobGroup);
-      }).then(() => {
-        this.$modal.msgSuccess("执行成功");
-      }).catch(() => {});
-    },
-    /** 任务详细信息 */
-    handleView(row) {
-      getJob(row.jobId).then(response => {
-        this.form = response.data;
-        this.openView = true;
-      });
-    },
-    /** cron表达式按钮操作 */
-    handleShowCron() {
-      this.expression = this.form.cronExpression;
-      this.openCron = true;
-    },
-    /** 确定后回传值 */
-    crontabFill(value) {
-      this.form.cronExpression = value;
-    },
-    /** 任务日志列表查询 */
-    handleJobLog(row) {
-      const jobId = row.jobId || 0;
-      this.$router.push('/monitor/job-log/index/' + jobId)
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加任务";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const jobId = row.jobId || this.ids;
-      getJob(jobId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改任务";
-      });
-    },
-    /** 提交按钮 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.jobId != undefined) {
-            updateJob(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addJob(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const jobIds = row.jobId || this.ids;
-      this.$modal.confirm('是否确认删除定时任务编号为"' + jobIds + '"的数据项?').then(function() {
-        return delJob(jobIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('monitor/job/export', {
-        ...this.queryParams
-      }, `job_${new Date().getTime()}.xlsx`)
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/monitor/job/log.vue b/ruoyi-ui/src/views/monitor/job/log.vue
deleted file mode 100644
index 60bee1d..0000000
--- a/ruoyi-ui/src/views/monitor/job/log.vue
+++ /dev/null
@@ -1,295 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="任务名称" prop="jobName">
-        <el-input
-          v-model="queryParams.jobName"
-          placeholder="请输入任务名称"
-          clearable
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="任务组名" prop="jobGroup">
-        <el-select
-          v-model="queryParams.jobGroup"
-          placeholder="请选择任务组名"
-          clearable
-          style="width: 240px"
-        >
-          <el-option
-            v-for="dict in dict.type.sys_job_group"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="执行状态" prop="status">
-        <el-select
-          v-model="queryParams.status"
-          placeholder="请选择执行状态"
-          clearable
-          style="width: 240px"
-        >
-          <el-option
-            v-for="dict in dict.type.sys_common_status"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="执行时间">
-        <el-date-picker
-          v-model="dateRange"
-          style="width: 240px"
-          value-format="yyyy-MM-dd"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        ></el-date-picker>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['monitor:job:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          @click="handleClean"
-          v-hasPermi="['monitor:job:remove']"
-        >清空</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['monitor:job:export']"
-        >导出</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-close"
-          size="mini"
-          @click="handleClose"
-        >关闭</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="jobLogList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="日志编号" width="80" align="center" prop="jobLogId" />
-      <el-table-column label="任务名称" align="center" prop="jobName" :show-overflow-tooltip="true" />
-      <el-table-column label="任务组名" align="center" prop="jobGroup" :show-overflow-tooltip="true">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_job_group" :value="scope.row.jobGroup"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="调用目标字符串" align="center" prop="invokeTarget" :show-overflow-tooltip="true" />
-      <el-table-column label="日志信息" align="center" prop="jobMessage" :show-overflow-tooltip="true" />
-      <el-table-column label="执行状态" align="center" prop="status">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_common_status" :value="scope.row.status"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="执行时间" align="center" prop="createTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-view"
-            @click="handleView(scope.row)"
-            v-hasPermi="['monitor:job:query']"
-          >详细</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 调度日志详细 -->
-    <el-dialog title="调度日志详细" :visible.sync="open" width="700px" append-to-body>
-      <el-form ref="form" :model="form" label-width="100px" size="mini">
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="日志序号:">{{ form.jobLogId }}</el-form-item>
-            <el-form-item label="任务名称:">{{ form.jobName }}</el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="任务分组:">{{ form.jobGroup }}</el-form-item>
-            <el-form-item label="执行时间:">{{ form.createTime }}</el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="调用方法:">{{ form.invokeTarget }}</el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="日志信息:">{{ form.jobMessage }}</el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="执行状态:">
-              <div v-if="form.status == 0">正常</div>
-              <div v-else-if="form.status == 1">失败</div>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="异常信息:" v-if="form.status == 1">{{ form.exceptionInfo }}</el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="open = false">关 闭</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { getJob} from "@/api/monitor/job";
-import { listJobLog, delJobLog, cleanJobLog } from "@/api/monitor/jobLog";
-
-export default {
-  name: "JobLog",
-  dicts: ['sys_common_status', 'sys_job_group'],
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 调度日志表格数据
-      jobLogList: [],
-      // 是否显示弹出层
-      open: false,
-      // 日期范围
-      dateRange: [],
-      // 表单参数
-      form: {},
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        jobName: undefined,
-        jobGroup: undefined,
-        status: undefined
-      }
-    };
-  },
-  created() {
-    const jobId = this.$route.params && this.$route.params.jobId;
-    if (jobId !== undefined && jobId != 0) {
-      getJob(jobId).then(response => {
-        this.queryParams.jobName = response.data.jobName;
-        this.queryParams.jobGroup = response.data.jobGroup;
-        this.getList();
-      });
-    } else {
-      this.getList();
-    }
-  },
-  methods: {
-    /** 查询调度日志列表 */
-    getList() {
-      this.loading = true;
-      listJobLog(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-          this.jobLogList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
-    },
-    // 返回按钮
-    handleClose() {
-      const obj = { path: "/monitor/job" };
-      this.$tab.closeOpenPage(obj);
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.jobLogId);
-      this.multiple = !selection.length;
-    },
-    /** 详细按钮操作 */
-    handleView(row) {
-      this.open = true;
-      this.form = row;
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const jobLogIds = this.ids;
-      this.$modal.confirm('是否确认删除调度日志编号为"' + jobLogIds + '"的数据项?').then(function() {
-        return delJobLog(jobLogIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 清空按钮操作 */
-    handleClean() {
-      this.$modal.confirm('是否确认清空所有调度日志数据项?').then(function() {
-        return cleanJobLog();
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("清空成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('/monitor/jobLog/export', {
-        ...this.queryParams
-      }, `log_${new Date().getTime()}.xlsx`)
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/monitor/logininfor/index.vue b/ruoyi-ui/src/views/monitor/logininfor/index.vue
deleted file mode 100644
index d6af834..0000000
--- a/ruoyi-ui/src/views/monitor/logininfor/index.vue
+++ /dev/null
@@ -1,246 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="登录地址" prop="ipaddr">
-        <el-input
-          v-model="queryParams.ipaddr"
-          placeholder="请输入登录地址"
-          clearable
-          style="width: 240px;"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="用户名称" prop="userName">
-        <el-input
-          v-model="queryParams.userName"
-          placeholder="请输入用户名称"
-          clearable
-          style="width: 240px;"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="状态" prop="status">
-        <el-select
-          v-model="queryParams.status"
-          placeholder="登录状态"
-          clearable
-          style="width: 240px"
-        >
-          <el-option
-            v-for="dict in dict.type.sys_common_status"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="登录时间">
-        <el-date-picker
-          v-model="dateRange"
-          style="width: 240px"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-          :default-time="['00:00:00', '23:59:59']"
-        ></el-date-picker>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['monitor:logininfor:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          @click="handleClean"
-          v-hasPermi="['monitor:logininfor:remove']"
-        >清空</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-unlock"
-          size="mini"
-          :disabled="single"
-          @click="handleUnlock"
-          v-hasPermi="['monitor:logininfor:unlock']"
-        >解锁</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['monitor:logininfor:export']"
-        >导出</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table ref="tables" v-loading="loading" :data="list" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="访问编号" align="center" prop="infoId" />
-      <el-table-column label="用户名称" align="center" prop="userName" :show-overflow-tooltip="true" sortable="custom" :sort-orders="['descending', 'ascending']" />
-      <el-table-column label="登录地址" align="center" prop="ipaddr" width="130" :show-overflow-tooltip="true" />
-      <el-table-column label="登录地点" align="center" prop="loginLocation" :show-overflow-tooltip="true" />
-      <el-table-column label="浏览器" align="center" prop="browser" :show-overflow-tooltip="true" />
-      <el-table-column label="操作系统" align="center" prop="os" />
-      <el-table-column label="登录状态" align="center" prop="status">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_common_status" :value="scope.row.status"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作信息" align="center" prop="msg" :show-overflow-tooltip="true" />
-      <el-table-column label="登录日期" align="center" prop="loginTime" sortable="custom" :sort-orders="['descending', 'ascending']" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.loginTime) }}</span>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-  </div>
-</template>
-
-<script>
-import { list, delLogininfor, cleanLogininfor, unlockLogininfor } from "@/api/monitor/logininfor";
-
-export default {
-  name: "Logininfor",
-  dicts: ['sys_common_status'],
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 选择用户名
-      selectName: "",
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 表格数据
-      list: [],
-      // 日期范围
-      dateRange: [],
-      // 默认排序
-      defaultSort: {prop: 'loginTime', order: 'descending'},
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        ipaddr: undefined,
-        userName: undefined,
-        status: undefined
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询登录日志列表 */
-    getList() {
-      this.loading = true;
-      list(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-          this.list = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.queryParams.pageNum = 1;
-      this.$refs.tables.sort(this.defaultSort.prop, this.defaultSort.order)
-    },
-    /** 多选框选中数据 */
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.infoId)
-      this.single = selection.length!=1
-      this.multiple = !selection.length
-      this.selectName = selection.map(item => item.userName);
-    },
-    /** 排序触发事件 */
-    handleSortChange(column, prop, order) {
-      this.queryParams.orderByColumn = column.prop;
-      this.queryParams.isAsc = column.order;
-      this.getList();
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const infoIds = row.infoId || this.ids;
-      this.$modal.confirm('是否确认删除访问编号为"' + infoIds + '"的数据项?').then(function() {
-        return delLogininfor(infoIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 清空按钮操作 */
-    handleClean() {
-      this.$modal.confirm('是否确认清空所有登录日志数据项?').then(function() {
-        return cleanLogininfor();
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("清空成功");
-      }).catch(() => {});
-    },
-    /** 解锁按钮操作 */
-    handleUnlock() {
-      const username = this.selectName;
-      this.$modal.confirm('是否确认解锁用户"' + username + '"数据项?').then(function() {
-        return unlockLogininfor(username);
-      }).then(() => {
-        this.$modal.msgSuccess("用户" + username + "解锁成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('monitor/logininfor/export', {
-        ...this.queryParams
-      }, `logininfor_${new Date().getTime()}.xlsx`)
-    }
-  }
-};
-</script>
-
diff --git a/ruoyi-ui/src/views/monitor/online/index.vue b/ruoyi-ui/src/views/monitor/online/index.vue
deleted file mode 100644
index ad613c9..0000000
--- a/ruoyi-ui/src/views/monitor/online/index.vue
+++ /dev/null
@@ -1,122 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
-      <el-form-item label="登录地址" prop="ipaddr">
-        <el-input
-          v-model="queryParams.ipaddr"
-          placeholder="请输入登录地址"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="用户名称" prop="userName">
-        <el-input
-          v-model="queryParams.userName"
-          placeholder="请输入用户名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-
-    </el-form>
-    <el-table
-      v-loading="loading"
-      :data="list.slice((pageNum-1)*pageSize,pageNum*pageSize)"
-      style="width: 100%;"
-    >
-      <el-table-column label="序号" type="index" align="center">
-        <template slot-scope="scope">
-          <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="会话编号" align="center" prop="tokenId" :show-overflow-tooltip="true" />
-      <el-table-column label="登录名称" align="center" prop="userName" :show-overflow-tooltip="true" />
-      <el-table-column label="部门名称" align="center" prop="deptName" />
-      <el-table-column label="主机" align="center" prop="ipaddr" :show-overflow-tooltip="true" />
-      <el-table-column label="登录地点" align="center" prop="loginLocation" :show-overflow-tooltip="true" />
-      <el-table-column label="浏览器" align="center" prop="browser" />
-      <el-table-column label="操作系统" align="center" prop="os" />
-      <el-table-column label="登录时间" align="center" prop="loginTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.loginTime) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleForceLogout(scope.row)"
-            v-hasPermi="['monitor:online:forceLogout']"
-          >强退</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination v-show="total>0" :total="total" :page.sync="pageNum" :limit.sync="pageSize" />
-  </div>
-</template>
-
-<script>
-import { list, forceLogout } from "@/api/monitor/online";
-
-export default {
-  name: "Online",
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 总条数
-      total: 0,
-      // 表格数据
-      list: [],
-      pageNum: 1,
-      pageSize: 10,
-      // 查询参数
-      queryParams: {
-        ipaddr: undefined,
-        userName: undefined
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询登录日志列表 */
-    getList() {
-      this.loading = true;
-      list(this.queryParams).then(response => {
-        this.list = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 强退按钮操作 */
-    handleForceLogout(row) {
-      this.$modal.confirm('是否确认强退名称为"' + row.userName + '"的用户?').then(function() {
-        return forceLogout(row.tokenId);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("强退成功");
-      }).catch(() => {});
-    }
-  }
-};
-</script>
-
diff --git a/ruoyi-ui/src/views/monitor/operlog/index.vue b/ruoyi-ui/src/views/monitor/operlog/index.vue
deleted file mode 100644
index 4a1828f..0000000
--- a/ruoyi-ui/src/views/monitor/operlog/index.vue
+++ /dev/null
@@ -1,323 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="操作地址" prop="operIp">
-        <el-input
-          v-model="queryParams.operIp"
-          placeholder="请输入操作地址"
-          clearable
-          style="width: 240px;"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="系统模块" prop="title">
-        <el-input
-          v-model="queryParams.title"
-          placeholder="请输入系统模块"
-          clearable
-          style="width: 240px;"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="操作人员" prop="operName">
-        <el-input
-          v-model="queryParams.operName"
-          placeholder="请输入操作人员"
-          clearable
-          style="width: 240px;"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="类型" prop="businessType">
-        <el-select
-          v-model="queryParams.businessType"
-          placeholder="操作类型"
-          clearable
-          style="width: 240px"
-        >
-          <el-option
-            v-for="dict in dict.type.sys_oper_type"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="状态" prop="status">
-        <el-select
-          v-model="queryParams.status"
-          placeholder="操作状态"
-          clearable
-          style="width: 240px"
-        >
-          <el-option
-            v-for="dict in dict.type.sys_common_status"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="操作时间">
-        <el-date-picker
-          v-model="dateRange"
-          style="width: 240px"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-          :default-time="['00:00:00', '23:59:59']"
-        ></el-date-picker>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['monitor:operlog:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          @click="handleClean"
-          v-hasPermi="['monitor:operlog:remove']"
-        >清空</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['monitor:operlog:export']"
-        >导出</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table ref="tables" v-loading="loading" :data="list" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange">
-      <el-table-column type="selection" width="50" align="center" />
-      <el-table-column label="日志编号" align="center" prop="operId" />
-      <el-table-column label="系统模块" align="center" prop="title" :show-overflow-tooltip="true" />
-      <el-table-column label="操作类型" align="center" prop="businessType">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_oper_type" :value="scope.row.businessType"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作人员" align="center" prop="operName" width="110" :show-overflow-tooltip="true" sortable="custom" :sort-orders="['descending', 'ascending']" />
-      <el-table-column label="操作地址" align="center" prop="operIp" width="130" :show-overflow-tooltip="true" />
-      <el-table-column label="操作地点" align="center" prop="operLocation" :show-overflow-tooltip="true" />
-      <el-table-column label="操作状态" align="center" prop="status">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_common_status" :value="scope.row.status"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作日期" align="center" prop="operTime" width="160" sortable="custom" :sort-orders="['descending', 'ascending']">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.operTime) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="消耗时间" align="center" prop="costTime" width="110" :show-overflow-tooltip="true" sortable="custom" :sort-orders="['descending', 'ascending']">
-        <template slot-scope="scope">
-          <span>{{ scope.row.costTime }}毫秒</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-view"
-            @click="handleView(scope.row,scope.index)"
-            v-hasPermi="['monitor:operlog:query']"
-          >详细</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 操作日志详细 -->
-    <el-dialog title="操作日志详细" :visible.sync="open" width="800px" append-to-body>
-      <el-form ref="form" :model="form" label-width="100px" size="mini">
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="操作模块:">{{ form.title }} / {{ typeFormat(form) }}</el-form-item>
-            <el-form-item
-              label="登录信息:"
-            >{{ form.operName }} / {{ form.operIp }} / {{ form.operLocation }}</el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="请求地址:">{{ form.operUrl }}</el-form-item>
-            <el-form-item label="请求方式:">{{ form.requestMethod }}</el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="操作方法:">{{ form.method }}</el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="请求参数:">{{ form.operParam }}</el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="返回参数:">{{ form.jsonResult }}</el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="操作状态:">
-              <div v-if="form.status === 0">正常</div>
-              <div v-else-if="form.status === 1">失败</div>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="消耗时间:">{{ form.costTime }}毫秒</el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="操作时间:">{{ parseTime(form.operTime) }}</el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="异常信息:" v-if="form.status === 1">{{ form.errorMsg }}</el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="open = false">关 闭</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { list, delOperlog, cleanOperlog } from "@/api/monitor/operlog";
-
-export default {
-  name: "Operlog",
-  dicts: ['sys_oper_type', 'sys_common_status'],
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 表格数据
-      list: [],
-      // 是否显示弹出层
-      open: false,
-      // 日期范围
-      dateRange: [],
-      // 默认排序
-      defaultSort: {prop: 'operTime', order: 'descending'},
-      // 表单参数
-      form: {},
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        operIp: undefined,
-        title: undefined,
-        operName: undefined,
-        businessType: undefined,
-        status: undefined
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询登录日志 */
-    getList() {
-      this.loading = true;
-      list(this.addDateRange(this.queryParams, this.dateRange)).then( response => {
-          this.list = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
-    },
-    // 操作日志类型字典翻译
-    typeFormat(row, column) {
-      return this.selectDictLabel(this.dict.type.sys_oper_type, row.businessType);
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.queryParams.pageNum = 1;
-      this.$refs.tables.sort(this.defaultSort.prop, this.defaultSort.order)
-    },
-    /** 多选框选中数据 */
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.operId)
-      this.multiple = !selection.length
-    },
-    /** 排序触发事件 */
-    handleSortChange(column, prop, order) {
-      this.queryParams.orderByColumn = column.prop;
-      this.queryParams.isAsc = column.order;
-      this.getList();
-    },
-    /** 详细按钮操作 */
-    handleView(row) {
-      this.open = true;
-      this.form = row;
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const operIds = row.operId || this.ids;
-      this.$modal.confirm('是否确认删除日志编号为"' + operIds + '"的数据项?').then(function() {
-        return delOperlog(operIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 清空按钮操作 */
-    handleClean() {
-      this.$modal.confirm('是否确认清空所有操作日志数据项?').then(function() {
-        return cleanOperlog();
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("清空成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('monitor/operlog/export', {
-        ...this.queryParams
-      }, `operlog_${new Date().getTime()}.xlsx`)
-    }
-  }
-};
-</script>
-
diff --git a/ruoyi-ui/src/views/monitor/server/index.vue b/ruoyi-ui/src/views/monitor/server/index.vue
deleted file mode 100644
index 15ffc9a..0000000
--- a/ruoyi-ui/src/views/monitor/server/index.vue
+++ /dev/null
@@ -1,207 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-row>
-      <el-col :span="12" class="card-box">
-        <el-card>
-          <div slot="header"><span><i class="el-icon-cpu"></i> CPU</span></div>
-          <div class="el-table el-table--enable-row-hover el-table--medium">
-            <table cellspacing="0" style="width: 100%;">
-              <thead>
-                <tr>
-                  <th class="el-table__cell is-leaf"><div class="cell">属性</div></th>
-                  <th class="el-table__cell is-leaf"><div class="cell">值</div></th>
-                </tr>
-              </thead>
-              <tbody>
-                <tr>
-                  <td class="el-table__cell is-leaf"><div class="cell">核心数</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.cpu">{{ server.cpu.cpuNum }}</div></td>
-                </tr>
-                <tr>
-                  <td class="el-table__cell is-leaf"><div class="cell">用户使用率</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.cpu">{{ server.cpu.used }}%</div></td>
-                </tr>
-                <tr>
-                  <td class="el-table__cell is-leaf"><div class="cell">系统使用率</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.cpu">{{ server.cpu.sys }}%</div></td>
-                </tr>
-                <tr>
-                  <td class="el-table__cell is-leaf"><div class="cell">当前空闲率</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.cpu">{{ server.cpu.free }}%</div></td>
-                </tr>
-              </tbody>
-            </table>
-          </div>
-        </el-card>
-      </el-col>
-
-      <el-col :span="12" class="card-box">
-        <el-card>
-          <div slot="header"><span><i class="el-icon-tickets"></i> 内存</span></div>
-          <div class="el-table el-table--enable-row-hover el-table--medium">
-            <table cellspacing="0" style="width: 100%;">
-              <thead>
-                <tr>
-                  <th class="el-table__cell is-leaf"><div class="cell">属性</div></th>
-                  <th class="el-table__cell is-leaf"><div class="cell">内存</div></th>
-                  <th class="el-table__cell is-leaf"><div class="cell">JVM</div></th>
-                </tr>
-              </thead>
-              <tbody>
-                <tr>
-                  <td class="el-table__cell is-leaf"><div class="cell">总内存</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.mem">{{ server.mem.total }}G</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.jvm">{{ server.jvm.total }}M</div></td>
-                </tr>
-                <tr>
-                  <td class="el-table__cell is-leaf"><div class="cell">已用内存</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.mem">{{ server.mem.used}}G</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.jvm">{{ server.jvm.used}}M</div></td>
-                </tr>
-                <tr>
-                  <td class="el-table__cell is-leaf"><div class="cell">剩余内存</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.mem">{{ server.mem.free }}G</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.jvm">{{ server.jvm.free }}M</div></td>
-                </tr>
-                <tr>
-                  <td class="el-table__cell is-leaf"><div class="cell">使用率</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.mem" :class="{'text-danger': server.mem.usage > 80}">{{ server.mem.usage }}%</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.jvm" :class="{'text-danger': server.jvm.usage > 80}">{{ server.jvm.usage }}%</div></td>
-                </tr>
-              </tbody>
-            </table>
-          </div>
-        </el-card>
-      </el-col>
-
-      <el-col :span="24" class="card-box">
-        <el-card>
-          <div slot="header">
-            <span><i class="el-icon-monitor"></i> 服务器信息</span>
-          </div>
-          <div class="el-table el-table--enable-row-hover el-table--medium">
-            <table cellspacing="0" style="width: 100%;">
-              <tbody>
-                <tr>
-                  <td class="el-table__cell is-leaf"><div class="cell">服务器名称</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.sys">{{ server.sys.computerName }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">操作系统</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.sys">{{ server.sys.osName }}</div></td>
-                </tr>
-                <tr>
-                  <td class="el-table__cell is-leaf"><div class="cell">服务器IP</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.sys">{{ server.sys.computerIp }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">系统架构</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.sys">{{ server.sys.osArch }}</div></td>
-                </tr>
-              </tbody>
-            </table>
-          </div>
-        </el-card>
-      </el-col>
-
-      <el-col :span="24" class="card-box">
-        <el-card>
-          <div slot="header">
-            <span><i class="el-icon-coffee-cup"></i> Java虚拟机信息</span>
-          </div>
-          <div class="el-table el-table--enable-row-hover el-table--medium">
-            <table cellspacing="0" style="width: 100%;table-layout:fixed;">
-              <tbody>
-                <tr>
-                  <td class="el-table__cell is-leaf"><div class="cell">Java名称</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.jvm">{{ server.jvm.name }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">Java版本</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.jvm">{{ server.jvm.version }}</div></td>
-                </tr>
-                <tr>
-                  <td class="el-table__cell is-leaf"><div class="cell">启动时间</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.jvm">{{ server.jvm.startTime }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">运行时长</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" v-if="server.jvm">{{ server.jvm.runTime }}</div></td>
-                </tr>
-                <tr>
-                  <td colspan="1" class="el-table__cell is-leaf"><div class="cell">安装路径</div></td>
-                  <td colspan="3" class="el-table__cell is-leaf"><div class="cell" v-if="server.jvm">{{ server.jvm.home }}</div></td>
-                </tr>
-                <tr>
-                  <td colspan="1" class="el-table__cell is-leaf"><div class="cell">项目路径</div></td>
-                  <td colspan="3" class="el-table__cell is-leaf"><div class="cell" v-if="server.sys">{{ server.sys.userDir }}</div></td>
-                </tr>
-                <tr>
-                  <td colspan="1" class="el-table__cell is-leaf"><div class="cell">运行参数</div></td>
-                  <td colspan="3" class="el-table__cell is-leaf"><div class="cell" v-if="server.jvm">{{ server.jvm.inputArgs }}</div></td>
-                </tr>
-              </tbody>
-            </table>
-          </div>
-        </el-card>
-      </el-col>
-
-      <el-col :span="24" class="card-box">
-        <el-card>
-          <div slot="header">
-            <span><i class="el-icon-receiving"></i> 磁盘状态</span>
-          </div>
-          <div class="el-table el-table--enable-row-hover el-table--medium">
-            <table cellspacing="0" style="width: 100%;">
-              <thead>
-                <tr>
-                  <th class="el-table__cell el-table__cell is-leaf"><div class="cell">盘符路径</div></th>
-                  <th class="el-table__cell is-leaf"><div class="cell">文件系统</div></th>
-                  <th class="el-table__cell is-leaf"><div class="cell">盘符类型</div></th>
-                  <th class="el-table__cell is-leaf"><div class="cell">总大小</div></th>
-                  <th class="el-table__cell is-leaf"><div class="cell">可用大小</div></th>
-                  <th class="el-table__cell is-leaf"><div class="cell">已用大小</div></th>
-                  <th class="el-table__cell is-leaf"><div class="cell">已用百分比</div></th>
-                </tr>
-              </thead>
-              <tbody v-if="server.sysFiles">
-                <tr v-for="(sysFile, index) in server.sysFiles" :key="index">
-                  <td class="el-table__cell is-leaf"><div class="cell">{{ sysFile.dirName }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">{{ sysFile.sysTypeName }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">{{ sysFile.typeName }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">{{ sysFile.total }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">{{ sysFile.free }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell">{{ sysFile.used }}</div></td>
-                  <td class="el-table__cell is-leaf"><div class="cell" :class="{'text-danger': sysFile.usage > 80}">{{ sysFile.usage }}%</div></td>
-                </tr>
-              </tbody>
-            </table>
-          </div>
-        </el-card>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { getServer } from "@/api/monitor/server";
-
-export default {
-  name: "Server",
-  data() {
-    return {
-      // 服务器信息
-      server: []
-    };
-  },
-  created() {
-    this.getList();
-    this.openLoading();
-  },
-  methods: {
-    /** 查询服务器信息 */
-    getList() {
-      getServer().then(response => {
-        this.server = response.data;
-        this.$modal.closeLoading();
-      });
-    },
-    // 打开加载层
-    openLoading() {
-      this.$modal.loading("正在加载服务监控数据,请稍候!");
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/redirect.vue b/ruoyi-ui/src/views/redirect.vue
deleted file mode 100644
index db4c1d6..0000000
--- a/ruoyi-ui/src/views/redirect.vue
+++ /dev/null
@@ -1,12 +0,0 @@
-<script>
-export default {
-  created() {
-    const { params, query } = this.$route
-    const { path } = params
-    this.$router.replace({ path: '/' + path, query })
-  },
-  render: function(h) {
-    return h() // avoid warning message
-  }
-}
-</script>
diff --git a/ruoyi-ui/src/views/register.vue b/ruoyi-ui/src/views/register.vue
deleted file mode 100644
index 7bf6f43..0000000
--- a/ruoyi-ui/src/views/register.vue
+++ /dev/null
@@ -1,210 +0,0 @@
-<template>
-  <div class="register">
-    <el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form">
-      <h3 class="title">若依后台管理系统</h3>
-      <el-form-item prop="username">
-        <el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="账号">
-          <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
-        </el-input>
-      </el-form-item>
-      <el-form-item prop="password">
-        <el-input
-          v-model="registerForm.password"
-          type="password"
-          auto-complete="off"
-          placeholder="密码"
-          @keyup.enter.native="handleRegister"
-        >
-          <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
-        </el-input>
-      </el-form-item>
-      <el-form-item prop="confirmPassword">
-        <el-input
-          v-model="registerForm.confirmPassword"
-          type="password"
-          auto-complete="off"
-          placeholder="确认密码"
-          @keyup.enter.native="handleRegister"
-        >
-          <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
-        </el-input>
-      </el-form-item>
-      <el-form-item prop="code" v-if="captchaEnabled">
-        <el-input
-          v-model="registerForm.code"
-          auto-complete="off"
-          placeholder="验证码"
-          style="width: 63%"
-          @keyup.enter.native="handleRegister"
-        >
-          <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
-        </el-input>
-        <div class="register-code">
-          <img :src="codeUrl" @click="getCode" class="register-code-img"/>
-        </div>
-      </el-form-item>
-      <el-form-item style="width:100%;">
-        <el-button
-          :loading="loading"
-          size="medium"
-          type="primary"
-          style="width:100%;"
-          @click.native.prevent="handleRegister"
-        >
-          <span v-if="!loading">注 册</span>
-          <span v-else>注 册 中...</span>
-        </el-button>
-        <div style="float: right;">
-          <router-link class="link-type" :to="'/login'">使用已有账户登录</router-link>
-        </div>
-      </el-form-item>
-    </el-form>
-    <!--  底部  -->
-    <div class="el-register-footer">
-      <span>Copyright © 2018-2024 ruoyi.vip All Rights Reserved.</span>
-    </div>
-  </div>
-</template>
-
-<script>
-import { getCodeImg, register } from "@/api/login";
-
-export default {
-  name: "Register",
-  data() {
-    const equalToPassword = (rule, value, callback) => {
-      if (this.registerForm.password !== value) {
-        callback(new Error("两次输入的密码不一致"));
-      } else {
-        callback();
-      }
-    };
-    return {
-      codeUrl: "",
-      registerForm: {
-        username: "",
-        password: "",
-        confirmPassword: "",
-        code: "",
-        uuid: ""
-      },
-      registerRules: {
-        username: [
-          { required: true, trigger: "blur", message: "请输入您的账号" },
-          { min: 2, max: 20, message: '用户账号长度必须介于 2 和 20 之间', trigger: 'blur' }
-        ],
-        password: [
-          { required: true, trigger: "blur", message: "请输入您的密码" },
-          { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" },
-          { pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" }
-        ],
-        confirmPassword: [
-          { required: true, trigger: "blur", message: "请再次输入您的密码" },
-          { required: true, validator: equalToPassword, trigger: "blur" }
-        ],
-        code: [{ required: true, trigger: "change", message: "请输入验证码" }]
-      },
-      loading: false,
-      captchaEnabled: true
-    };
-  },
-  created() {
-    this.getCode();
-  },
-  methods: {
-    getCode() {
-      getCodeImg().then(res => {
-        this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled;
-        if (this.captchaEnabled) {
-          this.codeUrl = "data:image/gif;base64," + res.img;
-          this.registerForm.uuid = res.uuid;
-        }
-      });
-    },
-    handleRegister() {
-      this.$refs.registerForm.validate(valid => {
-        if (valid) {
-          this.loading = true;
-          register(this.registerForm).then(res => {
-            const username = this.registerForm.username;
-            this.$alert("<font color='red'>恭喜你,您的账号 " + username + " 注册成功!</font>", '系统提示', {
-              dangerouslyUseHTMLString: true,
-              type: 'success'
-            }).then(() => {
-              this.$router.push("/login");
-            }).catch(() => {});
-          }).catch(() => {
-            this.loading = false;
-            if (this.captchaEnabled) {
-              this.getCode();
-            }
-          })
-        }
-      });
-    }
-  }
-};
-</script>
-
-<style rel="stylesheet/scss" lang="scss">
-.register {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  height: 100%;
-  background-image: url("../assets/images/login-background.jpg");
-  background-size: cover;
-}
-.title {
-  margin: 0px auto 30px auto;
-  text-align: center;
-  color: #707070;
-}
-
-.register-form {
-  border-radius: 6px;
-  background: #ffffff;
-  width: 400px;
-  padding: 25px 25px 5px 25px;
-  .el-input {
-    height: 38px;
-    input {
-      height: 38px;
-    }
-  }
-  .input-icon {
-    height: 39px;
-    width: 14px;
-    margin-left: 2px;
-  }
-}
-.register-tip {
-  font-size: 13px;
-  text-align: center;
-  color: #bfbfbf;
-}
-.register-code {
-  width: 33%;
-  height: 38px;
-  float: right;
-  img {
-    cursor: pointer;
-    vertical-align: middle;
-  }
-}
-.el-register-footer {
-  height: 40px;
-  line-height: 40px;
-  position: fixed;
-  bottom: 0;
-  width: 100%;
-  text-align: center;
-  color: #fff;
-  font-family: Arial;
-  font-size: 12px;
-  letter-spacing: 1px;
-}
-.register-code-img {
-  height: 38px;
-}
-</style>
diff --git a/ruoyi-ui/src/views/system/config/index.vue b/ruoyi-ui/src/views/system/config/index.vue
deleted file mode 100644
index 3ab81fc..0000000
--- a/ruoyi-ui/src/views/system/config/index.vue
+++ /dev/null
@@ -1,343 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="参数名称" prop="configName">
-        <el-input
-          v-model="queryParams.configName"
-          placeholder="请输入参数名称"
-          clearable
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="参数键名" prop="configKey">
-        <el-input
-          v-model="queryParams.configKey"
-          placeholder="请输入参数键名"
-          clearable
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="系统内置" prop="configType">
-        <el-select v-model="queryParams.configType" placeholder="系统内置" clearable>
-          <el-option
-            v-for="dict in dict.type.sys_yes_no"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="创建时间">
-        <el-date-picker
-          v-model="dateRange"
-          style="width: 240px"
-          value-format="yyyy-MM-dd"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        ></el-date-picker>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['system:config:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['system:config:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['system:config:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['system:config:export']"
-        >导出</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-refresh"
-          size="mini"
-          @click="handleRefreshCache"
-          v-hasPermi="['system:config:remove']"
-        >刷新缓存</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="configList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="参数主键" align="center" prop="configId" />
-      <el-table-column label="参数名称" align="center" prop="configName" :show-overflow-tooltip="true" />
-      <el-table-column label="参数键名" align="center" prop="configKey" :show-overflow-tooltip="true" />
-      <el-table-column label="参数键值" align="center" prop="configValue" :show-overflow-tooltip="true" />
-      <el-table-column label="系统内置" align="center" prop="configType">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.configType"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['system:config:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:config:remove']"
-          >删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改参数配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="参数名称" prop="configName">
-          <el-input v-model="form.configName" placeholder="请输入参数名称" />
-        </el-form-item>
-        <el-form-item label="参数键名" prop="configKey">
-          <el-input v-model="form.configKey" placeholder="请输入参数键名" />
-        </el-form-item>
-        <el-form-item label="参数键值" prop="configValue">
-          <el-input v-model="form.configValue" placeholder="请输入参数键值" />
-        </el-form-item>
-        <el-form-item label="系统内置" prop="configType">
-          <el-radio-group v-model="form.configType">
-            <el-radio
-              v-for="dict in dict.type.sys_yes_no"
-              :key="dict.value"
-              :label="dict.value"
-            >{{dict.label}}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listConfig, getConfig, delConfig, addConfig, updateConfig, refreshCache } from "@/api/system/config";
-
-export default {
-  name: "Config",
-  dicts: ['sys_yes_no'],
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 参数表格数据
-      configList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 日期范围
-      dateRange: [],
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        configName: undefined,
-        configKey: undefined,
-        configType: undefined
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        configName: [
-          { required: true, message: "参数名称不能为空", trigger: "blur" }
-        ],
-        configKey: [
-          { required: true, message: "参数键名不能为空", trigger: "blur" }
-        ],
-        configValue: [
-          { required: true, message: "参数键值不能为空", trigger: "blur" }
-        ]
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询参数列表 */
-    getList() {
-      this.loading = true;
-      listConfig(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-          this.configList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        configId: undefined,
-        configName: undefined,
-        configKey: undefined,
-        configValue: undefined,
-        configType: "Y",
-        remark: undefined
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加参数";
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.configId)
-      this.single = selection.length!=1
-      this.multiple = !selection.length
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const configId = row.configId || this.ids
-      getConfig(configId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改参数";
-      });
-    },
-    /** 提交按钮 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.configId != undefined) {
-            updateConfig(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addConfig(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const configIds = row.configId || this.ids;
-      this.$modal.confirm('是否确认删除参数编号为"' + configIds + '"的数据项?').then(function() {
-          return delConfig(configIds);
-        }).then(() => {
-          this.getList();
-          this.$modal.msgSuccess("删除成功");
-        }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('system/config/export', {
-        ...this.queryParams
-      }, `config_${new Date().getTime()}.xlsx`)
-    },
-    /** 刷新缓存按钮操作 */
-    handleRefreshCache() {
-      refreshCache().then(() => {
-        this.$modal.msgSuccess("刷新成功");
-      });
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/system/dept/index.vue b/ruoyi-ui/src/views/system/dept/index.vue
deleted file mode 100644
index e502b4e..0000000
--- a/ruoyi-ui/src/views/system/dept/index.vue
+++ /dev/null
@@ -1,340 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
-      <el-form-item label="部门名称" prop="deptName">
-        <el-input
-          v-model="queryParams.deptName"
-          placeholder="请输入部门名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="状态" prop="status">
-        <el-select v-model="queryParams.status" placeholder="部门状态" clearable>
-          <el-option
-            v-for="dict in dict.type.sys_normal_disable"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['system:dept:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="info"
-          plain
-          icon="el-icon-sort"
-          size="mini"
-          @click="toggleExpandAll"
-        >展开/折叠</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table
-      v-if="refreshTable"
-      v-loading="loading"
-      :data="deptList"
-      row-key="deptId"
-      :default-expand-all="isExpandAll"
-      :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
-    >
-      <el-table-column prop="deptName" label="部门名称" width="260"></el-table-column>
-      <el-table-column prop="orderNum" label="排序" width="200"></el-table-column>
-      <el-table-column prop="status" label="状态" width="100">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime" width="200">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['system:dept:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-plus"
-            @click="handleAdd(scope.row)"
-            v-hasPermi="['system:dept:add']"
-          >新增</el-button>
-          <el-button
-            v-if="scope.row.parentId != 0"
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:dept:remove']"
-          >删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <!-- 添加或修改部门对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-row>
-          <el-col :span="24" v-if="form.parentId !== 0">
-            <el-form-item label="上级部门" prop="parentId">
-              <treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择上级部门" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="部门名称" prop="deptName">
-              <el-input v-model="form.deptName" placeholder="请输入部门名称" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="显示排序" prop="orderNum">
-              <el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="负责人" prop="leader">
-              <el-input v-model="form.leader" placeholder="请输入负责人" maxlength="20" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="联系电话" prop="phone">
-              <el-input v-model="form.phone" placeholder="请输入联系电话" maxlength="11" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="邮箱" prop="email">
-              <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="部门状态">
-              <el-radio-group v-model="form.status">
-                <el-radio
-                  v-for="dict in dict.type.sys_normal_disable"
-                  :key="dict.value"
-                  :label="dict.value"
-                >{{dict.label}}</el-radio>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild } from "@/api/system/dept";
-import Treeselect from "@riophae/vue-treeselect";
-import "@riophae/vue-treeselect/dist/vue-treeselect.css";
-
-export default {
-  name: "Dept",
-  dicts: ['sys_normal_disable'],
-  components: { Treeselect },
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 表格树数据
-      deptList: [],
-      // 部门树选项
-      deptOptions: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 是否展开,默认全部展开
-      isExpandAll: true,
-      // 重新渲染表格状态
-      refreshTable: true,
-      // 查询参数
-      queryParams: {
-        deptName: undefined,
-        status: undefined
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        parentId: [
-          { required: true, message: "上级部门不能为空", trigger: "blur" }
-        ],
-        deptName: [
-          { required: true, message: "部门名称不能为空", trigger: "blur" }
-        ],
-        orderNum: [
-          { required: true, message: "显示排序不能为空", trigger: "blur" }
-        ],
-        email: [
-          {
-            type: "email",
-            message: "请输入正确的邮箱地址",
-            trigger: ["blur", "change"]
-          }
-        ],
-        phone: [
-          {
-            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
-            message: "请输入正确的手机号码",
-            trigger: "blur"
-          }
-        ]
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询部门列表 */
-    getList() {
-      this.loading = true;
-      listDept(this.queryParams).then(response => {
-        this.deptList = this.handleTree(response.data, "deptId");
-        this.loading = false;
-      });
-    },
-    /** 转换部门数据结构 */
-    normalizer(node) {
-      if (node.children && !node.children.length) {
-        delete node.children;
-      }
-      return {
-        id: node.deptId,
-        label: node.deptName,
-        children: node.children
-      };
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        deptId: undefined,
-        parentId: undefined,
-        deptName: undefined,
-        orderNum: undefined,
-        leader: undefined,
-        phone: undefined,
-        email: undefined,
-        status: "0"
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 新增按钮操作 */
-    handleAdd(row) {
-      this.reset();
-      if (row != undefined) {
-        this.form.parentId = row.deptId;
-      }
-      this.open = true;
-      this.title = "添加部门";
-      listDept().then(response => {
-        this.deptOptions = this.handleTree(response.data, "deptId");
-      });
-    },
-    /** 展开/折叠操作 */
-    toggleExpandAll() {
-      this.refreshTable = false;
-      this.isExpandAll = !this.isExpandAll;
-      this.$nextTick(() => {
-        this.refreshTable = true;
-      });
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      getDept(row.deptId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改部门";
-        listDeptExcludeChild(row.deptId).then(response => {
-          this.deptOptions = this.handleTree(response.data, "deptId");
-          if (this.deptOptions.length == 0) {
-            const noResultsOptions = { deptId: this.form.parentId, deptName: this.form.parentName, children: [] };
-            this.deptOptions.push(noResultsOptions);
-          }
-        });
-      });
-    },
-    /** 提交按钮 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.deptId != undefined) {
-            updateDept(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addDept(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      this.$modal.confirm('是否确认删除名称为"' + row.deptName + '"的数据项?').then(function() {
-        return delDept(row.deptId);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/system/dict/data.vue b/ruoyi-ui/src/views/system/dict/data.vue
deleted file mode 100644
index 3befe4a..0000000
--- a/ruoyi-ui/src/views/system/dict/data.vue
+++ /dev/null
@@ -1,402 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="字典名称" prop="dictType">
-        <el-select v-model="queryParams.dictType">
-          <el-option
-            v-for="item in typeOptions"
-            :key="item.dictId"
-            :label="item.dictName"
-            :value="item.dictType"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="字典标签" prop="dictLabel">
-        <el-input
-          v-model="queryParams.dictLabel"
-          placeholder="请输入字典标签"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="状态" prop="status">
-        <el-select v-model="queryParams.status" placeholder="数据状态" clearable>
-          <el-option
-            v-for="dict in dict.type.sys_normal_disable"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['system:dict:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['system:dict:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['system:dict:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['system:dict:export']"
-        >导出</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-close"
-          size="mini"
-          @click="handleClose"
-        >关闭</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="字典编码" align="center" prop="dictCode" />
-      <el-table-column label="字典标签" align="center" prop="dictLabel">
-        <template slot-scope="scope">
-          <span v-if="(scope.row.listClass == '' || scope.row.listClass == 'default') && (scope.row.cssClass == '' || scope.row.cssClass == null)">{{ scope.row.dictLabel }}</span>
-          <el-tag v-else :type="scope.row.listClass == 'primary' ? '' : scope.row.listClass" :class="scope.row.cssClass">{{ scope.row.dictLabel }}</el-tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="字典键值" align="center" prop="dictValue" />
-      <el-table-column label="字典排序" align="center" prop="dictSort" />
-      <el-table-column label="状态" align="center" prop="status">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['system:dict:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:dict:remove']"
-          >删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改参数配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="字典类型">
-          <el-input v-model="form.dictType" :disabled="true" />
-        </el-form-item>
-        <el-form-item label="数据标签" prop="dictLabel">
-          <el-input v-model="form.dictLabel" placeholder="请输入数据标签" />
-        </el-form-item>
-        <el-form-item label="数据键值" prop="dictValue">
-          <el-input v-model="form.dictValue" placeholder="请输入数据键值" />
-        </el-form-item>
-        <el-form-item label="样式属性" prop="cssClass">
-          <el-input v-model="form.cssClass" placeholder="请输入样式属性" />
-        </el-form-item>
-        <el-form-item label="显示排序" prop="dictSort">
-          <el-input-number v-model="form.dictSort" controls-position="right" :min="0" />
-        </el-form-item>
-        <el-form-item label="回显样式" prop="listClass">
-          <el-select v-model="form.listClass">
-            <el-option
-              v-for="item in listClassOptions"
-              :key="item.value"
-              :label="item.label + '(' + item.value + ')'"
-              :value="item.value"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="状态" prop="status">
-          <el-radio-group v-model="form.status">
-            <el-radio
-              v-for="dict in dict.type.sys_normal_disable"
-              :key="dict.value"
-              :label="dict.value"
-            >{{dict.label}}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listData, getData, delData, addData, updateData } from "@/api/system/dict/data";
-import { optionselect as getDictOptionselect, getType } from "@/api/system/dict/type";
-
-export default {
-  name: "Data",
-  dicts: ['sys_normal_disable'],
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 字典表格数据
-      dataList: [],
-      // 默认字典类型
-      defaultDictType: "",
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 数据标签回显样式
-      listClassOptions: [
-        {
-          value: "default",
-          label: "默认"
-        },
-        {
-          value: "primary",
-          label: "主要"
-        },
-        {
-          value: "success",
-          label: "成功"
-        },
-        {
-          value: "info",
-          label: "信息"
-        },
-        {
-          value: "warning",
-          label: "警告"
-        },
-        {
-          value: "danger",
-          label: "危险"
-        }
-      ],
-      // 类型数据字典
-      typeOptions: [],
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        dictType: undefined,
-        dictLabel: undefined,
-        status: undefined
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        dictLabel: [
-          { required: true, message: "数据标签不能为空", trigger: "blur" }
-        ],
-        dictValue: [
-          { required: true, message: "数据键值不能为空", trigger: "blur" }
-        ],
-        dictSort: [
-          { required: true, message: "数据顺序不能为空", trigger: "blur" }
-        ]
-      }
-    };
-  },
-  created() {
-    const dictId = this.$route.params && this.$route.params.dictId;
-    this.getType(dictId);
-    this.getTypeList();
-  },
-  methods: {
-    /** 查询字典类型详细 */
-    getType(dictId) {
-      getType(dictId).then(response => {
-        this.queryParams.dictType = response.data.dictType;
-        this.defaultDictType = response.data.dictType;
-        this.getList();
-      });
-    },
-    /** 查询字典类型列表 */
-    getTypeList() {
-      getDictOptionselect().then(response => {
-        this.typeOptions = response.data;
-      });
-    },
-    /** 查询字典数据列表 */
-    getList() {
-      this.loading = true;
-      listData(this.queryParams).then(response => {
-        this.dataList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        dictCode: undefined,
-        dictLabel: undefined,
-        dictValue: undefined,
-        cssClass: undefined,
-        listClass: 'default',
-        dictSort: 0,
-        status: "0",
-        remark: undefined
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 返回按钮操作 */
-    handleClose() {
-      const obj = { path: "/system/dict" };
-      this.$tab.closeOpenPage(obj);
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.queryParams.dictType = this.defaultDictType;
-      this.handleQuery();
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加字典数据";
-      this.form.dictType = this.queryParams.dictType;
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.dictCode)
-      this.single = selection.length!=1
-      this.multiple = !selection.length
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const dictCode = row.dictCode || this.ids
-      getData(dictCode).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改字典数据";
-      });
-    },
-    /** 提交按钮 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.dictCode != undefined) {
-            updateData(this.form).then(response => {
-              this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addData(this.form).then(response => {
-              this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const dictCodes = row.dictCode || this.ids;
-      this.$modal.confirm('是否确认删除字典编码为"' + dictCodes + '"的数据项?').then(function() {
-        return delData(dictCodes);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-        this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('system/dict/data/export', {
-        ...this.queryParams
-      }, `data_${new Date().getTime()}.xlsx`)
-    }
-  }
-};
-</script>
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/system/dict/index.vue b/ruoyi-ui/src/views/system/dict/index.vue
deleted file mode 100644
index 6ca5457..0000000
--- a/ruoyi-ui/src/views/system/dict/index.vue
+++ /dev/null
@@ -1,347 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="字典名称" prop="dictName">
-        <el-input
-          v-model="queryParams.dictName"
-          placeholder="请输入字典名称"
-          clearable
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="字典类型" prop="dictType">
-        <el-input
-          v-model="queryParams.dictType"
-          placeholder="请输入字典类型"
-          clearable
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="状态" prop="status">
-        <el-select
-          v-model="queryParams.status"
-          placeholder="字典状态"
-          clearable
-          style="width: 240px"
-        >
-          <el-option
-            v-for="dict in dict.type.sys_normal_disable"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="创建时间">
-        <el-date-picker
-          v-model="dateRange"
-          style="width: 240px"
-          value-format="yyyy-MM-dd"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        ></el-date-picker>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['system:dict:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['system:dict:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['system:dict:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['system:dict:export']"
-        >导出</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-refresh"
-          size="mini"
-          @click="handleRefreshCache"
-          v-hasPermi="['system:dict:remove']"
-        >刷新缓存</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="字典编号" align="center" prop="dictId" />
-      <el-table-column label="字典名称" align="center" prop="dictName" :show-overflow-tooltip="true" />
-      <el-table-column label="字典类型" align="center" :show-overflow-tooltip="true">
-        <template slot-scope="scope">
-          <router-link :to="'/system/dict-data/index/' + scope.row.dictId" class="link-type">
-            <span>{{ scope.row.dictType }}</span>
-          </router-link>
-        </template>
-      </el-table-column>
-      <el-table-column label="状态" align="center" prop="status">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['system:dict:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:dict:remove']"
-          >删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改参数配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="字典名称" prop="dictName">
-          <el-input v-model="form.dictName" placeholder="请输入字典名称" />
-        </el-form-item>
-        <el-form-item label="字典类型" prop="dictType">
-          <el-input v-model="form.dictType" placeholder="请输入字典类型" />
-        </el-form-item>
-        <el-form-item label="状态" prop="status">
-          <el-radio-group v-model="form.status">
-            <el-radio
-              v-for="dict in dict.type.sys_normal_disable"
-              :key="dict.value"
-              :label="dict.value"
-            >{{dict.label}}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type";
-
-export default {
-  name: "Dict",
-  dicts: ['sys_normal_disable'],
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 字典表格数据
-      typeList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 日期范围
-      dateRange: [],
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        dictName: undefined,
-        dictType: undefined,
-        status: undefined
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        dictName: [
-          { required: true, message: "字典名称不能为空", trigger: "blur" }
-        ],
-        dictType: [
-          { required: true, message: "字典类型不能为空", trigger: "blur" }
-        ]
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询字典类型列表 */
-    getList() {
-      this.loading = true;
-      listType(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-          this.typeList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        dictId: undefined,
-        dictName: undefined,
-        dictType: undefined,
-        status: "0",
-        remark: undefined
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加字典类型";
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.dictId)
-      this.single = selection.length!=1
-      this.multiple = !selection.length
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const dictId = row.dictId || this.ids
-      getType(dictId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改字典类型";
-      });
-    },
-    /** 提交按钮 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.dictId != undefined) {
-            updateType(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addType(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const dictIds = row.dictId || this.ids;
-      this.$modal.confirm('是否确认删除字典编号为"' + dictIds + '"的数据项?').then(function() {
-        return delType(dictIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('system/dict/type/export', {
-        ...this.queryParams
-      }, `type_${new Date().getTime()}.xlsx`)
-    },
-    /** 刷新缓存按钮操作 */
-    handleRefreshCache() {
-      refreshCache().then(() => {
-        this.$modal.msgSuccess("刷新成功");
-        this.$store.dispatch('dict/cleanDict');
-      });
-    }
-  }
-};
-</script>
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/system/menu/index.vue b/ruoyi-ui/src/views/system/menu/index.vue
deleted file mode 100644
index c703fa0..0000000
--- a/ruoyi-ui/src/views/system/menu/index.vue
+++ /dev/null
@@ -1,452 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
-      <el-form-item label="菜单名称" prop="menuName">
-        <el-input
-          v-model="queryParams.menuName"
-          placeholder="请输入菜单名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="状态" prop="status">
-        <el-select v-model="queryParams.status" placeholder="菜单状态" clearable>
-          <el-option
-            v-for="dict in dict.type.sys_normal_disable"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['system:menu:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="info"
-          plain
-          icon="el-icon-sort"
-          size="mini"
-          @click="toggleExpandAll"
-        >展开/折叠</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table
-      v-if="refreshTable"
-      v-loading="loading"
-      :data="menuList"
-      row-key="menuId"
-      :default-expand-all="isExpandAll"
-      :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
-    >
-      <el-table-column prop="menuName" label="菜单名称" :show-overflow-tooltip="true" width="160"></el-table-column>
-      <el-table-column prop="icon" label="图标" align="center" width="100">
-        <template slot-scope="scope">
-          <svg-icon :icon-class="scope.row.icon" />
-        </template>
-      </el-table-column>
-      <el-table-column prop="orderNum" label="排序" width="60"></el-table-column>
-      <el-table-column prop="perms" label="权限标识" :show-overflow-tooltip="true"></el-table-column>
-      <el-table-column prop="component" label="组件路径" :show-overflow-tooltip="true"></el-table-column>
-      <el-table-column prop="status" label="状态" width="80">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['system:menu:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-plus"
-            @click="handleAdd(scope.row)"
-            v-hasPermi="['system:menu:add']"
-          >新增</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:menu:remove']"
-          >删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <!-- 添加或修改菜单对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="680px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="上级菜单" prop="parentId">
-              <treeselect
-                v-model="form.parentId"
-                :options="menuOptions"
-                :normalizer="normalizer"
-                :show-count="true"
-                placeholder="选择上级菜单"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="菜单类型" prop="menuType">
-              <el-radio-group v-model="form.menuType">
-                <el-radio label="M">目录</el-radio>
-                <el-radio label="C">菜单</el-radio>
-                <el-radio label="F">按钮</el-radio>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24" v-if="form.menuType != 'F'">
-            <el-form-item label="菜单图标" prop="icon">
-              <el-popover
-                placement="bottom-start"
-                width="460"
-                trigger="click"
-                @show="$refs['iconSelect'].reset()"
-              >
-                <IconSelect ref="iconSelect" @selected="selected" :active-icon="form.icon" />
-                <el-input slot="reference" v-model="form.icon" placeholder="点击选择图标" readonly>
-                  <svg-icon
-                    v-if="form.icon"
-                    slot="prefix"
-                    :icon-class="form.icon"
-                    style="width: 25px;"
-                  />
-                  <i v-else slot="prefix" class="el-icon-search el-input__icon" />
-                </el-input>
-              </el-popover>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="菜单名称" prop="menuName">
-              <el-input v-model="form.menuName" placeholder="请输入菜单名称" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="显示排序" prop="orderNum">
-              <el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12" v-if="form.menuType != 'F'">
-            <el-form-item prop="isFrame">
-              <span slot="label">
-                <el-tooltip content="选择是外链则路由地址需要以`http(s)://`开头" placement="top">
-                <i class="el-icon-question"></i>
-                </el-tooltip>
-                是否外链
-              </span>
-              <el-radio-group v-model="form.isFrame">
-                <el-radio label="0">是</el-radio>
-                <el-radio label="1">否</el-radio>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12" v-if="form.menuType != 'F'">
-            <el-form-item prop="path">
-              <span slot="label">
-                <el-tooltip content="访问的路由地址,如:`user`,如外网地址需内链访问则以`http(s)://`开头" placement="top">
-                <i class="el-icon-question"></i>
-                </el-tooltip>
-                路由地址
-              </span>
-              <el-input v-model="form.path" placeholder="请输入路由地址" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12" v-if="form.menuType == 'C'">
-            <el-form-item prop="component">
-              <span slot="label">
-                <el-tooltip content="访问的组件路径,如:`system/user/index`,默认在`views`目录下" placement="top">
-                <i class="el-icon-question"></i>
-                </el-tooltip>
-                组件路径
-              </span>
-              <el-input v-model="form.component" placeholder="请输入组件路径" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12" v-if="form.menuType != 'M'">
-            <el-form-item prop="perms">
-              <el-input v-model="form.perms" placeholder="请输入权限标识" maxlength="100" />
-              <span slot="label">
-                <el-tooltip content="控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasPermi('system:user:list')`)" placement="top">
-                <i class="el-icon-question"></i>
-                </el-tooltip>
-                权限字符
-              </span>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12" v-if="form.menuType == 'C'">
-            <el-form-item prop="query">
-              <el-input v-model="form.query" placeholder="请输入路由参数" maxlength="255" />
-              <span slot="label">
-                <el-tooltip content='访问路由的默认传递参数,如:`{"id": 1, "name": "ry"}`' placement="top">
-                <i class="el-icon-question"></i>
-                </el-tooltip>
-                路由参数
-              </span>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12" v-if="form.menuType == 'C'">
-            <el-form-item prop="isCache">
-              <span slot="label">
-                <el-tooltip content="选择是则会被`keep-alive`缓存,需要匹配组件的`name`和地址保持一致" placement="top">
-                <i class="el-icon-question"></i>
-                </el-tooltip>
-                是否缓存
-              </span>
-              <el-radio-group v-model="form.isCache">
-                <el-radio label="0">缓存</el-radio>
-                <el-radio label="1">不缓存</el-radio>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12" v-if="form.menuType != 'F'">
-            <el-form-item prop="visible">
-              <span slot="label">
-                <el-tooltip content="选择隐藏则路由将不会出现在侧边栏,但仍然可以访问" placement="top">
-                <i class="el-icon-question"></i>
-                </el-tooltip>
-                显示状态
-              </span>
-              <el-radio-group v-model="form.visible">
-                <el-radio
-                  v-for="dict in dict.type.sys_show_hide"
-                  :key="dict.value"
-                  :label="dict.value"
-                >{{dict.label}}</el-radio>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item prop="status">
-              <span slot="label">
-                <el-tooltip content="选择停用则路由将不会出现在侧边栏,也不能被访问" placement="top">
-                <i class="el-icon-question"></i>
-                </el-tooltip>
-                菜单状态
-              </span>
-              <el-radio-group v-model="form.status">
-                <el-radio
-                  v-for="dict in dict.type.sys_normal_disable"
-                  :key="dict.value"
-                  :label="dict.value"
-                >{{dict.label}}</el-radio>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listMenu, getMenu, delMenu, addMenu, updateMenu } from "@/api/system/menu";
-import Treeselect from "@riophae/vue-treeselect";
-import "@riophae/vue-treeselect/dist/vue-treeselect.css";
-import IconSelect from "@/components/IconSelect";
-
-export default {
-  name: "Menu",
-  dicts: ['sys_show_hide', 'sys_normal_disable'],
-  components: { Treeselect, IconSelect },
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 菜单表格树数据
-      menuList: [],
-      // 菜单树选项
-      menuOptions: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 是否展开,默认全部折叠
-      isExpandAll: false,
-      // 重新渲染表格状态
-      refreshTable: true,
-      // 查询参数
-      queryParams: {
-        menuName: undefined,
-        visible: undefined
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        menuName: [
-          { required: true, message: "菜单名称不能为空", trigger: "blur" }
-        ],
-        orderNum: [
-          { required: true, message: "菜单顺序不能为空", trigger: "blur" }
-        ],
-        path: [
-          { required: true, message: "路由地址不能为空", trigger: "blur" }
-        ]
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    // 选择图标
-    selected(name) {
-      this.form.icon = name;
-    },
-    /** 查询菜单列表 */
-    getList() {
-      this.loading = true;
-      listMenu(this.queryParams).then(response => {
-        this.menuList = this.handleTree(response.data, "menuId");
-        this.loading = false;
-      });
-    },
-    /** 转换菜单数据结构 */
-    normalizer(node) {
-      if (node.children && !node.children.length) {
-        delete node.children;
-      }
-      return {
-        id: node.menuId,
-        label: node.menuName,
-        children: node.children
-      };
-    },
-    /** 查询菜单下拉树结构 */
-    getTreeselect() {
-      listMenu().then(response => {
-        this.menuOptions = [];
-        const menu = { menuId: 0, menuName: '主类目', children: [] };
-        menu.children = this.handleTree(response.data, "menuId");
-        this.menuOptions.push(menu);
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        menuId: undefined,
-        parentId: 0,
-        menuName: undefined,
-        icon: undefined,
-        menuType: "M",
-        orderNum: undefined,
-        isFrame: "1",
-        isCache: "0",
-        visible: "0",
-        status: "0"
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 新增按钮操作 */
-    handleAdd(row) {
-      this.reset();
-      this.getTreeselect();
-      if (row != null && row.menuId) {
-        this.form.parentId = row.menuId;
-      } else {
-        this.form.parentId = 0;
-      }
-      this.open = true;
-      this.title = "添加菜单";
-    },
-    /** 展开/折叠操作 */
-    toggleExpandAll() {
-      this.refreshTable = false;
-      this.isExpandAll = !this.isExpandAll;
-      this.$nextTick(() => {
-        this.refreshTable = true;
-      });
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      this.getTreeselect();
-      getMenu(row.menuId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改菜单";
-      });
-    },
-    /** 提交按钮 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.menuId != undefined) {
-            updateMenu(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addMenu(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      this.$modal.confirm('是否确认删除名称为"' + row.menuName + '"的数据项?').then(function() {
-        return delMenu(row.menuId);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/system/notice/index.vue b/ruoyi-ui/src/views/system/notice/index.vue
deleted file mode 100644
index 7982b54..0000000
--- a/ruoyi-ui/src/views/system/notice/index.vue
+++ /dev/null
@@ -1,312 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="公告标题" prop="noticeTitle">
-        <el-input
-          v-model="queryParams.noticeTitle"
-          placeholder="请输入公告标题"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="操作人员" prop="createBy">
-        <el-input
-          v-model="queryParams.createBy"
-          placeholder="请输入操作人员"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="类型" prop="noticeType">
-        <el-select v-model="queryParams.noticeType" placeholder="公告类型" clearable>
-          <el-option
-            v-for="dict in dict.type.sys_notice_type"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['system:notice:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['system:notice:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['system:notice:remove']"
-        >删除</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="noticeList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="序号" align="center" prop="noticeId" width="100" />
-      <el-table-column
-        label="公告标题"
-        align="center"
-        prop="noticeTitle"
-        :show-overflow-tooltip="true"
-      />
-      <el-table-column label="公告类型" align="center" prop="noticeType" width="100">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_notice_type" :value="scope.row.noticeType"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="状态" align="center" prop="status" width="100">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_notice_status" :value="scope.row.status"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="创建者" align="center" prop="createBy" width="100" />
-      <el-table-column label="创建时间" align="center" prop="createTime" width="100">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['system:notice:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:notice:remove']"
-          >删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改公告对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="780px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="公告标题" prop="noticeTitle">
-              <el-input v-model="form.noticeTitle" placeholder="请输入公告标题" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="公告类型" prop="noticeType">
-              <el-select v-model="form.noticeType" placeholder="请选择公告类型">
-                <el-option
-                  v-for="dict in dict.type.sys_notice_type"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="状态">
-              <el-radio-group v-model="form.status">
-                <el-radio
-                  v-for="dict in dict.type.sys_notice_status"
-                  :key="dict.value"
-                  :label="dict.value"
-                >{{dict.label}}</el-radio>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="内容">
-              <editor v-model="form.noticeContent" :min-height="192"/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listNotice, getNotice, delNotice, addNotice, updateNotice } from "@/api/system/notice";
-
-export default {
-  name: "Notice",
-  dicts: ['sys_notice_status', 'sys_notice_type'],
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 公告表格数据
-      noticeList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        noticeTitle: undefined,
-        createBy: undefined,
-        status: undefined
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        noticeTitle: [
-          { required: true, message: "公告标题不能为空", trigger: "blur" }
-        ],
-        noticeType: [
-          { required: true, message: "公告类型不能为空", trigger: "change" }
-        ]
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询公告列表 */
-    getList() {
-      this.loading = true;
-      listNotice(this.queryParams).then(response => {
-        this.noticeList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        noticeId: undefined,
-        noticeTitle: undefined,
-        noticeType: undefined,
-        noticeContent: undefined,
-        status: "0"
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.noticeId)
-      this.single = selection.length!=1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加公告";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const noticeId = row.noticeId || this.ids
-      getNotice(noticeId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改公告";
-      });
-    },
-    /** 提交按钮 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.noticeId != undefined) {
-            updateNotice(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addNotice(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const noticeIds = row.noticeId || this.ids
-      this.$modal.confirm('是否确认删除公告编号为"' + noticeIds + '"的数据项?').then(function() {
-        return delNotice(noticeIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/system/post/index.vue b/ruoyi-ui/src/views/system/post/index.vue
deleted file mode 100644
index 444bf63..0000000
--- a/ruoyi-ui/src/views/system/post/index.vue
+++ /dev/null
@@ -1,309 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="岗位编码" prop="postCode">
-        <el-input
-          v-model="queryParams.postCode"
-          placeholder="请输入岗位编码"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="岗位名称" prop="postName">
-        <el-input
-          v-model="queryParams.postName"
-          placeholder="请输入岗位名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="状态" prop="status">
-        <el-select v-model="queryParams.status" placeholder="岗位状态" clearable>
-          <el-option
-            v-for="dict in dict.type.sys_normal_disable"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['system:post:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['system:post:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['system:post:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['system:post:export']"
-        >导出</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="岗位编号" align="center" prop="postId" />
-      <el-table-column label="岗位编码" align="center" prop="postCode" />
-      <el-table-column label="岗位名称" align="center" prop="postName" />
-      <el-table-column label="岗位排序" align="center" prop="postSort" />
-      <el-table-column label="状态" align="center" prop="status">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['system:post:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:post:remove']"
-          >删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改岗位对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="岗位名称" prop="postName">
-          <el-input v-model="form.postName" placeholder="请输入岗位名称" />
-        </el-form-item>
-        <el-form-item label="岗位编码" prop="postCode">
-          <el-input v-model="form.postCode" placeholder="请输入编码名称" />
-        </el-form-item>
-        <el-form-item label="岗位顺序" prop="postSort">
-          <el-input-number v-model="form.postSort" controls-position="right" :min="0" />
-        </el-form-item>
-        <el-form-item label="岗位状态" prop="status">
-          <el-radio-group v-model="form.status">
-            <el-radio
-              v-for="dict in dict.type.sys_normal_disable"
-              :key="dict.value"
-              :label="dict.value"
-            >{{dict.label}}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listPost, getPost, delPost, addPost, updatePost } from "@/api/system/post";
-
-export default {
-  name: "Post",
-  dicts: ['sys_normal_disable'],
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 岗位表格数据
-      postList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        postCode: undefined,
-        postName: undefined,
-        status: undefined
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        postName: [
-          { required: true, message: "岗位名称不能为空", trigger: "blur" }
-        ],
-        postCode: [
-          { required: true, message: "岗位编码不能为空", trigger: "blur" }
-        ],
-        postSort: [
-          { required: true, message: "岗位顺序不能为空", trigger: "blur" }
-        ]
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询岗位列表 */
-    getList() {
-      this.loading = true;
-      listPost(this.queryParams).then(response => {
-        this.postList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        postId: undefined,
-        postCode: undefined,
-        postName: undefined,
-        postSort: 0,
-        status: "0",
-        remark: undefined
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.postId)
-      this.single = selection.length!=1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加岗位";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const postId = row.postId || this.ids
-      getPost(postId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改岗位";
-      });
-    },
-    /** 提交按钮 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.postId != undefined) {
-            updatePost(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addPost(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const postIds = row.postId || this.ids;
-      this.$modal.confirm('是否确认删除岗位编号为"' + postIds + '"的数据项?').then(function() {
-        return delPost(postIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('system/post/export', {
-        ...this.queryParams
-      }, `post_${new Date().getTime()}.xlsx`)
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/system/role/authUser.vue b/ruoyi-ui/src/views/system/role/authUser.vue
deleted file mode 100644
index 147aa33..0000000
--- a/ruoyi-ui/src/views/system/role/authUser.vue
+++ /dev/null
@@ -1,199 +0,0 @@
-<template>
-  <div class="app-container">
-     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
-      <el-form-item label="用户名称" prop="userName">
-        <el-input
-          v-model="queryParams.userName"
-          placeholder="请输入用户名称"
-          clearable
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="手机号码" prop="phonenumber">
-        <el-input
-          v-model="queryParams.phonenumber"
-          placeholder="请输入手机号码"
-          clearable
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="openSelectUser"
-          v-hasPermi="['system:role:add']"
-        >添加用户</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-circle-close"
-          size="mini"
-          :disabled="multiple"
-          @click="cancelAuthUserAll"
-          v-hasPermi="['system:role:remove']"
-        >批量取消授权</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-close"
-          size="mini"
-          @click="handleClose"
-        >关闭</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" />
-      <el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" />
-      <el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" />
-      <el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" />
-      <el-table-column label="状态" align="center" prop="status">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-circle-close"
-            @click="cancelAuthUser(scope.row)"
-            v-hasPermi="['system:role:remove']"
-          >取消授权</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-    <select-user ref="select" :roleId="queryParams.roleId" @ok="handleQuery" />
-  </div>
-</template>
-
-<script>
-import { allocatedUserList, authUserCancel, authUserCancelAll } from "@/api/system/role";
-import selectUser from "./selectUser";
-
-export default {
-  name: "AuthUser",
-  dicts: ['sys_normal_disable'],
-  components: { selectUser },
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中用户组
-      userIds: [],
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 用户表格数据
-      userList: [],
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        roleId: undefined,
-        userName: undefined,
-        phonenumber: undefined
-      }
-    };
-  },
-  created() {
-    const roleId = this.$route.params && this.$route.params.roleId;
-    if (roleId) {
-      this.queryParams.roleId = roleId;
-      this.getList();
-    }
-  },
-  methods: {
-    /** 查询授权用户列表 */
-    getList() {
-      this.loading = true;
-      allocatedUserList(this.queryParams).then(response => {
-          this.userList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
-    },
-    // 返回按钮
-    handleClose() {
-      const obj = { path: "/system/role" };
-      this.$tab.closeOpenPage(obj);
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.userIds = selection.map(item => item.userId)
-      this.multiple = !selection.length
-    },
-    /** 打开授权用户表弹窗 */
-    openSelectUser() {
-      this.$refs.select.show();
-    },
-    /** 取消授权按钮操作 */
-    cancelAuthUser(row) {
-      const roleId = this.queryParams.roleId;
-      this.$modal.confirm('确认要取消该用户"' + row.userName + '"角色吗?').then(function() {
-        return authUserCancel({ userId: row.userId, roleId: roleId });
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("取消授权成功");
-      }).catch(() => {});
-    },
-    /** 批量取消授权按钮操作 */
-    cancelAuthUserAll(row) {
-      const roleId = this.queryParams.roleId;
-      const userIds = this.userIds.join(",");
-      this.$modal.confirm('是否取消选中用户授权数据项?').then(function() {
-        return authUserCancelAll({ roleId: roleId, userIds: userIds });
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("取消授权成功");
-      }).catch(() => {});
-    }
-  }
-};
-</script>
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/system/role/index.vue b/ruoyi-ui/src/views/system/role/index.vue
deleted file mode 100644
index fb3b5ef..0000000
--- a/ruoyi-ui/src/views/system/role/index.vue
+++ /dev/null
@@ -1,605 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
-      <el-form-item label="角色名称" prop="roleName">
-        <el-input
-          v-model="queryParams.roleName"
-          placeholder="请输入角色名称"
-          clearable
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="权限字符" prop="roleKey">
-        <el-input
-          v-model="queryParams.roleKey"
-          placeholder="请输入权限字符"
-          clearable
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="状态" prop="status">
-        <el-select
-          v-model="queryParams.status"
-          placeholder="角色状态"
-          clearable
-          style="width: 240px"
-        >
-          <el-option
-            v-for="dict in dict.type.sys_normal_disable"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="创建时间">
-        <el-date-picker
-          v-model="dateRange"
-          style="width: 240px"
-          value-format="yyyy-MM-dd"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        ></el-date-picker>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['system:role:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['system:role:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['system:role:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['system:role:export']"
-        >导出</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="角色编号" prop="roleId" width="120" />
-      <el-table-column label="角色名称" prop="roleName" :show-overflow-tooltip="true" width="150" />
-      <el-table-column label="权限字符" prop="roleKey" :show-overflow-tooltip="true" width="150" />
-      <el-table-column label="显示顺序" prop="roleSort" width="100" />
-      <el-table-column label="状态" align="center" width="100">
-        <template slot-scope="scope">
-          <el-switch
-            v-model="scope.row.status"
-            active-value="0"
-            inactive-value="1"
-            @change="handleStatusChange(scope.row)"
-          ></el-switch>
-        </template>
-      </el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope" v-if="scope.row.roleId !== 1">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['system:role:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:role:remove']"
-          >删除</el-button>
-          <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']">
-            <el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item command="handleDataScope" icon="el-icon-circle-check"
-                v-hasPermi="['system:role:edit']">数据权限</el-dropdown-item>
-              <el-dropdown-item command="handleAuthUser" icon="el-icon-user"
-                v-hasPermi="['system:role:edit']">分配用户</el-dropdown-item>
-            </el-dropdown-menu>
-          </el-dropdown>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改角色配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
-        <el-form-item label="角色名称" prop="roleName">
-          <el-input v-model="form.roleName" placeholder="请输入角色名称" />
-        </el-form-item>
-        <el-form-item prop="roleKey">
-          <span slot="label">
-            <el-tooltip content="控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasRole('admin')`)" placement="top">
-              <i class="el-icon-question"></i>
-            </el-tooltip>
-            权限字符
-          </span>
-          <el-input v-model="form.roleKey" placeholder="请输入权限字符" />
-        </el-form-item>
-        <el-form-item label="角色顺序" prop="roleSort">
-          <el-input-number v-model="form.roleSort" controls-position="right" :min="0" />
-        </el-form-item>
-        <el-form-item label="状态">
-          <el-radio-group v-model="form.status">
-            <el-radio
-              v-for="dict in dict.type.sys_normal_disable"
-              :key="dict.value"
-              :label="dict.value"
-            >{{dict.label}}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="菜单权限">
-          <el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">展开/折叠</el-checkbox>
-          <el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">全选/全不选</el-checkbox>
-          <el-checkbox v-model="form.menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')">父子联动</el-checkbox>
-          <el-tree
-            class="tree-border"
-            :data="menuOptions"
-            show-checkbox
-            ref="menu"
-            node-key="id"
-            :check-strictly="!form.menuCheckStrictly"
-            empty-text="加载中,请稍候"
-            :props="defaultProps"
-          ></el-tree>
-        </el-form-item>
-        <el-form-item label="备注">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-
-    <!-- 分配角色数据权限对话框 -->
-    <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body>
-      <el-form :model="form" label-width="80px">
-        <el-form-item label="角色名称">
-          <el-input v-model="form.roleName" :disabled="true" />
-        </el-form-item>
-        <el-form-item label="权限字符">
-          <el-input v-model="form.roleKey" :disabled="true" />
-        </el-form-item>
-        <el-form-item label="权限范围">
-          <el-select v-model="form.dataScope" @change="dataScopeSelectChange">
-            <el-option
-              v-for="item in dataScopeOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="数据权限" v-show="form.dataScope == 2">
-          <el-checkbox v-model="deptExpand" @change="handleCheckedTreeExpand($event, 'dept')">展开/折叠</el-checkbox>
-          <el-checkbox v-model="deptNodeAll" @change="handleCheckedTreeNodeAll($event, 'dept')">全选/全不选</el-checkbox>
-          <el-checkbox v-model="form.deptCheckStrictly" @change="handleCheckedTreeConnect($event, 'dept')">父子联动</el-checkbox>
-          <el-tree
-            class="tree-border"
-            :data="deptOptions"
-            show-checkbox
-            default-expand-all
-            ref="dept"
-            node-key="id"
-            :check-strictly="!form.deptCheckStrictly"
-            empty-text="加载中,请稍候"
-            :props="defaultProps"
-          ></el-tree>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitDataScope">确 定</el-button>
-        <el-button @click="cancelDataScope">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
-import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
-
-export default {
-  name: "Role",
-  dicts: ['sys_normal_disable'],
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 角色表格数据
-      roleList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 是否显示弹出层(数据权限)
-      openDataScope: false,
-      menuExpand: false,
-      menuNodeAll: false,
-      deptExpand: true,
-      deptNodeAll: false,
-      // 日期范围
-      dateRange: [],
-      // 数据范围选项
-      dataScopeOptions: [
-        {
-          value: "1",
-          label: "全部数据权限"
-        },
-        {
-          value: "2",
-          label: "自定数据权限"
-        },
-        {
-          value: "3",
-          label: "本部门数据权限"
-        },
-        {
-          value: "4",
-          label: "本部门及以下数据权限"
-        },
-        {
-          value: "5",
-          label: "仅本人数据权限"
-        }
-      ],
-      // 菜单列表
-      menuOptions: [],
-      // 部门列表
-      deptOptions: [],
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        roleName: undefined,
-        roleKey: undefined,
-        status: undefined
-      },
-      // 表单参数
-      form: {},
-      defaultProps: {
-        children: "children",
-        label: "label"
-      },
-      // 表单校验
-      rules: {
-        roleName: [
-          { required: true, message: "角色名称不能为空", trigger: "blur" }
-        ],
-        roleKey: [
-          { required: true, message: "权限字符不能为空", trigger: "blur" }
-        ],
-        roleSort: [
-          { required: true, message: "角色顺序不能为空", trigger: "blur" }
-        ]
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询角色列表 */
-    getList() {
-      this.loading = true;
-      listRole(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-          this.roleList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
-    },
-    /** 查询菜单树结构 */
-    getMenuTreeselect() {
-      menuTreeselect().then(response => {
-        this.menuOptions = response.data;
-      });
-    },
-    // 所有菜单节点数据
-    getMenuAllCheckedKeys() {
-      // 目前被选中的菜单节点
-      let checkedKeys = this.$refs.menu.getCheckedKeys();
-      // 半选中的菜单节点
-      let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys();
-      checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
-      return checkedKeys;
-    },
-    // 所有部门节点数据
-    getDeptAllCheckedKeys() {
-      // 目前被选中的部门节点
-      let checkedKeys = this.$refs.dept.getCheckedKeys();
-      // 半选中的部门节点
-      let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys();
-      checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
-      return checkedKeys;
-    },
-    /** 根据角色ID查询菜单树结构 */
-    getRoleMenuTreeselect(roleId) {
-      return roleMenuTreeselect(roleId).then(response => {
-        this.menuOptions = response.menus;
-        return response;
-      });
-    },
-    /** 根据角色ID查询部门树结构 */
-    getDeptTree(roleId) {
-      return deptTreeSelect(roleId).then(response => {
-        this.deptOptions = response.depts;
-        return response;
-      });
-    },
-    // 角色状态修改
-    handleStatusChange(row) {
-      let text = row.status === "0" ? "启用" : "停用";
-      this.$modal.confirm('确认要"' + text + '""' + row.roleName + '"角色吗?').then(function() {
-        return changeRoleStatus(row.roleId, row.status);
-      }).then(() => {
-        this.$modal.msgSuccess(text + "成功");
-      }).catch(function() {
-        row.status = row.status === "0" ? "1" : "0";
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 取消按钮(数据权限)
-    cancelDataScope() {
-      this.openDataScope = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      if (this.$refs.menu != undefined) {
-        this.$refs.menu.setCheckedKeys([]);
-      }
-      this.menuExpand = false,
-      this.menuNodeAll = false,
-      this.deptExpand = true,
-      this.deptNodeAll = false,
-      this.form = {
-        roleId: undefined,
-        roleName: undefined,
-        roleKey: undefined,
-        roleSort: 0,
-        status: "0",
-        menuIds: [],
-        deptIds: [],
-        menuCheckStrictly: true,
-        deptCheckStrictly: true,
-        remark: undefined
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.roleId)
-      this.single = selection.length!=1
-      this.multiple = !selection.length
-    },
-    // 更多操作触发
-    handleCommand(command, row) {
-      switch (command) {
-        case "handleDataScope":
-          this.handleDataScope(row);
-          break;
-        case "handleAuthUser":
-          this.handleAuthUser(row);
-          break;
-        default:
-          break;
-      }
-    },
-    // 树权限(展开/折叠)
-    handleCheckedTreeExpand(value, type) {
-      if (type == 'menu') {
-        let treeList = this.menuOptions;
-        for (let i = 0; i < treeList.length; i++) {
-          this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
-        }
-      } else if (type == 'dept') {
-        let treeList = this.deptOptions;
-        for (let i = 0; i < treeList.length; i++) {
-          this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value;
-        }
-      }
-    },
-    // 树权限(全选/全不选)
-    handleCheckedTreeNodeAll(value, type) {
-      if (type == 'menu') {
-        this.$refs.menu.setCheckedNodes(value ? this.menuOptions: []);
-      } else if (type == 'dept') {
-        this.$refs.dept.setCheckedNodes(value ? this.deptOptions: []);
-      }
-    },
-    // 树权限(父子联动)
-    handleCheckedTreeConnect(value, type) {
-      if (type == 'menu') {
-        this.form.menuCheckStrictly = value ? true: false;
-      } else if (type == 'dept') {
-        this.form.deptCheckStrictly = value ? true: false;
-      }
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.getMenuTreeselect();
-      this.open = true;
-      this.title = "添加角色";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const roleId = row.roleId || this.ids
-      const roleMenu = this.getRoleMenuTreeselect(roleId);
-      getRole(roleId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.$nextTick(() => {
-          roleMenu.then(res => {
-            let checkedKeys = res.checkedKeys
-            checkedKeys.forEach((v) => {
-                this.$nextTick(()=>{
-                    this.$refs.menu.setChecked(v, true ,false);
-                })
-            })
-          });
-        });
-        this.title = "修改角色";
-      });
-    },
-    /** 选择角色权限范围触发 */
-    dataScopeSelectChange(value) {
-      if(value !== '2') {
-        this.$refs.dept.setCheckedKeys([]);
-      }
-    },
-    /** 分配数据权限操作 */
-    handleDataScope(row) {
-      this.reset();
-      const deptTreeSelect = this.getDeptTree(row.roleId);
-      getRole(row.roleId).then(response => {
-        this.form = response.data;
-        this.openDataScope = true;
-        this.$nextTick(() => {
-          deptTreeSelect.then(res => {
-            this.$refs.dept.setCheckedKeys(res.checkedKeys);
-          });
-        });
-        this.title = "分配数据权限";
-      });
-    },
-    /** 分配用户操作 */
-    handleAuthUser: function(row) {
-      const roleId = row.roleId;
-      this.$router.push("/system/role-auth/user/" + roleId);
-    },
-    /** 提交按钮 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.roleId != undefined) {
-            this.form.menuIds = this.getMenuAllCheckedKeys();
-            updateRole(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            this.form.menuIds = this.getMenuAllCheckedKeys();
-            addRole(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 提交按钮(数据权限) */
-    submitDataScope: function() {
-      if (this.form.roleId != undefined) {
-        this.form.deptIds = this.getDeptAllCheckedKeys();
-        dataScope(this.form).then(response => {
-          this.$modal.msgSuccess("修改成功");
-          this.openDataScope = false;
-          this.getList();
-        });
-      }
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const roleIds = row.roleId || this.ids;
-      this.$modal.confirm('是否确认删除角色编号为"' + roleIds + '"的数据项?').then(function() {
-        return delRole(roleIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('system/role/export', {
-        ...this.queryParams
-      }, `role_${new Date().getTime()}.xlsx`)
-    }
-  }
-};
-</script>
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/system/role/selectUser.vue b/ruoyi-ui/src/views/system/role/selectUser.vue
deleted file mode 100644
index b2b072f..0000000
--- a/ruoyi-ui/src/views/system/role/selectUser.vue
+++ /dev/null
@@ -1,138 +0,0 @@
-<template>
-  <!-- 授权用户 -->
-  <el-dialog title="选择用户" :visible.sync="visible" width="800px" top="5vh" append-to-body>
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
-      <el-form-item label="用户名称" prop="userName">
-        <el-input
-          v-model="queryParams.userName"
-          placeholder="请输入用户名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="手机号码" prop="phonenumber">
-        <el-input
-          v-model="queryParams.phonenumber"
-          placeholder="请输入手机号码"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-    <el-row>
-      <el-table @row-click="clickRow" ref="table" :data="userList" @selection-change="handleSelectionChange" height="260px">
-        <el-table-column type="selection" width="55"></el-table-column>
-        <el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" />
-        <el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" />
-        <el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" />
-        <el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" />
-        <el-table-column label="状态" align="center" prop="status">
-          <template slot-scope="scope">
-            <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
-          </template>
-        </el-table-column>
-        <el-table-column label="创建时间" align="center" prop="createTime" width="180">
-          <template slot-scope="scope">
-            <span>{{ parseTime(scope.row.createTime) }}</span>
-          </template>
-        </el-table-column>
-      </el-table>
-      <pagination
-        v-show="total>0"
-        :total="total"
-        :page.sync="queryParams.pageNum"
-        :limit.sync="queryParams.pageSize"
-        @pagination="getList"
-      />
-    </el-row>
-    <div slot="footer" class="dialog-footer">
-      <el-button type="primary" @click="handleSelectUser">确 定</el-button>
-      <el-button @click="visible = false">取 消</el-button>
-    </div>
-  </el-dialog>
-</template>
-
-<script>
-import { unallocatedUserList, authUserSelectAll } from "@/api/system/role";
-export default {
-  dicts: ['sys_normal_disable'],
-  props: {
-    // 角色编号
-    roleId: {
-      type: [Number, String]
-    }
-  },
-  data() {
-    return {
-      // 遮罩层
-      visible: false,
-      // 选中数组值
-      userIds: [],
-      // 总条数
-      total: 0,
-      // 未授权用户数据
-      userList: [],
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        roleId: undefined,
-        userName: undefined,
-        phonenumber: undefined
-      }
-    };
-  },
-  methods: {
-    // 显示弹框
-    show() {
-      this.queryParams.roleId = this.roleId;
-      this.getList();
-      this.visible = true;
-    },
-    clickRow(row) {
-      this.$refs.table.toggleRowSelection(row);
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.userIds = selection.map(item => item.userId);
-    },
-    // 查询表数据
-    getList() {
-      unallocatedUserList(this.queryParams).then(res => {
-        this.userList = res.rows;
-        this.total = res.total;
-      });
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 选择授权用户操作 */
-    handleSelectUser() {
-      const roleId = this.queryParams.roleId;
-      const userIds = this.userIds.join(",");
-      if (userIds == "") {
-        this.$modal.msgError("请选择要分配的用户");
-        return;
-      }
-      authUserSelectAll({ roleId: roleId, userIds: userIds }).then(res => {
-        this.$modal.msgSuccess(res.msg);
-        if (res.code === 200) {
-          this.visible = false;
-          this.$emit("ok");
-        }
-      });
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/system/user/authRole.vue b/ruoyi-ui/src/views/system/user/authRole.vue
deleted file mode 100644
index 943710e..0000000
--- a/ruoyi-ui/src/views/system/user/authRole.vue
+++ /dev/null
@@ -1,117 +0,0 @@
-<template>
-  <div class="app-container">
-    <h4 class="form-header h4">基本信息</h4>
-    <el-form ref="form" :model="form" label-width="80px">
-      <el-row>
-        <el-col :span="8" :offset="2">
-          <el-form-item label="用户昵称" prop="nickName">
-            <el-input v-model="form.nickName" disabled />
-          </el-form-item>
-        </el-col>
-        <el-col :span="8" :offset="2">
-          <el-form-item label="登录账号" prop="userName">
-            <el-input  v-model="form.userName" disabled />
-          </el-form-item>
-        </el-col>
-      </el-row>
-    </el-form>
-
-    <h4 class="form-header h4">角色信息</h4>
-    <el-table v-loading="loading" :row-key="getRowKey" @row-click="clickRow" ref="table" @selection-change="handleSelectionChange" :data="roles.slice((pageNum-1)*pageSize,pageNum*pageSize)">
-      <el-table-column label="序号" type="index" align="center">
-        <template slot-scope="scope">
-          <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column type="selection" :reserve-selection="true" width="55"></el-table-column>
-      <el-table-column label="角色编号" align="center" prop="roleId" />
-      <el-table-column label="角色名称" align="center" prop="roleName" />
-      <el-table-column label="权限字符" align="center" prop="roleKey" />
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination v-show="total>0" :total="total" :page.sync="pageNum" :limit.sync="pageSize" />
-
-    <el-form label-width="100px">
-      <el-form-item style="text-align: center;margin-left:-120px;margin-top:30px;">
-        <el-button type="primary" @click="submitForm()">提交</el-button>
-        <el-button @click="close()">返回</el-button>
-      </el-form-item>
-    </el-form>
-  </div>
-</template>
-
-<script>
-import { getAuthRole, updateAuthRole } from "@/api/system/user";
-
-export default {
-  name: "AuthRole",
-  data() {
-    return {
-       // 遮罩层
-      loading: true,
-      // 分页信息
-      total: 0,
-      pageNum: 1,
-      pageSize: 10,
-      // 选中角色编号
-      roleIds:[],
-      // 角色信息
-      roles: [],
-      // 用户信息
-      form: {}
-    };
-  },
-  created() {
-    const userId = this.$route.params && this.$route.params.userId;
-    if (userId) {
-      this.loading = true;
-      getAuthRole(userId).then((response) => {
-        this.form = response.user;
-        this.roles = response.roles;
-        this.total = this.roles.length;
-        this.$nextTick(() => {
-          this.roles.forEach((row) => {
-            if (row.flag) {
-              this.$refs.table.toggleRowSelection(row);
-            }
-          });
-        });
-        this.loading = false;
-      });
-    }
-  },
-  methods: {
-    /** 单击选中行数据 */
-    clickRow(row) {
-      this.$refs.table.toggleRowSelection(row);
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.roleIds = selection.map((item) => item.roleId);
-    },
-    // 保存选中的数据编号
-    getRowKey(row) {
-      return row.roleId;
-    },
-    /** 提交按钮 */
-    submitForm() {
-      const userId = this.form.userId;
-      const roleIds = this.roleIds.join(",");
-      updateAuthRole({ userId: userId, roleIds: roleIds }).then((response) => {
-        this.$modal.msgSuccess("授权成功");
-        this.close();
-      });
-    },
-    /** 关闭按钮 */
-    close() {
-      const obj = { path: "/system/user" };
-      this.$tab.closeOpenPage(obj);
-    },
-  },
-};
-</script>
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue
deleted file mode 100644
index 6b2a0aa..0000000
--- a/ruoyi-ui/src/views/system/user/index.vue
+++ /dev/null
@@ -1,676 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-row :gutter="20">
-      <!--部门数据-->
-      <el-col :span="4" :xs="24">
-        <div class="head-container">
-          <el-input
-            v-model="deptName"
-            placeholder="请输入部门名称"
-            clearable
-            size="small"
-            prefix-icon="el-icon-search"
-            style="margin-bottom: 20px"
-          />
-        </div>
-        <div class="head-container">
-          <el-tree
-            :data="deptOptions"
-            :props="defaultProps"
-            :expand-on-click-node="false"
-            :filter-node-method="filterNode"
-            ref="tree"
-            node-key="id"
-            default-expand-all
-            highlight-current
-            @node-click="handleNodeClick"
-          />
-        </div>
-      </el-col>
-      <!--用户数据-->
-      <el-col :span="20" :xs="24">
-        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-          <el-form-item label="用户名称" prop="userName">
-            <el-input
-              v-model="queryParams.userName"
-              placeholder="请输入用户名称"
-              clearable
-              style="width: 240px"
-              @keyup.enter.native="handleQuery"
-            />
-          </el-form-item>
-          <el-form-item label="手机号码" prop="phonenumber">
-            <el-input
-              v-model="queryParams.phonenumber"
-              placeholder="请输入手机号码"
-              clearable
-              style="width: 240px"
-              @keyup.enter.native="handleQuery"
-            />
-          </el-form-item>
-          <el-form-item label="状态" prop="status">
-            <el-select
-              v-model="queryParams.status"
-              placeholder="用户状态"
-              clearable
-              style="width: 240px"
-            >
-              <el-option
-                v-for="dict in dict.type.sys_normal_disable"
-                :key="dict.value"
-                :label="dict.label"
-                :value="dict.value"
-              />
-            </el-select>
-          </el-form-item>
-          <el-form-item label="创建时间">
-            <el-date-picker
-              v-model="dateRange"
-              style="width: 240px"
-              value-format="yyyy-MM-dd"
-              type="daterange"
-              range-separator="-"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-            ></el-date-picker>
-          </el-form-item>
-          <el-form-item>
-            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-          </el-form-item>
-        </el-form>
-
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-            <el-button
-              type="primary"
-              plain
-              icon="el-icon-plus"
-              size="mini"
-              @click="handleAdd"
-              v-hasPermi="['system:user:add']"
-            >新增</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button
-              type="success"
-              plain
-              icon="el-icon-edit"
-              size="mini"
-              :disabled="single"
-              @click="handleUpdate"
-              v-hasPermi="['system:user:edit']"
-            >修改</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button
-              type="danger"
-              plain
-              icon="el-icon-delete"
-              size="mini"
-              :disabled="multiple"
-              @click="handleDelete"
-              v-hasPermi="['system:user:remove']"
-            >删除</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button
-              type="info"
-              plain
-              icon="el-icon-upload2"
-              size="mini"
-              @click="handleImport"
-              v-hasPermi="['system:user:import']"
-            >导入</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button
-              type="warning"
-              plain
-              icon="el-icon-download"
-              size="mini"
-              @click="handleExport"
-              v-hasPermi="['system:user:export']"
-            >导出</el-button>
-          </el-col>
-          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
-        </el-row>
-
-        <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
-          <el-table-column type="selection" width="50" align="center" />
-          <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
-          <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
-          <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
-          <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
-          <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
-          <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
-            <template slot-scope="scope">
-              <el-switch
-                v-model="scope.row.status"
-                active-value="0"
-                inactive-value="1"
-                @change="handleStatusChange(scope.row)"
-              ></el-switch>
-            </template>
-          </el-table-column>
-          <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
-            <template slot-scope="scope">
-              <span>{{ parseTime(scope.row.createTime) }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column
-            label="操作"
-            align="center"
-            width="160"
-            class-name="small-padding fixed-width"
-          >
-            <template slot-scope="scope" v-if="scope.row.userId !== 1">
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-edit"
-                @click="handleUpdate(scope.row)"
-                v-hasPermi="['system:user:edit']"
-              >修改</el-button>
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-delete"
-                @click="handleDelete(scope.row)"
-                v-hasPermi="['system:user:remove']"
-              >删除</el-button>
-              <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
-                <el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
-                <el-dropdown-menu slot="dropdown">
-                  <el-dropdown-item command="handleResetPwd" icon="el-icon-key"
-                    v-hasPermi="['system:user:resetPwd']">重置密码</el-dropdown-item>
-                  <el-dropdown-item command="handleAuthRole" icon="el-icon-circle-check"
-                    v-hasPermi="['system:user:edit']">分配角色</el-dropdown-item>
-                </el-dropdown-menu>
-              </el-dropdown>
-            </template>
-          </el-table-column>
-        </el-table>
-
-        <pagination
-          v-show="total>0"
-          :total="total"
-          :page.sync="queryParams.pageNum"
-          :limit.sync="queryParams.pageSize"
-          @pagination="getList"
-        />
-      </el-col>
-    </el-row>
-
-    <!-- 添加或修改用户配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="用户昵称" prop="nickName">
-              <el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="归属部门" prop="deptId">
-              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="手机号码" prop="phonenumber">
-              <el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="邮箱" prop="email">
-              <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName">
-              <el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
-              <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="用户性别">
-              <el-select v-model="form.sex" placeholder="请选择性别">
-                <el-option
-                  v-for="dict in dict.type.sys_user_sex"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="状态">
-              <el-radio-group v-model="form.status">
-                <el-radio
-                  v-for="dict in dict.type.sys_normal_disable"
-                  :key="dict.value"
-                  :label="dict.value"
-                >{{dict.label}}</el-radio>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="岗位">
-              <el-select v-model="form.postIds" multiple placeholder="请选择岗位">
-                <el-option
-                  v-for="item in postOptions"
-                  :key="item.postId"
-                  :label="item.postName"
-                  :value="item.postId"
-                  :disabled="item.status == 1"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="角色">
-              <el-select v-model="form.roleIds" multiple placeholder="请选择角色">
-                <el-option
-                  v-for="item in roleOptions"
-                  :key="item.roleId"
-                  :label="item.roleName"
-                  :value="item.roleId"
-                  :disabled="item.status == 1"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="备注">
-              <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-
-    <!-- 用户导入对话框 -->
-    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
-      <el-upload
-        ref="upload"
-        :limit="1"
-        accept=".xlsx, .xls"
-        :headers="upload.headers"
-        :action="upload.url + '?updateSupport=' + upload.updateSupport"
-        :disabled="upload.isUploading"
-        :on-progress="handleFileUploadProgress"
-        :on-success="handleFileSuccess"
-        :auto-upload="false"
-        drag
-      >
-        <i class="el-icon-upload"></i>
-        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
-        <div class="el-upload__tip text-center" slot="tip">
-          <div class="el-upload__tip" slot="tip">
-            <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
-          </div>
-          <span>仅允许导入xls、xlsx格式文件。</span>
-          <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
-        </div>
-      </el-upload>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitFileForm">确 定</el-button>
-        <el-button @click="upload.open = false">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user";
-import { getToken } from "@/utils/auth";
-import Treeselect from "@riophae/vue-treeselect";
-import "@riophae/vue-treeselect/dist/vue-treeselect.css";
-
-export default {
-  name: "User",
-  dicts: ['sys_normal_disable', 'sys_user_sex'],
-  components: { Treeselect },
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 用户表格数据
-      userList: null,
-      // 弹出层标题
-      title: "",
-      // 部门树选项
-      deptOptions: undefined,
-      // 是否显示弹出层
-      open: false,
-      // 部门名称
-      deptName: undefined,
-      // 默认密码
-      initPassword: undefined,
-      // 日期范围
-      dateRange: [],
-      // 岗位选项
-      postOptions: [],
-      // 角色选项
-      roleOptions: [],
-      // 表单参数
-      form: {},
-      defaultProps: {
-        children: "children",
-        label: "label"
-      },
-      // 用户导入参数
-      upload: {
-        // 是否显示弹出层(用户导入)
-        open: false,
-        // 弹出层标题(用户导入)
-        title: "",
-        // 是否禁用上传
-        isUploading: false,
-        // 是否更新已经存在的用户数据
-        updateSupport: 0,
-        // 设置上传的请求头部
-        headers: { Authorization: "Bearer " + getToken() },
-        // 上传的地址
-        url: process.env.VUE_APP_BASE_API + "/system/user/importData"
-      },
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        userName: undefined,
-        phonenumber: undefined,
-        status: undefined,
-        deptId: undefined
-      },
-      // 列信息
-      columns: [
-        { key: 0, label: `用户编号`, visible: true },
-        { key: 1, label: `用户名称`, visible: true },
-        { key: 2, label: `用户昵称`, visible: true },
-        { key: 3, label: `部门`, visible: true },
-        { key: 4, label: `手机号码`, visible: true },
-        { key: 5, label: `状态`, visible: true },
-        { key: 6, label: `创建时间`, visible: true }
-      ],
-      // 表单校验
-      rules: {
-        userName: [
-          { required: true, message: "用户名称不能为空", trigger: "blur" },
-          { min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' }
-        ],
-        nickName: [
-          { required: true, message: "用户昵称不能为空", trigger: "blur" }
-        ],
-        password: [
-          { required: true, message: "用户密码不能为空", trigger: "blur" },
-          { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' },
-          { pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" }
-        ],
-        email: [
-          {
-            type: "email",
-            message: "请输入正确的邮箱地址",
-            trigger: ["blur", "change"]
-          }
-        ],
-        phonenumber: [
-          {
-            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
-            message: "请输入正确的手机号码",
-            trigger: "blur"
-          }
-        ]
-      }
-    };
-  },
-  watch: {
-    // 根据名称筛选部门树
-    deptName(val) {
-      this.$refs.tree.filter(val);
-    }
-  },
-  created() {
-    this.getList();
-    this.getDeptTree();
-    this.getConfigKey("sys.user.initPassword").then(response => {
-      this.initPassword = response.msg;
-    });
-  },
-  methods: {
-    /** 查询用户列表 */
-    getList() {
-      this.loading = true;
-      listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-          this.userList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
-    },
-    /** 查询部门下拉树结构 */
-    getDeptTree() {
-      deptTreeSelect().then(response => {
-        this.deptOptions = response.data;
-      });
-    },
-    // 筛选节点
-    filterNode(value, data) {
-      if (!value) return true;
-      return data.label.indexOf(value) !== -1;
-    },
-    // 节点单击事件
-    handleNodeClick(data) {
-      this.queryParams.deptId = data.id;
-      this.handleQuery();
-    },
-    // 用户状态修改
-    handleStatusChange(row) {
-      let text = row.status === "0" ? "启用" : "停用";
-      this.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function() {
-        return changeUserStatus(row.userId, row.status);
-      }).then(() => {
-        this.$modal.msgSuccess(text + "成功");
-      }).catch(function() {
-        row.status = row.status === "0" ? "1" : "0";
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        userId: undefined,
-        deptId: undefined,
-        userName: undefined,
-        nickName: undefined,
-        password: undefined,
-        phonenumber: undefined,
-        email: undefined,
-        sex: undefined,
-        status: "0",
-        remark: undefined,
-        postIds: [],
-        roleIds: []
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.queryParams.deptId = undefined;
-      this.$refs.tree.setCurrentKey(null);
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.userId);
-      this.single = selection.length != 1;
-      this.multiple = !selection.length;
-    },
-    // 更多操作触发
-    handleCommand(command, row) {
-      switch (command) {
-        case "handleResetPwd":
-          this.handleResetPwd(row);
-          break;
-        case "handleAuthRole":
-          this.handleAuthRole(row);
-          break;
-        default:
-          break;
-      }
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      getUser().then(response => {
-        this.postOptions = response.posts;
-        this.roleOptions = response.roles;
-        this.open = true;
-        this.title = "添加用户";
-        this.form.password = this.initPassword;
-      });
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const userId = row.userId || this.ids;
-      getUser(userId).then(response => {
-        this.form = response.data;
-        this.postOptions = response.posts;
-        this.roleOptions = response.roles;
-        this.$set(this.form, "postIds", response.postIds);
-        this.$set(this.form, "roleIds", response.roleIds);
-        this.open = true;
-        this.title = "修改用户";
-        this.form.password = "";
-      });
-    },
-    /** 重置密码按钮操作 */
-    handleResetPwd(row) {
-      this.$prompt('请输入"' + row.userName + '"的新密码', "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        closeOnClickModal: false,
-        inputPattern: /^.{5,20}$/,
-        inputErrorMessage: "用户密码长度必须介于 5 和 20 之间",
-        inputValidator: (value) => {
-          if (/<|>|"|'|\||\\/.test(value)) {
-            return "不能包含非法字符:< > \" ' \\\ |"
-          }
-        },
-      }).then(({ value }) => {
-          resetUserPwd(row.userId, value).then(response => {
-            this.$modal.msgSuccess("修改成功,新密码是:" + value);
-          });
-        }).catch(() => {});
-    },
-    /** 分配角色操作 */
-    handleAuthRole: function(row) {
-      const userId = row.userId;
-      this.$router.push("/system/user-auth/role/" + userId);
-    },
-    /** 提交按钮 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.userId != undefined) {
-            updateUser(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addUser(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const userIds = row.userId || this.ids;
-      this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function() {
-        return delUser(userIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('system/user/export', {
-        ...this.queryParams
-      }, `user_${new Date().getTime()}.xlsx`)
-    },
-    /** 导入按钮操作 */
-    handleImport() {
-      this.upload.title = "用户导入";
-      this.upload.open = true;
-    },
-    /** 下载模板操作 */
-    importTemplate() {
-      this.download('system/user/importTemplate', {
-      }, `user_template_${new Date().getTime()}.xlsx`)
-    },
-    // 文件上传中处理
-    handleFileUploadProgress(event, file, fileList) {
-      this.upload.isUploading = true;
-    },
-    // 文件上传成功处理
-    handleFileSuccess(response, file, fileList) {
-      this.upload.open = false;
-      this.upload.isUploading = false;
-      this.$refs.upload.clearFiles();
-      this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
-      this.getList();
-    },
-    // 提交上传文件
-    submitFileForm() {
-      this.$refs.upload.submit();
-    }
-  }
-};
-</script>
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/system/user/profile/index.vue b/ruoyi-ui/src/views/system/user/profile/index.vue
deleted file mode 100644
index 529c564..0000000
--- a/ruoyi-ui/src/views/system/user/profile/index.vue
+++ /dev/null
@@ -1,91 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-row :gutter="20">
-      <el-col :span="6" :xs="24">
-        <el-card class="box-card">
-          <div slot="header" class="clearfix">
-            <span>个人信息</span>
-          </div>
-          <div>
-            <div class="text-center">
-              <userAvatar />
-            </div>
-            <ul class="list-group list-group-striped">
-              <li class="list-group-item">
-                <svg-icon icon-class="user" />用户名称
-                <div class="pull-right">{{ user.userName }}</div>
-              </li>
-              <li class="list-group-item">
-                <svg-icon icon-class="phone" />手机号码
-                <div class="pull-right">{{ user.phonenumber }}</div>
-              </li>
-              <li class="list-group-item">
-                <svg-icon icon-class="email" />用户邮箱
-                <div class="pull-right">{{ user.email }}</div>
-              </li>
-              <li class="list-group-item">
-                <svg-icon icon-class="tree" />所属部门
-                <div class="pull-right" v-if="user.dept">{{ user.dept.deptName }} / {{ postGroup }}</div>
-              </li>
-              <li class="list-group-item">
-                <svg-icon icon-class="peoples" />所属角色
-                <div class="pull-right">{{ roleGroup }}</div>
-              </li>
-              <li class="list-group-item">
-                <svg-icon icon-class="date" />创建日期
-                <div class="pull-right">{{ user.createTime }}</div>
-              </li>
-            </ul>
-          </div>
-        </el-card>
-      </el-col>
-      <el-col :span="18" :xs="24">
-        <el-card>
-          <div slot="header" class="clearfix">
-            <span>基本资料</span>
-          </div>
-          <el-tabs v-model="activeTab">
-            <el-tab-pane label="基本资料" name="userinfo">
-              <userInfo :user="user" />
-            </el-tab-pane>
-            <el-tab-pane label="修改密码" name="resetPwd">
-              <resetPwd />
-            </el-tab-pane>
-          </el-tabs>
-        </el-card>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import userAvatar from "./userAvatar";
-import userInfo from "./userInfo";
-import resetPwd from "./resetPwd";
-import { getUserProfile } from "@/api/system/user";
-
-export default {
-  name: "Profile",
-  components: { userAvatar, userInfo, resetPwd },
-  data() {
-    return {
-      user: {},
-      roleGroup: {},
-      postGroup: {},
-      activeTab: "userinfo"
-    };
-  },
-  created() {
-    this.getUser();
-  },
-  methods: {
-    getUser() {
-      getUserProfile().then(response => {
-        this.user = response.data;
-        this.roleGroup = response.roleGroup;
-        this.postGroup = response.postGroup;
-      });
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/system/user/profile/resetPwd.vue b/ruoyi-ui/src/views/system/user/profile/resetPwd.vue
deleted file mode 100644
index f329e6e..0000000
--- a/ruoyi-ui/src/views/system/user/profile/resetPwd.vue
+++ /dev/null
@@ -1,69 +0,0 @@
-<template>
-  <el-form ref="form" :model="user" :rules="rules" label-width="80px">
-    <el-form-item label="旧密码" prop="oldPassword">
-      <el-input v-model="user.oldPassword" placeholder="请输入旧密码" type="password" show-password/>
-    </el-form-item>
-    <el-form-item label="新密码" prop="newPassword">
-      <el-input v-model="user.newPassword" placeholder="请输入新密码" type="password" show-password/>
-    </el-form-item>
-    <el-form-item label="确认密码" prop="confirmPassword">
-      <el-input v-model="user.confirmPassword" placeholder="请确认新密码" type="password" show-password/>
-    </el-form-item>
-    <el-form-item>
-      <el-button type="primary" size="mini" @click="submit">保存</el-button>
-      <el-button type="danger" size="mini" @click="close">关闭</el-button>
-    </el-form-item>
-  </el-form>
-</template>
-
-<script>
-import { updateUserPwd } from "@/api/system/user";
-
-export default {
-  data() {
-    const equalToPassword = (rule, value, callback) => {
-      if (this.user.newPassword !== value) {
-        callback(new Error("两次输入的密码不一致"));
-      } else {
-        callback();
-      }
-    };
-    return {
-      user: {
-        oldPassword: undefined,
-        newPassword: undefined,
-        confirmPassword: undefined
-      },
-      // 表单校验
-      rules: {
-        oldPassword: [
-          { required: true, message: "旧密码不能为空", trigger: "blur" }
-        ],
-        newPassword: [
-          { required: true, message: "新密码不能为空", trigger: "blur" },
-          { min: 6, max: 20, message: "长度在 6 到 20 个字符", trigger: "blur" },
-          { pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" }
-        ],
-        confirmPassword: [
-          { required: true, message: "确认密码不能为空", trigger: "blur" },
-          { required: true, validator: equalToPassword, trigger: "blur" }
-        ]
-      }
-    };
-  },
-  methods: {
-    submit() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => {
-            this.$modal.msgSuccess("修改成功");
-          });
-        }
-      });
-    },
-    close() {
-      this.$tab.closePage();
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue
deleted file mode 100644
index cbf3ca1..0000000
--- a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue
+++ /dev/null
@@ -1,184 +0,0 @@
-<template>
-  <div>
-    <div class="user-info-head" @click="editCropper()"><img v-bind:src="options.img" title="点击上传头像" class="img-circle img-lg" /></div>
-    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened"  @close="closeDialog">
-      <el-row>
-        <el-col :xs="24" :md="12" :style="{height: '350px'}">
-          <vue-cropper
-            ref="cropper"
-            :img="options.img"
-            :info="true"
-            :autoCrop="options.autoCrop"
-            :autoCropWidth="options.autoCropWidth"
-            :autoCropHeight="options.autoCropHeight"
-            :fixedBox="options.fixedBox"
-            :outputType="options.outputType"
-            @realTime="realTime"
-            v-if="visible"
-          />
-        </el-col>
-        <el-col :xs="24" :md="12" :style="{height: '350px'}">
-          <div class="avatar-upload-preview">
-            <img :src="previews.url" :style="previews.img" />
-          </div>
-        </el-col>
-      </el-row>
-      <br />
-      <el-row>
-        <el-col :lg="2" :sm="3" :xs="3">
-          <el-upload action="#" :http-request="requestUpload" :show-file-list="false" :before-upload="beforeUpload">
-            <el-button size="small">
-              选择
-              <i class="el-icon-upload el-icon--right"></i>
-            </el-button>
-          </el-upload>
-        </el-col>
-        <el-col :lg="{span: 1, offset: 2}" :sm="2" :xs="2">
-          <el-button icon="el-icon-plus" size="small" @click="changeScale(1)"></el-button>
-        </el-col>
-        <el-col :lg="{span: 1, offset: 1}" :sm="2" :xs="2">
-          <el-button icon="el-icon-minus" size="small" @click="changeScale(-1)"></el-button>
-        </el-col>
-        <el-col :lg="{span: 1, offset: 1}" :sm="2" :xs="2">
-          <el-button icon="el-icon-refresh-left" size="small" @click="rotateLeft()"></el-button>
-        </el-col>
-        <el-col :lg="{span: 1, offset: 1}" :sm="2" :xs="2">
-          <el-button icon="el-icon-refresh-right" size="small" @click="rotateRight()"></el-button>
-        </el-col>
-        <el-col :lg="{span: 2, offset: 6}" :sm="2" :xs="2">
-          <el-button type="primary" size="small" @click="uploadImg()">提 交</el-button>
-        </el-col>
-      </el-row>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import store from "@/store";
-import { VueCropper } from "vue-cropper";
-import { uploadAvatar } from "@/api/system/user";
-import { debounce } from '@/utils'
-
-export default {
-  components: { VueCropper },
-  data() {
-    return {
-      // 是否显示弹出层
-      open: false,
-      // 是否显示cropper
-      visible: false,
-      // 弹出层标题
-      title: "修改头像",
-      options: {
-        img: store.getters.avatar,  //裁剪图片的地址
-        autoCrop: true,             // 是否默认生成截图框
-        autoCropWidth: 200,         // 默认生成截图框宽度
-        autoCropHeight: 200,        // 默认生成截图框高度
-        fixedBox: true,             // 固定截图框大小 不允许改变
-        outputType:"png",           // 默认生成截图为PNG格式
-        filename: 'avatar'          // 文件名称
-      },
-      previews: {},
-      resizeHandler: null
-    };
-  },
-  methods: {
-    // 编辑头像
-    editCropper() {
-      this.open = true;
-    },
-    // 打开弹出层结束时的回调
-    modalOpened() {
-      this.visible = true;
-      if (!this.resizeHandler) {
-        this.resizeHandler = debounce(() => {
-          this.refresh()
-        }, 100)
-      }
-      window.addEventListener("resize", this.resizeHandler)
-    },
-    // 刷新组件
-    refresh() {
-      this.$refs.cropper.refresh();
-    },
-    // 覆盖默认的上传行为
-    requestUpload() {
-    },
-    // 向左旋转
-    rotateLeft() {
-      this.$refs.cropper.rotateLeft();
-    },
-    // 向右旋转
-    rotateRight() {
-      this.$refs.cropper.rotateRight();
-    },
-    // 图片缩放
-    changeScale(num) {
-      num = num || 1;
-      this.$refs.cropper.changeScale(num);
-    },
-    // 上传预处理
-    beforeUpload(file) {
-      if (file.type.indexOf("image/") == -1) {
-        this.$modal.msgError("文件格式错误,请上传图片类型,如:JPG,PNG后缀的文件。");
-      } else {
-        const reader = new FileReader();
-        reader.readAsDataURL(file);
-        reader.onload = () => {
-          this.options.img = reader.result;
-          this.options.filename = file.name;
-        };
-      }
-    },
-    // 上传图片
-    uploadImg() {
-      this.$refs.cropper.getCropBlob(data => {
-        let formData = new FormData();
-        formData.append("avatarfile", data, this.options.filename);
-        uploadAvatar(formData).then(response => {
-          this.open = false;
-          this.options.img = process.env.VUE_APP_BASE_API + response.imgUrl;
-          store.commit('SET_AVATAR', this.options.img);
-          this.$modal.msgSuccess("修改成功");
-          this.visible = false;
-        });
-      });
-    },
-    // 实时预览
-    realTime(data) {
-      this.previews = data;
-    },
-    // 关闭窗口
-    closeDialog() {
-      this.options.img = store.getters.avatar
-      this.visible = false;
-      window.removeEventListener("resize", this.resizeHandler)
-    }
-  }
-};
-</script>
-<style scoped lang="scss">
-.user-info-head {
-  position: relative;
-  display: inline-block;
-  height: 120px;
-}
-
-.user-info-head:hover:after {
-  content: '+';
-  position: absolute;
-  left: 0;
-  right: 0;
-  top: 0;
-  bottom: 0;
-  color: #eee;
-  background: rgba(0, 0, 0, 0.5);
-  font-size: 24px;
-  font-style: normal;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  cursor: pointer;
-  line-height: 110px;
-  border-radius: 50%;
-}
-</style>
diff --git a/ruoyi-ui/src/views/system/user/profile/userInfo.vue b/ruoyi-ui/src/views/system/user/profile/userInfo.vue
deleted file mode 100644
index c970dc9..0000000
--- a/ruoyi-ui/src/views/system/user/profile/userInfo.vue
+++ /dev/null
@@ -1,88 +0,0 @@
-<template>
-  <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-    <el-form-item label="用户昵称" prop="nickName">
-      <el-input v-model="form.nickName" maxlength="30" />
-    </el-form-item> 
-    <el-form-item label="手机号码" prop="phonenumber">
-      <el-input v-model="form.phonenumber" maxlength="11" />
-    </el-form-item>
-    <el-form-item label="邮箱" prop="email">
-      <el-input v-model="form.email" maxlength="50" />
-    </el-form-item>
-    <el-form-item label="性别">
-      <el-radio-group v-model="form.sex">
-        <el-radio label="0">男</el-radio>
-        <el-radio label="1">女</el-radio>
-      </el-radio-group>
-    </el-form-item>
-    <el-form-item>
-      <el-button type="primary" size="mini" @click="submit">保存</el-button>
-      <el-button type="danger" size="mini" @click="close">关闭</el-button>
-    </el-form-item>
-  </el-form>
-</template>
-
-<script>
-import { updateUserProfile } from "@/api/system/user";
-
-export default {
-  props: {
-    user: {
-      type: Object
-    }
-  },
-  data() {
-    return {
-      form: {},
-      // 表单校验
-      rules: {
-        nickName: [
-          { required: true, message: "用户昵称不能为空", trigger: "blur" }
-        ],
-        email: [
-          { required: true, message: "邮箱地址不能为空", trigger: "blur" },
-          {
-            type: "email",
-            message: "请输入正确的邮箱地址",
-            trigger: ["blur", "change"]
-          }
-        ],
-        phonenumber: [
-          { required: true, message: "手机号码不能为空", trigger: "blur" },
-          {
-            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
-            message: "请输入正确的手机号码",
-            trigger: "blur"
-          }
-        ]
-      }
-    };
-  },
-  watch: {
-    user: {
-      handler(user) {
-        if (user) {
-          this.form = { nickName: user.nickName, phonenumber: user.phonenumber, email: user.email, sex: user.sex };
-        }
-      },
-      immediate: true
-    }
-  },
-  methods: {
-    submit() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          updateUserProfile(this.form).then(response => {
-            this.$modal.msgSuccess("修改成功");
-            this.user.phonenumber = this.form.phonenumber;
-            this.user.email = this.form.email;
-          });
-        }
-      });
-    },
-    close() {
-      this.$tab.closePage();
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue b/ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue
deleted file mode 100644
index b5c2e2e..0000000
--- a/ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue
+++ /dev/null
@@ -1,106 +0,0 @@
-<template>
-  <div>
-    <el-dialog
-      v-bind="$attrs"
-      width="500px"
-      :close-on-click-modal="false"
-      :modal-append-to-body="false"
-      v-on="$listeners"
-      @open="onOpen"
-      @close="onClose"
-    >
-      <el-row :gutter="15">
-        <el-form
-          ref="elForm"
-          :model="formData"
-          :rules="rules"
-          size="medium"
-          label-width="100px"
-        >
-          <el-col :span="24">
-            <el-form-item label="生成类型" prop="type">
-              <el-radio-group v-model="formData.type">
-                <el-radio-button
-                  v-for="(item, index) in typeOptions"
-                  :key="index"
-                  :label="item.value"
-                  :disabled="item.disabled"
-                >
-                  {{ item.label }}
-                </el-radio-button>
-              </el-radio-group>
-            </el-form-item>
-            <el-form-item v-if="showFileName" label="文件名" prop="fileName">
-              <el-input v-model="formData.fileName" placeholder="请输入文件名" clearable />
-            </el-form-item>
-          </el-col>
-        </el-form>
-      </el-row>
-
-      <div slot="footer">
-        <el-button @click="close">
-          取消
-        </el-button>
-        <el-button type="primary" @click="handleConfirm">
-          确定
-        </el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-<script>
-export default {
-  inheritAttrs: false,
-  props: ['showFileName'],
-  data() {
-    return {
-      formData: {
-        fileName: undefined,
-        type: 'file'
-      },
-      rules: {
-        fileName: [{
-          required: true,
-          message: '请输入文件名',
-          trigger: 'blur'
-        }],
-        type: [{
-          required: true,
-          message: '生成类型不能为空',
-          trigger: 'change'
-        }]
-      },
-      typeOptions: [{
-        label: '页面',
-        value: 'file'
-      }, {
-        label: '弹窗',
-        value: 'dialog'
-      }]
-    }
-  },
-  computed: {
-  },
-  watch: {},
-  mounted() {},
-  methods: {
-    onOpen() {
-      if (this.showFileName) {
-        this.formData.fileName = `${+new Date()}.vue`
-      }
-    },
-    onClose() {
-    },
-    close(e) {
-      this.$emit('update:visible', false)
-    },
-    handleConfirm() {
-      this.$refs.elForm.validate(valid => {
-        if (!valid) return
-        this.$emit('confirm', { ...this.formData })
-        this.close()
-      })
-    }
-  }
-}
-</script>
diff --git a/ruoyi-ui/src/views/tool/build/DraggableItem.vue b/ruoyi-ui/src/views/tool/build/DraggableItem.vue
deleted file mode 100644
index e881778..0000000
--- a/ruoyi-ui/src/views/tool/build/DraggableItem.vue
+++ /dev/null
@@ -1,100 +0,0 @@
-<script>
-import draggable from 'vuedraggable'
-import render from '@/utils/generator/render'
-
-const components = {
-  itemBtns(h, element, index, parent) {
-    const { copyItem, deleteItem } = this.$listeners
-    return [
-      <span class="drawing-item-copy" title="复制" onClick={event => {
-        copyItem(element, parent); event.stopPropagation()
-      }}>
-        <i class="el-icon-copy-document" />
-      </span>,
-      <span class="drawing-item-delete" title="删除" onClick={event => {
-        deleteItem(index, parent); event.stopPropagation()
-      }}>
-        <i class="el-icon-delete" />
-      </span>
-    ]
-  }
-}
-const layouts = {
-  colFormItem(h, element, index, parent) {
-    const { activeItem } = this.$listeners
-    let className = this.activeId === element.formId ? 'drawing-item active-from-item' : 'drawing-item'
-    if (this.formConf.unFocusedComponentBorder) className += ' unfocus-bordered'
-    return (
-      <el-col span={element.span} class={className}
-        nativeOnClick={event => { activeItem(element); event.stopPropagation() }}>
-        <el-form-item label-width={element.labelWidth ? `${element.labelWidth}px` : null}
-          label={element.label} required={element.required}>
-          <render key={element.renderKey} conf={element} onInput={ event => {
-            this.$set(element, 'defaultValue', event)
-          }} />
-        </el-form-item>
-        {components.itemBtns.apply(this, arguments)}
-      </el-col>
-    )
-  },
-  rowFormItem(h, element, index, parent) {
-    const { activeItem } = this.$listeners
-    const className = this.activeId === element.formId ? 'drawing-row-item active-from-item' : 'drawing-row-item'
-    let child = renderChildren.apply(this, arguments)
-    if (element.type === 'flex') {
-      child = <el-row type={element.type} justify={element.justify} align={element.align}>
-              {child}
-            </el-row>
-    }
-    return (
-      <el-col span={element.span}>
-        <el-row gutter={element.gutter} class={className}
-          nativeOnClick={event => { activeItem(element); event.stopPropagation() }}>
-          <span class="component-name">{element.componentName}</span>
-          <draggable list={element.children} animation={340} group="componentsGroup" class="drag-wrapper">
-            {child}
-          </draggable>
-          {components.itemBtns.apply(this, arguments)}
-        </el-row>
-      </el-col>
-    )
-  }
-}
-
-function renderChildren(h, element, index, parent) {
-  if (!Array.isArray(element.children)) return null
-  return element.children.map((el, i) => {
-    const layout = layouts[el.layout]
-    if (layout) {
-      return layout.call(this, h, el, i, element.children)
-    }
-    return layoutIsNotFound()
-  })
-}
-
-function layoutIsNotFound() {
-  throw new Error(`没有与${this.element.layout}匹配的layout`)
-}
-
-export default {
-  components: {
-    render,
-    draggable
-  },
-  props: [
-    'element',
-    'index',
-    'drawingList',
-    'activeId',
-    'formConf'
-  ],
-  render(h) {
-    const layout = layouts[this.element.layout]
-
-    if (layout) {
-      return layout.call(this, h, this.element, this.index, this.drawingList)
-    }
-    return layoutIsNotFound()
-  }
-}
-</script>
diff --git a/ruoyi-ui/src/views/tool/build/IconsDialog.vue b/ruoyi-ui/src/views/tool/build/IconsDialog.vue
deleted file mode 100644
index 958be50..0000000
--- a/ruoyi-ui/src/views/tool/build/IconsDialog.vue
+++ /dev/null
@@ -1,123 +0,0 @@
-<template>
-  <div class="icon-dialog">
-    <el-dialog
-      v-bind="$attrs"
-      width="980px"
-      :modal-append-to-body="false"
-      v-on="$listeners"
-      @open="onOpen"
-      @close="onClose"
-    >
-      <div slot="title">
-        选择图标
-        <el-input
-          v-model="key"
-          size="mini"
-          :style="{width: '260px'}"
-          placeholder="请输入图标名称"
-          prefix-icon="el-icon-search"
-          clearable
-        />
-      </div>
-      <ul class="icon-ul">
-        <li
-          v-for="icon in iconList"
-          :key="icon"
-          :class="active===icon?'active-item':''"
-          @click="onSelect(icon)"
-        >
-          <i :class="icon" />
-          <div>{{ icon }}</div>
-        </li>
-      </ul>
-    </el-dialog>
-  </div>
-</template>
-<script>
-import iconList from '@/utils/generator/icon.json'
-
-const originList = iconList.map(name => `el-icon-${name}`)
-
-export default {
-  inheritAttrs: false,
-  props: ['current'],
-  data() {
-    return {
-      iconList: originList,
-      active: null,
-      key: ''
-    }
-  },
-  watch: {
-    key(val) {
-      if (val) {
-        this.iconList = originList.filter(name => name.indexOf(val) > -1)
-      } else {
-        this.iconList = originList
-      }
-    }
-  },
-  methods: {
-    onOpen() {
-      this.active = this.current
-      this.key = ''
-    },
-    onClose() {},
-    onSelect(icon) {
-      this.active = icon
-      this.$emit('select', icon)
-      this.$emit('update:visible', false)
-    }
-  }
-}
-</script>
-<style lang="scss" scoped>
-.icon-ul {
-  margin: 0;
-  padding: 0;
-  font-size: 0;
-  li {
-    list-style-type: none;
-    text-align: center;
-    font-size: 14px;
-    display: inline-block;
-    width: 16.66%;
-    box-sizing: border-box;
-    height: 108px;
-    padding: 15px 6px 6px 6px;
-    cursor: pointer;
-    overflow: hidden;
-    &:hover {
-      background: #f2f2f2;
-    }
-    &.active-item{
-      background: #e1f3fb;
-      color: #7a6df0
-    }
-    > i {
-      font-size: 30px;
-      line-height: 50px;
-    }
-  }
-}
-.icon-dialog {
-  ::v-deep .el-dialog {
-    border-radius: 8px;
-    margin-bottom: 0;
-    margin-top: 4vh !important;
-    display: flex;
-    flex-direction: column;
-    max-height: 92vh;
-    overflow: hidden;
-    box-sizing: border-box;
-    .el-dialog__header {
-      padding-top: 14px;
-    }
-    .el-dialog__body {
-      margin: 0 20px 20px 20px;
-      padding: 0;
-      overflow: auto;
-    }
-  }
-}
-</style>
diff --git a/ruoyi-ui/src/views/tool/build/RightPanel.vue b/ruoyi-ui/src/views/tool/build/RightPanel.vue
deleted file mode 100644
index c2760eb..0000000
--- a/ruoyi-ui/src/views/tool/build/RightPanel.vue
+++ /dev/null
@@ -1,946 +0,0 @@
-<template>
-  <div class="right-board">
-    <el-tabs v-model="currentTab" class="center-tabs">
-      <el-tab-pane label="组件属性" name="field" />
-      <el-tab-pane label="表单属性" name="form" />
-    </el-tabs>
-    <div class="field-box">
-      <a class="document-link" target="_blank" :href="documentLink" title="查看组件文档">
-        <i class="el-icon-link" />
-      </a>
-      <el-scrollbar class="right-scrollbar">
-        <!-- 组件属性 -->
-        <el-form v-show="currentTab==='field' && showField" size="small" label-width="90px">
-          <el-form-item v-if="activeData.changeTag" label="组件类型">
-            <el-select
-              v-model="activeData.tagIcon"
-              placeholder="请选择组件类型"
-              :style="{width: '100%'}"
-              @change="tagChange"
-            >
-              <el-option-group v-for="group in tagList" :key="group.label" :label="group.label">
-                <el-option
-                  v-for="item in group.options"
-                  :key="item.label"
-                  :label="item.label"
-                  :value="item.tagIcon"
-                >
-                  <svg-icon class="node-icon" :icon-class="item.tagIcon" />
-                  <span> {{ item.label }}</span>
-                </el-option>
-              </el-option-group>
-            </el-select>
-          </el-form-item>
-          <el-form-item v-if="activeData.vModel!==undefined" label="字段名">
-            <el-input v-model="activeData.vModel" placeholder="请输入字段名(v-model)" />
-          </el-form-item>
-          <el-form-item v-if="activeData.componentName!==undefined" label="组件名">
-            {{ activeData.componentName }}
-          </el-form-item>
-          <el-form-item v-if="activeData.label!==undefined" label="标题">
-            <el-input v-model="activeData.label" placeholder="请输入标题" />
-          </el-form-item>
-          <el-form-item v-if="activeData.placeholder!==undefined" label="占位提示">
-            <el-input v-model="activeData.placeholder" placeholder="请输入占位提示" />
-          </el-form-item>
-          <el-form-item v-if="activeData['start-placeholder']!==undefined" label="开始占位">
-            <el-input v-model="activeData['start-placeholder']" placeholder="请输入占位提示" />
-          </el-form-item>
-          <el-form-item v-if="activeData['end-placeholder']!==undefined" label="结束占位">
-            <el-input v-model="activeData['end-placeholder']" placeholder="请输入占位提示" />
-          </el-form-item>
-          <el-form-item v-if="activeData.span!==undefined" label="表单栅格">
-            <el-slider v-model="activeData.span" :max="24" :min="1" :marks="{12:''}" @change="spanChange" />
-          </el-form-item>
-          <el-form-item v-if="activeData.layout==='rowFormItem'" label="栅格间隔">
-            <el-input-number v-model="activeData.gutter" :min="0" placeholder="栅格间隔" />
-          </el-form-item>
-          <el-form-item v-if="activeData.layout==='rowFormItem'" label="布局模式">
-            <el-radio-group v-model="activeData.type">
-              <el-radio-button label="default" />
-              <el-radio-button label="flex" />
-            </el-radio-group>
-          </el-form-item>
-          <el-form-item v-if="activeData.justify!==undefined&&activeData.type==='flex'" label="水平排列">
-            <el-select v-model="activeData.justify" placeholder="请选择水平排列" :style="{width: '100%'}">
-              <el-option
-                v-for="(item, index) in justifyOptions"
-                :key="index"
-                :label="item.label"
-                :value="item.value"
-              />
-            </el-select>
-          </el-form-item>
-          <el-form-item v-if="activeData.align!==undefined&&activeData.type==='flex'" label="垂直排列">
-            <el-radio-group v-model="activeData.align">
-              <el-radio-button label="top" />
-              <el-radio-button label="middle" />
-              <el-radio-button label="bottom" />
-            </el-radio-group>
-          </el-form-item>
-          <el-form-item v-if="activeData.labelWidth!==undefined" label="标签宽度">
-            <el-input v-model.number="activeData.labelWidth" type="number" placeholder="请输入标签宽度" />
-          </el-form-item>
-          <el-form-item v-if="activeData.style&&activeData.style.width!==undefined" label="组件宽度">
-            <el-input v-model="activeData.style.width" placeholder="请输入组件宽度" clearable />
-          </el-form-item>
-          <el-form-item v-if="activeData.vModel!==undefined" label="默认值">
-            <el-input
-              :value="setDefaultValue(activeData.defaultValue)"
-              placeholder="请输入默认值"
-              @input="onDefaultValueInput"
-            />
-          </el-form-item>
-          <el-form-item v-if="activeData.tag==='el-checkbox-group'" label="至少应选">
-            <el-input-number
-              :value="activeData.min"
-              :min="0"
-              placeholder="至少应选"
-              @input="$set(activeData, 'min', $event?$event:undefined)"
-            />
-          </el-form-item>
-          <el-form-item v-if="activeData.tag==='el-checkbox-group'" label="最多可选">
-            <el-input-number
-              :value="activeData.max"
-              :min="0"
-              placeholder="最多可选"
-              @input="$set(activeData, 'max', $event?$event:undefined)"
-            />
-          </el-form-item>
-          <el-form-item v-if="activeData.prepend!==undefined" label="前缀">
-            <el-input v-model="activeData.prepend" placeholder="请输入前缀" />
-          </el-form-item>
-          <el-form-item v-if="activeData.append!==undefined" label="后缀">
-            <el-input v-model="activeData.append" placeholder="请输入后缀" />
-          </el-form-item>
-          <el-form-item v-if="activeData['prefix-icon']!==undefined" label="前图标">
-            <el-input v-model="activeData['prefix-icon']" placeholder="请输入前图标名称">
-              <el-button slot="append" icon="el-icon-thumb" @click="openIconsDialog('prefix-icon')">
-                选择
-              </el-button>
-            </el-input>
-          </el-form-item>
-          <el-form-item v-if="activeData['suffix-icon'] !== undefined" label="后图标">
-            <el-input v-model="activeData['suffix-icon']" placeholder="请输入后图标名称">
-              <el-button slot="append" icon="el-icon-thumb" @click="openIconsDialog('suffix-icon')">
-                选择
-              </el-button>
-            </el-input>
-          </el-form-item>
-          <el-form-item v-if="activeData.tag === 'el-cascader'" label="选项分隔符">
-            <el-input v-model="activeData.separator" placeholder="请输入选项分隔符" />
-          </el-form-item>
-          <el-form-item v-if="activeData.autosize !== undefined" label="最小行数">
-            <el-input-number v-model="activeData.autosize.minRows" :min="1" placeholder="最小行数" />
-          </el-form-item>
-          <el-form-item v-if="activeData.autosize !== undefined" label="最大行数">
-            <el-input-number v-model="activeData.autosize.maxRows" :min="1" placeholder="最大行数" />
-          </el-form-item>
-          <el-form-item v-if="activeData.min !== undefined" label="最小值">
-            <el-input-number v-model="activeData.min" placeholder="最小值" />
-          </el-form-item>
-          <el-form-item v-if="activeData.max !== undefined" label="最大值">
-            <el-input-number v-model="activeData.max" placeholder="最大值" />
-          </el-form-item>
-          <el-form-item v-if="activeData.step !== undefined" label="步长">
-            <el-input-number v-model="activeData.step" placeholder="步数" />
-          </el-form-item>
-          <el-form-item v-if="activeData.tag === 'el-input-number'" label="精度">
-            <el-input-number v-model="activeData.precision" :min="0" placeholder="精度" />
-          </el-form-item>
-          <el-form-item v-if="activeData.tag === 'el-input-number'" label="按钮位置">
-            <el-radio-group v-model="activeData['controls-position']">
-              <el-radio-button label="">
-                默认
-              </el-radio-button>
-              <el-radio-button label="right">
-                右侧
-              </el-radio-button>
-            </el-radio-group>
-          </el-form-item>
-          <el-form-item v-if="activeData.maxlength !== undefined" label="最多输入">
-            <el-input v-model="activeData.maxlength" placeholder="请输入字符长度">
-              <template slot="append">
-                个字符
-              </template>
-            </el-input>
-          </el-form-item>
-          <el-form-item v-if="activeData['active-text'] !== undefined" label="开启提示">
-            <el-input v-model="activeData['active-text']" placeholder="请输入开启提示" />
-          </el-form-item>
-          <el-form-item v-if="activeData['inactive-text'] !== undefined" label="关闭提示">
-            <el-input v-model="activeData['inactive-text']" placeholder="请输入关闭提示" />
-          </el-form-item>
-          <el-form-item v-if="activeData['active-value'] !== undefined" label="开启值">
-            <el-input
-              :value="setDefaultValue(activeData['active-value'])"
-              placeholder="请输入开启值"
-              @input="onSwitchValueInput($event, 'active-value')"
-            />
-          </el-form-item>
-          <el-form-item v-if="activeData['inactive-value'] !== undefined" label="关闭值">
-            <el-input
-              :value="setDefaultValue(activeData['inactive-value'])"
-              placeholder="请输入关闭值"
-              @input="onSwitchValueInput($event, 'inactive-value')"
-            />
-          </el-form-item>
-          <el-form-item
-            v-if="activeData.type !== undefined && 'el-date-picker' === activeData.tag"
-            label="时间类型"
-          >
-            <el-select
-              v-model="activeData.type"
-              placeholder="请选择时间类型"
-              :style="{ width: '100%' }"
-              @change="dateTypeChange"
-            >
-              <el-option
-                v-for="(item, index) in dateOptions"
-                :key="index"
-                :label="item.label"
-                :value="item.value"
-              />
-            </el-select>
-          </el-form-item>
-          <el-form-item v-if="activeData.name !== undefined" label="文件字段名">
-            <el-input v-model="activeData.name" placeholder="请输入上传文件字段名" />
-          </el-form-item>
-          <el-form-item v-if="activeData.accept !== undefined" label="文件类型">
-            <el-select
-              v-model="activeData.accept"
-              placeholder="请选择文件类型"
-              :style="{ width: '100%' }"
-              clearable
-            >
-              <el-option label="图片" value="image/*" />
-              <el-option label="视频" value="video/*" />
-              <el-option label="音频" value="audio/*" />
-              <el-option label="excel" value=".xls,.xlsx" />
-              <el-option label="word" value=".doc,.docx" />
-              <el-option label="pdf" value=".pdf" />
-              <el-option label="txt" value=".txt" />
-            </el-select>
-          </el-form-item>
-          <el-form-item v-if="activeData.fileSize !== undefined" label="文件大小">
-            <el-input v-model.number="activeData.fileSize" placeholder="请输入文件大小">
-              <el-select slot="append" v-model="activeData.sizeUnit" :style="{ width: '66px' }">
-                <el-option label="KB" value="KB" />
-                <el-option label="MB" value="MB" />
-                <el-option label="GB" value="GB" />
-              </el-select>
-            </el-input>
-          </el-form-item>
-          <el-form-item v-if="activeData.action !== undefined" label="上传地址">
-            <el-input v-model="activeData.action" placeholder="请输入上传地址" clearable />
-          </el-form-item>
-          <el-form-item v-if="activeData['list-type'] !== undefined" label="列表类型">
-            <el-radio-group v-model="activeData['list-type']" size="small">
-              <el-radio-button label="text">
-                text
-              </el-radio-button>
-              <el-radio-button label="picture">
-                picture
-              </el-radio-button>
-              <el-radio-button label="picture-card">
-                picture-card
-              </el-radio-button>
-            </el-radio-group>
-          </el-form-item>
-          <el-form-item
-            v-if="activeData.buttonText !== undefined"
-            v-show="'picture-card' !== activeData['list-type']"
-            label="按钮文字"
-          >
-            <el-input v-model="activeData.buttonText" placeholder="请输入按钮文字" />
-          </el-form-item>
-          <el-form-item v-if="activeData['range-separator'] !== undefined" label="分隔符">
-            <el-input v-model="activeData['range-separator']" placeholder="请输入分隔符" />
-          </el-form-item>
-          <el-form-item v-if="activeData['picker-options'] !== undefined" label="时间段">
-            <el-input
-              v-model="activeData['picker-options'].selectableRange"
-              placeholder="请输入时间段"
-            />
-          </el-form-item>
-          <el-form-item v-if="activeData.format !== undefined" label="时间格式">
-            <el-input
-              :value="activeData.format"
-              placeholder="请输入时间格式"
-              @input="setTimeValue($event)"
-            />
-          </el-form-item>
-          <template v-if="['el-checkbox-group', 'el-radio-group', 'el-select'].indexOf(activeData.tag) > -1">
-            <el-divider>选项</el-divider>
-            <draggable
-              :list="activeData.options"
-              :animation="340"
-              group="selectItem"
-              handle=".option-drag"
-            >
-              <div v-for="(item, index) in activeData.options" :key="index" class="select-item">
-                <div class="select-line-icon option-drag">
-                  <i class="el-icon-s-operation" />
-                </div>
-                <el-input v-model="item.label" placeholder="选项名" size="small" />
-                <el-input
-                  placeholder="选项值"
-                  size="small"
-                  :value="item.value"
-                  @input="setOptionValue(item, $event)"
-                />
-                <div class="close-btn select-line-icon" @click="activeData.options.splice(index, 1)">
-                  <i class="el-icon-remove-outline" />
-                </div>
-              </div>
-            </draggable>
-            <div style="margin-left: 20px;">
-              <el-button
-                style="padding-bottom: 0"
-                icon="el-icon-circle-plus-outline"
-                type="text"
-                @click="addSelectItem"
-              >
-                添加选项
-              </el-button>
-            </div>
-            <el-divider />
-          </template>
-
-          <template v-if="['el-cascader'].indexOf(activeData.tag) > -1">
-            <el-divider>选项</el-divider>
-            <el-form-item label="数据类型">
-              <el-radio-group v-model="activeData.dataType" size="small">
-                <el-radio-button label="dynamic">
-                  动态数据
-                </el-radio-button>
-                <el-radio-button label="static">
-                  静态数据
-                </el-radio-button>
-              </el-radio-group>
-            </el-form-item>
-
-            <template v-if="activeData.dataType === 'dynamic'">
-              <el-form-item label="标签键名">
-                <el-input v-model="activeData.labelKey" placeholder="请输入标签键名" />
-              </el-form-item>
-              <el-form-item label="值键名">
-                <el-input v-model="activeData.valueKey" placeholder="请输入值键名" />
-              </el-form-item>
-              <el-form-item label="子级键名">
-                <el-input v-model="activeData.childrenKey" placeholder="请输入子级键名" />
-              </el-form-item>
-            </template>
-
-            <el-tree
-              v-if="activeData.dataType === 'static'"
-              draggable
-              :data="activeData.options"
-              node-key="id"
-              :expand-on-click-node="false"
-              :render-content="renderContent"
-            />
-            <div v-if="activeData.dataType === 'static'" style="margin-left: 20px">
-              <el-button
-                style="padding-bottom: 0"
-                icon="el-icon-circle-plus-outline"
-                type="text"
-                @click="addTreeItem"
-              >
-                添加父级
-              </el-button>
-            </div>
-            <el-divider />
-          </template>
-
-          <el-form-item v-if="activeData.optionType !== undefined" label="选项样式">
-            <el-radio-group v-model="activeData.optionType">
-              <el-radio-button label="default">
-                默认
-              </el-radio-button>
-              <el-radio-button label="button">
-                按钮
-              </el-radio-button>
-            </el-radio-group>
-          </el-form-item>
-          <el-form-item v-if="activeData['active-color'] !== undefined" label="开启颜色">
-            <el-color-picker v-model="activeData['active-color']" />
-          </el-form-item>
-          <el-form-item v-if="activeData['inactive-color'] !== undefined" label="关闭颜色">
-            <el-color-picker v-model="activeData['inactive-color']" />
-          </el-form-item>
-
-          <el-form-item v-if="activeData['allow-half'] !== undefined" label="允许半选">
-            <el-switch v-model="activeData['allow-half']" />
-          </el-form-item>
-          <el-form-item v-if="activeData['show-text'] !== undefined" label="辅助文字">
-            <el-switch v-model="activeData['show-text']" @change="rateTextChange" />
-          </el-form-item>
-          <el-form-item v-if="activeData['show-score'] !== undefined" label="显示分数">
-            <el-switch v-model="activeData['show-score']" @change="rateScoreChange" />
-          </el-form-item>
-          <el-form-item v-if="activeData['show-stops'] !== undefined" label="显示间断点">
-            <el-switch v-model="activeData['show-stops']" />
-          </el-form-item>
-          <el-form-item v-if="activeData.range !== undefined" label="范围选择">
-            <el-switch v-model="activeData.range" @change="rangeChange" />
-          </el-form-item>
-          <el-form-item
-            v-if="activeData.border !== undefined && activeData.optionType === 'default'"
-            label="是否带边框"
-          >
-            <el-switch v-model="activeData.border" />
-          </el-form-item>
-          <el-form-item v-if="activeData.tag === 'el-color-picker'" label="颜色格式">
-            <el-select
-              v-model="activeData['color-format']"
-              placeholder="请选择颜色格式"
-              :style="{ width: '100%' }"
-              @change="colorFormatChange"
-            >
-              <el-option
-                v-for="(item, index) in colorFormatOptions"
-                :key="index"
-                :label="item.label"
-                :value="item.value"
-              />
-            </el-select>
-          </el-form-item>
-          <el-form-item
-            v-if="activeData.size !== undefined &&
-              (activeData.optionType === 'button' ||
-                activeData.border ||
-                activeData.tag === 'el-color-picker')"
-            label="选项尺寸"
-          >
-            <el-radio-group v-model="activeData.size">
-              <el-radio-button label="medium">
-                中等
-              </el-radio-button>
-              <el-radio-button label="small">
-                较小
-              </el-radio-button>
-              <el-radio-button label="mini">
-                迷你
-              </el-radio-button>
-            </el-radio-group>
-          </el-form-item>
-          <el-form-item v-if="activeData['show-word-limit'] !== undefined" label="输入统计">
-            <el-switch v-model="activeData['show-word-limit']" />
-          </el-form-item>
-          <el-form-item v-if="activeData.tag === 'el-input-number'" label="严格步数">
-            <el-switch v-model="activeData['step-strictly']" />
-          </el-form-item>
-          <el-form-item v-if="activeData.tag === 'el-cascader'" label="是否多选">
-            <el-switch v-model="activeData.props.props.multiple" />
-          </el-form-item>
-          <el-form-item v-if="activeData.tag === 'el-cascader'" label="展示全路径">
-            <el-switch v-model="activeData['show-all-levels']" />
-          </el-form-item>
-          <el-form-item v-if="activeData.tag === 'el-cascader'" label="可否筛选">
-            <el-switch v-model="activeData.filterable" />
-          </el-form-item>
-          <el-form-item v-if="activeData.clearable !== undefined" label="能否清空">
-            <el-switch v-model="activeData.clearable" />
-          </el-form-item>
-          <el-form-item v-if="activeData.showTip !== undefined" label="显示提示">
-            <el-switch v-model="activeData.showTip" />
-          </el-form-item>
-          <el-form-item v-if="activeData.multiple !== undefined" label="多选文件">
-            <el-switch v-model="activeData.multiple" />
-          </el-form-item>
-          <el-form-item v-if="activeData['auto-upload'] !== undefined" label="自动上传">
-            <el-switch v-model="activeData['auto-upload']" />
-          </el-form-item>
-          <el-form-item v-if="activeData.readonly !== undefined" label="是否只读">
-            <el-switch v-model="activeData.readonly" />
-          </el-form-item>
-          <el-form-item v-if="activeData.disabled !== undefined" label="是否禁用">
-            <el-switch v-model="activeData.disabled" />
-          </el-form-item>
-          <el-form-item v-if="activeData.tag === 'el-select'" label="是否可搜索">
-            <el-switch v-model="activeData.filterable" />
-          </el-form-item>
-          <el-form-item v-if="activeData.tag === 'el-select'" label="是否多选">
-            <el-switch v-model="activeData.multiple" @change="multipleChange" />
-          </el-form-item>
-          <el-form-item v-if="activeData.required !== undefined" label="是否必填">
-            <el-switch v-model="activeData.required" />
-          </el-form-item>
-
-          <template v-if="activeData.layoutTree">
-            <el-divider>布局结构树</el-divider>
-            <el-tree
-              :data="[activeData]"
-              :props="layoutTreeProps"
-              node-key="renderKey"
-              default-expand-all
-              draggable
-            >
-              <span slot-scope="{ node, data }">
-                <span class="node-label">
-                  <svg-icon class="node-icon" :icon-class="data.tagIcon" />
-                  {{ node.label }}
-                </span>
-              </span>
-            </el-tree>
-          </template>
-
-          <template v-if="activeData.layout === 'colFormItem' && activeData.tag !== 'el-button'">
-            <el-divider>正则校验</el-divider>
-            <div
-              v-for="(item, index) in activeData.regList"
-              :key="index"
-              class="reg-item"
-            >
-              <span class="close-btn" @click="activeData.regList.splice(index, 1)">
-                <i class="el-icon-close" />
-              </span>
-              <el-form-item label="表达式">
-                <el-input v-model="item.pattern" placeholder="请输入正则" />
-              </el-form-item>
-              <el-form-item label="错误提示" style="margin-bottom:0">
-                <el-input v-model="item.message" placeholder="请输入错误提示" />
-              </el-form-item>
-            </div>
-            <div style="margin-left: 20px">
-              <el-button icon="el-icon-circle-plus-outline" type="text" @click="addReg">
-                添加规则
-              </el-button>
-            </div>
-          </template>
-        </el-form>
-        <!-- 表单属性 -->
-        <el-form v-show="currentTab === 'form'" size="small" label-width="90px">
-          <el-form-item label="表单名">
-            <el-input v-model="formConf.formRef" placeholder="请输入表单名(ref)" />
-          </el-form-item>
-          <el-form-item label="表单模型">
-            <el-input v-model="formConf.formModel" placeholder="请输入数据模型" />
-          </el-form-item>
-          <el-form-item label="校验模型">
-            <el-input v-model="formConf.formRules" placeholder="请输入校验模型" />
-          </el-form-item>
-          <el-form-item label="表单尺寸">
-            <el-radio-group v-model="formConf.size">
-              <el-radio-button label="medium">
-                中等
-              </el-radio-button>
-              <el-radio-button label="small">
-                较小
-              </el-radio-button>
-              <el-radio-button label="mini">
-                迷你
-              </el-radio-button>
-            </el-radio-group>
-          </el-form-item>
-          <el-form-item label="标签对齐">
-            <el-radio-group v-model="formConf.labelPosition">
-              <el-radio-button label="left">
-                左对齐
-              </el-radio-button>
-              <el-radio-button label="right">
-                右对齐
-              </el-radio-button>
-              <el-radio-button label="top">
-                顶部对齐
-              </el-radio-button>
-            </el-radio-group>
-          </el-form-item>
-          <el-form-item label="标签宽度">
-            <el-input-number v-model="formConf.labelWidth" placeholder="标签宽度" />
-          </el-form-item>
-          <el-form-item label="栅格间隔">
-            <el-input-number v-model="formConf.gutter" :min="0" placeholder="栅格间隔" />
-          </el-form-item>
-          <el-form-item label="禁用表单">
-            <el-switch v-model="formConf.disabled" />
-          </el-form-item>
-          <el-form-item label="表单按钮">
-            <el-switch v-model="formConf.formBtns" />
-          </el-form-item>
-          <el-form-item label="显示未选中组件边框">
-            <el-switch v-model="formConf.unFocusedComponentBorder" />
-          </el-form-item>
-        </el-form>
-      </el-scrollbar>
-    </div>
-
-    <treeNode-dialog :visible.sync="dialogVisible" title="添加选项" @commit="addNode" />
-    <icons-dialog :visible.sync="iconsVisible" :current="activeData[currentIconModel]" @select="setIcon" />
-  </div>
-</template>
-
-<script>
-import { isArray } from 'util'
-import draggable from 'vuedraggable'
-import TreeNodeDialog from './TreeNodeDialog'
-import { isNumberStr } from '@/utils/index'
-import IconsDialog from './IconsDialog'
-import {
-  inputComponents,
-  selectComponents,
-  layoutComponents
-} from '@/utils/generator/config'
-
-const dateTimeFormat = {
-  date: 'yyyy-MM-dd',
-  week: 'yyyy 第 WW 周',
-  month: 'yyyy-MM',
-  year: 'yyyy',
-  datetime: 'yyyy-MM-dd HH:mm:ss',
-  daterange: 'yyyy-MM-dd',
-  monthrange: 'yyyy-MM',
-  datetimerange: 'yyyy-MM-dd HH:mm:ss'
-}
-
-export default {
-  components: {
-    draggable,
-    TreeNodeDialog,
-    IconsDialog
-  },
-  props: ['showField', 'activeData', 'formConf'],
-  data() {
-    return {
-      currentTab: 'field',
-      currentNode: null,
-      dialogVisible: false,
-      iconsVisible: false,
-      currentIconModel: null,
-      dateTypeOptions: [
-        {
-          label: '日(date)',
-          value: 'date'
-        },
-        {
-          label: '周(week)',
-          value: 'week'
-        },
-        {
-          label: '月(month)',
-          value: 'month'
-        },
-        {
-          label: '年(year)',
-          value: 'year'
-        },
-        {
-          label: '日期时间(datetime)',
-          value: 'datetime'
-        }
-      ],
-      dateRangeTypeOptions: [
-        {
-          label: '日期范围(daterange)',
-          value: 'daterange'
-        },
-        {
-          label: '月范围(monthrange)',
-          value: 'monthrange'
-        },
-        {
-          label: '日期时间范围(datetimerange)',
-          value: 'datetimerange'
-        }
-      ],
-      colorFormatOptions: [
-        {
-          label: 'hex',
-          value: 'hex'
-        },
-        {
-          label: 'rgb',
-          value: 'rgb'
-        },
-        {
-          label: 'rgba',
-          value: 'rgba'
-        },
-        {
-          label: 'hsv',
-          value: 'hsv'
-        },
-        {
-          label: 'hsl',
-          value: 'hsl'
-        }
-      ],
-      justifyOptions: [
-        {
-          label: 'start',
-          value: 'start'
-        },
-        {
-          label: 'end',
-          value: 'end'
-        },
-        {
-          label: 'center',
-          value: 'center'
-        },
-        {
-          label: 'space-around',
-          value: 'space-around'
-        },
-        {
-          label: 'space-between',
-          value: 'space-between'
-        }
-      ],
-      layoutTreeProps: {
-        label(data, node) {
-          return data.componentName || `${data.label}: ${data.vModel}`
-        }
-      }
-    }
-  },
-  computed: {
-    documentLink() {
-      return (
-        this.activeData.document
-        || 'https://element.eleme.cn/#/zh-CN/component/installation'
-      )
-    },
-    dateOptions() {
-      if (
-        this.activeData.type !== undefined
-        && this.activeData.tag === 'el-date-picker'
-      ) {
-        if (this.activeData['start-placeholder'] === undefined) {
-          return this.dateTypeOptions
-        }
-        return this.dateRangeTypeOptions
-      }
-      return []
-    },
-    tagList() {
-      return [
-        {
-          label: '输入型组件',
-          options: inputComponents
-        },
-        {
-          label: '选择型组件',
-          options: selectComponents
-        }
-      ]
-    }
-  },
-  methods: {
-    addReg() {
-      this.activeData.regList.push({
-        pattern: '',
-        message: ''
-      })
-    },
-    addSelectItem() {
-      this.activeData.options.push({
-        label: '',
-        value: ''
-      })
-    },
-    addTreeItem() {
-      ++this.idGlobal
-      this.dialogVisible = true
-      this.currentNode = this.activeData.options
-    },
-    renderContent(h, { node, data, store }) {
-      return (
-        <div class="custom-tree-node">
-          <span>{node.label}</span>
-          <span class="node-operation">
-            <i on-click={() => this.append(data)}
-              class="el-icon-plus"
-              title="添加"
-            ></i>
-            <i on-click={() => this.remove(node, data)}
-              class="el-icon-delete"
-              title="删除"
-            ></i>
-          </span>
-        </div>
-      )
-    },
-    append(data) {
-      if (!data.children) {
-        this.$set(data, 'children', [])
-      }
-      this.dialogVisible = true
-      this.currentNode = data.children
-    },
-    remove(node, data) {
-      const { parent } = node
-      const children = parent.data.children || parent.data
-      const index = children.findIndex(d => d.id === data.id)
-      children.splice(index, 1)
-    },
-    addNode(data) {
-      this.currentNode.push(data)
-    },
-    setOptionValue(item, val) {
-      item.value = isNumberStr(val) ? +val : val
-    },
-    setDefaultValue(val) {
-      if (Array.isArray(val)) {
-        return val.join(',')
-      }
-      if (['string', 'number'].indexOf(val) > -1) {
-        return val
-      }
-      if (typeof val === 'boolean') {
-        return `${val}`
-      }
-      return val
-    },
-    onDefaultValueInput(str) {
-      if (isArray(this.activeData.defaultValue)) {
-        // 数组
-        this.$set(
-          this.activeData,
-          'defaultValue',
-          str.split(',').map(val => (isNumberStr(val) ? +val : val))
-        )
-      } else if (['true', 'false'].indexOf(str) > -1) {
-        // 布尔
-        this.$set(this.activeData, 'defaultValue', JSON.parse(str))
-      } else {
-        // 字符串和数字
-        this.$set(
-          this.activeData,
-          'defaultValue',
-          isNumberStr(str) ? +str : str
-        )
-      }
-    },
-    onSwitchValueInput(val, name) {
-      if (['true', 'false'].indexOf(val) > -1) {
-        this.$set(this.activeData, name, JSON.parse(val))
-      } else {
-        this.$set(this.activeData, name, isNumberStr(val) ? +val : val)
-      }
-    },
-    setTimeValue(val, type) {
-      const valueFormat = type === 'week' ? dateTimeFormat.date : val
-      this.$set(this.activeData, 'defaultValue', null)
-      this.$set(this.activeData, 'value-format', valueFormat)
-      this.$set(this.activeData, 'format', val)
-    },
-    spanChange(val) {
-      this.formConf.span = val
-    },
-    multipleChange(val) {
-      this.$set(this.activeData, 'defaultValue', val ? [] : '')
-    },
-    dateTypeChange(val) {
-      this.setTimeValue(dateTimeFormat[val], val)
-    },
-    rangeChange(val) {
-      this.$set(
-        this.activeData,
-        'defaultValue',
-        val ? [this.activeData.min, this.activeData.max] : this.activeData.min
-      )
-    },
-    rateTextChange(val) {
-      if (val) this.activeData['show-score'] = false
-    },
-    rateScoreChange(val) {
-      if (val) this.activeData['show-text'] = false
-    },
-    colorFormatChange(val) {
-      this.activeData.defaultValue = null
-      this.activeData['show-alpha'] = val.indexOf('a') > -1
-      this.activeData.renderKey = +new Date() // 更新renderKey,重新渲染该组件
-    },
-    openIconsDialog(model) {
-      this.iconsVisible = true
-      this.currentIconModel = model
-    },
-    setIcon(val) {
-      this.activeData[this.currentIconModel] = val
-    },
-    tagChange(tagIcon) {
-      let target = inputComponents.find(item => item.tagIcon === tagIcon)
-      if (!target) target = selectComponents.find(item => item.tagIcon === tagIcon)
-      this.$emit('tag-change', target)
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.right-board {
-  width: 350px;
-  position: absolute;
-  right: 0;
-  top: 0;
-  padding-top: 3px;
-  .field-box {
-    position: relative;
-    height: calc(100vh - 42px);
-    box-sizing: border-box;
-    overflow: hidden;
-  }
-  .el-scrollbar {
-    height: 100%;
-  }
-}
-.select-item {
-  display: flex;
-  border: 1px dashed #fff;
-  box-sizing: border-box;
-  & .close-btn {
-    cursor: pointer;
-    color: #f56c6c;
-  }
-  & .el-input + .el-input {
-    margin-left: 4px;
-  }
-}
-.select-item + .select-item {
-  margin-top: 4px;
-}
-.select-item.sortable-chosen {
-  border: 1px dashed #409eff;
-}
-.select-line-icon {
-  line-height: 32px;
-  font-size: 22px;
-  padding: 0 4px;
-  color: #777;
-}
-.option-drag {
-  cursor: move;
-}
-.time-range {
-  .el-date-editor {
-    width: 227px;
-  }
-  ::v-deep .el-icon-time {
-    display: none;
-  }
-}
-.document-link {
-  position: absolute;
-  display: block;
-  width: 26px;
-  height: 26px;
-  top: 0;
-  left: 0;
-  cursor: pointer;
-  background: #409eff;
-  z-index: 1;
-  border-radius: 0 0 6px 0;
-  text-align: center;
-  line-height: 26px;
-  color: #fff;
-  font-size: 18px;
-}
-.node-label{
-  font-size: 14px;
-}
-.node-icon{
-  color: #bebfc3;
-}
-</style>
diff --git a/ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue b/ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue
deleted file mode 100644
index fa7f0b2..0000000
--- a/ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue
+++ /dev/null
@@ -1,149 +0,0 @@
-<template>
-  <div>
-    <el-dialog
-      v-bind="$attrs"
-      :close-on-click-modal="false"
-      :modal-append-to-body="false"
-      v-on="$listeners"
-      @open="onOpen"
-      @close="onClose"
-    >
-      <el-row :gutter="0">
-        <el-form
-          ref="elForm"
-          :model="formData"
-          :rules="rules"
-          size="small"
-          label-width="100px"
-        >
-          <el-col :span="24">
-            <el-form-item
-              label="选项名"
-              prop="label"
-            >
-              <el-input
-                v-model="formData.label"
-                placeholder="请输入选项名"
-                clearable
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item
-              label="选项值"
-              prop="value"
-            >
-              <el-input
-                v-model="formData.value"
-                placeholder="请输入选项值"
-                clearable
-              >
-                <el-select
-                  slot="append"
-                  v-model="dataType"
-                  :style="{width: '100px'}"
-                >
-                  <el-option
-                    v-for="(item, index) in dataTypeOptions"
-                    :key="index"
-                    :label="item.label"
-                    :value="item.value"
-                    :disabled="item.disabled"
-                  />
-                </el-select>
-              </el-input>
-            </el-form-item>
-          </el-col>
-        </el-form>
-      </el-row>
-      <div slot="footer">
-        <el-button
-          type="primary"
-          @click="handleConfirm"
-        >
-          确定
-        </el-button>
-        <el-button @click="close">
-          取消
-        </el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-<script>
-import { isNumberStr } from '@/utils/index'
-
-export default {
-  components: {},
-  inheritAttrs: false,
-  props: [],
-  data() {
-    return {
-      id: 100,
-      formData: {
-        label: undefined,
-        value: undefined
-      },
-      rules: {
-        label: [
-          {
-            required: true,
-            message: '请输入选项名',
-            trigger: 'blur'
-          }
-        ],
-        value: [
-          {
-            required: true,
-            message: '请输入选项值',
-            trigger: 'blur'
-          }
-        ]
-      },
-      dataType: 'string',
-      dataTypeOptions: [
-        {
-          label: '字符串',
-          value: 'string'
-        },
-        {
-          label: '数字',
-          value: 'number'
-        }
-      ]
-    }
-  },
-  computed: {},
-  watch: {
-    // eslint-disable-next-line func-names
-    'formData.value': function (val) {
-      this.dataType = isNumberStr(val) ? 'number' : 'string'
-    }
-  },
-  created() {},
-  mounted() {},
-  methods: {
-    onOpen() {
-      this.formData = {
-        label: undefined,
-        value: undefined
-      }
-    },
-    onClose() {},
-    close() {
-      this.$emit('update:visible', false)
-    },
-    handleConfirm() {
-      this.$refs.elForm.validate(valid => {
-        if (!valid) return
-        if (this.dataType === 'number') {
-          this.formData.value = parseFloat(this.formData.value)
-        }
-        this.formData.id = this.id++
-        this.$emit('commit', this.formData)
-        this.close()
-      })
-    }
-  }
-}
-</script>
diff --git a/ruoyi-ui/src/views/tool/build/index.vue b/ruoyi-ui/src/views/tool/build/index.vue
deleted file mode 100644
index 2bd298b..0000000
--- a/ruoyi-ui/src/views/tool/build/index.vue
+++ /dev/null
@@ -1,768 +0,0 @@
-<template>
-  <div class="container">
-    <div class="left-board">
-      <div class="logo-wrapper">
-        <div class="logo">
-          <img :src="logo" alt="logo"> Form Generator
-        </div>
-      </div>
-      <el-scrollbar class="left-scrollbar">
-        <div class="components-list">
-          <div class="components-title">
-            <svg-icon icon-class="component" />输入型组件
-          </div>
-          <draggable
-            class="components-draggable"
-            :list="inputComponents"
-            :group="{ name: 'componentsGroup', pull: 'clone', put: false }"
-            :clone="cloneComponent"
-            draggable=".components-item"
-            :sort="false"
-            @end="onEnd"
-          >
-            <div
-              v-for="(element, index) in inputComponents" :key="index" class="components-item"
-              @click="addComponent(element)"
-            >
-              <div class="components-body">
-                <svg-icon :icon-class="element.tagIcon" />
-                {{ element.label }}
-              </div>
-            </div>
-          </draggable>
-          <div class="components-title">
-            <svg-icon icon-class="component" />选择型组件
-          </div>
-          <draggable
-            class="components-draggable"
-            :list="selectComponents"
-            :group="{ name: 'componentsGroup', pull: 'clone', put: false }"
-            :clone="cloneComponent"
-            draggable=".components-item"
-            :sort="false"
-            @end="onEnd"
-          >
-            <div
-              v-for="(element, index) in selectComponents"
-              :key="index"
-              class="components-item"
-              @click="addComponent(element)"
-            >
-              <div class="components-body">
-                <svg-icon :icon-class="element.tagIcon" />
-                {{ element.label }}
-              </div>
-            </div>
-          </draggable>
-          <div class="components-title">
-            <svg-icon icon-class="component" /> 布局型组件
-          </div>
-          <draggable
-            class="components-draggable" :list="layoutComponents"
-            :group="{ name: 'componentsGroup', pull: 'clone', put: false }" :clone="cloneComponent"
-            draggable=".components-item" :sort="false" @end="onEnd"
-          >
-            <div
-              v-for="(element, index) in layoutComponents" :key="index" class="components-item"
-              @click="addComponent(element)"
-            >
-              <div class="components-body">
-                <svg-icon :icon-class="element.tagIcon" />
-                {{ element.label }}
-              </div>
-            </div>
-          </draggable>
-        </div>
-      </el-scrollbar>
-    </div>
-
-    <div class="center-board">
-      <div class="action-bar">
-        <el-button icon="el-icon-download" type="text" @click="download">
-          导出vue文件
-        </el-button>
-        <el-button class="copy-btn-main" icon="el-icon-document-copy" type="text" @click="copy">
-          复制代码
-        </el-button>
-        <el-button class="delete-btn" icon="el-icon-delete" type="text" @click="empty">
-          清空
-        </el-button>
-      </div>
-      <el-scrollbar class="center-scrollbar">
-        <el-row class="center-board-row" :gutter="formConf.gutter">
-          <el-form
-            :size="formConf.size"
-            :label-position="formConf.labelPosition"
-            :disabled="formConf.disabled"
-            :label-width="formConf.labelWidth + 'px'"
-          >
-            <draggable class="drawing-board" :list="drawingList" :animation="340" group="componentsGroup">
-              <draggable-item
-                v-for="(element, index) in drawingList"
-                :key="element.renderKey"
-                :drawing-list="drawingList"
-                :element="element"
-                :index="index"
-                :active-id="activeId"
-                :form-conf="formConf"
-                @activeItem="activeFormItem"
-                @copyItem="drawingItemCopy"
-                @deleteItem="drawingItemDelete"
-              />
-            </draggable>
-            <div v-show="!drawingList.length" class="empty-info">
-              从左侧拖入或点选组件进行表单设计
-            </div>
-          </el-form>
-        </el-row>
-      </el-scrollbar>
-    </div>
-
-    <right-panel
-      :active-data="activeData"
-      :form-conf="formConf"
-      :show-field="!!drawingList.length"
-      @tag-change="tagChange"
-    />
-
-    <code-type-dialog
-      :visible.sync="dialogVisible"
-      title="选择生成类型"
-      :show-file-name="showFileName"
-      @confirm="generate"
-    />
-    <input id="copyNode" type="hidden">
-  </div>
-</template>
-
-<script>
-import draggable from 'vuedraggable'
-import beautifier from 'js-beautify'
-import ClipboardJS from 'clipboard'
-import render from '@/utils/generator/render'
-import RightPanel from './RightPanel'
-import { inputComponents, selectComponents, layoutComponents, formConf } from '@/utils/generator/config'
-import { beautifierConf, titleCase } from '@/utils/index'
-import { makeUpHtml, vueTemplate, vueScript, cssStyle } from '@/utils/generator/html'
-import { makeUpJs } from '@/utils/generator/js'
-import { makeUpCss } from '@/utils/generator/css'
-import drawingDefault from '@/utils/generator/drawingDefault'
-import logo from '@/assets/logo/logo.png'
-import CodeTypeDialog from './CodeTypeDialog'
-import DraggableItem from './DraggableItem'
-
-let oldActiveId
-let tempActiveData
-
-export default {
-  components: {
-    draggable,
-    render,
-    RightPanel,
-    CodeTypeDialog,
-    DraggableItem
-  },
-  data() {
-    return {
-      logo,
-      idGlobal: 100,
-      formConf,
-      inputComponents,
-      selectComponents,
-      layoutComponents,
-      labelWidth: 100,
-      drawingList: drawingDefault,
-      drawingData: {},
-      activeId: drawingDefault[0].formId,
-      drawerVisible: false,
-      formData: {},
-      dialogVisible: false,
-      generateConf: null,
-      showFileName: false,
-      activeData: drawingDefault[0]
-    }
-  },
-  created() {
-    // 防止 firefox 下 拖拽 会新打卡一个选项卡
-    document.body.ondrop = event => {
-      event.preventDefault()
-      event.stopPropagation()
-    }
-  },
-  watch: {
-    // eslint-disable-next-line func-names
-    'activeData.label': function (val, oldVal) {
-      if (
-        this.activeData.placeholder === undefined
-        || !this.activeData.tag
-        || oldActiveId !== this.activeId
-      ) {
-        return
-      }
-      this.activeData.placeholder = this.activeData.placeholder.replace(oldVal, '') + val
-    },
-    activeId: {
-      handler(val) {
-        oldActiveId = val
-      },
-      immediate: true
-    }
-  },
-  mounted() {
-    const clipboard = new ClipboardJS('#copyNode', {
-      text: trigger => {
-        const codeStr = this.generateCode()
-        this.$notify({
-          title: '成功',
-          message: '代码已复制到剪切板,可粘贴。',
-          type: 'success'
-        })
-        return codeStr
-      }
-    })
-    clipboard.on('error', e => {
-      this.$message.error('代码复制失败')
-    })
-  },
-  methods: {
-    activeFormItem(element) {
-      this.activeData = element
-      this.activeId = element.formId
-    },
-    onEnd(obj, a) {
-      if (obj.from !== obj.to) {
-        this.activeData = tempActiveData
-        this.activeId = this.idGlobal
-      }
-    },
-    addComponent(item) {
-      const clone = this.cloneComponent(item)
-      this.drawingList.push(clone)
-      this.activeFormItem(clone)
-    },
-    cloneComponent(origin) {
-      const clone = JSON.parse(JSON.stringify(origin))
-      clone.formId = ++this.idGlobal
-      clone.span = formConf.span
-      clone.renderKey = +new Date() // 改变renderKey后可以实现强制更新组件
-      if (!clone.layout) clone.layout = 'colFormItem'
-      if (clone.layout === 'colFormItem') {
-        clone.vModel = `field${this.idGlobal}`
-        clone.placeholder !== undefined && (clone.placeholder += clone.label)
-        tempActiveData = clone
-      } else if (clone.layout === 'rowFormItem') {
-        delete clone.label
-        clone.componentName = `row${this.idGlobal}`
-        clone.gutter = this.formConf.gutter
-        tempActiveData = clone
-      }
-      return tempActiveData
-    },
-    AssembleFormData() {
-      this.formData = {
-        fields: JSON.parse(JSON.stringify(this.drawingList)),
-        ...this.formConf
-      }
-    },
-    generate(data) {
-      const func = this[`exec${titleCase(this.operationType)}`]
-      this.generateConf = data
-      func && func(data)
-    },
-    execRun(data) {
-      this.AssembleFormData()
-      this.drawerVisible = true
-    },
-    execDownload(data) {
-      const codeStr = this.generateCode()
-      const blob = new Blob([codeStr], { type: 'text/plain;charset=utf-8' })
-      this.$download.saveAs(blob, data.fileName)
-    },
-    execCopy(data) {
-      document.getElementById('copyNode').click()
-    },
-    empty() {
-      this.$confirm('确定要清空所有组件吗?', '提示', { type: 'warning' }).then(
-        () => {
-          this.drawingList = []
-        }
-      )
-    },
-    drawingItemCopy(item, parent) {
-      let clone = JSON.parse(JSON.stringify(item))
-      clone = this.createIdAndKey(clone)
-      parent.push(clone)
-      this.activeFormItem(clone)
-    },
-    createIdAndKey(item) {
-      item.formId = ++this.idGlobal
-      item.renderKey = +new Date()
-      if (item.layout === 'colFormItem') {
-        item.vModel = `field${this.idGlobal}`
-      } else if (item.layout === 'rowFormItem') {
-        item.componentName = `row${this.idGlobal}`
-      }
-      if (Array.isArray(item.children)) {
-        item.children = item.children.map(childItem => this.createIdAndKey(childItem))
-      }
-      return item
-    },
-    drawingItemDelete(index, parent) {
-      parent.splice(index, 1)
-      this.$nextTick(() => {
-        const len = this.drawingList.length
-        if (len) {
-          this.activeFormItem(this.drawingList[len - 1])
-        }
-      })
-    },
-    generateCode() {
-      const { type } = this.generateConf
-      this.AssembleFormData()
-      const script = vueScript(makeUpJs(this.formData, type))
-      const html = vueTemplate(makeUpHtml(this.formData, type))
-      const css = cssStyle(makeUpCss(this.formData))
-      return beautifier.html(html + script + css, beautifierConf.html)
-    },
-    download() {
-      this.dialogVisible = true
-      this.showFileName = true
-      this.operationType = 'download'
-    },
-    run() {
-      this.dialogVisible = true
-      this.showFileName = false
-      this.operationType = 'run'
-    },
-    copy() {
-      this.dialogVisible = true
-      this.showFileName = false
-      this.operationType = 'copy'
-    },
-    tagChange(newTag) {
-      newTag = this.cloneComponent(newTag)
-      newTag.vModel = this.activeData.vModel
-      newTag.formId = this.activeId
-      newTag.span = this.activeData.span
-      delete this.activeData.tag
-      delete this.activeData.tagIcon
-      delete this.activeData.document
-      Object.keys(newTag).forEach(key => {
-        if (this.activeData[key] !== undefined
-          && typeof this.activeData[key] === typeof newTag[key]) {
-          newTag[key] = this.activeData[key]
-        }
-      })
-      this.activeData = newTag
-      this.updateDrawingList(newTag, this.drawingList)
-    },
-    updateDrawingList(newTag, list) {
-      const index = list.findIndex(item => item.formId === this.activeId)
-      if (index > -1) {
-        list.splice(index, 1, newTag)
-      } else {
-        list.forEach(item => {
-          if (Array.isArray(item.children)) this.updateDrawingList(newTag, item.children)
-        })
-      }
-    }
-  }
-}
-</script>
-
-<style lang='scss'>
-.editor-tabs{
-  background: #121315;
-  .el-tabs__header{
-    margin: 0;
-    border-bottom-color: #121315;
-    .el-tabs__nav{
-      border-color: #121315;
-    }
-  }
-  .el-tabs__item{
-    height: 32px;
-    line-height: 32px;
-    color: #888a8e;
-    border-left: 1px solid #121315 !important;
-    background: #363636;
-    margin-right: 5px;
-    user-select: none;
-  }
-  .el-tabs__item.is-active{
-    background: #1e1e1e;
-    border-bottom-color: #1e1e1e!important;
-    color: #fff;
-  }
-  .el-icon-edit{
-    color: #f1fa8c;
-  }
-  .el-icon-document{
-    color: #a95812;
-  }
-}
-
-// home
-.right-scrollbar {
-  .el-scrollbar__view {
-    padding: 12px 18px 15px 15px;
-  }
-}
-.left-scrollbar .el-scrollbar__wrap {
-  box-sizing: border-box;
-  overflow-x: hidden !important;
-  margin-bottom: 0 !important;
-}
-.center-tabs{
-  .el-tabs__header{
-    margin-bottom: 0!important;
-  }
-  .el-tabs__item{
-    width: 50%;
-    text-align: center;
-  }
-  .el-tabs__nav{
-    width: 100%;
-  }
-}
-.reg-item{
-  padding: 12px 6px;
-  background: #f8f8f8;
-  position: relative;
-  border-radius: 4px;
-  .close-btn{
-    position: absolute;
-    right: -6px;
-    top: -6px;
-    display: block;
-    width: 16px;
-    height: 16px;
-    line-height: 16px;
-    background: rgba(0, 0, 0, 0.2);
-    border-radius: 50%;
-    color: #fff;
-    text-align: center;
-    z-index: 1;
-    cursor: pointer;
-    font-size: 12px;
-    &:hover{
-      background: rgba(210, 23, 23, 0.5)
-    }
-  }
-  & + .reg-item{
-    margin-top: 18px;
-  }
-}
-.action-bar{
-  & .el-button+.el-button {
-    margin-left: 15px;
-  }
-  & i {
-    font-size: 20px;
-    vertical-align: middle;
-    position: relative;
-    top: -1px;
-  }
-}
-
-.custom-tree-node{
-  width: 100%;
-  font-size: 14px;
-  .node-operation{
-    float: right;
-  }
-  i[class*="el-icon"] + i[class*="el-icon"]{
-    margin-left: 6px;
-  }
-  .el-icon-plus{
-    color: #409EFF;
-  }
-  .el-icon-delete{
-    color: #157a0c;
-  }
-}
-
-.left-scrollbar .el-scrollbar__view{
-  overflow-x: hidden;
-}
-
-.el-rate{
-  display: inline-block;
-  vertical-align: text-top;
-}
-.el-upload__tip{
-  line-height: 1.2;
-}
-
-$selectedColor: #f6f7ff;
-$lighterBlue: #409EFF;
-
-.container {
-  position: relative;
-  width: 100%;
-  height: 100%;
-}
-
-.components-list {
-  padding: 8px;
-  box-sizing: border-box;
-  height: 100%;
-  .components-item {
-    display: inline-block;
-    width: 48%;
-    margin: 1%;
-    transition: transform 0ms !important;
-  }
-}
-.components-draggable{
-  padding-bottom: 20px;
-}
-.components-title{
-  font-size: 14px;
-  color: #222;
-  margin: 6px 2px;
-  .svg-icon{
-    color: #666;
-    font-size: 18px;
-  }
-}
-
-.components-body {
-  padding: 8px 10px;
-  background: $selectedColor;
-  font-size: 12px;
-  cursor: move;
-  border: 1px dashed $selectedColor;
-  border-radius: 3px;
-  .svg-icon{
-    color: #777;
-    font-size: 15px;
-  }
-  &:hover {
-    border: 1px dashed #787be8;
-    color: #787be8;
-    .svg-icon {
-      color: #787be8;
-    }
-  }
-}
-
-.left-board {
-  width: 260px;
-  position: absolute;
-  left: 0;
-  top: 0;
-  height: 100vh;
-}
-.left-scrollbar{
-  height: calc(100vh - 42px);
-  overflow: hidden;
-}
-.center-scrollbar {
-  height: calc(100vh - 42px);
-  overflow: hidden;
-  border-left: 1px solid #f1e8e8;
-  border-right: 1px solid #f1e8e8;
-  box-sizing: border-box;
-}
-.center-board {
-  height: 100vh;
-  width: auto;
-  margin: 0 350px 0 260px;
-  box-sizing: border-box;
-}
-.empty-info{
-  position: absolute;
-  top: 46%;
-  left: 0;
-  right: 0;
-  text-align: center;
-  font-size: 18px;
-  color: #ccb1ea;
-  letter-spacing: 4px;
-}
-.action-bar{
-  position: relative;
-  height: 42px;
-  text-align: right;
-  padding: 0 15px;
-  box-sizing: border-box;;
-  border: 1px solid #f1e8e8;
-  border-top: none;
-  border-left: none;
-  .delete-btn{
-    color: #F56C6C;
-  }
-}
-.logo-wrapper{
-  position: relative;
-  height: 42px;
-  background: #fff;
-  border-bottom: 1px solid #f1e8e8;
-  box-sizing: border-box;
-}
-.logo{
-  position: absolute;
-  left: 12px;
-  top: 6px;
-  line-height: 30px;
-  color: #00afff;
-  font-weight: 600;
-  font-size: 17px;
-  white-space: nowrap;
-  > img{
-    width: 30px;
-    height: 30px;
-    vertical-align: top;
-  }
-  .github{
-    display: inline-block;
-    vertical-align: sub;
-    margin-left: 15px;
-    > img{
-      height: 22px;
-    }
-  }
-}
-
-.center-board-row {
-  padding: 12px 12px 15px 12px;
-  box-sizing: border-box;
-  & > .el-form {
-    // 69 = 12+15+42
-    height: calc(100vh - 69px);
-  }
-}
-.drawing-board {
-  height: 100%;
-  position: relative;
-  .components-body {
-    padding: 0;
-    margin: 0;
-    font-size: 0;
-  }
-  .sortable-ghost {
-    position: relative;
-    display: block;
-    overflow: hidden;
-    &::before {
-      content: " ";
-      position: absolute;
-      left: 0;
-      right: 0;
-      top: 0;
-      height: 3px;
-      background: rgb(89, 89, 223);
-      z-index: 2;
-    }
-  }
-  .components-item.sortable-ghost {
-    width: 100%;
-    height: 60px;
-    background-color: $selectedColor;
-  }
-  .active-from-item {
-    & > .el-form-item{
-      background: $selectedColor;
-      border-radius: 6px;
-    }
-    & > .drawing-item-copy, & > .drawing-item-delete{
-      display: initial;
-    }
-    & > .component-name{
-      color: $lighterBlue;
-    }
-  }
-  .el-form-item{
-    margin-bottom: 15px;
-  }
-}
-.drawing-item{
-  position: relative;
-  cursor: move;
-  &.unfocus-bordered:not(.activeFromItem) > div:first-child  {
-    border: 1px dashed #ccc;
-  }
-  .el-form-item{
-    padding: 12px 10px;
-  }
-}
-.drawing-row-item{
-  position: relative;
-  cursor: move;
-  box-sizing: border-box;
-  border: 1px dashed #ccc;
-  border-radius: 3px;
-  padding: 0 2px;
-  margin-bottom: 15px;
-  .drawing-row-item {
-    margin-bottom: 2px;
-  }
-  .el-col{
-    margin-top: 22px;
-  }
-  .el-form-item{
-    margin-bottom: 0;
-  }
-  .drag-wrapper{
-    min-height: 80px;
-  }
-  &.active-from-item{
-    border: 1px dashed $lighterBlue;
-  }
-  .component-name{
-    position: absolute;
-    top: 0;
-    left: 0;
-    font-size: 12px;
-    color: #bbb;
-    display: inline-block;
-    padding: 0 6px;
-  }
-}
-.drawing-item, .drawing-row-item{
-  &:hover {
-    & > .el-form-item{
-      background: $selectedColor;
-      border-radius: 6px;
-    }
-    & > .drawing-item-copy, & > .drawing-item-delete{
-      display: initial;
-    }
-  }
-  & > .drawing-item-copy, & > .drawing-item-delete{
-    display: none;
-    position: absolute;
-    top: -10px;
-    width: 22px;
-    height: 22px;
-    line-height: 22px;
-    text-align: center;
-    border-radius: 50%;
-    font-size: 12px;
-    border: 1px solid;
-    cursor: pointer;
-    z-index: 1;
-  }
-  & > .drawing-item-copy{
-    right: 56px;
-    border-color: $lighterBlue;
-    color: $lighterBlue;
-    background: #fff;
-    &:hover{
-      background: $lighterBlue;
-      color: #fff;
-    }
-  }
-  & > .drawing-item-delete{
-    right: 24px;
-    border-color: #F56C6C;
-    color: #F56C6C;
-    background: #fff;
-    &:hover{
-      background: #F56C6C;
-      color: #fff;
-    }
-  }
-}
-</style>
diff --git a/ruoyi-ui/src/views/tool/gen/basicInfoForm.vue b/ruoyi-ui/src/views/tool/gen/basicInfoForm.vue
deleted file mode 100644
index 7029529..0000000
--- a/ruoyi-ui/src/views/tool/gen/basicInfoForm.vue
+++ /dev/null
@@ -1,60 +0,0 @@
-<template>
-  <el-form ref="basicInfoForm" :model="info" :rules="rules" label-width="150px">
-    <el-row>
-      <el-col :span="12">
-        <el-form-item label="表名称" prop="tableName">
-          <el-input placeholder="请输入仓库名称" v-model="info.tableName" />
-        </el-form-item>
-      </el-col>
-      <el-col :span="12">
-        <el-form-item label="表描述" prop="tableComment">
-          <el-input placeholder="请输入" v-model="info.tableComment" />
-        </el-form-item>
-      </el-col>
-      <el-col :span="12">
-        <el-form-item label="实体类名称" prop="className">
-          <el-input placeholder="请输入" v-model="info.className" />
-        </el-form-item>
-      </el-col>
-      <el-col :span="12">
-        <el-form-item label="作者" prop="functionAuthor">
-          <el-input placeholder="请输入" v-model="info.functionAuthor" />
-        </el-form-item>
-      </el-col>
-      <el-col :span="24">
-        <el-form-item label="备注" prop="remark">
-          <el-input type="textarea" :rows="3" v-model="info.remark"></el-input>
-        </el-form-item>
-      </el-col>
-    </el-row>
-  </el-form>
-</template>
-
-<script>
-export default {
-  props: {
-    info: {
-      type: Object,
-      default: null
-    }
-  },
-  data() {
-    return {
-      rules: {
-        tableName: [
-          { required: true, message: "请输入表名称", trigger: "blur" }
-        ],
-        tableComment: [
-          { required: true, message: "请输入表描述", trigger: "blur" }
-        ],
-        className: [
-          { required: true, message: "请输入实体类名称", trigger: "blur" }
-        ],
-        functionAuthor: [
-          { required: true, message: "请输入作者", trigger: "blur" }
-        ]
-      }
-    };
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/tool/gen/createTable.vue b/ruoyi-ui/src/views/tool/gen/createTable.vue
deleted file mode 100644
index f914b5d..0000000
--- a/ruoyi-ui/src/views/tool/gen/createTable.vue
+++ /dev/null
@@ -1,45 +0,0 @@
-<template>
-  <!-- 创建表 -->
-  <el-dialog title="创建表" :visible.sync="visible" width="800px" top="5vh" append-to-body>
-    <span>创建表语句(支持多个建表语句):</span>
-    <el-input type="textarea" :rows="10" placeholder="请输入文本" v-model="content"></el-input>
-    <div slot="footer" class="dialog-footer">
-      <el-button type="primary" @click="handleCreateTable">确 定</el-button>
-      <el-button @click="visible = false">取 消</el-button>
-    </div>
-  </el-dialog>
-</template>
-
-<script>
-import { createTable } from "@/api/tool/gen";
-export default {
-  data() {
-    return {
-      // 遮罩层
-      visible: false,
-      // 文本内容
-      content: ""
-    };
-  },
-  methods: {
-    // 显示弹框
-    show() {
-      this.visible = true;
-    },
-    /** 创建按钮操作 */
-    handleCreateTable() {
-      if (this.content === "") {
-        this.$modal.msgError("请输入建表语句");
-        return;
-      }
-      createTable({ sql: this.content }).then(res => {
-        this.$modal.msgSuccess(res.msg);
-        if (res.code === 200) {
-          this.visible = false;
-          this.$emit("ok");
-        }
-      });
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/tool/gen/editTable.vue b/ruoyi-ui/src/views/tool/gen/editTable.vue
deleted file mode 100644
index 951497a..0000000
--- a/ruoyi-ui/src/views/tool/gen/editTable.vue
+++ /dev/null
@@ -1,234 +0,0 @@
-<template>
-  <el-card>
-    <el-tabs v-model="activeName">
-      <el-tab-pane label="基本信息" name="basic">
-        <basic-info-form ref="basicInfo" :info="info" />
-      </el-tab-pane>
-      <el-tab-pane label="字段信息" name="columnInfo">
-        <el-table ref="dragTable" :data="columns" row-key="columnId" :max-height="tableHeight">
-          <el-table-column label="序号" type="index" min-width="5%" class-name="allowDrag" />
-          <el-table-column
-            label="字段列名"
-            prop="columnName"
-            min-width="10%"
-            :show-overflow-tooltip="true"
-          />
-          <el-table-column label="字段描述" min-width="10%">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.columnComment"></el-input>
-            </template>
-          </el-table-column>
-          <el-table-column
-            label="物理类型"
-            prop="columnType"
-            min-width="10%"
-            :show-overflow-tooltip="true"
-          />
-          <el-table-column label="Java类型" min-width="11%">
-            <template slot-scope="scope">
-              <el-select v-model="scope.row.javaType">
-                <el-option label="Long" value="Long" />
-                <el-option label="String" value="String" />
-                <el-option label="Integer" value="Integer" />
-                <el-option label="Double" value="Double" />
-                <el-option label="BigDecimal" value="BigDecimal" />
-                <el-option label="Date" value="Date" />
-                <el-option label="Boolean" value="Boolean" />
-              </el-select>
-            </template>
-          </el-table-column>
-          <el-table-column label="java属性" min-width="10%">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.javaField"></el-input>
-            </template>
-          </el-table-column>
-
-          <el-table-column label="插入" min-width="5%">
-            <template slot-scope="scope">
-              <el-checkbox true-label="1" false-label="0" v-model="scope.row.isInsert"></el-checkbox>
-            </template>
-          </el-table-column>
-          <el-table-column label="编辑" min-width="5%">
-            <template slot-scope="scope">
-              <el-checkbox true-label="1" false-label="0" v-model="scope.row.isEdit"></el-checkbox>
-            </template>
-          </el-table-column>
-          <el-table-column label="列表" min-width="5%">
-            <template slot-scope="scope">
-              <el-checkbox true-label="1" false-label="0" v-model="scope.row.isList"></el-checkbox>
-            </template>
-          </el-table-column>
-          <el-table-column label="查询" min-width="5%">
-            <template slot-scope="scope">
-              <el-checkbox true-label="1" false-label="0" v-model="scope.row.isQuery"></el-checkbox>
-            </template>
-          </el-table-column>
-          <el-table-column label="查询方式" min-width="10%">
-            <template slot-scope="scope">
-              <el-select v-model="scope.row.queryType">
-                <el-option label="=" value="EQ" />
-                <el-option label="!=" value="NE" />
-                <el-option label=">" value="GT" />
-                <el-option label=">=" value="GTE" />
-                <el-option label="<" value="LT" />
-                <el-option label="<=" value="LTE" />
-                <el-option label="LIKE" value="LIKE" />
-                <el-option label="BETWEEN" value="BETWEEN" />
-              </el-select>
-            </template>
-          </el-table-column>
-          <el-table-column label="必填" min-width="5%">
-            <template slot-scope="scope">
-              <el-checkbox true-label="1" false-label="0" v-model="scope.row.isRequired"></el-checkbox>
-            </template>
-          </el-table-column>
-          <el-table-column label="显示类型" min-width="12%">
-            <template slot-scope="scope">
-              <el-select v-model="scope.row.htmlType">
-                <el-option label="文本框" value="input" />
-                <el-option label="文本域" value="textarea" />
-                <el-option label="下拉框" value="select" />
-                <el-option label="单选框" value="radio" />
-                <el-option label="复选框" value="checkbox" />
-                <el-option label="日期控件" value="datetime" />
-                <el-option label="图片上传" value="imageUpload" />
-                <el-option label="文件上传" value="fileUpload" />
-                <el-option label="富文本控件" value="editor" />
-              </el-select>
-            </template>
-          </el-table-column>
-          <el-table-column label="字典类型" min-width="12%">
-            <template slot-scope="scope">
-              <el-select v-model="scope.row.dictType" clearable filterable placeholder="请选择">
-                <el-option
-                  v-for="dict in dictOptions"
-                  :key="dict.dictType"
-                  :label="dict.dictName"
-                  :value="dict.dictType">
-                  <span style="float: left">{{ dict.dictName }}</span>
-                  <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.dictType }}</span>
-              </el-option>
-              </el-select>
-            </template>
-          </el-table-column>
-        </el-table>
-      </el-tab-pane>
-      <el-tab-pane label="生成信息" name="genInfo">
-        <gen-info-form ref="genInfo" :info="info" :tables="tables" :menus="menus"/>
-      </el-tab-pane>
-    </el-tabs>
-    <el-form label-width="100px">
-      <el-form-item style="text-align: center;margin-left:-100px;margin-top:10px;">
-        <el-button type="primary" @click="submitForm()">提交</el-button>
-        <el-button @click="close()">返回</el-button>
-      </el-form-item>
-    </el-form>
-  </el-card>
-</template>
-
-<script>
-import { getGenTable, updateGenTable } from "@/api/tool/gen";
-import { optionselect as getDictOptionselect } from "@/api/system/dict/type";
-import { listMenu as getMenuTreeselect } from "@/api/system/menu";
-import basicInfoForm from "./basicInfoForm";
-import genInfoForm from "./genInfoForm";
-import Sortable from 'sortablejs'
-
-export default {
-  name: "GenEdit",
-  components: {
-    basicInfoForm,
-    genInfoForm
-  },
-  data() {
-    return {
-      // 选中选项卡的 name
-      activeName: "columnInfo",
-      // 表格的高度
-      tableHeight: document.documentElement.scrollHeight - 245 + "px",
-      // 表信息
-      tables: [],
-      // 表列信息
-      columns: [],
-      // 字典信息
-      dictOptions: [],
-      // 菜单信息
-      menus: [],
-      // 表详细信息
-      info: {}
-    };
-  },
-  created() {
-    const tableId = this.$route.params && this.$route.params.tableId;
-    if (tableId) {
-      // 获取表详细信息
-      getGenTable(tableId).then(res => {
-        this.columns = res.data.rows;
-        this.info = res.data.info;
-        this.tables = res.data.tables;
-      });
-      /** 查询字典下拉列表 */
-      getDictOptionselect().then(response => {
-        this.dictOptions = response.data;
-      });
-      /** 查询菜单下拉列表 */
-      getMenuTreeselect().then(response => {
-        this.menus = this.handleTree(response.data, "menuId");
-      });
-    }
-  },
-  methods: {
-    /** 提交按钮 */
-    submitForm() {
-      const basicForm = this.$refs.basicInfo.$refs.basicInfoForm;
-      const genForm = this.$refs.genInfo.$refs.genInfoForm;
-      Promise.all([basicForm, genForm].map(this.getFormPromise)).then(res => {
-        const validateResult = res.every(item => !!item);
-        if (validateResult) {
-          const genTable = Object.assign({}, basicForm.model, genForm.model);
-          genTable.columns = this.columns;
-          genTable.params = {
-            treeCode: genTable.treeCode,
-            treeName: genTable.treeName,
-            treeParentCode: genTable.treeParentCode,
-            parentMenuId: genTable.parentMenuId
-          };
-          updateGenTable(genTable).then(res => {
-            this.$modal.msgSuccess(res.msg);
-            if (res.code === 200) {
-              this.close();
-            }
-          });
-        } else {
-          this.$modal.msgError("表单校验未通过,请重新检查提交内容");
-        }
-      });
-    },
-    getFormPromise(form) {
-      return new Promise(resolve => {
-        form.validate(res => {
-          resolve(res);
-        });
-      });
-    },
-    /** 关闭按钮 */
-    close() {
-      const obj = { path: "/tool/gen", query: { t: Date.now(), pageNum: this.$route.query.pageNum } };
-      this.$tab.closeOpenPage(obj);
-    }
-  },
-  mounted() {
-    const el = this.$refs.dragTable.$el.querySelectorAll(".el-table__body-wrapper > table > tbody")[0];
-    const sortable = Sortable.create(el, {
-      handle: ".allowDrag",
-      onEnd: evt => {
-        const targetRow = this.columns.splice(evt.oldIndex, 1)[0];
-        this.columns.splice(evt.newIndex, 0, targetRow);
-        for (let index in this.columns) {
-          this.columns[index].sort = parseInt(index) + 1;
-        }
-      }
-    });
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/tool/gen/genInfoForm.vue b/ruoyi-ui/src/views/tool/gen/genInfoForm.vue
deleted file mode 100644
index 98daf6d..0000000
--- a/ruoyi-ui/src/views/tool/gen/genInfoForm.vue
+++ /dev/null
@@ -1,312 +0,0 @@
-<template>
-  <el-form ref="genInfoForm" :model="info" :rules="rules" label-width="150px">
-    <el-row>
-      <el-col :span="12">
-        <el-form-item prop="tplCategory">
-          <span slot="label">生成模板</span>
-          <el-select v-model="info.tplCategory" @change="tplSelectChange">
-            <el-option label="单表(增删改查)" value="crud" />
-            <el-option label="树表(增删改查)" value="tree" />
-            <el-option label="主子表(增删改查)" value="sub" />
-          </el-select>
-        </el-form-item>
-      </el-col>
-      <el-col :span="12">
-        <el-form-item prop="tplWebType">
-          <span slot="label">前端类型</span>
-          <el-select v-model="info.tplWebType">
-            <el-option label="Vue2 Element UI 模版" value="element-ui" />
-            <el-option label="Vue3 Element Plus 模版" value="element-plus" />
-          </el-select>
-        </el-form-item>
-      </el-col>
-      <el-col :span="12">
-        <el-form-item prop="packageName">
-          <span slot="label">
-            生成包路径
-            <el-tooltip content="生成在哪个java包下,例如 com.ruoyi.system" placement="top">
-              <i class="el-icon-question"></i>
-            </el-tooltip>
-          </span>
-          <el-input v-model="info.packageName" />
-        </el-form-item>
-      </el-col>
-
-      <el-col :span="12">
-        <el-form-item prop="moduleName">
-          <span slot="label">
-            生成模块名
-            <el-tooltip content="可理解为子系统名,例如 system" placement="top">
-              <i class="el-icon-question"></i>
-            </el-tooltip>
-          </span>
-          <el-input v-model="info.moduleName" />
-        </el-form-item>
-      </el-col>
-
-      <el-col :span="12">
-        <el-form-item prop="businessName">
-          <span slot="label">
-            生成业务名
-            <el-tooltip content="可理解为功能英文名,例如 user" placement="top">
-              <i class="el-icon-question"></i>
-            </el-tooltip>
-          </span>
-          <el-input v-model="info.businessName" />
-        </el-form-item>
-      </el-col>
-
-      <el-col :span="12">
-        <el-form-item prop="functionName">
-          <span slot="label">
-            生成功能名
-            <el-tooltip content="用作类描述,例如 用户" placement="top">
-              <i class="el-icon-question"></i>
-            </el-tooltip>
-          </span>
-          <el-input v-model="info.functionName" />
-        </el-form-item>
-      </el-col>
-
-      <el-col :span="12">
-        <el-form-item prop="genType">
-          <span slot="label">
-            生成代码方式
-            <el-tooltip content="默认为zip压缩包下载,也可以自定义生成路径" placement="top">
-              <i class="el-icon-question"></i>
-            </el-tooltip>
-          </span>
-          <el-radio v-model="info.genType" label="0">zip压缩包</el-radio>
-          <el-radio v-model="info.genType" label="1">自定义路径</el-radio>
-        </el-form-item>
-      </el-col>
-
-      <el-col :span="12">
-        <el-form-item>
-          <span slot="label">
-            上级菜单
-            <el-tooltip content="分配到指定菜单下,例如 系统管理" placement="top">
-              <i class="el-icon-question"></i>
-            </el-tooltip>
-          </span>
-          <treeselect
-            :append-to-body="true"
-            v-model="info.parentMenuId"
-            :options="menus"
-            :normalizer="normalizer"
-            :show-count="true"
-            placeholder="请选择系统菜单"
-          />
-        </el-form-item>
-      </el-col>
-
-      <el-col :span="24" v-if="info.genType == '1'">
-        <el-form-item prop="genPath">
-          <span slot="label">
-            自定义路径
-            <el-tooltip content="填写磁盘绝对路径,若不填写,则生成到当前Web项目下" placement="top">
-              <i class="el-icon-question"></i>
-            </el-tooltip>
-          </span>
-          <el-input v-model="info.genPath">
-            <el-dropdown slot="append">
-              <el-button type="primary">
-                最近路径快速选择
-                <i class="el-icon-arrow-down el-icon--right"></i>
-              </el-button>
-              <el-dropdown-menu slot="dropdown">
-                <el-dropdown-item @click.native="info.genPath = '/'">恢复默认的生成基础路径</el-dropdown-item>
-              </el-dropdown-menu>
-            </el-dropdown>
-          </el-input>
-        </el-form-item>
-      </el-col>
-    </el-row>
-
-    <el-row v-show="info.tplCategory == 'tree'">
-      <h4 class="form-header">其他信息</h4>
-      <el-col :span="12">
-        <el-form-item>
-          <span slot="label">
-            树编码字段
-            <el-tooltip content="树显示的编码字段名, 如:dept_id" placement="top">
-              <i class="el-icon-question"></i>
-            </el-tooltip>
-          </span>
-          <el-select v-model="info.treeCode" placeholder="请选择">
-            <el-option
-              v-for="(column, index) in info.columns"
-              :key="index"
-              :label="column.columnName + ':' + column.columnComment"
-              :value="column.columnName"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-      </el-col>
-      <el-col :span="12">
-        <el-form-item>
-          <span slot="label">
-            树父编码字段
-            <el-tooltip content="树显示的父编码字段名, 如:parent_Id" placement="top">
-              <i class="el-icon-question"></i>
-            </el-tooltip>
-          </span>
-          <el-select v-model="info.treeParentCode" placeholder="请选择">
-            <el-option
-              v-for="(column, index) in info.columns"
-              :key="index"
-              :label="column.columnName + ':' + column.columnComment"
-              :value="column.columnName"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-      </el-col>
-      <el-col :span="12">
-        <el-form-item>
-          <span slot="label">
-            树名称字段
-            <el-tooltip content="树节点的显示名称字段名, 如:dept_name" placement="top">
-              <i class="el-icon-question"></i>
-            </el-tooltip>
-          </span>
-          <el-select v-model="info.treeName" placeholder="请选择">
-            <el-option
-              v-for="(column, index) in info.columns"
-              :key="index"
-              :label="column.columnName + ':' + column.columnComment"
-              :value="column.columnName"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-      </el-col>
-    </el-row>
-    <el-row v-show="info.tplCategory == 'sub'">
-      <h4 class="form-header">关联信息</h4>
-      <el-col :span="12">
-        <el-form-item>
-          <span slot="label">
-            关联子表的表名
-            <el-tooltip content="关联子表的表名, 如:sys_user" placement="top">
-              <i class="el-icon-question"></i>
-            </el-tooltip>
-          </span>
-          <el-select v-model="info.subTableName" placeholder="请选择" @change="subSelectChange">
-            <el-option
-              v-for="(table, index) in tables"
-              :key="index"
-              :label="table.tableName + ':' + table.tableComment"
-              :value="table.tableName"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-      </el-col>
-      <el-col :span="12">
-        <el-form-item>
-          <span slot="label">
-            子表关联的外键名
-            <el-tooltip content="子表关联的外键名, 如:user_id" placement="top">
-              <i class="el-icon-question"></i>
-            </el-tooltip>
-          </span>
-          <el-select v-model="info.subTableFkName" placeholder="请选择">
-            <el-option
-              v-for="(column, index) in subColumns"
-              :key="index"
-              :label="column.columnName + ':' + column.columnComment"
-              :value="column.columnName"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-      </el-col>
-    </el-row>
-  </el-form>
-</template>
-
-<script>
-import Treeselect from "@riophae/vue-treeselect";
-import "@riophae/vue-treeselect/dist/vue-treeselect.css";
-
-export default {
-  components: { Treeselect },
-  props: {
-    info: {
-      type: Object,
-      default: null
-    },
-    tables: {
-      type: Array,
-      default: null
-    },
-    menus: {
-      type: Array,
-      default: []
-    },
-  },
-  data() {
-    return {
-      subColumns: [],
-      rules: {
-        tplCategory: [
-          { required: true, message: "请选择生成模板", trigger: "blur" }
-        ],
-        packageName: [
-          { required: true, message: "请输入生成包路径", trigger: "blur" }
-        ],
-        moduleName: [
-          { required: true, message: "请输入生成模块名", trigger: "blur" }
-        ],
-        businessName: [
-          { required: true, message: "请输入生成业务名", trigger: "blur" }
-        ],
-        functionName: [
-          { required: true, message: "请输入生成功能名", trigger: "blur" }
-        ],
-      }
-    };
-  },
-  watch: {
-    'info.subTableName': function(val) {
-      this.setSubTableColumns(val);
-    },
-    'info.tplWebType': function(val) {
-      if (val === '') {
-        this.info.tplWebType = "element-ui";
-      }
-    }
-  },
-  methods: {
-    /** 转换菜单数据结构 */
-    normalizer(node) {
-      if (node.children && !node.children.length) {
-        delete node.children;
-      }
-      return {
-        id: node.menuId,
-        label: node.menuName,
-        children: node.children
-      };
-    },
-    /** 选择子表名触发 */
-    subSelectChange(value) {
-      this.info.subTableFkName = '';
-    },
-    /** 选择生成模板触发 */
-    tplSelectChange(value) {
-      if(value !== 'sub') {
-        this.info.subTableName = '';
-        this.info.subTableFkName = '';
-      }
-    },
-    /** 设置关联外键 */
-    setSubTableColumns(value) {
-      for (var item in this.tables) {
-        const name = this.tables[item].tableName;
-        if (value === name) {
-          this.subColumns = this.tables[item].columns;
-          break;
-        }
-      }
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/tool/gen/importTable.vue b/ruoyi-ui/src/views/tool/gen/importTable.vue
deleted file mode 100644
index 3ea9532..0000000
--- a/ruoyi-ui/src/views/tool/gen/importTable.vue
+++ /dev/null
@@ -1,120 +0,0 @@
-<template>
-  <!-- 导入表 -->
-  <el-dialog title="导入表" :visible.sync="visible" width="800px" top="5vh" append-to-body>
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
-      <el-form-item label="表名称" prop="tableName">
-        <el-input
-          v-model="queryParams.tableName"
-          placeholder="请输入表名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="表描述" prop="tableComment">
-        <el-input
-          v-model="queryParams.tableComment"
-          placeholder="请输入表描述"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-    <el-row>
-      <el-table @row-click="clickRow" ref="table" :data="dbTableList" @selection-change="handleSelectionChange" height="260px">
-        <el-table-column type="selection" width="55"></el-table-column>
-        <el-table-column prop="tableName" label="表名称" :show-overflow-tooltip="true"></el-table-column>
-        <el-table-column prop="tableComment" label="表描述" :show-overflow-tooltip="true"></el-table-column>
-        <el-table-column prop="createTime" label="创建时间"></el-table-column>
-        <el-table-column prop="updateTime" label="更新时间"></el-table-column>
-      </el-table>
-      <pagination
-        v-show="total>0"
-        :total="total"
-        :page.sync="queryParams.pageNum"
-        :limit.sync="queryParams.pageSize"
-        @pagination="getList"
-      />
-    </el-row>
-    <div slot="footer" class="dialog-footer">
-      <el-button type="primary" @click="handleImportTable">确 定</el-button>
-      <el-button @click="visible = false">取 消</el-button>
-    </div>
-  </el-dialog>
-</template>
-
-<script>
-import { listDbTable, importTable } from "@/api/tool/gen";
-export default {
-  data() {
-    return {
-      // 遮罩层
-      visible: false,
-      // 选中数组值
-      tables: [],
-      // 总条数
-      total: 0,
-      // 表数据
-      dbTableList: [],
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        tableName: undefined,
-        tableComment: undefined
-      }
-    };
-  },
-  methods: {
-    // 显示弹框
-    show() {
-      this.getList();
-      this.visible = true;
-    },
-    clickRow(row) {
-      this.$refs.table.toggleRowSelection(row);
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.tables = selection.map(item => item.tableName);
-    },
-    // 查询表数据
-    getList() {
-      listDbTable(this.queryParams).then(res => {
-        if (res.code === 200) {
-          this.dbTableList = res.rows;
-          this.total = res.total;
-        }
-      });
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 导入按钮操作 */
-    handleImportTable() {
-      const tableNames = this.tables.join(",");
-      if (tableNames == "") {
-        this.$modal.msgError("请选择要导入的表");
-        return;
-      }
-      importTable({ tables: tableNames }).then(res => {
-        this.$modal.msgSuccess(res.msg);
-        if (res.code === 200) {
-          this.visible = false;
-          this.$emit("ok");
-        }
-      });
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/tool/gen/index.vue b/ruoyi-ui/src/views/tool/gen/index.vue
deleted file mode 100644
index 9237c30..0000000
--- a/ruoyi-ui/src/views/tool/gen/index.vue
+++ /dev/null
@@ -1,354 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="表名称" prop="tableName">
-        <el-input
-          v-model="queryParams.tableName"
-          placeholder="请输入表名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="表描述" prop="tableComment">
-        <el-input
-          v-model="queryParams.tableComment"
-          placeholder="请输入表描述"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="创建时间">
-        <el-date-picker
-          v-model="dateRange"
-          style="width: 240px"
-          value-format="yyyy-MM-dd"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        ></el-date-picker>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :disabled="multiple"
-          @click="handleGenTable"
-          v-hasPermi="['tool:gen:code']"
-        >生成</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="openCreateTable"
-          v-hasRole="['admin']"
-        >创建</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="info"
-          plain
-          icon="el-icon-upload"
-          size="mini"
-          @click="openImportTable"
-          v-hasPermi="['tool:gen:import']"
-        >导入</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleEditTable"
-          v-hasPermi="['tool:gen:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['tool:gen:remove']"
-        >删除</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" align="center" width="55"></el-table-column>
-      <el-table-column label="序号" type="index" width="50" align="center">
-        <template slot-scope="scope">
-          <span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column
-        label="表名称"
-        align="center"
-        prop="tableName"
-        :show-overflow-tooltip="true"
-        width="120"
-      />
-      <el-table-column
-        label="表描述"
-        align="center"
-        prop="tableComment"
-        :show-overflow-tooltip="true"
-        width="120"
-      />
-      <el-table-column
-        label="实体"
-        align="center"
-        prop="className"
-        :show-overflow-tooltip="true"
-        width="120"
-      />
-      <el-table-column label="创建时间" align="center" prop="createTime" width="160" />
-      <el-table-column label="更新时间" align="center" prop="updateTime" width="160" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            type="text"
-            size="small"
-            icon="el-icon-view"
-            @click="handlePreview(scope.row)"
-            v-hasPermi="['tool:gen:preview']"
-          >预览</el-button>
-          <el-button
-            type="text"
-            size="small"
-            icon="el-icon-edit"
-            @click="handleEditTable(scope.row)"
-            v-hasPermi="['tool:gen:edit']"
-          >编辑</el-button>
-          <el-button
-            type="text"
-            size="small"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['tool:gen:remove']"
-          >删除</el-button>
-          <el-button
-            type="text"
-            size="small"
-            icon="el-icon-refresh"
-            @click="handleSynchDb(scope.row)"
-            v-hasPermi="['tool:gen:edit']"
-          >同步</el-button>
-          <el-button
-            type="text"
-            size="small"
-            icon="el-icon-download"
-            @click="handleGenTable(scope.row)"
-            v-hasPermi="['tool:gen:code']"
-          >生成代码</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-    <!-- 预览界面 -->
-    <el-dialog :title="preview.title" :visible.sync="preview.open" width="80%" top="5vh" append-to-body class="scrollbar">
-      <el-tabs v-model="preview.activeName">
-        <el-tab-pane
-          v-for="(value, key) in preview.data"
-          :label="key.substring(key.lastIndexOf('/')+1,key.indexOf('.vm'))"
-          :name="key.substring(key.lastIndexOf('/')+1,key.indexOf('.vm'))"
-          :key="key"
-        >
-          <el-link :underline="false" icon="el-icon-document-copy" v-clipboard:copy="value" v-clipboard:success="clipboardSuccess" style="float:right">复制</el-link>
-          <pre><code class="hljs" v-html="highlightedCode(value, key)"></code></pre>
-        </el-tab-pane>
-      </el-tabs>
-    </el-dialog>
-    <import-table ref="import" @ok="handleQuery" />
-    <create-table ref="create" @ok="handleQuery" />
-  </div>
-</template>
-
-<script>
-import { listTable, previewTable, delTable, genCode, synchDb } from "@/api/tool/gen";
-import importTable from "./importTable";
-import createTable from "./createTable";
-import hljs from "highlight.js/lib/highlight";
-import "highlight.js/styles/github-gist.css";
-hljs.registerLanguage("java", require("highlight.js/lib/languages/java"));
-hljs.registerLanguage("xml", require("highlight.js/lib/languages/xml"));
-hljs.registerLanguage("html", require("highlight.js/lib/languages/xml"));
-hljs.registerLanguage("vue", require("highlight.js/lib/languages/xml"));
-hljs.registerLanguage("javascript", require("highlight.js/lib/languages/javascript"));
-hljs.registerLanguage("sql", require("highlight.js/lib/languages/sql"));
-
-export default {
-  name: "Gen",
-  components: { importTable, createTable },
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 唯一标识符
-      uniqueId: "",
-      // 选中数组
-      ids: [],
-      // 选中表数组
-      tableNames: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 表数据
-      tableList: [],
-      // 日期范围
-      dateRange: "",
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        tableName: undefined,
-        tableComment: undefined
-      },
-      // 预览参数
-      preview: {
-        open: false,
-        title: "代码预览",
-        data: {},
-        activeName: "domain.java"
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  activated() {
-    const time = this.$route.query.t;
-    if (time != null && time != this.uniqueId) {
-      this.uniqueId = time;
-      this.queryParams.pageNum = Number(this.$route.query.pageNum);
-      this.getList();
-    }
-  },
-  methods: {
-    /** 查询表集合 */
-    getList() {
-      this.loading = true;
-      listTable(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-          this.tableList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 生成代码操作 */
-    handleGenTable(row) {
-      const tableNames = row.tableName || this.tableNames;
-      if (tableNames == "") {
-        this.$modal.msgError("请选择要生成的数据");
-        return;
-      }
-      if(row.genType === "1") {
-        genCode(row.tableName).then(response => {
-          this.$modal.msgSuccess("成功生成到自定义路径:" + row.genPath);
-        });
-      } else {
-        this.$download.zip("/tool/gen/batchGenCode?tables=" + tableNames, "ruoyi.zip");
-      }
-    },
-    /** 同步数据库操作 */
-    handleSynchDb(row) {
-      const tableName = row.tableName;
-      this.$modal.confirm('确认要强制同步"' + tableName + '"表结构吗?').then(function() {
-        return synchDb(tableName);
-      }).then(() => {
-        this.$modal.msgSuccess("同步成功");
-      }).catch(() => {});
-    },
-    /** 打开导入表弹窗 */
-    openImportTable() {
-      this.$refs.import.show();
-    },
-    /** 打开创建表弹窗 */
-    openCreateTable() {
-      this.$refs.create.show();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 预览按钮 */
-    handlePreview(row) {
-      previewTable(row.tableId).then(response => {
-        this.preview.data = response.data;
-        this.preview.open = true;
-        this.preview.activeName = "domain.java";
-      });
-    },
-    /** 高亮显示 */
-    highlightedCode(code, key) {
-      const vmName = key.substring(key.lastIndexOf("/") + 1, key.indexOf(".vm"));
-      var language = vmName.substring(vmName.indexOf(".") + 1, vmName.length);
-      const result = hljs.highlight(language, code || "", true);
-      return result.value || '&nbsp;';
-    },
-    /** 复制代码成功 */
-    clipboardSuccess() {
-      this.$modal.msgSuccess("复制成功");
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.tableId);
-      this.tableNames = selection.map(item => item.tableName);
-      this.single = selection.length != 1;
-      this.multiple = !selection.length;
-    },
-    /** 修改按钮操作 */
-    handleEditTable(row) {
-      const tableId = row.tableId || this.ids[0];
-      const tableName = row.tableName || this.tableNames[0];
-      const params = { pageNum: this.queryParams.pageNum };
-      this.$tab.openPage("修改[" + tableName + "]生成配置", '/tool/gen-edit/index/' + tableId, params);
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const tableIds = row.tableId || this.ids;
-      this.$modal.confirm('是否确认删除表编号为"' + tableIds + '"的数据项?').then(function() {
-        return delTable(tableIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    }
-  }
-};
-</script>
diff --git a/ruoyi-ui/src/views/tool/swagger/index.vue b/ruoyi-ui/src/views/tool/swagger/index.vue
deleted file mode 100644
index b8becc6..0000000
--- a/ruoyi-ui/src/views/tool/swagger/index.vue
+++ /dev/null
@@ -1,15 +0,0 @@
-<template>
-  <i-frame :src="url" />
-</template>
-<script>
-import iFrame from "@/components/iFrame/index";
-export default {
-  name: "Swagger",
-  components: { iFrame },
-  data() {
-    return {
-      url: process.env.VUE_APP_BASE_API + "/swagger-ui/index.html"
-    };
-  },
-};
-</script>
diff --git a/ruoyi-ui/vue.config.js b/ruoyi-ui/vue.config.js
deleted file mode 100644
index 85f3133..0000000
--- a/ruoyi-ui/vue.config.js
+++ /dev/null
@@ -1,130 +0,0 @@
-'use strict'
-const path = require('path')
-
-function resolve(dir) {
-  return path.join(__dirname, dir)
-}
-
-const CompressionPlugin = require('compression-webpack-plugin')
-
-const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题
-
-const port = process.env.port || process.env.npm_config_port || 80 // 端口
-
-// vue.config.js 配置说明
-//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
-// 这里只列一部分,具体配置参考文档
-module.exports = {
-  // 部署生产环境和开发环境下的URL。
-  // 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上
-  // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
-  publicPath: process.env.NODE_ENV === "production" ? "/" : "/",
-  // 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
-  outputDir: 'dist',
-  // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
-  assetsDir: 'static',
-  // 是否开启eslint保存检测,有效值:ture | false | 'error'
-  lintOnSave: process.env.NODE_ENV === 'development',
-  // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
-  productionSourceMap: false,
-  // webpack-dev-server 相关配置
-  devServer: {
-    host: '0.0.0.0',
-    port: port,
-    open: true,
-    proxy: {
-      // detail: https://cli.vuejs.org/config/#devserver-proxy
-      [process.env.VUE_APP_BASE_API]: {
-        target: `http://localhost:8080`,
-        changeOrigin: true,
-        pathRewrite: {
-          ['^' + process.env.VUE_APP_BASE_API]: ''
-        }
-      }
-    },
-    disableHostCheck: true
-  },
-  css: {
-    loaderOptions: {
-      sass: {
-        sassOptions: { outputStyle: "expanded" }
-      }
-    }
-  },
-  configureWebpack: {
-    name: name,
-    resolve: {
-      alias: {
-        '@': resolve('src')
-      }
-    },
-    plugins: [
-      // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件
-      new CompressionPlugin({
-        cache: false,                                  // 不启用文件缓存
-        test: /\.(js|css|html|jpe?g|png|gif|svg)?$/i,  // 压缩文件格式
-        filename: '[path][base].gz[query]',            // 压缩后的文件名
-        algorithm: 'gzip',                             // 使用gzip压缩
-        minRatio: 0.8,                                 // 压缩比例,小于 80% 的文件不会被压缩
-        deleteOriginalAssets: false                    // 压缩后删除原文件
-      })
-    ],
-  },
-  chainWebpack(config) {
-    config.plugins.delete('preload') // TODO: need test
-    config.plugins.delete('prefetch') // TODO: need test
-
-    // set svg-sprite-loader
-    config.module
-      .rule('svg')
-      .exclude.add(resolve('src/assets/icons'))
-      .end()
-    config.module
-      .rule('icons')
-      .test(/\.svg$/)
-      .include.add(resolve('src/assets/icons'))
-      .end()
-      .use('svg-sprite-loader')
-      .loader('svg-sprite-loader')
-      .options({
-        symbolId: 'icon-[name]'
-      })
-      .end()
-
-    config.when(process.env.NODE_ENV !== 'development', config => {
-          config
-            .plugin('ScriptExtHtmlWebpackPlugin')
-            .after('html')
-            .use('script-ext-html-webpack-plugin', [{
-            // `runtime` must same as runtimeChunk name. default is `runtime`
-              inline: /runtime\..*\.js$/
-            }])
-            .end()
-
-          config.optimization.splitChunks({
-            chunks: 'all',
-            cacheGroups: {
-              libs: {
-                name: 'chunk-libs',
-                test: /[\\/]node_modules[\\/]/,
-                priority: 10,
-                chunks: 'initial' // only package third parties that are initially dependent
-              },
-              elementUI: {
-                name: 'chunk-elementUI', // split elementUI into a single package
-                test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm
-                priority: 20 // the weight needs to be larger than libs and app or it will be packaged into libs or app
-              },
-              commons: {
-                name: 'chunk-commons',
-                test: resolve('src/components'), // can customize your rules
-                minChunks: 3, //  minimum common number
-                priority: 5,
-                reuseExistingChunk: true
-              }
-            }
-          })
-          config.optimization.runtimeChunk('single')
-    })
-  }
-}
diff --git a/ry.bat b/ry.bat
deleted file mode 100644
index ac1e437..0000000
--- a/ry.bat
+++ /dev/null
@@ -1,67 +0,0 @@
-@echo off
-
-rem jarƽ��Ŀ¼
-set AppName=ruoyi-admin.jar
-
-rem JVM����
-set JVM_OPTS="-Dname=%AppName%  -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps  -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
-
-
-ECHO.
-	ECHO.  [1] ����%AppName%
-	ECHO.  [2] �ر�%AppName%
-	ECHO.  [3] ����%AppName%
-	ECHO.  [4] ����״̬ %AppName%
-	ECHO.  [5] �� ��
-ECHO.
-
-ECHO.������ѡ����Ŀ�����:
-set /p ID=
-	IF "%id%"=="1" GOTO start
-	IF "%id%"=="2" GOTO stop
-	IF "%id%"=="3" GOTO restart
-	IF "%id%"=="4" GOTO status
-	IF "%id%"=="5" EXIT
-PAUSE
-:start
-    for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do (
-		set pid=%%a
-		set image_name=%%b
-	)
-	if  defined pid (
-		echo %%is running
-		PAUSE
-	)
-
-start javaw %JVM_OPTS% -jar %AppName%
-
-echo  starting����
-echo  Start %AppName% success...
-goto:eof
-
-rem ����stopͨ��jps�������pid����������
-:stop
-	for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do (
-		set pid=%%a
-		set image_name=%%b
-	)
-	if not defined pid (echo process %AppName% does not exists) else (
-		echo prepare to kill %image_name%
-		echo start kill %pid% ...
-		rem ���ݽ���ID��kill����
-		taskkill /f /pid %pid%
-	)
-goto:eof
-:restart
-	call :stop
-    call :start
-goto:eof
-:status
-	for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do (
-		set pid=%%a
-		set image_name=%%b
-	)
-	if not defined pid (echo process %AppName% is dead ) else (
-		echo %image_name% is running
-	)
-goto:eof
diff --git a/ry.sh b/ry.sh
deleted file mode 100644
index d6a9cf3..0000000
--- a/ry.sh
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/bin/sh
-# ./ry.sh start 启动 stop 停止 restart 重启 status 状态
-AppName=ruoyi-admin.jar
-
-# JVM参数
-JVM_OPTS="-Dname=$AppName  -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps  -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
-APP_HOME=`pwd`
-LOG_PATH=$APP_HOME/logs/$AppName.log
-
-if [ "$1" = "" ];
-then
-    echo -e "\033[0;31m 未输入操作名 \033[0m  \033[0;34m {start|stop|restart|status} \033[0m"
-    exit 1
-fi
-
-if [ "$AppName" = "" ];
-then
-    echo -e "\033[0;31m 未输入应用名 \033[0m"
-    exit 1
-fi
-
-function start()
-{
-    PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
-
-	if [ x"$PID" != x"" ]; then
-	    echo "$AppName is running..."
-	else
-		nohup java $JVM_OPTS -jar $AppName > /dev/null 2>&1 &
-		echo "Start $AppName success..."
-	fi
-}
-
-function stop()
-{
-    echo "Stop $AppName"
-
-	PID=""
-	query(){
-		PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
-	}
-
-	query
-	if [ x"$PID" != x"" ]; then
-		kill -TERM $PID
-		echo "$AppName (pid:$PID) exiting..."
-		while [ x"$PID" != x"" ]
-		do
-			sleep 1
-			query
-		done
-		echo "$AppName exited."
-	else
-		echo "$AppName already stopped."
-	fi
-}
-
-function restart()
-{
-    stop
-    sleep 2
-    start
-}
-
-function status()
-{
-    PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
-    if [ $PID != 0 ];then
-        echo "$AppName is running..."
-    else
-        echo "$AppName is not running..."
-    fi
-}
-
-case $1 in
-    start)
-    start;;
-    stop)
-    stop;;
-    restart)
-    restart;;
-    status)
-    status;;
-    *)
-
-esac
diff --git a/sql/quartz.sql b/sql/quartz.sql
deleted file mode 100644
index cee613b..0000000
--- a/sql/quartz.sql
+++ /dev/null
@@ -1,174 +0,0 @@
-DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;
-DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;
-DROP TABLE IF EXISTS QRTZ_LOCKS;
-DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
-DROP TABLE IF EXISTS QRTZ_CALENDARS;
-
--- ----------------------------
--- 1、存储每一个已配置的 jobDetail 的详细信息
--- ----------------------------
-create table QRTZ_JOB_DETAILS (
-    sched_name           varchar(120)    not null            comment '调度名称',
-    job_name             varchar(200)    not null            comment '任务名称',
-    job_group            varchar(200)    not null            comment '任务组名',
-    description          varchar(250)    null                comment '相关介绍',
-    job_class_name       varchar(250)    not null            comment '执行任务类名称',
-    is_durable           varchar(1)      not null            comment '是否持久化',
-    is_nonconcurrent     varchar(1)      not null            comment '是否并发',
-    is_update_data       varchar(1)      not null            comment '是否更新数据',
-    requests_recovery    varchar(1)      not null            comment '是否接受恢复执行',
-    job_data             blob            null                comment '存放持久化job对象',
-    primary key (sched_name, job_name, job_group)
-) engine=innodb comment = '任务详细信息表';
-
--- ----------------------------
--- 2、 存储已配置的 Trigger 的信息
--- ----------------------------
-create table QRTZ_TRIGGERS (
-    sched_name           varchar(120)    not null            comment '调度名称',
-    trigger_name         varchar(200)    not null            comment '触发器的名字',
-    trigger_group        varchar(200)    not null            comment '触发器所属组的名字',
-    job_name             varchar(200)    not null            comment 'qrtz_job_details表job_name的外键',
-    job_group            varchar(200)    not null            comment 'qrtz_job_details表job_group的外键',
-    description          varchar(250)    null                comment '相关介绍',
-    next_fire_time       bigint(13)      null                comment '上一次触发时间(毫秒)',
-    prev_fire_time       bigint(13)      null                comment '下一次触发时间(默认为-1表示不触发)',
-    priority             integer         null                comment '优先级',
-    trigger_state        varchar(16)     not null            comment '触发器状态',
-    trigger_type         varchar(8)      not null            comment '触发器的类型',
-    start_time           bigint(13)      not null            comment '开始时间',
-    end_time             bigint(13)      null                comment '结束时间',
-    calendar_name        varchar(200)    null                comment '日程表名称',
-    misfire_instr        smallint(2)     null                comment '补偿执行的策略',
-    job_data             blob            null                comment '存放持久化job对象',
-    primary key (sched_name, trigger_name, trigger_group),
-    foreign key (sched_name, job_name, job_group) references QRTZ_JOB_DETAILS(sched_name, job_name, job_group)
-) engine=innodb comment = '触发器详细信息表';
-
--- ----------------------------
--- 3、 存储简单的 Trigger,包括重复次数,间隔,以及已触发的次数
--- ----------------------------
-create table QRTZ_SIMPLE_TRIGGERS (
-    sched_name           varchar(120)    not null            comment '调度名称',
-    trigger_name         varchar(200)    not null            comment 'qrtz_triggers表trigger_name的外键',
-    trigger_group        varchar(200)    not null            comment 'qrtz_triggers表trigger_group的外键',
-    repeat_count         bigint(7)       not null            comment '重复的次数统计',
-    repeat_interval      bigint(12)      not null            comment '重复的间隔时间',
-    times_triggered      bigint(10)      not null            comment '已经触发的次数',
-    primary key (sched_name, trigger_name, trigger_group),
-    foreign key (sched_name, trigger_name, trigger_group) references QRTZ_TRIGGERS(sched_name, trigger_name, trigger_group)
-) engine=innodb comment = '简单触发器的信息表';
-
--- ----------------------------
--- 4、 存储 Cron Trigger,包括 Cron 表达式和时区信息
--- ---------------------------- 
-create table QRTZ_CRON_TRIGGERS (
-    sched_name           varchar(120)    not null            comment '调度名称',
-    trigger_name         varchar(200)    not null            comment 'qrtz_triggers表trigger_name的外键',
-    trigger_group        varchar(200)    not null            comment 'qrtz_triggers表trigger_group的外键',
-    cron_expression      varchar(200)    not null            comment 'cron表达式',
-    time_zone_id         varchar(80)                         comment '时区',
-    primary key (sched_name, trigger_name, trigger_group),
-    foreign key (sched_name, trigger_name, trigger_group) references QRTZ_TRIGGERS(sched_name, trigger_name, trigger_group)
-) engine=innodb comment = 'Cron类型的触发器表';
-
--- ----------------------------
--- 5、 Trigger 作为 Blob 类型存储(用于 Quartz 用户用 JDBC 创建他们自己定制的 Trigger 类型,JobStore 并不知道如何存储实例的时候)
--- ---------------------------- 
-create table QRTZ_BLOB_TRIGGERS (
-    sched_name           varchar(120)    not null            comment '调度名称',
-    trigger_name         varchar(200)    not null            comment 'qrtz_triggers表trigger_name的外键',
-    trigger_group        varchar(200)    not null            comment 'qrtz_triggers表trigger_group的外键',
-    blob_data            blob            null                comment '存放持久化Trigger对象',
-    primary key (sched_name, trigger_name, trigger_group),
-    foreign key (sched_name, trigger_name, trigger_group) references QRTZ_TRIGGERS(sched_name, trigger_name, trigger_group)
-) engine=innodb comment = 'Blob类型的触发器表';
-
--- ----------------------------
--- 6、 以 Blob 类型存储存放日历信息, quartz可配置一个日历来指定一个时间范围
--- ---------------------------- 
-create table QRTZ_CALENDARS (
-    sched_name           varchar(120)    not null            comment '调度名称',
-    calendar_name        varchar(200)    not null            comment '日历名称',
-    calendar             blob            not null            comment '存放持久化calendar对象',
-    primary key (sched_name, calendar_name)
-) engine=innodb comment = '日历信息表';
-
--- ----------------------------
--- 7、 存储已暂停的 Trigger 组的信息
--- ---------------------------- 
-create table QRTZ_PAUSED_TRIGGER_GRPS (
-    sched_name           varchar(120)    not null            comment '调度名称',
-    trigger_group        varchar(200)    not null            comment 'qrtz_triggers表trigger_group的外键',
-    primary key (sched_name, trigger_group)
-) engine=innodb comment = '暂停的触发器表';
-
--- ----------------------------
--- 8、 存储与已触发的 Trigger 相关的状态信息,以及相联 Job 的执行信息
--- ---------------------------- 
-create table QRTZ_FIRED_TRIGGERS (
-    sched_name           varchar(120)    not null            comment '调度名称',
-    entry_id             varchar(95)     not null            comment '调度器实例id',
-    trigger_name         varchar(200)    not null            comment 'qrtz_triggers表trigger_name的外键',
-    trigger_group        varchar(200)    not null            comment 'qrtz_triggers表trigger_group的外键',
-    instance_name        varchar(200)    not null            comment '调度器实例名',
-    fired_time           bigint(13)      not null            comment '触发的时间',
-    sched_time           bigint(13)      not null            comment '定时器制定的时间',
-    priority             integer         not null            comment '优先级',
-    state                varchar(16)     not null            comment '状态',
-    job_name             varchar(200)    null                comment '任务名称',
-    job_group            varchar(200)    null                comment '任务组名',
-    is_nonconcurrent     varchar(1)      null                comment '是否并发',
-    requests_recovery    varchar(1)      null                comment '是否接受恢复执行',
-    primary key (sched_name, entry_id)
-) engine=innodb comment = '已触发的触发器表';
-
--- ----------------------------
--- 9、 存储少量的有关 Scheduler 的状态信息,假如是用于集群中,可以看到其他的 Scheduler 实例
--- ---------------------------- 
-create table QRTZ_SCHEDULER_STATE (
-    sched_name           varchar(120)    not null            comment '调度名称',
-    instance_name        varchar(200)    not null            comment '实例名称',
-    last_checkin_time    bigint(13)      not null            comment '上次检查时间',
-    checkin_interval     bigint(13)      not null            comment '检查间隔时间',
-    primary key (sched_name, instance_name)
-) engine=innodb comment = '调度器状态表';
-
--- ----------------------------
--- 10、 存储程序的悲观锁的信息(假如使用了悲观锁)
--- ---------------------------- 
-create table QRTZ_LOCKS (
-    sched_name           varchar(120)    not null            comment '调度名称',
-    lock_name            varchar(40)     not null            comment '悲观锁名称',
-    primary key (sched_name, lock_name)
-) engine=innodb comment = '存储的悲观锁信息表';
-
--- ----------------------------
--- 11、 Quartz集群实现同步机制的行锁表
--- ---------------------------- 
-create table QRTZ_SIMPROP_TRIGGERS (
-    sched_name           varchar(120)    not null            comment '调度名称',
-    trigger_name         varchar(200)    not null            comment 'qrtz_triggers表trigger_name的外键',
-    trigger_group        varchar(200)    not null            comment 'qrtz_triggers表trigger_group的外键',
-    str_prop_1           varchar(512)    null                comment 'String类型的trigger的第一个参数',
-    str_prop_2           varchar(512)    null                comment 'String类型的trigger的第二个参数',
-    str_prop_3           varchar(512)    null                comment 'String类型的trigger的第三个参数',
-    int_prop_1           int             null                comment 'int类型的trigger的第一个参数',
-    int_prop_2           int             null                comment 'int类型的trigger的第二个参数',
-    long_prop_1          bigint          null                comment 'long类型的trigger的第一个参数',
-    long_prop_2          bigint          null                comment 'long类型的trigger的第二个参数',
-    dec_prop_1           numeric(13,4)   null                comment 'decimal类型的trigger的第一个参数',
-    dec_prop_2           numeric(13,4)   null                comment 'decimal类型的trigger的第二个参数',
-    bool_prop_1          varchar(1)      null                comment 'Boolean类型的trigger的第一个参数',
-    bool_prop_2          varchar(1)      null                comment 'Boolean类型的trigger的第二个参数',
-    primary key (sched_name, trigger_name, trigger_group),
-    foreign key (sched_name, trigger_name, trigger_group) references QRTZ_TRIGGERS(sched_name, trigger_name, trigger_group)
-) engine=innodb comment = '同步机制的行锁表';
-
-commit;
\ No newline at end of file
diff --git a/sql/ry_20231130.sql b/sql/ry_20231130.sql
deleted file mode 100644
index 452c2fc..0000000
--- a/sql/ry_20231130.sql
+++ /dev/null
@@ -1,700 +0,0 @@
--- ----------------------------
--- 1、部门表
--- ----------------------------
-drop table if exists sys_dept;
-create table sys_dept (
-  dept_id           bigint(20)      not null auto_increment    comment '部门id',
-  parent_id         bigint(20)      default 0                  comment '父部门id',
-  ancestors         varchar(50)     default ''                 comment '祖级列表',
-  dept_name         varchar(30)     default ''                 comment '部门名称',
-  order_num         int(4)          default 0                  comment '显示顺序',
-  leader            varchar(20)     default null               comment '负责人',
-  phone             varchar(11)     default null               comment '联系电话',
-  email             varchar(50)     default null               comment '邮箱',
-  status            char(1)         default '0'                comment '部门状态(0正常 1停用)',
-  del_flag          char(1)         default '0'                comment '删除标志(0代表存在 2代表删除)',
-  create_by         varchar(64)     default ''                 comment '创建者',
-  create_time 	    datetime                                   comment '创建时间',
-  update_by         varchar(64)     default ''                 comment '更新者',
-  update_time       datetime                                   comment '更新时间',
-  primary key (dept_id)
-) engine=innodb auto_increment=200 comment = '部门表';
-
--- ----------------------------
--- 初始化-部门表数据
--- ----------------------------
-insert into sys_dept values(100,  0,   '0',          '若依科技',   0, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
-insert into sys_dept values(101,  100, '0,100',      '深圳总公司', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
-insert into sys_dept values(102,  100, '0,100',      '长沙分公司', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
-insert into sys_dept values(103,  101, '0,100,101',  '研发部门',   1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
-insert into sys_dept values(104,  101, '0,100,101',  '市场部门',   2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
-insert into sys_dept values(105,  101, '0,100,101',  '测试部门',   3, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
-insert into sys_dept values(106,  101, '0,100,101',  '财务部门',   4, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
-insert into sys_dept values(107,  101, '0,100,101',  '运维部门',   5, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
-insert into sys_dept values(108,  102, '0,100,102',  '市场部门',   1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
-insert into sys_dept values(109,  102, '0,100,102',  '财务部门',   2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
-
-
--- ----------------------------
--- 2、用户信息表
--- ----------------------------
-drop table if exists sys_user;
-create table sys_user (
-  user_id           bigint(20)      not null auto_increment    comment '用户ID',
-  dept_id           bigint(20)      default null               comment '部门ID',
-  user_name         varchar(30)     not null                   comment '用户账号',
-  nick_name         varchar(30)     not null                   comment '用户昵称',
-  user_type         varchar(2)      default '00'               comment '用户类型(00系统用户)',
-  email             varchar(50)     default ''                 comment '用户邮箱',
-  phonenumber       varchar(11)     default ''                 comment '手机号码',
-  sex               char(1)         default '0'                comment '用户性别(0男 1女 2未知)',
-  avatar            varchar(100)    default ''                 comment '头像地址',
-  password          varchar(100)    default ''                 comment '密码',
-  status            char(1)         default '0'                comment '帐号状态(0正常 1停用)',
-  del_flag          char(1)         default '0'                comment '删除标志(0代表存在 2代表删除)',
-  login_ip          varchar(128)    default ''                 comment '最后登录IP',
-  login_date        datetime                                   comment '最后登录时间',
-  create_by         varchar(64)     default ''                 comment '创建者',
-  create_time       datetime                                   comment '创建时间',
-  update_by         varchar(64)     default ''                 comment '更新者',
-  update_time       datetime                                   comment '更新时间',
-  remark            varchar(500)    default null               comment '备注',
-  primary key (user_id)
-) engine=innodb auto_increment=100 comment = '用户信息表';
-
--- ----------------------------
--- 初始化-用户信息表数据
--- ----------------------------
-insert into sys_user values(1,  103, 'admin', '若依', '00', 'ry@163.com', '15888888888', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', sysdate(), 'admin', sysdate(), '', null, '管理员');
-insert into sys_user values(2,  105, 'ry',    '若依', '00', 'ry@qq.com',  '15666666666', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', sysdate(), 'admin', sysdate(), '', null, '测试员');
-
-
--- ----------------------------
--- 3、岗位信息表
--- ----------------------------
-drop table if exists sys_post;
-create table sys_post
-(
-  post_id       bigint(20)      not null auto_increment    comment '岗位ID',
-  post_code     varchar(64)     not null                   comment '岗位编码',
-  post_name     varchar(50)     not null                   comment '岗位名称',
-  post_sort     int(4)          not null                   comment '显示顺序',
-  status        char(1)         not null                   comment '状态(0正常 1停用)',
-  create_by     varchar(64)     default ''                 comment '创建者',
-  create_time   datetime                                   comment '创建时间',
-  update_by     varchar(64)     default ''			       comment '更新者',
-  update_time   datetime                                   comment '更新时间',
-  remark        varchar(500)    default null               comment '备注',
-  primary key (post_id)
-) engine=innodb comment = '岗位信息表';
-
--- ----------------------------
--- 初始化-岗位信息表数据
--- ----------------------------
-insert into sys_post values(1, 'ceo',  '董事长',    1, '0', 'admin', sysdate(), '', null, '');
-insert into sys_post values(2, 'se',   '项目经理',  2, '0', 'admin', sysdate(), '', null, '');
-insert into sys_post values(3, 'hr',   '人力资源',  3, '0', 'admin', sysdate(), '', null, '');
-insert into sys_post values(4, 'user', '普通员工',  4, '0', 'admin', sysdate(), '', null, '');
-
-
--- ----------------------------
--- 4、角色信息表
--- ----------------------------
-drop table if exists sys_role;
-create table sys_role (
-  role_id              bigint(20)      not null auto_increment    comment '角色ID',
-  role_name            varchar(30)     not null                   comment '角色名称',
-  role_key             varchar(100)    not null                   comment '角色权限字符串',
-  role_sort            int(4)          not null                   comment '显示顺序',
-  data_scope           char(1)         default '1'                comment '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)',
-  menu_check_strictly  tinyint(1)      default 1                  comment '菜单树选择项是否关联显示',
-  dept_check_strictly  tinyint(1)      default 1                  comment '部门树选择项是否关联显示',
-  status               char(1)         not null                   comment '角色状态(0正常 1停用)',
-  del_flag             char(1)         default '0'                comment '删除标志(0代表存在 2代表删除)',
-  create_by            varchar(64)     default ''                 comment '创建者',
-  create_time          datetime                                   comment '创建时间',
-  update_by            varchar(64)     default ''                 comment '更新者',
-  update_time          datetime                                   comment '更新时间',
-  remark               varchar(500)    default null               comment '备注',
-  primary key (role_id)
-) engine=innodb auto_increment=100 comment = '角色信息表';
-
--- ----------------------------
--- 初始化-角色信息表数据
--- ----------------------------
-insert into sys_role values('1', '超级管理员',  'admin',  1, 1, 1, 1, '0', '0', 'admin', sysdate(), '', null, '超级管理员');
-insert into sys_role values('2', '普通角色',    'common', 2, 2, 1, 1, '0', '0', 'admin', sysdate(), '', null, '普通角色');
-
-
--- ----------------------------
--- 5、菜单权限表
--- ----------------------------
-drop table if exists sys_menu;
-create table sys_menu (
-  menu_id           bigint(20)      not null auto_increment    comment '菜单ID',
-  menu_name         varchar(50)     not null                   comment '菜单名称',
-  parent_id         bigint(20)      default 0                  comment '父菜单ID',
-  order_num         int(4)          default 0                  comment '显示顺序',
-  path              varchar(200)    default ''                 comment '路由地址',
-  component         varchar(255)    default null               comment '组件路径',
-  query             varchar(255)    default null               comment '路由参数',
-  is_frame          int(1)          default 1                  comment '是否为外链(0是 1否)',
-  is_cache          int(1)          default 0                  comment '是否缓存(0缓存 1不缓存)',
-  menu_type         char(1)         default ''                 comment '菜单类型(M目录 C菜单 F按钮)',
-  visible           char(1)         default 0                  comment '菜单状态(0显示 1隐藏)',
-  status            char(1)         default 0                  comment '菜单状态(0正常 1停用)',
-  perms             varchar(100)    default null               comment '权限标识',
-  icon              varchar(100)    default '#'                comment '菜单图标',
-  create_by         varchar(64)     default ''                 comment '创建者',
-  create_time       datetime                                   comment '创建时间',
-  update_by         varchar(64)     default ''                 comment '更新者',
-  update_time       datetime                                   comment '更新时间',
-  remark            varchar(500)    default ''                 comment '备注',
-  primary key (menu_id)
-) engine=innodb auto_increment=2000 comment = '菜单权限表';
-
--- ----------------------------
--- 初始化-菜单信息表数据
--- ----------------------------
--- 一级菜单
-insert into sys_menu values('1', '系统管理', '0', '1', 'system',           null, '', 1, 0, 'M', '0', '0', '', 'system',   'admin', sysdate(), '', null, '系统管理目录');
-insert into sys_menu values('2', '系统监控', '0', '2', 'monitor',          null, '', 1, 0, 'M', '0', '0', '', 'monitor',  'admin', sysdate(), '', null, '系统监控目录');
-insert into sys_menu values('3', '系统工具', '0', '3', 'tool',             null, '', 1, 0, 'M', '0', '0', '', 'tool',     'admin', sysdate(), '', null, '系统工具目录');
-insert into sys_menu values('4', '若依官网', '0', '4', 'http://ruoyi.vip', null, '', 0, 0, 'M', '0', '0', '', 'guide',    'admin', sysdate(), '', null, '若依官网地址');
--- 二级菜单
-insert into sys_menu values('100',  '用户管理', '1',   '1', 'user',       'system/user/index',        '', 1, 0, 'C', '0', '0', 'system:user:list',        'user',          'admin', sysdate(), '', null, '用户管理菜单');
-insert into sys_menu values('101',  '角色管理', '1',   '2', 'role',       'system/role/index',        '', 1, 0, 'C', '0', '0', 'system:role:list',        'peoples',       'admin', sysdate(), '', null, '角色管理菜单');
-insert into sys_menu values('102',  '菜单管理', '1',   '3', 'menu',       'system/menu/index',        '', 1, 0, 'C', '0', '0', 'system:menu:list',        'tree-table',    'admin', sysdate(), '', null, '菜单管理菜单');
-insert into sys_menu values('103',  '部门管理', '1',   '4', 'dept',       'system/dept/index',        '', 1, 0, 'C', '0', '0', 'system:dept:list',        'tree',          'admin', sysdate(), '', null, '部门管理菜单');
-insert into sys_menu values('104',  '岗位管理', '1',   '5', 'post',       'system/post/index',        '', 1, 0, 'C', '0', '0', 'system:post:list',        'post',          'admin', sysdate(), '', null, '岗位管理菜单');
-insert into sys_menu values('105',  '字典管理', '1',   '6', 'dict',       'system/dict/index',        '', 1, 0, 'C', '0', '0', 'system:dict:list',        'dict',          'admin', sysdate(), '', null, '字典管理菜单');
-insert into sys_menu values('106',  '参数设置', '1',   '7', 'config',     'system/config/index',      '', 1, 0, 'C', '0', '0', 'system:config:list',      'edit',          'admin', sysdate(), '', null, '参数设置菜单');
-insert into sys_menu values('107',  '通知公告', '1',   '8', 'notice',     'system/notice/index',      '', 1, 0, 'C', '0', '0', 'system:notice:list',      'message',       'admin', sysdate(), '', null, '通知公告菜单');
-insert into sys_menu values('108',  '日志管理', '1',   '9', 'log',        '',                         '', 1, 0, 'M', '0', '0', '',                        'log',           'admin', sysdate(), '', null, '日志管理菜单');
-insert into sys_menu values('109',  '在线用户', '2',   '1', 'online',     'monitor/online/index',     '', 1, 0, 'C', '0', '0', 'monitor:online:list',     'online',        'admin', sysdate(), '', null, '在线用户菜单');
-insert into sys_menu values('110',  '定时任务', '2',   '2', 'job',        'monitor/job/index',        '', 1, 0, 'C', '0', '0', 'monitor:job:list',        'job',           'admin', sysdate(), '', null, '定时任务菜单');
-insert into sys_menu values('111',  '数据监控', '2',   '3', 'druid',      'monitor/druid/index',      '', 1, 0, 'C', '0', '0', 'monitor:druid:list',      'druid',         'admin', sysdate(), '', null, '数据监控菜单');
-insert into sys_menu values('112',  '服务监控', '2',   '4', 'server',     'monitor/server/index',     '', 1, 0, 'C', '0', '0', 'monitor:server:list',     'server',        'admin', sysdate(), '', null, '服务监控菜单');
-insert into sys_menu values('113',  '缓存监控', '2',   '5', 'cache',      'monitor/cache/index',      '', 1, 0, 'C', '0', '0', 'monitor:cache:list',      'redis',         'admin', sysdate(), '', null, '缓存监控菜单');
-insert into sys_menu values('114',  '缓存列表', '2',   '6', 'cacheList',  'monitor/cache/list',       '', 1, 0, 'C', '0', '0', 'monitor:cache:list',      'redis-list',    'admin', sysdate(), '', null, '缓存列表菜单');
-insert into sys_menu values('115',  '表单构建', '3',   '1', 'build',      'tool/build/index',         '', 1, 0, 'C', '0', '0', 'tool:build:list',         'build',         'admin', sysdate(), '', null, '表单构建菜单');
-insert into sys_menu values('116',  '代码生成', '3',   '2', 'gen',        'tool/gen/index',           '', 1, 0, 'C', '0', '0', 'tool:gen:list',           'code',          'admin', sysdate(), '', null, '代码生成菜单');
-insert into sys_menu values('117',  '系统接口', '3',   '3', 'swagger',    'tool/swagger/index',       '', 1, 0, 'C', '0', '0', 'tool:swagger:list',       'swagger',       'admin', sysdate(), '', null, '系统接口菜单');
--- 三级菜单
-insert into sys_menu values('500',  '操作日志', '108', '1', 'operlog',    'monitor/operlog/index',    '', 1, 0, 'C', '0', '0', 'monitor:operlog:list',    'form',          'admin', sysdate(), '', null, '操作日志菜单');
-insert into sys_menu values('501',  '登录日志', '108', '2', 'logininfor', 'monitor/logininfor/index', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor',    'admin', sysdate(), '', null, '登录日志菜单');
--- 用户管理按钮
-insert into sys_menu values('1000', '用户查询', '100', '1',  '', '', '', 1, 0, 'F', '0', '0', 'system:user:query',          '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1001', '用户新增', '100', '2',  '', '', '', 1, 0, 'F', '0', '0', 'system:user:add',            '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1002', '用户修改', '100', '3',  '', '', '', 1, 0, 'F', '0', '0', 'system:user:edit',           '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1003', '用户删除', '100', '4',  '', '', '', 1, 0, 'F', '0', '0', 'system:user:remove',         '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1004', '用户导出', '100', '5',  '', '', '', 1, 0, 'F', '0', '0', 'system:user:export',         '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1005', '用户导入', '100', '6',  '', '', '', 1, 0, 'F', '0', '0', 'system:user:import',         '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1006', '重置密码', '100', '7',  '', '', '', 1, 0, 'F', '0', '0', 'system:user:resetPwd',       '#', 'admin', sysdate(), '', null, '');
--- 角色管理按钮
-insert into sys_menu values('1007', '角色查询', '101', '1',  '', '', '', 1, 0, 'F', '0', '0', 'system:role:query',          '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1008', '角色新增', '101', '2',  '', '', '', 1, 0, 'F', '0', '0', 'system:role:add',            '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1009', '角色修改', '101', '3',  '', '', '', 1, 0, 'F', '0', '0', 'system:role:edit',           '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1010', '角色删除', '101', '4',  '', '', '', 1, 0, 'F', '0', '0', 'system:role:remove',         '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1011', '角色导出', '101', '5',  '', '', '', 1, 0, 'F', '0', '0', 'system:role:export',         '#', 'admin', sysdate(), '', null, '');
--- 菜单管理按钮
-insert into sys_menu values('1012', '菜单查询', '102', '1',  '', '', '', 1, 0, 'F', '0', '0', 'system:menu:query',          '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1013', '菜单新增', '102', '2',  '', '', '', 1, 0, 'F', '0', '0', 'system:menu:add',            '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1014', '菜单修改', '102', '3',  '', '', '', 1, 0, 'F', '0', '0', 'system:menu:edit',           '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1015', '菜单删除', '102', '4',  '', '', '', 1, 0, 'F', '0', '0', 'system:menu:remove',         '#', 'admin', sysdate(), '', null, '');
--- 部门管理按钮
-insert into sys_menu values('1016', '部门查询', '103', '1',  '', '', '', 1, 0, 'F', '0', '0', 'system:dept:query',          '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1017', '部门新增', '103', '2',  '', '', '', 1, 0, 'F', '0', '0', 'system:dept:add',            '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1018', '部门修改', '103', '3',  '', '', '', 1, 0, 'F', '0', '0', 'system:dept:edit',           '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1019', '部门删除', '103', '4',  '', '', '', 1, 0, 'F', '0', '0', 'system:dept:remove',         '#', 'admin', sysdate(), '', null, '');
--- 岗位管理按钮
-insert into sys_menu values('1020', '岗位查询', '104', '1',  '', '', '', 1, 0, 'F', '0', '0', 'system:post:query',          '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1021', '岗位新增', '104', '2',  '', '', '', 1, 0, 'F', '0', '0', 'system:post:add',            '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1022', '岗位修改', '104', '3',  '', '', '', 1, 0, 'F', '0', '0', 'system:post:edit',           '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1023', '岗位删除', '104', '4',  '', '', '', 1, 0, 'F', '0', '0', 'system:post:remove',         '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1024', '岗位导出', '104', '5',  '', '', '', 1, 0, 'F', '0', '0', 'system:post:export',         '#', 'admin', sysdate(), '', null, '');
--- 字典管理按钮
-insert into sys_menu values('1025', '字典查询', '105', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:query',          '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1026', '字典新增', '105', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:add',            '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1027', '字典修改', '105', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:edit',           '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1028', '字典删除', '105', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:remove',         '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1029', '字典导出', '105', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:export',         '#', 'admin', sysdate(), '', null, '');
--- 参数设置按钮
-insert into sys_menu values('1030', '参数查询', '106', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:query',        '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1031', '参数新增', '106', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:add',          '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1032', '参数修改', '106', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:edit',         '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1033', '参数删除', '106', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:remove',       '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1034', '参数导出', '106', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:export',       '#', 'admin', sysdate(), '', null, '');
--- 通知公告按钮
-insert into sys_menu values('1035', '公告查询', '107', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:query',        '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1036', '公告新增', '107', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:add',          '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1037', '公告修改', '107', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:edit',         '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1038', '公告删除', '107', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:remove',       '#', 'admin', sysdate(), '', null, '');
--- 操作日志按钮
-insert into sys_menu values('1039', '操作查询', '500', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:query',      '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1040', '操作删除', '500', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:remove',     '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1041', '日志导出', '500', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:export',     '#', 'admin', sysdate(), '', null, '');
--- 登录日志按钮
-insert into sys_menu values('1042', '登录查询', '501', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:query',   '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1043', '登录删除', '501', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:remove',  '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1044', '日志导出', '501', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:export',  '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1045', '账户解锁', '501', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:unlock',  '#', 'admin', sysdate(), '', null, '');
--- 在线用户按钮
-insert into sys_menu values('1046', '在线查询', '109', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query',       '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1047', '批量强退', '109', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1048', '单条强退', '109', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', sysdate(), '', null, '');
--- 定时任务按钮
-insert into sys_menu values('1049', '任务查询', '110', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:query',          '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1050', '任务新增', '110', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:add',            '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1051', '任务修改', '110', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:edit',           '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1052', '任务删除', '110', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:remove',         '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1053', '状态修改', '110', '5', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:changeStatus',   '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1054', '任务导出', '110', '6', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:export',         '#', 'admin', sysdate(), '', null, '');
--- 代码生成按钮
-insert into sys_menu values('1055', '生成查询', '116', '1', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query',             '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1056', '生成修改', '116', '2', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit',              '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1057', '生成删除', '116', '3', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove',            '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1058', '导入代码', '116', '4', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import',            '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1059', '预览代码', '116', '5', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview',           '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1060', '生成代码', '116', '6', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code',              '#', 'admin', sysdate(), '', null, '');
-
-
--- ----------------------------
--- 6、用户和角色关联表  用户N-1角色
--- ----------------------------
-drop table if exists sys_user_role;
-create table sys_user_role (
-  user_id   bigint(20) not null comment '用户ID',
-  role_id   bigint(20) not null comment '角色ID',
-  primary key(user_id, role_id)
-) engine=innodb comment = '用户和角色关联表';
-
--- ----------------------------
--- 初始化-用户和角色关联表数据
--- ----------------------------
-insert into sys_user_role values ('1', '1');
-insert into sys_user_role values ('2', '2');
-
-
--- ----------------------------
--- 7、角色和菜单关联表  角色1-N菜单
--- ----------------------------
-drop table if exists sys_role_menu;
-create table sys_role_menu (
-  role_id   bigint(20) not null comment '角色ID',
-  menu_id   bigint(20) not null comment '菜单ID',
-  primary key(role_id, menu_id)
-) engine=innodb comment = '角色和菜单关联表';
-
--- ----------------------------
--- 初始化-角色和菜单关联表数据
--- ----------------------------
-insert into sys_role_menu values ('2', '1');
-insert into sys_role_menu values ('2', '2');
-insert into sys_role_menu values ('2', '3');
-insert into sys_role_menu values ('2', '4');
-insert into sys_role_menu values ('2', '100');
-insert into sys_role_menu values ('2', '101');
-insert into sys_role_menu values ('2', '102');
-insert into sys_role_menu values ('2', '103');
-insert into sys_role_menu values ('2', '104');
-insert into sys_role_menu values ('2', '105');
-insert into sys_role_menu values ('2', '106');
-insert into sys_role_menu values ('2', '107');
-insert into sys_role_menu values ('2', '108');
-insert into sys_role_menu values ('2', '109');
-insert into sys_role_menu values ('2', '110');
-insert into sys_role_menu values ('2', '111');
-insert into sys_role_menu values ('2', '112');
-insert into sys_role_menu values ('2', '113');
-insert into sys_role_menu values ('2', '114');
-insert into sys_role_menu values ('2', '115');
-insert into sys_role_menu values ('2', '116');
-insert into sys_role_menu values ('2', '117');
-insert into sys_role_menu values ('2', '500');
-insert into sys_role_menu values ('2', '501');
-insert into sys_role_menu values ('2', '1000');
-insert into sys_role_menu values ('2', '1001');
-insert into sys_role_menu values ('2', '1002');
-insert into sys_role_menu values ('2', '1003');
-insert into sys_role_menu values ('2', '1004');
-insert into sys_role_menu values ('2', '1005');
-insert into sys_role_menu values ('2', '1006');
-insert into sys_role_menu values ('2', '1007');
-insert into sys_role_menu values ('2', '1008');
-insert into sys_role_menu values ('2', '1009');
-insert into sys_role_menu values ('2', '1010');
-insert into sys_role_menu values ('2', '1011');
-insert into sys_role_menu values ('2', '1012');
-insert into sys_role_menu values ('2', '1013');
-insert into sys_role_menu values ('2', '1014');
-insert into sys_role_menu values ('2', '1015');
-insert into sys_role_menu values ('2', '1016');
-insert into sys_role_menu values ('2', '1017');
-insert into sys_role_menu values ('2', '1018');
-insert into sys_role_menu values ('2', '1019');
-insert into sys_role_menu values ('2', '1020');
-insert into sys_role_menu values ('2', '1021');
-insert into sys_role_menu values ('2', '1022');
-insert into sys_role_menu values ('2', '1023');
-insert into sys_role_menu values ('2', '1024');
-insert into sys_role_menu values ('2', '1025');
-insert into sys_role_menu values ('2', '1026');
-insert into sys_role_menu values ('2', '1027');
-insert into sys_role_menu values ('2', '1028');
-insert into sys_role_menu values ('2', '1029');
-insert into sys_role_menu values ('2', '1030');
-insert into sys_role_menu values ('2', '1031');
-insert into sys_role_menu values ('2', '1032');
-insert into sys_role_menu values ('2', '1033');
-insert into sys_role_menu values ('2', '1034');
-insert into sys_role_menu values ('2', '1035');
-insert into sys_role_menu values ('2', '1036');
-insert into sys_role_menu values ('2', '1037');
-insert into sys_role_menu values ('2', '1038');
-insert into sys_role_menu values ('2', '1039');
-insert into sys_role_menu values ('2', '1040');
-insert into sys_role_menu values ('2', '1041');
-insert into sys_role_menu values ('2', '1042');
-insert into sys_role_menu values ('2', '1043');
-insert into sys_role_menu values ('2', '1044');
-insert into sys_role_menu values ('2', '1045');
-insert into sys_role_menu values ('2', '1046');
-insert into sys_role_menu values ('2', '1047');
-insert into sys_role_menu values ('2', '1048');
-insert into sys_role_menu values ('2', '1049');
-insert into sys_role_menu values ('2', '1050');
-insert into sys_role_menu values ('2', '1051');
-insert into sys_role_menu values ('2', '1052');
-insert into sys_role_menu values ('2', '1053');
-insert into sys_role_menu values ('2', '1054');
-insert into sys_role_menu values ('2', '1055');
-insert into sys_role_menu values ('2', '1056');
-insert into sys_role_menu values ('2', '1057');
-insert into sys_role_menu values ('2', '1058');
-insert into sys_role_menu values ('2', '1059');
-insert into sys_role_menu values ('2', '1060');
-
--- ----------------------------
--- 8、角色和部门关联表  角色1-N部门
--- ----------------------------
-drop table if exists sys_role_dept;
-create table sys_role_dept (
-  role_id   bigint(20) not null comment '角色ID',
-  dept_id   bigint(20) not null comment '部门ID',
-  primary key(role_id, dept_id)
-) engine=innodb comment = '角色和部门关联表';
-
--- ----------------------------
--- 初始化-角色和部门关联表数据
--- ----------------------------
-insert into sys_role_dept values ('2', '100');
-insert into sys_role_dept values ('2', '101');
-insert into sys_role_dept values ('2', '105');
-
-
--- ----------------------------
--- 9、用户与岗位关联表  用户1-N岗位
--- ----------------------------
-drop table if exists sys_user_post;
-create table sys_user_post
-(
-  user_id   bigint(20) not null comment '用户ID',
-  post_id   bigint(20) not null comment '岗位ID',
-  primary key (user_id, post_id)
-) engine=innodb comment = '用户与岗位关联表';
-
--- ----------------------------
--- 初始化-用户与岗位关联表数据
--- ----------------------------
-insert into sys_user_post values ('1', '1');
-insert into sys_user_post values ('2', '2');
-
-
--- ----------------------------
--- 10、操作日志记录
--- ----------------------------
-drop table if exists sys_oper_log;
-create table sys_oper_log (
-  oper_id           bigint(20)      not null auto_increment    comment '日志主键',
-  title             varchar(50)     default ''                 comment '模块标题',
-  business_type     int(2)          default 0                  comment '业务类型(0其它 1新增 2修改 3删除)',
-  method            varchar(100)    default ''                 comment '方法名称',
-  request_method    varchar(10)     default ''                 comment '请求方式',
-  operator_type     int(1)          default 0                  comment '操作类别(0其它 1后台用户 2手机端用户)',
-  oper_name         varchar(50)     default ''                 comment '操作人员',
-  dept_name         varchar(50)     default ''                 comment '部门名称',
-  oper_url          varchar(255)    default ''                 comment '请求URL',
-  oper_ip           varchar(128)    default ''                 comment '主机地址',
-  oper_location     varchar(255)    default ''                 comment '操作地点',
-  oper_param        varchar(2000)   default ''                 comment '请求参数',
-  json_result       varchar(2000)   default ''                 comment '返回参数',
-  status            int(1)          default 0                  comment '操作状态(0正常 1异常)',
-  error_msg         varchar(2000)   default ''                 comment '错误消息',
-  oper_time         datetime                                   comment '操作时间',
-  cost_time         bigint(20)      default 0                  comment '消耗时间',
-  primary key (oper_id),
-  key idx_sys_oper_log_bt (business_type),
-  key idx_sys_oper_log_s  (status),
-  key idx_sys_oper_log_ot (oper_time)
-) engine=innodb auto_increment=100 comment = '操作日志记录';
-
-
--- ----------------------------
--- 11、字典类型表
--- ----------------------------
-drop table if exists sys_dict_type;
-create table sys_dict_type
-(
-  dict_id          bigint(20)      not null auto_increment    comment '字典主键',
-  dict_name        varchar(100)    default ''                 comment '字典名称',
-  dict_type        varchar(100)    default ''                 comment '字典类型',
-  status           char(1)         default '0'                comment '状态(0正常 1停用)',
-  create_by        varchar(64)     default ''                 comment '创建者',
-  create_time      datetime                                   comment '创建时间',
-  update_by        varchar(64)     default ''                 comment '更新者',
-  update_time      datetime                                   comment '更新时间',
-  remark           varchar(500)    default null               comment '备注',
-  primary key (dict_id),
-  unique (dict_type)
-) engine=innodb auto_increment=100 comment = '字典类型表';
-
-insert into sys_dict_type values(1,  '用户性别', 'sys_user_sex',        '0', 'admin', sysdate(), '', null, '用户性别列表');
-insert into sys_dict_type values(2,  '菜单状态', 'sys_show_hide',       '0', 'admin', sysdate(), '', null, '菜单状态列表');
-insert into sys_dict_type values(3,  '系统开关', 'sys_normal_disable',  '0', 'admin', sysdate(), '', null, '系统开关列表');
-insert into sys_dict_type values(4,  '任务状态', 'sys_job_status',      '0', 'admin', sysdate(), '', null, '任务状态列表');
-insert into sys_dict_type values(5,  '任务分组', 'sys_job_group',       '0', 'admin', sysdate(), '', null, '任务分组列表');
-insert into sys_dict_type values(6,  '系统是否', 'sys_yes_no',          '0', 'admin', sysdate(), '', null, '系统是否列表');
-insert into sys_dict_type values(7,  '通知类型', 'sys_notice_type',     '0', 'admin', sysdate(), '', null, '通知类型列表');
-insert into sys_dict_type values(8,  '通知状态', 'sys_notice_status',   '0', 'admin', sysdate(), '', null, '通知状态列表');
-insert into sys_dict_type values(9,  '操作类型', 'sys_oper_type',       '0', 'admin', sysdate(), '', null, '操作类型列表');
-insert into sys_dict_type values(10, '系统状态', 'sys_common_status',   '0', 'admin', sysdate(), '', null, '登录状态列表');
-
-
--- ----------------------------
--- 12、字典数据表
--- ----------------------------
-drop table if exists sys_dict_data;
-create table sys_dict_data
-(
-  dict_code        bigint(20)      not null auto_increment    comment '字典编码',
-  dict_sort        int(4)          default 0                  comment '字典排序',
-  dict_label       varchar(100)    default ''                 comment '字典标签',
-  dict_value       varchar(100)    default ''                 comment '字典键值',
-  dict_type        varchar(100)    default ''                 comment '字典类型',
-  css_class        varchar(100)    default null               comment '样式属性(其他样式扩展)',
-  list_class       varchar(100)    default null               comment '表格回显样式',
-  is_default       char(1)         default 'N'                comment '是否默认(Y是 N否)',
-  status           char(1)         default '0'                comment '状态(0正常 1停用)',
-  create_by        varchar(64)     default ''                 comment '创建者',
-  create_time      datetime                                   comment '创建时间',
-  update_by        varchar(64)     default ''                 comment '更新者',
-  update_time      datetime                                   comment '更新时间',
-  remark           varchar(500)    default null               comment '备注',
-  primary key (dict_code)
-) engine=innodb auto_increment=100 comment = '字典数据表';
-
-insert into sys_dict_data values(1,  1,  '男',       '0',       'sys_user_sex',        '',   '',        'Y', '0', 'admin', sysdate(), '', null, '性别男');
-insert into sys_dict_data values(2,  2,  '女',       '1',       'sys_user_sex',        '',   '',        'N', '0', 'admin', sysdate(), '', null, '性别女');
-insert into sys_dict_data values(3,  3,  '未知',     '2',       'sys_user_sex',        '',   '',        'N', '0', 'admin', sysdate(), '', null, '性别未知');
-insert into sys_dict_data values(4,  1,  '显示',     '0',       'sys_show_hide',       '',   'primary', 'Y', '0', 'admin', sysdate(), '', null, '显示菜单');
-insert into sys_dict_data values(5,  2,  '隐藏',     '1',       'sys_show_hide',       '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '隐藏菜单');
-insert into sys_dict_data values(6,  1,  '正常',     '0',       'sys_normal_disable',  '',   'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态');
-insert into sys_dict_data values(7,  2,  '停用',     '1',       'sys_normal_disable',  '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '停用状态');
-insert into sys_dict_data values(8,  1,  '正常',     '0',       'sys_job_status',      '',   'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态');
-insert into sys_dict_data values(9,  2,  '暂停',     '1',       'sys_job_status',      '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '停用状态');
-insert into sys_dict_data values(10, 1,  '默认',     'DEFAULT', 'sys_job_group',       '',   '',        'Y', '0', 'admin', sysdate(), '', null, '默认分组');
-insert into sys_dict_data values(11, 2,  '系统',     'SYSTEM',  'sys_job_group',       '',   '',        'N', '0', 'admin', sysdate(), '', null, '系统分组');
-insert into sys_dict_data values(12, 1,  '是',       'Y',       'sys_yes_no',          '',   'primary', 'Y', '0', 'admin', sysdate(), '', null, '系统默认是');
-insert into sys_dict_data values(13, 2,  '否',       'N',       'sys_yes_no',          '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '系统默认否');
-insert into sys_dict_data values(14, 1,  '通知',     '1',       'sys_notice_type',     '',   'warning', 'Y', '0', 'admin', sysdate(), '', null, '通知');
-insert into sys_dict_data values(15, 2,  '公告',     '2',       'sys_notice_type',     '',   'success', 'N', '0', 'admin', sysdate(), '', null, '公告');
-insert into sys_dict_data values(16, 1,  '正常',     '0',       'sys_notice_status',   '',   'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态');
-insert into sys_dict_data values(17, 2,  '关闭',     '1',       'sys_notice_status',   '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '关闭状态');
-insert into sys_dict_data values(18, 99, '其他',     '0',       'sys_oper_type',       '',   'info',    'N', '0', 'admin', sysdate(), '', null, '其他操作');
-insert into sys_dict_data values(19, 1,  '新增',     '1',       'sys_oper_type',       '',   'info',    'N', '0', 'admin', sysdate(), '', null, '新增操作');
-insert into sys_dict_data values(20, 2,  '修改',     '2',       'sys_oper_type',       '',   'info',    'N', '0', 'admin', sysdate(), '', null, '修改操作');
-insert into sys_dict_data values(21, 3,  '删除',     '3',       'sys_oper_type',       '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '删除操作');
-insert into sys_dict_data values(22, 4,  '授权',     '4',       'sys_oper_type',       '',   'primary', 'N', '0', 'admin', sysdate(), '', null, '授权操作');
-insert into sys_dict_data values(23, 5,  '导出',     '5',       'sys_oper_type',       '',   'warning', 'N', '0', 'admin', sysdate(), '', null, '导出操作');
-insert into sys_dict_data values(24, 6,  '导入',     '6',       'sys_oper_type',       '',   'warning', 'N', '0', 'admin', sysdate(), '', null, '导入操作');
-insert into sys_dict_data values(25, 7,  '强退',     '7',       'sys_oper_type',       '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '强退操作');
-insert into sys_dict_data values(26, 8,  '生成代码', '8',       'sys_oper_type',       '',   'warning', 'N', '0', 'admin', sysdate(), '', null, '生成操作');
-insert into sys_dict_data values(27, 9,  '清空数据', '9',       'sys_oper_type',       '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '清空操作');
-insert into sys_dict_data values(28, 1,  '成功',     '0',       'sys_common_status',   '',   'primary', 'N', '0', 'admin', sysdate(), '', null, '正常状态');
-insert into sys_dict_data values(29, 2,  '失败',     '1',       'sys_common_status',   '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '停用状态');
-
-
--- ----------------------------
--- 13、参数配置表
--- ----------------------------
-drop table if exists sys_config;
-create table sys_config (
-  config_id         int(5)          not null auto_increment    comment '参数主键',
-  config_name       varchar(100)    default ''                 comment '参数名称',
-  config_key        varchar(100)    default ''                 comment '参数键名',
-  config_value      varchar(500)    default ''                 comment '参数键值',
-  config_type       char(1)         default 'N'                comment '系统内置(Y是 N否)',
-  create_by         varchar(64)     default ''                 comment '创建者',
-  create_time       datetime                                   comment '创建时间',
-  update_by         varchar(64)     default ''                 comment '更新者',
-  update_time       datetime                                   comment '更新时间',
-  remark            varchar(500)    default null               comment '备注',
-  primary key (config_id)
-) engine=innodb auto_increment=100 comment = '参数配置表';
-
-insert into sys_config values(1, '主框架页-默认皮肤样式名称',     'sys.index.skinName',            'skin-blue',     'Y', 'admin', sysdate(), '', null, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow' );
-insert into sys_config values(2, '用户管理-账号初始密码',         'sys.user.initPassword',         '123456',        'Y', 'admin', sysdate(), '', null, '初始化密码 123456' );
-insert into sys_config values(3, '主框架页-侧边栏主题',           'sys.index.sideTheme',           'theme-dark',    'Y', 'admin', sysdate(), '', null, '深色主题theme-dark,浅色主题theme-light' );
-insert into sys_config values(4, '账号自助-验证码开关',           'sys.account.captchaEnabled',    'true',          'Y', 'admin', sysdate(), '', null, '是否开启验证码功能(true开启,false关闭)');
-insert into sys_config values(5, '账号自助-是否开启用户注册功能', 'sys.account.registerUser',      'false',         'Y', 'admin', sysdate(), '', null, '是否开启注册用户功能(true开启,false关闭)');
-insert into sys_config values(6, '用户登录-黑名单列表',           'sys.login.blackIPList',         '',              'Y', 'admin', sysdate(), '', null, '设置登录IP黑名单限制,多个匹配项以;分隔,支持匹配(*通配、网段)');
-
-
--- ----------------------------
--- 14、系统访问记录
--- ----------------------------
-drop table if exists sys_logininfor;
-create table sys_logininfor (
-  info_id        bigint(20)     not null auto_increment   comment '访问ID',
-  user_name      varchar(50)    default ''                comment '用户账号',
-  ipaddr         varchar(128)   default ''                comment '登录IP地址',
-  login_location varchar(255)   default ''                comment '登录地点',
-  browser        varchar(50)    default ''                comment '浏览器类型',
-  os             varchar(50)    default ''                comment '操作系统',
-  status         char(1)        default '0'               comment '登录状态(0成功 1失败)',
-  msg            varchar(255)   default ''                comment '提示消息',
-  login_time     datetime                                 comment '访问时间',
-  primary key (info_id),
-  key idx_sys_logininfor_s  (status),
-  key idx_sys_logininfor_lt (login_time)
-) engine=innodb auto_increment=100 comment = '系统访问记录';
-
-
--- ----------------------------
--- 15、定时任务调度表
--- ----------------------------
-drop table if exists sys_job;
-create table sys_job (
-  job_id              bigint(20)    not null auto_increment    comment '任务ID',
-  job_name            varchar(64)   default ''                 comment '任务名称',
-  job_group           varchar(64)   default 'DEFAULT'          comment '任务组名',
-  invoke_target       varchar(500)  not null                   comment '调用目标字符串',
-  cron_expression     varchar(255)  default ''                 comment 'cron执行表达式',
-  misfire_policy      varchar(20)   default '3'                comment '计划执行错误策略(1立即执行 2执行一次 3放弃执行)',
-  concurrent          char(1)       default '1'                comment '是否并发执行(0允许 1禁止)',
-  status              char(1)       default '0'                comment '状态(0正常 1暂停)',
-  create_by           varchar(64)   default ''                 comment '创建者',
-  create_time         datetime                                 comment '创建时间',
-  update_by           varchar(64)   default ''                 comment '更新者',
-  update_time         datetime                                 comment '更新时间',
-  remark              varchar(500)  default ''                 comment '备注信息',
-  primary key (job_id, job_name, job_group)
-) engine=innodb auto_increment=100 comment = '定时任务调度表';
-
-insert into sys_job values(1, '系统默认(无参)', 'DEFAULT', 'ryTask.ryNoParams',        '0/10 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, '');
-insert into sys_job values(2, '系统默认(有参)', 'DEFAULT', 'ryTask.ryParams(\'ry\')',  '0/15 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, '');
-insert into sys_job values(3, '系统默认(多参)', 'DEFAULT', 'ryTask.ryMultipleParams(\'ry\', true, 2000L, 316.50D, 100)',  '0/20 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, '');
-
-
--- ----------------------------
--- 16、定时任务调度日志表
--- ----------------------------
-drop table if exists sys_job_log;
-create table sys_job_log (
-  job_log_id          bigint(20)     not null auto_increment    comment '任务日志ID',
-  job_name            varchar(64)    not null                   comment '任务名称',
-  job_group           varchar(64)    not null                   comment '任务组名',
-  invoke_target       varchar(500)   not null                   comment '调用目标字符串',
-  job_message         varchar(500)                              comment '日志信息',
-  status              char(1)        default '0'                comment '执行状态(0正常 1失败)',
-  exception_info      varchar(2000)  default ''                 comment '异常信息',
-  create_time         datetime                                  comment '创建时间',
-  primary key (job_log_id)
-) engine=innodb comment = '定时任务调度日志表';
-
-
--- ----------------------------
--- 17、通知公告表
--- ----------------------------
-drop table if exists sys_notice;
-create table sys_notice (
-  notice_id         int(4)          not null auto_increment    comment '公告ID',
-  notice_title      varchar(50)     not null                   comment '公告标题',
-  notice_type       char(1)         not null                   comment '公告类型(1通知 2公告)',
-  notice_content    longblob        default null               comment '公告内容',
-  status            char(1)         default '0'                comment '公告状态(0正常 1关闭)',
-  create_by         varchar(64)     default ''                 comment '创建者',
-  create_time       datetime                                   comment '创建时间',
-  update_by         varchar(64)     default ''                 comment '更新者',
-  update_time       datetime                                   comment '更新时间',
-  remark            varchar(255)    default null               comment '备注',
-  primary key (notice_id)
-) engine=innodb auto_increment=10 comment = '通知公告表';
-
--- ----------------------------
--- 初始化-公告信息表数据
--- ----------------------------
-insert into sys_notice values('1', '温馨提醒:2018-07-01 若依新版本发布啦', '2', '新版本内容', '0', 'admin', sysdate(), '', null, '管理员');
-insert into sys_notice values('2', '维护通知:2018-07-01 若依系统凌晨维护', '1', '维护内容',   '0', 'admin', sysdate(), '', null, '管理员');
-
-
--- ----------------------------
--- 18、代码生成业务表
--- ----------------------------
-drop table if exists gen_table;
-create table gen_table (
-  table_id          bigint(20)      not null auto_increment    comment '编号',
-  table_name        varchar(200)    default ''                 comment '表名称',
-  table_comment     varchar(500)    default ''                 comment '表描述',
-  sub_table_name    varchar(64)     default null               comment '关联子表的表名',
-  sub_table_fk_name varchar(64)     default null               comment '子表关联的外键名',
-  class_name        varchar(100)    default ''                 comment '实体类名称',
-  tpl_category      varchar(200)    default 'crud'             comment '使用的模板(crud单表操作 tree树表操作)',
-  tpl_web_type      varchar(30)     default ''                 comment '前端模板类型(element-ui模版 element-plus模版)',
-  package_name      varchar(100)                               comment '生成包路径',
-  module_name       varchar(30)                                comment '生成模块名',
-  business_name     varchar(30)                                comment '生成业务名',
-  function_name     varchar(50)                                comment '生成功能名',
-  function_author   varchar(50)                                comment '生成功能作者',
-  gen_type          char(1)         default '0'                comment '生成代码方式(0zip压缩包 1自定义路径)',
-  gen_path          varchar(200)    default '/'                comment '生成路径(不填默认项目路径)',
-  options           varchar(1000)                              comment '其它生成选项',
-  create_by         varchar(64)     default ''                 comment '创建者',
-  create_time 	    datetime                                   comment '创建时间',
-  update_by         varchar(64)     default ''                 comment '更新者',
-  update_time       datetime                                   comment '更新时间',
-  remark            varchar(500)    default null               comment '备注',
-  primary key (table_id)
-) engine=innodb auto_increment=1 comment = '代码生成业务表';
-
-
--- ----------------------------
--- 19、代码生成业务表字段
--- ----------------------------
-drop table if exists gen_table_column;
-create table gen_table_column (
-  column_id         bigint(20)      not null auto_increment    comment '编号',
-  table_id          bigint(20)                                 comment '归属表编号',
-  column_name       varchar(200)                               comment '列名称',
-  column_comment    varchar(500)                               comment '列描述',
-  column_type       varchar(100)                               comment '列类型',
-  java_type         varchar(500)                               comment 'JAVA类型',
-  java_field        varchar(200)                               comment 'JAVA字段名',
-  is_pk             char(1)                                    comment '是否主键(1是)',
-  is_increment      char(1)                                    comment '是否自增(1是)',
-  is_required       char(1)                                    comment '是否必填(1是)',
-  is_insert         char(1)                                    comment '是否为插入字段(1是)',
-  is_edit           char(1)                                    comment '是否编辑字段(1是)',
-  is_list           char(1)                                    comment '是否列表字段(1是)',
-  is_query          char(1)                                    comment '是否查询字段(1是)',
-  query_type        varchar(200)    default 'EQ'               comment '查询方式(等于、不等于、大于、小于、范围)',
-  html_type         varchar(200)                               comment '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)',
-  dict_type         varchar(200)    default ''                 comment '字典类型',
-  sort              int                                        comment '排序',
-  create_by         varchar(64)     default ''                 comment '创建者',
-  create_time 	    datetime                                   comment '创建时间',
-  update_by         varchar(64)     default ''                 comment '更新者',
-  update_time       datetime                                   comment '更新时间',
-  primary key (column_id)
-) engine=innodb auto_increment=1 comment = '代码生成业务表字段';
\ No newline at end of file