作者 张晓杰

新增证照管理

  1 +package com.ruoyi.compliancemanagement.controller;
  2 +
  3 +import java.util.List;
  4 +import java.util.Arrays;
  5 +import java.util.concurrent.TimeUnit;
  6 +
  7 +import lombok.RequiredArgsConstructor;
  8 +import javax.servlet.http.HttpServletResponse;
  9 +import javax.validation.constraints.*;
  10 +import cn.dev33.satoken.annotation.SaCheckPermission;
  11 +import org.springframework.web.bind.annotation.*;
  12 +import org.springframework.validation.annotation.Validated;
  13 +import com.ruoyi.common.annotation.RepeatSubmit;
  14 +import com.ruoyi.common.annotation.Log;
  15 +import com.ruoyi.common.core.controller.BaseController;
  16 +import com.ruoyi.common.core.domain.PageQuery;
  17 +import com.ruoyi.common.core.domain.R;
  18 +import com.ruoyi.common.core.validate.AddGroup;
  19 +import com.ruoyi.common.core.validate.EditGroup;
  20 +import com.ruoyi.common.core.validate.QueryGroup;
  21 +import com.ruoyi.common.enums.BusinessType;
  22 +import com.ruoyi.common.utils.poi.ExcelUtil;
  23 +import com.ruoyi.compliancemanagement.domain.vo.TblOrginfoCertificateVo;
  24 +import com.ruoyi.compliancemanagement.domain.bo.TblOrginfoCertificateBo;
  25 +import com.ruoyi.compliancemanagement.service.ITblOrginfoCertificateService;
  26 +import com.ruoyi.common.core.page.TableDataInfo;
  27 +
  28 +/**
  29 + * 单位证照表
  30 + *
  31 + * @author ruoyi
  32 + * @date 2024-07-18
  33 + */
  34 +@Validated
  35 +@RequiredArgsConstructor
  36 +@RestController
  37 +@RequestMapping("/compliancemanagement/orginfoCertificate")
  38 +public class TblOrginfoCertificateController extends BaseController {
  39 +
  40 + private final ITblOrginfoCertificateService iTblOrginfoCertificateService;
  41 +
  42 + /**
  43 + * 查询单位证照表列表
  44 + */
  45 + @SaCheckPermission("compliancemanagement:orginfoCertificate:list")
  46 + @GetMapping("/list")
  47 + public TableDataInfo<TblOrginfoCertificateVo> list(TblOrginfoCertificateBo bo, PageQuery pageQuery) {
  48 + return iTblOrginfoCertificateService.queryPageList(bo, pageQuery);
  49 + }
  50 +
  51 + /**
  52 + * 导出单位证照表列表
  53 + */
  54 + @SaCheckPermission("compliancemanagement:orginfoCertificate:export")
  55 + @Log(title = "单位证照表", businessType = BusinessType.EXPORT)
  56 + @PostMapping("/export")
  57 + public void export(TblOrginfoCertificateBo bo, HttpServletResponse response) {
  58 + List<TblOrginfoCertificateVo> list = iTblOrginfoCertificateService.queryList(bo);
  59 + ExcelUtil.exportExcel(list, "单位证照表", TblOrginfoCertificateVo.class, response);
  60 + }
  61 +
  62 + /**
  63 + * 获取单位证照表详细信息
  64 + *
  65 + * @param id 主键
  66 + */
  67 + @SaCheckPermission("compliancemanagement:orginfoCertificate:query")
  68 + @GetMapping("/{id}")
  69 + public R<TblOrginfoCertificateVo> getInfo(@NotNull(message = "主键不能为空")
  70 + @PathVariable Long id) {
  71 + return R.ok(iTblOrginfoCertificateService.queryById(id));
  72 + }
  73 +
  74 + /**
  75 + * 新增单位证照表
  76 + */
  77 + @SaCheckPermission("compliancemanagement:orginfoCertificate:add")
  78 + @Log(title = "单位证照表", businessType = BusinessType.INSERT)
  79 + @RepeatSubmit()
  80 + @PostMapping()
  81 + public R<Void> add(@Validated(AddGroup.class) @RequestBody TblOrginfoCertificateBo bo) {
  82 + return toAjax(iTblOrginfoCertificateService.insertByBo(bo));
  83 + }
  84 +
  85 + /**
  86 + * 修改单位证照表
  87 + */
  88 + @SaCheckPermission("compliancemanagement:orginfoCertificate:edit")
  89 + @Log(title = "单位证照表", businessType = BusinessType.UPDATE)
  90 + @RepeatSubmit()
  91 + @PutMapping()
  92 + public R<Void> edit(@Validated(EditGroup.class) @RequestBody TblOrginfoCertificateBo bo) {
  93 + return toAjax(iTblOrginfoCertificateService.updateByBo(bo));
  94 + }
  95 +
  96 + /**
  97 + * 删除单位证照表
  98 + *
  99 + * @param ids 主键串
  100 + */
  101 + @SaCheckPermission("compliancemanagement:orginfoCertificate:remove")
  102 + @Log(title = "单位证照表", businessType = BusinessType.DELETE)
  103 + @DeleteMapping("/{ids}")
  104 + public R<Void> remove(@NotEmpty(message = "主键不能为空")
  105 + @PathVariable Long[] ids) {
  106 + return toAjax(iTblOrginfoCertificateService.deleteWithValidByIds(Arrays.asList(ids), true));
  107 + }
  108 +}
  1 +package com.ruoyi.compliancemanagement.domain;
  2 +
  3 +import com.baomidou.mybatisplus.annotation.*;
  4 +import lombok.Data;
  5 +import lombok.EqualsAndHashCode;
  6 +import java.io.Serializable;
  7 +import java.util.Date;
  8 +import java.math.BigDecimal;
  9 +
  10 +import java.util.Date;
  11 +import com.fasterxml.jackson.annotation.JsonFormat;
  12 +import com.ruoyi.common.core.domain.BaseEntity;
  13 +
  14 +/**
  15 + * 单位证照表对象 tbl_orginfo_certificate
  16 + *
  17 + * @author ruoyi
  18 + * @date 2024-07-18
  19 + */
  20 +@Data
  21 +@EqualsAndHashCode(callSuper = true)
  22 +@TableName("tbl_orginfo_certificate")
  23 +public class TblOrginfoCertificate extends BaseEntity {
  24 +
  25 + private static final long serialVersionUID=1L;
  26 +
  27 + /**
  28 + *
  29 + */
  30 + @TableId(value = "id")
  31 + private Long id;
  32 + /**
  33 + * 单位编号
  34 + */
  35 + private String orgcode;
  36 + /**
  37 + * 证书编号
  38 + */
  39 + private String certificateNo;
  40 + /**
  41 + * 认证机构名称
  42 + */
  43 + private String certificationName;
  44 + /**
  45 + * 发证时间
  46 + */
  47 + private Date issuanceDate;
  48 + /**
  49 + * 证书有效期
  50 + */
  51 + private Date certificateValidityPeriod;
  52 + /**
  53 + * 证书附件
  54 + */
  55 + private String certificateAttachment;
  56 +
  57 +}
  1 +package com.ruoyi.compliancemanagement.domain.bo;
  2 +
  3 +import com.ruoyi.common.core.validate.AddGroup;
  4 +import com.ruoyi.common.core.validate.EditGroup;
  5 +import lombok.Data;
  6 +import lombok.EqualsAndHashCode;
  7 +import javax.validation.constraints.*;
  8 +
  9 +import java.util.Date;
  10 +
  11 +import java.util.Date;
  12 +import com.fasterxml.jackson.annotation.JsonFormat;
  13 +import com.ruoyi.common.core.domain.BaseEntity;
  14 +
  15 +/**
  16 + * 单位证照表业务对象 tbl_orginfo_certificate
  17 + *
  18 + * @author ruoyi
  19 + * @date 2024-07-18
  20 + */
  21 +
  22 +@Data
  23 +@EqualsAndHashCode(callSuper = true)
  24 +public class TblOrginfoCertificateBo extends BaseEntity {
  25 +
  26 + /**
  27 + *
  28 + */
  29 + @NotNull(message = "不能为空", groups = { EditGroup.class })
  30 + private Long id;
  31 +
  32 + /**
  33 + * 单位编号
  34 + */
  35 + @NotBlank(message = "单位编号不能为空", groups = { AddGroup.class, EditGroup.class })
  36 + private String orgcode;
  37 +
  38 + /**
  39 + * 证书编号
  40 + */
  41 + @NotBlank(message = "证书编号不能为空", groups = { AddGroup.class, EditGroup.class })
  42 + private String certificateNo;
  43 +
  44 + /**
  45 + * 认证机构名称
  46 + */
  47 + @NotBlank(message = "认证机构名称不能为空", groups = { AddGroup.class, EditGroup.class })
  48 + private String certificationName;
  49 +
  50 + /**
  51 + * 发证时间
  52 + */
  53 + @NotNull(message = "发证时间不能为空", groups = { AddGroup.class, EditGroup.class })
  54 + private Date issuanceDate;
  55 +
  56 + /**
  57 + * 证书有效期
  58 + */
  59 + @NotNull(message = "证书有效期不能为空", groups = { AddGroup.class, EditGroup.class })
  60 + private Date certificateValidityPeriod;
  61 +
  62 + /**
  63 + * 证书附件
  64 + */
  65 + @NotBlank(message = "证书附件不能为空", groups = { AddGroup.class, EditGroup.class })
  66 + private String certificateAttachment;
  67 +
  68 +
  69 +}
  1 +package com.ruoyi.compliancemanagement.domain.vo;
  2 +
  3 +import java.util.Date;
  4 +import com.fasterxml.jackson.annotation.JsonFormat;
  5 +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
  6 +import com.alibaba.excel.annotation.ExcelProperty;
  7 +import com.ruoyi.common.annotation.ExcelDictFormat;
  8 +import com.ruoyi.common.convert.ExcelDictConvert;
  9 +import lombok.Data;
  10 +import java.util.Date;
  11 +
  12 +
  13 +
  14 +/**
  15 + * 单位证照表视图对象 tbl_orginfo_certificate
  16 + *
  17 + * @author ruoyi
  18 + * @date 2024-07-18
  19 + */
  20 +@Data
  21 +@ExcelIgnoreUnannotated
  22 +public class TblOrginfoCertificateVo {
  23 +
  24 + private static final long serialVersionUID = 1L;
  25 +
  26 + /**
  27 + *
  28 + */
  29 + @ExcelProperty(value = "")
  30 + private Long id;
  31 +
  32 + /**
  33 + * 单位编号
  34 + */
  35 + @ExcelProperty(value = "单位编号")
  36 + private String orgcode;
  37 +
  38 + /**
  39 + * 证书编号
  40 + */
  41 + @ExcelProperty(value = "证书编号")
  42 + private String certificateNo;
  43 +
  44 + /**
  45 + * 认证机构名称
  46 + */
  47 + @ExcelProperty(value = "认证机构名称")
  48 + private String certificationName;
  49 +
  50 + /**
  51 + * 发证时间
  52 + */
  53 + @ExcelProperty(value = "发证时间")
  54 + private Date issuanceDate;
  55 +
  56 + /**
  57 + * 证书有效期
  58 + */
  59 + @ExcelProperty(value = "证书有效期")
  60 + private Date certificateValidityPeriod;
  61 +
  62 + /**
  63 + * 证书附件
  64 + */
  65 + @ExcelProperty(value = "证书附件")
  66 + private String certificateAttachment;
  67 +
  68 +
  69 +}
  1 +package com.ruoyi.compliancemanagement.mapper;
  2 +
  3 +import com.ruoyi.compliancemanagement.domain.TblOrginfoCertificate;
  4 +import com.ruoyi.compliancemanagement.domain.vo.TblOrginfoCertificateVo;
  5 +import com.ruoyi.common.core.mapper.BaseMapperPlus;
  6 +
  7 +/**
  8 + * 单位证照表Mapper接口
  9 + *
  10 + * @author ruoyi
  11 + * @date 2024-07-18
  12 + */
  13 +public interface TblOrginfoCertificateMapper extends BaseMapperPlus<TblOrginfoCertificateMapper, TblOrginfoCertificate, TblOrginfoCertificateVo> {
  14 +
  15 +}
  1 +package com.ruoyi.compliancemanagement.service;
  2 +
  3 +import com.ruoyi.compliancemanagement.domain.TblOrginfoCertificate;
  4 +import com.ruoyi.compliancemanagement.domain.vo.TblOrginfoCertificateVo;
  5 +import com.ruoyi.compliancemanagement.domain.bo.TblOrginfoCertificateBo;
  6 +import com.ruoyi.common.core.page.TableDataInfo;
  7 +import com.ruoyi.common.core.domain.PageQuery;
  8 +
  9 +import java.util.Collection;
  10 +import java.util.List;
  11 +
  12 +/**
  13 + * 单位证照表Service接口
  14 + *
  15 + * @author ruoyi
  16 + * @date 2024-07-18
  17 + */
  18 +public interface ITblOrginfoCertificateService {
  19 +
  20 + /**
  21 + * 查询单位证照表
  22 + */
  23 + TblOrginfoCertificateVo queryById(Long id);
  24 +
  25 + /**
  26 + * 查询单位证照表列表
  27 + */
  28 + TableDataInfo<TblOrginfoCertificateVo> queryPageList(TblOrginfoCertificateBo bo, PageQuery pageQuery);
  29 +
  30 + /**
  31 + * 查询单位证照表列表
  32 + */
  33 + List<TblOrginfoCertificateVo> queryList(TblOrginfoCertificateBo bo);
  34 +
  35 + /**
  36 + * 新增单位证照表
  37 + */
  38 + Boolean insertByBo(TblOrginfoCertificateBo bo);
  39 +
  40 + /**
  41 + * 修改单位证照表
  42 + */
  43 + Boolean updateByBo(TblOrginfoCertificateBo bo);
  44 +
  45 + /**
  46 + * 校验并批量删除单位证照表信息
  47 + */
  48 + Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
  49 +}
  1 +package com.ruoyi.compliancemanagement.service.impl;
  2 +
  3 +import cn.hutool.core.bean.BeanUtil;
  4 +import com.ruoyi.common.utils.StringUtils;
  5 +import com.ruoyi.common.core.page.TableDataInfo;
  6 +import com.ruoyi.common.core.domain.PageQuery;
  7 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  8 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  9 +import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  10 +import lombok.RequiredArgsConstructor;
  11 +import org.springframework.stereotype.Service;
  12 +import com.ruoyi.compliancemanagement.domain.bo.TblOrginfoCertificateBo;
  13 +import com.ruoyi.compliancemanagement.domain.vo.TblOrginfoCertificateVo;
  14 +import com.ruoyi.compliancemanagement.domain.TblOrginfoCertificate;
  15 +import com.ruoyi.compliancemanagement.mapper.TblOrginfoCertificateMapper;
  16 +import com.ruoyi.compliancemanagement.service.ITblOrginfoCertificateService;
  17 +
  18 +import java.util.List;
  19 +import java.util.Map;
  20 +import java.util.Collection;
  21 +
  22 +/**
  23 + * 单位证照表Service业务层处理
  24 + *
  25 + * @author ruoyi
  26 + * @date 2024-07-18
  27 + */
  28 +@RequiredArgsConstructor
  29 +@Service
  30 +public class TblOrginfoCertificateServiceImpl implements ITblOrginfoCertificateService {
  31 +
  32 + private final TblOrginfoCertificateMapper baseMapper;
  33 +
  34 + /**
  35 + * 查询单位证照表
  36 + */
  37 + @Override
  38 + public TblOrginfoCertificateVo queryById(Long id){
  39 + return baseMapper.selectVoById(id);
  40 + }
  41 +
  42 + /**
  43 + * 查询单位证照表列表
  44 + */
  45 + @Override
  46 + public TableDataInfo<TblOrginfoCertificateVo> queryPageList(TblOrginfoCertificateBo bo, PageQuery pageQuery) {
  47 + LambdaQueryWrapper<TblOrginfoCertificate> lqw = buildQueryWrapper(bo);
  48 + Page<TblOrginfoCertificateVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
  49 + return TableDataInfo.build(result);
  50 + }
  51 +
  52 + /**
  53 + * 查询单位证照表列表
  54 + */
  55 + @Override
  56 + public List<TblOrginfoCertificateVo> queryList(TblOrginfoCertificateBo bo) {
  57 + LambdaQueryWrapper<TblOrginfoCertificate> lqw = buildQueryWrapper(bo);
  58 + return baseMapper.selectVoList(lqw);
  59 + }
  60 +
  61 + private LambdaQueryWrapper<TblOrginfoCertificate> buildQueryWrapper(TblOrginfoCertificateBo bo) {
  62 + Map<String, Object> params = bo.getParams();
  63 + LambdaQueryWrapper<TblOrginfoCertificate> lqw = Wrappers.lambdaQuery();
  64 + lqw.eq(StringUtils.isNotBlank(bo.getOrgcode()), TblOrginfoCertificate::getOrgcode, bo.getOrgcode());
  65 + lqw.eq(StringUtils.isNotBlank(bo.getCertificateNo()), TblOrginfoCertificate::getCertificateNo, bo.getCertificateNo());
  66 + lqw.like(StringUtils.isNotBlank(bo.getCertificationName()), TblOrginfoCertificate::getCertificationName, bo.getCertificationName());
  67 + lqw.eq(bo.getIssuanceDate() != null, TblOrginfoCertificate::getIssuanceDate, bo.getIssuanceDate());
  68 + lqw.eq(bo.getCertificateValidityPeriod() != null, TblOrginfoCertificate::getCertificateValidityPeriod, bo.getCertificateValidityPeriod());
  69 + lqw.eq(StringUtils.isNotBlank(bo.getCertificateAttachment()), TblOrginfoCertificate::getCertificateAttachment, bo.getCertificateAttachment());
  70 + return lqw;
  71 + }
  72 +
  73 + /**
  74 + * 新增单位证照表
  75 + */
  76 + @Override
  77 + public Boolean insertByBo(TblOrginfoCertificateBo bo) {
  78 + TblOrginfoCertificate add = BeanUtil.toBean(bo, TblOrginfoCertificate.class);
  79 + validEntityBeforeSave(add);
  80 + boolean flag = baseMapper.insert(add) > 0;
  81 + if (flag) {
  82 + bo.setId(add.getId());
  83 + }
  84 + return flag;
  85 + }
  86 +
  87 + /**
  88 + * 修改单位证照表
  89 + */
  90 + @Override
  91 + public Boolean updateByBo(TblOrginfoCertificateBo bo) {
  92 + TblOrginfoCertificate update = BeanUtil.toBean(bo, TblOrginfoCertificate.class);
  93 + validEntityBeforeSave(update);
  94 + return baseMapper.updateById(update) > 0;
  95 + }
  96 +
  97 + /**
  98 + * 保存前的数据校验
  99 + */
  100 + private void validEntityBeforeSave(TblOrginfoCertificate entity){
  101 + //TODO 做一些数据校验,如唯一约束
  102 + }
  103 +
  104 + /**
  105 + * 批量删除单位证照表
  106 + */
  107 + @Override
  108 + public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
  109 + if(isValid){
  110 + //TODO 做一些业务上的校验,判断是否需要校验
  111 + }
  112 + return baseMapper.deleteBatchIds(ids) > 0;
  113 + }
  114 +}
  1 +<?xml version="1.0" encoding="UTF-8" ?>
  2 +<!DOCTYPE mapper
  3 +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4 +"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5 +<mapper namespace="com.ruoyi.compliancemanagement.mapper.TblOrginfoCertificateMapper">
  6 +
  7 + <resultMap type="com.ruoyi.compliancemanagement.domain.TblOrginfoCertificate" id="TblOrginfoCertificateResult">
  8 + <result property="id" column="id"/>
  9 + <result property="orgcode" column="orgcode"/>
  10 + <result property="certificateNo" column="certificate_no"/>
  11 + <result property="certificationName" column="certification_name"/>
  12 + <result property="issuanceDate" column="issuance_date"/>
  13 + <result property="certificateValidityPeriod" column="certificate_validity_period"/>
  14 + <result property="certificateAttachment" column="certificate_attachment"/>
  15 + <result property="createBy" column="create_by"/>
  16 + <result property="createTime" column="create_time"/>
  17 + <result property="updateBy" column="update_by"/>
  18 + <result property="updateTime" column="update_time"/>
  19 + </resultMap>
  20 +
  21 +
  22 +</mapper>