From 7aa9d519a0d66be0d824bd78672530facba7088f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E5=B1=95=E8=88=AA?= <2426745133@qq.com> Date: Thu, 6 Nov 2025 15:22:40 +0800 Subject: [PATCH] =?UTF-8?q?11-06-=E8=A7=92=E8=89=B2=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysRoleWorkController.java | 106 +++++++++++++ .../dromara/bigscreen/domain/SysRoleWork.java | 52 +++++++ .../bigscreen/domain/bo/SysRoleWorkBo.java | 46 ++++++ .../bigscreen/domain/vo/SysRoleWorkVo.java | 58 ++++++++ .../bigscreen/mapper/SysRoleWorkMapper.java | 15 ++ .../service/ISysRoleWorkService.java | 70 +++++++++ .../service/impl/SysRoleWorkServiceImpl.java | 140 ++++++++++++++++++ 7 files changed, 487 insertions(+) create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/SysRoleWorkController.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/SysRoleWork.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/bo/SysRoleWorkBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/vo/SysRoleWorkVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/mapper/SysRoleWorkMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/ISysRoleWorkService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/impl/SysRoleWorkServiceImpl.java diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/SysRoleWorkController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/SysRoleWorkController.java new file mode 100644 index 00000000..335eca14 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/SysRoleWorkController.java @@ -0,0 +1,106 @@ +package org.dromara.bigscreen.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.bigscreen.domain.bo.SysRoleWorkBo; +import org.dromara.bigscreen.domain.vo.SysRoleWorkVo; +import org.dromara.bigscreen.service.ISysRoleWorkService; +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.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 角色流程对应 + * + * @author Lion Li + * @date 2025-11-06 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/bigscreen/roleWork") +public class SysRoleWorkController extends BaseController { + + private final ISysRoleWorkService sysRoleWorkService; + + /** + * 查询角色流程对应列表 + */ + @SaCheckPermission("bigscreen:roleWork:list") + @GetMapping("/list") + public TableDataInfo list(SysRoleWorkBo bo, PageQuery pageQuery) { + return sysRoleWorkService.queryPageList(bo, pageQuery); + } + + /** + * 导出角色流程对应列表 + */ + @SaCheckPermission("bigscreen:roleWork:export") + @Log(title = "角色流程对应", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SysRoleWorkBo bo, HttpServletResponse response) { + List list = sysRoleWorkService.queryList(bo); + ExcelUtil.exportExcel(list, "角色流程对应", SysRoleWorkVo.class, response); + } + + /** + * 获取角色流程对应详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("bigscreen:roleWork:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(sysRoleWorkService.queryById(id)); + } + + /** + * 新增角色流程对应 + */ + @SaCheckPermission("bigscreen:roleWork:add") + @Log(title = "角色流程对应", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysRoleWorkBo bo) { + return toAjax(sysRoleWorkService.insertByBo(bo)); + } + + /** + * 修改角色流程对应 + */ + @SaCheckPermission("bigscreen:roleWork:edit") + @Log(title = "角色流程对应", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysRoleWorkBo bo) { + return toAjax(sysRoleWorkService.updateByBo(bo)); + } + + /** + * 删除角色流程对应 + * + * @param ids 主键串 + */ + @SaCheckPermission("bigscreen:roleWork:remove") + @Log(title = "角色流程对应", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(sysRoleWorkService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/SysRoleWork.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/SysRoleWork.java new file mode 100644 index 00000000..67f14e06 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/SysRoleWork.java @@ -0,0 +1,52 @@ +package org.dromara.bigscreen.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.mybatis.core.domain.BaseEntity; + +import java.io.Serial; + +/** + * 角色流程对应对象 sys_role_work + * + * @author Lion Li + * @date 2025-11-06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_role_work") +public class SysRoleWork extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id") + private Long id; + + /** + * 绑定角色ID + */ + private Long roleId; + + /** + * 流程名称 + */ + private String lcmc; + + /** + * 流程描述 + */ + private String lcms; + + /** + * 流程详情 + */ + private String lcxq; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/bo/SysRoleWorkBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/bo/SysRoleWorkBo.java new file mode 100644 index 00000000..9bce394a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/bo/SysRoleWorkBo.java @@ -0,0 +1,46 @@ +package org.dromara.bigscreen.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.bigscreen.domain.SysRoleWork; +import org.dromara.common.mybatis.core.domain.BaseEntity; + +/** + * 角色流程对应业务对象 sys_role_work + * + * @author Lion Li + * @date 2025-11-06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysRoleWork.class, reverseConvertGenerate = false) +public class SysRoleWorkBo extends BaseEntity { + + /** + * id + */ + private Long id; + + /** + * 绑定角色ID + */ + private Long roleId; + + /** + * 流程名称 + */ + private String lcmc; + + /** + * 流程描述 + */ + private String lcms; + + /** + * 流程详情 + */ + private String lcxq; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/vo/SysRoleWorkVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/vo/SysRoleWorkVo.java new file mode 100644 index 00000000..38b3cc39 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/vo/SysRoleWorkVo.java @@ -0,0 +1,58 @@ +package org.dromara.bigscreen.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.bigscreen.domain.SysRoleWork; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 角色流程对应视图对象 sys_role_work + * + * @author Lion Li + * @date 2025-11-06 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysRoleWork.class) +public class SysRoleWorkVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @ExcelProperty(value = "id") + private Long id; + + /** + * 绑定角色ID + */ + @ExcelProperty(value = "绑定角色ID") + private Long roleId; + + /** + * 流程名称 + */ + @ExcelProperty(value = "流程名称") + private String lcmc; + + /** + * 流程描述 + */ + @ExcelProperty(value = "流程描述") + private String lcms; + + /** + * 流程详情 + */ + @ExcelProperty(value = "流程详情") + private String lcxq; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/mapper/SysRoleWorkMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/mapper/SysRoleWorkMapper.java new file mode 100644 index 00000000..b32939d2 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/mapper/SysRoleWorkMapper.java @@ -0,0 +1,15 @@ +package org.dromara.bigscreen.mapper; + +import org.dromara.bigscreen.domain.SysRoleWork; +import org.dromara.bigscreen.domain.vo.SysRoleWorkVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 角色流程对应Mapper接口 + * + * @author Lion Li + * @date 2025-11-06 + */ +public interface SysRoleWorkMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/ISysRoleWorkService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/ISysRoleWorkService.java new file mode 100644 index 00000000..03a1b0ca --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/ISysRoleWorkService.java @@ -0,0 +1,70 @@ +package org.dromara.bigscreen.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.dromara.bigscreen.domain.SysRoleWork; +import org.dromara.bigscreen.domain.bo.SysRoleWorkBo; +import org.dromara.bigscreen.domain.vo.SysRoleWorkVo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +import java.util.Collection; +import java.util.List; + +/** + * 角色流程对应Service接口 + * + * @author Lion Li + * @date 2025-11-06 + */ +public interface ISysRoleWorkService extends IService{ + + /** + * 查询角色流程对应 + * + * @param id 主键 + * @return 角色流程对应 + */ + SysRoleWorkVo queryById(Long id); + + /** + * 分页查询角色流程对应列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 角色流程对应分页列表 + */ + TableDataInfo queryPageList(SysRoleWorkBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的角色流程对应列表 + * + * @param bo 查询条件 + * @return 角色流程对应列表 + */ + List queryList(SysRoleWorkBo bo); + + /** + * 新增角色流程对应 + * + * @param bo 角色流程对应 + * @return 是否新增成功 + */ + Boolean insertByBo(SysRoleWorkBo bo); + + /** + * 修改角色流程对应 + * + * @param bo 角色流程对应 + * @return 是否修改成功 + */ + Boolean updateByBo(SysRoleWorkBo bo); + + /** + * 校验并批量删除角色流程对应信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/impl/SysRoleWorkServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/impl/SysRoleWorkServiceImpl.java new file mode 100644 index 00000000..b9ef5613 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/impl/SysRoleWorkServiceImpl.java @@ -0,0 +1,140 @@ +package org.dromara.bigscreen.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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import org.dromara.bigscreen.domain.SysRoleWork; +import org.dromara.bigscreen.domain.bo.SysRoleWorkBo; +import org.dromara.bigscreen.domain.vo.SysRoleWorkVo; +import org.dromara.bigscreen.mapper.SysRoleWorkMapper; +import org.dromara.bigscreen.service.ISysRoleWorkService; +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.springframework.stereotype.Service; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 角色流程对应Service业务层处理 + * + * @author Lion Li + * @date 2025-11-06 + */ +@RequiredArgsConstructor +@Service +public class SysRoleWorkServiceImpl extends ServiceImpl implements ISysRoleWorkService { + + private final SysRoleWorkMapper baseMapper; + + /** + * 查询角色流程对应 + * + * @param id 主键 + * @return 角色流程对应 + */ + @Override + public SysRoleWorkVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询角色流程对应列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 角色流程对应分页列表 + */ + @Override + public TableDataInfo queryPageList(SysRoleWorkBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的角色流程对应列表 + * + * @param bo 查询条件 + * @return 角色流程对应列表 + */ + @Override + public List queryList(SysRoleWorkBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SysRoleWorkBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(SysRoleWork::getId); + lqw.eq(bo.getRoleId() != null, SysRoleWork::getRoleId, bo.getRoleId()); + lqw.eq(StringUtils.isNotBlank(bo.getLcmc()), SysRoleWork::getLcmc, bo.getLcmc()); + lqw.eq(StringUtils.isNotBlank(bo.getLcms()), SysRoleWork::getLcms, bo.getLcms()); + lqw.eq(StringUtils.isNotBlank(bo.getLcxq()), SysRoleWork::getLcxq, bo.getLcxq()); + return lqw; + } + + /** + * 新增角色流程对应 + * + * @param bo 角色流程对应 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(SysRoleWorkBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + lqw.eq(SysRoleWork::getRoleId, bo.getRoleId()); + if (baseMapper.selectCount(lqw) > 0) { + throw new RuntimeException("此角色已绑定流程"); + } + + SysRoleWork add = MapstructUtils.convert(bo, SysRoleWork.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改角色流程对应 + * + * @param bo 角色流程对应 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(SysRoleWorkBo bo) { + SysRoleWork update = MapstructUtils.convert(bo, SysRoleWork.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysRoleWork entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除角色流程对应信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +}