From c3cde443ed439e5162f900ec95c686a552dd3851 Mon Sep 17 00:00:00 2001 From: Bbt <2568197607@qq.com> Date: Mon, 8 Jul 2024 10:04:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=89=8B=E6=9C=BA=E7=9F=AD?= =?UTF-8?q?=E4=BF=A1=E7=99=BB=E5=BD=95=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/dataSources.xml | 12 + .idea/encodings.xml | 4 + .idea/mybatisx/templates.xml | 56 ++++ .idea/uiDesigner.xml | 124 ++++++++ pom.xml | 6 + ruoyi-admin/pom.xml | 4 + .../controller/common/CaptchaController.java | 175 ++++++++++- .../controller/common/CommonController.java | 7 + .../controller/system/SysLoginController.java | 41 ++- .../com/ruoyi/web/core/config/SmsConfig.java | 37 +++ .../ruoyi/web/core/config/SwaggerConfig.java | 2 +- .../src/main/resources/application-druid.yml | 10 +- .../src/main/resources/application.yml | 23 +- .../common/core/domain/entity/SysUser.java | 17 ++ .../framework/config/SecurityConfig.java | 28 +- .../SmsCodeAuthenticationProvider.java | 52 ++++ .../security/SmsCodeAuthenticationToken.java | 63 ++++ .../web/service/SysLoginService.java | 76 +++++ .../UserDetailsByPhonenumberServiceImpl.java | 55 ++++ .../web/service/UserDetailsServiceImpl.java | 2 +- .../bo/TbSafeRuleOneVo.java | 30 ++ .../bo/TbSafeRuleThreeVo.java | 22 ++ .../bo/TbSafeRuleTwoVo.java | 26 ++ .../bo/TbSynergismParmas.java | 98 ++++++ .../TbCompanyRectifictionController.java | 240 +++++++++++++++ .../mapper/TbCompanyInfoMapper.java | 18 ++ ...afeCompanyStatisticsScoreDetailMapper.java | 18 ++ .../TbSafeCompanyStatisticsScoreMapper.java | 18 ++ .../mapper/TbSafeRuleMapper.java | 18 ++ .../mapper/TbSpecialCountRecordMapper.java | 18 ++ ...bSynergismEnterpriseSupervisionMapper.java | 18 ++ .../pojo/TbCompanyInfo.java | 97 ++++++ .../pojo/TbSafeCompanyStatisticsScore.java | 123 ++++++++ .../TbSafeCompanyStatisticsScoreDetail.java | 159 ++++++++++ .../pojo/TbSafeRule.java | 146 +++++++++ .../pojo/TbSpecialCountRecord.java | 88 ++++++ .../TbSynergismEnterpriseSupervision.java | 280 ++++++++++++++++++ .../service/TbCompanyInfoService.java | 13 + ...feCompanyStatisticsScoreDetailService.java | 13 + .../TbSafeCompanyStatisticsScoreService.java | 13 + .../service/TbSafeRuleService.java | 20 ++ .../service/TbSpecialCountRecordService.java | 13 + ...SynergismEnterpriseSupervisionService.java | 13 + .../impl/TbCompanyInfoServiceImpl.java | 24 ++ ...mpanyStatisticsScoreDetailServiceImpl.java | 25 ++ ...SafeCompanyStatisticsScoreServiceImpl.java | 25 ++ .../service/impl/TbSafeRuleServiceImpl.java | 133 +++++++++ .../impl/TbSpecialCountRecordServiceImpl.java | 25 ++ ...rgismEnterpriseSupervisionServiceImpl.java | 25 ++ .../system/enums/RectificationStatusEnum.java | 44 +++ .../com/ruoyi/system/until/EntiyUntil.java | 73 +++++ .../com/ruoyi/system/until/NbConstants.java | 39 +++ .../resources/mapper/TbCompanyInfoMapper.xml | 70 +++++ ...SafeCompanyStatisticsScoreDetailMapper.xml | 39 +++ .../TbSafeCompanyStatisticsScoreMapper.xml | 32 ++ .../resources/mapper/TbSafeRuleMapper.xml | 36 +++ .../mapper/TbSpecialCountRecordMapper.xml | 24 ++ ...TbSynergismEnterpriseSupervisionMapper.xml | 62 ++++ ...ompanyInformationReportingController.class | Bin 0 -> 10894 bytes ...nformationReportingDetailsController.class | Bin 0 -> 706 bytes ...TbCompanyInformationReporting$Fields.class | Bin 0 -> 1059 bytes .../TbCompanyInformationReporting.class | Bin 0 -> 10402 bytes ...nyInformationReportingDetails$Fields.class | Bin 0 -> 1846 bytes ...TbCompanyInformationReportingDetails.class | Bin 0 -> 22538 bytes ...anyInformationReportingDetailsMapper.class | Bin 0 -> 539 bytes .../TbCompanyInformationReportingMapper.class | Bin 0 -> 518 bytes ...nyInformationReportingDetailsService.class | Bin 0 -> 940 bytes ...TbCompanyInformationReportingService.class | Bin 0 -> 1146 bytes ...formationReportingDetailsServiceImpl.class | Bin 0 -> 5957 bytes ...mpanyInformationReportingServiceImpl.class | Bin 0 -> 5044 bytes .../bo/TbSafeRuleOneVo.class | Bin 0 -> 5351 bytes .../bo/TbSafeRuleThreeVo.class | Bin 0 -> 3917 bytes .../bo/TbSafeRuleTwoVo.class | Bin 0 -> 4852 bytes .../bo/TbSynergismParmas.class | Bin 0 -> 9750 bytes .../TbCompanyRectifictionController.class | Bin 0 -> 15364 bytes .../mapper/TbCompanyInfoMapper.class | Bin 0 -> 379 bytes ...feCompanyStatisticsScoreDetailMapper.class | Bin 0 -> 442 bytes .../TbSafeCompanyStatisticsScoreMapper.class | Bin 0 -> 424 bytes .../mapper/TbSafeRuleMapper.class | Bin 0 -> 370 bytes .../mapper/TbSpecialCountRecordMapper.class | Bin 0 -> 400 bytes ...SynergismEnterpriseSupervisionMapper.class | Bin 0 -> 436 bytes .../pojo/TbCompanyInfo.class | Bin 0 -> 31087 bytes .../pojo/TbSafeCompanyStatisticsScore.class | Bin 0 -> 10162 bytes .../TbSafeCompanyStatisticsScoreDetail.class | Bin 0 -> 13626 bytes .../pojo/TbSafeRule.class | Bin 0 -> 12169 bytes .../pojo/TbSpecialCountRecord.class | Bin 0 -> 6858 bytes .../TbSynergismEnterpriseSupervision.class | Bin 0 -> 28992 bytes .../service/TbCompanyInfoService.class | Bin 0 -> 390 bytes ...eCompanyStatisticsScoreDetailService.class | Bin 0 -> 453 bytes .../TbSafeCompanyStatisticsScoreService.class | Bin 0 -> 435 bytes .../service/TbSafeRuleService.class | Bin 0 -> 632 bytes .../service/TbSpecialCountRecordService.class | Bin 0 -> 411 bytes ...ynergismEnterpriseSupervisionService.class | Bin 0 -> 447 bytes .../impl/TbCompanyInfoServiceImpl.class | Bin 0 -> 1019 bytes ...panyStatisticsScoreDetailServiceImpl.class | Bin 0 -> 1166 bytes ...afeCompanyStatisticsScoreServiceImpl.class | Bin 0 -> 1124 bytes .../service/impl/TbSafeRuleServiceImpl.class | Bin 0 -> 6414 bytes .../TbSpecialCountRecordServiceImpl.class | Bin 0 -> 1068 bytes ...gismEnterpriseSupervisionServiceImpl.class | Bin 0 -> 1152 bytes .../enums/RectificationStatusEnum.class | Bin 0 -> 2017 bytes .../com/ruoyi/system/until/EntiyUntil.class | Bin 0 -> 5818 bytes .../com/ruoyi/system/until/NbConstants.class | Bin 0 -> 1184 bytes .../classes/mapper/TbCompanyInfoMapper.xml | 70 +++++ ...SafeCompanyStatisticsScoreDetailMapper.xml | 39 +++ .../TbSafeCompanyStatisticsScoreMapper.xml | 32 ++ .../classes/mapper/TbSafeRuleMapper.xml | 36 +++ .../mapper/TbSpecialCountRecordMapper.xml | 24 ++ ...TbSynergismEnterpriseSupervisionMapper.xml | 62 ++++ ...mpanyInformationReportingDetailsMapper.xml | 8 + .../TbCompanyInformationReportingMapper.xml | 7 + .../target/maven-archiver/pom.properties | 5 + .../compile/default-compile/createdFiles.lst | 44 +++ .../compile/default-compile/inputFiles.lst | 42 +++ .../target/ruoyi-safecompany-3.8.5.jar | Bin 0 -> 97561 bytes ruoyi-system/pom.xml | 1 + .../ruoyi/system/mapper/SysUserMapper.java | 2 + .../ruoyi/system/service/ISysUserService.java | 10 + .../service/impl/SysUserServiceImpl.java | 5 + .../resources/mapper/system/SysUserMapper.xml | 8 +- ruoyi-ui-vue3/.env.development | 2 +- ruoyi-ui-vue3/index.html | 2 +- ruoyi-ui-vue3/package.json | 2 +- .../src/layout/components/Sidebar/Logo.vue | 2 +- ruoyi-ui-vue3/src/views/index.vue | 152 +++------- ruoyi-ui-vue3/src/views/register.vue | 2 +- ruoyi-ui-vue3/vite.config.js | 2 +- 126 files changed, 3389 insertions(+), 142 deletions(-) create mode 100644 .idea/dataSources.xml create mode 100644 .idea/mybatisx/templates.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SmsConfig.java create mode 100644 ruoyi-framework/src/main/java/com/ruoyi/framework/security/SmsCodeAuthenticationProvider.java create mode 100644 ruoyi-framework/src/main/java/com/ruoyi/framework/security/SmsCodeAuthenticationToken.java create mode 100644 ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsByPhonenumberServiceImpl.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleOneVo.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleThreeVo.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleTwoVo.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSynergismParmas.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/controller/TbCompanyRectifictionController.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbCompanyInfoMapper.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreDetailMapper.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreMapper.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeRuleMapper.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSpecialCountRecordMapper.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSynergismEnterpriseSupervisionMapper.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbCompanyInfo.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScore.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScoreDetail.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeRule.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSpecialCountRecord.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSynergismEnterpriseSupervision.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbCompanyInfoService.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreDetailService.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreService.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeRuleService.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSpecialCountRecordService.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSynergismEnterpriseSupervisionService.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbCompanyInfoServiceImpl.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreDetailServiceImpl.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreServiceImpl.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeRuleServiceImpl.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSpecialCountRecordServiceImpl.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSynergismEnterpriseSupervisionServiceImpl.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/system/enums/RectificationStatusEnum.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/system/until/EntiyUntil.java create mode 100644 ruoyi-safecompany/src/main/java/com/ruoyi/system/until/NbConstants.java create mode 100644 ruoyi-safecompany/src/main/resources/mapper/TbCompanyInfoMapper.xml create mode 100644 ruoyi-safecompany/src/main/resources/mapper/TbSafeCompanyStatisticsScoreDetailMapper.xml create mode 100644 ruoyi-safecompany/src/main/resources/mapper/TbSafeCompanyStatisticsScoreMapper.xml create mode 100644 ruoyi-safecompany/src/main/resources/mapper/TbSafeRuleMapper.xml create mode 100644 ruoyi-safecompany/src/main/resources/mapper/TbSpecialCountRecordMapper.xml create mode 100644 ruoyi-safecompany/src/main/resources/mapper/TbSynergismEnterpriseSupervisionMapper.xml create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/controller/TbCompanyInformationReportingController.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/controller/TbCompanyInformationReportingDetailsController.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReporting$Fields.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReporting.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReportingDetails$Fields.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReportingDetails.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/mapper/TbCompanyInformationReportingDetailsMapper.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/mapper/TbCompanyInformationReportingMapper.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/ITbCompanyInformationReportingDetailsService.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/ITbCompanyInformationReportingService.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/impl/TbCompanyInformationReportingDetailsServiceImpl.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/impl/TbCompanyInformationReportingServiceImpl.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleOneVo.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleThreeVo.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleTwoVo.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSynergismParmas.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/controller/TbCompanyRectifictionController.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbCompanyInfoMapper.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreDetailMapper.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreMapper.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSafeRuleMapper.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSpecialCountRecordMapper.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSynergismEnterpriseSupervisionMapper.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbCompanyInfo.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScore.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScoreDetail.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeRule.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSpecialCountRecord.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSynergismEnterpriseSupervision.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbCompanyInfoService.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreDetailService.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreService.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeRuleService.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSpecialCountRecordService.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSynergismEnterpriseSupervisionService.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbCompanyInfoServiceImpl.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreDetailServiceImpl.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreServiceImpl.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeRuleServiceImpl.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSpecialCountRecordServiceImpl.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSynergismEnterpriseSupervisionServiceImpl.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/system/enums/RectificationStatusEnum.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/system/until/EntiyUntil.class create mode 100644 ruoyi-safecompany/target/classes/com/ruoyi/system/until/NbConstants.class create mode 100644 ruoyi-safecompany/target/classes/mapper/TbCompanyInfoMapper.xml create mode 100644 ruoyi-safecompany/target/classes/mapper/TbSafeCompanyStatisticsScoreDetailMapper.xml create mode 100644 ruoyi-safecompany/target/classes/mapper/TbSafeCompanyStatisticsScoreMapper.xml create mode 100644 ruoyi-safecompany/target/classes/mapper/TbSafeRuleMapper.xml create mode 100644 ruoyi-safecompany/target/classes/mapper/TbSpecialCountRecordMapper.xml create mode 100644 ruoyi-safecompany/target/classes/mapper/TbSynergismEnterpriseSupervisionMapper.xml create mode 100644 ruoyi-safecompany/target/classes/mapper/system/TbCompanyInformationReportingDetailsMapper.xml create mode 100644 ruoyi-safecompany/target/classes/mapper/system/TbCompanyInformationReportingMapper.xml create mode 100644 ruoyi-safecompany/target/maven-archiver/pom.properties create mode 100644 ruoyi-safecompany/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 ruoyi-safecompany/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 ruoyi-safecompany/target/ruoyi-safecompany-3.8.5.jar diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..1c5c059 --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,12 @@ + + + + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://120.195.33.173:55306/nbzhpc + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 0e31eb2..438649a 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -4,7 +4,9 @@ + + @@ -13,6 +15,8 @@ + + \ No newline at end of file diff --git a/.idea/mybatisx/templates.xml b/.idea/mybatisx/templates.xml new file mode 100644 index 0000000..2aff769 --- /dev/null +++ b/.idea/mybatisx/templates.xml @@ -0,0 +1,56 @@ + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index e9bded7..8ef0ea1 100644 --- a/pom.xml +++ b/pom.xml @@ -169,6 +169,12 @@ ruoyi-common ${ruoyi.version} + + + com.ruoyi + ruoyi-safecompany + ${ruoyi.version} + diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 8da6e19..2213405 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -74,6 +74,10 @@ ruoyi-safecompany ${ruoyi.version} + + org.projectlombok + lombok + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java index d2d6e8c..9edc9a5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java @@ -2,13 +2,34 @@ package com.ruoyi.web.controller.common; import java.awt.image.BufferedImage; import java.io.IOException; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.security.MessageDigest; +import java.util.Random; import java.util.concurrent.TimeUnit; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.annotation.Resource; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.enums.UserStatus; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.service.ISysConfigService; +import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.web.core.config.SmsConfig; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.FastByteArrayOutputStream; 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.RestController; import com.google.code.kaptcha.Producer; import com.ruoyi.common.config.RuoYiConfig; @@ -18,13 +39,13 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.sign.Base64; import com.ruoyi.common.utils.uuid.IdUtils; -import com.ruoyi.system.service.ISysConfigService; /** * 验证码操作处理 * * @author ruoyi */ +@Api(tags = "验证码") @RestController public class CaptchaController { @@ -39,10 +60,16 @@ public class CaptchaController @Autowired private ISysConfigService configService; + @Autowired + private ISysUserService userService; + + @Autowired + private SmsConfig smsConfig; /** * 生成验证码 */ @GetMapping("/captchaImage") + @ApiOperation("生成验证码") public AjaxResult getCode(HttpServletResponse response) throws IOException { AjaxResult ajax = AjaxResult.success(); @@ -91,4 +118,150 @@ public class CaptchaController ajax.put("img", Base64.encode(os.toByteArray())); return ajax; } + + + + /** + * 发送短信验证码接口 + * @param phoneNumber 手机号 + */ + @ApiOperation("发送短信验证码") + @PostMapping("/sendSmsCode") + @ApiImplicitParams({ + @ApiImplicitParam(name = "phoneNumber", value = "手机号") + }) + public AjaxResult sendSmsCode(String phoneNumber) throws Exception { + // 手机号码 + AjaxResult ajax = AjaxResult.success(); + if (!isValidPhoneNumber(phoneNumber)) { + throw new ServiceException("登录用户:" + phoneNumber+ " 手机号不符合规范"); + } + // 校验手机号 + SysUser user = userService.selectUserByPhonenumber(phoneNumber); + if (StringUtils.isNull(user)) { + throw new ServiceException("登录用户:" + phoneNumber+ " 不存在"); + }else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { + throw new ServiceException("对不起,您的账号:" + phoneNumber+ " 已被删除"); + }else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { + throw new ServiceException("对不起,您的账号:" + phoneNumber+ " 已停用"); + } + + // 生成短信验证码 + String smsCode = generateVerificationCode(); + // 发送短信(实际按系统业务实现) + sendSms(phoneNumber,ajax,smsCode); + // 保存redis缓存 + String uuid = IdUtils.simpleUUID(); + String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid; + redisCache.setCacheObject(verifyKey, smsCode, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); + ajax.put("uuid", uuid); + return ajax; + } + + + + // 发送短信的方法 + public void sendSms(String phoneNumber,AjaxResult ajax,String verificationCode) throws Exception { +// if (!isValidPhoneNumber(phoneNumber)) { +// ajax.put("flag", "false"); +// ajax.put("msg", "手机号格式不正确"); +// return ajax; +// } +//// String verificationCode = generateVerificationCode(); +// String ecName = "宁波市公安局镇海分局"; +// String apId = "nbzhpc"; +// String secretKey = "WaTu123!@#"; +// String content = "您的安惠商企验证码是:" + verificationCode; +// String sign = "0GTEcXOJl"; +// String addSerial = ""; + String ecName = smsConfig.getEcName(); + String apId = smsConfig.getApId(); + String secretKey = smsConfig.getSecretKey(); + String content = "您的安惠商企登陆平台验证码是:" + verificationCode; + String sign = smsConfig.getSign(); + String addSerial = smsConfig.getAddSerial(); + // 生成MAC + String mac = generateMAC(ecName, apId, secretKey, phoneNumber, content, sign, addSerial); + // 创建请求体的JSON字符串 + String jsonInputString = String.format( + "{\"addSerial\":\"%s\",\"apId\":\"%s\",\"content\":\"%s\",\"ecName\":\"%s\",\"mAC\":\"%s\",\"mobiles\":\"%s\",\"secretKey\":\"%s\",\"sign\":\"%s\"}", + addSerial, apId, content, ecName, mac, phoneNumber, secretKey, sign + ); + + // 将JSON字符串编码为Base64 + String base64EncodedJson = java.util.Base64.getEncoder().encodeToString(jsonInputString.getBytes("utf-8")); + + try { + // 创建URL对象 + URL url = new URL("http://112.35.1.155:1992/sms/norsubmit"); + // 打开连接 + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + // 设置请求方法为POST + connection.setRequestMethod("POST"); + // 设置请求头 + connection.setRequestProperty("Content-Type", "application/json; utf-8"); + connection.setRequestProperty("Accept", "application/json"); + connection.setDoOutput(true); + + // 发送请求 + try (OutputStream os = connection.getOutputStream()) { + byte[] input = base64EncodedJson.getBytes("utf-8"); + os.write(input, 0, input.length); + } + + // 获取响应码 + int responseCode = connection.getResponseCode(); + if (responseCode != HttpURLConnection.HTTP_OK) { + ajax.put("flag", "false"); + ajax.put("msg", "短信发送失败"); + } + ajax.put("flag", "true"); + ajax.put("msg", "短信发送成功"); + } catch (Exception e) { + ajax.put("flag", "false"); + ajax.put("msg", "短信发送失败"); + } + } + + + + // 生成6位数验证码 + public static String generateVerificationCode() { + Random random = new Random(); + int code = 100000 + random.nextInt(900000); + return String.valueOf(code); + } + + // 验证手机号格式 + public static boolean isValidPhoneNumber(String phoneNumber) { + // 这里只是一个简单的验证示例,实际验证可能根据具体国家或运营商规则不同 + String regex = "^[1][3-9][0-9]{9}$"; + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(phoneNumber); + return matcher.matches(); + } + + // 生成MAC + public static String generateMAC(String ecName, String apId, String secretKey, String mobiles, String content, String sign, String addSerial) { + String input = ecName + apId + secretKey + mobiles + content + sign + addSerial; + return md5(input); + } + + private static String md5(String input) { + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + byte[] messageDigest = md.digest(input.getBytes()); + StringBuilder sb = new StringBuilder(); + for (byte b : messageDigest) { + sb.append(String.format("%02x", b)); + } + return sb.toString(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + + + } 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 cec5006..d313212 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 @@ -4,6 +4,9 @@ import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +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; @@ -26,6 +29,7 @@ import com.ruoyi.framework.config.ServerConfig; * * @author ruoyi */ +@Api(tags = "公共方法") @RestController @RequestMapping("/common") public class CommonController @@ -44,6 +48,7 @@ public class CommonController * @param delete 是否删除 */ @GetMapping("/download") + @ApiOperation("通用下载请求") public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) { try @@ -73,6 +78,7 @@ public class CommonController * 通用上传请求(单个) */ @PostMapping("/upload") + @ApiOperation("通用上传请求(单个)") public AjaxResult uploadFile(MultipartFile file) throws Exception { try @@ -99,6 +105,7 @@ public class CommonController * 通用上传请求(多个) */ @PostMapping("/uploads") + @ApiOperation("通用上传请求(单个)") public AjaxResult uploadFiles(List files) throws Exception { try diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java index d959a17..b6f75a9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java @@ -2,11 +2,14 @@ package com.ruoyi.web.controller.system; import java.util.List; import java.util.Set; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysMenu; @@ -22,6 +25,7 @@ import com.ruoyi.system.service.ISysMenuService; * * @author ruoyi */ +@Api(tags = "登录验证") @RestController public class SysLoginController { @@ -34,6 +38,7 @@ public class SysLoginController @Autowired private SysPermissionService permissionService; + /** * 登录方法 * @@ -41,6 +46,7 @@ public class SysLoginController * @return 结果 */ @PostMapping("/login") + @ApiOperation("登录方法") public AjaxResult login(@RequestBody LoginBody loginBody) { AjaxResult ajax = AjaxResult.success(); @@ -57,6 +63,7 @@ public class SysLoginController * @return 用户信息 */ @GetMapping("getInfo") + @ApiOperation("获取用户信息") public AjaxResult getInfo() { SysUser user = SecurityUtils.getLoginUser().getUser(); @@ -71,6 +78,32 @@ public class SysLoginController return ajax; } + + + /** + * @description + * @author 杜俊岩 + * @param[1] null + * @throws + * @time 2024/7/5 11:46 + * 验证短信 + */ + @ApiOperation("短信验证码登录验证") + @PostMapping("/smsLogin") + @ApiImplicitParams({ + @ApiImplicitParam(name = "phoneNumber", value = "手机号"), + @ApiImplicitParam(name = "code", value = "验证码"), + @ApiImplicitParam(name = "uuid", value = "唯一标识符") + }) + public AjaxResult verifySmsCode(String phoneNumber, String code, String uuid) { + return loginService.smsLogin(phoneNumber, code, uuid); + } + + + + + + /** * 获取路由信息 * diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SmsConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SmsConfig.java new file mode 100644 index 0000000..8eb763f --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SmsConfig.java @@ -0,0 +1,37 @@ +package com.ruoyi.web.core.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +/** + * @Author 杜俊岩 + * @Date 2024/7/5 14:30 + * @Version 1.0 + */ +@ConfigurationProperties(prefix = "tencent.sms") +@Configuration +@Data +public class SmsConfig { + /** + * 企业名称 + */ + private String ecName; + /** + * 短信账户密码 + */ + private String secretKey; + /** + * 短信应用的SDKAppID + */ + private String apId; + /** + * 签名内容 + */ + private String sign; + /** + * + */ + private String addSerial; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java index ae1c3ec..1467932 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java @@ -113,7 +113,7 @@ public class SwaggerConfig // 用ApiInfoBuilder进行定制 return new ApiInfoBuilder() // 设置标题 - .title("标题:若依管理系统_接口文档") + .title("标题:安惠商企管理系统_接口文档") // 描述 .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") // 作者信息 diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index e4a9b6b..00b74f0 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -6,16 +6,16 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://120.195.33.173:55306/nbzhpc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://192.168.0.80:55306/nbzhpc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: '!QAZ1qaz' # 从库数据源 slave: # 从数据源开关/默认关闭 - enabled: false - url: - username: - password: + enabled: true + url: jdbc:mysql://192.168.0.80:55306/nbzh?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + username: root + password: '!QAZ1qaz' # 初始连接数 initialSize: 5 # 最小连接池数量 diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 6e18581..c72b9a0 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -18,10 +18,10 @@ ruoyi: # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 - port: 8080 + port: 8799 servlet: # 应用的访问路径 - context-path: / + context-path: /zhpcapi tomcat: # tomcat的URI编码 uri-encoding: UTF-8 @@ -70,7 +70,8 @@ spring: # redis 配置 redis: # 地址 - host: 120.195.33.173 +# host: 120.195.33.173 + host: 192.168.0.78 # 端口,默认为6379 port: 26379 # 数据库索引 @@ -132,7 +133,7 @@ swagger: # 是否开启swagger enabled: true # 请求前缀 - pathMapping: /dev-api + pathMapping: /zhpcapi knife4j: @@ -152,4 +153,16 @@ snowid: #工作进程id workerId: 1 #数据中心id - datacenterId: 1 \ No newline at end of file + datacenterId: 1 +tencent: + sms: + # 企业名称 + ecName: "宁波市公安局镇海分局" + # 短信账户名称 + apId: "nbzhpc" + # 账号密码 + secretKey: "WaTu123!@#" + # 配置签名内容 + sign: "0GTEcXOJl" + # 配置模板ID + addSerial: 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 b1aa81a..fa94edf 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 @@ -113,6 +113,10 @@ public class SysUser extends BaseTenantEntity { @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT) private Date loginDate; + + + + public Long getTenantId() { return tenantId; } @@ -226,6 +230,18 @@ public class SysUser extends BaseTenantEntity { return phoneNumber; } + + + @Excel(name = "所属公司") + private String companyName; + public String getCompanyName() { + return companyName; + } + + public void setCompanyName(String companyName) { + this.companyName = companyName; + } + public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } @@ -349,6 +365,7 @@ public class SysUser extends BaseTenantEntity { .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) + .append("companyName", getCompanyName()) .append("dept", getDept()) .toString(); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index 2125853..ac7d08e 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -1,6 +1,8 @@ package com.ruoyi.framework.config; +import com.ruoyi.framework.security.SmsCodeAuthenticationProvider; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.http.HttpMethod; import org.springframework.security.authentication.AuthenticationManager; @@ -32,7 +34,20 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter * 自定义用户认证逻辑 */ @Autowired - private UserDetailsService userDetailsService; + @Qualifier("userDetailsByUsername") + private UserDetailsService userDetailsByUsername; + + /** + * @description + * @author 杜俊岩 + * @param[1] null + * @throws + * @time 2024/7/5 16:04 + * 自定义短信认证 + */ + @Autowired + @Qualifier("userDetailsByPhonenumber") + private UserDetailsService userDetailsByPhonenumber; /** * 认证失败处理类 @@ -98,7 +113,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 注解标记允许匿名访问的url ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry = httpSecurity.authorizeRequests(); permitAllUrl.getUrls().forEach(url -> registry.antMatchers(url).permitAll()); - httpSecurity // CSRF禁用,因为不使用session .csrf().disable() @@ -111,7 +125,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 过滤请求 .authorizeRequests() // 对于登录login 注册register 验证码captchaImage 允许匿名访问 - .antMatchers("/login", "/register", "/captchaImage").permitAll() + .antMatchers("/login", "/register", "/captchaImage","/sendSmsCode","/smsLogin").permitAll() // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() @@ -126,6 +140,10 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 添加CORS filter httpSecurity.addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class); httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class); +// httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class) +// //手机验证码的provider +// .authenticationProvider(smsCodeAuthenticationProvider); + } /** @@ -143,6 +161,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder()); + //手机验证码的orovider + auth.authenticationProvider(new SmsCodeAuthenticationProvider(userDetailsByPhonenumber)); + auth.userDetailsService(userDetailsByUsername).passwordEncoder(bCryptPasswordEncoder()); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/SmsCodeAuthenticationProvider.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/SmsCodeAuthenticationProvider.java new file mode 100644 index 0000000..724403d --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/SmsCodeAuthenticationProvider.java @@ -0,0 +1,52 @@ +package com.ruoyi.framework.security; + +import org.springframework.security.authentication.AuthenticationProvider; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; + +/** + * @Author 杜俊岩 + * @Date 2024/7/5 15:55 + * @Version 1.0 + * 自定义短信登录token验证 + */ +public class SmsCodeAuthenticationProvider implements AuthenticationProvider { + private UserDetailsService userDetailsService; + + public SmsCodeAuthenticationProvider(UserDetailsService userDetailsService){ + setUserDetailsService(userDetailsService); + } + + /** + * 重写 authenticate方法,实现身份验证逻辑。 + */ + @Override + public Authentication authenticate(Authentication authentication) throws AuthenticationException { + SmsCodeAuthenticationToken authenticationToken = (SmsCodeAuthenticationToken) authentication; + String telephone = (String) authenticationToken.getPrincipal(); + // 委托 UserDetailsService 查找系统用户 + UserDetails userDetails = userDetailsService.loadUserByUsername(telephone); + // 鉴权成功,返回一个拥有鉴权的 AbstractAuthenticationToken + SmsCodeAuthenticationToken authenticationResult = new SmsCodeAuthenticationToken(userDetails, userDetails.getAuthorities()); + authenticationResult.setDetails(authenticationToken.getDetails()); + return authenticationResult; + } + + /** + * 重写supports方法,指定此 AuthenticationProvider 仅支持短信验证码身份验证。 + */ + @Override + public boolean supports(Class authentication) { + return SmsCodeAuthenticationToken.class.isAssignableFrom(authentication); + } + + public UserDetailsService getUserDetailsService() { + return userDetailsService; + } + + public void setUserDetailsService(UserDetailsService userDetailsService) { + this.userDetailsService = userDetailsService; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/SmsCodeAuthenticationToken.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/SmsCodeAuthenticationToken.java new file mode 100644 index 0000000..4867bd9 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/SmsCodeAuthenticationToken.java @@ -0,0 +1,63 @@ +package com.ruoyi.framework.security; + +import org.springframework.security.authentication.AbstractAuthenticationToken; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.SpringSecurityCoreVersion; + +import java.util.Collection; + +/** + * @Author 杜俊岩 + * @Date 2024/7/5 15:56 + * @Version 1.0 + */ +public class SmsCodeAuthenticationToken extends AbstractAuthenticationToken { + private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID; + + /** + * 存储手机号码 + */ + private final Object principal; + + /** + * 构建一个没有鉴权的构造函数 + */ + public SmsCodeAuthenticationToken(Object principal) { + super(null); + this.principal = principal; + setAuthenticated(false); + } + + /** + * 构建一个拥有鉴权的构造函数 + */ + public SmsCodeAuthenticationToken(Object principal, Collection authorities) { + super(authorities); + this.principal = principal; + super.setAuthenticated(true); + } + + @Override + public Object getCredentials() { + return null; + } + + @Override + public Object getPrincipal() { + return this.principal; + } + + @Override + public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException { + if (isAuthenticated) { + throw new IllegalArgumentException( + "Cannot set this token to trusted - use constructor which takes a GrantedAuthority list instead"); + } + super.setAuthenticated(false); + } + + @Override + public void eraseCredentials() { + super.eraseCredentials(); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index 67267b7..210f06d 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -1,6 +1,10 @@ package com.ruoyi.framework.web.service; import javax.annotation.Resource; + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.framework.security.SmsCodeAuthenticationToken; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; @@ -28,6 +32,15 @@ import com.ruoyi.framework.manager.factory.AsyncFactory; import com.ruoyi.framework.security.context.AuthenticationContextHolder; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysUserService; +import org.springframework.validation.annotation.Validated; +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 java.util.HashMap; +import java.util.UUID; +import java.util.concurrent.TimeUnit; /** * 登录校验方法 @@ -52,6 +65,11 @@ public class SysLoginService @Autowired private ISysConfigService configService; + + + + + /** * 登录验证 * @@ -178,4 +196,62 @@ public class SysLoginService sysUser.setLoginDate(DateUtils.getNowDate()); userService.updateUserProfile(sysUser); } + + + + /** + * 短信验证码登录验证 + * @param phoneNumber 手机号 + * @param code 短信验证码 + * @param uuid 唯一标识 + */ + public AjaxResult smsLogin(String phoneNumber, String code, String uuid) { + // 手机号码 +// String phoneNumber = dto.getPhoneNumber(); + // 校验验证码 + String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid; + String captcha = redisCache.getCacheObject(verifyKey); + if(captcha == null) { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(phoneNumber, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"))); + // 抛出一个验证码过期异常 + throw new CaptchaExpireException(); + } + if(!captcha.equals(code.trim())){ + AsyncManager.me().execute(AsyncFactory.recordLogininfor(phoneNumber, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"))); + // 抛出一个验证码错误的异常 + throw new CaptchaException(); + } + redisCache.deleteObject(verifyKey); + + // 用户验证 + Authentication authentication = null; + try { + // 该方法会去调用UserDetailsByPhonenumberServiceImpl.loadUserByUsername + authentication = authenticationManager.authenticate(new SmsCodeAuthenticationToken(phoneNumber)); + } catch (Exception e) { + if (e instanceof BadCredentialsException) { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(phoneNumber, + Constants.LOGIN_FAIL, MessageUtils.message("account.not.incorrect"))); + throw new UserPasswordNotMatchException(); + } else { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(phoneNumber, + Constants.LOGIN_FAIL, e.getMessage())); + throw new ServiceException(e.getMessage()); + } + } + // 执行异步任务,记录登录信息 + AsyncManager.me().execute(AsyncFactory.recordLogininfor(phoneNumber, + Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); + // 获取登录人信息 + LoginUser loginUser = (LoginUser) authentication.getPrincipal(); + // 修改最近登录IP和登录时间 + recordLoginInfo(loginUser.getUserId()); + // 生成token + String token = tokenService.createToken(loginUser); + // 返回token给前端 + AjaxResult ajax = AjaxResult.success(); + ajax.put(Constants.TOKEN, token); + return ajax; + } + } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsByPhonenumberServiceImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsByPhonenumberServiceImpl.java new file mode 100644 index 0000000..0d88083 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsByPhonenumberServiceImpl.java @@ -0,0 +1,55 @@ +package com.ruoyi.framework.web.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.enums.UserStatus; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.service.ISysUserService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Service; + +/** + * @Author 杜俊岩 + * @Date 2024/7/5 14:53 + * @Version 1.0 + */ +@Service("userDetailsByPhonenumber") +public class UserDetailsByPhonenumberServiceImpl implements UserDetailsService { + private static final Logger log = LoggerFactory.getLogger(UserDetailsByPhonenumberServiceImpl.class); + + @Autowired + private ISysUserService userService; + + @Autowired + private SysPermissionService permissionService; + + @Override + public UserDetails loadUserByUsername(String phoneNumber) throws UsernameNotFoundException { + // 防止漏查角色等所需的信息,尽量模仿根据用户名查用户的方法开发:ISysUserService.selectUserByUserName(username) + + SysUser user = userService.selectUserByPhonenumber(phoneNumber); + if (StringUtils.isNull(user)) { + log.info("登录用户:{} 不存在.", phoneNumber); + throw new ServiceException("登录用户:" + phoneNumber+ " 不存在"); + } else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { + log.info("登录用户:{} 已被删除.", phoneNumber); + throw new ServiceException("对不起,您的账号:" + phoneNumber+ " 已被删除"); + } else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { + log.info("登录用户:{} 已被停用.", phoneNumber); + throw new ServiceException("对不起,您的账号:" + phoneNumber+ " 已停用"); + } + return createLoginUser(user); + } + + public UserDetails createLoginUser(SysUser user) { + return new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user)); + // return new LoginUser(user, permissionService.getMenuPermission(user)); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java index 1950cb7..45cf39c 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java @@ -19,7 +19,7 @@ import com.ruoyi.system.service.ISysUserService; * * @author ruoyi */ -@Service +@Service("userDetailsByUsername") public class UserDetailsServiceImpl implements UserDetailsService { private static final Logger log = LoggerFactory.getLogger(UserDetailsServiceImpl.class); diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleOneVo.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleOneVo.java new file mode 100644 index 0000000..e5786c6 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleOneVo.java @@ -0,0 +1,30 @@ +package com.ruoyi.business.enterpriserectification.bo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +public class TbSafeRuleOneVo { + + private Long id; + + private String levelIndexOne; + + private String levelIndexTwo; + + private String levelIndexThree; + + private String note; + + private Integer levelIndex; + + private List tbSafeRuleTwoVoList; +} + diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleThreeVo.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleThreeVo.java new file mode 100644 index 0000000..b752246 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleThreeVo.java @@ -0,0 +1,22 @@ +package com.ruoyi.business.enterpriserectification.bo; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +public class TbSafeRuleThreeVo { + + private Long id; + + private String levelIndexOne; + + private String levelIndexTwo; + + private String levelIndexThree; + + private String note; + + private Integer levelIndex; +} + diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleTwoVo.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleTwoVo.java new file mode 100644 index 0000000..f09d4d2 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleTwoVo.java @@ -0,0 +1,26 @@ +package com.ruoyi.business.enterpriserectification.bo; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +@Data +@EqualsAndHashCode(callSuper = false) +public class TbSafeRuleTwoVo { + + private Long id; + + private String levelIndexOne; + + private String levelIndexTwo; + + private String levelIndexThree; + + private String note; + + private Integer levelIndex; + + private List tbSafeRuleThreeVoList; +} + diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSynergismParmas.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSynergismParmas.java new file mode 100644 index 0000000..9acfe5b --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSynergismParmas.java @@ -0,0 +1,98 @@ +package com.ruoyi.business.enterpriserectification.bo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.system.until.EntiyUntil; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.util.Date; + +/** + * @Author 杜俊岩 + * @Date 2024/7/2 19:21 + * @Version 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel(value="TbSynergism对象", description="整改信息表") +public class TbSynergismParmas extends EntiyUntil { + + /** + * 清单生成时间 + */ + @ApiModelProperty("清单生成时间") + private Date checklistGenerationTime; + /** + * 整改截止日期 + */ + @ApiModelProperty("整改截止日期") + private Date rectificationDeadline; + /** + * 整改状态 + */ + @Size(max= 50,message="编码长度不能超过50") + @ApiModelProperty("整改状态0:已完成;1:整改中;2:未完成") + @Length(max= 50,message="编码长度不能超过50") + private String rectificationStatus; + /** + * 管控扣分项 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("异常类型") + @Length(max= 255,message="编码长度不能超过255") + private String controlDeductionItem; + + /** + * 要素异常明细 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("要素异常明细") + @Length(max= 255,message="编码长度不能超过255") + private String elementAbnormalDetail; + /** + * 整改结果 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("整改结果0:已完成;1:整改中;2:未完成") + @Length(max= 255,message="编码长度不能超过255") + private String rectificationResult; + + /** + * 整改日期 + */ + @ApiModelProperty("整改日期") + private Date updateTime; + /** + * 0:不活跃;1:活跃 + */ + @Size(max= -1,message="编码长度不能超过-1") + @ApiModelProperty("0:不活跃;1:活跃") + @Length(max= -1,message="编码长度不能超过-1") + private String isActive; + /** + * 整改结果详情 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("整改结果详情") + @Length(max= 255,message="编码长度不能超过255") + private String rectificationResultDefult; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date startTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endTime; + @ApiModelProperty("查询风险开始时间") + private Date riskStartTime; + @ApiModelProperty("查询风险结束时间") + private Date riskEndTime; + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/controller/TbCompanyRectifictionController.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/controller/TbCompanyRectifictionController.java new file mode 100644 index 0000000..f79473e --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/controller/TbCompanyRectifictionController.java @@ -0,0 +1,240 @@ +package com.ruoyi.business.enterpriserectification.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.ruoyi.business.enterpriserectification.bo.TbSafeRuleTwoVo; +import com.ruoyi.business.enterpriserectification.bo.TbSynergismParmas; +import com.ruoyi.business.enterpriserectification.pojo.*; +import com.ruoyi.business.enterpriserectification.service.*; +import com.ruoyi.common.annotation.DataSource; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.DataSourceType; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.system.enums.RectificationStatusEnum; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +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 java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +/** + * @Author 杜俊岩 + * @Date 2024/6/28 19:15 + * @Version 1.0 + * 企业整改 + */ +@Api(tags = "企业整改") +@RestController +@RequiredArgsConstructor +@RequestMapping("/rectification") +public class TbCompanyRectifictionController extends BaseController { + + private final TbSafeCompanyStatisticsScoreDetailService tbSafeCompanyStatisticsScoreDetailService; + private final TbSynergismEnterpriseSupervisionService tbSynergismEnterpriseSupervisionService; + private final TbSafeCompanyStatisticsScoreService tbSafeCompanyStatisticsScoreService; +// private final TbSpecialCountRecordService tbSpecialCountRecordService; + private final TbCompanyInfoService tbCompanyInfoService; + private final TbSafeRuleService tbSafeRuleService; + + + /** + * @description + * @author 杜俊岩 + * @param[1] null + * @throws + * @time 2024/6/29 11:40 + * 查询企业整改列表 + */ + @PostMapping("/list") + @ApiOperation("查询企业整改列表") + @DataSource(value = DataSourceType.SLAVE) + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageSize", value = "页数大小"), + @ApiImplicitParam(name = "pageNum", value = "页数") + }) + public TableDataInfo riskgovernancelist(TbSynergismParmas tbSynergismParmas) { + startPage(); + //填充条件 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TbSynergismEnterpriseSupervision::getEnterpriseName, getLoginUserInfo()); + //整改状态 + if (tbSynergismParmas.getRectificationStatus() != null) { + wrapper.eq(TbSynergismEnterpriseSupervision::getRectificationStatus, RectificationStatusEnum.getStatusByCode(tbSynergismParmas.getRectificationStatus())); + } + //生成时间区间 + if (tbSynergismParmas.getRiskStartTime() != null && tbSynergismParmas.getRiskEndTime() != null ) { + wrapper.between(TbSynergismEnterpriseSupervision::getChecklistGenerationTime, tbSynergismParmas.getRiskStartTime(), tbSynergismParmas.getRiskEndTime()); + } + //整改完成区间 + if (tbSynergismParmas.getStartTime() != null && tbSynergismParmas.getEndTime() != null ) { + wrapper.between(TbSynergismEnterpriseSupervision::getUpdateTime, tbSynergismParmas.getStartTime(), tbSynergismParmas.getEndTime()); + } + //二级异常 + if (tbSynergismParmas.getControlDeductionItem() != null) { + wrapper.eq(TbSynergismEnterpriseSupervision::getControlDeductionItem, tbSynergismParmas.getControlDeductionItem()); + } + //三级异常(详情) + if (tbSynergismParmas.getElementAbnormalDetail() != null) { + wrapper.eq(TbSynergismEnterpriseSupervision::getElementAbnormalDetail, tbSynergismParmas.getElementAbnormalDetail()); + } + List list = tbSynergismEnterpriseSupervisionService.list(wrapper); + list.forEach(s -> { + s.setEndTime(s.getUpdateTime()); + }); + return getDataTable(list); + } + + /** + * @description + * @author 杜俊岩 + * @param[1] null + * @throws + * @time 2024/6/29 11:51 + * 修改 + * 传id,修改整改状态 + */ + @PostMapping("/updatecompanystatus") + @ApiOperation("企业整改按钮") + @DataSource(value = DataSourceType.SLAVE) + public AjaxResult updatecompanystatus(Long id) { + TbSynergismEnterpriseSupervision serviceById = tbSynergismEnterpriseSupervisionService.getById(id); + serviceById.setRectificationStatus(RectificationStatusEnum.SUCCESS.getStatus()); + serviceById.setRectificationResult(RectificationStatusEnum.SUCCESS.getStatus()); + serviceById.setUpdateTime(new Date()); + tbSynergismEnterpriseSupervisionService.saveOrUpdate(serviceById); + return success(); + } + + /** + * @description + * @author 杜俊岩 + * @param[1] null + * @throws + * @time 2024/6/29 11:52 + * 平安指数分数以及排名 + */ + @PostMapping("/countrank") + @ApiOperation("平安指数分数以及排名") + @DataSource(value = DataSourceType.SLAVE) + public AjaxResult countrank() { + //获取所有企业的0及指标 +// String companyname = getLoginUserInfo(); +// TbCompanyInfo companyInfo = tbCompanyInfoService.getOne(new LambdaQueryWrapper().eq(TbCompanyInfo::getCompanyName, companyname)); +// if (companyInfo == null) { +// // 处理找不到企业信息的情况 +// return null; +// } + TbCompanyInfo companyInfo = getLoginUserCompanyInfo(); + if (companyInfo == null) { + // 处理找不到企业信息的情况 + return null; + } + String now = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM")); + List scores = tbSafeCompanyStatisticsScoreService.list( + new LambdaQueryWrapper() + .eq(TbSafeCompanyStatisticsScore::getStatisticsDate, now) + .eq(TbSafeCompanyStatisticsScore::getScoreType, "month") + ); + // 使用Stream API进行排序,但注意流本身不直接支持索引 + scores.sort(Comparator.comparingDouble(TbSafeCompanyStatisticsScore::getScore).reversed()); + OptionalInt optionalRank = IntStream.range(0, scores.size()) + .filter(index -> scores.get(index).getCompanyId().equals(companyInfo.getId())) + .findFirst(); // 这将返回第一个匹配的索引(如果存在) + Map resultMap = new HashMap<>(); + if (optionalRank.isPresent()) { + resultMap.put("rank", optionalRank.getAsInt() + 1); // 排名从1开始 + resultMap.put("score", scores.get(optionalRank.getAsInt()).getScore()); + } else { + resultMap.put("rank", "Not Found"); + } + return success(resultMap); + } + + + + /** + * @description + * @author 杜俊岩 + * @param[1] null + * @throws + * @time 2024/6/29 14:11 + * 平安指数分数(八个一级指标) + */ + @PostMapping("/countscore") + @ApiOperation("平安指数分数(八个一级指标)") + @DataSource(value = DataSourceType.SLAVE) + public AjaxResult countscore() { + TbCompanyInfo one = getLoginUserCompanyInfo(); + if (one == null) { + // 处理找不到企业信息的情况 + return null; + } + //根据公司id获取1级指标 + String now = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM")); + List list = tbSafeCompanyStatisticsScoreDetailService.list(new LambdaQueryWrapper() + .eq(TbSafeCompanyStatisticsScoreDetail::getCompanyId, one.getId()) + .eq(TbSafeCompanyStatisticsScoreDetail::getLevelIndex, "1") + .eq(TbSafeCompanyStatisticsScoreDetail::getStatisticsDate, now) + .eq(TbSafeCompanyStatisticsScoreDetail::getScoreType, "month")); + List collect = list.stream() + .filter(s -> s.getLevelIndexOne() != null && !Objects.equals(s.getLevelIndexOne(), "防疫安全")) + .collect(Collectors.toList()); + return success(collect); + } + + + /** + * @description + * @author 杜俊岩 + * @param[1] null + * @throws + * @time 2024/6/29 14:14 + * 异常类型 + */ + @GetMapping("/errorType") + @ApiOperation("异常类型") + public AjaxResult errorType() { + //根据异常id进行修改状态 + List ruleTwo = tbSafeRuleService.getRuleTwo(); + return success(ruleTwo); + } + + + + + /** + * @description + * @author 杜俊岩 + * @param[1] null + * @throws + * @time 2024/6/29 11:06 + * 获取登录人员信息 + */ + public String getLoginUserInfo(){ + LoginUser loginUser = SecurityUtils.getLoginUser(); + //获取登陆人员所在公司 + return loginUser.getUser().getCompanyName(); + } + @GetMapping("/getLoginUserInfo") + @ApiOperation("获取公司基本信息") + public TbCompanyInfo getLoginUserCompanyInfo(){ + LoginUser loginUser = SecurityUtils.getLoginUser(); + //获取登陆人员所在公司 + return tbCompanyInfoService.getOne(new LambdaQueryWrapper().eq(TbCompanyInfo::getCompanyName, loginUser.getUser().getCompanyName())); + } + + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbCompanyInfoMapper.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbCompanyInfoMapper.java new file mode 100644 index 0000000..2c3f099 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbCompanyInfoMapper.java @@ -0,0 +1,18 @@ +package com.ruoyi.business.enterpriserectification.mapper; + +import com.ruoyi.business.enterpriserectification.pojo.TbCompanyInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author 章北海 +* @description 针对表【tb_company_info(企业信息)】的数据库操作Mapper +* @createDate 2024-07-01 21:37:46 +* @Entity com.ruoyi.business.enterpriserectification.pojo.TbCompanyInfo +*/ +public interface TbCompanyInfoMapper extends BaseMapper { + +} + + + + diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreDetailMapper.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreDetailMapper.java new file mode 100644 index 0000000..da524eb --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreDetailMapper.java @@ -0,0 +1,18 @@ +package com.ruoyi.business.enterpriserectification.mapper; + +import com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScoreDetail; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author 章北海 +* @description 针对表【tb_safe_company_statistics_score_detail(企业统计积分明细)】的数据库操作Mapper +* @createDate 2024-07-02 14:06:55 +* @Entity com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScoreDetail +*/ +public interface TbSafeCompanyStatisticsScoreDetailMapper extends BaseMapper { + +} + + + + diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreMapper.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreMapper.java new file mode 100644 index 0000000..8265ef5 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreMapper.java @@ -0,0 +1,18 @@ +package com.ruoyi.business.enterpriserectification.mapper; + +import com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScore; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author 章北海 +* @description 针对表【tb_safe_company_statistics_score(企业统计积分)】的数据库操作Mapper +* @createDate 2024-07-02 14:36:31 +* @Entity com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScore +*/ +public interface TbSafeCompanyStatisticsScoreMapper extends BaseMapper { + +} + + + + diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeRuleMapper.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeRuleMapper.java new file mode 100644 index 0000000..3c6ad18 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeRuleMapper.java @@ -0,0 +1,18 @@ +package com.ruoyi.business.enterpriserectification.mapper; + +import com.ruoyi.business.enterpriserectification.pojo.TbSafeRule; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author 章北海 +* @description 针对表【tb_safe_rule(平安企业规则名表)】的数据库操作Mapper +* @createDate 2024-07-02 11:09:54 +* @Entity com.ruoyi.business.enterpriserectification.pojo.TbSafeRule +*/ +public interface TbSafeRuleMapper extends BaseMapper { + +} + + + + diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSpecialCountRecordMapper.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSpecialCountRecordMapper.java new file mode 100644 index 0000000..2668cc7 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSpecialCountRecordMapper.java @@ -0,0 +1,18 @@ +package com.ruoyi.business.enterpriserectification.mapper; + +import com.ruoyi.business.enterpriserectification.pojo.TbSpecialCountRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author 章北海 +* @description 针对表【tb_special_count_record(企业综合指数记录表)】的数据库操作Mapper +* @createDate 2024-07-01 19:21:53 +* @Entity com.ruoyi.business.enterpriserectification.pojo.TbSpecialCountRecord +*/ +public interface TbSpecialCountRecordMapper extends BaseMapper { + +} + + + + diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSynergismEnterpriseSupervisionMapper.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSynergismEnterpriseSupervisionMapper.java new file mode 100644 index 0000000..ce25eee --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSynergismEnterpriseSupervisionMapper.java @@ -0,0 +1,18 @@ +package com.ruoyi.business.enterpriserectification.mapper; + +import com.ruoyi.business.enterpriserectification.pojo.TbSynergismEnterpriseSupervision; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author 章北海 +* @description 针对表【tb_synergism_enterprise_supervision(企业监管表)】的数据库操作Mapper +* @createDate 2024-07-01 19:21:53 +* @Entity com.ruoyi.business.enterpriserectification.pojo.TbSynergismEnterpriseSupervision +*/ +public interface TbSynergismEnterpriseSupervisionMapper extends BaseMapper { + +} + + + + diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbCompanyInfo.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbCompanyInfo.java new file mode 100644 index 0000000..2892812 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbCompanyInfo.java @@ -0,0 +1,97 @@ +package com.ruoyi.business.enterpriserectification.pojo; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import javax.validation.constraints.NotNull; + +import java.io.Serializable; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.system.until.EntiyUntil; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Length; + +/** +* 企业信息 +* @TableName tb_company_info +*/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "tb_company_info") +public class TbCompanyInfo extends EntiyUntil { + + /** + * 主键 + */ + @ApiModelProperty("主键") + private Long id; + /** + * 公司名称 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("公司名称") + @Length(max= 100,message="编码长度不能超过100") + private String companyName; + /** + * 公司类型 + */ + @Size(max= -1,message="编码长度不能超过-1") + @ApiModelProperty("公司类型") + @Length(max= -1,message="编码长度不能超过-1") + private String companyType; + /** + * 统一社会信用代码 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("统一社会信用代码") + @Length(max= 100,message="编码长度不能超过100") + private String socialCreditCode; + /** + * 企业性质 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("企业性质") + @Length(max= 100,message="编码长度不能超过100") + private String companyNature; + /** + * 成立日期 + */ + @ApiModelProperty("成立日期") + private Date establishDate; + /** + * 营业期限 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("营业期限") + @Length(max= 100,message="编码长度不能超过100") + private String businessTermDate; + /** + * 企业登记注册地 + */ + @Size(max= -1,message="编码长度不能超过-1") + @ApiModelProperty("企业登记注册地") + @Length(max= -1,message="编码长度不能超过-1") + private String registerAddress; + /** + * 企业经营状态 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("企业经营状态") + @Length(max= 100,message="编码长度不能超过100") + private String businessStatus; + /** + * 企业法定代表人 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("企业法定代表人") + @Length(max= 100,message="编码长度不能超过100") + private String legalPerson; + + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScore.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScore.java new file mode 100644 index 0000000..c0b6ba3 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScore.java @@ -0,0 +1,123 @@ +package com.ruoyi.business.enterpriserectification.pojo; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import javax.validation.constraints.NotNull; + +import java.io.Serializable; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.system.until.EntiyUntil; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Length; + +/** +* 企业统计积分 +* @TableName tb_safe_company_statistics_score +*/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "tb_safe_company_statistics_score") +public class TbSafeCompanyStatisticsScore extends EntiyUntil { + + /** + * 主键 + */ + @ApiModelProperty("主键") + private Long id; + /** + * 企业id + */ + @ApiModelProperty("企业id") + private Long companyId; + /** + * 规则项对应积分 + */ + @ApiModelProperty("规则项对应积分") + private Double score; + /** + * 积分类型 month season year + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("积分类型 month season year") + @Length(max= 100,message="编码长度不能超过100") + private String scoreType; + /** + * 积分所属时间 2023-01 2023-03 2023 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("积分所属时间 2023-01 2023-03 2023") + @Length(max= 100,message="编码长度不能超过100") + private String statisticsDate; + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + private Date createTime; + /** + * 创建者 + */ + @ApiModelProperty("创建者") + private Integer createBy; + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + private Date updateTime; + /** + * 更新者 + */ + @ApiModelProperty("更新者") + private Integer updateBy; + /** + * 0:不活跃,1:活跃 + */ + @Size(max= -1,message="编码长度不能超过-1") + @ApiModelProperty("0:不活跃,1:活跃") + @Length(max= -1,message="编码长度不能超过-1") + private String isActive; + /** + * 扩展字段c1 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("扩展字段c1") + @Length(max= 100,message="编码长度不能超过100") + private String c1; + /** + * 扩展字段c2 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("扩展字段c2") + @Length(max= 100,message="编码长度不能超过100") + private String c2; + /** + * 扩展字段c3 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("扩展字段c3") + @Length(max= 100,message="编码长度不能超过100") + private String c3; + /** + * 扩展字段c4 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("扩展字段c4") + @Length(max= 100,message="编码长度不能超过100") + private String c4; + /** + * 扩展字段c5 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("扩展字段c5") + @Length(max= 100,message="编码长度不能超过100") + private String c5; + + + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScoreDetail.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScoreDetail.java new file mode 100644 index 0000000..f537165 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScoreDetail.java @@ -0,0 +1,159 @@ +package com.ruoyi.business.enterpriserectification.pojo; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import javax.validation.constraints.NotNull; + +import java.io.Serializable; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.system.until.EntiyUntil; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Length; + +/** +* 企业统计积分明细 +* @TableName tb_safe_company_statistics_score_detail +*/ +@Data +@EqualsAndHashCode(callSuper = false) +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "tb_safe_company_statistics_score_detail") +public class TbSafeCompanyStatisticsScoreDetail extends EntiyUntil { + + /** + * 主键 + */ + @ApiModelProperty("主键") + private Long id; + /** + * 规则id,tb_safe_rule主键id + */ + @ApiModelProperty("规则id,tb_safe_rule主键id") + private Long safeRuleId; + /** + * 企业id + */ + @ApiModelProperty("企业id") + private Long companyId; + /** + * 指标等级,字典:0->综合指数算法,1->一级指标,2->二级指标,3->三级指标 + */ + @Size(max= -1,message="编码长度不能超过-1") + @ApiModelProperty("指标等级,字典:0->综合指数算法,1->一级指标,2->二级指标,3->三级指标") + @Length(max= -1,message="编码长度不能超过-1") + private String levelIndex; + /** + * 一级指标名称 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("一级指标名称") + @Length(max= 100,message="编码长度不能超过100") + private String levelIndexOne; + /** + * 二级指标名称 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("二级指标名称") + @Length(max= 100,message="编码长度不能超过100") + private String levelIndexTwo; + /** + * 三级指标名称 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("三级指标名称") + @Length(max= 100,message="编码长度不能超过100") + private String levelIndexThree; + /** + * 规则项对应积分 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("规则项对应积分") + @Length(max= 100,message="编码长度不能超过100") + private String score; + /** + * 积分类型 month season year + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("积分类型 month season year") + @Length(max= 100,message="编码长度不能超过100") + private String scoreType; + /** + * 积分所属时间 2023-01 2023-03 2023 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("积分所属时间 2023-01 2023-03 2023") + @Length(max= 100,message="编码长度不能超过100") + private String statisticsDate; + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + private Date createTime; + /** + * 创建者 + */ + @ApiModelProperty("创建者") + private Integer createBy; + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + private Date updateTime; + /** + * 更新者 + */ + @ApiModelProperty("更新者") + private Integer updateBy; + /** + * 0:不活跃,1:活跃 + */ + @Size(max= -1,message="编码长度不能超过-1") + @ApiModelProperty("0:不活跃,1:活跃") + @Length(max= -1,message="编码长度不能超过-1") + private String isActive; + /** + * 扩展字段c1 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("扩展字段c1") + @Length(max= 100,message="编码长度不能超过100") + private String c1; + /** + * 扩展字段c2 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("扩展字段c2") + @Length(max= 100,message="编码长度不能超过100") + private String c2; + /** + * 扩展字段c3 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("扩展字段c3") + @Length(max= 100,message="编码长度不能超过100") + private String c3; + /** + * 扩展字段c4 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("扩展字段c4") + @Length(max= 100,message="编码长度不能超过100") + private String c4; + /** + * 扩展字段c5 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("扩展字段c5") + @Length(max= 100,message="编码长度不能超过100") + private String c5; + + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeRule.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeRule.java new file mode 100644 index 0000000..be3d158 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeRule.java @@ -0,0 +1,146 @@ +package com.ruoyi.business.enterpriserectification.pojo; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import javax.validation.constraints.NotNull; + +import java.io.Serializable; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Length; + +/** +* 平安企业规则名表 +* @TableName tb_safe_rule +*/ +@Data +@EqualsAndHashCode(callSuper = false) +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "tb_safe_rule") +public class TbSafeRule implements Serializable { + + /** + * 主键 + */ + @ApiModelProperty("主键") + private Long id; + /** + * 一级指标名称 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("一级指标名称") + @Length(max= 100,message="编码长度不能超过100") + private String levelIndexOne; + /** + * 二级指标名称 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("二级指标名称") + @Length(max= 100,message="编码长度不能超过100") + private String levelIndexTwo; + /** + * 三级指标名称 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("三级指标名称") + @Length(max= 100,message="编码长度不能超过100") + private String levelIndexThree; + /** + * 规则备注 + */ + @Size(max= -1,message="编码长度不能超过-1") + @ApiModelProperty("规则备注") + @Length(max= -1,message="编码长度不能超过-1") + private String note; + /** + * 指标等级,字典:0->综合指数算法,1->一级指标,2->二级指标,3->三级指标 + */ + @Size(max= -1,message="编码长度不能超过-1") + @ApiModelProperty("指标等级,字典:0->综合指数算法,1->一级指标,2->二级指标,3->三级指标") + @Length(max= -1,message="编码长度不能超过-1") + private String levelIndex; + /** + * 排序字段 + */ + @ApiModelProperty("排序字段") + private Integer sortValue; + /** + * 是否是区间页面,字典:1->是,2->否 + */ + @Size(max= -1,message="编码长度不能超过-1") + @ApiModelProperty("是否是区间页面,字典:1->是,2->否") + @Length(max= -1,message="编码长度不能超过-1") + private String isRangePage; + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + private Date createTime; + /** + * 创建者 + */ + @ApiModelProperty("创建者") + private Integer createBy; + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + private Date updateTime; + /** + * 更新者 + */ + @ApiModelProperty("更新者") + private Integer updateBy; + /** + * 0:不活跃,1:活跃 + */ + @Size(max= -1,message="编码长度不能超过-1") + @ApiModelProperty("0:不活跃,1:活跃") + @Length(max= -1,message="编码长度不能超过-1") + private String isActive; + /** + * 扩展字段c1 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("扩展字段c1") + @Length(max= 100,message="编码长度不能超过100") + private String c1; + /** + * 扩展字段c2 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("扩展字段c2") + @Length(max= 100,message="编码长度不能超过100") + private String c2; + /** + * 扩展字段c3 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("扩展字段c3") + @Length(max= 100,message="编码长度不能超过100") + private String c3; + /** + * 扩展字段c4 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("扩展字段c4") + @Length(max= 100,message="编码长度不能超过100") + private String c4; + /** + * 扩展字段c5 + */ + @Size(max= 100,message="编码长度不能超过100") + @ApiModelProperty("扩展字段c5") + @Length(max= 100,message="编码长度不能超过100") + private String c5; + + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSpecialCountRecord.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSpecialCountRecord.java new file mode 100644 index 0000000..2710e0c --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSpecialCountRecord.java @@ -0,0 +1,88 @@ +package com.ruoyi.business.enterpriserectification.pojo; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import javax.validation.constraints.NotNull; + +import java.io.Serializable; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.system.until.EntiyUntil; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Length; + +/** +* 企业综合指数记录表 +* @TableName tb_special_count_record +*/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "tb_special_count_record") +public class TbSpecialCountRecord extends EntiyUntil { + + /** + * 主键 + */ + @ApiModelProperty("主键") + private Long id; + /** + * 公司编号 + */ + @Size(max= 32,message="编码长度不能超过32") + @ApiModelProperty("公司编号") + @Length(max= 32,message="编码长度不能超过32") + private String companyId; + /** + * 公司名称 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("公司名称") + @Length(max= 255,message="编码长度不能超过255") + private String companyName; + /** + * 创建日期 + */ + @ApiModelProperty("创建日期") + private Date countTime; + /** + * 综合指数 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("综合指数") + @Length(max= 255,message="编码长度不能超过255") + private String companyGh; + /** + * 综合指数(月) + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("综合指数(月)") + @Length(max= 255,message="编码长度不能超过255") + private String companyGhMonth; + /** + * 综合指数(季) + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("综合指数(季)") + @Length(max= 255,message="编码长度不能超过255") + private String companyGhSeason; + /** + * 综合指数(年) + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("综合指数(年)") + @Length(max= 255,message="编码长度不能超过255") + private String companyGhYear; + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + private Date updateTime; + + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSynergismEnterpriseSupervision.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSynergismEnterpriseSupervision.java new file mode 100644 index 0000000..5762721 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSynergismEnterpriseSupervision.java @@ -0,0 +1,280 @@ +package com.ruoyi.business.enterpriserectification.pojo; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import javax.validation.constraints.NotNull; + +import java.io.Serializable; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.system.until.EntiyUntil; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Length; + +/** +* 企业监管表 +* @TableName tb_synergism_enterprise_supervision +*/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "tb_synergism_enterprise_supervision") +public class TbSynergismEnterpriseSupervision extends EntiyUntil { + + /** + * 主键ID + */ + @ApiModelProperty("主键ID") + private Long id; + /** + * 企业名称 + */ + @NotBlank(message="[企业名称]不能为空") + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("企业名称") + @Length(max= 255,message="编码长度不能超过255") + private String enterpriseName; + /** + * 企业类型 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("企业类型") + @Length(max= 255,message="编码长度不能超过255") + private String enterpriseType; + /** + * 企业所属街道 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("企业所属街道") + @Length(max= 255,message="编码长度不能超过255") + private String enterpriseStreet; + /** + * 纳入监管时间 + */ + @ApiModelProperty("纳入监管时间") + private Date includedSupervisionTime; + /** + * 清单生成时间 + */ + @ApiModelProperty("清单生成时间") + private Date checklistGenerationTime; + /** + * 整改截止日期 + */ + @ApiModelProperty("整改截止日期") + private Date rectificationDeadline; + /** + * 整改状态 + */ + @Size(max= 50,message="编码长度不能超过50") + @ApiModelProperty("整改状态") + @Length(max= 50,message="编码长度不能超过50") + private String rectificationStatus; + /** + * 管控扣分项 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("管控扣分项") + @Length(max= 255,message="编码长度不能超过255") + private String controlDeductionItem; + /** + * 连续扣分项 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("连续扣分项") + @Length(max= 255,message="编码长度不能超过255") + private String continuousDeductionItem; + /** + * 纳入监管次数 + */ + @ApiModelProperty("纳入监管次数") + private Integer supervisionTimes; + /** + * 连续纳入监管次数 + */ + @ApiModelProperty("连续纳入监管次数") + private Integer continuousSupervisionTimes; + /** + * 要素异常明细 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("要素异常明细") + @Length(max= 255,message="编码长度不能超过255") + private String elementAbnormalDetail; + /** + * 整改结果 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("整改结果") + @Length(max= 255,message="编码长度不能超过255") + private String rectificationResult; + /** + * 申诉核实无需整改 + */ + @Size(max= 5,message="编码长度不能超过5") + @ApiModelProperty("申诉核实无需整改") + @Length(max= 5,message="编码长度不能超过5") + private String appealVerificationNotNeeded; + /** + * 超期提醒(绑定相应id) + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("超期提醒(绑定相应id)") + @Length(max= 255,message="编码长度不能超过255") + private String overdueReminder; + /** + * 挂牌督办(绑定挂牌id) + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("挂牌督办(绑定挂牌id)") + @Length(max= 255,message="编码长度不能超过255") + private String listedSupervision; + /** + * 各单位分工责任 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("各单位分工责任") + @Length(max= 255,message="编码长度不能超过255") + private String unitDivisionResponsibility; + /** + * 监管单位 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("监管单位") + @Length(max= 255,message="编码长度不能超过255") + private String supervisionUnit; + /** + * 处置方式 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("处置方式") + @Length(max= 255,message="编码长度不能超过255") + private String disposalMethod; + /** + * 处置要求 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("处置要求") + @Length(max= 255,message="编码长度不能超过255") + private String disposalRequirement; + /** + * 整改要求 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("整改要求") + @Length(max= 255,message="编码长度不能超过255") + private String rectificationRequirement; + /** + * 紧急程度 + */ + @Size(max= 50,message="编码长度不能超过50") + @ApiModelProperty("紧急程度") + @Length(max= 50,message="编码长度不能超过50") + private String urgencyLevel; + /** + * 责任人 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("责任人") + @Length(max= 255,message="编码长度不能超过255") + private String responsiblePerson; + /** + * 备注 + */ + @Size(max= -1,message="编码长度不能超过-1") + @ApiModelProperty("备注") + @Length(max= -1,message="编码长度不能超过-1") + private String remarks; + /** + * 创建时间 + */ + @NotNull(message="[创建时间]不能为空") + @ApiModelProperty("创建时间") + private Date createTime; + /** + * 创建者 + */ + @ApiModelProperty("创建者") + private Integer createBy; + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + private Date updateTime; + /** + * 更新者 + */ + @ApiModelProperty("更新者") + private Integer updateBy; + /** + * 0:不活跃;1:活跃 + */ + @Size(max= -1,message="编码长度不能超过-1") + @ApiModelProperty("0:不活跃;1:活跃") + @Length(max= -1,message="编码长度不能超过-1") + private String isActive; + /** + * 是否为重点问题 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("是否为重点问题") + @Length(max= 255,message="编码长度不能超过255") + private String isFocus; + /** + * 流程关联id + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("流程关联id") + @Length(max= 255,message="编码长度不能超过255") + private String definitionId; + /** + * 整改结果详情 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("整改结果详情") + @Length(max= 255,message="编码长度不能超过255") + private String rectificationResultDefult; + /** + * 连续未整改次数 + */ + @ApiModelProperty("连续未整改次数") + private Integer rectificationNoNum; + /** + * 是否超期整改 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("是否超期整改") + @Length(max= 255,message="编码长度不能超过255") + private String isOverdueReminder; + /** + * 是否挂牌督办 + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("是否挂牌督办") + @Length(max= 255,message="编码长度不能超过255") + private String isListedSupervision; + /** + * 异常规则id + */ + @Size(max= 255,message="编码长度不能超过255") + @ApiModelProperty("异常规则id") + @Length(max= 255,message="编码长度不能超过255") + private String safeRuleId; + + + @TableField(exist = false) + @ApiModelProperty("整改结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endTime; + + + + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbCompanyInfoService.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbCompanyInfoService.java new file mode 100644 index 0000000..0570433 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbCompanyInfoService.java @@ -0,0 +1,13 @@ +package com.ruoyi.business.enterpriserectification.service; + +import com.ruoyi.business.enterpriserectification.pojo.TbCompanyInfo; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author 章北海 +* @description 针对表【tb_company_info(企业信息)】的数据库操作Service +* @createDate 2024-07-01 21:37:46 +*/ +public interface TbCompanyInfoService extends IService { + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreDetailService.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreDetailService.java new file mode 100644 index 0000000..800ff03 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreDetailService.java @@ -0,0 +1,13 @@ +package com.ruoyi.business.enterpriserectification.service; + +import com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScoreDetail; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author 章北海 +* @description 针对表【tb_safe_company_statistics_score_detail(企业统计积分明细)】的数据库操作Service +* @createDate 2024-07-02 14:06:55 +*/ +public interface TbSafeCompanyStatisticsScoreDetailService extends IService { + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreService.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreService.java new file mode 100644 index 0000000..8c4ddfb --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreService.java @@ -0,0 +1,13 @@ +package com.ruoyi.business.enterpriserectification.service; + +import com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScore; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author 章北海 +* @description 针对表【tb_safe_company_statistics_score(企业统计积分)】的数据库操作Service +* @createDate 2024-07-02 14:36:31 +*/ +public interface TbSafeCompanyStatisticsScoreService extends IService { + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeRuleService.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeRuleService.java new file mode 100644 index 0000000..89c3d43 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeRuleService.java @@ -0,0 +1,20 @@ +package com.ruoyi.business.enterpriserectification.service; + +import com.ruoyi.business.enterpriserectification.bo.TbSafeRuleOneVo; +import com.ruoyi.business.enterpriserectification.bo.TbSafeRuleTwoVo; +import com.ruoyi.business.enterpriserectification.pojo.TbSafeRule; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** +* @author 章北海 +* @description 针对表【tb_safe_rule(平安企业规则名表)】的数据库操作Service +* @createDate 2024-07-02 11:09:54 +*/ +public interface TbSafeRuleService extends IService { + List getRuleOne(); + + List getRuleTwo(); + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSpecialCountRecordService.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSpecialCountRecordService.java new file mode 100644 index 0000000..e6ba846 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSpecialCountRecordService.java @@ -0,0 +1,13 @@ +package com.ruoyi.business.enterpriserectification.service; + +import com.ruoyi.business.enterpriserectification.pojo.TbSpecialCountRecord; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author 章北海 +* @description 针对表【tb_special_count_record(企业综合指数记录表)】的数据库操作Service +* @createDate 2024-07-01 19:21:53 +*/ +public interface TbSpecialCountRecordService extends IService { + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSynergismEnterpriseSupervisionService.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSynergismEnterpriseSupervisionService.java new file mode 100644 index 0000000..c18deb7 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSynergismEnterpriseSupervisionService.java @@ -0,0 +1,13 @@ +package com.ruoyi.business.enterpriserectification.service; + +import com.ruoyi.business.enterpriserectification.pojo.TbSynergismEnterpriseSupervision; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author 章北海 +* @description 针对表【tb_synergism_enterprise_supervision(企业监管表)】的数据库操作Service +* @createDate 2024-07-01 19:21:53 +*/ +public interface TbSynergismEnterpriseSupervisionService extends IService { + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbCompanyInfoServiceImpl.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbCompanyInfoServiceImpl.java new file mode 100644 index 0000000..f1113b3 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbCompanyInfoServiceImpl.java @@ -0,0 +1,24 @@ +package com.ruoyi.business.enterpriserectification.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.business.enterpriserectification.pojo.TbCompanyInfo; +import com.ruoyi.business.enterpriserectification.service.TbCompanyInfoService; +import com.ruoyi.business.enterpriserectification.mapper.TbCompanyInfoMapper; +import com.ruoyi.common.annotation.DataSource; +import com.ruoyi.common.enums.DataSourceType; +import org.springframework.stereotype.Service; + +/** +* @author 章北海 +* @description 针对表【tb_company_info(企业信息)】的数据库操作Service实现 +* @createDate 2024-07-01 21:37:46 +*/ +@Service +public class TbCompanyInfoServiceImpl extends ServiceImpl + implements TbCompanyInfoService{ + +} + + + + diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreDetailServiceImpl.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreDetailServiceImpl.java new file mode 100644 index 0000000..32f0631 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreDetailServiceImpl.java @@ -0,0 +1,25 @@ +package com.ruoyi.business.enterpriserectification.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScoreDetail; +import com.ruoyi.business.enterpriserectification.service.TbSafeCompanyStatisticsScoreDetailService; +import com.ruoyi.business.enterpriserectification.mapper.TbSafeCompanyStatisticsScoreDetailMapper; +import com.ruoyi.common.annotation.DataSource; +import com.ruoyi.common.enums.DataSourceType; +import org.springframework.stereotype.Service; + +/** +* @author 章北海 +* @description 针对表【tb_safe_company_statistics_score_detail(企业统计积分明细)】的数据库操作Service实现 +* @createDate 2024-07-02 14:06:55 +*/ +@Service +@DataSource(value = DataSourceType.SLAVE) +public class TbSafeCompanyStatisticsScoreDetailServiceImpl extends ServiceImpl + implements TbSafeCompanyStatisticsScoreDetailService{ + +} + + + + diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreServiceImpl.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreServiceImpl.java new file mode 100644 index 0000000..df644b5 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreServiceImpl.java @@ -0,0 +1,25 @@ +package com.ruoyi.business.enterpriserectification.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScore; +import com.ruoyi.business.enterpriserectification.service.TbSafeCompanyStatisticsScoreService; +import com.ruoyi.business.enterpriserectification.mapper.TbSafeCompanyStatisticsScoreMapper; +import com.ruoyi.common.annotation.DataSource; +import com.ruoyi.common.enums.DataSourceType; +import org.springframework.stereotype.Service; + +/** +* @author 章北海 +* @description 针对表【tb_safe_company_statistics_score(企业统计积分)】的数据库操作Service实现 +* @createDate 2024-07-02 14:36:31 +*/ +@Service +@DataSource(value = DataSourceType.SLAVE) +public class TbSafeCompanyStatisticsScoreServiceImpl extends ServiceImpl + implements TbSafeCompanyStatisticsScoreService{ + +} + + + + diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeRuleServiceImpl.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeRuleServiceImpl.java new file mode 100644 index 0000000..c0eade7 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeRuleServiceImpl.java @@ -0,0 +1,133 @@ +package com.ruoyi.business.enterpriserectification.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.business.enterpriserectification.bo.TbSafeRuleOneVo; +import com.ruoyi.business.enterpriserectification.bo.TbSafeRuleThreeVo; +import com.ruoyi.business.enterpriserectification.bo.TbSafeRuleTwoVo; +import com.ruoyi.business.enterpriserectification.pojo.TbSafeRule; +import com.ruoyi.business.enterpriserectification.service.TbSafeRuleService; +import com.ruoyi.business.enterpriserectification.mapper.TbSafeRuleMapper; +import com.ruoyi.common.annotation.DataSource; +import com.ruoyi.common.enums.DataSourceType; +import com.ruoyi.system.until.NbConstants; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** +* @author 章北海 +* @description 针对表【tb_safe_rule(平安企业规则名表)】的数据库操作Service实现 +* @createDate 2024-07-02 11:09:54 +*/ +@Service +@DataSource(value = DataSourceType.SLAVE) +public class TbSafeRuleServiceImpl extends ServiceImpl + implements TbSafeRuleService{ + + @Override + public List getRuleOne() { + QueryWrapper queryWrapper = Wrappers.query(); + //查询出所有规则名表 + List tbSafeRuleList = this.list(queryWrapper); + List list = new ArrayList<>(); + if (null == tbSafeRuleList || tbSafeRuleList.size() == 0) { + return list; + } + for (TbSafeRule tbSafeRule : tbSafeRuleList) { + if (NbConstants.LEVEL_INDEX_ONE == Integer.parseInt(tbSafeRule.getLevelIndex())) { + TbSafeRuleOneVo tbSafeRuleOneVo = new TbSafeRuleOneVo(); + tbSafeRuleOneVo.setId(tbSafeRule.getId()); + tbSafeRuleOneVo.setLevelIndex(NbConstants.LEVEL_INDEX_ONE); + tbSafeRuleOneVo.setLevelIndexOne(tbSafeRule.getLevelIndexOne()); + tbSafeRuleOneVo.setLevelIndexTwo(tbSafeRule.getLevelIndexTwo()); + tbSafeRuleOneVo.setLevelIndexThree(tbSafeRule.getLevelIndexThree()); + tbSafeRuleOneVo.setNote(tbSafeRule.getNote()); + tbSafeRuleOneVo.setTbSafeRuleTwoVoList(null); + list.add(tbSafeRuleOneVo); + } + } + for (TbSafeRuleOneVo tbSafeRuleOneVo : list) { + tbSafeRuleOneVo.setTbSafeRuleTwoVoList(getTbSafeRuleTwoVoList(tbSafeRuleList, tbSafeRuleOneVo)); + } + return list; + } + + @Override + public List getRuleTwo() { + QueryWrapper queryWrapper = Wrappers.query(); + //查询出所有规则名表 + List tbSafeRuleList = this.list(queryWrapper); + List list = new ArrayList<>(); + if (null == tbSafeRuleList || tbSafeRuleList.size() == 0) { + return list; + } + for (TbSafeRule tbSafeRule : tbSafeRuleList) { + if (NbConstants.LEVEL_INDEX_TWO == Integer.parseInt(tbSafeRule.getLevelIndex()) + && !"防疫安全".equals(tbSafeRule.getLevelIndexOne())) { + TbSafeRuleTwoVo tbSafeRuleTwoVo = new TbSafeRuleTwoVo(); + tbSafeRuleTwoVo.setId(tbSafeRule.getId()); + tbSafeRuleTwoVo.setLevelIndex(NbConstants.LEVEL_INDEX_TWO); + tbSafeRuleTwoVo.setLevelIndexOne(tbSafeRule.getLevelIndexOne()); + tbSafeRuleTwoVo.setLevelIndexTwo(tbSafeRule.getLevelIndexTwo()); + tbSafeRuleTwoVo.setLevelIndexThree(tbSafeRule.getLevelIndexThree()); + tbSafeRuleTwoVo.setNote(tbSafeRule.getNote()); + tbSafeRuleTwoVo.setTbSafeRuleThreeVoList(null); + list.add(tbSafeRuleTwoVo); + } + } + for (TbSafeRuleTwoVo tbSafeRuleTwoVo : list) { + tbSafeRuleTwoVo.setTbSafeRuleThreeVoList(getTbSafeRuleTwoVo(tbSafeRuleList, tbSafeRuleTwoVo)); + } + return list; + } + + /** + * 二级 + */ + private List getTbSafeRuleTwoVoList(List tbSafeRuleList, TbSafeRuleOneVo tbSafeRuleOneVo) { + List tbSafeRuleTwoVoList = new ArrayList<>(); + for (TbSafeRule tbSafeRule : tbSafeRuleList) { + if (NbConstants.LEVEL_INDEX_TWO == Integer.parseInt(tbSafeRule.getLevelIndex()) + && tbSafeRuleOneVo.getLevelIndexOne().equals(tbSafeRule.getLevelIndexOne())) { + TbSafeRuleTwoVo tbSafeRuleTwoVo = new TbSafeRuleTwoVo(); + tbSafeRuleTwoVo.setId(tbSafeRule.getId()); + tbSafeRuleTwoVo.setLevelIndex(NbConstants.LEVEL_INDEX_TWO); + tbSafeRuleTwoVo.setLevelIndexOne(tbSafeRule.getLevelIndexOne()); + tbSafeRuleTwoVo.setLevelIndexTwo(tbSafeRule.getLevelIndexTwo()); + tbSafeRuleTwoVo.setLevelIndexThree(tbSafeRule.getLevelIndexThree()); + tbSafeRuleTwoVo.setTbSafeRuleThreeVoList(getTbSafeRuleTwoVo(tbSafeRuleList, tbSafeRuleTwoVo)); + tbSafeRuleTwoVoList.add(tbSafeRuleTwoVo); + } + } + return tbSafeRuleTwoVoList; + } + + /** + * 三级 + */ + private List getTbSafeRuleTwoVo(List tbSafeRuleList, TbSafeRuleTwoVo tbSafeRuleTwoVo) { + List tbSafeRuleThreeVoList = new ArrayList<>(); + for (TbSafeRule tbSafeRule : tbSafeRuleList) { + if (NbConstants.LEVEL_INDEX_THREE == Integer.parseInt(tbSafeRule.getLevelIndex()) + && tbSafeRule.getLevelIndexTwo().equals(tbSafeRuleTwoVo.getLevelIndexTwo()) + && tbSafeRule.getLevelIndexOne().equals(tbSafeRuleTwoVo.getLevelIndexOne())) { + TbSafeRuleThreeVo tbSafeRuleThreeVo = new TbSafeRuleThreeVo(); + tbSafeRuleThreeVo.setId(tbSafeRule.getId()); + tbSafeRuleThreeVo.setLevelIndex(NbConstants.LEVEL_INDEX_THREE); + tbSafeRuleThreeVo.setLevelIndexOne(tbSafeRule.getLevelIndexOne()); + tbSafeRuleThreeVo.setLevelIndexTwo(tbSafeRule.getLevelIndexTwo()); + tbSafeRuleThreeVo.setLevelIndexThree(tbSafeRule.getLevelIndexThree()); + tbSafeRuleThreeVo.setNote(tbSafeRule.getNote()); + tbSafeRuleThreeVoList.add(tbSafeRuleThreeVo); + } + } + return tbSafeRuleThreeVoList; + } +} + + + + diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSpecialCountRecordServiceImpl.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSpecialCountRecordServiceImpl.java new file mode 100644 index 0000000..cdefdf0 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSpecialCountRecordServiceImpl.java @@ -0,0 +1,25 @@ +package com.ruoyi.business.enterpriserectification.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.business.enterpriserectification.pojo.TbSpecialCountRecord; +import com.ruoyi.business.enterpriserectification.service.TbSpecialCountRecordService; +import com.ruoyi.business.enterpriserectification.mapper.TbSpecialCountRecordMapper; +import com.ruoyi.common.annotation.DataSource; +import com.ruoyi.common.enums.DataSourceType; +import org.springframework.stereotype.Service; + +/** +* @author 章北海 +* @description 针对表【tb_special_count_record(企业综合指数记录表)】的数据库操作Service实现 +* @createDate 2024-07-01 19:21:53 +*/ +@Service +@DataSource(value = DataSourceType.SLAVE) +public class TbSpecialCountRecordServiceImpl extends ServiceImpl + implements TbSpecialCountRecordService{ + +} + + + + diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSynergismEnterpriseSupervisionServiceImpl.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSynergismEnterpriseSupervisionServiceImpl.java new file mode 100644 index 0000000..34011eb --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSynergismEnterpriseSupervisionServiceImpl.java @@ -0,0 +1,25 @@ +package com.ruoyi.business.enterpriserectification.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.business.enterpriserectification.pojo.TbSynergismEnterpriseSupervision; +import com.ruoyi.business.enterpriserectification.service.TbSynergismEnterpriseSupervisionService; +import com.ruoyi.business.enterpriserectification.mapper.TbSynergismEnterpriseSupervisionMapper; +import com.ruoyi.common.annotation.DataSource; +import com.ruoyi.common.enums.DataSourceType; +import org.springframework.stereotype.Service; + +/** +* @author 章北海 +* @description 针对表【tb_synergism_enterprise_supervision(企业监管表)】的数据库操作Service实现 +* @createDate 2024-07-01 19:21:53 +*/ +@Service +@DataSource(value = DataSourceType.SLAVE) +public class TbSynergismEnterpriseSupervisionServiceImpl extends ServiceImpl + implements TbSynergismEnterpriseSupervisionService{ + +} + + + + diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/system/enums/RectificationStatusEnum.java b/ruoyi-safecompany/src/main/java/com/ruoyi/system/enums/RectificationStatusEnum.java new file mode 100644 index 0000000..afc0156 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/system/enums/RectificationStatusEnum.java @@ -0,0 +1,44 @@ +package com.ruoyi.system.enums; + +/* + * @User 章北海 + * @Time 2024/6/29 14:29 + * + */ +public enum RectificationStatusEnum { + SUCCESS("0","已完成"), + WAIT("1","整改中"), + FAIL("2","未完成"); + + private String code; + private String status; + + RectificationStatusEnum(){ + + } + + RectificationStatusEnum(String code, String status) { + this.code = code; + this.status = status; + } + + public String getCode() { + return code; + } + + public String getStatus() { + return status; + } + + //根据code码获取status + public static String getStatusByCode(String code) { + for (RectificationStatusEnum statusEnum : RectificationStatusEnum.values()) { + if (statusEnum.getCode().equals(code)) { + return statusEnum.getStatus(); + } + } + return FAIL.getStatus(); + } + + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/system/until/EntiyUntil.java b/ruoyi-safecompany/src/main/java/com/ruoyi/system/until/EntiyUntil.java new file mode 100644 index 0000000..dbbceba --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/system/until/EntiyUntil.java @@ -0,0 +1,73 @@ +package com.ruoyi.system.until; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; + +/** + * @Author 杜俊岩 + * @Date 2024/3/5 10:46 + * @Version 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class EntiyUntil implements Serializable { + @TableField(exist = false) + private static final long serialVersionUID = 1L; + + /** 搜索值 */ + @JsonIgnore + @TableField(exist = false) + @ApiModelProperty(hidden = true) + private String searchValue; + + + /** 备注 */ + @TableField(exist = false) + @ApiModelProperty(hidden = true) + private String remark; + + /** 请求参数 */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @TableField(exist = false) + @ApiModelProperty(hidden = true) + private Map params; + + + + @TableField(exist = false) + @JsonInclude(JsonInclude.Include.NON_NULL) + private Integer pageNum; + + @TableField(exist = false) + @JsonInclude(JsonInclude.Include.NON_NULL) + private Integer pageSize; + + @TableField(exist = false) + @JsonInclude(JsonInclude.Include.NON_NULL) + private String perType; + @TableField(exist = false) + @JsonInclude(JsonInclude.Include.NON_NULL) + private String message; + + + + public Map getParams() + { + if (params == null) + { + params = new HashMap<>(); + } + return params; + } + +} diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/system/until/NbConstants.java b/ruoyi-safecompany/src/main/java/com/ruoyi/system/until/NbConstants.java new file mode 100644 index 0000000..1eb3b08 --- /dev/null +++ b/ruoyi-safecompany/src/main/java/com/ruoyi/system/until/NbConstants.java @@ -0,0 +1,39 @@ +package com.ruoyi.system.until; + +/** + * 通用常量信息 + */ +public class NbConstants { + /** + * 指标等级 + */ + public static final Integer LEVEL_INDEX_ZERO = 0; + public static final Integer LEVEL_INDEX_ONE = 1; + public static final Integer LEVEL_INDEX_TWO = 2; + public static final Integer LEVEL_INDEX_THREE = 3; + + public static final String ALARM_RED = "red"; + public static final String ALARM_YELLOW = "yellow"; + public static final String ALARM_BLUE = "blue"; + public static final String ALARM_GREEN = "green"; + + public static final String SCORE_TYPE_MONTH = "month"; + public static final String SCORE_TYPE_SEASON = "season"; + public static final String SCORE_TYPE_YEAR = "year"; + + public static final String CN_YES = "是"; + public static final String CN_NO = "否"; + + /** + * 风险等级从高到低划分为重大风险、较大风险、一般风险和低风险四个等级,分别用红、橙、黄、蓝四种颜色标示。 + * 根据计算模型结果,总分在90分以上(含90分)的为红色; + * 75分(含75分)至90分的为橙色; + * 60分(含60分)至75分的为黄色; + * 60分以下的为蓝色 + */ + public static final String RISK_LEVEL_RED = "red"; + public static final String RISK_LEVEL_ORANGE = "orange"; + public static final String RISK_LEVEL_YELLOW = "yellow"; + public static final String RISK_LEVEL_BLUE = "blue"; + +} diff --git a/ruoyi-safecompany/src/main/resources/mapper/TbCompanyInfoMapper.xml b/ruoyi-safecompany/src/main/resources/mapper/TbCompanyInfoMapper.xml new file mode 100644 index 0000000..bf520f9 --- /dev/null +++ b/ruoyi-safecompany/src/main/resources/mapper/TbCompanyInfoMapper.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,company_name,company_type, + social_credit_code,company_nature,establish_date, + business_term_date,register_address,business_status, + legal_person,register_capital,business_license_date, + register_authority,emergency_contact,emergency_contact_phone, + company_address,business_scope,pic_url, + longitude,latitude,province_code, + province_name,city_code,city_name, + area_code,area_name,street_code, + street_name,block_code,block_name, + police_district,police_district_code,belonging_area, + create_time,create_by,update_time, + update_by,is_active,c1, + c2,c3,c4, + c5 + + diff --git a/ruoyi-safecompany/src/main/resources/mapper/TbSafeCompanyStatisticsScoreDetailMapper.xml b/ruoyi-safecompany/src/main/resources/mapper/TbSafeCompanyStatisticsScoreDetailMapper.xml new file mode 100644 index 0000000..9c0f16f --- /dev/null +++ b/ruoyi-safecompany/src/main/resources/mapper/TbSafeCompanyStatisticsScoreDetailMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,safe_rule_id,company_id, + level_index,level_index_one,level_index_two, + level_index_three,score,score_type, + statistics_date,create_time,create_by, + update_time,update_by,is_active, + c1,c2,c3, + c4,c5 + + diff --git a/ruoyi-safecompany/src/main/resources/mapper/TbSafeCompanyStatisticsScoreMapper.xml b/ruoyi-safecompany/src/main/resources/mapper/TbSafeCompanyStatisticsScoreMapper.xml new file mode 100644 index 0000000..8bd4271 --- /dev/null +++ b/ruoyi-safecompany/src/main/resources/mapper/TbSafeCompanyStatisticsScoreMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + id,company_id,score, + score_type,statistics_date,create_time, + create_by,update_time,update_by, + is_active,c1,c2, + c3,c4,c5 + + diff --git a/ruoyi-safecompany/src/main/resources/mapper/TbSafeRuleMapper.xml b/ruoyi-safecompany/src/main/resources/mapper/TbSafeRuleMapper.xml new file mode 100644 index 0000000..7e0fc4d --- /dev/null +++ b/ruoyi-safecompany/src/main/resources/mapper/TbSafeRuleMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + id,level_index_one,level_index_two, + level_index_three,note,level_index, + sort_value,is_range_page,create_time, + create_by,update_time,update_by, + is_active,c1,c2, + c3,c4,c5 + + diff --git a/ruoyi-safecompany/src/main/resources/mapper/TbSpecialCountRecordMapper.xml b/ruoyi-safecompany/src/main/resources/mapper/TbSpecialCountRecordMapper.xml new file mode 100644 index 0000000..241eccd --- /dev/null +++ b/ruoyi-safecompany/src/main/resources/mapper/TbSpecialCountRecordMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + id,company_id,company_name, + count_time,company_gh,company_gh_month, + company_gh_season,company_gh_year,update_time + + diff --git a/ruoyi-safecompany/src/main/resources/mapper/TbSynergismEnterpriseSupervisionMapper.xml b/ruoyi-safecompany/src/main/resources/mapper/TbSynergismEnterpriseSupervisionMapper.xml new file mode 100644 index 0000000..4e9249a --- /dev/null +++ b/ruoyi-safecompany/src/main/resources/mapper/TbSynergismEnterpriseSupervisionMapper.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,enterprise_name,enterprise_type, + enterprise_street,included_supervision_time,checklist_generation_time, + rectification_deadline,rectification_status,control_deduction_item, + continuous_deduction_item,supervision_times,continuous_supervision_times, + element_abnormal_detail,rectification_result,appeal_verification_not_needed, + overdue_reminder,listed_supervision,unit_division_responsibility, + supervision_unit,disposal_method,disposal_requirement, + rectification_requirement,urgency_level,responsible_person, + remarks,create_time,create_by, + update_time,update_by,is_active, + is_focus,definition_id,rectification_result_defult, + rectification_no_num,is_overdue_reminder,is_listed_supervision, + safe_rule_id + + diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/controller/TbCompanyInformationReportingController.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/controller/TbCompanyInformationReportingController.class new file mode 100644 index 0000000000000000000000000000000000000000..1d5cfd89e8c22ec1420ed227b88a54412dfb312a GIT binary patch literal 10894 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 literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/controller/TbCompanyInformationReportingDetailsController.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/controller/TbCompanyInformationReportingDetailsController.class new file mode 100644 index 0000000000000000000000000000000000000000..65bb869c6a42eaa5bc9c8b516ed4156232b2adac GIT binary patch literal 706 zcmcgqJx@Y06g}lr5k*l4M>ln_gAOJd6UCUApaT*Xr#>i9e6M}BeGq<@lZk^rz#nD2 z?@3Sx2Nv7pw)gbh^qk(lf4sf{IL3AbdDP3;EMtqIbf&cO=M4G1{SHH+VS19G)>K;F zB~c)4TLd8?^`_~Hup_KW^BGw1L**Do&8~^KP0UpBAaPXc949CidU~V##zw*`qgygI z)+;@rGwrPjLuq+CX#7pQl3u9LHRkkFhRVH3Y*${ZRMpX9<%c6N77RPBM0*vsi_7hBTVw<3}gV;}iM20T!@$Hkn>ThjSo$`&boN~ro)#4%k%rix<` zCh5C#H+5b{y!Yk2iUNuZ!~c3;hO}?9R?;pqngA<*cI;9(`RyCK$kBgF2ct=HDV8YX wSq>BrUcjCS$e~QJL@-dp62)q^FJc*$?0hAQRjkrlC;l3(HR7y4fH`b@0vBJ}761SM literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReporting$Fields.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReporting$Fields.class new file mode 100644 index 0000000000000000000000000000000000000000..640346477be5ddd2203f7e63b15cce2cf149afee GIT binary patch literal 1059 zcmcJN&u$Yj5XL{JY2&788$u~bD5Zn~ZGkRn!wH0h0+lL-QjsVJ#KqY)jjLU6wDv~i zu{a@d-~o6j#B3742gI!xfBubU?D^v#Kfiqk&_b(-1$YHC3pirPseqxUm1$4FqD-xBk5w2&5G%G#r}@T$xwoFs6Vi)#W!i>X{yKY-M`Pv7Kp)V<*#R91Vu07fLJpl3`(Q zzt50w$AM&6?#fQsEXO?-Kx zviutV4LZ!`Tf#2x7jVq*;p+0DQT_c(?*^ANGluRJyoV-o^pSye)R4y_Xbwa<6o|RQ z%fv;8SBOgvuM)30oZVM;_!@D=;p@a34&NZ&boeH5)!`a(-QiorTMpkQ-gfv7@s7iH zi5m{zqe^qxC`lhs#U3dmT|D>-_GQ|FhqNwDjaBT?zBF^dJ|0icpG?<7JR&X9Sq@Ke GfZ8u84eX5o literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReporting.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReporting.class new file mode 100644 index 0000000000000000000000000000000000000000..2656c9147bf6bb9051f9d3d6f848d69046e73365 GIT binary patch literal 10402 zcmd5?33yz^k**%i@iZDqqgzjwrLjG-Wm)#f#$=Z#L@>f60{Mt-NN^4^l3t_%X-3S9 z9DB3bH8CWH#IX}hI6^{5f(^vMKtMLO14))8ySaBan}giD(ira%HhX6SVgGvFZ_Z~k z&KJHf->2!WuKKIGUsrWizxU~Dzdi9Z5v>&wKV3w>s-z3)-?{k@ZvK;-|KjGqx%nS% z{+F9ybMt@P{DzyCxOthI-*WQ`8bLlG{8UH3(u51WsPKd7X3C=pFAsd0(73PEgrEB= zO$4~F)4+ z#XRp4p9u4~%P*FSW!!Z8#B!hL5#+rhW=@W!1O1aBZh(l-P@MvNxG7?Qp#l{jdk*QrH zkff$3XHt=978ltTh2GE@YCudAS?)0u{biHM%4~=aD8rtr4S8v-SX!&p~5lOu} zIzDbD^QK8f)=kGYB*x6i&B?^HnN073iZ*xr1ce{ z5M)cNg(PPZyJ8WrrxNiz!;$qnN6kr|KOUXJs+?2qYdRUTwlg4A<`3*UefUv9ePwNdwS$)5una6bK4v|Mpw6yTXn5$V^`XH{ z8wb~I>t5E?wXAo^d%9BZ?PYQ~ugi~hCC%wXGQA-YPfx({bH{JX-1b1`-o0}tzli7Q zN)1>l46e(+H5hf!_IJj}K(_ADBDw z+1}Ly^H1L*Y4}P`CAD8XwYM(>q!flitFyotPu)mTL4uA>7y{eeR~vE`&vsI>?ndHMr~ z)Wo`=`qZve+ML>q&|kmPOpeAD zdl9dtOh=PTkebHKbTl@J!>Z2qOgc6h8IGmW970NC|f?+F>#70*Os>$5? z(EMX}%zysQ%p*@S!#fch8#Ci9UQ;Xv!!>$AF&7Ni=-Of~7_L#I`@#vp@Ln8?$I_Pw zs_0&R4HCs5(vYCqVQkvQnW+&oX&qoVb2u>?oxCQRjB!d-Om})B2KQY3TI@G(^SGJj z99Q4HJTD)q|k<}w`tRA7_NlAA!bQgPr zBPRf9zCUt9>5ry-E#(f@s{ydkAz6m)ken%Jhd}P=5bzxw0&dnJ_M>FCzMq%WTo~&p z;VRy5RL_uwzs8>8#Z>WA(h) zB&?v$D_8+9AEqLs0H%1I`I9=vOQ>KCj*u41h*Mo{mC8<{CQGTb4mL}bQbE8{$X2;( ziOY?py{zwRl$|U?`i0AcCPhptCSt>8f>cZdip>P6n1~vi2~sgRgp^H?)!5t78#Y9z zt#g12x=*YCU=$Y)jxCTA(bR-29jGHi2%XJahBmB6Y=QPB)rFwK3LJkpFGK?NK!!pf zT;Oths9d|i20Qw!A?)Oox^U^fYvJr3SB7)dxgyN_hZY-#7CVF%TY?sQ;NO~3(oI<-01#c~&w>*S{3rV^k%baQ|P=#l^pakGgw z2k07ZwsZ4NZcJ`s+)PnCKr>A3*2xsbB!-Al-q43$Qw3VBN_e4_2@mgS+g( z8Vv5X2Nz&)k3Cq6!N={vg&5q+1F<|nk1??o`xB9GYrnUfX@Gt}U%-hB(Bt%l0R51j z7ql!l4=8>s98Dxm`=WbUG-a;G+evztpzS&2?`=h4`$avNi!NDJkPV{K(`Fp?Vx`lC zAg>G+gd+||0p2cOXT{SZeB!tWSL<4G@p-{T{q-1yFuD}Kbty0}Gii`6r}c7t1-)U2 z-Uu28OQCg)t^|EmiiU0228L~f07p;37E^@{dlPK|b8CvW+4wgx{%YWHN=xx?w()PV z@o#4QwZP**EBrFczKfUfR(e~C-d>{g4pzDjN=N`osRN@c@q<#7l}79dMj1N>3GzfK z_FVAdaU zVZ(MX?A?GNgDF@eM#?L@02A~l+bzE#y_F*VG#`Q7SBm(vd;}6>DPng%0$H;Z@xB~l z38YBUXm7y|M9>TLo}ObQ9<#RO{b;=wvynakIv@eGmu|&Ka5_a>sQd)E9xYPtbW}#l zbx^J-Rt`HVBQrZFyNi{39F>v49h5!A%6*Q?$ny@$-eTp~IVvOnJ1F~#mHQo)Q6C(X zwPNK<9hFf*9F!}ImDf8equ3yji~Z~`R=(0fS)Q$rVQ!QshZR&68`e`EyXNE>^zQQ5ogZLAj<_`5lhRD6bC6wZ+P#j>;&<4$8q|Ss2fJA!)WPOMFYAz?`<(4mlxs&;C_$g1`<>R~F4vAMVS+yGY{yfs9a-80 zea6|2w_H22zVl3#0vzc4V~{^m%7H)#cie zHC@mn&UR|bwIeIPprg)qYRk1F?+1b&b+!{M*N(hJ2!1J0C-|3$2)-#idy?v|Jx2BQ z4YSnPGfPdg)Lh>p=~kw7Nw=Y^Um)prrWZ=OgXvC5hnQX@>BUShk#v~pE=ezCo698K z&HUw(#?+1VD(iF(2Yk8n{qY|KY!>?B|$ge<^ zx<3!pVN?OsVFdIl1_cxdR30c~R09+;YV>Lb)hJN4UXuq}Y}5j@*a+&i3<@extscw+ zg^fCZ!bZJb$Dn!zs?+Q9Kue7VfR-AKdIN(R6{tanbF%x?Z8QPYZ8Ymm3~E-OCcQZi z)MK;&)MK>jEevW^pcWmWn6=bv=m7N^ZMx2&HU-jk#Ap_@%2)uAwYdbhrWeLbL668Kolu(1;^b{x$Z4fWf2~b{|6hEPppnQ}R z-=|ZcH2R1*PG1C7Nq36J>1j}YniaRxGoY&Il-NgK0u`Vii8y^3R5krVOwd90XGi5dDX zeGOEzIEeP^__c_8kn+9(s#QFNuPNUIrHg0qj`1x}ZQ`eN1AQCR0x^fz!S8@-cU908 z^f#aux+?Li{I{SwT;15YzXR3jT15*m%aeGK{(J24QR?$)FHwz;zV|XU`{?`l)5Ocv zD#^+}G!pK_w-S|cFGA0EI1i^Aju=;73AQ4JWC`}z5rY_*#k2D(9lo+iGv4Q+SC8nr zJJ^4*d%#Lj?ZN&DBq%Mo;xPG;H~;vZ%x^W^EYRIbqH)@iqBg^0iIA}@B~AC(qISb; ziM&}6@|e`>FnpE>DNJekY*EP2ERmKKA+brV#YUwiLQYd!m9{8s_$`q?D?+A|T1$;8 zON1n+w5n`Tw-K;JfvhNCi+YS|ON6Yaw5n}UuTf)(YO*5aLOIteqt+534Jxf#ThwO+ zEm1HlLUNQ^Ym7QeguJM<>MT*aV={mvEvG5hR)~+$kLbs6sRxJWC!k#T?}PpHQ@Fc= zmWUnnGf-~2M7))L4$4ELlm0#z%b zR$M{-9Di2Sxvk`14q6$nEzfvv<>#TGrU;fjMQ)b!(@_)EozFzMxz1ZnO;>-O)8%IT nT{JN%a>~D2b@7+hXWS~J#~1O#$Mb)qiy`o1VBkA@Kk5Gu0KUOM literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReportingDetails$Fields.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReportingDetails$Fields.class new file mode 100644 index 0000000000000000000000000000000000000000..d0b1fb0c4b1d16a1315aa6b4c0257d38f5f2b335 GIT binary patch literal 1846 zcmcK4-**#56bJA-q0l9UQcJD06hy4pR%~b~h)|I>H5d&Ln_4}-O*Xg5z+`66>})iD zmQSAJgMWa3l*jLGk}@xPeBmXN&-~td@9tlJ|M4dg?b1(WI!EnU`eBw%1eH`*&_eT- z9LlPerdMryr%dm$pi4DtQZJ1^kvijuW&~Z2?I4k6)G(*k4Ww7r9C2cu$BITbqDWBG zm0li?5-cb~-g>EDWP^w*f-WY~J3Ho_pd}u#>#>PPEoWm+Q|wYqoflO8MQYt-)ARj^ z76e^RInJE&qeE+5F=;X1;MYXk6t`$O9`yI8U+XmO~zY}=U|veF1o%*DtJL01y)a*9|=3YG#VtW|r!r>5^ehBxn9Q1EbeLAAQ=UHW?dfER0Lk&r>xjXS`zqG_ zO!~=jn}SwPaTL1*N%M_v9)nXA7nv!}y@O{+*r@^IGW%M(!Ss+VLD$X_P>j@NthDlK zviaTodeaO&mqzv=<0INZsLlpjh)P7esG+m2Bkr?wsniiYK-6(Dc1G&2%O7}5)h=STfxyIWOJ;~dhh@R%{y@(F-b~mEKyuBY$UC@O+ zWt7LnbL$(Z@|l|LG9uViCeL7p-LdRw^ei-OEcJ;*9^pyn49X(K9`(F}@Tbx+hFwj| zG-WVuBCA!G*^#PtGE^-}xB4G%Mzw1PQkm*;r}po!&mnuMbh`zxi&w?7Tu&1^xW?j-_oX;oC*@AuZDkohRf7D$y() z1-=NE1HS`T0$+mX0$+yb1HTI|1ik_<27V7-3j98NHSjXL68IXt8u&VVBk%|C&A|Ed z-3t5>ycYOl_;%n=;Pt>8@Mhpo;X8ppgSP@#;k$vi;hn(u;N8IY;Rk^~haU$10)7_*Kj@XGgLw;FMPD$q9Uqj1={nQzmxc_D3R~*d!guD eq9*=V#uMl{wTkiYi{B%9iMEWf5*^bETK)$u;hwqx literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReportingDetails.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReportingDetails.class new file mode 100644 index 0000000000000000000000000000000000000000..82a712fe1a337b69489dad8bfdc14425db54e1a3 GIT binary patch literal 22538 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 literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/mapper/TbCompanyInformationReportingDetailsMapper.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/mapper/TbCompanyInformationReportingDetailsMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..7f8dc1b0957fd380bd3018e5dad3349af34dd8ea GIT binary patch literal 539 zcmb7BOG?B*5Un0HaYhBVUcjZbaTgK%AP5m*MqFFTw6TWthyDmTj@NME0X&r0Nd!R< zW)@vl(66fAtM~c!{s91|aFD|+hrJy31xy#*XbRCu0dM7sUI|;$4c=EPS%;#mjlznI z;-!hGx{3mO+eVMIaS|0-D;-{vmv=*XHZ-_sI>st`*3$P-Wl49p`q?;@1{gh;*0{iF z&(bJjjStn;|DbCbh+AKr7XoGr6J0HDxJ`uDY8#22^wI;}cH-=*JO2A9Cq-VmGOoO*_sp>ebYO7I_ z)x59?btfruaBT`$Tdz=)bIRid1$8r&r^5%IY{w{5V5340)s9SeZ62-Hd4M%D<*bjK z_bjX?Hh3p5e+Ny^rUE8&n|!UVxXnzD{=~1S9QR@b9L$o5tkpdSmaRHB#>Rm|5O7#o z-yk`vpA_<-4e1+zt3i4BLvOr2TK9_KTQ|VJGPGNg#ZDg{5JA^A;--eN3aFO NkW1Lkxyb!7z$YVLt)c(` literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/ITbCompanyInformationReportingDetailsService.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/ITbCompanyInformationReportingDetailsService.class new file mode 100644 index 0000000000000000000000000000000000000000..bc062c8c821316a61fbbc948915bb22cd3c54c38 GIT binary patch literal 940 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 I9`q0W7Yjl9-T(jq literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/impl/TbCompanyInformationReportingServiceImpl.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/impl/TbCompanyInformationReportingServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..eb8f6d86453b48d2abe85068c9dcb9057f48be5b GIT binary patch literal 5044 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 literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSynergismParmas.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSynergismParmas.class new file mode 100644 index 0000000000000000000000000000000000000000..9d37d6a8c16983b2ba01ba5c840e3e411f0b526f GIT binary patch literal 9750 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 ZhO<{{3k3=eY8}@9Kt)G$KZeCTn{U;vmCyhH literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreMapper.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..0644157f3b60ce690a7efc43c01d22986ca20240 GIT binary patch literal 424 zcmb7>J5B>Z42C@fvPo#T1s!ha7Eypi6+|()fOl{ruXY}q2hyH{+fZ--4uzOqs3>?8 zeiZhn-@o79UtR&=5>6XfHLz}AqhPJ&;3${K3ZAz;JrNG%4*1aZY;wCb-eO1I%A+r6 z$Bwe3FqDMGM@CB_aKsx*d_T8W^Fl0s6zob8$0;GZ%rQhs94k}yVk*Tu48Hfc>oo28 z*4sdC)Oq4(F-cGS_PSND(Y{2(cQRCo=Rb{qO1PMgP_Ubn|53=-8Nag?oPD=QLAByv X9xW9pII6Lz-+R)bW1`J%3n3TUl M>84}8gxOfDFH1;xT>t<8 literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSpecialCountRecordMapper.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSpecialCountRecordMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..3add15224d70ec6abf3586fc92b04409d2b70f1c GIT binary patch literal 400 zcmb7AJ5B>Z4D}GmCZXX5+yFOpizq;%3PNJJfM?=FUhR%Y^FhiPxDf>h;82KRp+Zok zu>A`Az32D-@%jb;mvGv^qJd=tD+9|;cAj#HY~W?x(=*{feuodXXP4Wx(-AG{C>t#} z?k#0WVJHcmM#hms;D|Sr_b%7 literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSynergismEnterpriseSupervisionMapper.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSynergismEnterpriseSupervisionMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a747514d9cf6f3389f3deef819ebc775124c819f GIT binary patch literal 436 zcmb7ByG{c^4D|BIk+pySs5tKHWaFzKwKW!oN`P0elo|fhG1?(1t|lbc~enK?^-j@NPOtIgE@Z3wshl@&l!qSSS@v-m)z$!D9?vz-QBp zo>I%=mcM&VF0?zAvQ^*L3KmVs$7bn`3^#A|> literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbCompanyInfo.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbCompanyInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..688a76e76510ac0ce5f72483e26e8d57ca0bc7f8 GIT binary patch literal 31087 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 UZ2Yk;`~_V8FOd3FFaP!b0yA{UuK)l5 literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScore.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScore.class new file mode 100644 index 0000000000000000000000000000000000000000..856fa1203219433100b27f0efe499e4a69c6f496 GIT binary patch literal 10162 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 literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScoreDetail.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScoreDetail.class new file mode 100644 index 0000000000000000000000000000000000000000..c01161df0e53fb2c6f87e2a1538f3b69dd75a0e5 GIT binary patch literal 13626 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 EFJEzWQ~&?~ literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSpecialCountRecord.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSpecialCountRecord.class new file mode 100644 index 0000000000000000000000000000000000000000..09b120c9186860ae85cd783fe06e89e92cc5e7de GIT binary patch literal 6858 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 YCe!%W;8){sT7P1S{}o)_5aVC}f2nS8PXGV_ literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbCompanyInfoService.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbCompanyInfoService.class new file mode 100644 index 0000000000000000000000000000000000000000..9265b0f0ced4abd3fc535d74ac90387ad73c6dc4 GIT binary patch literal 390 zcmbVIJ5Izv4E6BYuuDVBC2#><5DgM&rIjec1!e~C%26_o=CdL<;7k-8fI}g?0SXWW zqOkoW+t2U$_3ilu050ITf};xN6)X(Q8{Pz)OC$qNtJZEUb~bGA&b8!oz4Fqdv(oc} z6zoT5GpC^|3F$FYNGt&p#VvcnW%B_pr=?hAWOOBQprqp=Qye1eu=4Vny)xZ4D|rXlF)FHOaa{@8W0jvB#NP=nHikOtKIQxJ`sBuE<(WpI24L^frf^N z!k@y=?>+nD^X(k~F5#?#(+U<9EEOyaZG+7vqJr0TV|P}!Hf;5SYtZLGgDfMkh8ecMoL>zR&xFe7H-h4Gz6DSrQNV}3KV3P5WG4_#USoYF}ylfJ1&kgHG zXY2-Vxa(~gOddHh`D8ptyv1y(t*>hZOT#64yrWjcuKosn>sgJi6g-Vq4pjAH>0k~8 d=f7{K;Nl<0n=4RoBylXS0_jesJcIdEt38;wn$rLP literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreService.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreService.class new file mode 100644 index 0000000000000000000000000000000000000000..ea0640cf15cfcd3472232dfaae4d4bfd42711bce GIT binary patch literal 435 zcmbVJJ5B>Z4D}GmCZXXNRJed{5e*U&QY4B&^fQAKd9^!U%_m|{!d)mh0Ea@%F3?a! z5ryqnJU>6%AD?gU0B{AT6)Y-PRnUIgKfyAdhMh`Yoz06 z$=D6nB#wQXBhpJEA6Yy`3Oja$_xc-LPfa1qz-V)1PqEN_qRm(Px%DqQ?0%L)}52c literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeRuleService.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeRuleService.class new file mode 100644 index 0000000000000000000000000000000000000000..ef35bee3d78b865b2203ef146a1d7997d64ed860 GIT binary patch literal 632 zcmb_a%SyyB6ulY8sWZL?7k-0o%tCh+S0V_70Xw))>Yb9(CZ$P6=L7sH7k+>rC3E{2 zEX=ClB9N0@&MW!({rU!gJD3M>8o*fq=L}{kx)-10LL-BVtLrEeYr(x!IggZeA%khG zQZ1aXXdvDjxQ`N3@XDKw;?i5C(OQn$VO3VjVuguQE0qYRjONntrHsW2JH=NMK9IuB z!}8tyuLKcx5}$3ZTRqjl^}nP+s&Y~ zrOEnv+o-YeRf10{r#3JD%INrS>h>8t4(N1eagU3^ym`xBW(K!4^T5y(1`I~D4(Ruc a#tg=ANN7?c2nZkb@RZKln;9H86DM1|pvy)8 literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSpecialCountRecordService.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSpecialCountRecordService.class new file mode 100644 index 0000000000000000000000000000000000000000..21bff0feb7201afa5f7ac1ef237383ddaf4c2378 GIT binary patch literal 411 zcmbVJOG*Sm3{Cl&o*6eD!4sH;vukl92*RLXdx5H&IHc*WH1!#rQ+OX29>7D1nN~L< zA}*4=#mjq-`A}M%Tw`OCoGrqw)+mg%m+Jzpi2|YiC zg8gVs<}`FAAw6gEiG#;Pal?-AR(~~@GbxrZGTM^ZQxdq(6o<$H7F~W~CrUydLL2bj z>d{kdIQ7@RI9-NGZyHfw)e2TRl<4S&JF$AYjq>f~Y)YiyVT!S%qn|iCPEc_2cWVmH Y|FO1(0tI{W_T@+*-N9TBVKM*JC)jnF_y7O^ literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbCompanyInfoServiceImpl.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbCompanyInfoServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..c677cdd9176673487122968bedbd4a1ea413396f GIT binary patch literal 1019 zcmb_bOK%e~5dPdW4GpEG;aMaOoCqB7g0CX?%hs;+qJ#&BaolP35f$g zfFFgJ-4>LpxuilX&3Inl%+6>3`u*c4fY*4^MGFr*c+|n;4)z2#_O;dVK%musF&0=q za;GG)lW9vIlgY`CR9>>Dm$^cfW94;iUpm+0XB`AivcehZlbdUqr@*BlNV1W9<#ixW zMbr~rsHmNlY|nH-Qk$xjqx{I3O4<3bow(sefv%jza=G!or>K~MRqoTSPic{M&RVJS7`SlXA$%KXM5jUwThS}lx?H1bD5cu@J zuam%_hP>eg5_o@uftHbiXISI+$Ipx(qu`H!mt}`7+1Nn)<#&j0>{!DsmUS5DVUy)n ib8e%H+ibPiuCwl7yU{zi%X*hRyR3VhdyjA*5B>m|y-8#M literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreDetailServiceImpl.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreDetailServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..73590f50963b6c4a1ae4319b7c1c2a9f67909bbc GIT binary patch literal 1166 zcmcgsOK;Oa5T0$ChK53E%B$Qs5je0C;+CpX)q;fNa==keT-NR+OzYjX_7TX>;)K*g ze*ixUb=EB?QZG&q$kL9#@i!06eBR%GE-nG!J-p~c2cGueSr4A~U{AotJ{bxJ0y@Lj z69MZ-_7nwdXJqhm)CIb+Dk}C2GFz%@q8ufB<6IBl$P1WdrPb0!yC7La&!OH+Gyz@h z$fLtD(3DCQ$QsFbP9;jxbtT6|uBLcob*;=I56tj^N}re3;V}k9RenwX#O#rP&75XN zh3HU-lcs8+tfo^NrCt;%ysjeG{t?jlTh*3w?XS|ZR&|Z8MYAUjakNVA+Md}KnMVgJ zW&Jzk*7N1r_H!Fui61Gg`(5kEw3)YOYOVzAeTgQJ#tC_1ksKOh(@L#jjSMsEX411D z%xvnE#_!ghOV1iX8x}Rno8@pL!=?GLur!NC{Yxc}RZ!QRGPOHbRpfSG-3~z$wO?Y7 zxk!r0v%|@UE$G6A0Q@hy6);M5?x<7&U+>Um>-E7)SmP^!|9rk51V20&K6{L0g8{m4 yeu4POjy1T)XZj28xw{CD;mH+>_k{8Q literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreServiceImpl.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..4d3fec693464a8e6bbcf03599ed2f9de68a51a42 GIT binary patch literal 1124 zcmcIjO>Yx15FIy7(}qH6C?DmMu?>!lu}L&**agGPx~cRmxtUI! z()iW7bLrUyXv4fgc_{)@7%pkR*3oPW^{c~W&UoAlswO>Myc}S|r zv!mkOHgsV_z~}$$OaY@b;g(($P~3vw3X;JySmTGz@0nk{;2$r8&mKpzjRCqZFF<_f v#2Re!nf?YCz!sm|?ROXYaEGG~#|d>8?zQ(0+~<3jGrN2b82bQW4<7yj$FX#S literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeRuleServiceImpl.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeRuleServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..42ed97aab8f083cc01b76b7ec0ec34ed2bda958f GIT binary patch literal 6414 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 literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSynergismEnterpriseSupervisionServiceImpl.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSynergismEnterpriseSupervisionServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..d4d4162cbdb921b4c788e5a891f95321e66cc9a4 GIT binary patch literal 1152 zcmcgsJ#Q015PciRF)@J<^BFoS3aL#rK%>%>&8D1uE$S02vAl!BYkpnEsGR5H3UgElCQlE z>F-D{!N-YSHRs+rHFRNu9*(JGZ|cj7LsJKA5V=AZE{ zIa!`+KX=KO^jbG-e!gU0vyo>fYNiBsKO`Hqp$Tt{rEy@bi|wje8N|k=Zg)TM(%KxBNfl<@tiux4zcmwF^!et0N+_SloH4|Jb?gZRpU tHC*Gf`3wxO$>&!4-bEkR+3T?1pl;x1YqxQW?G8tF*bW$bn{Wqre*?uMg7W|X literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/system/enums/RectificationStatusEnum.class b/ruoyi-safecompany/target/classes/com/ruoyi/system/enums/RectificationStatusEnum.class new file mode 100644 index 0000000000000000000000000000000000000000..8c0e950b1b14e4f4a1b7abc6b8194df0e19191e8 GIT binary patch literal 2017 zcmbVMOH&+G6#g#VGu_iPk2ElmXD}pj9)^Jl_yB^y1QZ>Drh!P3O*3||<2=kfQpMhd zWw~&n3#(kYu_{$sagqRPnabLKVU^)GxQd>0yDLn>xWJjJd%Mp)=R4#|oP+vuRbw zppN%-e86v4bPVaRb*yPv7trkWOlHxx1;(E)cNS1Q_7r&_Bl(!sQVdUbwzjkcxva0MtNv`Gi1~FOv*rO&Rwzpj*y2})# z#Q0#US;WzTk6JkRl_tT>J+*DO>QmJniyw8N%E-Z2fEz&>2M1sO^4I>4CI+Q3&BpKU`tAblhxg5AGL*}giqz!u!&}|DMHiWf zm~0$RCht@#(+&IvSGI9p!ENt6%;P(el-=7kCr?uCX~YaN#jnkc(+8)IK5F5)UTz4W zoqCWvwN583%#qxQCZMyAxu5#|g6=jiP;?ff(95W8r34CNlZk)&x2%QNM74-0pqo&8(26Kd;G{$!mPJ?rI$=n< zxG;-#MNxjnG&Mr%3ffQ6&h3X151_r+d0#`>p#Ydf(KJ|pF?gs+a0IX6^&s;X)HC;* z-bW;xd~{Kn9US-`!^y$)l-jHA!bt3*^;<;v*}V6eB7XSi&pO)pg`yNWpr}L`K^F<& z6iMJL2_i|uWwxV)-$lK@L2NT)=|Dbj(sMhMr-*1!gy{d9Fmy~|EU4=?G0VS|-=J<< z?TXc5b?)KBeOS`arCQxqk2FN3;bh2q$?BDcw(##1qts#9n`#|Vdox58+xH=Oe7*+# Z@kMBC25GgGMxj%o{%EE#Lw+r|_%AC}vg!Z; literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/system/until/EntiyUntil.class b/ruoyi-safecompany/target/classes/com/ruoyi/system/until/EntiyUntil.class new file mode 100644 index 0000000000000000000000000000000000000000..d5d6e9fd7750bc8ae5b7e2fa2f1c43b5b80fbe39 GIT binary patch literal 5818 zcmbVQ>vt2!6~Ajs+LgSPWnmjO(1MH8Vp~Qe4GCEu4G>aHZR6TN3VkGNYq1xkm7`q| zOdm;K>6;{drA^!P4Q)!BM`LqN)05MDNzUo#eriAUujrT3^mlh=rIlEW6AqraGxvAz z&fNLUoooO7e}8#{i0+}+(v+cZtMr`=b-m=JpR&qzJBfYpKSd#9 zrtbPq#XjYD&Rp3(=(<(k@?q*Jv}b78dMU1mqPDE;*Ccl3kvzRhR6VzYJ_@(J7T| zmluPLrfPP@s-1_hWYw$+w$~#TRQH{7anf3XMS9j*a4o-HvlZIis@-?<>LWA9=g!&l z{@w%dv2&d}a_7tS5^pJafsaI`mlRUR#jHa5xa-=r!)43!Y%KNOcja_Qy5Sv79iMvS z$mH~i)9}7zE!b1_ib5MAOCNWA8^HutW9-z)i3x}dopmlD4l2TVVtI+BitTxrht~z$ zpO#VV-7(x6DR@d8#!+y99hW~i2MprL~HZdC|XkX~6m7=`a8OfbYuyGm1{uX>Q zj$INY;un~NA>_ei7{#pDwt)T}k#mt(WcU=q4Pdwemc!8JCBDI61`o7`7$+wqwWkfe z&OouxOz=^;?Sbej!(B59*Bwg>c@x+)_6=2I-zodCx>d%Bx9nG5q2V(~Sk=~SAyv34 zRe#a0;dU@%h8lG44yGgHhFTm!wy75rxd70Toq7ePWv(lLg?U34h;S&BVJ?x%#!##v z+SZ6O zW(3lKC^oAPwQNcq3U{CaBr+i^!=-6Mjb&+mRge(h*yp&8e?XxpqlYgkdNXO;5<&zJ z@@4I*TRLW%U3m{nSSQ!lURBK6*IX!$ito;BwO*UY1IhWXrN2sXKAV1G*CQO|!Qc0&7n$>BZr4uY2 zr)ix&&do#gQJqe*bc&m0x}?y?_GkJ~-6@y&+HGvEen*5;`*nJmUO}2FY!lSlAIO4S zf$~*^p|DNfS7^J$fcc3Ls|5YTKoSrGWmu=L(ln}?=9)w@P^d4MLNzcO6g1WB6s!n;`?4WcaE zP6`c?Mt9Ji^g$GzA3{mfK|5#!eHV12_$i#BF-(Fn7_ed!b+Hkdx> zL2!KYD7GdWhGz;&Tq(5t9bOfGCkd|!_SzA6O$C!%Bi@qIo5EKy#yHt-d}pjN?sklE zs@?dmSYxDv7-O~Fcz3KZ@7-j#}5s?ekHe$@5)5jR;OD?W1Cdi{vouFzb( zpY(eDh>W1{Lnq?XaTF)ei^Clp9l1iu#I?~kDf2ufJFkuYjWUykkyYvnh7k0r0vaMAl3Kk~LFCk};{bD1Vi@jiix^fO7|g(ncl%>NUFn>NRzvi$S^sL5hI#W;Z~2Gi!7+C@VqTMm7T4VD~i=0}cm#6|sqi5+Eav`PZIr=75A!TS4_$5eP^jCcAF-SW7 z3puz3shj?dD#(MBMSdM5A5xE!qRmu?lnb)*!?a1&{!3YvF5I92l^(}`O}T;DKuo_^ z5!*r`C2t)+XPi-zOec<9G{Z-)b(rA+MZ7q23YS>IO~+}VL zr4#kd3-kn}1S*R!)02>r$j6KHMMxSgkFdb*u zw7sQTnrCid-t@2*0#0yzD8~hV=`xOx3!T#I)Q>`HAir^yHi51^=<~Ma(5%v6ds!fEnRp;ejXLTn`Wn{6McALv zYv>Cj*XaX6X)sb)K}j~o)t-@9LA_ukS4bT(QY)m580rcI&rI}z?hlHG8Q~|)fmD#i z1AGTnG$(=r{}u>|OAAJUH_977b9x(n7xvi{P literal 0 HcmV?d00001 diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/system/until/NbConstants.class b/ruoyi-safecompany/target/classes/com/ruoyi/system/until/NbConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..77237a725a3dd1b2a86bd025b930ab0da5152648 GIT binary patch literal 1184 zcmah|+fvg|6x|1U38h?G1Vu#!Q2~{D!8=|`IY7sdIB6}`mrPoYB}|&kq$y7S!biWr zSI6-|#|J;a|Ip8HTqgxNvq{#=dbM7+%g$W==;urQ}7(WRVe$BXo>IXt@NFp$Dlc(Gz4_$ek==sGW28a-o_ zDj9a2S2QXzO5$vo8m%!JwaS&}c3)U5BBv0hRWvp+Q3{3`I4?LjBdLj!m88oz~uFy>3B6KbR|9{6VaaAVKlEdgLWb820gdX>2)H} zE_D6K^$JGg=qWpRGHtc#9X88Uf^OIp8?G!pu7oYiFP)_;w2-FtEOFY%(hy~`G%QV4 zni0w{n)`o86h2-Xv#~Fl5mbg^7ovN@^MbdK+rSsb>$XB6eE4?YM|-&M2&WT(Nc4mg zBJ0=tkFY=AeZXB1Vh@p&JFb4Xl#J2`a%IdnjHVXKi^_5xtu4)B*ERePIhvNjaGI9d zVh?$-hr-y8(ilMn&I56LUcnQ{JE7o7;3);41U{wUY2eceJ_CGK!85?;6nq}|f`Vs( z=M*gGzo_7O;7baY^IcZ(Bs4JjU11lYr~uF4lS^NSeTpS6!KPv|MOSgo_5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,company_name,company_type, + social_credit_code,company_nature,establish_date, + business_term_date,register_address,business_status, + legal_person,register_capital,business_license_date, + register_authority,emergency_contact,emergency_contact_phone, + company_address,business_scope,pic_url, + longitude,latitude,province_code, + province_name,city_code,city_name, + area_code,area_name,street_code, + street_name,block_code,block_name, + police_district,police_district_code,belonging_area, + create_time,create_by,update_time, + update_by,is_active,c1, + c2,c3,c4, + c5 + + diff --git a/ruoyi-safecompany/target/classes/mapper/TbSafeCompanyStatisticsScoreDetailMapper.xml b/ruoyi-safecompany/target/classes/mapper/TbSafeCompanyStatisticsScoreDetailMapper.xml new file mode 100644 index 0000000..9c0f16f --- /dev/null +++ b/ruoyi-safecompany/target/classes/mapper/TbSafeCompanyStatisticsScoreDetailMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,safe_rule_id,company_id, + level_index,level_index_one,level_index_two, + level_index_three,score,score_type, + statistics_date,create_time,create_by, + update_time,update_by,is_active, + c1,c2,c3, + c4,c5 + + diff --git a/ruoyi-safecompany/target/classes/mapper/TbSafeCompanyStatisticsScoreMapper.xml b/ruoyi-safecompany/target/classes/mapper/TbSafeCompanyStatisticsScoreMapper.xml new file mode 100644 index 0000000..8bd4271 --- /dev/null +++ b/ruoyi-safecompany/target/classes/mapper/TbSafeCompanyStatisticsScoreMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + id,company_id,score, + score_type,statistics_date,create_time, + create_by,update_time,update_by, + is_active,c1,c2, + c3,c4,c5 + + diff --git a/ruoyi-safecompany/target/classes/mapper/TbSafeRuleMapper.xml b/ruoyi-safecompany/target/classes/mapper/TbSafeRuleMapper.xml new file mode 100644 index 0000000..7e0fc4d --- /dev/null +++ b/ruoyi-safecompany/target/classes/mapper/TbSafeRuleMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + id,level_index_one,level_index_two, + level_index_three,note,level_index, + sort_value,is_range_page,create_time, + create_by,update_time,update_by, + is_active,c1,c2, + c3,c4,c5 + + diff --git a/ruoyi-safecompany/target/classes/mapper/TbSpecialCountRecordMapper.xml b/ruoyi-safecompany/target/classes/mapper/TbSpecialCountRecordMapper.xml new file mode 100644 index 0000000..241eccd --- /dev/null +++ b/ruoyi-safecompany/target/classes/mapper/TbSpecialCountRecordMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + id,company_id,company_name, + count_time,company_gh,company_gh_month, + company_gh_season,company_gh_year,update_time + + diff --git a/ruoyi-safecompany/target/classes/mapper/TbSynergismEnterpriseSupervisionMapper.xml b/ruoyi-safecompany/target/classes/mapper/TbSynergismEnterpriseSupervisionMapper.xml new file mode 100644 index 0000000..4e9249a --- /dev/null +++ b/ruoyi-safecompany/target/classes/mapper/TbSynergismEnterpriseSupervisionMapper.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,enterprise_name,enterprise_type, + enterprise_street,included_supervision_time,checklist_generation_time, + rectification_deadline,rectification_status,control_deduction_item, + continuous_deduction_item,supervision_times,continuous_supervision_times, + element_abnormal_detail,rectification_result,appeal_verification_not_needed, + overdue_reminder,listed_supervision,unit_division_responsibility, + supervision_unit,disposal_method,disposal_requirement, + rectification_requirement,urgency_level,responsible_person, + remarks,create_time,create_by, + update_time,update_by,is_active, + is_focus,definition_id,rectification_result_defult, + rectification_no_num,is_overdue_reminder,is_listed_supervision, + safe_rule_id + + diff --git a/ruoyi-safecompany/target/classes/mapper/system/TbCompanyInformationReportingDetailsMapper.xml b/ruoyi-safecompany/target/classes/mapper/system/TbCompanyInformationReportingDetailsMapper.xml new file mode 100644 index 0000000..96a9509 --- /dev/null +++ b/ruoyi-safecompany/target/classes/mapper/system/TbCompanyInformationReportingDetailsMapper.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/ruoyi-safecompany/target/classes/mapper/system/TbCompanyInformationReportingMapper.xml b/ruoyi-safecompany/target/classes/mapper/system/TbCompanyInformationReportingMapper.xml new file mode 100644 index 0000000..bb49c8b --- /dev/null +++ b/ruoyi-safecompany/target/classes/mapper/system/TbCompanyInformationReportingMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/ruoyi-safecompany/target/maven-archiver/pom.properties b/ruoyi-safecompany/target/maven-archiver/pom.properties new file mode 100644 index 0000000..405e8eb --- /dev/null +++ b/ruoyi-safecompany/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Fri Jul 05 19:29:59 CST 2024 +version=3.8.5 +groupId=com.ruoyi +artifactId=ruoyi-safecompany diff --git a/ruoyi-safecompany/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/ruoyi-safecompany/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..29c83e5 --- /dev/null +++ b/ruoyi-safecompany/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,44 @@ +com\ruoyi\business\enterpriserectification\service\TbSynergismEnterpriseSupervisionService.class +com\ruoyi\business\enterpriserectification\service\TbSafeRuleService.class +com\ruoyi\business\enterpriserectification\pojo\TbCompanyInfo.class +com\ruoyi\business\enterpriserectification\bo\TbSynergismParmas.class +com\ruoyi\business\enterpriserectification\pojo\TbSpecialCountRecord.class +com\ruoyi\system\enums\RectificationStatusEnum.class +com\ruoyi\business\enterpriserectification\bo\TbSafeRuleTwoVo.class +com\ruoyi\business\enterpriserectification\service\TbSafeCompanyStatisticsScoreDetailService.class +com\ruoyi\business\enterpriserectification\service\TbCompanyInfoService.class +com\ruoyi\business\enterpriserectification\mapper\TbSafeCompanyStatisticsScoreDetailMapper.class +com\ruoyi\system\until\NbConstants.class +com\ruoyi\business\enterpriserectification\service\impl\TbSafeCompanyStatisticsScoreDetailServiceImpl.class +com\ruoyi\business\companyInformationReporting\domain\TbCompanyInformationReporting$Fields.class +com\ruoyi\business\enterpriserectification\mapper\TbSafeRuleMapper.class +com\ruoyi\business\enterpriserectification\bo\TbSafeRuleThreeVo.class +com\ruoyi\business\enterpriserectification\pojo\TbSafeCompanyStatisticsScoreDetail.class +com\ruoyi\business\enterpriserectification\pojo\TbSafeRule.class +com\ruoyi\business\companyInformationReporting\domain\TbCompanyInformationReporting.class +com\ruoyi\business\companyInformationReporting\controller\TbCompanyInformationReportingDetailsController.class +com\ruoyi\business\enterpriserectification\service\impl\TbCompanyInfoServiceImpl.class +com\ruoyi\business\companyInformationReporting\service\ITbCompanyInformationReportingService.class +com\ruoyi\business\companyInformationReporting\domain\TbCompanyInformationReportingDetails$Fields.class +com\ruoyi\business\companyInformationReporting\service\impl\TbCompanyInformationReportingDetailsServiceImpl.class +com\ruoyi\business\enterpriserectification\mapper\TbSafeCompanyStatisticsScoreMapper.class +com\ruoyi\business\enterpriserectification\controller\TbCompanyRectifictionController.class +com\ruoyi\business\enterpriserectification\mapper\TbCompanyInfoMapper.class +com\ruoyi\business\companyInformationReporting\service\ITbCompanyInformationReportingDetailsService.class +com\ruoyi\business\enterpriserectification\service\TbSafeCompanyStatisticsScoreService.class +com\ruoyi\system\until\EntiyUntil.class +com\ruoyi\business\enterpriserectification\service\impl\TbSynergismEnterpriseSupervisionServiceImpl.class +com\ruoyi\business\enterpriserectification\service\TbSpecialCountRecordService.class +com\ruoyi\business\companyInformationReporting\mapper\TbCompanyInformationReportingDetailsMapper.class +com\ruoyi\business\enterpriserectification\service\impl\TbSpecialCountRecordServiceImpl.class +com\ruoyi\business\companyInformationReporting\mapper\TbCompanyInformationReportingMapper.class +com\ruoyi\business\enterpriserectification\service\impl\TbSafeRuleServiceImpl.class +com\ruoyi\business\enterpriserectification\pojo\TbSynergismEnterpriseSupervision.class +com\ruoyi\business\enterpriserectification\mapper\TbSynergismEnterpriseSupervisionMapper.class +com\ruoyi\business\enterpriserectification\pojo\TbSafeCompanyStatisticsScore.class +com\ruoyi\business\companyInformationReporting\service\impl\TbCompanyInformationReportingServiceImpl.class +com\ruoyi\business\enterpriserectification\bo\TbSafeRuleOneVo.class +com\ruoyi\business\enterpriserectification\service\impl\TbSafeCompanyStatisticsScoreServiceImpl.class +com\ruoyi\business\companyInformationReporting\controller\TbCompanyInformationReportingController.class +com\ruoyi\business\enterpriserectification\mapper\TbSpecialCountRecordMapper.class +com\ruoyi\business\companyInformationReporting\domain\TbCompanyInformationReportingDetails.class diff --git a/ruoyi-safecompany/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/ruoyi-safecompany/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..80377da --- /dev/null +++ b/ruoyi-safecompany/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,42 @@ +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\pojo\TbSynergismEnterpriseSupervision.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\impl\TbSafeCompanyStatisticsScoreServiceImpl.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\mapper\TbSafeCompanyStatisticsScoreMapper.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\system\until\NbConstants.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\service\ITbCompanyInformationReportingService.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\mapper\TbSafeRuleMapper.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\bo\TbSafeRuleOneVo.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\controller\TbCompanyInformationReportingController.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\TbSafeCompanyStatisticsScoreDetailService.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\TbCompanyInfoService.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\service\impl\TbCompanyInformationReportingDetailsServiceImpl.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\pojo\TbCompanyInfo.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\TbSpecialCountRecordService.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\system\enums\RectificationStatusEnum.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\controller\TbCompanyRectifictionController.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\system\until\EntiyUntil.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\mapper\TbCompanyInformationReportingDetailsMapper.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\TbSafeRuleService.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\TbSynergismEnterpriseSupervisionService.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\service\ITbCompanyInformationReportingDetailsService.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\impl\TbCompanyInfoServiceImpl.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\impl\TbSafeCompanyStatisticsScoreDetailServiceImpl.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\controller\TbCompanyInformationReportingDetailsController.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\pojo\TbSafeCompanyStatisticsScoreDetail.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\domain\TbCompanyInformationReportingDetails.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\mapper\TbCompanyInformationReportingMapper.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\bo\TbSafeRuleTwoVo.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\pojo\TbSpecialCountRecord.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\impl\TbSafeRuleServiceImpl.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\service\impl\TbCompanyInformationReportingServiceImpl.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\mapper\TbCompanyInfoMapper.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\mapper\TbSpecialCountRecordMapper.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\impl\TbSpecialCountRecordServiceImpl.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\mapper\TbSynergismEnterpriseSupervisionMapper.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\TbSafeCompanyStatisticsScoreService.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\bo\TbSafeRuleThreeVo.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\bo\TbSynergismParmas.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\impl\TbSynergismEnterpriseSupervisionServiceImpl.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\pojo\TbSafeCompanyStatisticsScore.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\mapper\TbSafeCompanyStatisticsScoreDetailMapper.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\domain\TbCompanyInformationReporting.java +F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\pojo\TbSafeRule.java diff --git a/ruoyi-safecompany/target/ruoyi-safecompany-3.8.5.jar b/ruoyi-safecompany/target/ruoyi-safecompany-3.8.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..5a982597773813f57abae270400a1d6270e6edd5 GIT binary patch literal 97561 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

(_smOOOdWb)D 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

k6gN?(CVHu!? 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 literal 0 HcmV?d00001 diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml index e019b34..fa67de7 100644 --- a/ruoyi-system/pom.xml +++ b/ruoyi-system/pom.xml @@ -41,6 +41,7 @@ compile + \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java index 76e1c79..8b78eff 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java @@ -124,4 +124,6 @@ public interface SysUserMapper * @return 结果 */ public SysUser checkEmailUnique(String email); + + SysUser selectUserByPhonenumber(String phoneNumber); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index 10bc2ab..2e32f57 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -203,4 +203,14 @@ public interface ISysUserService * @return 结果 */ public String importUser(List userList, Boolean isUpdateSupport, String operName); + + /** + * 根据手机号查询用户 + * @param phoneNumber 手机号 + * @author 杜俊岩 + * @param[1] null + * @throws + * @time 2024/7/5 15:01 + */ + public SysUser selectUserByPhonenumber(String phoneNumber); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index 41bd2db..e49677d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -547,4 +547,9 @@ public class SysUserServiceImpl implements ISysUserService } return successMsg.toString(); } + + @Override + public SysUser selectUserByPhonenumber(String phoneNumber) { + return userMapper.selectUserByPhonenumber(phoneNumber); + } } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index fb44dc0..40d4bab 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -25,6 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -49,7 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phone_number, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.tenant_id, u.user_type, + select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phone_number, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.tenant_id, u.user_type,u.company_name, 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 @@ -152,6 +153,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + insert into sys_user( diff --git a/ruoyi-ui-vue3/.env.development b/ruoyi-ui-vue3/.env.development index af9ba00..7b59769 100644 --- a/ruoyi-ui-vue3/.env.development +++ b/ruoyi-ui-vue3/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 若依管理系统 +VITE_APP_TITLE = 安惠商企管理系统 # 开发环境配置 VITE_APP_ENV = 'development' diff --git a/ruoyi-ui-vue3/index.html b/ruoyi-ui-vue3/index.html index d20d02e..73b634a 100644 --- a/ruoyi-ui-vue3/index.html +++ b/ruoyi-ui-vue3/index.html @@ -7,7 +7,7 @@ - 若依管理系统 + 安惠商企管理系统