代码提交 公章管理

This commit is contained in:
123 2025-05-12 18:42:40 +08:00
parent b49d6d81a9
commit 4a857c2134
23 changed files with 662 additions and 35 deletions

View File

@ -14,7 +14,7 @@
<properties> <properties>
<revision>5.3.1</revision> <revision>5.3.1</revision>
<spring-boot.version>3.4.4</spring-boot.version> <spring-boot.version>3.4.5</spring-boot.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>17</java.version> <java.version>17</java.version>

View File

@ -1 +0,0 @@
package org.dromara.lx.domain;

View File

@ -0,0 +1,116 @@
package org.dromara.lx.operate.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.lx.operate.domain.bo.LxMaterialSealBo;
import org.dromara.lx.operate.domain.vo.LxMaterialSealVo;
import org.dromara.lx.operate.service.ILxMaterialSealService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 公章管理
*
* @author Lion Li
* @date 2025-05-12
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/operate/materialSeal")
public class LxMaterialSealController extends BaseController {
private final ILxMaterialSealService lxMaterialSealService;
/**
* 查询公章管理列表
*/
@SaCheckPermission("operate:materialSeal:list")
@GetMapping("/list")
public TableDataInfo<LxMaterialSealVo> list(LxMaterialSealBo bo, PageQuery pageQuery) {
return lxMaterialSealService.queryPageList(bo, pageQuery);
}
/**
* 导出公章管理列表
*/
@SaCheckPermission("operate:materialSeal:export")
@Log(title = "公章管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(LxMaterialSealBo bo, HttpServletResponse response) {
List<LxMaterialSealVo> list = lxMaterialSealService.queryList(bo);
ExcelUtil.exportExcel(list, "公章管理", LxMaterialSealVo.class, response);
}
/**
* 获取公章管理详细信息
*
* @param id 主键
*/
@SaCheckPermission("operate:materialSeal:query")
@GetMapping("/{id}")
public R<LxMaterialSealVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(lxMaterialSealService.queryById(id));
}
/**
* 新增公章管理
*/
@SaCheckPermission("operate:materialSeal:add")
@Log(title = "公章管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody LxMaterialSealBo bo) {
return toAjax(lxMaterialSealService.insertByBo(bo));
}
/**
* 修改公章管理
*/
@SaCheckPermission("operate:materialSeal:edit")
@Log(title = "公章管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody LxMaterialSealBo bo) {
return toAjax(lxMaterialSealService.updateByBo(bo));
}
/**
* 删除公章管理
*
* @param ids 主键串
*/
@SaCheckPermission("operate:materialSeal:remove")
@Log(title = "公章管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(lxMaterialSealService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 状态修改
*/
@SaCheckPermission("operate:materialSeal:edit")
@Log(title = "公章管理", businessType = BusinessType.UPDATE)
@PutMapping("/changeStatus")
public R<Void> changeStatus(@RequestBody LxMaterialSealBo sealBo) {
return toAjax(lxMaterialSealService.updateRoleStatus(sealBo.getId(), sealBo.getSealStatus()));
}
}

View File

@ -1,25 +1,25 @@
package org.dromara.lx.controller; package org.dromara.lx.operate.controller;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.core.validate.QueryGroup; import org.dromara.common.core.validate.QueryGroup;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log; import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType; import org.dromara.common.log.enums.BusinessType;
import org.dromara.lx.domain.bo.LxTreeBo; import org.dromara.common.web.core.BaseController;
import org.dromara.lx.domain.vo.LxTreeVo; import org.dromara.lx.operate.domain.bo.LxTreeBo;
import org.dromara.lx.service.ILxTreeTableService; import org.dromara.lx.operate.domain.vo.LxTreeVo;
import lombok.RequiredArgsConstructor; import org.dromara.lx.operate.service.ILxTreeTableService;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;

View File

@ -0,0 +1,59 @@
package org.dromara.lx.operate.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.io.Serial;
/**
* 公章管理对象 lx_material_seal
*
* @author Lion Li
* @date 2025-05-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("lx_material_seal")
public class LxMaterialSeal extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 印章类型
*/
private Long sealType;
/**
* 公章名称
*/
private String sealName;
/**
* 公章管理员
*/
private Long sealAdminId;
/**
* 启用状态
*/
private Long sealStatus;
/**
* 删除标志
*/
@TableLogic
private Long delFlag;
}

View File

@ -1,12 +1,12 @@
package org.dromara.lx.domain; package org.dromara.lx.operate.domain;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version; import com.baomidou.mybatisplus.annotation.Version;
import org.dromara.common.tenant.core.TenantEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial; import java.io.Serial;

View File

@ -0,0 +1,49 @@
package org.dromara.lx.operate.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.lx.operate.domain.LxMaterialSeal;
/**
* 公章管理业务对象 lx_material_seal
*
* @author Lion Li
* @date 2025-05-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = LxMaterialSeal.class, reverseConvertGenerate = false)
public class LxMaterialSealBo extends BaseEntity {
/**
* id
*/
@NotNull(message = "id不能为空", groups = {EditGroup.class})
private Long id;
/**
* 公章类型
*/
private Long sealType;
/**
* 公章名称
*/
private String sealName;
/**
* 公章管理员
*/
private Long sealAdminId;
/**
* 启用状态
*/
private Long sealStatus;
}

View File

@ -1,4 +1,4 @@
package org.dromara.lx.domain.bo; package org.dromara.lx.operate.domain.bo;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.lx.domain.LxTreeTable; import org.dromara.lx.operate.domain.LxTreeTable;
/** /**
* 测试树表业务对象 test_tree * 测试树表业务对象 test_tree

View File

@ -0,0 +1 @@
package org.dromara.lx.operate.domain;

View File

@ -0,0 +1,58 @@
package org.dromara.lx.operate.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.lx.operate.domain.LxMaterialSeal;
import java.io.Serial;
import java.io.Serializable;
/**
* 公章管理视图对象 lx_material_seal
*
* @author Lion Li
* @date 2025-05-12
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = LxMaterialSeal.class)
public class LxMaterialSealVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 创建人
*/
@ExcelProperty(value = "创建人")
private Long id;
/**
* 印章类型
*/
@ExcelProperty(value = "印章类型")
private Long sealType;
/**
* 印章名称
*/
@ExcelProperty(value = "印章名称")
private String sealName;
/**
* 印章管理员
*/
@ExcelProperty(value = "印章管理员")
private Long sealAdminId;
/**
* 启用状态
*/
@ExcelProperty(value = "启用状态")
private Long sealStatus;
}

View File

@ -1,10 +1,10 @@
package org.dromara.lx.domain.vo; package org.dromara.lx.operate.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.lx.domain.LxTreeTable;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import org.dromara.lx.operate.domain.LxTreeTable;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;

View File

@ -0,0 +1,15 @@
package org.dromara.lx.operate.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.lx.operate.domain.LxMaterialSeal;
import org.dromara.lx.operate.domain.vo.LxMaterialSealVo;
/**
* 公章管理Mapper接口
*
* @author Lion Li
* @date 2025-05-12
*/
public interface LxMaterialSealMapper extends BaseMapperPlus<LxMaterialSeal, LxMaterialSealVo> {
}

View File

@ -1,10 +1,10 @@
package org.dromara.lx.mapper; package org.dromara.lx.operate.mapper;
import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataColumn;
import org.dromara.common.mybatis.annotation.DataPermission; import org.dromara.common.mybatis.annotation.DataPermission;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.lx.domain.LxTreeTable; import org.dromara.lx.operate.domain.LxTreeTable;
import org.dromara.lx.domain.vo.LxTreeVo; import org.dromara.lx.operate.domain.vo.LxTreeVo;
/** /**
* 测试树表Mapper接口 * 测试树表Mapper接口
@ -16,6 +16,6 @@ import org.dromara.lx.domain.vo.LxTreeVo;
@DataColumn(key = "deptName", value = "dept_id"), @DataColumn(key = "deptName", value = "dept_id"),
@DataColumn(key = "userName", value = "user_id") @DataColumn(key = "userName", value = "user_id")
}) })
public interface IxTreeTableMapper extends BaseMapperPlus<LxTreeTable, LxTreeVo> { public interface LxTreeTableMapper extends BaseMapperPlus<LxTreeTable, LxTreeVo> {
} }

View File

@ -0,0 +1,77 @@
package org.dromara.lx.operate.service;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.lx.operate.domain.bo.LxMaterialSealBo;
import org.dromara.lx.operate.domain.vo.LxMaterialSealVo;
import java.util.Collection;
import java.util.List;
/**
* 公章管理Service接口
*
* @author Lion Li
* @date 2025-05-12
*/
public interface ILxMaterialSealService {
/**
* 查询公章管理
*
* @param id 主键
* @return 公章管理
*/
LxMaterialSealVo queryById(Long id);
/**
* 分页查询公章管理列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 公章管理分页列表
*/
TableDataInfo<LxMaterialSealVo> queryPageList(LxMaterialSealBo bo, PageQuery pageQuery);
/**
* 查询符合条件的公章管理列表
*
* @param bo 查询条件
* @return 公章管理列表
*/
List<LxMaterialSealVo> queryList(LxMaterialSealBo bo);
/**
* 新增公章管理
*
* @param bo 公章管理
* @return 是否新增成功
*/
Boolean insertByBo(LxMaterialSealBo bo);
/**
* 修改公章管理
*
* @param bo 公章管理
* @return 是否修改成功
*/
Boolean updateByBo(LxMaterialSealBo bo);
/**
* 校验并批量删除公章管理信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 修改公章状态
*
* @param id 公章ID
* @param sealStatus 公章状态
* @return 结果
*/
Integer updateRoleStatus(Long id, Long sealStatus);
}

View File

@ -1,7 +1,7 @@
package org.dromara.lx.service; package org.dromara.lx.operate.service;
import org.dromara.lx.domain.bo.LxTreeBo; import org.dromara.lx.operate.domain.bo.LxTreeBo;
import org.dromara.lx.domain.vo.LxTreeVo; import org.dromara.lx.operate.domain.vo.LxTreeVo;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;

View File

@ -0,0 +1,138 @@
package org.dromara.lx.operate.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.lx.operate.domain.LxMaterialSeal;
import org.dromara.lx.operate.domain.bo.LxMaterialSealBo;
import org.dromara.lx.operate.domain.vo.LxMaterialSealVo;
import org.dromara.lx.operate.mapper.LxMaterialSealMapper;
import org.dromara.lx.operate.service.ILxMaterialSealService;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 公章管理Service业务层处理
*
* @author Lion Li
* @date 2025-05-12
*/
@RequiredArgsConstructor
@Service
public class LxMaterialSealServiceImpl implements ILxMaterialSealService {
private final LxMaterialSealMapper baseMapper;
/**
* 查询公章管理
*
* @param id 主键
* @return 公章管理
*/
@Override
public LxMaterialSealVo queryById(Long id) {
return baseMapper.selectVoById(id);
}
/**
* 分页查询公章管理列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 公章管理分页列表
*/
@Override
public TableDataInfo<LxMaterialSealVo> queryPageList(LxMaterialSealBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<LxMaterialSeal> lqw = buildQueryWrapper(bo);
Page<LxMaterialSealVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的公章管理列表
*
* @param bo 查询条件
* @return 公章管理列表
*/
@Override
public List<LxMaterialSealVo> queryList(LxMaterialSealBo bo) {
LambdaQueryWrapper<LxMaterialSeal> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<LxMaterialSeal> buildQueryWrapper(LxMaterialSealBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<LxMaterialSeal> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(LxMaterialSeal::getId);
lqw.eq(bo.getSealType() != null, LxMaterialSeal::getSealType, bo.getSealType());
lqw.like(StringUtils.isNotBlank(bo.getSealName()), LxMaterialSeal::getSealName, bo.getSealName());
lqw.eq(bo.getSealAdminId() != null, LxMaterialSeal::getSealAdminId, bo.getSealAdminId());
lqw.eq(bo.getSealStatus() != null, LxMaterialSeal::getSealStatus, bo.getSealStatus());
return lqw;
}
/**
* 新增公章管理
*
* @param bo 公章管理
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(LxMaterialSealBo bo) {
LxMaterialSeal add = MapstructUtils.convert(bo, LxMaterialSeal.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改公章管理
*
* @param bo 公章管理
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(LxMaterialSealBo bo) {
LxMaterialSeal update = MapstructUtils.convert(bo, LxMaterialSeal.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(LxMaterialSeal entity) {
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除公章管理信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public Integer updateRoleStatus(Long id, Long sealStatus) {
return null;
}
}

View File

@ -1,15 +1,15 @@
package org.dromara.lx.service.impl; package org.dromara.lx.operate.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.lx.domain.LxTreeTable; import org.dromara.lx.operate.domain.LxTreeTable;
import org.dromara.lx.domain.bo.LxTreeBo; import org.dromara.lx.operate.domain.bo.LxTreeBo;
import org.dromara.lx.domain.vo.LxTreeVo; import org.dromara.lx.operate.domain.vo.LxTreeVo;
import org.dromara.lx.mapper.IxTreeTableMapper; import org.dromara.lx.operate.mapper.LxTreeTableMapper;
import org.dromara.lx.service.ILxTreeTableService; import org.dromara.lx.operate.service.ILxTreeTableService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collection; import java.util.Collection;
@ -27,7 +27,7 @@ import java.util.Map;
@Service @Service
public class LxTreeTableServiceImpl implements ILxTreeTableService { public class LxTreeTableServiceImpl implements ILxTreeTableService {
private final IxTreeTableMapper baseMapper; private final LxTreeTableMapper baseMapper;
@Override @Override
public LxTreeVo queryById(Long id) { public LxTreeVo queryById(Long id) {

View File

@ -2,6 +2,6 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.lx.mapper.IxTreeTableMapper"> <mapper namespace="org.dromara.system.mapper.LxMaterialSealMapper">
</mapper> </mapper>

View File

@ -0,0 +1,7 @@
<?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="org.dromara.lx.mapper.LxTreeTableMapper">
</mapper>

View File

@ -0,0 +1,108 @@
package org.dromara.workflow.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.workflow.common.ConditionalOnEnable;
import org.dromara.workflow.domain.bo.TestLeaveBo;
import org.dromara.workflow.domain.vo.TestLeaveVo;
import org.dromara.workflow.service.ITestLeaveService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 出差
*
* @author may
* @date 2023-07-21
*/
@ConditionalOnEnable
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/workflow/businessTrip")
public class OABusinessTripController extends BaseController {
private final ITestLeaveService testLeaveService;
/**
* 查询出差列表
*/
@SaCheckPermission("workflow:leave:list")
@GetMapping("/list")
public TableDataInfo<TestLeaveVo> list(TestLeaveBo bo, PageQuery pageQuery) {
return testLeaveService.queryPageList(bo, pageQuery);
}
/**
* 导出请假列表
*/
@SaCheckPermission("workflow:leave:export")
@Log(title = "请假", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(TestLeaveBo bo, HttpServletResponse response) {
List<TestLeaveVo> list = testLeaveService.queryList(bo);
ExcelUtil.exportExcel(list, "请假", TestLeaveVo.class, response);
}
/**
* 获取请假详细信息
*
* @param id 主键
*/
@SaCheckPermission("workflow:leave:query")
@GetMapping("/{id}")
public R<TestLeaveVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(testLeaveService.queryById(id));
}
/**
* 新增请假
*/
@SaCheckPermission("workflow:leave:add")
@Log(title = "请假", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<TestLeaveVo> add(@Validated(AddGroup.class) @RequestBody TestLeaveBo bo) {
return R.ok(testLeaveService.insertByBo(bo));
}
/**
* 修改请假
*/
@SaCheckPermission("workflow:leave:edit")
@Log(title = "请假", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<TestLeaveVo> edit(@Validated(EditGroup.class) @RequestBody TestLeaveBo bo) {
return R.ok(testLeaveService.updateByBo(bo));
}
/**
* 删除请假
*
* @param ids 主键串
*/
@SaCheckPermission("workflow:leave:remove")
@Log(title = "请假", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(testLeaveService.deleteWithValidByIds(List.of(ids)));
}
}

View File

@ -35,7 +35,7 @@ import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
@RestController @RestController
@RequestMapping("/workflow/leave") @RequestMapping("/workflow/leave")
public class TestLeaveController extends BaseController { public class OALeaveController extends BaseController {
private final ITestLeaveService testLeaveService; private final ITestLeaveService testLeaveService;