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 getContrastTree(); + + IPage statistic(IPage page, Wrapper queryWrapper); +} diff --git a/czsj-system/src/main/java/com/czsj/standard/service/DictMappingService.java b/czsj-system/src/main/java/com/czsj/standard/service/DictMappingService.java new file mode 100644 index 0000000..35aa9ee --- /dev/null +++ b/czsj-system/src/main/java/com/czsj/standard/service/DictMappingService.java @@ -0,0 +1,17 @@ +package com.czsj.standard.service; + + +import com.czsj.standard.dto.ManualMappingDto; + +import java.util.Map; + +public interface DictMappingService { + + Map getDictMapping(String id); + + void dictAutoMapping(String id); + + void dictManualMapping(ManualMappingDto manualMappingDto); + + void dictCancelMapping(String id); +} diff --git a/czsj-system/src/main/java/com/czsj/standard/service/DictService.java b/czsj-system/src/main/java/com/czsj/standard/service/DictService.java new file mode 100644 index 0000000..7f9593d --- /dev/null +++ b/czsj-system/src/main/java/com/czsj/standard/service/DictService.java @@ -0,0 +1,30 @@ +package com.czsj.standard.service; + +import com.czsj.core.database.base.BaseService; +import com.czsj.standard.dto.DictDto; +import com.czsj.standard.entity.DictEntity; + +import java.util.List; + +/** + *

+ * 数据标准字典表 服务类 + *

+ * + * @author yuwei + * @since 2020-08-26 + */ +public interface DictService extends BaseService { + + DictEntity saveDict(DictDto dict); + + DictEntity updateDict(DictDto dict); + + DictEntity getDictById(String id); + + void deleteDictById(String id); + + void deleteDictBatch(List ids); + + void refreshDict(); +} diff --git a/czsj-system/src/main/java/com/czsj/standard/service/TypeService.java b/czsj-system/src/main/java/com/czsj/standard/service/TypeService.java new file mode 100644 index 0000000..7ec8c63 --- /dev/null +++ b/czsj-system/src/main/java/com/czsj/standard/service/TypeService.java @@ -0,0 +1,28 @@ +package com.czsj.standard.service; + +import com.czsj.core.database.base.BaseService; +import com.czsj.standard.dto.TypeDto; +import com.czsj.standard.entity.TypeEntity; + +import java.util.List; + +/** + *

+ * 数据标准类别表 服务类 + *

+ * + * @author yuwei + * @since 2020-08-26 + */ +public interface TypeService extends BaseService { + + TypeEntity saveType(TypeDto type); + + TypeEntity updateType(TypeDto type); + + TypeEntity getTypeById(String id); + + void deleteTypeById(String id); + + void deleteTypeBatch(List ids); +} diff --git a/czsj-system/src/main/java/com/czsj/standard/service/impl/ContrastDictServiceImpl.java b/czsj-system/src/main/java/com/czsj/standard/service/impl/ContrastDictServiceImpl.java new file mode 100644 index 0000000..2d9d0d2 --- /dev/null +++ b/czsj-system/src/main/java/com/czsj/standard/service/impl/ContrastDictServiceImpl.java @@ -0,0 +1,73 @@ +package com.czsj.standard.service.impl; + + +import com.czsj.core.database.base.BaseServiceImpl; +import com.czsj.standard.dto.ContrastDictDto; +import com.czsj.standard.entity.ContrastDictEntity; +import com.czsj.standard.mapper.ContrastDictDao; +import com.czsj.standard.mapstruct.ContrastDictMapper; +import com.czsj.standard.service.ContrastDictService; +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; + +import static com.czsj.common.utils.SecurityUtils.getUsername; + + +/** + *

+ * 字典对照信息表 服务实现类 + *

+ * + * @author yuwei + * @since 2020-09-27 + */ +@Service +@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) +public class ContrastDictServiceImpl extends BaseServiceImpl implements ContrastDictService { + + @Autowired + private ContrastDictDao contrastDictDao; + + @Autowired + private ContrastDictMapper contrastDictMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public ContrastDictEntity saveContrastDict(ContrastDictDto contrastDictDto) { + ContrastDictEntity contrastDict = contrastDictMapper.toEntity(contrastDictDto); + contrastDict.setCreateBy(getUsername()); + contrastDictDao.insert(contrastDict); + return contrastDict; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public ContrastDictEntity updateContrastDict(ContrastDictDto contrastDictDto) { + ContrastDictEntity contrastDict = contrastDictMapper.toEntity(contrastDictDto); + contrastDict.setUpdateBy(getUsername()); + contrastDictDao.updateById(contrastDict); + return contrastDict; + } + + @Override + public ContrastDictEntity getContrastDictById(String id) { + ContrastDictEntity contrastDictEntity = super.getById(id); + return contrastDictEntity; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteContrastDictById(String id) { + contrastDictDao.deleteById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteContrastDictBatch(List ids) { + contrastDictDao.deleteBatchIds(ids); + } +} diff --git a/czsj-system/src/main/java/com/czsj/standard/service/impl/ContrastServiceImpl.java b/czsj-system/src/main/java/com/czsj/standard/service/impl/ContrastServiceImpl.java new file mode 100644 index 0000000..3480e84 --- /dev/null +++ b/czsj-system/src/main/java/com/czsj/standard/service/impl/ContrastServiceImpl.java @@ -0,0 +1,129 @@ +package com.czsj.standard.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.czsj.core.database.base.BaseServiceImpl; +import com.czsj.standard.dto.ContrastDto; +import com.czsj.standard.entity.ContrastEntity; +import com.czsj.standard.mapper.ContrastDao; +import com.czsj.standard.mapstruct.ContrastMapper; +import com.czsj.standard.service.ContrastService; +import com.czsj.standard.vo.ContrastTreeVo; +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.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static com.czsj.common.utils.SecurityUtils.getUsername; + +/** + *

+ * 对照表信息表 服务实现类 + *

+ * + * @author yuwei + * @since 2020-09-27 + */ +@Service +@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) +public class ContrastServiceImpl extends BaseServiceImpl implements ContrastService { + + @Autowired + private ContrastDao contrastDao; + + @Autowired + private ContrastMapper contrastMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public ContrastEntity saveContrast(ContrastDto contrastDto) { + ContrastEntity contrast = contrastMapper.toEntity(contrastDto); + contrast.setCreateBy(getUsername()); + contrastDao.insert(contrast); + return contrast; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public ContrastEntity updateContrast(ContrastDto contrastDto) { + ContrastEntity contrast = contrastMapper.toEntity(contrastDto); + contrast.setUpdateBy(getUsername()); + contrastDao.updateById(contrast); + return contrast; + } + + @Override + public ContrastEntity getContrastById(String id) { + ContrastEntity contrastEntity = super.getById(id); + return contrastEntity; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteContrastById(String id) { + contrastDao.deleteById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteContrastBatch(List ids) { + contrastDao.deleteBatchIds(ids); + } + + @Override + public List getContrastTree() { + List list = new ArrayList<>(); + List contrastEntityList = contrastDao.selectList(Wrappers.emptyWrapper()); + Map> sourceMap = contrastEntityList.stream().collect(Collectors.groupingBy(ContrastEntity::getSourceId)); + Iterator>> sourceIterator = sourceMap.entrySet().iterator(); + while (sourceIterator.hasNext()) { + Map.Entry> sourceEntry = sourceIterator.next(); + String sourceId = sourceEntry.getKey(); + List sourceList = sourceEntry.getValue(); + String sourceName = sourceList.get(0).getSourceName(); + ContrastTreeVo sourceTree = new ContrastTreeVo(); + sourceTree.setId(sourceId); + sourceTree.setLabel(sourceName); + Map> tableMap = sourceList.stream().collect(Collectors.groupingBy(ContrastEntity::getTableId)); + Iterator>> tableIterator = tableMap.entrySet().iterator(); + List tableTreeList = new ArrayList<>(); + while (tableIterator.hasNext()) { + Map.Entry> tableEntry = tableIterator.next(); + String tableId = tableEntry.getKey(); + List tableList = tableEntry.getValue(); + String tableName = tableList.get(0).getTableName(); + String tableComment = tableList.get(0).getTableComment(); + ContrastTreeVo tableTree = new ContrastTreeVo(); + tableTree.setId(tableId); + tableTree.setLabel(tableName); + tableTree.setName(tableComment); + List columnTreeList = tableList.stream().map(s -> { + ContrastTreeVo columnTree = new ContrastTreeVo(); + columnTree.setId(s.getId()); + columnTree.setLabel(s.getColumnName()); + columnTree.setName(s.getColumnComment()); + columnTree.setData(s); + return columnTree; + }).collect(Collectors.toList()); + tableTree.setChildren(columnTreeList); + tableTreeList.add(tableTree); + } + sourceTree.setChildren(tableTreeList); + list.add(sourceTree); + } + return list; + } + + @Override + public IPage statistic(IPage page, Wrapper queryWrapper) { + return contrastDao.statistic(page, queryWrapper); + } +} diff --git a/czsj-system/src/main/java/com/czsj/standard/service/impl/DictMappingServiceImpl.java b/czsj-system/src/main/java/com/czsj/standard/service/impl/DictMappingServiceImpl.java new file mode 100644 index 0000000..28ada3d --- /dev/null +++ b/czsj-system/src/main/java/com/czsj/standard/service/impl/DictMappingServiceImpl.java @@ -0,0 +1,125 @@ +package com.czsj.standard.service.impl; + + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.czsj.core.database.core.DataConstant; +import com.czsj.standard.dto.Endpoint; +import com.czsj.standard.dto.ManualMappingDto; +import com.czsj.standard.entity.ContrastDictEntity; +import com.czsj.standard.entity.ContrastEntity; +import com.czsj.standard.entity.DictEntity; +import com.czsj.standard.mapper.ContrastDao; +import com.czsj.standard.mapper.ContrastDictDao; +import com.czsj.standard.mapper.DictDao; +import com.czsj.standard.mapstruct.ContrastDictMapper; +import com.czsj.standard.mapstruct.DictMapper; +import com.czsj.standard.service.DictMappingService; +import com.czsj.standard.vo.ContrastDictVo; +import com.czsj.standard.vo.DictVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +@Service +public class DictMappingServiceImpl implements DictMappingService { + + @Autowired + private ContrastDao contrastDao; + + @Autowired + private ContrastDictDao contrastDictDao; + + @Autowired + private ContrastDictMapper contrastDictMapper; + + @Autowired + private DictDao dictDao; + + @Autowired + private DictMapper dictMapper; + + private static String BIND_GB_CODE = "gb_code"; + private static String BIND_GB_NAME = "gb_name"; + + @Override + public Map getDictMapping(String id) { + ContrastEntity contrastEntity = contrastDao.selectById(id); + String contrastId = contrastEntity.getId(); + String gbTypeId = contrastEntity.getGbTypeId(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("d.contrast_id", contrastId); + List contrastDictEntityList = contrastDictDao.selectList(queryWrapper); + List contrastDictList = contrastDictEntityList.stream().map(contrastDictMapper::toVO).collect(Collectors.toList()); + List dictEntityList = dictDao.selectList(Wrappers.lambdaQuery().eq(DictEntity::getTypeId, gbTypeId).eq(DictEntity::getStatus, DataConstant.TrueOrFalse.TRUE.getKey())); + List dictList = dictEntityList.stream().map(dictMapper::toVO).collect(Collectors.toList()); + Map map = new HashMap<>(4); + String tableName = StrUtil.isBlank(contrastEntity.getTableComment()) ? contrastEntity.getTableName() : contrastEntity.getTableName() + "(" + contrastEntity.getTableComment() + ")"; + String columnName = StrUtil.isBlank(contrastEntity.getColumnComment()) ? contrastEntity.getTableName() : contrastEntity.getColumnName() + "(" + contrastEntity.getColumnComment() + ")"; + long contrastTotal = contrastDictList.stream().count(); + long unContrastTotal = contrastDictList.stream().filter(s -> DataConstant.TrueOrFalse.FALSE.getKey().equals(s.getStatus())).count(); + map.put("title", "数据源: " + contrastEntity.getSourceName() + " 数据表: " + tableName + " 对照字段: " + columnName + " 标准类别编码: " + contrastEntity.getGbTypeCode() + " 标准类别名称: " + contrastEntity.getGbTypeName()); + map.put("description", "总数: " + contrastTotal + " 未对照: " + unContrastTotal + " 已对照: " + (contrastTotal - unContrastTotal)); + map.put("left", contrastDictList); + map.put("right", dictList); + return map; + } + + @Override + public void dictAutoMapping(String id) { + ContrastEntity contrastEntity = contrastDao.selectById(id); + String contrastId = contrastEntity.getId(); + String gbTypeId = contrastEntity.getGbTypeId(); + String bindGbColumn = contrastEntity.getBindGbColumn(); + // 查询未对照数据 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("d.contrast_id", contrastId); + queryWrapper.eq("d.status", DataConstant.TrueOrFalse.FALSE.getKey()); + List contrastDictEntityList = contrastDictDao.selectList(queryWrapper); + // 查询标准字典数据 + List dictEntityList = dictDao.selectList(Wrappers.lambdaQuery().eq(DictEntity::getTypeId, gbTypeId).eq(DictEntity::getStatus, DataConstant.TrueOrFalse.TRUE.getKey())); + contrastDictEntityList.stream().forEach(c -> { + dictEntityList.stream().filter(d -> { + if (BIND_GB_CODE.equals(bindGbColumn)) { + return Objects.equals(c.getColCode(), d.getGbCode()); + } else { + return Objects.equals(c.getColName(), d.getGbName()); + } + }).forEach(s -> { + // 更新对照结果 + String contrastGbId = s.getId(); + c.setStatus(DataConstant.TrueOrFalse.TRUE.getKey()); + c.setContrastGbId(contrastGbId); + contrastDictDao.updateById(c); + }); + }); + } + + @Override + public void dictManualMapping(ManualMappingDto manualMappingDto) { + List endpoints = manualMappingDto.getEndpoints(); + endpoints.stream().forEach(s -> { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(ContrastDictEntity::getStatus, DataConstant.TrueOrFalse.TRUE.getKey()); + updateWrapper.set(ContrastDictEntity::getContrastGbId, s.getTargetId()); + updateWrapper.eq(ContrastDictEntity::getId, s.getSourceId()); + contrastDictDao.update(null, updateWrapper); + }); + } + + @Override + public void dictCancelMapping(String id) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(ContrastDictEntity::getStatus, DataConstant.TrueOrFalse.FALSE.getKey()); + updateWrapper.set(ContrastDictEntity::getContrastGbId, null); + updateWrapper.eq(ContrastDictEntity::getId, id); + contrastDictDao.update(null, updateWrapper); + } +} diff --git a/czsj-system/src/main/java/com/czsj/standard/service/impl/DictServiceImpl.java b/czsj-system/src/main/java/com/czsj/standard/service/impl/DictServiceImpl.java new file mode 100644 index 0000000..6fe68ad --- /dev/null +++ b/czsj-system/src/main/java/com/czsj/standard/service/impl/DictServiceImpl.java @@ -0,0 +1,91 @@ +package com.czsj.standard.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.czsj.common.core.redis.RedisCache; +import com.czsj.core.database.base.BaseServiceImpl; +import com.czsj.core.database.core.RedisConstant; +import com.czsj.standard.dto.DictDto; +import com.czsj.standard.entity.DictEntity; +import com.czsj.standard.mapper.DictDao; +import com.czsj.standard.mapstruct.DictMapper; +import com.czsj.standard.service.DictService; +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; +import java.util.Map; +import java.util.stream.Collectors; + +import static com.czsj.common.utils.SecurityUtils.getUsername; + +/** + *

+ * 数据标准字典表 服务实现类 + *

+ * + * @author yuwei + * @since 2020-08-26 + */ +@Service +@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) +public class DictServiceImpl extends BaseServiceImpl implements DictService { + + @Autowired + private DictDao dictDao; + + @Autowired + private DictMapper dictMapper; + + @Autowired + private RedisCache redisService; + + @Override + @Transactional(rollbackFor = Exception.class) + public DictEntity saveDict(DictDto dictDto) { + DictEntity dict = dictMapper.toEntity(dictDto); + dict.setCreateBy(getUsername()); + dictDao.insert(dict); + return dict; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public DictEntity updateDict(DictDto dictDto) { + DictEntity dict = dictMapper.toEntity(dictDto); + dict.setUpdateBy(getUsername()); + dictDao.updateById(dict); + return dict; + } + + @Override + public DictEntity getDictById(String id) { + DictEntity dictEntity = super.getById(id); + return dictEntity; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteDictById(String id) { + dictDao.deleteById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteDictBatch(List ids) { + dictDao.deleteBatchIds(ids); + } + + @Override + public void refreshDict() { + String dictKey = RedisConstant.STANDARD_DICT_KEY; + Boolean hasDictKey = redisService.hasKey(dictKey); + if (hasDictKey) { + redisService.del(dictKey); + } + List dictEntityList = dictDao.selectList(Wrappers.emptyWrapper()); + Map> dictListMap = dictEntityList.stream().collect(Collectors.groupingBy(DictEntity::getTypeId)); + redisService.putAll(dictKey, dictListMap); + } +} diff --git a/czsj-system/src/main/java/com/czsj/standard/service/impl/TypeServiceImpl.java b/czsj-system/src/main/java/com/czsj/standard/service/impl/TypeServiceImpl.java new file mode 100644 index 0000000..baf4125 --- /dev/null +++ b/czsj-system/src/main/java/com/czsj/standard/service/impl/TypeServiceImpl.java @@ -0,0 +1,73 @@ +package com.czsj.standard.service.impl; + + +import com.czsj.core.database.base.BaseServiceImpl; +import com.czsj.standard.dto.TypeDto; +import com.czsj.standard.entity.TypeEntity; +import com.czsj.standard.mapper.TypeDao; +import com.czsj.standard.mapstruct.TypeMapper; +import com.czsj.standard.service.TypeService; +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; + +import static com.czsj.common.utils.SecurityUtils.getUsername; + +/** + *

+ * 数据标准类别表 服务实现类 + *

+ * + * @author yuwei + * @since 2020-08-26 + */ +@Service +@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) +public class TypeServiceImpl extends BaseServiceImpl implements TypeService { + + @Autowired + private TypeDao typeDao; + + @Autowired + private TypeMapper typeMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public TypeEntity saveType(TypeDto typeDto) { + TypeEntity type = typeMapper.toEntity(typeDto); + type.setCreateBy(getUsername()); + type.setStatus("1"); + typeDao.insert(type); + return type; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public TypeEntity updateType(TypeDto typeDto) { + TypeEntity type = typeMapper.toEntity(typeDto); + type.setUpdateBy(getUsername()); + typeDao.updateById(type); + return type; + } + + @Override + public TypeEntity getTypeById(String id) { + TypeEntity typeEntity = super.getById(id); + return typeEntity; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteTypeById(String id) { + typeDao.deleteById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteTypeBatch(List ids) { + typeDao.deleteBatchIds(ids); + } +} diff --git a/czsj-system/src/main/java/com/czsj/standard/vo/ContrastDictVo.java b/czsj-system/src/main/java/com/czsj/standard/vo/ContrastDictVo.java new file mode 100644 index 0000000..6b52f8e --- /dev/null +++ b/czsj-system/src/main/java/com/czsj/standard/vo/ContrastDictVo.java @@ -0,0 +1,38 @@ +package com.czsj.standard.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 字典对照信息表 实体VO + *

+ * + * @author yuwei + * @since 2020-09-27 + */ +@Data +public class ContrastDictVo 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 contrastId; + private String colCode; + private String colName; + private String contrastGbId; + private String contrastGbCode; + private String contrastGbName; + private String sourceName; + private String tableName; + private String columnName; + private String gbTypeCode; + private String gbTypeName; +} diff --git a/czsj-system/src/main/java/com/czsj/standard/vo/ContrastStatisticVo.java b/czsj-system/src/main/java/com/czsj/standard/vo/ContrastStatisticVo.java new file mode 100644 index 0000000..72895d7 --- /dev/null +++ b/czsj-system/src/main/java/com/czsj/standard/vo/ContrastStatisticVo.java @@ -0,0 +1,46 @@ +package com.czsj.standard.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 对照表信息表 实体VO + *

+ * + * @author yuwei + * @since 2020-09-27 + */ +@Data +public class ContrastStatisticVo 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 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; + private String gbTypeCode; + private String gbTypeName; + private String bindGbColumn; + + private Integer mappingCount; + private Integer unMappingCount; + /** + * 对照比例 20% + */ + private String mappingPercent; +} diff --git a/czsj-system/src/main/java/com/czsj/standard/vo/ContrastTreeVo.java b/czsj-system/src/main/java/com/czsj/standard/vo/ContrastTreeVo.java new file mode 100644 index 0000000..b51752f --- /dev/null +++ b/czsj-system/src/main/java/com/czsj/standard/vo/ContrastTreeVo.java @@ -0,0 +1,21 @@ +package com.czsj.standard.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class ContrastTreeVo implements Serializable { + + private static final long serialVersionUID=1L; + + private String id; + private String label; + private String name; + /** + * 数据 + */ + private Object data; + private List children; +} diff --git a/czsj-system/src/main/java/com/czsj/standard/vo/ContrastVo.java b/czsj-system/src/main/java/com/czsj/standard/vo/ContrastVo.java new file mode 100644 index 0000000..018742b --- /dev/null +++ b/czsj-system/src/main/java/com/czsj/standard/vo/ContrastVo.java @@ -0,0 +1,39 @@ +package com.czsj.standard.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 对照表信息表 实体VO + *

+ * + * @author yuwei + * @since 2020-09-27 + */ +@Data +public class ContrastVo 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 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; + private String gbTypeCode; + private String gbTypeName; + private String bindGbColumn; +} diff --git a/czsj-system/src/main/java/com/czsj/standard/vo/DictVo.java b/czsj-system/src/main/java/com/czsj/standard/vo/DictVo.java new file mode 100644 index 0000000..570b435 --- /dev/null +++ b/czsj-system/src/main/java/com/czsj/standard/vo/DictVo.java @@ -0,0 +1,32 @@ +package com.czsj.standard.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 数据标准字典表 实体VO + *

+ * + * @author yuwei + * @since 2020-08-26 + */ +@Data +public class DictVo 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 typeId; + private String gbTypeCode; + private String gbTypeName; + private String gbCode; + private String gbName; +} diff --git a/czsj-system/src/main/java/com/czsj/standard/vo/TypeVo.java b/czsj-system/src/main/java/com/czsj/standard/vo/TypeVo.java new file mode 100644 index 0000000..648b96e --- /dev/null +++ b/czsj-system/src/main/java/com/czsj/standard/vo/TypeVo.java @@ -0,0 +1,29 @@ +package com.czsj.standard.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 数据标准类别表 实体VO + *

+ * + * @author yuwei + * @since 2020-08-26 + */ +@Data +public class TypeVo 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 gbTypeCode; + private String gbTypeName; +} diff --git a/czsj-system/src/main/resources/mapper/quality/CheckReportMapper.xml b/czsj-system/src/main/resources/mapper/quality/CheckReportMapper.xml new file mode 100644 index 0000000..3a0c3e0 --- /dev/null +++ b/czsj-system/src/main/resources/mapper/quality/CheckReportMapper.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id, + check_rule_id, check_date, check_result, check_total_count, check_error_count, check_batch + + + + ${alias}.id, + ${alias}.check_rule_id, ${alias}.check_date, ${alias}.check_result, ${alias}.check_total_count, ${alias}.check_error_count, ${alias}.check_batch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/czsj-system/src/main/resources/mapper/quality/CheckRuleMapper.xml b/czsj-system/src/main/resources/mapper/quality/CheckRuleMapper.xml new file mode 100644 index 0000000..74b773a --- /dev/null +++ b/czsj-system/src/main/resources/mapper/quality/CheckRuleMapper.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, + status, + create_by, + create_time, + create_dept, + update_by, + update_time, + remark, + rule_name, rule_type_id, rule_item_id, rule_level_id, rule_db_type, rule_source_id, rule_source, rule_table_id, rule_table, rule_table_comment, + rule_column_id, rule_column, rule_column_comment, last_check_batch + + + + ${alias}.id, + ${alias}.status, + ${alias}.create_by, + ${alias}.create_time, + ${alias}.create_dept, + ${alias}.update_by, + ${alias}.update_time, + ${alias}.remark, + ${alias}.rule_name, ${alias}.rule_type_id, ${alias}.rule_item_id, ${alias}.rule_level_id, ${alias}.rule_db_type, ${alias}.rule_source_id, ${alias}.rule_source, + ${alias}.rule_table_id, ${alias}.rule_table, ${alias}.rule_table_comment, ${alias}.rule_column_id, ${alias}.rule_column, ${alias}.rule_column_comment, ${alias}.last_check_batch + + + + + + + + + diff --git a/czsj-system/src/main/resources/mapper/quality/RuleItemMapper.xml b/czsj-system/src/main/resources/mapper/quality/RuleItemMapper.xml new file mode 100644 index 0000000..02da42a --- /dev/null +++ b/czsj-system/src/main/resources/mapper/quality/RuleItemMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + id, + rule_type_id, item_code, item_explain + + + diff --git a/czsj-system/src/main/resources/mapper/quality/RuleLevelMapper.xml b/czsj-system/src/main/resources/mapper/quality/RuleLevelMapper.xml new file mode 100644 index 0000000..eb1fa4c --- /dev/null +++ b/czsj-system/src/main/resources/mapper/quality/RuleLevelMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + id, + code, name + + + diff --git a/czsj-system/src/main/resources/mapper/quality/RuleTypeMapper.xml b/czsj-system/src/main/resources/mapper/quality/RuleTypeMapper.xml new file mode 100644 index 0000000..c960475 --- /dev/null +++ b/czsj-system/src/main/resources/mapper/quality/RuleTypeMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + id, + name, code + + + + + diff --git a/czsj-system/src/main/resources/mapper/quality/ScheduleJobMapper.xml b/czsj-system/src/main/resources/mapper/quality/ScheduleJobMapper.xml new file mode 100644 index 0000000..2783d6c --- /dev/null +++ b/czsj-system/src/main/resources/mapper/quality/ScheduleJobMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + id, + status, + job_name, bean_name, method_name, method_params, cron_expression + + + diff --git a/czsj-system/src/main/resources/mapper/quality/ScheduleLogMapper.xml b/czsj-system/src/main/resources/mapper/quality/ScheduleLogMapper.xml new file mode 100644 index 0000000..9609752 --- /dev/null +++ b/czsj-system/src/main/resources/mapper/quality/ScheduleLogMapper.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, + status, + execute_job_id, execute_rule_id, execute_date, execute_result, execute_batch + + + + ${alias}.id, + ${alias}.status, + ${alias}.execute_job_id, ${alias}.execute_rule_id, ${alias}.execute_date, ${alias}.execute_result, ${alias}.execute_batch + + + + + diff --git a/czsj-system/src/main/resources/mapper/standard/ContrastDictMapper.xml b/czsj-system/src/main/resources/mapper/standard/ContrastDictMapper.xml new file mode 100644 index 0000000..afd7a4b --- /dev/null +++ b/czsj-system/src/main/resources/mapper/standard/ContrastDictMapper.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, + status, + create_by, + create_time, + create_dept, + update_by, + update_time, + remark, + contrast_id, col_code, col_name, contrast_gb_id + + + + ${alias}.id, + ${alias}.status, + ${alias}.create_by, + ${alias}.create_time, + ${alias}.create_dept, + ${alias}.update_by, + ${alias}.update_time, + ${alias}.remark, + ${alias}.contrast_id, ${alias}.col_code, ${alias}.col_name, ${alias}.contrast_gb_id + + + + + + + diff --git a/czsj-system/src/main/resources/mapper/standard/ContrastMapper.xml b/czsj-system/src/main/resources/mapper/standard/ContrastMapper.xml new file mode 100644 index 0000000..c0f45fe --- /dev/null +++ b/czsj-system/src/main/resources/mapper/standard/ContrastMapper.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, + status, + create_by, + create_time, + create_dept, + update_by, + update_time, + remark, + source_id, source_name, table_id, table_name, table_comment, column_id, column_name, column_comment, gb_type_id, bind_gb_column + + + + ${alias}.id, + ${alias}.status, + ${alias}.create_by, + ${alias}.create_time, + ${alias}.create_dept, + ${alias}.update_by, + ${alias}.update_time, + ${alias}.remark, + ${alias}.source_id, ${alias}.source_name, ${alias}.table_id, ${alias}.table_name, ${alias}.table_comment, ${alias}.column_id, + ${alias}.column_name, ${alias}.column_comment, ${alias}.gb_type_id, ${alias}.bind_gb_column + + + + + + + diff --git a/czsj-system/src/main/resources/mapper/standard/DictMapper.xml b/czsj-system/src/main/resources/mapper/standard/DictMapper.xml new file mode 100644 index 0000000..eb75816 --- /dev/null +++ b/czsj-system/src/main/resources/mapper/standard/DictMapper.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + id, + status, + create_by, + create_time, + create_dept, + update_by, + update_time, + remark, type_id, gb_code, gb_name + + + + ${alias}.id, + ${alias}.status, + ${alias}.create_by, + ${alias}.create_time, + ${alias}.create_dept, + ${alias}.update_by, + ${alias}.update_time, + ${alias}.remark, ${alias}.type_id, ${alias}.gb_code, ${alias}.gb_name + + + + + + + diff --git a/czsj-system/src/main/resources/mapper/standard/TypeMapper.xml b/czsj-system/src/main/resources/mapper/standard/TypeMapper.xml new file mode 100644 index 0000000..4ec9dee --- /dev/null +++ b/czsj-system/src/main/resources/mapper/standard/TypeMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + id, + status, + create_by, + create_time, + create_dept, + update_by, + update_time, + remark, gb_type_code, gb_type_name + + + diff --git a/packages/czsj-datax-executor_3.8.8_1.tar.gz b/packages/czsj-datax-executor_3.8.8_1.tar.gz index 04497ec..fe325b5 100644 Binary files a/packages/czsj-datax-executor_3.8.8_1.tar.gz and b/packages/czsj-datax-executor_3.8.8_1.tar.gz differ