唐耀东
2022-08-15 5a4cefe994aaf554c4f4c5d94c325e0f3d4be358
提交代码
16个文件已添加
1052 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/BsManualController.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/BsTemplateController.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/BsManual.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/BsTemplate.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/BsManualBo.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/BsTemplateBo.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/BsManualVo.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/BsTemplateVo.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/BsManualMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/BsTemplateMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/service/IBsManualService.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/service/IBsTemplateService.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsManualServiceImpl.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsTemplateServiceImpl.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/resources/mapper/oa/BsManualMapper.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/resources/mapper/oa/BsTemplateMapper.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/BsManualController.java
New file
@@ -0,0 +1,116 @@
package com.ruoyi.web.controller.oa;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.BsManualVo;
import com.ruoyi.oa.domain.bo.BsManualBo;
import com.ruoyi.oa.service.IBsManualService;
import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiOperation;
/**
 * 手册管理Controller
 *
 * @author ruoyi
 * @date 2022-08-15
 */
@Validated
@Api(value = "手册管理控制器", tags = {"手册管理管理"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
@RequestMapping("/oa/manual")
public class BsManualController extends BaseController {
    private final IBsManualService iBsManualService;
    /**
     * 查询手册管理列表
     */
    @ApiOperation("查询手册管理列表")
    @PreAuthorize("@ss.hasPermi('oa:manual:list')")
    @GetMapping("/list")
    public TableDataInfo<BsManualVo> list(@Validated(QueryGroup.class) BsManualBo bo) {
        return iBsManualService.queryPageList(bo);
    }
    /**
     * 导出手册管理列表
     */
    @ApiOperation("导出手册管理列表")
    @PreAuthorize("@ss.hasPermi('oa:manual:export')")
    @Log(title = "手册管理", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public void export(@Validated BsManualBo bo, HttpServletResponse response) {
        List<BsManualVo> list = iBsManualService.queryList(bo);
        ExcelUtil.exportExcel(list, "手册管理", BsManualVo.class, response);
    }
    /**
     * 获取手册管理详细信息
     */
    @ApiOperation("获取手册管理详细信息")
    @PreAuthorize("@ss.hasPermi('oa:manual:query')")
    @GetMapping("/{id}")
    public AjaxResult<BsManualVo> getInfo(@ApiParam("主键")
                                                  @NotNull(message = "主键不能为空")
                                                  @PathVariable("id") Long id) {
        return AjaxResult.success(iBsManualService.queryById(id));
    }
    /**
     * 新增手册管理
     */
    @ApiOperation("新增手册管理")
    @PreAuthorize("@ss.hasPermi('oa:manual:add')")
    @Log(title = "手册管理", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody BsManualBo bo) {
        return toAjax(iBsManualService.insertByBo(bo) ? 1 : 0);
    }
    /**
     * 修改手册管理
     */
    @ApiOperation("修改手册管理")
    @PreAuthorize("@ss.hasPermi('oa:manual:edit')")
    @Log(title = "手册管理", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody BsManualBo bo) {
        return toAjax(iBsManualService.updateByBo(bo) ? 1 : 0);
    }
    /**
     * 删除手册管理
     */
    @ApiOperation("删除手册管理")
    @PreAuthorize("@ss.hasPermi('oa:manual:remove')")
    @Log(title = "手册管理" , businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult<Void> remove(@ApiParam("主键串")
                                       @NotEmpty(message = "主键不能为空")
                                       @PathVariable Long[] ids) {
        return toAjax(iBsManualService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/BsTemplateController.java
New file
@@ -0,0 +1,116 @@
package com.ruoyi.web.controller.oa;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.BsTemplateVo;
import com.ruoyi.oa.domain.bo.BsTemplateBo;
import com.ruoyi.oa.service.IBsTemplateService;
import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiOperation;
/**
 * 模板管理Controller
 *
 * @author ruoyi
 * @date 2022-08-15
 */
@Validated
@Api(value = "模板管理控制器", tags = {"模板管理管理"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
@RequestMapping("/oa/template")
public class BsTemplateController extends BaseController {
    private final IBsTemplateService iBsTemplateService;
    /**
     * 查询模板管理列表
     */
    @ApiOperation("查询模板管理列表")
    @PreAuthorize("@ss.hasPermi('oa:template:list')")
    @GetMapping("/list")
    public TableDataInfo<BsTemplateVo> list(@Validated(QueryGroup.class) BsTemplateBo bo) {
        return iBsTemplateService.queryPageList(bo);
    }
    /**
     * 导出模板管理列表
     */
    @ApiOperation("导出模板管理列表")
    @PreAuthorize("@ss.hasPermi('oa:template:export')")
    @Log(title = "模板管理", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public void export(@Validated BsTemplateBo bo, HttpServletResponse response) {
        List<BsTemplateVo> list = iBsTemplateService.queryList(bo);
        ExcelUtil.exportExcel(list, "模板管理", BsTemplateVo.class, response);
    }
    /**
     * 获取模板管理详细信息
     */
    @ApiOperation("获取模板管理详细信息")
    @PreAuthorize("@ss.hasPermi('oa:template:query')")
    @GetMapping("/{id}")
    public AjaxResult<BsTemplateVo> getInfo(@ApiParam("主键")
                                                  @NotNull(message = "主键不能为空")
                                                  @PathVariable("id") Long id) {
        return AjaxResult.success(iBsTemplateService.queryById(id));
    }
    /**
     * 新增模板管理
     */
    @ApiOperation("新增模板管理")
    @PreAuthorize("@ss.hasPermi('oa:template:add')")
    @Log(title = "模板管理", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody BsTemplateBo bo) {
        return toAjax(iBsTemplateService.insertByBo(bo) ? 1 : 0);
    }
    /**
     * 修改模板管理
     */
    @ApiOperation("修改模板管理")
    @PreAuthorize("@ss.hasPermi('oa:template:edit')")
    @Log(title = "模板管理", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody BsTemplateBo bo) {
        return toAjax(iBsTemplateService.updateByBo(bo) ? 1 : 0);
    }
    /**
     * 删除模板管理
     */
    @ApiOperation("删除模板管理")
    @PreAuthorize("@ss.hasPermi('oa:template:remove')")
    @Log(title = "模板管理" , businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult<Void> remove(@ApiParam("主键串")
                                       @NotEmpty(message = "主键不能为空")
                                       @PathVariable Long[] ids) {
        return toAjax(iBsTemplateService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
    }
}
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/BsManual.java
New file
@@ -0,0 +1,53 @@
package com.ruoyi.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;
/**
 * 手册管理对象 bs_manual
 *
 * @author ruoyi
 * @date 2022-08-15
 */
@Data
@Accessors(chain = true)
@TableName("bs_manual")
public class BsManual extends BaseEntity {
    private static final long serialVersionUID=1L;
    /**
     *
     */
    @TableId(value = "id")
    private Long id;
    /**
     * 手册
     */
    private String manual;
    /**
     * 发布版本
     */
    private String versionCode;
    /**
     * 修订日期
     */
    private String reviseTime;
    /**
     * 附件
     */
    private String fileUrl;
    /**
     * 删除标识
     */
    @TableLogic
    private String delFlag;
}
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/BsTemplate.java
New file
@@ -0,0 +1,53 @@
package com.ruoyi.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;
/**
 * 模板管理对象 bs_template
 *
 * @author ruoyi
 * @date 2022-08-15
 */
@Data
@Accessors(chain = true)
@TableName("bs_template")
public class BsTemplate extends BaseEntity {
    private static final long serialVersionUID=1L;
    /**
     *
     */
    @TableId(value = "id")
    private Long id;
    /**
     * 模板
     */
    private String templateName;
    /**
     * 发布版本
     */
    private String versionCode;
    /**
     * 修订日期
     */
    private String reviseTime;
    /**
     * 附件
     */
    private String fileUrl;
    /**
     * 删除标识
     */
    @TableLogic
    private String delFlag;
}
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/BsManualBo.java
New file
@@ -0,0 +1,86 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.ruoyi.common.core.domain.BaseEntity;
/**
 * 手册管理业务对象 bs_manual
 *
 * @author ruoyi
 * @date 2022-08-15
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("手册管理业务对象")
public class BsManualBo extends BaseEntity {
    /**
     *
     */
    @ApiModelProperty(value = "", required = true)
    @NotNull(message = "不能为空", groups = { EditGroup.class })
    private Long id;
    /**
     * 手册
     */
    @ApiModelProperty(value = "手册", required = true)
    @NotBlank(message = "手册不能为空", groups = { AddGroup.class, EditGroup.class })
    private String manual;
    /**
     * 发布版本
     */
    @ApiModelProperty(value = "发布版本", required = true)
    @NotBlank(message = "发布版本不能为空", groups = { AddGroup.class, EditGroup.class })
    private String versionCode;
    /**
     * 修订日期
     */
    @ApiModelProperty(value = "修订日期", required = true)
    @NotBlank(message = "修订日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private String reviseTime;
    /**
     * 附件
     */
    @ApiModelProperty(value = "附件")
    private String fileUrl;
    /**
     * 分页大小
     */
    @ApiModelProperty("分页大小")
    private Integer pageSize;
    /**
     * 当前页数
     */
    @ApiModelProperty("当前页数")
    private Integer pageNum;
    /**
     * 排序列
     */
    @ApiModelProperty("排序列")
    private String orderByColumn;
    /**
     * 排序的方向desc或者asc
     */
    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
    private String isAsc;
}
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/BsTemplateBo.java
New file
@@ -0,0 +1,86 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.ruoyi.common.core.domain.BaseEntity;
/**
 * 模板管理业务对象 bs_template
 *
 * @author ruoyi
 * @date 2022-08-15
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("模板管理业务对象")
public class BsTemplateBo extends BaseEntity {
    /**
     *
     */
    @ApiModelProperty(value = "", required = true)
    @NotNull(message = "不能为空", groups = { EditGroup.class })
    private Long id;
    /**
     * 模板
     */
    @ApiModelProperty(value = "模板", required = true)
    @NotBlank(message = "模板不能为空", groups = { AddGroup.class, EditGroup.class })
    private String templateName;
    /**
     * 发布版本
     */
    @ApiModelProperty(value = "发布版本", required = true)
    @NotBlank(message = "发布版本不能为空", groups = { AddGroup.class, EditGroup.class })
    private String versionCode;
    /**
     * 修订日期
     */
    @ApiModelProperty(value = "修订日期", required = true)
    @NotBlank(message = "修订日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private String reviseTime;
    /**
     * 附件
     */
    @ApiModelProperty(value = "附件")
    private String fileUrl;
    /**
     * 分页大小
     */
    @ApiModelProperty("分页大小")
    private Integer pageSize;
    /**
     * 当前页数
     */
    @ApiModelProperty("当前页数")
    private Integer pageNum;
    /**
     * 排序列
     */
    @ApiModelProperty("排序列")
    private String orderByColumn;
    /**
     * 排序的方向desc或者asc
     */
    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
    private String isAsc;
}
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/BsManualVo.java
New file
@@ -0,0 +1,70 @@
package com.ruoyi.oa.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * 手册管理视图对象 bs_manual
 *
 * @author ruoyi
 * @date 2022-08-15
 */
@Data
@ApiModel("手册管理视图对象")
@ExcelIgnoreUnannotated
public class BsManualVo {
    private static final long serialVersionUID = 1L;
    /**
     *
     */
    @ExcelProperty(value = "")
    @ApiModelProperty("")
    private Long id;
    /**
     * 手册
     */
    @ExcelProperty(value = "手册")
    @ApiModelProperty("手册")
    private String manual;
    /**
     * 发布版本
     */
    @ExcelProperty(value = "发布版本")
    @ApiModelProperty("发布版本")
    private String versionCode;
    /**
     * 修订日期
     */
    @ExcelProperty(value = "修订日期")
    @ApiModelProperty("修订日期")
    private String reviseTime;
    /**
     * 附件
     */
    @ExcelProperty(value = "附件")
    @ApiModelProperty("附件")
    private String fileUrl;
    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    @ApiModelProperty("创建时间")
    private Date createTime;
}
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/BsTemplateVo.java
New file
@@ -0,0 +1,70 @@
package com.ruoyi.oa.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * 模板管理视图对象 bs_template
 *
 * @author ruoyi
 * @date 2022-08-15
 */
@Data
@ApiModel("模板管理视图对象")
@ExcelIgnoreUnannotated
public class BsTemplateVo {
    private static final long serialVersionUID = 1L;
    /**
     *
     */
    @ExcelProperty(value = "")
    @ApiModelProperty("")
    private Long id;
    /**
     * 模板
     */
    @ExcelProperty(value = "模板")
    @ApiModelProperty("模板")
    private String templateName;
    /**
     * 发布版本
     */
    @ExcelProperty(value = "发布版本")
    @ApiModelProperty("发布版本")
    private String versionCode;
    /**
     * 修订日期
     */
    @ExcelProperty(value = "修订日期")
    @ApiModelProperty("修订日期")
    private String reviseTime;
    /**
     * 附件
     */
    @ExcelProperty(value = "附件")
    @ApiModelProperty("附件")
    private String fileUrl;
    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    @ApiModelProperty("创建时间")
    private Date createTime;
}
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/BsManualMapper.java
New file
@@ -0,0 +1,14 @@
package com.ruoyi.oa.mapper;
import com.ruoyi.oa.domain.BsManual;
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
/**
 * 手册管理Mapper接口
 *
 * @author ruoyi
 * @date 2022-08-15
 */
public interface BsManualMapper extends BaseMapperPlus<BsManual> {
}
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/BsTemplateMapper.java
New file
@@ -0,0 +1,14 @@
package com.ruoyi.oa.mapper;
import com.ruoyi.oa.domain.BsTemplate;
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
/**
 * 模板管理Mapper接口
 *
 * @author ruoyi
 * @date 2022-08-15
 */
public interface BsTemplateMapper extends BaseMapperPlus<BsTemplate> {
}
ruoyi-oa/src/main/java/com/ruoyi/oa/service/IBsManualService.java
New file
@@ -0,0 +1,56 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.BsManual;
import com.ruoyi.oa.domain.vo.BsManualVo;
import com.ruoyi.oa.domain.bo.BsManualBo;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import java.util.Collection;
import java.util.List;
/**
 * 手册管理Service接口
 *
 * @author ruoyi
 * @date 2022-08-15
 */
public interface IBsManualService extends IServicePlus<BsManual, BsManualVo> {
    /**
     * 查询单个
     * @return
     */
    BsManualVo queryById(Long id);
    /**
     * 查询列表
     */
    TableDataInfo<BsManualVo> queryPageList(BsManualBo bo);
    /**
     * 查询列表
     */
    List<BsManualVo> queryList(BsManualBo bo);
    /**
     * 根据新增业务对象插入手册管理
     * @param bo 手册管理新增业务对象
     * @return
     */
    Boolean insertByBo(BsManualBo bo);
    /**
     * 根据编辑业务对象修改手册管理
     * @param bo 手册管理编辑业务对象
     * @return
     */
    Boolean updateByBo(BsManualBo bo);
    /**
     * 校验并删除数据
     * @param ids 主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}
ruoyi-oa/src/main/java/com/ruoyi/oa/service/IBsTemplateService.java
New file
@@ -0,0 +1,56 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.BsTemplate;
import com.ruoyi.oa.domain.vo.BsTemplateVo;
import com.ruoyi.oa.domain.bo.BsTemplateBo;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import java.util.Collection;
import java.util.List;
/**
 * 模板管理Service接口
 *
 * @author ruoyi
 * @date 2022-08-15
 */
public interface IBsTemplateService extends IServicePlus<BsTemplate, BsTemplateVo> {
    /**
     * 查询单个
     * @return
     */
    BsTemplateVo queryById(Long id);
    /**
     * 查询列表
     */
    TableDataInfo<BsTemplateVo> queryPageList(BsTemplateBo bo);
    /**
     * 查询列表
     */
    List<BsTemplateVo> queryList(BsTemplateBo bo);
    /**
     * 根据新增业务对象插入模板管理
     * @param bo 模板管理新增业务对象
     * @return
     */
    Boolean insertByBo(BsTemplateBo bo);
    /**
     * 根据编辑业务对象修改模板管理
     * @param bo 模板管理编辑业务对象
     * @return
     */
    Boolean updateByBo(BsTemplateBo bo);
    /**
     * 校验并删除数据
     * @param ids 主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsManualServiceImpl.java
New file
@@ -0,0 +1,110 @@
package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.http.HttpStatus;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.core.page.PagePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.oa.domain.BsTemplate;
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.oa.domain.bo.BsManualBo;
import com.ruoyi.oa.domain.vo.BsManualVo;
import com.ruoyi.oa.domain.BsManual;
import com.ruoyi.oa.mapper.BsManualMapper;
import com.ruoyi.oa.service.IBsManualService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * 手册管理Service业务层处理
 *
 * @author ruoyi
 * @date 2022-08-15
 */
@Service
public class BsManualServiceImpl extends ServicePlusImpl<BsManualMapper, BsManual, BsManualVo> implements IBsManualService {
    @Override
    public BsManualVo queryById(Long id){
        return getVoById(id);
    }
    @Override
    public TableDataInfo<BsManualVo> queryPageList(BsManualBo bo) {
        PagePlus<BsManual, BsManualVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
        return PageUtils.buildDataInfo(result);
    }
    @Override
    public List<BsManualVo> queryList(BsManualBo bo) {
        return listVo(buildQueryWrapper(bo));
    }
    private LambdaQueryWrapper<BsManual> buildQueryWrapper(BsManualBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<BsManual> lqw = Wrappers.lambdaQuery();
        return lqw;
    }
    @Override
    public Boolean insertByBo(BsManualBo bo) {
        List<BsManual> list = baseMapper.selectList(new LambdaQueryWrapper<BsManual>().eq(BsManual::getManual, bo.getManual()));
        if (list.size() > 0) {
            throw new ServiceException("手册重复", HttpStatus.HTTP_PARTIAL);
        }
        List<BsManual> vList = baseMapper.selectList(new LambdaQueryWrapper<BsManual>().eq(BsManual::getVersionCode, bo.getVersionCode()));
        if (vList.size() > 0) {
            throw new ServiceException("发布版本重复", HttpStatus.HTTP_PARTIAL);
        }
        BsManual add = BeanUtil.toBean(bo, BsManual.class);
        validEntityBeforeSave(add);
        boolean flag = save(add);
        if (flag) {
            bo.setId(add.getId());
        }
        return flag;
    }
    @Override
    public Boolean updateByBo(BsManualBo bo) {
        List<BsManual> list = baseMapper.selectList(new LambdaQueryWrapper<BsManual>()
            .eq(BsManual::getManual, bo.getManual())
            .ne(BsManual::getId, bo.getId()));
        if (list.size() > 0) {
            throw new ServiceException("手册重复", HttpStatus.HTTP_PARTIAL);
        }
        List<BsManual> vList = baseMapper.selectList(new LambdaQueryWrapper<BsManual>()
            .eq(BsManual::getVersionCode, bo.getVersionCode())
            .ne(BsManual::getId, bo.getId()));
        if (vList.size() > 0) {
            throw new ServiceException("发布版本重复", HttpStatus.HTTP_PARTIAL);
        }
        BsManual update = BeanUtil.toBean(bo, BsManual.class);
        validEntityBeforeSave(update);
        return updateById(update);
    }
    /**
     * 保存前的数据校验
     *
     * @param entity 实体类数据
     */
    private void validEntityBeforeSave(BsManual entity){
        //TODO 做一些数据校验,如唯一约束
    }
    @Override
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if(isValid){
            //TODO 做一些业务上的校验,判断是否需要校验
        }
        return removeByIds(ids);
    }
}
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsTemplateServiceImpl.java
New file
@@ -0,0 +1,110 @@
package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.http.HttpStatus;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.core.page.PagePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.oa.domain.BsRules;
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.oa.domain.bo.BsTemplateBo;
import com.ruoyi.oa.domain.vo.BsTemplateVo;
import com.ruoyi.oa.domain.BsTemplate;
import com.ruoyi.oa.mapper.BsTemplateMapper;
import com.ruoyi.oa.service.IBsTemplateService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * 模板管理Service业务层处理
 *
 * @author ruoyi
 * @date 2022-08-15
 */
@Service
public class BsTemplateServiceImpl extends ServicePlusImpl<BsTemplateMapper, BsTemplate, BsTemplateVo> implements IBsTemplateService {
    @Override
    public BsTemplateVo queryById(Long id){
        return getVoById(id);
    }
    @Override
    public TableDataInfo<BsTemplateVo> queryPageList(BsTemplateBo bo) {
        PagePlus<BsTemplate, BsTemplateVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
        return PageUtils.buildDataInfo(result);
    }
    @Override
    public List<BsTemplateVo> queryList(BsTemplateBo bo) {
        return listVo(buildQueryWrapper(bo));
    }
    private LambdaQueryWrapper<BsTemplate> buildQueryWrapper(BsTemplateBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<BsTemplate> lqw = Wrappers.lambdaQuery();
        return lqw;
    }
    @Override
    public Boolean insertByBo(BsTemplateBo bo) {
        List<BsTemplate> list = baseMapper.selectList(new LambdaQueryWrapper<BsTemplate>().eq(BsTemplate::getTemplateName, bo.getTemplateName()));
        if (list.size() > 0) {
            throw new ServiceException("模板重复", HttpStatus.HTTP_PARTIAL);
        }
        List<BsTemplate> vList = baseMapper.selectList(new LambdaQueryWrapper<BsTemplate>().eq(BsTemplate::getVersionCode, bo.getVersionCode()));
        if (vList.size() > 0) {
            throw new ServiceException("发布版本重复", HttpStatus.HTTP_PARTIAL);
        }
        BsTemplate add = BeanUtil.toBean(bo, BsTemplate.class);
        validEntityBeforeSave(add);
        boolean flag = save(add);
        if (flag) {
            bo.setId(add.getId());
        }
        return flag;
    }
    @Override
    public Boolean updateByBo(BsTemplateBo bo) {
        List<BsTemplate> list = baseMapper.selectList(new LambdaQueryWrapper<BsTemplate>()
            .eq(BsTemplate::getTemplateName, bo.getTemplateName())
            .ne(BsTemplate::getId, bo.getId()));
        if (list.size() > 0) {
            throw new ServiceException("模板重复", HttpStatus.HTTP_PARTIAL);
        }
        List<BsTemplate> vList = baseMapper.selectList(new LambdaQueryWrapper<BsTemplate>()
            .eq(BsTemplate::getVersionCode, bo.getVersionCode())
            .ne(BsTemplate::getId, bo.getId()));
        if (vList.size() > 0) {
            throw new ServiceException("发布版本重复", HttpStatus.HTTP_PARTIAL);
        }
        BsTemplate update = BeanUtil.toBean(bo, BsTemplate.class);
        validEntityBeforeSave(update);
        return updateById(update);
    }
    /**
     * 保存前的数据校验
     *
     * @param entity 实体类数据
     */
    private void validEntityBeforeSave(BsTemplate entity){
        //TODO 做一些数据校验,如唯一约束
    }
    @Override
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if(isValid){
            //TODO 做一些业务上的校验,判断是否需要校验
        }
        return removeByIds(ids);
    }
}
ruoyi-oa/src/main/resources/mapper/oa/BsManualMapper.xml
New file
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.oa.mapper.BsManualMapper">
    <resultMap type="com.ruoyi.oa.domain.BsManual" id="BsManualResult">
        <result property="id" column="id"/>
        <result property="manual" column="manual"/>
        <result property="versionCode" column="version_code"/>
        <result property="reviseTime" column="revise_time"/>
        <result property="fileUrl" column="file_url"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="delFlag" column="del_flag"/>
    </resultMap>
</mapper>
ruoyi-oa/src/main/resources/mapper/oa/BsTemplateMapper.xml
New file
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.oa.mapper.BsTemplateMapper">
    <resultMap type="com.ruoyi.oa.domain.BsTemplate" id="BsTemplateResult">
        <result property="id" column="id"/>
        <result property="templateName" column="template_name"/>
        <result property="versionCode" column="version_code"/>
        <result property="reviseTime" column="revise_time"/>
        <result property="fileUrl" column="file_url"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="delFlag" column="del_flag"/>
    </resultMap>
</mapper>