From 927912eaebeb410593fc8c3f0ab5ca6267f24c4d Mon Sep 17 00:00:00 2001
From: Kris <2893855659@qq.com>
Date: Wed, 12 Feb 2025 11:18:43 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=90feat=E3=80=91=E6=95=B4=E5=90=88?=
=?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=B4=A8=E9=87=8F=E3=80=81=E6=95=B0=E6=8D=AE?=
=?UTF-8?q?=E6=A0=87=E5=87=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../quality/CheckReportController.java | 115 +++++++++++
.../quality/CheckRuleController.java | 140 ++++++++++++++
.../quality/RuleItemController.java | 90 +++++++++
.../quality/RuleLevelController.java | 87 +++++++++
.../quality/RuleTypeController.java | 97 ++++++++++
.../standard/ContrastController.java | 165 ++++++++++++++++
.../standard/ContrastDictController.java | 137 +++++++++++++
.../controller/standard/DictController.java | 148 ++++++++++++++
.../standard/DictMappingController.java | 45 +++++
.../controller/standard/InnerController.java | 11 ++
.../controller/standard/TypeController.java | 148 ++++++++++++++
.../java/com/czsj/quality/dto/Accuracy.java | 19 ++
.../com/czsj/quality/dto/CheckRuleDto.java | 64 ++++++
.../java/com/czsj/quality/dto/Consistent.java | 19 ++
.../java/com/czsj/quality/dto/Relevance.java | 21 ++
.../java/com/czsj/quality/dto/RuleConfig.java | 35 ++++
.../com/czsj/quality/dto/ScheduleLogDto.java | 41 ++++
.../java/com/czsj/quality/dto/Timeliness.java | 19 ++
.../quality/entity/CheckReportEntity.java | 93 +++++++++
.../czsj/quality/entity/CheckRuleEntity.java | 118 ++++++++++++
.../czsj/quality/entity/DataReportEntity.java | 28 +++
.../czsj/quality/entity/RuleItemEntity.java | 46 +++++
.../czsj/quality/entity/RuleLevelEntity.java | 41 ++++
.../czsj/quality/entity/RuleTypeEntity.java | 41 ++++
.../quality/entity/RuleTypeReportEntity.java | 14 ++
.../quality/entity/ScheduleJobEntity.java | 61 ++++++
.../quality/entity/ScheduleLogEntity.java | 72 +++++++
.../java/com/czsj/quality/enums/RuleItem.java | 36 ++++
.../czsj/quality/mapper/CheckReportDao.java | 34 ++++
.../com/czsj/quality/mapper/CheckRuleDao.java | 34 ++++
.../com/czsj/quality/mapper/RuleItemDao.java | 18 ++
.../com/czsj/quality/mapper/RuleLevelDao.java | 19 ++
.../com/czsj/quality/mapper/RuleTypeDao.java | 23 +++
.../czsj/quality/mapper/ScheduleJobDao.java | 19 ++
.../czsj/quality/mapper/ScheduleLogDao.java | 25 +++
.../quality/mapstruct/CheckReportMapper.java | 34 ++++
.../quality/mapstruct/CheckRuleMapper.java | 21 ++
.../quality/mapstruct/RuleItemMapper.java | 34 ++++
.../quality/mapstruct/RuleLevelMapper.java | 34 ++++
.../quality/mapstruct/RuleTypeMapper.java | 35 ++++
.../quality/mapstruct/ScheduleJobMapper.java | 34 ++++
.../quality/mapstruct/ScheduleLogMapper.java | 34 ++++
.../mapstruct/impl/CheckReportMapperImpl.java | 51 +++++
.../mapstruct/impl/CheckRuleMapperImpl.java | 148 ++++++++++++++
.../mapstruct/impl/RuleItemMapperImpl.java | 44 +++++
.../mapstruct/impl/RuleLevelMapperImpl.java | 43 +++++
.../mapstruct/impl/RuleTypeMapperImpl.java | 43 +++++
.../mapstruct/impl/ScheduleJobMapperImpl.java | 48 +++++
.../mapstruct/impl/ScheduleLogMapperImpl.java | 51 +++++
.../czsj/quality/query/CheckReportQuery.java | 31 +++
.../czsj/quality/query/CheckRuleQuery.java | 26 +++
.../com/czsj/quality/query/RuleItemQuery.java | 22 +++
.../czsj/quality/query/RuleLevelQuery.java | 20 ++
.../com/czsj/quality/query/RuleTypeQuery.java | 22 +++
.../czsj/quality/query/ScheduleJobQuery.java | 20 ++
.../czsj/quality/query/ScheduleLogQuery.java | 23 +++
.../quality/schedule/CheckRuleFactory.java | 21 ++
.../schedule/rules/AccuracyLengthRule.java | 29 +++
.../schedule/rules/ConsistentRule.java | 29 +++
.../quality/schedule/rules/IntegrityRule.java | 26 +++
.../quality/schedule/rules/RelevanceRule.java | 35 ++++
.../czsj/quality/schedule/rules/RuleItem.java | 14 ++
.../schedule/rules/RuleItemRegistry.java | 22 +++
.../schedule/rules/TimelinessRule.java | 43 +++++
.../quality/schedule/rules/UniqueRule.java | 27 +++
.../quality/service/CheckReportService.java | 37 ++++
.../quality/service/CheckRuleService.java | 29 +++
.../czsj/quality/service/RuleItemService.java | 18 ++
.../quality/service/RuleLevelService.java | 17 ++
.../czsj/quality/service/RuleTypeService.java | 23 +++
.../service/impl/CheckReportServiceImpl.java | 102 ++++++++++
.../service/impl/CheckRuleServiceImpl.java | 131 +++++++++++++
.../service/impl/RuleItemServiceImpl.java | 36 ++++
.../service/impl/RuleLevelServiceImpl.java | 37 ++++
.../service/impl/RuleTypeServiceImpl.java | 46 +++++
.../com/czsj/quality/vo/CheckReportVo.java | 34 ++++
.../java/com/czsj/quality/vo/CheckRuleVo.java | 44 +++++
.../java/com/czsj/quality/vo/RuleItemVo.java | 24 +++
.../java/com/czsj/quality/vo/RuleLevelVo.java | 23 +++
.../java/com/czsj/quality/vo/RuleTypeVo.java | 23 +++
.../com/czsj/quality/vo/ScheduleJobVo.java | 27 +++
.../com/czsj/quality/vo/ScheduleLogVo.java | 33 ++++
.../czsj/standard/dto/ContrastDictDto.java | 40 ++++
.../com/czsj/standard/dto/ContrastDto.java | 48 +++++
.../java/com/czsj/standard/dto/DictDto.java | 43 +++++
.../java/com/czsj/standard/dto/Endpoint.java | 18 ++
.../czsj/standard/dto/ManualMappingDto.java | 20 ++
.../java/com/czsj/standard/dto/TypeDto.java | 33 ++++
.../standard/entity/ContrastDictEntity.java | 88 +++++++++
.../czsj/standard/entity/ContrastEntity.java | 99 ++++++++++
.../com/czsj/standard/entity/DictEntity.java | 52 +++++
.../com/czsj/standard/entity/TypeEntity.java | 34 ++++
.../com/czsj/standard/mapper/ContrastDao.java | 29 +++
.../czsj/standard/mapper/ContrastDictDao.java | 30 +++
.../com/czsj/standard/mapper/DictDao.java | 29 +++
.../com/czsj/standard/mapper/TypeDao.java | 19 ++
.../mapstruct/ContrastDictMapper.java | 21 ++
.../standard/mapstruct/ContrastMapper.java | 37 ++++
.../czsj/standard/mapstruct/DictMapper.java | 20 ++
.../czsj/standard/mapstruct/TypeMapper.java | 21 ++
.../impl/ContrastDictMapperImpl.java | 126 ++++++++++++
.../mapstruct/impl/ContrastMapperImpl.java | 182 ++++++++++++++++++
.../mapstruct/impl/DictMapperImpl.java | 120 ++++++++++++
.../mapstruct/impl/TypeMapperImpl.java | 110 +++++++++++
.../standard/query/ContrastDictQuery.java | 24 +++
.../czsj/standard/query/ContrastQuery.java | 24 +++
.../com/czsj/standard/query/DictQuery.java | 24 +++
.../com/czsj/standard/query/TypeQuery.java | 23 +++
.../standard/service/ContrastDictService.java | 30 +++
.../standard/service/ContrastService.java | 36 ++++
.../standard/service/DictMappingService.java | 17 ++
.../czsj/standard/service/DictService.java | 30 +++
.../czsj/standard/service/TypeService.java | 28 +++
.../service/impl/ContrastDictServiceImpl.java | 73 +++++++
.../service/impl/ContrastServiceImpl.java | 129 +++++++++++++
.../service/impl/DictMappingServiceImpl.java | 125 ++++++++++++
.../service/impl/DictServiceImpl.java | 91 +++++++++
.../service/impl/TypeServiceImpl.java | 73 +++++++
.../com/czsj/standard/vo/ContrastDictVo.java | 38 ++++
.../czsj/standard/vo/ContrastStatisticVo.java | 46 +++++
.../com/czsj/standard/vo/ContrastTreeVo.java | 21 ++
.../java/com/czsj/standard/vo/ContrastVo.java | 39 ++++
.../java/com/czsj/standard/vo/DictVo.java | 32 +++
.../java/com/czsj/standard/vo/TypeVo.java | 29 +++
.../mapper/quality/CheckReportMapper.xml | 98 ++++++++++
.../mapper/quality/CheckRuleMapper.xml | 88 +++++++++
.../mapper/quality/RuleItemMapper.xml | 19 ++
.../mapper/quality/RuleLevelMapper.xml | 18 ++
.../mapper/quality/RuleTypeMapper.xml | 30 +++
.../mapper/quality/ScheduleJobMapper.xml | 23 +++
.../mapper/quality/ScheduleLogMapper.xml | 45 +++++
.../mapper/standard/ContrastDictMapper.xml | 78 ++++++++
.../mapper/standard/ContrastMapper.xml | 81 ++++++++
.../resources/mapper/standard/DictMapper.xml | 64 ++++++
.../resources/mapper/standard/TypeMapper.xml | 31 +++
packages/czsj-datax-executor_3.8.8_1.tar.gz | Bin 40166894 -> 40165632 bytes
136 files changed, 6597 insertions(+)
create mode 100644 czsj-admin/src/main/java/com/czsj/web/controller/quality/CheckReportController.java
create mode 100644 czsj-admin/src/main/java/com/czsj/web/controller/quality/CheckRuleController.java
create mode 100644 czsj-admin/src/main/java/com/czsj/web/controller/quality/RuleItemController.java
create mode 100644 czsj-admin/src/main/java/com/czsj/web/controller/quality/RuleLevelController.java
create mode 100644 czsj-admin/src/main/java/com/czsj/web/controller/quality/RuleTypeController.java
create mode 100644 czsj-admin/src/main/java/com/czsj/web/controller/standard/ContrastController.java
create mode 100644 czsj-admin/src/main/java/com/czsj/web/controller/standard/ContrastDictController.java
create mode 100644 czsj-admin/src/main/java/com/czsj/web/controller/standard/DictController.java
create mode 100644 czsj-admin/src/main/java/com/czsj/web/controller/standard/DictMappingController.java
create mode 100644 czsj-admin/src/main/java/com/czsj/web/controller/standard/InnerController.java
create mode 100644 czsj-admin/src/main/java/com/czsj/web/controller/standard/TypeController.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/dto/Accuracy.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/dto/CheckRuleDto.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/dto/Consistent.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/dto/Relevance.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/dto/RuleConfig.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/dto/ScheduleLogDto.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/dto/Timeliness.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/entity/CheckReportEntity.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/entity/CheckRuleEntity.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/entity/DataReportEntity.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/entity/RuleItemEntity.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/entity/RuleLevelEntity.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/entity/RuleTypeEntity.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/entity/RuleTypeReportEntity.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/entity/ScheduleJobEntity.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/entity/ScheduleLogEntity.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/enums/RuleItem.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapper/CheckReportDao.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapper/CheckRuleDao.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapper/RuleItemDao.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapper/RuleLevelDao.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapper/RuleTypeDao.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapper/ScheduleJobDao.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapper/ScheduleLogDao.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapstruct/CheckReportMapper.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapstruct/CheckRuleMapper.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapstruct/RuleItemMapper.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapstruct/RuleLevelMapper.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapstruct/RuleTypeMapper.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapstruct/ScheduleJobMapper.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapstruct/ScheduleLogMapper.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/CheckReportMapperImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/CheckRuleMapperImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/RuleItemMapperImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/RuleLevelMapperImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/RuleTypeMapperImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/ScheduleJobMapperImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/ScheduleLogMapperImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/query/CheckReportQuery.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/query/CheckRuleQuery.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/query/RuleItemQuery.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/query/RuleLevelQuery.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/query/RuleTypeQuery.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/query/ScheduleJobQuery.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/query/ScheduleLogQuery.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/schedule/CheckRuleFactory.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/schedule/rules/AccuracyLengthRule.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/schedule/rules/ConsistentRule.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/schedule/rules/IntegrityRule.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/schedule/rules/RelevanceRule.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/schedule/rules/RuleItem.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/schedule/rules/RuleItemRegistry.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/schedule/rules/TimelinessRule.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/schedule/rules/UniqueRule.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/service/CheckReportService.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/service/CheckRuleService.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/service/RuleItemService.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/service/RuleLevelService.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/service/RuleTypeService.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/service/impl/CheckReportServiceImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/service/impl/CheckRuleServiceImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/service/impl/RuleItemServiceImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/service/impl/RuleLevelServiceImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/service/impl/RuleTypeServiceImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/vo/CheckReportVo.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/vo/CheckRuleVo.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/vo/RuleItemVo.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/vo/RuleLevelVo.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/vo/RuleTypeVo.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/vo/ScheduleJobVo.java
create mode 100644 czsj-system/src/main/java/com/czsj/quality/vo/ScheduleLogVo.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/dto/ContrastDictDto.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/dto/ContrastDto.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/dto/DictDto.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/dto/Endpoint.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/dto/ManualMappingDto.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/dto/TypeDto.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/entity/ContrastDictEntity.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/entity/ContrastEntity.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/entity/DictEntity.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/entity/TypeEntity.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/mapper/ContrastDao.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/mapper/ContrastDictDao.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/mapper/DictDao.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/mapper/TypeDao.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/mapstruct/ContrastDictMapper.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/mapstruct/ContrastMapper.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/mapstruct/DictMapper.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/mapstruct/TypeMapper.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/ContrastDictMapperImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/ContrastMapperImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/DictMapperImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/TypeMapperImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/query/ContrastDictQuery.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/query/ContrastQuery.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/query/DictQuery.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/query/TypeQuery.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/service/ContrastDictService.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/service/ContrastService.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/service/DictMappingService.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/service/DictService.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/service/TypeService.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/service/impl/ContrastDictServiceImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/service/impl/ContrastServiceImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/service/impl/DictMappingServiceImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/service/impl/DictServiceImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/service/impl/TypeServiceImpl.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/vo/ContrastDictVo.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/vo/ContrastStatisticVo.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/vo/ContrastTreeVo.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/vo/ContrastVo.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/vo/DictVo.java
create mode 100644 czsj-system/src/main/java/com/czsj/standard/vo/TypeVo.java
create mode 100644 czsj-system/src/main/resources/mapper/quality/CheckReportMapper.xml
create mode 100644 czsj-system/src/main/resources/mapper/quality/CheckRuleMapper.xml
create mode 100644 czsj-system/src/main/resources/mapper/quality/RuleItemMapper.xml
create mode 100644 czsj-system/src/main/resources/mapper/quality/RuleLevelMapper.xml
create mode 100644 czsj-system/src/main/resources/mapper/quality/RuleTypeMapper.xml
create mode 100644 czsj-system/src/main/resources/mapper/quality/ScheduleJobMapper.xml
create mode 100644 czsj-system/src/main/resources/mapper/quality/ScheduleLogMapper.xml
create mode 100644 czsj-system/src/main/resources/mapper/standard/ContrastDictMapper.xml
create mode 100644 czsj-system/src/main/resources/mapper/standard/ContrastMapper.xml
create mode 100644 czsj-system/src/main/resources/mapper/standard/DictMapper.xml
create mode 100644 czsj-system/src/main/resources/mapper/standard/TypeMapper.xml
diff --git a/czsj-admin/src/main/java/com/czsj/web/controller/quality/CheckReportController.java b/czsj-admin/src/main/java/com/czsj/web/controller/quality/CheckReportController.java
new file mode 100644
index 0000000..ec25fe1
--- /dev/null
+++ b/czsj-admin/src/main/java/com/czsj/web/controller/quality/CheckReportController.java
@@ -0,0 +1,115 @@
+package com.czsj.web.controller.quality;
+
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.czsj.common.core.controller.BaseController;
+import com.czsj.common.core.domain.AjaxResult;
+import com.czsj.core.database.core.JsonPage;
+import com.czsj.quality.entity.CheckReportEntity;
+import com.czsj.quality.entity.DataReportEntity;
+import com.czsj.quality.mapstruct.CheckReportMapper;
+import com.czsj.quality.query.CheckReportQuery;
+import com.czsj.quality.service.CheckReportService;
+import com.czsj.quality.vo.CheckReportVo;
+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.PathVariable;
+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.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 核查报告信息表 前端控制器
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Api(tags = {"核查报告信息表"})
+@RestController
+@RequestMapping("/quality/checkReports")
+public class CheckReportController extends BaseController {
+
+ @Autowired
+ private CheckReportService checkReportService;
+
+ @Autowired
+ private CheckReportMapper checkReportMapper;
+
+ /**
+ * 通过ID查询信息
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "获取详细信息", notes = "根据url的id来获取详细信息")
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
+ @GetMapping("/{id}")
+ public AjaxResult getCheckReportById(@PathVariable String id) {
+ CheckReportEntity checkReportEntity = checkReportService.getCheckReportById(id);
+ return AjaxResult.success(checkReportMapper.toVO(checkReportEntity));
+ }
+
+ /**
+ * 分页查询信息
+ *
+ * @param checkReportQuery
+ * @return
+ */
+ @ApiOperation(value = "分页查询", notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "checkReportQuery", value = "查询实体checkReportQuery", required = true, dataTypeClass = CheckReportQuery.class)
+ })
+ @GetMapping("/page")
+ public AjaxResult getCheckReportPage(CheckReportQuery checkReportQuery) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq(StrUtil.isNotBlank(checkReportQuery.getRuleTypeId()), "r.rule_type_id", checkReportQuery.getRuleTypeId());
+ queryWrapper.like(StrUtil.isNotBlank(checkReportQuery.getRuleName()), "r.rule_name", checkReportQuery.getRuleName());
+ queryWrapper.like(StrUtil.isNotBlank(checkReportQuery.getRuleSource()), "r.rule_source", checkReportQuery.getRuleSource());
+ queryWrapper.like(StrUtil.isNotBlank(checkReportQuery.getRuleTable()), "r.rule_table", checkReportQuery.getRuleTable());
+ queryWrapper.like(StrUtil.isNotBlank(checkReportQuery.getRuleColumn()), "r.rule_column", checkReportQuery.getRuleColumn());
+ // 确定唯一核查报告
+ queryWrapper.apply("c.check_batch = r.last_check_batch");
+ IPage page = checkReportService.page(new Page<>(checkReportQuery.getPageNum(), checkReportQuery.getPageSize()), queryWrapper);
+ List collect = page.getRecords().stream().map(checkReportMapper::toVO).collect(Collectors.toList());
+ JsonPage jsonPage = new JsonPage<>(page.getCurrent(), page.getSize(), page.getTotal(), collect);
+ return AjaxResult.success(jsonPage);
+ }
+
+ @GetMapping("/getReportBySource")
+ public AjaxResult getReportBySource(CheckReportQuery checkReportQuery) {
+ LocalDate checkDate = checkReportQuery.getCheckDate();
+ String date = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(checkDate);
+ List list = checkReportService.getReportBySource(date);
+ return AjaxResult.success(list);
+ }
+
+ @GetMapping("/getReportByType")
+ public AjaxResult getReportByType(CheckReportQuery checkReportQuery) {
+ LocalDate checkDate = checkReportQuery.getCheckDate();
+ String date = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(checkDate);
+ List list = checkReportService.getReportByType(date);
+ return AjaxResult.success(list);
+ }
+
+ @GetMapping("/getReportDetail")
+ public AjaxResult getReportDetail(CheckReportQuery checkReportQuery) {
+ LocalDate checkDate = checkReportQuery.getCheckDate();
+ String date = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(checkDate);
+ Map map = checkReportService.getReportDetail(date);
+ return AjaxResult.success(map);
+ }
+}
diff --git a/czsj-admin/src/main/java/com/czsj/web/controller/quality/CheckRuleController.java b/czsj-admin/src/main/java/com/czsj/web/controller/quality/CheckRuleController.java
new file mode 100644
index 0000000..0002e97
--- /dev/null
+++ b/czsj-admin/src/main/java/com/czsj/web/controller/quality/CheckRuleController.java
@@ -0,0 +1,140 @@
+package com.czsj.web.controller.quality;
+
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.czsj.common.core.controller.BaseController;
+import com.czsj.common.core.domain.AjaxResult;
+import com.czsj.core.database.core.JsonPage;
+import com.czsj.metadata.validate.ValidationGroups;
+import com.czsj.quality.dto.CheckRuleDto;
+import com.czsj.quality.entity.CheckRuleEntity;
+import com.czsj.quality.mapstruct.CheckRuleMapper;
+import com.czsj.quality.query.CheckRuleQuery;
+import com.czsj.quality.service.CheckRuleService;
+import com.czsj.quality.vo.CheckRuleVo;
+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.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 核查规则信息表 前端控制器
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Api(tags = {"核查规则信息表"})
+@RestController
+@RequestMapping("/quality/checkRules")
+public class CheckRuleController extends BaseController {
+
+ @Autowired
+ private CheckRuleService checkRuleService;
+
+ @Autowired
+ private CheckRuleMapper checkRuleMapper;
+
+ /**
+ * 通过ID查询信息
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "获取详细信息", notes = "根据url的id来获取详细信息")
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
+ @GetMapping("/{id}")
+ public AjaxResult getCheckRuleById(@PathVariable String id) {
+ CheckRuleEntity checkRuleEntity = checkRuleService.getCheckRuleById(id);
+ return AjaxResult.success(checkRuleMapper.toVO(checkRuleEntity));
+ }
+
+ /**
+ * 分页查询信息
+ *
+ * @param checkRuleQuery
+ * @return
+ */
+ @ApiOperation(value = "分页查询", notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "checkRuleQuery", value = "查询实体checkRuleQuery", required = true, dataTypeClass = CheckRuleQuery.class)
+ })
+ @GetMapping("/page")
+ public AjaxResult getCheckRulePage(CheckRuleQuery checkRuleQuery) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq(StrUtil.isNotBlank(checkRuleQuery.getRuleTypeId()), "r.rule_type_id", checkRuleQuery.getRuleTypeId());
+ queryWrapper.like(StrUtil.isNotBlank(checkRuleQuery.getRuleName()), "r.rule_name", checkRuleQuery.getRuleName());
+ queryWrapper.like(StrUtil.isNotBlank(checkRuleQuery.getRuleSource()), "r.rule_source", checkRuleQuery.getRuleSource());
+ queryWrapper.like(StrUtil.isNotBlank(checkRuleQuery.getRuleTable()), "r.rule_table", checkRuleQuery.getRuleTable());
+ queryWrapper.like(StrUtil.isNotBlank(checkRuleQuery.getRuleColumn()), "r.rule_column", checkRuleQuery.getRuleColumn());
+ IPage page = checkRuleService.page(new Page<>(checkRuleQuery.getPageNum(), checkRuleQuery.getPageSize()), queryWrapper);
+ List collect = page.getRecords().stream().map(checkRuleMapper::toVO).collect(Collectors.toList());
+ JsonPage jsonPage = new JsonPage<>(page.getCurrent(), page.getSize(), page.getTotal(), collect);
+ return AjaxResult.success(jsonPage);
+ }
+
+ /**
+ * 添加
+ * @param checkRule
+ * @return
+ */
+ @ApiOperation(value = "添加信息", notes = "根据checkRule对象添加信息")
+ @ApiImplicitParam(name = "checkRule", value = "详细实体checkRule", required = true, dataType = "CheckRuleDto")
+ @PostMapping()
+ public AjaxResult saveCheckRule(@RequestBody @Validated({ValidationGroups.Insert.class}) CheckRuleDto checkRule) {
+ CheckRuleEntity checkRuleEntity = checkRuleService.saveCheckRule(checkRule);
+ return AjaxResult.success(checkRuleMapper.toVO(checkRuleEntity));
+ }
+
+ /**
+ * 修改
+ * @param checkRule
+ * @return
+ */
+ @ApiOperation(value = "修改信息", notes = "根据url的id来指定修改对象,并根据传过来的信息来修改详细信息")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path"),
+ @ApiImplicitParam(name = "checkRule", value = "详细实体checkRule", required = true, dataType = "CheckRuleDto")
+ })
+ @PutMapping("/{id}")
+ public AjaxResult updateCheckRule(@PathVariable String id, @RequestBody @Validated({ValidationGroups.Update.class}) CheckRuleDto checkRule) {
+ CheckRuleEntity checkRuleEntity = checkRuleService.updateCheckRule(checkRule);
+ return AjaxResult.success(checkRuleMapper.toVO(checkRuleEntity));
+ }
+
+ /**
+ * 删除
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "删除", notes = "根据url的id来指定删除对象")
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
+ @DeleteMapping("/{id}")
+ public AjaxResult deleteCheckRuleById(@PathVariable String id) {
+ checkRuleService.deleteCheckRuleById(id);
+ return AjaxResult.success();
+ }
+
+ /**
+ * 批量删除
+ * @param ids
+ * @return
+ */
+ @ApiOperation(value = "批量删除", notes = "根据url的ids来批量删除对象")
+ @ApiImplicitParam(name = "ids", value = "ID集合", required = true, dataType = "List", paramType = "path")
+ @DeleteMapping("/batch/{ids}")
+ public AjaxResult deleteCheckRuleBatch(@PathVariable List ids) {
+ checkRuleService.deleteCheckRuleBatch(ids);
+ return AjaxResult.success();
+ }
+}
diff --git a/czsj-admin/src/main/java/com/czsj/web/controller/quality/RuleItemController.java b/czsj-admin/src/main/java/com/czsj/web/controller/quality/RuleItemController.java
new file mode 100644
index 0000000..b98adf4
--- /dev/null
+++ b/czsj-admin/src/main/java/com/czsj/web/controller/quality/RuleItemController.java
@@ -0,0 +1,90 @@
+package com.czsj.web.controller.quality;
+
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.czsj.common.core.controller.BaseController;
+import com.czsj.common.core.domain.AjaxResult;
+import com.czsj.core.database.core.JsonPage;
+import com.czsj.quality.entity.RuleItemEntity;
+import com.czsj.quality.mapstruct.RuleItemMapper;
+import com.czsj.quality.query.RuleItemQuery;
+import com.czsj.quality.service.RuleItemService;
+import com.czsj.quality.vo.RuleItemVo;
+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.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 规则核查项信息表 前端控制器
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-15
+ */
+@Api(tags = {"规则核查项信息表"})
+@RestController
+@RequestMapping("/quality/ruleItems")
+public class RuleItemController extends BaseController {
+
+ @Autowired
+ private RuleItemService ruleItemService;
+
+ @Autowired
+ private RuleItemMapper ruleItemMapper;
+
+ /**
+ * 通过ID查询信息
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "获取详细信息", notes = "根据url的id来获取详细信息")
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
+ @GetMapping("/{id}")
+ public AjaxResult getRuleItemById(@PathVariable String id) {
+ RuleItemEntity ruleItemEntity = ruleItemService.getRuleItemById(id);
+ return AjaxResult.success(ruleItemMapper.toVO(ruleItemEntity));
+ }
+
+ @ApiOperation(value = "获取列表", notes = "")
+ @GetMapping("/list")
+ public AjaxResult getRuleTypeList(RuleItemQuery ruleItemQuery) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq(StrUtil.isNotBlank(ruleItemQuery.getRuleTypeId()), "rule_type_id", ruleItemQuery.getRuleTypeId());
+ List list = ruleItemService.list(queryWrapper);
+ return AjaxResult.success(list);
+ }
+
+ /**
+ * 分页查询信息
+ *
+ * @param ruleItemQuery
+ * @return
+ */
+ @ApiOperation(value = "分页查询", notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "ruleItemQuery", value = "查询实体ruleItemQuery", required = true, dataTypeClass = RuleItemQuery.class)
+ })
+ @GetMapping("/page")
+ public AjaxResult getRuleItemPage(RuleItemQuery ruleItemQuery) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq(StrUtil.isNotBlank(ruleItemQuery.getRuleTypeId()), "rule_type_id", ruleItemQuery.getRuleTypeId());
+ IPage page = ruleItemService.page(new Page<>(ruleItemQuery.getPageNum(), ruleItemQuery.getPageSize()), queryWrapper);
+ List collect = page.getRecords().stream().map(ruleItemMapper::toVO).collect(Collectors.toList());
+ JsonPage jsonPage = new JsonPage<>(page.getCurrent(), page.getSize(), page.getTotal(), collect);
+ return AjaxResult.success(jsonPage);
+ }
+}
diff --git a/czsj-admin/src/main/java/com/czsj/web/controller/quality/RuleLevelController.java b/czsj-admin/src/main/java/com/czsj/web/controller/quality/RuleLevelController.java
new file mode 100644
index 0000000..6735182
--- /dev/null
+++ b/czsj-admin/src/main/java/com/czsj/web/controller/quality/RuleLevelController.java
@@ -0,0 +1,87 @@
+package com.czsj.web.controller.quality;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.czsj.common.core.controller.BaseController;
+import com.czsj.common.core.domain.AjaxResult;
+import com.czsj.core.database.core.JsonPage;
+import com.czsj.quality.entity.RuleLevelEntity;
+import com.czsj.quality.mapstruct.RuleLevelMapper;
+import com.czsj.quality.query.RuleLevelQuery;
+import com.czsj.quality.service.RuleLevelService;
+import com.czsj.quality.vo.RuleLevelVo;
+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.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 规则级别信息表 前端控制器
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-14
+ */
+@Api(tags = {"规则级别信息表"})
+@RestController
+@RequestMapping("/quality/ruleLevels")
+public class RuleLevelController extends BaseController {
+
+ @Autowired
+ private RuleLevelService ruleLevelService;
+
+ @Autowired
+ private RuleLevelMapper ruleLevelMapper;
+
+ /**
+ * 通过ID查询信息
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "获取详细信息", notes = "根据url的id来获取详细信息")
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
+ @GetMapping("/{id}")
+ public AjaxResult getRuleLevelById(@PathVariable String id) {
+ RuleLevelEntity ruleLevelEntity = ruleLevelService.getRuleLevelById(id);
+ return AjaxResult.success(ruleLevelMapper.toVO(ruleLevelEntity));
+ }
+
+ @ApiOperation(value = "获取列表", notes = "")
+ @GetMapping("/list")
+ public AjaxResult getRuleTypeList() {
+ List list = ruleLevelService.list(Wrappers.emptyWrapper());
+ return AjaxResult.success(list);
+ }
+
+ /**
+ * 分页查询信息
+ *
+ * @param ruleLevelQuery
+ * @return
+ */
+ @ApiOperation(value = "分页查询", notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "ruleLevelQuery", value = "查询实体ruleLevelQuery", required = true, dataTypeClass = RuleLevelQuery.class)
+ })
+ @GetMapping("/page")
+ public AjaxResult getRuleLevelPage(RuleLevelQuery ruleLevelQuery) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ IPage page = ruleLevelService.page(new Page<>(ruleLevelQuery.getPageNum(), ruleLevelQuery.getPageSize()), queryWrapper);
+ List collect = page.getRecords().stream().map(ruleLevelMapper::toVO).collect(Collectors.toList());
+ JsonPage jsonPage = new JsonPage<>(page.getCurrent(), page.getSize(), page.getTotal(), collect);
+ return AjaxResult.success(jsonPage);
+ }
+}
diff --git a/czsj-admin/src/main/java/com/czsj/web/controller/quality/RuleTypeController.java b/czsj-admin/src/main/java/com/czsj/web/controller/quality/RuleTypeController.java
new file mode 100644
index 0000000..3e64a85
--- /dev/null
+++ b/czsj-admin/src/main/java/com/czsj/web/controller/quality/RuleTypeController.java
@@ -0,0 +1,97 @@
+package com.czsj.web.controller.quality;
+
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.czsj.common.core.controller.BaseController;
+import com.czsj.common.core.domain.AjaxResult;
+import com.czsj.core.database.core.JsonPage;
+import com.czsj.quality.entity.RuleTypeEntity;
+import com.czsj.quality.entity.RuleTypeReportEntity;
+import com.czsj.quality.mapstruct.RuleTypeMapper;
+import com.czsj.quality.query.RuleTypeQuery;
+import com.czsj.quality.service.RuleTypeService;
+import com.czsj.quality.vo.RuleTypeVo;
+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.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 规则类型信息表 前端控制器
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Api(tags = {"规则类型信息表"})
+@RestController
+@RequestMapping("/quality/ruleTypes")
+public class RuleTypeController extends BaseController {
+
+ @Autowired
+ private RuleTypeService ruleTypeService;
+
+ @Autowired
+ private RuleTypeMapper ruleTypeMapper;
+
+ /**
+ * 通过ID查询信息
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "获取详细信息", notes = "根据url的id来获取详细信息")
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
+ @GetMapping("/{id}")
+ public AjaxResult getRuleTypeById(@PathVariable String id) {
+ RuleTypeEntity ruleTypeEntity = ruleTypeService.getRuleTypeById(id);
+ return AjaxResult.success(ruleTypeMapper.toVO(ruleTypeEntity));
+ }
+
+ @ApiOperation(value = "获取列表", notes = "")
+ @GetMapping("/list")
+ public AjaxResult getRuleTypeList() {
+ List list = ruleTypeService.list(Wrappers.emptyWrapper());
+ return AjaxResult.success(list);
+ }
+
+ @ApiOperation(value = "获取列表", notes = "")
+ @GetMapping("/report/list")
+ public AjaxResult getRuleTypeListForReport() {
+ List list = ruleTypeService.getRuleTypeListForReport();
+ return AjaxResult.success(list);
+ }
+
+ /**
+ * 分页查询信息
+ *
+ * @param ruleTypeQuery
+ * @return
+ */
+ @ApiOperation(value = "分页查询", notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "ruleTypeQuery", value = "查询实体ruleTypeQuery", required = true, dataTypeClass = RuleTypeQuery.class)
+ })
+ @GetMapping("/page")
+ public AjaxResult getRuleTypePage(RuleTypeQuery ruleTypeQuery) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.like(StrUtil.isNotBlank(ruleTypeQuery.getName()), "name", ruleTypeQuery.getName());
+ IPage page = ruleTypeService.page(new Page<>(ruleTypeQuery.getPageNum(), ruleTypeQuery.getPageSize()), queryWrapper);
+ List collect = page.getRecords().stream().map(ruleTypeMapper::toVO).collect(Collectors.toList());
+ JsonPage jsonPage = new JsonPage<>(page.getCurrent(), page.getSize(), page.getTotal(), collect);
+ return AjaxResult.success(jsonPage);
+ }
+}
diff --git a/czsj-admin/src/main/java/com/czsj/web/controller/standard/ContrastController.java b/czsj-admin/src/main/java/com/czsj/web/controller/standard/ContrastController.java
new file mode 100644
index 0000000..46c1fe2
--- /dev/null
+++ b/czsj-admin/src/main/java/com/czsj/web/controller/standard/ContrastController.java
@@ -0,0 +1,165 @@
+package com.czsj.web.controller.standard;
+
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.czsj.common.core.controller.BaseController;
+import com.czsj.common.core.domain.AjaxResult;
+import com.czsj.core.database.core.JsonPage;
+import com.czsj.metadata.validate.ValidationGroups;
+import com.czsj.standard.dto.ContrastDto;
+import com.czsj.standard.entity.ContrastEntity;
+import com.czsj.standard.mapstruct.ContrastMapper;
+import com.czsj.standard.query.ContrastQuery;
+import com.czsj.standard.service.ContrastService;
+import com.czsj.standard.vo.ContrastStatisticVo;
+import com.czsj.standard.vo.ContrastTreeVo;
+import com.czsj.standard.vo.ContrastVo;
+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.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 对照表信息表 前端控制器
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Api(tags = {"对照表信息表"})
+@RestController
+@RequestMapping("/standard/contrasts")
+public class ContrastController extends BaseController {
+
+ @Autowired
+ private ContrastService contrastService;
+
+ @Autowired
+ private ContrastMapper contrastMapper;
+
+ /**
+ * 通过ID查询信息
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "获取详细信息", notes = "根据url的id来获取详细信息")
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
+ @GetMapping("/{id}")
+ public AjaxResult getContrastById(@PathVariable String id) {
+ ContrastEntity contrastEntity = contrastService.getContrastById(id);
+ return AjaxResult.success(contrastMapper.toVO(contrastEntity));
+ }
+
+ /**
+ * 分页查询信息
+ *
+ * @param contrastQuery
+ * @return
+ */
+ @ApiOperation(value = "分页查询", notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "contrastQuery", value = "查询实体contrastQuery", required = true, dataTypeClass = ContrastQuery.class)
+ })
+ @GetMapping("/page")
+ public AjaxResult getContrastPage(ContrastQuery contrastQuery) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ IPage page = contrastService.page(new Page<>(contrastQuery.getPageNum(), contrastQuery.getPageSize()), queryWrapper);
+ List collect = page.getRecords().stream().map(contrastMapper::toVO).collect(Collectors.toList());
+ JsonPage jsonPage = new JsonPage<>(page.getCurrent(), page.getSize(), page.getTotal(), collect);
+ return AjaxResult.success(jsonPage);
+ }
+
+ /**
+ * 添加
+ * @param contrast
+ * @return
+ */
+ @ApiOperation(value = "添加信息", notes = "根据contrast对象添加信息")
+ @ApiImplicitParam(name = "contrast", value = "详细实体contrast", required = true, dataType = "ContrastDto")
+ @PostMapping()
+ public AjaxResult saveContrast(@RequestBody @Validated({ValidationGroups.Insert.class}) ContrastDto contrast) {
+ ContrastEntity contrastEntity = contrastService.saveContrast(contrast);
+ return AjaxResult.success(contrastMapper.toVO(contrastEntity));
+ }
+
+ /**
+ * 修改
+ * @param contrast
+ * @return
+ */
+ @ApiOperation(value = "修改信息", notes = "根据url的id来指定修改对象,并根据传过来的信息来修改详细信息")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path"),
+ @ApiImplicitParam(name = "contrast", value = "详细实体contrast", required = true, dataType = "ContrastDto")
+ })
+ @PutMapping("/{id}")
+ public AjaxResult updateContrast(@PathVariable String id, @RequestBody @Validated({ValidationGroups.Update.class}) ContrastDto contrast) {
+ ContrastEntity contrastEntity = contrastService.updateContrast(contrast);
+ return AjaxResult.success(contrastMapper.toVO(contrastEntity));
+ }
+
+ /**
+ * 删除
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "删除", notes = "根据url的id来指定删除对象")
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
+ @DeleteMapping("/{id}")
+ public AjaxResult deleteContrastById(@PathVariable String id) {
+ contrastService.deleteContrastById(id);
+ return AjaxResult.success();
+ }
+
+ /**
+ * 批量删除
+ * @param ids
+ * @return
+ */
+ @ApiOperation(value = "批量删除角色", notes = "根据url的ids来批量删除对象")
+ @ApiImplicitParam(name = "ids", value = "ID集合", required = true, dataType = "List", paramType = "path")
+ @DeleteMapping("/batch/{ids}")
+ public AjaxResult deleteContrastBatch(@PathVariable List ids) {
+ contrastService.deleteContrastBatch(ids);
+ return AjaxResult.success();
+ }
+
+ @GetMapping("/tree")
+ public AjaxResult getContrastTree() {
+ List list = contrastService.getContrastTree();
+ return AjaxResult.success(list);
+ }
+
+ /**
+ * 分页查询统计信息
+ *
+ * @param contrastQuery
+ * @return
+ */
+ @ApiOperation(value = "分页查询", notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "contrastQuery", value = "查询实体contrastQuery", required = true, dataTypeClass = ContrastQuery.class)
+ })
+ @GetMapping("/stat")
+ public AjaxResult contrastStat(ContrastQuery contrastQuery) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.like(StrUtil.isNotBlank(contrastQuery.getSourceName()), "c.source_name", contrastQuery.getSourceName());
+ queryWrapper.like(StrUtil.isNotBlank(contrastQuery.getTableName()), "c.table_name", contrastQuery.getTableName());
+ queryWrapper.like(StrUtil.isNotBlank(contrastQuery.getColumnName()), "c.column_name", contrastQuery.getColumnName());
+ IPage page = contrastService.statistic(new Page<>(contrastQuery.getPageNum(), contrastQuery.getPageSize()), queryWrapper);
+ List collect = page.getRecords().stream().map(contrastMapper::toSVO).collect(Collectors.toList());
+ JsonPage jsonPage = new JsonPage<>(page.getCurrent(), page.getSize(), page.getTotal(), collect);
+ return AjaxResult.success(jsonPage);
+ }
+}
diff --git a/czsj-admin/src/main/java/com/czsj/web/controller/standard/ContrastDictController.java b/czsj-admin/src/main/java/com/czsj/web/controller/standard/ContrastDictController.java
new file mode 100644
index 0000000..02dce05
--- /dev/null
+++ b/czsj-admin/src/main/java/com/czsj/web/controller/standard/ContrastDictController.java
@@ -0,0 +1,137 @@
+package com.czsj.web.controller.standard;
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.czsj.common.core.controller.BaseController;
+import com.czsj.common.core.domain.AjaxResult;
+import com.czsj.core.database.core.JsonPage;
+import com.czsj.metadata.validate.ValidationGroups;
+import com.czsj.standard.dto.ContrastDictDto;
+import com.czsj.standard.entity.ContrastDictEntity;
+import com.czsj.standard.mapstruct.ContrastDictMapper;
+import com.czsj.standard.query.ContrastDictQuery;
+import com.czsj.standard.service.ContrastDictService;
+import com.czsj.standard.vo.ContrastDictVo;
+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.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 字典对照信息表 前端控制器
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Api(tags = {"字典对照信息表"})
+@RestController
+@RequestMapping("/standard/contrastDicts")
+public class ContrastDictController extends BaseController {
+
+ @Autowired
+ private ContrastDictService contrastDictService;
+
+ @Autowired
+ private ContrastDictMapper contrastDictMapper;
+
+ /**
+ * 通过ID查询信息
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "获取详细信息", notes = "根据url的id来获取详细信息")
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
+ @GetMapping("/{id}")
+ public AjaxResult getContrastDictById(@PathVariable String id) {
+ ContrastDictEntity contrastDictEntity = contrastDictService.getContrastDictById(id);
+ return AjaxResult.success(contrastDictMapper.toVO(contrastDictEntity));
+ }
+
+ /**
+ * 分页查询信息
+ *
+ * @param contrastDictQuery
+ * @return
+ */
+ @ApiOperation(value = "分页查询", notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "contrastDictQuery", value = "查询实体contrastDictQuery", required = true, dataTypeClass = ContrastDictQuery.class)
+ })
+ @GetMapping("/page")
+ public AjaxResult getContrastDictPage(ContrastDictQuery contrastDictQuery) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq(StrUtil.isNotBlank(contrastDictQuery.getContrastId()), "d.contrast_id", contrastDictQuery.getContrastId());
+ queryWrapper.like(StrUtil.isNotBlank(contrastDictQuery.getColCode()), "d.col_code", contrastDictQuery.getColCode());
+ queryWrapper.like(StrUtil.isNotBlank(contrastDictQuery.getColName()), "d.col_name", contrastDictQuery.getColName());
+ IPage page = contrastDictService.page(new Page<>(contrastDictQuery.getPageNum(), contrastDictQuery.getPageSize()), queryWrapper);
+ List collect = page.getRecords().stream().map(contrastDictMapper::toVO).collect(Collectors.toList());
+ JsonPage jsonPage = new JsonPage<>(page.getCurrent(), page.getSize(), page.getTotal(), collect);
+ return AjaxResult.success(jsonPage);
+ }
+
+ /**
+ * 添加
+ * @param contrastDict
+ * @return
+ */
+ @ApiOperation(value = "添加信息", notes = "根据contrastDict对象添加信息")
+ @ApiImplicitParam(name = "contrastDict", value = "详细实体contrastDict", required = true, dataType = "ContrastDictDto")
+ @PostMapping()
+ public AjaxResult saveContrastDict(@RequestBody @Validated({ValidationGroups.Insert.class}) ContrastDictDto contrastDict) {
+ ContrastDictEntity contrastDictEntity = contrastDictService.saveContrastDict(contrastDict);
+ return AjaxResult.success(contrastDictMapper.toVO(contrastDictEntity));
+ }
+
+ /**
+ * 修改
+ * @param contrastDict
+ * @return
+ */
+ @ApiOperation(value = "修改信息", notes = "根据url的id来指定修改对象,并根据传过来的信息来修改详细信息")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path"),
+ @ApiImplicitParam(name = "contrastDict", value = "详细实体contrastDict", required = true, dataType = "ContrastDictDto")
+ })
+ @PutMapping("/{id}")
+ public AjaxResult updateContrastDict(@PathVariable String id, @RequestBody @Validated({ValidationGroups.Update.class}) ContrastDictDto contrastDict) {
+ ContrastDictEntity contrastDictEntity = contrastDictService.updateContrastDict(contrastDict);
+ return AjaxResult.success(contrastDictMapper.toVO(contrastDictEntity));
+ }
+
+ /**
+ * 删除
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "删除", notes = "根据url的id来指定删除对象")
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
+ @DeleteMapping("/{id}")
+ public AjaxResult deleteContrastDictById(@PathVariable String id) {
+ contrastDictService.deleteContrastDictById(id);
+ return AjaxResult.success();
+ }
+
+ /**
+ * 批量删除
+ * @param ids
+ * @return
+ */
+ @ApiOperation(value = "批量删除角色", notes = "根据url的ids来批量删除对象")
+ @ApiImplicitParam(name = "ids", value = "ID集合", required = true, dataType = "List", paramType = "path")
+ @DeleteMapping("/batch/{ids}")
+ public AjaxResult deleteContrastDictBatch(@PathVariable List ids) {
+ contrastDictService.deleteContrastDictBatch(ids);
+ return AjaxResult.success();
+ }
+}
diff --git a/czsj-admin/src/main/java/com/czsj/web/controller/standard/DictController.java b/czsj-admin/src/main/java/com/czsj/web/controller/standard/DictController.java
new file mode 100644
index 0000000..d6701de
--- /dev/null
+++ b/czsj-admin/src/main/java/com/czsj/web/controller/standard/DictController.java
@@ -0,0 +1,148 @@
+package com.czsj.web.controller.standard;
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.czsj.common.core.controller.BaseController;
+import com.czsj.common.core.domain.AjaxResult;
+import com.czsj.core.database.core.JsonPage;
+import com.czsj.metadata.validate.ValidationGroups;
+import com.czsj.standard.dto.DictDto;
+import com.czsj.standard.entity.DictEntity;
+import com.czsj.standard.mapstruct.DictMapper;
+import com.czsj.standard.query.DictQuery;
+import com.czsj.standard.service.DictService;
+import com.czsj.standard.vo.DictVo;
+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.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 数据标准字典表 前端控制器
+ *
+ *
+ * @author yuwei
+ * @since 2020-08-26
+ */
+@Api(tags = {"数据标准字典表"})
+@RestController
+@RequestMapping("/standard/dicts")
+public class DictController extends BaseController {
+
+ @Autowired
+ private DictService dictService;
+
+ @Autowired
+ private DictMapper dictMapper;
+
+ /**
+ * 通过ID查询信息
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "获取详细信息", notes = "根据url的id来获取详细信息")
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
+ @GetMapping("/{id}")
+ public AjaxResult getDictById(@PathVariable String id) {
+ DictEntity dictEntity = dictService.getDictById(id);
+ return AjaxResult.success(dictMapper.toVO(dictEntity));
+ }
+
+ /**
+ * 分页查询信息
+ *
+ * @param dictQuery
+ * @return
+ */
+ @ApiOperation(value = "分页查询", notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "dictQuery", value = "查询实体dictQuery", required = true, dataTypeClass = DictQuery.class)
+ })
+ @GetMapping("/page")
+ public AjaxResult getDictPage(DictQuery dictQuery) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq(StrUtil.isNotBlank(dictQuery.getTypeId()), "d.type_id", dictQuery.getTypeId());
+ queryWrapper.like(StrUtil.isNotBlank(dictQuery.getGbCode()), "d.gb_code", dictQuery.getGbCode());
+ queryWrapper.like(StrUtil.isNotBlank(dictQuery.getGbName()), "d.gb_name", dictQuery.getGbName());
+ IPage page = dictService.page(new Page<>(dictQuery.getPageNum(), dictQuery.getPageSize()), queryWrapper);
+ List collect = page.getRecords().stream().map(dictMapper::toVO).collect(Collectors.toList());
+ JsonPage jsonPage = new JsonPage<>(page.getCurrent(), page.getSize(), page.getTotal(), collect);
+ return AjaxResult.success(jsonPage);
+ }
+
+ /**
+ * 添加
+ * @param dict
+ * @return
+ */
+ @ApiOperation(value = "添加信息", notes = "根据dict对象添加信息")
+ @ApiImplicitParam(name = "dict", value = "详细实体dict", required = true, dataType = "DictDto")
+ @PostMapping()
+ public AjaxResult saveDict(@RequestBody @Validated({ValidationGroups.Insert.class}) DictDto dict) {
+ DictEntity dictEntity = dictService.saveDict(dict);
+ return AjaxResult.success(dictMapper.toVO(dictEntity));
+ }
+
+ /**
+ * 修改
+ * @param dict
+ * @return
+ */
+ @ApiOperation(value = "修改信息", notes = "根据url的id来指定修改对象,并根据传过来的信息来修改详细信息")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path"),
+ @ApiImplicitParam(name = "dict", value = "详细实体dict", required = true, dataType = "DictDto")
+ })
+ @PutMapping("/{id}")
+ public AjaxResult updateDict(@PathVariable String id, @RequestBody @Validated({ValidationGroups.Update.class}) DictDto dict) {
+ DictEntity dictEntity = dictService.updateDict(dict);
+ return AjaxResult.success(dictMapper.toVO(dictEntity));
+ }
+
+ /**
+ * 删除
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "删除", notes = "根据url的id来指定删除对象")
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
+ @DeleteMapping("/{id}")
+ public AjaxResult deleteDictById(@PathVariable String id) {
+ dictService.deleteDictById(id);
+ return AjaxResult.success();
+ }
+
+ /**
+ * 批量删除
+ * @param ids
+ * @return
+ */
+ @ApiOperation(value = "批量删除角色", notes = "根据url的ids来批量删除对象")
+ @ApiImplicitParam(name = "ids", value = "ID集合", required = true, dataType = "List", paramType = "path")
+ @DeleteMapping("/batch/{ids}")
+ public AjaxResult deleteDictBatch(@PathVariable List ids) {
+ dictService.deleteDictBatch(ids);
+ return AjaxResult.success();
+ }
+
+ /**
+ * 刷新字典缓存
+ *
+ * @return
+ */
+ @GetMapping("/refresh")
+ public AjaxResult refreshDict() {
+ dictService.refreshDict();
+ return AjaxResult.success();
+ }
+}
diff --git a/czsj-admin/src/main/java/com/czsj/web/controller/standard/DictMappingController.java b/czsj-admin/src/main/java/com/czsj/web/controller/standard/DictMappingController.java
new file mode 100644
index 0000000..550590c
--- /dev/null
+++ b/czsj-admin/src/main/java/com/czsj/web/controller/standard/DictMappingController.java
@@ -0,0 +1,45 @@
+package com.czsj.web.controller.standard;
+
+import com.czsj.common.core.controller.BaseController;
+import com.czsj.common.core.domain.AjaxResult;
+import com.czsj.standard.dto.ManualMappingDto;
+import com.czsj.standard.service.DictMappingService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+@Api(tags = {"字典对照映射"})
+@RestController
+@RequestMapping("/standard/mappings")
+public class DictMappingController extends BaseController {
+
+ @Autowired
+ private DictMappingService dictMappingService;
+
+ @GetMapping("/{id}")
+ public AjaxResult getDictMapping(@PathVariable String id) {
+ Map map = dictMappingService.getDictMapping(id);
+ return AjaxResult.success(map);
+ }
+
+ @PostMapping("/auto/{id}")
+ public AjaxResult dictAutoMapping(@PathVariable String id) {
+ dictMappingService.dictAutoMapping(id);
+ return AjaxResult.success();
+ }
+
+ @PostMapping("/manual")
+ public AjaxResult dictManualMapping(@RequestBody @Validated ManualMappingDto manualMappingDto) {
+ dictMappingService.dictManualMapping(manualMappingDto);
+ return AjaxResult.success();
+ }
+
+ @PostMapping("/cancel/{id}")
+ public AjaxResult dictCancelMapping(@PathVariable String id) {
+ dictMappingService.dictCancelMapping(id);
+ return AjaxResult.success();
+ }
+}
diff --git a/czsj-admin/src/main/java/com/czsj/web/controller/standard/InnerController.java b/czsj-admin/src/main/java/com/czsj/web/controller/standard/InnerController.java
new file mode 100644
index 0000000..0f9e472
--- /dev/null
+++ b/czsj-admin/src/main/java/com/czsj/web/controller/standard/InnerController.java
@@ -0,0 +1,11 @@
+package com.czsj.web.controller.standard;
+
+import com.czsj.common.core.controller.BaseController;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/standard/inner")
+public class InnerController extends BaseController {
+
+}
diff --git a/czsj-admin/src/main/java/com/czsj/web/controller/standard/TypeController.java b/czsj-admin/src/main/java/com/czsj/web/controller/standard/TypeController.java
new file mode 100644
index 0000000..9aa75ca
--- /dev/null
+++ b/czsj-admin/src/main/java/com/czsj/web/controller/standard/TypeController.java
@@ -0,0 +1,148 @@
+package com.czsj.web.controller.standard;
+
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.czsj.common.core.controller.BaseController;
+import com.czsj.common.core.domain.AjaxResult;
+import com.czsj.core.database.core.DataConstant;
+import com.czsj.core.database.core.JsonPage;
+import com.czsj.metadata.validate.ValidationGroups;
+import com.czsj.standard.dto.TypeDto;
+import com.czsj.standard.entity.TypeEntity;
+import com.czsj.standard.mapstruct.TypeMapper;
+import com.czsj.standard.query.TypeQuery;
+import com.czsj.standard.service.TypeService;
+import com.czsj.standard.vo.TypeVo;
+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.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 数据标准类别表 前端控制器
+ *
+ *
+ * @author yuwei
+ * @since 2020-08-26
+ */
+@Api(tags = {"标准类别信息表"})
+@RestController
+@RequestMapping("/standard/types")
+public class TypeController extends BaseController {
+
+ @Autowired
+ private TypeService typeService;
+
+ @Autowired
+ private TypeMapper typeMapper;
+
+ /**
+ * 通过ID查询信息
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "获取详细信息", notes = "根据url的id来获取详细信息")
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
+ @GetMapping("/{id}")
+ public AjaxResult getTypeById(@PathVariable String id) {
+ TypeEntity typeEntity = typeService.getTypeById(id);
+ return AjaxResult.success(typeMapper.toVO(typeEntity));
+ }
+
+ @ApiOperation(value = "获取列表", notes = "")
+ @GetMapping("/list")
+ public AjaxResult getTypeList() {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("status", DataConstant.EnableState.ENABLE.getKey());
+ List list = typeService.list(queryWrapper);
+ List collect = list.stream().map(typeMapper::toVO).collect(Collectors.toList());
+ return AjaxResult.success(collect);
+ }
+
+ /**
+ * 分页查询信息
+ *
+ * @param typeQuery
+ * @return
+ */
+ @ApiOperation(value = "分页查询", notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "typeQuery", value = "查询实体typeQuery", required = true, dataTypeClass = TypeQuery.class)
+ })
+ @GetMapping("/page")
+ public AjaxResult getTypePage(TypeQuery typeQuery) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.like(StrUtil.isNotBlank(typeQuery.getGbTypeCode()), "gb_type_code", typeQuery.getGbTypeCode());
+ queryWrapper.like(StrUtil.isNotBlank(typeQuery.getGbTypeName()), "gb_type_name", typeQuery.getGbTypeName());
+ IPage page = typeService.page(new Page<>(typeQuery.getPageNum(), typeQuery.getPageSize()), queryWrapper);
+ List collect = page.getRecords().stream().map(typeMapper::toVO).collect(Collectors.toList());
+ JsonPage jsonPage = new JsonPage<>(page.getCurrent(), page.getSize(), page.getTotal(), collect);
+ return AjaxResult.success(jsonPage);
+ }
+
+ /**
+ * 添加
+ * @param type
+ * @return
+ */
+ @ApiOperation(value = "添加信息", notes = "根据type对象添加信息")
+ @ApiImplicitParam(name = "type", value = "详细实体type", required = true, dataType = "TypeDto")
+ @PostMapping()
+ public AjaxResult saveType(@RequestBody @Validated({ValidationGroups.Insert.class}) TypeDto type) {
+ TypeEntity typeEntity = typeService.saveType(type);
+ return AjaxResult.success(typeMapper.toVO(typeEntity));
+ }
+
+ /**
+ * 修改
+ * @param type
+ * @return
+ */
+ @ApiOperation(value = "修改信息", notes = "根据url的id来指定修改对象,并根据传过来的信息来修改详细信息")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path"),
+ @ApiImplicitParam(name = "type", value = "详细实体type", required = true, dataType = "TypeDto")
+ })
+ @PutMapping("/{id}")
+ public AjaxResult updateType(@PathVariable String id, @RequestBody @Validated({ValidationGroups.Update.class}) TypeDto type) {
+ TypeEntity typeEntity = typeService.updateType(type);
+ return AjaxResult.success(typeMapper.toVO(typeEntity));
+ }
+
+ /**
+ * 删除
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "删除", notes = "根据url的id来指定删除对象")
+ @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
+ @DeleteMapping("/{id}")
+ public AjaxResult deleteTypeById(@PathVariable String id) {
+ typeService.deleteTypeById(id);
+ return AjaxResult.success();
+ }
+
+ /**
+ * 批量删除
+ * @param ids
+ * @return
+ */
+ @ApiOperation(value = "批量删除角色", notes = "根据url的ids来批量删除对象")
+ @ApiImplicitParam(name = "ids", value = "ID集合", required = true, dataType = "List", paramType = "path")
+ @DeleteMapping("/batch/{ids}")
+ public AjaxResult deleteTypeBatch(@PathVariable List ids) {
+ typeService.deleteTypeBatch(ids);
+ return AjaxResult.success();
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/dto/Accuracy.java b/czsj-system/src/main/java/com/czsj/quality/dto/Accuracy.java
new file mode 100644
index 0000000..7f55b34
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/dto/Accuracy.java
@@ -0,0 +1,19 @@
+package com.czsj.quality.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 准确性
+ */
+@Data
+public class Accuracy implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 最大长度
+ */
+ private Integer maxLength;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/dto/CheckRuleDto.java b/czsj-system/src/main/java/com/czsj/quality/dto/CheckRuleDto.java
new file mode 100644
index 0000000..1bf09e2
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/dto/CheckRuleDto.java
@@ -0,0 +1,64 @@
+package com.czsj.quality.dto;
+
+import com.czsj.metadata.validate.ValidationGroups;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ *
+ * 核查规则信息表 实体DTO
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@ApiModel(value = "核查规则信息表Model")
+@Data
+public class CheckRuleDto implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ @ApiModelProperty(value = "主键ID")
+ @NotBlank(message = "主键ID不能为空", groups = {ValidationGroups.Update.class})
+ private String id;
+ @ApiModelProperty(value = "规则名称")
+ private String ruleName;
+ @ApiModelProperty(value = "规则类型")
+ private String ruleTypeId;
+ @ApiModelProperty(value = "核查类型")
+ private String ruleItemId;
+ @ApiModelProperty(value = "规则级别(3高、2中、1低)")
+ private String ruleLevelId;
+ @ApiModelProperty(value = "数据源类型")
+ private String ruleDbType;
+ @ApiModelProperty(value = "数据源主键")
+ private String ruleSourceId;
+ @ApiModelProperty(value = "数据源")
+ private String ruleSource;
+ @ApiModelProperty(value = "数据表主键")
+ private String ruleTableId;
+ @ApiModelProperty(value = "数据表")
+ private String ruleTable;
+ @ApiModelProperty(value = "数据表名称")
+ private String ruleTableComment;
+ @ApiModelProperty(value = "核查字段主键")
+ private String ruleColumnId;
+ @ApiModelProperty(value = "核查字段")
+ private String ruleColumn;
+ @ApiModelProperty(value = "核查字段名称")
+ private String ruleColumnComment;
+ @ApiModelProperty(value = "核查配置")
+ @Valid
+ private RuleConfig ruleConfig;
+ @ApiModelProperty(value = "状态")
+ @NotNull(message = "状态不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
+ private String status;
+ @ApiModelProperty(value = "备注")
+ private String remark;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/dto/Consistent.java b/czsj-system/src/main/java/com/czsj/quality/dto/Consistent.java
new file mode 100644
index 0000000..87bddec
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/dto/Consistent.java
@@ -0,0 +1,19 @@
+package com.czsj.quality.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 一致性
+ */
+@Data
+public class Consistent implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private String gbTypeId;
+ private String gbTypeCode;
+ private String gbTypeName;
+ private String bindGbColumn;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/dto/Relevance.java b/czsj-system/src/main/java/com/czsj/quality/dto/Relevance.java
new file mode 100644
index 0000000..fd8cea7
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/dto/Relevance.java
@@ -0,0 +1,21 @@
+package com.czsj.quality.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 关联性
+ */
+@Data
+public class Relevance implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private String relatedTableId;
+ private String relatedTable;
+ private String relatedTableComment;
+ private String relatedColumnId;
+ private String relatedColumn;
+ private String relatedColumnComment;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/dto/RuleConfig.java b/czsj-system/src/main/java/com/czsj/quality/dto/RuleConfig.java
new file mode 100644
index 0000000..3f9eb10
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/dto/RuleConfig.java
@@ -0,0 +1,35 @@
+package com.czsj.quality.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class RuleConfig implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ @ApiModelProperty(value = "核查类型编码")
+ private String ruleItemCode;
+
+ /**
+ * 一致性
+ */
+ private Consistent consistent;
+
+ /**
+ * 关联性
+ */
+ private Relevance relevance;
+
+ /**
+ * 及时性
+ */
+ private Timeliness timeliness;
+
+ /**
+ * 准确性
+ */
+ private Accuracy accuracy;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/dto/ScheduleLogDto.java b/czsj-system/src/main/java/com/czsj/quality/dto/ScheduleLogDto.java
new file mode 100644
index 0000000..b74d0ee
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/dto/ScheduleLogDto.java
@@ -0,0 +1,41 @@
+package com.czsj.quality.dto;
+
+import com.czsj.metadata.validate.ValidationGroups;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 数据质量监控任务日志信息表 实体DTO
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-13
+ */
+@ApiModel(value = "数据质量监控任务日志信息表Model")
+@Data
+public class ScheduleLogDto implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ @ApiModelProperty(value = "主键ID")
+ @NotBlank(message = "主键ID不能为空", groups = {ValidationGroups.Update.class})
+ private String id;
+ @ApiModelProperty(value = "状态(1成功 0失败)")
+ private String status;
+ @ApiModelProperty(value = "执行任务主键")
+ private String executeJobId;
+ @ApiModelProperty(value = "执行规则主键")
+ private String executeRuleId;
+ @ApiModelProperty(value = "执行时间")
+ private LocalDateTime executeDate;
+ @ApiModelProperty(value = "执行结果")
+ private String executeResult;
+ @ApiModelProperty(value = "执行批次号")
+ private String executeBatch;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/dto/Timeliness.java b/czsj-system/src/main/java/com/czsj/quality/dto/Timeliness.java
new file mode 100644
index 0000000..3d0381d
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/dto/Timeliness.java
@@ -0,0 +1,19 @@
+package com.czsj.quality.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 及时性
+ */
+@Data
+public class Timeliness implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 判定阀值 当前时间-业务时间>阀值
+ */
+ private Integer threshold;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/entity/CheckReportEntity.java b/czsj-system/src/main/java/com/czsj/quality/entity/CheckReportEntity.java
new file mode 100644
index 0000000..a32d81a
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/entity/CheckReportEntity.java
@@ -0,0 +1,93 @@
+package com.czsj.quality.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 核查报告信息表
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Data
+@Accessors(chain = true)
+@TableName(value = "quality_check_report", autoResultMap = true)
+public class CheckReportEntity implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ /**
+ * 核查规则主键
+ */
+ private String checkRuleId;
+
+ /**
+ * 核查时间
+ */
+ private LocalDateTime checkDate;
+
+ /**
+ * 核查结果
+ */
+ private String checkResult;
+
+ /**
+ * 核查数量
+ */
+ private Integer checkTotalCount;
+
+ /**
+ * 不合规数量
+ */
+ private Integer checkErrorCount;
+
+ /**
+ * 核查批次号
+ */
+ private String checkBatch;
+
+ /**
+ * 规则名称
+ */
+ @TableField(exist = false)
+ private String ruleName;
+
+ /**
+ * 规则类型
+ */
+ @TableField(exist = false)
+ private String ruleType;
+
+ /**
+ * 数据源
+ */
+ @TableField(exist = false)
+ private String ruleSource;
+
+ /**
+ * 数据表
+ */
+ @TableField(exist = false)
+ private String ruleTable;
+
+ /**
+ * 核查字段
+ */
+ @TableField(exist = false)
+ private String ruleColumn;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/entity/CheckRuleEntity.java b/czsj-system/src/main/java/com/czsj/quality/entity/CheckRuleEntity.java
new file mode 100644
index 0000000..394768f
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/entity/CheckRuleEntity.java
@@ -0,0 +1,118 @@
+package com.czsj.quality.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.czsj.core.database.base.DataScopeBaseEntity;
+import com.czsj.quality.dto.RuleConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ *
+ * 核查规则信息表
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName(value = "quality_check_rule", autoResultMap = true)
+public class CheckRuleEntity extends DataScopeBaseEntity {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 规则名称
+ */
+ private String ruleName;
+
+ /**
+ * 规则类型主键
+ */
+ private String ruleTypeId;
+
+ /**
+ * 核查类型主键
+ */
+ private String ruleItemId;
+
+ /**
+ * 规则类型
+ */
+ @TableField(exist = false)
+ private String ruleType;
+
+ /**
+ * 规则级别(3高、2中、1低)
+ */
+ private String ruleLevelId;
+
+ @TableField(exist = false)
+ private String ruleLevel;
+
+ /**
+ * 数据源类型
+ */
+ private String ruleDbType;
+
+ /**
+ * 数据源主键
+ */
+ private String ruleSourceId;
+
+ /**
+ * 数据源
+ */
+ private String ruleSource;
+
+ /**
+ * 数据表主键
+ */
+ private String ruleTableId;
+
+ /**
+ * 数据表
+ */
+ private String ruleTable;
+
+ /**
+ * 数据表名称
+ */
+ private String ruleTableComment;
+
+ /**
+ * 核查字段主键
+ */
+ private String ruleColumnId;
+
+ /**
+ * 核查字段
+ */
+ private String ruleColumn;
+
+ /**
+ * 核查字段名称
+ */
+ private String ruleColumnComment;
+
+ /**
+ * 核查配置
+ */
+ @TableField(value = "config_json", typeHandler = JacksonTypeHandler.class)
+ private RuleConfig ruleConfig;
+
+ /**
+ * 核查脚本
+ */
+ private String ruleSql;
+
+ /**
+ * 最近核查批次号(关联确定唯一核查报告)
+ */
+ private String lastCheckBatch;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/entity/DataReportEntity.java b/czsj-system/src/main/java/com/czsj/quality/entity/DataReportEntity.java
new file mode 100644
index 0000000..85ef269
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/entity/DataReportEntity.java
@@ -0,0 +1,28 @@
+package com.czsj.quality.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class DataReportEntity implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ private String ruleTypeId;
+ private String ruleTypeName;
+ private String ruleId;
+ private String ruleName;
+ private String ruleSourceId;
+ private String ruleSourceName;
+ private String ruleLevelId;
+ private String ruleLevelName;
+ private Integer checkErrorCount;
+
+ private String ruleTypeCode;
+ private String ruleTableName;
+ private String ruleTableComment;
+ private String ruleColumnName;
+ private String ruleColumnComment;
+ private Integer checkTotalCount;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/entity/RuleItemEntity.java b/czsj-system/src/main/java/com/czsj/quality/entity/RuleItemEntity.java
new file mode 100644
index 0000000..1dea990
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/entity/RuleItemEntity.java
@@ -0,0 +1,46 @@
+package com.czsj.quality.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 规则核查类型信息表
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-15
+ */
+@Data
+@Accessors(chain = true)
+@TableName("quality_rule_item")
+public class RuleItemEntity implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ /**
+ * 规则类型
+ */
+ private String ruleTypeId;
+
+ /**
+ * 核查类型编码
+ */
+ private String itemCode;
+
+ /**
+ * 核查类型解释
+ */
+ private String itemExplain;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/entity/RuleLevelEntity.java b/czsj-system/src/main/java/com/czsj/quality/entity/RuleLevelEntity.java
new file mode 100644
index 0000000..4019ff8
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/entity/RuleLevelEntity.java
@@ -0,0 +1,41 @@
+package com.czsj.quality.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 规则级别信息表
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-14
+ */
+@Data
+@Accessors(chain = true)
+@TableName("quality_rule_level")
+public class RuleLevelEntity implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ /**
+ * 规则级别编码
+ */
+ private String code;
+
+ /**
+ * 规则级别名称
+ */
+ private String name;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/entity/RuleTypeEntity.java b/czsj-system/src/main/java/com/czsj/quality/entity/RuleTypeEntity.java
new file mode 100644
index 0000000..ae39d4a
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/entity/RuleTypeEntity.java
@@ -0,0 +1,41 @@
+package com.czsj.quality.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 规则类型信息表
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Data
+@Accessors(chain = true)
+@TableName("quality_rule_type")
+public class RuleTypeEntity implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ /**
+ * 类型名称
+ */
+ private String name;
+
+ /**
+ * 类型编码
+ */
+ private String code;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/entity/RuleTypeReportEntity.java b/czsj-system/src/main/java/com/czsj/quality/entity/RuleTypeReportEntity.java
new file mode 100644
index 0000000..b48654b
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/entity/RuleTypeReportEntity.java
@@ -0,0 +1,14 @@
+package com.czsj.quality.entity;
+
+import lombok.Data;
+
+@Data
+public class RuleTypeReportEntity extends RuleTypeEntity {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 不合规数量
+ */
+ private Integer checkErrorCount;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/entity/ScheduleJobEntity.java b/czsj-system/src/main/java/com/czsj/quality/entity/ScheduleJobEntity.java
new file mode 100644
index 0000000..a80dd6c
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/entity/ScheduleJobEntity.java
@@ -0,0 +1,61 @@
+package com.czsj.quality.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 数据质量监控任务信息表
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-29
+ */
+@Data
+@Accessors(chain = true)
+@TableName("quality_schedule_job")
+public class ScheduleJobEntity implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ /**
+ * 任务名称
+ */
+ private String jobName;
+
+ /**
+ * bean名称
+ */
+ private String beanName;
+
+ /**
+ * 方法名称
+ */
+ private String methodName;
+
+ /**
+ * 方法参数
+ */
+ private String methodParams;
+
+ /**
+ * cron表达式
+ */
+ private String cronExpression;
+
+ /**
+ * 状态(1运行 0暂停)
+ */
+ private String status;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/entity/ScheduleLogEntity.java b/czsj-system/src/main/java/com/czsj/quality/entity/ScheduleLogEntity.java
new file mode 100644
index 0000000..fb031be
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/entity/ScheduleLogEntity.java
@@ -0,0 +1,72 @@
+package com.czsj.quality.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 数据质量监控任务日志信息表
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-13
+ */
+@Data
+@Accessors(chain = true)
+@TableName(value = "quality_schedule_log")
+public class ScheduleLogEntity implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ /**
+ * 状态(1成功 0失败)
+ */
+ private String status;
+
+ /**
+ * 执行任务主键
+ */
+ private String executeJobId;
+
+ @TableField(exist = false)
+ private String executeJobName;
+
+ /**
+ * 执行规则主键
+ */
+ private String executeRuleId;
+
+ @TableField(exist = false)
+ private String executeRuleName;
+
+ @TableField(exist = false)
+ private String executeRuleTypeName;
+
+ /**
+ * 执行时间
+ */
+ private LocalDateTime executeDate;
+
+ /**
+ * 执行结果
+ */
+ private String executeResult;
+
+ /**
+ * 执行批次号
+ */
+ private String executeBatch;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/enums/RuleItem.java b/czsj-system/src/main/java/com/czsj/quality/enums/RuleItem.java
new file mode 100644
index 0000000..b9b5a82
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/enums/RuleItem.java
@@ -0,0 +1,36 @@
+package com.czsj.quality.enums;
+
+
+public enum RuleItem {
+
+ Unique("unique_key", "验证用户指定的字段是否具有唯一性"),
+ AccuracyLength("accuracy_key_length", "验证长度是否符合规定"),
+ Integrity("integrity_key", "验证表中必须出现的字段非空"),
+ Relevance("relevance_key", "验证关联性"),
+ Timeliness("timeliness_key", "验证及时性"),
+ Consistent("consistent_key", "验证用户指定的字段枚举值是否合乎要求");
+
+ private final String code;
+
+ private final String desc;
+
+ RuleItem(String code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public static RuleItem getRuleItem(String code) {
+ for (RuleItem item : RuleItem.values()) {
+ if (item.code.equals(code)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapper/CheckReportDao.java b/czsj-system/src/main/java/com/czsj/quality/mapper/CheckReportDao.java
new file mode 100644
index 0000000..00f207e
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapper/CheckReportDao.java
@@ -0,0 +1,34 @@
+package com.czsj.quality.mapper;
+
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.czsj.core.database.base.BaseDao;
+import com.czsj.quality.entity.CheckReportEntity;
+import com.czsj.quality.entity.DataReportEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ *
+ * 核查报告信息表 Mapper 接口
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Mapper
+public interface CheckReportDao extends BaseDao {
+
+ @Override
+ > E selectPage(E page, @Param(Constants.WRAPPER) Wrapper queryWrapper);
+
+ List getReportBySource(@Param("checkDate") String checkDate);
+
+ List getReportByType(@Param("checkDate") String checkDate);
+
+ List getReportDetail(@Param("checkDate") String checkDate);
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapper/CheckRuleDao.java b/czsj-system/src/main/java/com/czsj/quality/mapper/CheckRuleDao.java
new file mode 100644
index 0000000..5241f49
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapper/CheckRuleDao.java
@@ -0,0 +1,34 @@
+package com.czsj.quality.mapper;
+
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.czsj.core.database.base.BaseDao;
+import com.czsj.quality.entity.CheckRuleEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ *
+ * 核查规则信息表 Mapper 接口
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Mapper
+public interface CheckRuleDao extends BaseDao {
+
+ @Override
+ CheckRuleEntity selectById(Serializable id);
+
+ @Override
+ List selectList(@Param(Constants.WRAPPER) Wrapper queryWrapper);
+
+ @Override
+ > E selectPage(E page, @Param(Constants.WRAPPER) Wrapper queryWrapper);
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapper/RuleItemDao.java b/czsj-system/src/main/java/com/czsj/quality/mapper/RuleItemDao.java
new file mode 100644
index 0000000..0c56ad7
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapper/RuleItemDao.java
@@ -0,0 +1,18 @@
+package com.czsj.quality.mapper;
+
+import com.czsj.core.database.base.BaseDao;
+import com.czsj.quality.entity.RuleItemEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ *
+ * 规则核查项信息表 Mapper 接口
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-15
+ */
+@Mapper
+public interface RuleItemDao extends BaseDao {
+
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapper/RuleLevelDao.java b/czsj-system/src/main/java/com/czsj/quality/mapper/RuleLevelDao.java
new file mode 100644
index 0000000..4b3e27f
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapper/RuleLevelDao.java
@@ -0,0 +1,19 @@
+package com.czsj.quality.mapper;
+
+
+import com.czsj.core.database.base.BaseDao;
+import com.czsj.quality.entity.RuleLevelEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ *
+ * 规则级别信息表 Mapper 接口
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-14
+ */
+@Mapper
+public interface RuleLevelDao extends BaseDao {
+
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapper/RuleTypeDao.java b/czsj-system/src/main/java/com/czsj/quality/mapper/RuleTypeDao.java
new file mode 100644
index 0000000..ffb59c6
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapper/RuleTypeDao.java
@@ -0,0 +1,23 @@
+package com.czsj.quality.mapper;
+
+
+import com.czsj.core.database.base.BaseDao;
+import com.czsj.quality.entity.RuleTypeEntity;
+import com.czsj.quality.entity.RuleTypeReportEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ *
+ * 规则类型信息表 Mapper 接口
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Mapper
+public interface RuleTypeDao extends BaseDao {
+
+ List selectListForReport();
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapper/ScheduleJobDao.java b/czsj-system/src/main/java/com/czsj/quality/mapper/ScheduleJobDao.java
new file mode 100644
index 0000000..ee7c34a
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapper/ScheduleJobDao.java
@@ -0,0 +1,19 @@
+package com.czsj.quality.mapper;
+
+
+import com.czsj.core.database.base.BaseDao;
+import com.czsj.quality.entity.ScheduleJobEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ *
+ * 数据质量监控任务信息表 Mapper 接口
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-29
+ */
+@Mapper
+public interface ScheduleJobDao extends BaseDao {
+
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapper/ScheduleLogDao.java b/czsj-system/src/main/java/com/czsj/quality/mapper/ScheduleLogDao.java
new file mode 100644
index 0000000..695e67f
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapper/ScheduleLogDao.java
@@ -0,0 +1,25 @@
+package com.czsj.quality.mapper;
+
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.czsj.core.database.base.BaseDao;
+import com.czsj.quality.entity.ScheduleLogEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ *
+ * 数据质量监控任务日志信息表 Mapper 接口
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-13
+ */
+@Mapper
+public interface ScheduleLogDao extends BaseDao {
+
+ @Override
+ > E selectPage(E page, @Param(Constants.WRAPPER) Wrapper queryWrapper);
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapstruct/CheckReportMapper.java b/czsj-system/src/main/java/com/czsj/quality/mapstruct/CheckReportMapper.java
new file mode 100644
index 0000000..bdff7a5
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapstruct/CheckReportMapper.java
@@ -0,0 +1,34 @@
+package com.czsj.quality.mapstruct;
+
+
+import com.czsj.quality.entity.CheckReportEntity;
+import com.czsj.quality.vo.CheckReportVo;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+/**
+ *
+ * 核查报告信息表 Mapper 实体映射
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Mapper(componentModel = "spring")
+public interface CheckReportMapper {
+
+ /**
+ * 将源对象转换为VO对象
+ * @param e
+ * @return D
+ */
+ CheckReportVo toVO(CheckReportEntity e);
+
+ /**
+ * 将源对象集合转换为VO对象集合
+ * @param es
+ * @return List
+ */
+ List toVO(List es);
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapstruct/CheckRuleMapper.java b/czsj-system/src/main/java/com/czsj/quality/mapstruct/CheckRuleMapper.java
new file mode 100644
index 0000000..2b8e3d1
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapstruct/CheckRuleMapper.java
@@ -0,0 +1,21 @@
+package com.czsj.quality.mapstruct;
+
+
+import com.czsj.metadata.mapstruct.EntityMapper;
+import com.czsj.quality.dto.CheckRuleDto;
+import com.czsj.quality.entity.CheckRuleEntity;
+import com.czsj.quality.vo.CheckRuleVo;
+import org.mapstruct.Mapper;
+
+/**
+ *
+ * 核查规则信息表 Mapper 实体映射
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Mapper(componentModel = "spring")
+public interface CheckRuleMapper extends EntityMapper {
+
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapstruct/RuleItemMapper.java b/czsj-system/src/main/java/com/czsj/quality/mapstruct/RuleItemMapper.java
new file mode 100644
index 0000000..dc65432
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapstruct/RuleItemMapper.java
@@ -0,0 +1,34 @@
+package com.czsj.quality.mapstruct;
+
+
+import com.czsj.quality.entity.RuleItemEntity;
+import com.czsj.quality.vo.RuleItemVo;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+/**
+ *
+ * 规则核查项信息表 Mapper 实体映射
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-15
+ */
+@Mapper(componentModel = "spring")
+public interface RuleItemMapper {
+
+ /**
+ * 将源对象转换为VO对象
+ * @param e
+ * @return D
+ */
+ RuleItemVo toVO(RuleItemEntity e);
+
+ /**
+ * 将源对象集合转换为VO对象集合
+ * @param es
+ * @return List
+ */
+ List toVO(List es);
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapstruct/RuleLevelMapper.java b/czsj-system/src/main/java/com/czsj/quality/mapstruct/RuleLevelMapper.java
new file mode 100644
index 0000000..61aa357
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapstruct/RuleLevelMapper.java
@@ -0,0 +1,34 @@
+package com.czsj.quality.mapstruct;
+
+
+import com.czsj.quality.entity.RuleLevelEntity;
+import com.czsj.quality.vo.RuleLevelVo;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+/**
+ *
+ * 规则级别信息表 Mapper 实体映射
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-14
+ */
+@Mapper(componentModel = "spring")
+public interface RuleLevelMapper {
+
+ /**
+ * 将源对象转换为VO对象
+ * @param e
+ * @return D
+ */
+ RuleLevelVo toVO(RuleLevelEntity e);
+
+ /**
+ * 将源对象集合转换为VO对象集合
+ * @param es
+ * @return List
+ */
+ List toVO(List es);
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapstruct/RuleTypeMapper.java b/czsj-system/src/main/java/com/czsj/quality/mapstruct/RuleTypeMapper.java
new file mode 100644
index 0000000..999f26d
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapstruct/RuleTypeMapper.java
@@ -0,0 +1,35 @@
+package com.czsj.quality.mapstruct;
+
+
+import com.czsj.quality.entity.RuleTypeEntity;
+import com.czsj.quality.vo.RuleTypeVo;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+/**
+ *
+ * 规则类型信息表 Mapper 实体映射
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Mapper(componentModel = "spring")
+public interface RuleTypeMapper {
+
+
+ /**
+ * 将源对象转换为VO对象
+ * @param e
+ * @return D
+ */
+ RuleTypeVo toVO(RuleTypeEntity e);
+
+ /**
+ * 将源对象集合转换为VO对象集合
+ * @param es
+ * @return List
+ */
+ List toVO(List es);
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapstruct/ScheduleJobMapper.java b/czsj-system/src/main/java/com/czsj/quality/mapstruct/ScheduleJobMapper.java
new file mode 100644
index 0000000..cd757e0
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapstruct/ScheduleJobMapper.java
@@ -0,0 +1,34 @@
+package com.czsj.quality.mapstruct;
+
+
+import com.czsj.quality.entity.ScheduleJobEntity;
+import com.czsj.quality.vo.ScheduleJobVo;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+/**
+ *
+ * 数据质量监控任务信息表 Mapper 实体映射
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-29
+ */
+@Mapper(componentModel = "spring")
+public interface ScheduleJobMapper {
+
+ /**
+ * 将源对象转换为VO对象
+ * @param e
+ * @return D
+ */
+ ScheduleJobVo toVO(ScheduleJobEntity e);
+
+ /**
+ * 将源对象集合转换为VO对象集合
+ * @param es
+ * @return List
+ */
+ List toVO(List es);
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapstruct/ScheduleLogMapper.java b/czsj-system/src/main/java/com/czsj/quality/mapstruct/ScheduleLogMapper.java
new file mode 100644
index 0000000..e297160
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapstruct/ScheduleLogMapper.java
@@ -0,0 +1,34 @@
+package com.czsj.quality.mapstruct;
+
+
+import com.czsj.quality.entity.ScheduleLogEntity;
+import com.czsj.quality.vo.ScheduleLogVo;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+/**
+ *
+ * 数据质量监控任务日志信息表 Mapper 实体映射
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-13
+ */
+@Mapper(componentModel = "spring")
+public interface ScheduleLogMapper {
+
+ /**
+ * 将源对象转换为VO对象
+ * @param e
+ * @return D
+ */
+ ScheduleLogVo toVO(ScheduleLogEntity e);
+
+ /**
+ * 将源对象集合转换为VO对象集合
+ * @param es
+ * @return List
+ */
+ List toVO(List es);
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/CheckReportMapperImpl.java b/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/CheckReportMapperImpl.java
new file mode 100644
index 0000000..7e73e68
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/CheckReportMapperImpl.java
@@ -0,0 +1,51 @@
+package com.czsj.quality.mapstruct.impl;
+
+
+import com.czsj.quality.entity.CheckReportEntity;
+import com.czsj.quality.mapstruct.CheckReportMapper;
+import com.czsj.quality.vo.CheckReportVo;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+public class CheckReportMapperImpl implements CheckReportMapper {
+
+ @Override
+ public CheckReportVo toVO(CheckReportEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ CheckReportVo checkReportVo = new CheckReportVo();
+
+ checkReportVo.setId( e.getId() );
+ checkReportVo.setCheckRuleId( e.getCheckRuleId() );
+ checkReportVo.setCheckDate( e.getCheckDate() );
+ checkReportVo.setCheckResult( e.getCheckResult() );
+ checkReportVo.setCheckTotalCount( e.getCheckTotalCount() );
+ checkReportVo.setCheckErrorCount( e.getCheckErrorCount() );
+ checkReportVo.setRuleName( e.getRuleName() );
+ checkReportVo.setRuleType( e.getRuleType() );
+ checkReportVo.setRuleSource( e.getRuleSource() );
+ checkReportVo.setRuleTable( e.getRuleTable() );
+ checkReportVo.setRuleColumn( e.getRuleColumn() );
+
+ return checkReportVo;
+ }
+
+ @Override
+ public List toVO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( CheckReportEntity checkReportEntity : es ) {
+ list.add( toVO( checkReportEntity ) );
+ }
+
+ return list;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/CheckRuleMapperImpl.java b/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/CheckRuleMapperImpl.java
new file mode 100644
index 0000000..79b99c0
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/CheckRuleMapperImpl.java
@@ -0,0 +1,148 @@
+package com.czsj.quality.mapstruct.impl;
+
+
+import com.czsj.quality.dto.CheckRuleDto;
+import com.czsj.quality.entity.CheckRuleEntity;
+import com.czsj.quality.mapstruct.CheckRuleMapper;
+import com.czsj.quality.vo.CheckRuleVo;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Component
+public class CheckRuleMapperImpl implements CheckRuleMapper {
+
+ @Override
+ public CheckRuleDto toDTO(CheckRuleEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ CheckRuleDto checkRuleDto = new CheckRuleDto();
+
+ checkRuleDto.setId( e.getId() );
+ checkRuleDto.setRuleName( e.getRuleName() );
+ checkRuleDto.setRuleTypeId( e.getRuleTypeId() );
+ checkRuleDto.setRuleItemId( e.getRuleItemId() );
+ checkRuleDto.setRuleLevelId( e.getRuleLevelId() );
+ checkRuleDto.setRuleDbType( e.getRuleDbType() );
+ checkRuleDto.setRuleSourceId( e.getRuleSourceId() );
+ checkRuleDto.setRuleSource( e.getRuleSource() );
+ checkRuleDto.setRuleTableId( e.getRuleTableId() );
+ checkRuleDto.setRuleTable( e.getRuleTable() );
+ checkRuleDto.setRuleTableComment( e.getRuleTableComment() );
+ checkRuleDto.setRuleColumnId( e.getRuleColumnId() );
+ checkRuleDto.setRuleColumn( e.getRuleColumn() );
+ checkRuleDto.setRuleColumnComment( e.getRuleColumnComment() );
+ checkRuleDto.setRuleConfig( e.getRuleConfig() );
+ checkRuleDto.setStatus( e.getStatus() );
+ checkRuleDto.setRemark( e.getRemark() );
+
+ return checkRuleDto;
+ }
+
+ @Override
+ public List toDTO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( CheckRuleEntity checkRuleEntity : es ) {
+ list.add( toDTO( checkRuleEntity ) );
+ }
+
+ return list;
+ }
+
+ @Override
+ public CheckRuleVo toVO(CheckRuleEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ CheckRuleVo checkRuleVo = new CheckRuleVo();
+
+ checkRuleVo.setId( e.getId() );
+ checkRuleVo.setStatus( e.getStatus() );
+ checkRuleVo.setCreateTime( e.getCreateTime() );
+ checkRuleVo.setRemark( e.getRemark() );
+ checkRuleVo.setRuleName( e.getRuleName() );
+ checkRuleVo.setRuleTypeId( e.getRuleTypeId() );
+ checkRuleVo.setRuleItemId( e.getRuleItemId() );
+ checkRuleVo.setRuleType( e.getRuleType() );
+ checkRuleVo.setRuleLevelId( e.getRuleLevelId() );
+ checkRuleVo.setRuleLevel( e.getRuleLevel() );
+ checkRuleVo.setRuleDbType( e.getRuleDbType() );
+ checkRuleVo.setRuleSourceId( e.getRuleSourceId() );
+ checkRuleVo.setRuleSource( e.getRuleSource() );
+ checkRuleVo.setRuleTableId( e.getRuleTableId() );
+ checkRuleVo.setRuleTable( e.getRuleTable() );
+ checkRuleVo.setRuleTableComment( e.getRuleTableComment() );
+ checkRuleVo.setRuleColumnId( e.getRuleColumnId() );
+ checkRuleVo.setRuleColumn( e.getRuleColumn() );
+ checkRuleVo.setRuleColumnComment( e.getRuleColumnComment() );
+ checkRuleVo.setRuleConfig( e.getRuleConfig() );
+
+ return checkRuleVo;
+ }
+
+ @Override
+ public List toVO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( CheckRuleEntity checkRuleEntity : es ) {
+ list.add( toVO( checkRuleEntity ) );
+ }
+
+ return list;
+ }
+
+ @Override
+ public CheckRuleEntity toEntity(CheckRuleDto d) {
+ if ( d == null ) {
+ return null;
+ }
+
+ CheckRuleEntity checkRuleEntity = new CheckRuleEntity();
+
+ checkRuleEntity.setId( d.getId() );
+ checkRuleEntity.setStatus( d.getStatus() );
+ checkRuleEntity.setRemark( d.getRemark() );
+ checkRuleEntity.setRuleName( d.getRuleName() );
+ checkRuleEntity.setRuleTypeId( d.getRuleTypeId() );
+ checkRuleEntity.setRuleItemId( d.getRuleItemId() );
+ checkRuleEntity.setRuleLevelId( d.getRuleLevelId() );
+ checkRuleEntity.setRuleDbType( d.getRuleDbType() );
+ checkRuleEntity.setRuleSourceId( d.getRuleSourceId() );
+ checkRuleEntity.setRuleSource( d.getRuleSource() );
+ checkRuleEntity.setRuleTableId( d.getRuleTableId() );
+ checkRuleEntity.setRuleTable( d.getRuleTable() );
+ checkRuleEntity.setRuleTableComment( d.getRuleTableComment() );
+ checkRuleEntity.setRuleColumnId( d.getRuleColumnId() );
+ checkRuleEntity.setRuleColumn( d.getRuleColumn() );
+ checkRuleEntity.setRuleColumnComment( d.getRuleColumnComment() );
+ checkRuleEntity.setRuleConfig( d.getRuleConfig() );
+
+ return checkRuleEntity;
+ }
+
+ @Override
+ public List toEntity(List ds) {
+ if ( ds == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( ds.size() );
+ for ( CheckRuleDto checkRuleDto : ds ) {
+ list.add( toEntity( checkRuleDto ) );
+ }
+
+ return list;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/RuleItemMapperImpl.java b/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/RuleItemMapperImpl.java
new file mode 100644
index 0000000..21f98a2
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/RuleItemMapperImpl.java
@@ -0,0 +1,44 @@
+package com.czsj.quality.mapstruct.impl;
+
+import com.czsj.quality.entity.RuleItemEntity;
+import com.czsj.quality.mapstruct.RuleItemMapper;
+import com.czsj.quality.vo.RuleItemVo;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Component
+public class RuleItemMapperImpl implements RuleItemMapper {
+
+ @Override
+ public RuleItemVo toVO(RuleItemEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ RuleItemVo ruleItemVo = new RuleItemVo();
+
+ ruleItemVo.setId( e.getId() );
+ ruleItemVo.setRuleTypeId( e.getRuleTypeId() );
+ ruleItemVo.setItemCode( e.getItemCode() );
+ ruleItemVo.setItemExplain( e.getItemExplain() );
+
+ return ruleItemVo;
+ }
+
+ @Override
+ public List toVO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( RuleItemEntity ruleItemEntity : es ) {
+ list.add( toVO( ruleItemEntity ) );
+ }
+
+ return list;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/RuleLevelMapperImpl.java b/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/RuleLevelMapperImpl.java
new file mode 100644
index 0000000..855618c
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/RuleLevelMapperImpl.java
@@ -0,0 +1,43 @@
+package com.czsj.quality.mapstruct.impl;
+
+
+import com.czsj.quality.entity.RuleLevelEntity;
+import com.czsj.quality.mapstruct.RuleLevelMapper;
+import com.czsj.quality.vo.RuleLevelVo;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+public class RuleLevelMapperImpl implements RuleLevelMapper {
+
+ @Override
+ public RuleLevelVo toVO(RuleLevelEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ RuleLevelVo ruleLevelVo = new RuleLevelVo();
+
+ ruleLevelVo.setId( e.getId() );
+ ruleLevelVo.setCode( e.getCode() );
+ ruleLevelVo.setName( e.getName() );
+
+ return ruleLevelVo;
+ }
+
+ @Override
+ public List toVO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( RuleLevelEntity ruleLevelEntity : es ) {
+ list.add( toVO( ruleLevelEntity ) );
+ }
+
+ return list;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/RuleTypeMapperImpl.java b/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/RuleTypeMapperImpl.java
new file mode 100644
index 0000000..fb70010
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/RuleTypeMapperImpl.java
@@ -0,0 +1,43 @@
+package com.czsj.quality.mapstruct.impl;
+
+
+import com.czsj.quality.entity.RuleTypeEntity;
+import com.czsj.quality.mapstruct.RuleTypeMapper;
+import com.czsj.quality.vo.RuleTypeVo;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+public class RuleTypeMapperImpl implements RuleTypeMapper {
+
+ @Override
+ public RuleTypeVo toVO(RuleTypeEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ RuleTypeVo ruleTypeVo = new RuleTypeVo();
+
+ ruleTypeVo.setId( e.getId() );
+ ruleTypeVo.setName( e.getName() );
+ ruleTypeVo.setCode( e.getCode() );
+
+ return ruleTypeVo;
+ }
+
+ @Override
+ public List toVO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( RuleTypeEntity ruleTypeEntity : es ) {
+ list.add( toVO( ruleTypeEntity ) );
+ }
+
+ return list;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/ScheduleJobMapperImpl.java b/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/ScheduleJobMapperImpl.java
new file mode 100644
index 0000000..21ccfd9
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/ScheduleJobMapperImpl.java
@@ -0,0 +1,48 @@
+package com.czsj.quality.mapstruct.impl;
+
+
+import com.czsj.quality.entity.ScheduleJobEntity;
+import com.czsj.quality.mapstruct.ScheduleJobMapper;
+import com.czsj.quality.vo.ScheduleJobVo;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Component
+public class ScheduleJobMapperImpl implements ScheduleJobMapper {
+
+ @Override
+ public ScheduleJobVo toVO(ScheduleJobEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ ScheduleJobVo scheduleJobVo = new ScheduleJobVo();
+
+ scheduleJobVo.setId( e.getId() );
+ scheduleJobVo.setStatus( e.getStatus() );
+ scheduleJobVo.setJobName( e.getJobName() );
+ scheduleJobVo.setBeanName( e.getBeanName() );
+ scheduleJobVo.setMethodName( e.getMethodName() );
+ scheduleJobVo.setMethodParams( e.getMethodParams() );
+ scheduleJobVo.setCronExpression( e.getCronExpression() );
+
+ return scheduleJobVo;
+ }
+
+ @Override
+ public List toVO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( ScheduleJobEntity scheduleJobEntity : es ) {
+ list.add( toVO( scheduleJobEntity ) );
+ }
+
+ return list;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/ScheduleLogMapperImpl.java b/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/ScheduleLogMapperImpl.java
new file mode 100644
index 0000000..2c68c11
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/mapstruct/impl/ScheduleLogMapperImpl.java
@@ -0,0 +1,51 @@
+package com.czsj.quality.mapstruct.impl;
+
+
+import com.czsj.quality.entity.ScheduleLogEntity;
+import com.czsj.quality.mapstruct.ScheduleLogMapper;
+import com.czsj.quality.vo.ScheduleLogVo;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Component
+public class ScheduleLogMapperImpl implements ScheduleLogMapper {
+
+ @Override
+ public ScheduleLogVo toVO(ScheduleLogEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ ScheduleLogVo scheduleLogVo = new ScheduleLogVo();
+
+ scheduleLogVo.setId( e.getId() );
+ scheduleLogVo.setStatus( e.getStatus() );
+ scheduleLogVo.setExecuteJobId( e.getExecuteJobId() );
+ scheduleLogVo.setExecuteRuleId( e.getExecuteRuleId() );
+ scheduleLogVo.setExecuteDate( e.getExecuteDate() );
+ scheduleLogVo.setExecuteResult( e.getExecuteResult() );
+ scheduleLogVo.setExecuteBatch( e.getExecuteBatch() );
+ scheduleLogVo.setExecuteJobName( e.getExecuteJobName() );
+ scheduleLogVo.setExecuteRuleName( e.getExecuteRuleName() );
+ scheduleLogVo.setExecuteRuleTypeName( e.getExecuteRuleTypeName() );
+
+ return scheduleLogVo;
+ }
+
+ @Override
+ public List toVO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( ScheduleLogEntity scheduleLogEntity : es ) {
+ list.add( toVO( scheduleLogEntity ) );
+ }
+
+ return list;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/query/CheckReportQuery.java b/czsj-system/src/main/java/com/czsj/quality/query/CheckReportQuery.java
new file mode 100644
index 0000000..703a55c
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/query/CheckReportQuery.java
@@ -0,0 +1,31 @@
+package com.czsj.quality.query;
+
+import com.czsj.core.database.base.BaseQueryParams;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDate;
+
+/**
+ *
+ * 核查报告信息表 查询实体
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class CheckReportQuery extends BaseQueryParams {
+
+ private static final long serialVersionUID=1L;
+
+ private String ruleTypeId;
+ private String ruleName;
+ private String ruleSource;
+ private String ruleTable;
+ private String ruleColumn;
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private LocalDate checkDate;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/query/CheckRuleQuery.java b/czsj-system/src/main/java/com/czsj/quality/query/CheckRuleQuery.java
new file mode 100644
index 0000000..e43583e
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/query/CheckRuleQuery.java
@@ -0,0 +1,26 @@
+package com.czsj.quality.query;
+
+import com.czsj.core.database.base.BaseQueryParams;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ *
+ * 核查规则信息表 查询实体
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class CheckRuleQuery extends BaseQueryParams {
+
+ private static final long serialVersionUID=1L;
+
+ private String ruleTypeId;
+ private String ruleName;
+ private String ruleSource;
+ private String ruleTable;
+ private String ruleColumn;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/query/RuleItemQuery.java b/czsj-system/src/main/java/com/czsj/quality/query/RuleItemQuery.java
new file mode 100644
index 0000000..9237d91
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/query/RuleItemQuery.java
@@ -0,0 +1,22 @@
+package com.czsj.quality.query;
+
+import com.czsj.core.database.base.BaseQueryParams;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ *
+ * 规则核查项信息表 查询实体
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class RuleItemQuery extends BaseQueryParams {
+
+ private static final long serialVersionUID=1L;
+
+ private String ruleTypeId;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/query/RuleLevelQuery.java b/czsj-system/src/main/java/com/czsj/quality/query/RuleLevelQuery.java
new file mode 100644
index 0000000..7e6d2a7
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/query/RuleLevelQuery.java
@@ -0,0 +1,20 @@
+package com.czsj.quality.query;
+
+import com.czsj.core.database.base.BaseQueryParams;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ *
+ * 规则级别信息表 查询实体
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class RuleLevelQuery extends BaseQueryParams {
+
+ private static final long serialVersionUID=1L;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/query/RuleTypeQuery.java b/czsj-system/src/main/java/com/czsj/quality/query/RuleTypeQuery.java
new file mode 100644
index 0000000..3f6d230
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/query/RuleTypeQuery.java
@@ -0,0 +1,22 @@
+package com.czsj.quality.query;
+
+import com.czsj.core.database.base.BaseQueryParams;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ *
+ * 规则类型信息表 查询实体
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class RuleTypeQuery extends BaseQueryParams {
+
+ private static final long serialVersionUID=1L;
+
+ private String name;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/query/ScheduleJobQuery.java b/czsj-system/src/main/java/com/czsj/quality/query/ScheduleJobQuery.java
new file mode 100644
index 0000000..832fed4
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/query/ScheduleJobQuery.java
@@ -0,0 +1,20 @@
+package com.czsj.quality.query;
+
+import com.czsj.core.database.base.BaseQueryParams;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ *
+ * 数据质量监控任务信息表 查询实体
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ScheduleJobQuery extends BaseQueryParams {
+
+ private static final long serialVersionUID=1L;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/query/ScheduleLogQuery.java b/czsj-system/src/main/java/com/czsj/quality/query/ScheduleLogQuery.java
new file mode 100644
index 0000000..7aa9a80
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/query/ScheduleLogQuery.java
@@ -0,0 +1,23 @@
+package com.czsj.quality.query;
+
+import com.czsj.core.database.base.BaseQueryParams;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ *
+ * 数据质量监控任务日志信息表 查询实体
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ScheduleLogQuery extends BaseQueryParams {
+
+ private static final long serialVersionUID=1L;
+
+ private String executeJobId;
+ private String ruleTypeId;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/schedule/CheckRuleFactory.java b/czsj-system/src/main/java/com/czsj/quality/schedule/CheckRuleFactory.java
new file mode 100644
index 0000000..5912097
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/schedule/CheckRuleFactory.java
@@ -0,0 +1,21 @@
+package com.czsj.quality.schedule;
+
+
+
+import com.aspose.words.net.System.Data.DataException;
+import com.czsj.quality.schedule.rules.RuleItem;
+import com.czsj.quality.schedule.rules.RuleItemRegistry;
+
+import java.util.Optional;
+
+public class CheckRuleFactory {
+
+ private static final RuleItemRegistry RULE_ITEM_REGISTRY = new RuleItemRegistry();
+
+ public CheckRuleFactory() {
+ }
+
+ public static RuleItem getRuleItem(String code) {
+ return Optional.ofNullable(RULE_ITEM_REGISTRY.getRuleItem(code)).orElseThrow(() -> new DataException(String.format("%s not supported.", code)));
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/schedule/rules/AccuracyLengthRule.java b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/AccuracyLengthRule.java
new file mode 100644
index 0000000..e149463
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/AccuracyLengthRule.java
@@ -0,0 +1,29 @@
+package com.czsj.quality.schedule.rules;
+
+
+
+import com.czsj.common.database.constants.DbType;
+
+import java.util.Map;
+
+/**
+ * 准确性核查
+ * 核查项:最大长度
+ * select sum(case when length(column) > 15 then 1 else 0 end), count(*) from table;
+ */
+public class AccuracyLengthRule implements RuleItem {
+
+ private static String MAX_LENGTH = "max_length";
+
+ @Override
+ public String parse(DbType dbType, String table, String column, Map map) {
+ final StringBuilder builder = new StringBuilder();
+ builder.append("SELECT SUM(CASE WHEN LENGTH(").append(column).append(") > ").append(map.get(MAX_LENGTH)).append(" THEN 1 ELSE 0 END), COUNT(*) FROM ").append(table);
+ return builder.toString();
+ }
+
+ @Override
+ public String code() {
+ return "accuracy_key_length";
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/schedule/rules/ConsistentRule.java b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/ConsistentRule.java
new file mode 100644
index 0000000..d1b9869
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/ConsistentRule.java
@@ -0,0 +1,29 @@
+package com.czsj.quality.schedule.rules;
+
+
+
+import com.czsj.common.database.constants.DbType;
+
+import java.util.Map;
+
+/**
+ * 一致性核查
+ * 核查项:字典
+ * select sum(case when column not in ('0', '1') then 1 else 0 end), count(*) from table;
+ */
+public class ConsistentRule implements RuleItem {
+
+ private static String GB_ITEM = "gb_item";
+
+ @Override
+ public String parse(DbType dbType, String table, String column, Map map) {
+ final StringBuilder builder = new StringBuilder();
+ builder.append("SELECT SUM(CASE WHEN ").append(column).append(" NOT IN (").append(map.get(GB_ITEM)).append(") THEN 1 ELSE 0 END), COUNT(*) FROM ").append(table);
+ return builder.toString();
+ }
+
+ @Override
+ public String code() {
+ return "consistent_key";
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/schedule/rules/IntegrityRule.java b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/IntegrityRule.java
new file mode 100644
index 0000000..bf54e60
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/IntegrityRule.java
@@ -0,0 +1,26 @@
+package com.czsj.quality.schedule.rules;
+
+
+import com.czsj.common.database.constants.DbType;
+
+import java.util.Map;
+
+/**
+ * 完整性核查
+ * 核查项:非空
+ * select sum(case when column is not null and trim(column) != '' then 1 else 0 end), count(*) from table;
+ */
+public class IntegrityRule implements RuleItem {
+
+ @Override
+ public String parse(DbType dbType, String table, String column, Map map) {
+ final StringBuilder builder = new StringBuilder();
+ builder.append("SELECT SUM(CASE WHEN ").append(column).append(" IS NOT NULL AND TRIM(").append(column).append(") != '' THEN 0 ELSE 1 END), COUNT(*) FROM ").append(table);
+ return builder.toString();
+ }
+
+ @Override
+ public String code() {
+ return "integrity_key";
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/schedule/rules/RelevanceRule.java b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/RelevanceRule.java
new file mode 100644
index 0000000..7c539f6
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/RelevanceRule.java
@@ -0,0 +1,35 @@
+package com.czsj.quality.schedule.rules;
+
+
+import com.czsj.common.database.constants.DbType;
+
+import java.util.Map;
+
+/**
+ * 关联性核查
+ * select SUM(errorCount) errorCount, SUM(totalCount) totalCount
+ * FROM (
+ * select count(*) errorCount, 0 as totalCount from MAIN_TABLE a where not exists(select 1 from FOLLOW_TWO b where a.NAME = b.NAME)
+ * union select 0 as errorCount, count(*) totalCount from MAIN_TABLE
+ * ) temp;
+ */
+public class RelevanceRule implements RuleItem {
+
+ private static String RELATED_TABLE = "related_table";
+ private static String RELATED_COLUMN = "related_column";
+
+ @Override
+ public String parse(DbType dbType, String table, String column, Map map) {
+ final StringBuilder builder = new StringBuilder();
+ builder.append("SELECT SUM(errorCount) AS errorCount, SUM(totalCount) AS totalCount FROM (")
+ .append("SELECT COUNT(*) AS errorCount, 0 AS totalCount FROM ")
+ .append(table).append(" a WHERE NOT EXISTS (SELECT 1 FROM ").append(map.get(RELATED_TABLE)).append(" b WHERE a.").append(column).append(" = b.").append(map.get(RELATED_COLUMN)).append(")")
+ .append("UNION SELECT 0 AS errorCount, COUNT(*) AS totalCount FROM ").append(table).append(") TEMP");
+ return builder.toString();
+ }
+
+ @Override
+ public String code() {
+ return "relevance_key";
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/schedule/rules/RuleItem.java b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/RuleItem.java
new file mode 100644
index 0000000..372b50f
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/RuleItem.java
@@ -0,0 +1,14 @@
+package com.czsj.quality.schedule.rules;
+
+
+
+import com.czsj.common.database.constants.DbType;
+
+import java.util.Map;
+
+public interface RuleItem {
+
+ String parse(DbType dbType, String table, String column, Map map);
+
+ String code();
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/schedule/rules/RuleItemRegistry.java b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/RuleItemRegistry.java
new file mode 100644
index 0000000..ce6ec40
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/RuleItemRegistry.java
@@ -0,0 +1,22 @@
+package com.czsj.quality.schedule.rules;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class RuleItemRegistry {
+
+ private final Map rule_item_map = new HashMap<>();
+
+ public RuleItemRegistry() {
+ this.rule_item_map.put("unique_key", new UniqueRule());
+ this.rule_item_map.put("consistent_key", new ConsistentRule());
+ this.rule_item_map.put("integrity_key", new IntegrityRule());
+ this.rule_item_map.put("relevance_key", new RelevanceRule());
+ this.rule_item_map.put("timeliness_key", new TimelinessRule());
+ this.rule_item_map.put("accuracy_key_length", new AccuracyLengthRule());
+ }
+
+ public RuleItem getRuleItem(String code) {
+ return this.rule_item_map.get(code);
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/schedule/rules/TimelinessRule.java b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/TimelinessRule.java
new file mode 100644
index 0000000..ec1fe21
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/TimelinessRule.java
@@ -0,0 +1,43 @@
+package com.czsj.quality.schedule.rules;
+
+
+import com.czsj.common.database.constants.DbType;
+
+import java.util.Map;
+
+/**
+ * 及时性核查
+ */
+public class TimelinessRule implements RuleItem {
+
+ private static String THRESHOLD = "threshold";
+
+ @Override
+ public String parse(DbType dbType, String table, String column, Map map) {
+ final StringBuilder builder = new StringBuilder();
+ switch (dbType) {
+ case ORACLE:
+ case ORACLE_12C:
+ builder.append("SELECT SUM(CASE WHEN ROUND(TO_NUMBER(SYSDATE - ").append(column).append(")) >= ").append(map.get(THRESHOLD)).append(" THEN 1 ELSE 0 END), COUNT(*) FROM ").append(table);
+ break;
+ case MYSQL:
+ case MARIADB:
+ builder.append("SELECT SUM(CASE WHEN DATEDIFF(NOW(), ").append(column).append(") >= ").append(map.get(THRESHOLD)).append(" THEN 1 ELSE 0 END), COUNT(*) FROM ").append(table);
+ break;
+ case SQL_SERVER:
+ case SQL_SERVER2008:
+ builder.append("SELECT SUM(CASE WHEN DATEDIFF(DAY, ").append(column).append(", GETDATE()) >= ").append(map.get(THRESHOLD)).append(" THEN 1 ELSE 0 END), COUNT(*) FROM ").append(table);
+ break;
+ case POSTGRE_SQL:
+ case OTHER:
+ default:
+ break;
+ }
+ return builder.toString();
+ }
+
+ @Override
+ public String code() {
+ return "timeliness_key";
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/schedule/rules/UniqueRule.java b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/UniqueRule.java
new file mode 100644
index 0000000..87fed6f
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/schedule/rules/UniqueRule.java
@@ -0,0 +1,27 @@
+package com.czsj.quality.schedule.rules;
+
+import com.czsj.common.database.constants.DbType;
+
+import java.util.Map;
+
+/**
+ * 唯一性核查
+ * 核查项:主键
+ * select count(distinct id), count(*) from table;
+ */
+public class UniqueRule implements RuleItem {
+
+ @Override
+ public String parse(DbType dbType, String table, String column, Map map) {
+ final StringBuilder builder = new StringBuilder();
+ builder.append("SELECT totalCount - errorCount AS errorCount, totalCount FROM (");
+ builder.append("SELECT COUNT(DISTINCT ").append(column).append(") AS errorCount, COUNT(*) AS totalCount FROM ").append(table);
+ builder.append(") TEMP");
+ return builder.toString();
+ }
+
+ @Override
+ public String code() {
+ return "unique_key";
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/service/CheckReportService.java b/czsj-system/src/main/java/com/czsj/quality/service/CheckReportService.java
new file mode 100644
index 0000000..92879be
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/service/CheckReportService.java
@@ -0,0 +1,37 @@
+package com.czsj.quality.service;
+
+
+
+import com.czsj.core.database.base.BaseService;
+import com.czsj.quality.entity.CheckReportEntity;
+import com.czsj.quality.entity.DataReportEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ * 核查报告信息表 服务类
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+public interface CheckReportService extends BaseService {
+
+ CheckReportEntity getCheckReportById(String id);
+
+ /**
+ * 按数据源统计
+ * @return
+ */
+ List getReportBySource(String checkDate);
+
+ /**
+ * 按规则类型统计
+ * @return
+ */
+ List getReportByType(String checkDate);
+
+ Map getReportDetail(String checkDate);
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/service/CheckRuleService.java b/czsj-system/src/main/java/com/czsj/quality/service/CheckRuleService.java
new file mode 100644
index 0000000..eda09a7
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/service/CheckRuleService.java
@@ -0,0 +1,29 @@
+package com.czsj.quality.service;
+
+
+import com.czsj.core.database.base.BaseService;
+import com.czsj.quality.dto.CheckRuleDto;
+import com.czsj.quality.entity.CheckRuleEntity;
+
+import java.util.List;
+
+/**
+ *
+ * 核查规则信息表 服务类
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+public interface CheckRuleService extends BaseService {
+
+ CheckRuleEntity saveCheckRule(CheckRuleDto checkRule);
+
+ CheckRuleEntity updateCheckRule(CheckRuleDto checkRule);
+
+ CheckRuleEntity getCheckRuleById(String id);
+
+ void deleteCheckRuleById(String id);
+
+ void deleteCheckRuleBatch(List ids);
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/service/RuleItemService.java b/czsj-system/src/main/java/com/czsj/quality/service/RuleItemService.java
new file mode 100644
index 0000000..5cb5459
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/service/RuleItemService.java
@@ -0,0 +1,18 @@
+package com.czsj.quality.service;
+
+
+import com.czsj.core.database.base.BaseService;
+import com.czsj.quality.entity.RuleItemEntity;
+
+/**
+ *
+ * 规则核查项信息表 服务类
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-15
+ */
+public interface RuleItemService extends BaseService {
+
+ RuleItemEntity getRuleItemById(String id);
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/service/RuleLevelService.java b/czsj-system/src/main/java/com/czsj/quality/service/RuleLevelService.java
new file mode 100644
index 0000000..daf5cf8
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/service/RuleLevelService.java
@@ -0,0 +1,17 @@
+package com.czsj.quality.service;
+
+import com.czsj.core.database.base.BaseService;
+import com.czsj.quality.entity.RuleLevelEntity;
+
+/**
+ *
+ * 规则级别信息表 服务类
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-14
+ */
+public interface RuleLevelService extends BaseService {
+
+ RuleLevelEntity getRuleLevelById(String id);
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/service/RuleTypeService.java b/czsj-system/src/main/java/com/czsj/quality/service/RuleTypeService.java
new file mode 100644
index 0000000..dac9cbb
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/service/RuleTypeService.java
@@ -0,0 +1,23 @@
+package com.czsj.quality.service;
+
+
+import com.czsj.core.database.base.BaseService;
+import com.czsj.quality.entity.RuleTypeEntity;
+import com.czsj.quality.entity.RuleTypeReportEntity;
+
+import java.util.List;
+
+/**
+ *
+ * 规则类型信息表 服务类
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+public interface RuleTypeService extends BaseService {
+
+ RuleTypeEntity getRuleTypeById(String id);
+
+ List getRuleTypeListForReport();
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/service/impl/CheckReportServiceImpl.java b/czsj-system/src/main/java/com/czsj/quality/service/impl/CheckReportServiceImpl.java
new file mode 100644
index 0000000..1ca08bb
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/service/impl/CheckReportServiceImpl.java
@@ -0,0 +1,102 @@
+package com.czsj.quality.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.czsj.core.database.base.BaseServiceImpl;
+import com.czsj.quality.entity.CheckReportEntity;
+import com.czsj.quality.entity.DataReportEntity;
+import com.czsj.quality.entity.RuleLevelEntity;
+import com.czsj.quality.entity.RuleTypeEntity;
+import com.czsj.quality.mapper.CheckReportDao;
+import com.czsj.quality.mapper.RuleLevelDao;
+import com.czsj.quality.mapper.RuleTypeDao;
+import com.czsj.quality.mapstruct.CheckReportMapper;
+import com.czsj.quality.service.CheckReportService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 核查报告信息表 服务实现类
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Service
+@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
+public class CheckReportServiceImpl extends BaseServiceImpl implements CheckReportService {
+
+ @Autowired
+ private CheckReportDao checkReportDao;
+
+ @Autowired
+ private CheckReportMapper checkReportMapper;
+
+ @Autowired
+ private RuleLevelDao ruleLevelDao;
+
+ @Autowired
+ private RuleTypeDao ruleTypeDao;
+
+ @Override
+ public CheckReportEntity getCheckReportById(String id) {
+ CheckReportEntity checkReportEntity = super.getById(id);
+ return checkReportEntity;
+ }
+
+ @Override
+ public List getReportBySource(String checkDate) {
+ List ruleLevelList = ruleLevelDao.selectList(Wrappers.emptyWrapper());
+ List list = checkReportDao.getReportBySource(checkDate);
+ // 补全数据
+ List differenceReportList = new ArrayList<>();
+ // 补全数据源分组缺失的规则级别数据
+ Map> sourceMap = list.stream().collect(Collectors.groupingBy(DataReportEntity::getRuleSourceId));
+ Iterator>> sourceIterator = sourceMap.entrySet().iterator();
+ while (sourceIterator.hasNext()) {
+ Map.Entry> sourceEntry = sourceIterator.next();
+ List entryValue = sourceEntry.getValue();
+ DataReportEntity dataReportEntity = entryValue.get(0);
+ // 差集 (ruleLevelList - entryValue)
+ ruleLevelList.stream().filter(item -> entryValue.stream().map(DataReportEntity::getRuleLevelId).noneMatch(id -> Objects.equals(item.getId(), id)))
+ .forEach(s -> {
+ DataReportEntity report = new DataReportEntity();
+ report.setRuleSourceId(dataReportEntity.getRuleSourceId());
+ report.setRuleSourceName(dataReportEntity.getRuleSourceName());
+ report.setRuleLevelId(s.getId());
+ report.setRuleLevelName(s.getName());
+ report.setCheckErrorCount(0);
+ differenceReportList.add(report);
+ });
+ }
+ list.addAll(differenceReportList);
+ // 排序
+ list = list.stream().sorted(Comparator.comparing(DataReportEntity::getRuleSourceId).thenComparing(DataReportEntity::getRuleLevelId)).collect(Collectors.toList());
+ return list;
+ }
+
+ @Override
+ public List getReportByType(String checkDate) {
+ List list = checkReportDao.getReportByType(checkDate);
+ // 排序
+ list = list.stream().sorted(Comparator.comparing(DataReportEntity::getRuleTypeId)).collect(Collectors.toList());
+ return list;
+ }
+
+ @Override
+ public Map getReportDetail(String checkDate) {
+ Map map = new HashMap<>();
+ List ruleTypeList = ruleTypeDao.selectList(Wrappers.emptyWrapper());
+ List dataReportList = checkReportDao.getReportDetail(checkDate);
+ Map> listMap = dataReportList.stream().collect(Collectors.groupingBy(DataReportEntity::getRuleTypeCode));
+ ruleTypeList.stream().forEach(s -> {
+ map.put(s.getCode(), listMap.get(s.getCode()));
+ });
+ return map;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/service/impl/CheckRuleServiceImpl.java b/czsj-system/src/main/java/com/czsj/quality/service/impl/CheckRuleServiceImpl.java
new file mode 100644
index 0000000..46f7a0a
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/service/impl/CheckRuleServiceImpl.java
@@ -0,0 +1,131 @@
+package com.czsj.quality.service.impl;
+
+import com.czsj.common.core.redis.RedisCache;
+import com.czsj.common.database.constants.DbType;
+import com.czsj.core.database.base.BaseServiceImpl;
+import com.czsj.core.database.core.RedisConstant;
+import com.czsj.quality.dto.*;
+import com.czsj.quality.entity.CheckRuleEntity;
+import com.czsj.quality.enums.RuleItem;
+import com.czsj.quality.mapper.CheckRuleDao;
+import com.czsj.quality.mapstruct.CheckRuleMapper;
+import com.czsj.quality.schedule.CheckRuleFactory;
+import com.czsj.quality.service.CheckRuleService;
+import com.czsj.standard.entity.DictEntity;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 核查规则信息表 服务实现类
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Service
+@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
+public class CheckRuleServiceImpl extends BaseServiceImpl implements CheckRuleService {
+
+ @Autowired
+ private CheckRuleDao checkRuleDao;
+
+ @Autowired
+ private CheckRuleMapper checkRuleMapper;
+
+ @Autowired
+ private RedisCache redisService;
+
+ private static String BIND_GB_CODE = "gb_code";
+ private static String BIND_GB_NAME = "gb_name";
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public CheckRuleEntity saveCheckRule(CheckRuleDto checkRuleDto) {
+ CheckRuleEntity checkRule = checkRuleMapper.toEntity(checkRuleDto);
+ String sql = parseSql(checkRule);
+ checkRule.setRuleSql(sql);
+ checkRuleDao.insert(checkRule);
+ return checkRule;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public CheckRuleEntity updateCheckRule(CheckRuleDto checkRuleDto) {
+ CheckRuleEntity checkRule = checkRuleMapper.toEntity(checkRuleDto);
+ String sql = parseSql(checkRule);
+ checkRule.setRuleSql(sql);
+ checkRuleDao.updateById(checkRule);
+ return checkRule;
+ }
+
+ @Override
+ public CheckRuleEntity getCheckRuleById(String id) {
+ CheckRuleEntity checkRuleEntity = super.getById(id);
+ return checkRuleEntity;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteCheckRuleById(String id) {
+ checkRuleDao.deleteById(id);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteCheckRuleBatch(List ids) {
+ checkRuleDao.deleteBatchIds(ids);
+ }
+
+ private String parseSql(CheckRuleEntity checkRule) {
+ RuleConfig ruleConfig = checkRule.getRuleConfig();
+ Map map = new HashMap<>();
+ RuleItem ruleItem = RuleItem.getRuleItem(ruleConfig.getRuleItemCode());
+ switch (ruleItem) {
+ case Unique:
+ case Integrity:
+ break;
+ // 一致性参数处理
+ case Consistent:
+ Consistent consistent = ruleConfig.getConsistent();
+ List dictEntityList = (List) redisService.hget(RedisConstant.STANDARD_DICT_KEY, consistent.getGbTypeId());
+ String collect = dictEntityList.stream().map(s -> {
+ if (BIND_GB_CODE.equals(consistent.getBindGbColumn())) {
+ return "\'" + s.getGbCode() + "\'";
+ } else {
+ return "\'" + s.getGbName() + "\'";
+ }
+ }).collect(Collectors.joining(","));
+ map.put("gb_item", collect);
+ break;
+ // 关联性参数处理
+ case Relevance:
+ Relevance relevance = ruleConfig.getRelevance();
+ map.put("related_table", relevance.getRelatedTable());
+ map.put("related_column", relevance.getRelatedColumn());
+ break;
+ // 及时性参数处理
+ case Timeliness:
+ Timeliness timeliness = ruleConfig.getTimeliness();
+ map.put("threshold", timeliness.getThreshold());
+ break;
+ // 准确性参数处理
+ case AccuracyLength:
+ Accuracy accuracy = ruleConfig.getAccuracy();
+ map.put("max_length", accuracy.getMaxLength());
+ break;
+ default:
+ return null;
+ }
+ DbType dbType = DbType.getDbType(checkRule.getRuleDbType());
+ String sql = CheckRuleFactory.getRuleItem(ruleConfig.getRuleItemCode()).parse(dbType, checkRule.getRuleTable(), checkRule.getRuleColumn(), map);
+ return sql;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/service/impl/RuleItemServiceImpl.java b/czsj-system/src/main/java/com/czsj/quality/service/impl/RuleItemServiceImpl.java
new file mode 100644
index 0000000..d741870
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/service/impl/RuleItemServiceImpl.java
@@ -0,0 +1,36 @@
+package com.czsj.quality.service.impl;
+
+import com.czsj.core.database.base.BaseServiceImpl;
+import com.czsj.quality.entity.RuleItemEntity;
+import com.czsj.quality.mapper.RuleItemDao;
+import com.czsj.quality.mapstruct.RuleItemMapper;
+import com.czsj.quality.service.RuleItemService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ *
+ * 规则核查项信息表 服务实现类
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-15
+ */
+@Service
+@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
+public class RuleItemServiceImpl extends BaseServiceImpl implements RuleItemService {
+
+ @Autowired
+ private RuleItemDao ruleItemDao;
+
+ @Autowired
+ private RuleItemMapper ruleItemMapper;
+
+ @Override
+ public RuleItemEntity getRuleItemById(String id) {
+ RuleItemEntity ruleItemEntity = super.getById(id);
+ return ruleItemEntity;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/service/impl/RuleLevelServiceImpl.java b/czsj-system/src/main/java/com/czsj/quality/service/impl/RuleLevelServiceImpl.java
new file mode 100644
index 0000000..3d3b70b
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/service/impl/RuleLevelServiceImpl.java
@@ -0,0 +1,37 @@
+package com.czsj.quality.service.impl;
+
+
+import com.czsj.core.database.base.BaseServiceImpl;
+import com.czsj.quality.entity.RuleLevelEntity;
+import com.czsj.quality.mapper.RuleLevelDao;
+import com.czsj.quality.mapstruct.RuleLevelMapper;
+import com.czsj.quality.service.RuleLevelService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ *
+ * 规则级别信息表 服务实现类
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-14
+ */
+@Service
+@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
+public class RuleLevelServiceImpl extends BaseServiceImpl implements RuleLevelService {
+
+ @Autowired
+ private RuleLevelDao ruleLevelDao;
+
+ @Autowired
+ private RuleLevelMapper ruleLevelMapper;
+
+ @Override
+ public RuleLevelEntity getRuleLevelById(String id) {
+ RuleLevelEntity ruleLevelEntity = super.getById(id);
+ return ruleLevelEntity;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/service/impl/RuleTypeServiceImpl.java b/czsj-system/src/main/java/com/czsj/quality/service/impl/RuleTypeServiceImpl.java
new file mode 100644
index 0000000..d3fd43d
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/service/impl/RuleTypeServiceImpl.java
@@ -0,0 +1,46 @@
+package com.czsj.quality.service.impl;
+
+
+import com.czsj.core.database.base.BaseServiceImpl;
+import com.czsj.quality.entity.RuleTypeEntity;
+import com.czsj.quality.entity.RuleTypeReportEntity;
+import com.czsj.quality.mapper.RuleTypeDao;
+import com.czsj.quality.mapstruct.RuleTypeMapper;
+import com.czsj.quality.service.RuleTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ *
+ * 规则类型信息表 服务实现类
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Service
+@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
+public class RuleTypeServiceImpl extends BaseServiceImpl implements RuleTypeService {
+
+ @Autowired
+ private RuleTypeDao ruleTypeDao;
+
+ @Autowired
+ private RuleTypeMapper ruleTypeMapper;
+
+ @Override
+ public RuleTypeEntity getRuleTypeById(String id) {
+ RuleTypeEntity ruleTypeEntity = super.getById(id);
+ return ruleTypeEntity;
+ }
+
+ @Override
+ public List getRuleTypeListForReport() {
+ List list = ruleTypeDao.selectListForReport();
+ return list;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/vo/CheckReportVo.java b/czsj-system/src/main/java/com/czsj/quality/vo/CheckReportVo.java
new file mode 100644
index 0000000..2b1afa7
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/vo/CheckReportVo.java
@@ -0,0 +1,34 @@
+package com.czsj.quality.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 核查报告信息表 实体VO
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Data
+public class CheckReportVo implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ private String id;
+ private String checkRuleId;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private LocalDateTime checkDate;
+ private String checkResult;
+ private Integer checkTotalCount;
+ private Integer checkErrorCount;
+ private String ruleName;
+ private String ruleType;
+ private String ruleSource;
+ private String ruleTable;
+ private String ruleColumn;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/vo/CheckRuleVo.java b/czsj-system/src/main/java/com/czsj/quality/vo/CheckRuleVo.java
new file mode 100644
index 0000000..344dade
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/vo/CheckRuleVo.java
@@ -0,0 +1,44 @@
+package com.czsj.quality.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.czsj.quality.dto.RuleConfig;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *
+ * 核查规则信息表 实体VO
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Data
+public class CheckRuleVo implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ private String id;
+ private String status;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createTime;
+ private String remark;
+ private String ruleName;
+ private String ruleTypeId;
+ private String ruleItemId;
+ private String ruleType;
+ private String ruleLevelId;
+ private String ruleLevel;
+ private String ruleDbType;
+ private String ruleSourceId;
+ private String ruleSource;
+ private String ruleTableId;
+ private String ruleTable;
+ private String ruleTableComment;
+ private String ruleColumnId;
+ private String ruleColumn;
+ private String ruleColumnComment;
+ private RuleConfig ruleConfig;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/vo/RuleItemVo.java b/czsj-system/src/main/java/com/czsj/quality/vo/RuleItemVo.java
new file mode 100644
index 0000000..3c8a253
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/vo/RuleItemVo.java
@@ -0,0 +1,24 @@
+package com.czsj.quality.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 规则核查项信息表 实体VO
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-15
+ */
+@Data
+public class RuleItemVo implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ private String id;
+ private String ruleTypeId;
+ private String itemCode;
+ private String itemExplain;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/vo/RuleLevelVo.java b/czsj-system/src/main/java/com/czsj/quality/vo/RuleLevelVo.java
new file mode 100644
index 0000000..a17710f
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/vo/RuleLevelVo.java
@@ -0,0 +1,23 @@
+package com.czsj.quality.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 规则级别信息表 实体VO
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-14
+ */
+@Data
+public class RuleLevelVo implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ private String id;
+ private String code;
+ private String name;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/vo/RuleTypeVo.java b/czsj-system/src/main/java/com/czsj/quality/vo/RuleTypeVo.java
new file mode 100644
index 0000000..971dc74
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/vo/RuleTypeVo.java
@@ -0,0 +1,23 @@
+package com.czsj.quality.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 规则类型信息表 实体VO
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Data
+public class RuleTypeVo implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ private String id;
+ private String name;
+ private String code;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/vo/ScheduleJobVo.java b/czsj-system/src/main/java/com/czsj/quality/vo/ScheduleJobVo.java
new file mode 100644
index 0000000..b66005a
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/vo/ScheduleJobVo.java
@@ -0,0 +1,27 @@
+package com.czsj.quality.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 数据质量监控任务信息表 实体VO
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-29
+ */
+@Data
+public class ScheduleJobVo implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ private String id;
+ private String status;
+ private String jobName;
+ private String beanName;
+ private String methodName;
+ private String methodParams;
+ private String cronExpression;
+}
diff --git a/czsj-system/src/main/java/com/czsj/quality/vo/ScheduleLogVo.java b/czsj-system/src/main/java/com/czsj/quality/vo/ScheduleLogVo.java
new file mode 100644
index 0000000..9e629f0
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/quality/vo/ScheduleLogVo.java
@@ -0,0 +1,33 @@
+package com.czsj.quality.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 数据质量监控任务日志信息表 实体VO
+ *
+ *
+ * @author yuwei
+ * @since 2020-10-13
+ */
+@Data
+public class ScheduleLogVo implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ private String id;
+ private String status;
+ private String executeJobId;
+ private String executeRuleId;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private LocalDateTime executeDate;
+ private String executeResult;
+ private String executeBatch;
+ private String executeJobName;
+ private String executeRuleName;
+ private String executeRuleTypeName;
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/dto/ContrastDictDto.java b/czsj-system/src/main/java/com/czsj/standard/dto/ContrastDictDto.java
new file mode 100644
index 0000000..a35dec0
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/dto/ContrastDictDto.java
@@ -0,0 +1,40 @@
+package com.czsj.standard.dto;
+
+import com.czsj.metadata.validate.ValidationGroups;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ *
+ * 字典对照信息表 实体DTO
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@ApiModel(value = "字典对照信息表Model")
+@Data
+public class ContrastDictDto implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ @ApiModelProperty(value = "主键ID")
+ @NotBlank(message = "主键ID不能为空", groups = {ValidationGroups.Update.class})
+ private String id;
+ @ApiModelProperty(value = "字典对照主键")
+ private String contrastId;
+ @ApiModelProperty(value = "字典编码")
+ private String colCode;
+ @ApiModelProperty(value = "字典名称")
+ private String colName;
+ @ApiModelProperty(value = "状态")
+ @NotNull(message = "状态不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
+ private String status;
+ @ApiModelProperty(value = "备注")
+ private String remark;
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/dto/ContrastDto.java b/czsj-system/src/main/java/com/czsj/standard/dto/ContrastDto.java
new file mode 100644
index 0000000..df0b056
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/dto/ContrastDto.java
@@ -0,0 +1,48 @@
+package com.czsj.standard.dto;
+
+import com.czsj.metadata.validate.ValidationGroups;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ *
+ * 对照表信息表 实体DTO
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@ApiModel(value = "对照表信息表Model")
+@Data
+public class ContrastDto implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ @ApiModelProperty(value = "主键ID")
+ @NotBlank(message = "主键ID不能为空", groups = {ValidationGroups.Update.class})
+ private String id;
+ @ApiModelProperty(value = "数据源主键")
+ private String sourceId;
+ @ApiModelProperty(value = "数据源")
+ private String sourceName;
+ @ApiModelProperty(value = "数据表主键")
+ private String tableId;
+ @ApiModelProperty(value = "数据表")
+ private String tableName;
+ @ApiModelProperty(value = "数据表名称")
+ private String tableComment;
+ @ApiModelProperty(value = "对照字段主键")
+ private String columnId;
+ @ApiModelProperty(value = "对照字段")
+ private String columnName;
+ @ApiModelProperty(value = "对照字段名称")
+ private String columnComment;
+ @ApiModelProperty(value = "标准类别主键")
+ private String gbTypeId;
+ @ApiModelProperty(value = "绑定标准字段")
+ private String bindGbColumn;
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/dto/DictDto.java b/czsj-system/src/main/java/com/czsj/standard/dto/DictDto.java
new file mode 100644
index 0000000..86fd7b4
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/dto/DictDto.java
@@ -0,0 +1,43 @@
+package com.czsj.standard.dto;
+
+
+import com.czsj.metadata.validate.ValidationGroups;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+/**
+ *
+ * 数据标准字典表 实体DTO
+ *
+ *
+ * @author yuwei
+ * @since 2020-08-26
+ */
+@ApiModel(value = "数据标准字典表Model")
+@Data
+public class DictDto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "主键ID")
+ @NotBlank(message = "主键ID不能为空", groups = {ValidationGroups.Update.class})
+ private String id;
+ @ApiModelProperty(value = "所属类别")
+ @NotBlank(message = "所属类别不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
+ private String typeId;
+ @ApiModelProperty(value = "标准编码")
+ @NotBlank(message = "标准编码不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
+ private String gbCode;
+ @ApiModelProperty(value = "标准名称")
+ @NotBlank(message = "标准名称不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
+ private String gbName;
+ @ApiModelProperty(value = "状态")
+ @NotNull(message = "状态不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
+ private String status;
+ @ApiModelProperty(value = "备注")
+ private String remark;
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/dto/Endpoint.java b/czsj-system/src/main/java/com/czsj/standard/dto/Endpoint.java
new file mode 100644
index 0000000..51e18c3
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/dto/Endpoint.java
@@ -0,0 +1,18 @@
+package com.czsj.standard.dto;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+@Data
+public class Endpoint implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ @NotBlank(message = "源端点不能为空")
+ private String sourceId;
+
+ @NotBlank(message = "目标端点不能为空")
+ private String targetId;
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/dto/ManualMappingDto.java b/czsj-system/src/main/java/com/czsj/standard/dto/ManualMappingDto.java
new file mode 100644
index 0000000..61548d0
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/dto/ManualMappingDto.java
@@ -0,0 +1,20 @@
+package com.czsj.standard.dto;
+
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class ManualMappingDto implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ @Valid
+ @NotEmpty(message = "对照关系不能为空")
+ @Size(min = 1, message="对照关系长度不能少于{min}位")
+ private List endpoints;
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/dto/TypeDto.java b/czsj-system/src/main/java/com/czsj/standard/dto/TypeDto.java
new file mode 100644
index 0000000..2aa9ff9
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/dto/TypeDto.java
@@ -0,0 +1,33 @@
+package com.czsj.standard.dto;
+
+import com.czsj.metadata.validate.ValidationGroups;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+/**
+ *
+ * 数据标准类别表 实体DTO
+ *
+ *
+ * @author yuwei
+ * @since 2020-08-26
+ */
+@ApiModel(value = "数据标准类别表Model")
+@Data
+public class TypeDto implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ @ApiModelProperty(value = "主键ID")
+ @NotBlank(message = "主键ID不能为空", groups = {ValidationGroups.Update.class})
+ private String id;
+ @ApiModelProperty(value = "标准类别编码")
+ @NotBlank(message = "标准类别编码不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
+ private String gbTypeCode;
+ @ApiModelProperty(value = "标准类别名称")
+ @NotBlank(message = "标准类别名称不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
+ private String gbTypeName;
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/entity/ContrastDictEntity.java b/czsj-system/src/main/java/com/czsj/standard/entity/ContrastDictEntity.java
new file mode 100644
index 0000000..6184392
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/entity/ContrastDictEntity.java
@@ -0,0 +1,88 @@
+package com.czsj.standard.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.czsj.core.database.base.DataScopeBaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ *
+ * 字典对照信息表
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName(value = "standard_contrast_dict", autoResultMap = true)
+public class ContrastDictEntity extends DataScopeBaseEntity {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 字典对照主键
+ */
+ private String contrastId;
+
+ /**
+ * 数据源
+ */
+ @TableField(exist = false)
+ private String sourceName;
+
+ /**
+ * 数据表
+ */
+ @TableField(exist = false)
+ private String tableName;
+
+ /**
+ * 对照字段
+ */
+ @TableField(exist = false)
+ private String columnName;
+
+ /**
+ * 标准类别编码
+ */
+ @TableField(exist = false)
+ private String gbTypeCode;
+
+ /**
+ * 标准类别名称
+ */
+ @TableField(exist = false)
+ private String gbTypeName;
+
+ /**
+ * 字典编码
+ */
+ private String colCode;
+
+ /**
+ * 字典名称
+ */
+ private String colName;
+
+ /**
+ * 对照的标准字典
+ */
+ private String contrastGbId;
+
+ /**
+ * 对照的标准编码
+ */
+ @TableField(exist = false)
+ private String contrastGbCode;
+
+ /**
+ * 对照的标准名称
+ */
+ @TableField(exist = false)
+ private String contrastGbName;
+
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/entity/ContrastEntity.java b/czsj-system/src/main/java/com/czsj/standard/entity/ContrastEntity.java
new file mode 100644
index 0000000..8b01376
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/entity/ContrastEntity.java
@@ -0,0 +1,99 @@
+package com.czsj.standard.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.czsj.core.database.base.DataScopeBaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ *
+ * 对照表信息表
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName(value = "standard_contrast", autoResultMap = true)
+public class ContrastEntity extends DataScopeBaseEntity {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 数据源主键
+ */
+ private String sourceId;
+
+ /**
+ * 数据源
+ */
+ private String sourceName;
+
+ /**
+ * 数据表主键
+ */
+ private String tableId;
+
+ /**
+ * 数据表
+ */
+ private String tableName;
+
+ /**
+ * 数据表名称
+ */
+ private String tableComment;
+
+ /**
+ * 对照字段主键
+ */
+ private String columnId;
+
+ /**
+ * 对照字段
+ */
+ private String columnName;
+
+ /**
+ * 对照字段名称
+ */
+ private String columnComment;
+
+ /**
+ * 标准类别主键
+ */
+ private String gbTypeId;
+
+ /**
+ * 标准类别编码
+ */
+ @TableField(exist = false)
+ private String gbTypeCode;
+
+ /**
+ * 标准类别名称
+ */
+ @TableField(exist = false)
+ private String gbTypeName;
+
+ /**
+ * 绑定标准字段
+ */
+ private String bindGbColumn;
+
+ /**
+ * 对照数量
+ */
+ @TableField(exist = false)
+ private Integer mappingCount;
+
+ /**
+ * 未对照数量
+ */
+ @TableField(exist = false)
+ private Integer unMappingCount;
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/entity/DictEntity.java b/czsj-system/src/main/java/com/czsj/standard/entity/DictEntity.java
new file mode 100644
index 0000000..30a0cb7
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/entity/DictEntity.java
@@ -0,0 +1,52 @@
+package com.czsj.standard.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.czsj.core.database.base.DataScopeBaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ *
+ * 数据标准字典表
+ *
+ *
+ * @author yuwei
+ * @since 2020-08-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("standard_dict")
+public class DictEntity extends DataScopeBaseEntity {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 所属类别
+ */
+ private String typeId;
+
+ /**
+ * 标准类别编码
+ */
+ @TableField(exist = false)
+ private String gbTypeCode;
+
+ /**
+ * 标准类别名称
+ */
+ @TableField(exist = false)
+ private String gbTypeName;
+
+ /**
+ * 标准编码
+ */
+ private String gbCode;
+
+ /**
+ * 标准名称
+ */
+ private String gbName;
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/entity/TypeEntity.java b/czsj-system/src/main/java/com/czsj/standard/entity/TypeEntity.java
new file mode 100644
index 0000000..6360b50
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/entity/TypeEntity.java
@@ -0,0 +1,34 @@
+package com.czsj.standard.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.czsj.core.database.base.DataScopeBaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ *
+ * 数据标准类别表
+ *
+ *
+ * @author yuwei
+ * @since 2020-08-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("standard_type")
+public class TypeEntity extends DataScopeBaseEntity {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 标准类别编码
+ */
+ private String gbTypeCode;
+
+ /**
+ * 标准类别名称
+ */
+ private String gbTypeName;
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/mapper/ContrastDao.java b/czsj-system/src/main/java/com/czsj/standard/mapper/ContrastDao.java
new file mode 100644
index 0000000..35ef510
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/mapper/ContrastDao.java
@@ -0,0 +1,29 @@
+package com.czsj.standard.mapper;
+
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.czsj.core.database.base.BaseDao;
+import com.czsj.standard.entity.ContrastEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 对照表信息表 Mapper 接口
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Mapper
+public interface ContrastDao extends BaseDao {
+
+ @Override
+ ContrastEntity selectById(Serializable id);
+
+ IPage statistic(IPage page, @Param(Constants.WRAPPER) Wrapper queryWrapper);
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/mapper/ContrastDictDao.java b/czsj-system/src/main/java/com/czsj/standard/mapper/ContrastDictDao.java
new file mode 100644
index 0000000..c4a4c77
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/mapper/ContrastDictDao.java
@@ -0,0 +1,30 @@
+package com.czsj.standard.mapper;
+
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.czsj.core.database.base.BaseDao;
+import com.czsj.standard.entity.ContrastDictEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ *
+ * 字典对照信息表 Mapper 接口
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Mapper
+public interface ContrastDictDao extends BaseDao {
+
+ @Override
+ List selectList(@Param(Constants.WRAPPER) Wrapper queryWrapper);
+
+ @Override
+ > E selectPage(E page, @Param(Constants.WRAPPER) Wrapper queryWrapper);
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/mapper/DictDao.java b/czsj-system/src/main/java/com/czsj/standard/mapper/DictDao.java
new file mode 100644
index 0000000..1bd9f3c
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/mapper/DictDao.java
@@ -0,0 +1,29 @@
+package com.czsj.standard.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.czsj.core.database.base.BaseDao;
+import com.czsj.standard.entity.DictEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 数据标准字典表 Mapper 接口
+ *
+ *
+ * @author yuwei
+ * @since 2020-08-26
+ */
+@Mapper
+public interface DictDao extends BaseDao {
+
+ @Override
+ DictEntity selectById(Serializable id);
+
+ @Override
+ > E selectPage(E page, @Param(Constants.WRAPPER) Wrapper queryWrapper);
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/mapper/TypeDao.java b/czsj-system/src/main/java/com/czsj/standard/mapper/TypeDao.java
new file mode 100644
index 0000000..b9e27aa
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/mapper/TypeDao.java
@@ -0,0 +1,19 @@
+package com.czsj.standard.mapper;
+
+
+import com.czsj.core.database.base.BaseDao;
+import com.czsj.standard.entity.TypeEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ *
+ * 数据标准类别表 Mapper 接口
+ *
+ *
+ * @author yuwei
+ * @since 2020-08-26
+ */
+@Mapper
+public interface TypeDao extends BaseDao {
+
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/mapstruct/ContrastDictMapper.java b/czsj-system/src/main/java/com/czsj/standard/mapstruct/ContrastDictMapper.java
new file mode 100644
index 0000000..0234eaf
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/mapstruct/ContrastDictMapper.java
@@ -0,0 +1,21 @@
+package com.czsj.standard.mapstruct;
+
+
+import com.czsj.metadata.mapstruct.EntityMapper;
+import com.czsj.standard.dto.ContrastDictDto;
+import com.czsj.standard.entity.ContrastDictEntity;
+import com.czsj.standard.vo.ContrastDictVo;
+import org.mapstruct.Mapper;
+
+/**
+ *
+ * 字典对照信息表 Mapper 实体映射
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Mapper(componentModel = "spring")
+public interface ContrastDictMapper extends EntityMapper {
+
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/mapstruct/ContrastMapper.java b/czsj-system/src/main/java/com/czsj/standard/mapstruct/ContrastMapper.java
new file mode 100644
index 0000000..8caeb37
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/mapstruct/ContrastMapper.java
@@ -0,0 +1,37 @@
+package com.czsj.standard.mapstruct;
+
+
+import com.czsj.metadata.mapstruct.EntityMapper;
+import com.czsj.standard.dto.ContrastDto;
+import com.czsj.standard.entity.ContrastEntity;
+import com.czsj.standard.vo.ContrastStatisticVo;
+import com.czsj.standard.vo.ContrastVo;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+/**
+ *
+ * 对照表信息表 Mapper 实体映射
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Mapper(componentModel = "spring")
+public interface ContrastMapper extends EntityMapper {
+
+ /**
+ * 将源对象转换为VO对象
+ * @param e
+ * @return D
+ */
+ ContrastStatisticVo toSVO(ContrastEntity e);
+
+ /**
+ * 将源对象集合转换为VO对象集合
+ * @param es
+ * @return List
+ */
+ List toSVO(List es);
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/mapstruct/DictMapper.java b/czsj-system/src/main/java/com/czsj/standard/mapstruct/DictMapper.java
new file mode 100644
index 0000000..1d66473
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/mapstruct/DictMapper.java
@@ -0,0 +1,20 @@
+package com.czsj.standard.mapstruct;
+
+import com.czsj.metadata.mapstruct.EntityMapper;
+import com.czsj.standard.dto.DictDto;
+import com.czsj.standard.entity.DictEntity;
+import com.czsj.standard.vo.DictVo;
+import org.mapstruct.Mapper;
+
+/**
+ *
+ * 数据标准字典表 Mapper 实体映射
+ *
+ *
+ * @author yuwei
+ * @since 2020-08-26
+ */
+@Mapper(componentModel = "spring")
+public interface DictMapper extends EntityMapper {
+
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/mapstruct/TypeMapper.java b/czsj-system/src/main/java/com/czsj/standard/mapstruct/TypeMapper.java
new file mode 100644
index 0000000..d2e2a8c
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/mapstruct/TypeMapper.java
@@ -0,0 +1,21 @@
+package com.czsj.standard.mapstruct;
+
+
+import com.czsj.metadata.mapstruct.EntityMapper;
+import com.czsj.standard.dto.TypeDto;
+import com.czsj.standard.entity.TypeEntity;
+import com.czsj.standard.vo.TypeVo;
+import org.mapstruct.Mapper;
+
+/**
+ *
+ * 数据标准类别表 Mapper 实体映射
+ *
+ *
+ * @author yuwei
+ * @since 2020-08-26
+ */
+@Mapper(componentModel = "spring")
+public interface TypeMapper extends EntityMapper {
+
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/ContrastDictMapperImpl.java b/czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/ContrastDictMapperImpl.java
new file mode 100644
index 0000000..220108a
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/ContrastDictMapperImpl.java
@@ -0,0 +1,126 @@
+package com.czsj.standard.mapstruct.impl;
+
+
+import com.czsj.standard.dto.ContrastDictDto;
+import com.czsj.standard.entity.ContrastDictEntity;
+import com.czsj.standard.mapstruct.ContrastDictMapper;
+import com.czsj.standard.vo.ContrastDictVo;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Generated;
+import java.util.ArrayList;
+import java.util.List;
+
+@Generated(
+ value = "org.mapstruct.ap.MappingProcessor",
+ date = "2023-04-27T15:15:10+0800",
+ comments = "version: 1.3.1.Final, compiler: javac, environment: Java 1.8.0_231 (Oracle Corporation)"
+)
+@Component
+public class ContrastDictMapperImpl implements ContrastDictMapper {
+
+ @Override
+ public ContrastDictDto toDTO(ContrastDictEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ ContrastDictDto contrastDictDto = new ContrastDictDto();
+
+ contrastDictDto.setId( e.getId() );
+ contrastDictDto.setContrastId( e.getContrastId() );
+ contrastDictDto.setColCode( e.getColCode() );
+ contrastDictDto.setColName( e.getColName() );
+ contrastDictDto.setStatus( e.getStatus() );
+ contrastDictDto.setRemark( e.getRemark() );
+
+ return contrastDictDto;
+ }
+
+ @Override
+ public List toDTO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( ContrastDictEntity contrastDictEntity : es ) {
+ list.add( toDTO( contrastDictEntity ) );
+ }
+
+ return list;
+ }
+
+ @Override
+ public ContrastDictVo toVO(ContrastDictEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ ContrastDictVo contrastDictVo = new ContrastDictVo();
+
+ contrastDictVo.setId( e.getId() );
+ contrastDictVo.setStatus( e.getStatus() );
+ contrastDictVo.setCreateTime( e.getCreateTime() );
+ contrastDictVo.setRemark( e.getRemark() );
+ contrastDictVo.setContrastId( e.getContrastId() );
+ contrastDictVo.setColCode( e.getColCode() );
+ contrastDictVo.setColName( e.getColName() );
+ contrastDictVo.setContrastGbId( e.getContrastGbId() );
+ contrastDictVo.setContrastGbCode( e.getContrastGbCode() );
+ contrastDictVo.setContrastGbName( e.getContrastGbName() );
+ contrastDictVo.setSourceName( e.getSourceName() );
+ contrastDictVo.setTableName( e.getTableName() );
+ contrastDictVo.setColumnName( e.getColumnName() );
+ contrastDictVo.setGbTypeCode( e.getGbTypeCode() );
+ contrastDictVo.setGbTypeName( e.getGbTypeName() );
+
+ return contrastDictVo;
+ }
+
+ @Override
+ public List toVO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( ContrastDictEntity contrastDictEntity : es ) {
+ list.add( toVO( contrastDictEntity ) );
+ }
+
+ return list;
+ }
+
+ @Override
+ public ContrastDictEntity toEntity(ContrastDictDto d) {
+ if ( d == null ) {
+ return null;
+ }
+
+ ContrastDictEntity contrastDictEntity = new ContrastDictEntity();
+
+ contrastDictEntity.setId( d.getId() );
+ contrastDictEntity.setStatus( d.getStatus() );
+ contrastDictEntity.setRemark( d.getRemark() );
+ contrastDictEntity.setContrastId( d.getContrastId() );
+ contrastDictEntity.setColCode( d.getColCode() );
+ contrastDictEntity.setColName( d.getColName() );
+
+ return contrastDictEntity;
+ }
+
+ @Override
+ public List toEntity(List ds) {
+ if ( ds == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( ds.size() );
+ for ( ContrastDictDto contrastDictDto : ds ) {
+ list.add( toEntity( contrastDictDto ) );
+ }
+
+ return list;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/ContrastMapperImpl.java b/czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/ContrastMapperImpl.java
new file mode 100644
index 0000000..3686f5f
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/ContrastMapperImpl.java
@@ -0,0 +1,182 @@
+package com.czsj.standard.mapstruct.impl;
+
+
+import com.czsj.standard.dto.ContrastDto;
+import com.czsj.standard.entity.ContrastEntity;
+import com.czsj.standard.mapstruct.ContrastMapper;
+import com.czsj.standard.vo.ContrastStatisticVo;
+import com.czsj.standard.vo.ContrastVo;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Generated;
+import java.util.ArrayList;
+import java.util.List;
+
+@Generated(
+ value = "org.mapstruct.ap.MappingProcessor",
+ date = "2023-04-27T15:15:10+0800",
+ comments = "version: 1.3.1.Final, compiler: javac, environment: Java 1.8.0_231 (Oracle Corporation)"
+)
+@Component
+public class ContrastMapperImpl implements ContrastMapper {
+
+ @Override
+ public ContrastDto toDTO(ContrastEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ ContrastDto contrastDto = new ContrastDto();
+
+ contrastDto.setId( e.getId() );
+ contrastDto.setSourceId( e.getSourceId() );
+ contrastDto.setSourceName( e.getSourceName() );
+ contrastDto.setTableId( e.getTableId() );
+ contrastDto.setTableName( e.getTableName() );
+ contrastDto.setTableComment( e.getTableComment() );
+ contrastDto.setColumnId( e.getColumnId() );
+ contrastDto.setColumnName( e.getColumnName() );
+ contrastDto.setColumnComment( e.getColumnComment() );
+ contrastDto.setGbTypeId( e.getGbTypeId() );
+ contrastDto.setBindGbColumn( e.getBindGbColumn() );
+
+ return contrastDto;
+ }
+
+ @Override
+ public List toDTO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( ContrastEntity contrastEntity : es ) {
+ list.add( toDTO( contrastEntity ) );
+ }
+
+ return list;
+ }
+
+ @Override
+ public ContrastVo toVO(ContrastEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ ContrastVo contrastVo = new ContrastVo();
+
+ contrastVo.setId( e.getId() );
+ contrastVo.setStatus( e.getStatus() );
+ contrastVo.setCreateTime( e.getCreateTime() );
+ contrastVo.setRemark( e.getRemark() );
+ contrastVo.setSourceId( e.getSourceId() );
+ contrastVo.setSourceName( e.getSourceName() );
+ contrastVo.setTableId( e.getTableId() );
+ contrastVo.setTableName( e.getTableName() );
+ contrastVo.setTableComment( e.getTableComment() );
+ contrastVo.setColumnId( e.getColumnId() );
+ contrastVo.setColumnName( e.getColumnName() );
+ contrastVo.setColumnComment( e.getColumnComment() );
+ contrastVo.setGbTypeId( e.getGbTypeId() );
+ contrastVo.setGbTypeCode( e.getGbTypeCode() );
+ contrastVo.setGbTypeName( e.getGbTypeName() );
+ contrastVo.setBindGbColumn( e.getBindGbColumn() );
+
+ return contrastVo;
+ }
+
+ @Override
+ public List toVO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( ContrastEntity contrastEntity : es ) {
+ list.add( toVO( contrastEntity ) );
+ }
+
+ return list;
+ }
+
+ @Override
+ public ContrastEntity toEntity(ContrastDto d) {
+ if ( d == null ) {
+ return null;
+ }
+
+ ContrastEntity contrastEntity = new ContrastEntity();
+
+ contrastEntity.setId( d.getId() );
+ contrastEntity.setSourceId( d.getSourceId() );
+ contrastEntity.setSourceName( d.getSourceName() );
+ contrastEntity.setTableId( d.getTableId() );
+ contrastEntity.setTableName( d.getTableName() );
+ contrastEntity.setTableComment( d.getTableComment() );
+ contrastEntity.setColumnId( d.getColumnId() );
+ contrastEntity.setColumnName( d.getColumnName() );
+ contrastEntity.setColumnComment( d.getColumnComment() );
+ contrastEntity.setGbTypeId( d.getGbTypeId() );
+ contrastEntity.setBindGbColumn( d.getBindGbColumn() );
+
+ return contrastEntity;
+ }
+
+ @Override
+ public List toEntity(List ds) {
+ if ( ds == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( ds.size() );
+ for ( ContrastDto contrastDto : ds ) {
+ list.add( toEntity( contrastDto ) );
+ }
+
+ return list;
+ }
+
+ @Override
+ public ContrastStatisticVo toSVO(ContrastEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ ContrastStatisticVo contrastStatisticVo = new ContrastStatisticVo();
+
+ contrastStatisticVo.setId( e.getId() );
+ contrastStatisticVo.setStatus( e.getStatus() );
+ contrastStatisticVo.setCreateTime( e.getCreateTime() );
+ contrastStatisticVo.setRemark( e.getRemark() );
+ contrastStatisticVo.setSourceId( e.getSourceId() );
+ contrastStatisticVo.setSourceName( e.getSourceName() );
+ contrastStatisticVo.setTableId( e.getTableId() );
+ contrastStatisticVo.setTableName( e.getTableName() );
+ contrastStatisticVo.setTableComment( e.getTableComment() );
+ contrastStatisticVo.setColumnId( e.getColumnId() );
+ contrastStatisticVo.setColumnName( e.getColumnName() );
+ contrastStatisticVo.setColumnComment( e.getColumnComment() );
+ contrastStatisticVo.setGbTypeId( e.getGbTypeId() );
+ contrastStatisticVo.setGbTypeCode( e.getGbTypeCode() );
+ contrastStatisticVo.setGbTypeName( e.getGbTypeName() );
+ contrastStatisticVo.setBindGbColumn( e.getBindGbColumn() );
+ contrastStatisticVo.setMappingCount( e.getMappingCount() );
+ contrastStatisticVo.setUnMappingCount( e.getUnMappingCount() );
+
+ return contrastStatisticVo;
+ }
+
+ @Override
+ public List toSVO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( ContrastEntity contrastEntity : es ) {
+ list.add( toSVO( contrastEntity ) );
+ }
+
+ return list;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/DictMapperImpl.java b/czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/DictMapperImpl.java
new file mode 100644
index 0000000..e69d96d
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/DictMapperImpl.java
@@ -0,0 +1,120 @@
+package com.czsj.standard.mapstruct.impl;
+
+
+import com.czsj.standard.dto.DictDto;
+import com.czsj.standard.entity.DictEntity;
+import com.czsj.standard.mapstruct.DictMapper;
+import com.czsj.standard.vo.DictVo;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Generated;
+import java.util.ArrayList;
+import java.util.List;
+
+@Generated(
+ value = "org.mapstruct.ap.MappingProcessor",
+ date = "2023-04-27T15:15:10+0800",
+ comments = "version: 1.3.1.Final, compiler: javac, environment: Java 1.8.0_231 (Oracle Corporation)"
+)
+@Component
+public class DictMapperImpl implements DictMapper {
+
+ @Override
+ public DictDto toDTO(DictEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ DictDto dictDto = new DictDto();
+
+ dictDto.setId( e.getId() );
+ dictDto.setTypeId( e.getTypeId() );
+ dictDto.setGbCode( e.getGbCode() );
+ dictDto.setGbName( e.getGbName() );
+ dictDto.setStatus( e.getStatus() );
+ dictDto.setRemark( e.getRemark() );
+
+ return dictDto;
+ }
+
+ @Override
+ public List toDTO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( DictEntity dictEntity : es ) {
+ list.add( toDTO( dictEntity ) );
+ }
+
+ return list;
+ }
+
+ @Override
+ public DictVo toVO(DictEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ DictVo dictVo = new DictVo();
+
+ dictVo.setId( e.getId() );
+ dictVo.setStatus( e.getStatus() );
+ dictVo.setCreateTime( e.getCreateTime() );
+ dictVo.setRemark( e.getRemark() );
+ dictVo.setTypeId( e.getTypeId() );
+ dictVo.setGbTypeCode( e.getGbTypeCode() );
+ dictVo.setGbTypeName( e.getGbTypeName() );
+ dictVo.setGbCode( e.getGbCode() );
+ dictVo.setGbName( e.getGbName() );
+
+ return dictVo;
+ }
+
+ @Override
+ public List toVO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( DictEntity dictEntity : es ) {
+ list.add( toVO( dictEntity ) );
+ }
+
+ return list;
+ }
+
+ @Override
+ public DictEntity toEntity(DictDto d) {
+ if ( d == null ) {
+ return null;
+ }
+
+ DictEntity dictEntity = new DictEntity();
+
+ dictEntity.setId( d.getId() );
+ dictEntity.setStatus( d.getStatus() );
+ dictEntity.setRemark( d.getRemark() );
+ dictEntity.setTypeId( d.getTypeId() );
+ dictEntity.setGbCode( d.getGbCode() );
+ dictEntity.setGbName( d.getGbName() );
+
+ return dictEntity;
+ }
+
+ @Override
+ public List toEntity(List ds) {
+ if ( ds == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( ds.size() );
+ for ( DictDto dictDto : ds ) {
+ list.add( toEntity( dictDto ) );
+ }
+
+ return list;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/TypeMapperImpl.java b/czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/TypeMapperImpl.java
new file mode 100644
index 0000000..5ebd92c
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/mapstruct/impl/TypeMapperImpl.java
@@ -0,0 +1,110 @@
+package com.czsj.standard.mapstruct.impl;
+
+import com.czsj.standard.dto.TypeDto;
+import com.czsj.standard.entity.TypeEntity;
+import com.czsj.standard.mapstruct.TypeMapper;
+import com.czsj.standard.vo.TypeVo;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Generated;
+import java.util.ArrayList;
+import java.util.List;
+
+@Generated(
+ value = "org.mapstruct.ap.MappingProcessor",
+ date = "2023-04-27T15:15:10+0800",
+ comments = "version: 1.3.1.Final, compiler: javac, environment: Java 1.8.0_231 (Oracle Corporation)"
+)
+@Component
+public class TypeMapperImpl implements TypeMapper {
+
+ @Override
+ public TypeDto toDTO(TypeEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ TypeDto typeDto = new TypeDto();
+
+ typeDto.setId( e.getId() );
+ typeDto.setGbTypeCode( e.getGbTypeCode() );
+ typeDto.setGbTypeName( e.getGbTypeName() );
+
+ return typeDto;
+ }
+
+ @Override
+ public List toDTO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( TypeEntity typeEntity : es ) {
+ list.add( toDTO( typeEntity ) );
+ }
+
+ return list;
+ }
+
+ @Override
+ public TypeVo toVO(TypeEntity e) {
+ if ( e == null ) {
+ return null;
+ }
+
+ TypeVo typeVo = new TypeVo();
+
+ typeVo.setId( e.getId() );
+ typeVo.setStatus( e.getStatus() );
+ typeVo.setCreateTime( e.getCreateTime() );
+ typeVo.setRemark( e.getRemark() );
+ typeVo.setGbTypeCode( e.getGbTypeCode() );
+ typeVo.setGbTypeName( e.getGbTypeName() );
+
+ return typeVo;
+ }
+
+ @Override
+ public List toVO(List es) {
+ if ( es == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( es.size() );
+ for ( TypeEntity typeEntity : es ) {
+ list.add( toVO( typeEntity ) );
+ }
+
+ return list;
+ }
+
+ @Override
+ public TypeEntity toEntity(TypeDto d) {
+ if ( d == null ) {
+ return null;
+ }
+
+ TypeEntity typeEntity = new TypeEntity();
+
+ typeEntity.setId( d.getId() );
+ typeEntity.setGbTypeCode( d.getGbTypeCode() );
+ typeEntity.setGbTypeName( d.getGbTypeName() );
+
+ return typeEntity;
+ }
+
+ @Override
+ public List toEntity(List ds) {
+ if ( ds == null ) {
+ return null;
+ }
+
+ List list = new ArrayList( ds.size() );
+ for ( TypeDto typeDto : ds ) {
+ list.add( toEntity( typeDto ) );
+ }
+
+ return list;
+ }
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/query/ContrastDictQuery.java b/czsj-system/src/main/java/com/czsj/standard/query/ContrastDictQuery.java
new file mode 100644
index 0000000..51545d8
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/query/ContrastDictQuery.java
@@ -0,0 +1,24 @@
+package com.czsj.standard.query;
+
+import com.czsj.core.database.base.BaseQueryParams;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ *
+ * 字典对照信息表 查询实体
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ContrastDictQuery extends BaseQueryParams {
+
+ private static final long serialVersionUID=1L;
+
+ private String contrastId;
+ private String colCode;
+ private String colName;
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/query/ContrastQuery.java b/czsj-system/src/main/java/com/czsj/standard/query/ContrastQuery.java
new file mode 100644
index 0000000..58c89d6
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/query/ContrastQuery.java
@@ -0,0 +1,24 @@
+package com.czsj.standard.query;
+
+import com.czsj.core.database.base.BaseQueryParams;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ *
+ * 对照表信息表 查询实体
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ContrastQuery extends BaseQueryParams {
+
+ private static final long serialVersionUID=1L;
+
+ private String sourceName;
+ private String tableName;
+ private String columnName;
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/query/DictQuery.java b/czsj-system/src/main/java/com/czsj/standard/query/DictQuery.java
new file mode 100644
index 0000000..d92a310
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/query/DictQuery.java
@@ -0,0 +1,24 @@
+package com.czsj.standard.query;
+
+import com.czsj.core.database.base.BaseQueryParams;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ *
+ * 数据标准字典表 查询实体
+ *
+ *
+ * @author yuwei
+ * @since 2020-08-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class DictQuery extends BaseQueryParams {
+
+ private static final long serialVersionUID=1L;
+
+ private String typeId;
+ private String gbCode;
+ private String gbName;
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/query/TypeQuery.java b/czsj-system/src/main/java/com/czsj/standard/query/TypeQuery.java
new file mode 100644
index 0000000..4d48fe7
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/query/TypeQuery.java
@@ -0,0 +1,23 @@
+package com.czsj.standard.query;
+
+import com.czsj.core.database.base.BaseQueryParams;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ *
+ * 数据标准类别表 查询实体
+ *
+ *
+ * @author yuwei
+ * @since 2020-08-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TypeQuery extends BaseQueryParams {
+
+ private static final long serialVersionUID=1L;
+
+ private String gbTypeCode;
+ private String gbTypeName;
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/service/ContrastDictService.java b/czsj-system/src/main/java/com/czsj/standard/service/ContrastDictService.java
new file mode 100644
index 0000000..7b79309
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/service/ContrastDictService.java
@@ -0,0 +1,30 @@
+package com.czsj.standard.service;
+
+
+
+import com.czsj.core.database.base.BaseService;
+import com.czsj.standard.dto.ContrastDictDto;
+import com.czsj.standard.entity.ContrastDictEntity;
+
+import java.util.List;
+
+/**
+ *
+ * 字典对照信息表 服务类
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+public interface ContrastDictService extends BaseService {
+
+ ContrastDictEntity saveContrastDict(ContrastDictDto contrastDict);
+
+ ContrastDictEntity updateContrastDict(ContrastDictDto contrastDict);
+
+ ContrastDictEntity getContrastDictById(String id);
+
+ void deleteContrastDictById(String id);
+
+ void deleteContrastDictBatch(List ids);
+}
diff --git a/czsj-system/src/main/java/com/czsj/standard/service/ContrastService.java b/czsj-system/src/main/java/com/czsj/standard/service/ContrastService.java
new file mode 100644
index 0000000..62c2305
--- /dev/null
+++ b/czsj-system/src/main/java/com/czsj/standard/service/ContrastService.java
@@ -0,0 +1,36 @@
+package com.czsj.standard.service;
+
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.czsj.core.database.base.BaseService;
+import com.czsj.standard.dto.ContrastDto;
+import com.czsj.standard.entity.ContrastEntity;
+import com.czsj.standard.vo.ContrastTreeVo;
+
+import java.util.List;
+
+/**
+ *
+ * 对照表信息表 服务类
+ *
+ *
+ * @author yuwei
+ * @since 2020-09-27
+ */
+public interface ContrastService extends BaseService {
+
+ ContrastEntity saveContrast(ContrastDto contrast);
+
+ ContrastEntity updateContrast(ContrastDto contrast);
+
+ ContrastEntity getContrastById(String id);
+
+ void deleteContrastById(String id);
+
+ void deleteContrastBatch(List ids);
+
+ List