New file |
| | |
| | | package com.ruoyi.web.controller.api; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.common.annotation.Log; |
| | | import com.ruoyi.common.basic.PageInfo; |
| | | import com.ruoyi.common.core.domain.AjaxResult; |
| | | import com.ruoyi.common.core.domain.BaseModel; |
| | | import com.ruoyi.common.core.domain.BasePage; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.enums.BusinessType; |
| | | import com.ruoyi.common.exception.GlobalException; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.system.bo.*; |
| | | import com.ruoyi.system.model.StateProcessModule; |
| | | import com.ruoyi.system.model.StateProcessTemplate; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import com.ruoyi.system.service.StateProcessModuleService; |
| | | import com.ruoyi.system.service.StateProcessTemplateService; |
| | | import com.ruoyi.system.vo.ProcessDetailVO; |
| | | import com.ruoyi.system.vo.ProcessTaskListVO; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Api(tags = "审批流程管理") |
| | | @RequestMapping("/state-process") |
| | | @RestController |
| | | @RequiredArgsConstructor |
| | | public class StateProcessController { |
| | | |
| | | private final StateProcessTemplateService processTemplateService; |
| | | private final StateProcessModuleService processModuleService; |
| | | private final ISysUserService sysUserService; |
| | | |
| | | //应用流程分页列表 |
| | | @ApiOperation("应用流程分页列表") |
| | | @PostMapping("/module/page") |
| | | public AjaxResult<List<StateProcessModule>> modulePage(@RequestBody BasePage basePage) { |
| | | LambdaQueryWrapper<StateProcessModule> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.orderByAsc(StateProcessModule::getCategory); |
| | | //查询应用流程列表 |
| | | List<StateProcessModule> result = processModuleService.list(queryWrapper); |
| | | List<String> updateUserId = result.stream().map(BaseModel::getUpdateBy).collect(Collectors.toList()); |
| | | if (!CollectionUtils.isEmpty(updateUserId)){ |
| | | //根据用户id查询用户信息 |
| | | List<SysUser> sysUsers = sysUserService.selectUserByUserNameList(updateUserId); |
| | | Map<Long, SysUser> sysUserMap; |
| | | if (!CollectionUtils.isEmpty(sysUsers)){ |
| | | sysUserMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, Function.identity())); |
| | | } else { |
| | | sysUserMap = new HashMap<>(); |
| | | } |
| | | //遍历列表,设置更新人名称 |
| | | result.forEach(e -> { |
| | | SysUser sysUser = sysUserMap.get(e.getUpdateBy()); |
| | | if (Objects.nonNull(sysUser)){ |
| | | e.setUpdateBy(sysUser.getNickName()); |
| | | } |
| | | }); |
| | | } |
| | | return AjaxResult.success(result); |
| | | } |
| | | //修改应用流程 |
| | | @Log(title = "审批流程管理-修改应用流程", businessType = BusinessType.UPDATE) |
| | | @ApiOperation("修改应用流程") |
| | | @PostMapping("/module/update") |
| | | public AjaxResult<PageInfo<StateProcessModule>> moduleUpdate(@RequestBody ProcessModuleUpdateBO processModuleUpdateBO) { |
| | | StateProcessTemplate stateProcessTemplate = processTemplateService.getById(processModuleUpdateBO.getTemplateId()); |
| | | if (Objects.isNull(stateProcessTemplate)) { |
| | | return AjaxResult.success(); |
| | | } |
| | | StateProcessModule stateProcessModule = new StateProcessModule(); |
| | | stateProcessModule.setId(processModuleUpdateBO.getId()); |
| | | stateProcessModule.setTemplateId(processModuleUpdateBO.getTemplateId()); |
| | | stateProcessModule.setTemplateName(stateProcessTemplate.getTemplateName()); |
| | | stateProcessModule.setUpdateBy(SecurityUtils.getLoginUser().getUser().getNickName()); |
| | | stateProcessModule.setCreateTime(LocalDateTime.now()); |
| | | stateProcessModule.setUpdateTime(LocalDateTime.now()); |
| | | stateProcessModule.setRemark(processModuleUpdateBO.getRemark()); |
| | | processModuleService.updateById(stateProcessModule); |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | //流程模版分页 |
| | | @ApiOperation("流程模版分页") |
| | | @PostMapping("/template/page") |
| | | public AjaxResult<Page<StateProcessTemplate>> page(ProcessTemplatePageBO request) { |
| | | Page<StateProcessTemplate> templatePage = processTemplateService.page(request); |
| | | return AjaxResult.success(templatePage); |
| | | } |
| | | |
| | | //查询流程模版 |
| | | @ApiOperation("查询流程模版") |
| | | @GetMapping("/template/getById") |
| | | public AjaxResult<StateProcessTemplate> selectById(@RequestParam String id) { |
| | | return AjaxResult.success(processTemplateService.getById(id)); |
| | | } |
| | | |
| | | //修改并部署模版 |
| | | @Log(title = "审批流程管理-修改并部署模版", businessType = BusinessType.UPDATE) |
| | | @ApiOperation("修改并部署模版") |
| | | @PostMapping("/template/update") |
| | | public AjaxResult<Boolean> update(@RequestBody ProcessUpdateBO processUpdateBO) { |
| | | return AjaxResult.success(processTemplateService.update(processUpdateBO)); |
| | | } |
| | | |
| | | //删除模版 |
| | | @Log(title = "审批流程管理-删除模版", businessType = BusinessType.DELETE) |
| | | @ApiOperation("删除模版") |
| | | @GetMapping("/template/deleteById") |
| | | public AjaxResult<Boolean> deleteById(@RequestParam String id) { |
| | | StateProcessTemplate template = processTemplateService.getById(id); |
| | | //查询是否存在使用的 |
| | | LambdaUpdateWrapper<StateProcessModule> moduleLambdaUpdateWrapper = new LambdaUpdateWrapper<>();; |
| | | moduleLambdaUpdateWrapper.eq(StateProcessModule::getTemplateId, template.getId()); |
| | | if (processModuleService.getBaseMapper().exists(moduleLambdaUpdateWrapper)) { |
| | | throw new GlobalException("该模版在应用流程中已使用!"); |
| | | } |
| | | //根据key修改所有版本为已删除 |
| | | boolean result = processTemplateService.remove(Wrappers.lambdaQuery(StateProcessTemplate.class) |
| | | .eq(StateProcessTemplate::getTemplateKey, template.getTemplateKey())); |
| | | return AjaxResult.success(result); |
| | | } |
| | | |
| | | //创建并部署模版 |
| | | @Log(title = "审批流程管理-创建并部署模版", businessType = BusinessType.INSERT) |
| | | @ApiOperation("创建并部署模版") |
| | | @PostMapping("/template/create") |
| | | public AjaxResult<Boolean> create(@RequestBody ProcessCreateBO processCreateBO) { |
| | | return AjaxResult.success(processTemplateService.create(processCreateBO)); |
| | | } |
| | | |
| | | //流程发起 |
| | | @Log(title = "审批流程管理-流程发起", businessType = BusinessType.INSERT) |
| | | @ApiOperation("流程发起") |
| | | @PostMapping("/start") |
| | | public AjaxResult<Boolean> start(@RequestBody ProcessStartBO processStartBO) { |
| | | return AjaxResult.success(processTemplateService.start(processStartBO)); |
| | | } |
| | | |
| | | //待办 |
| | | @ApiOperation("待办列表") |
| | | @PostMapping("/wait/task/page") |
| | | public AjaxResult<PageInfo<ProcessTaskListVO>> waitTaskPage(@RequestBody ProcessTaskListBO processTemplatePageBO) { |
| | | return AjaxResult.success(processTemplateService.waitTaskPage(processTemplatePageBO)); |
| | | } |
| | | |
| | | //已办 |
| | | @ApiOperation("已办列表") |
| | | @PostMapping("/deal/task/page") |
| | | public AjaxResult<PageInfo<ProcessTaskListVO>> dealTaskPage(@RequestBody ProcessTaskListBO processTemplatePageBO) { |
| | | return AjaxResult.success(processTemplateService.dealTaskPage(processTemplatePageBO)); |
| | | } |
| | | |
| | | //待办和已办列表 |
| | | @ApiOperation("待办和已办列表") |
| | | @PostMapping("/dealAndWait/task/page") |
| | | public AjaxResult<PageInfo<ProcessTaskListVO>> dealAndWaitTaskPage(@RequestBody ProcessTaskListBO processTemplatePageBO) { |
| | | return AjaxResult.success(processTemplateService.dealAndWaitTaskPage(processTemplatePageBO)); |
| | | } |
| | | |
| | | //抄送 |
| | | @ApiOperation("抄送列表") |
| | | @PostMapping("/copy/task/page") |
| | | public AjaxResult<PageInfo<ProcessTaskListVO>> copyTaskPage(@RequestBody ProcessTaskListBO processTaskListBO){ |
| | | return AjaxResult.success(processTemplateService.copyTaskPage(processTaskListBO)); |
| | | } |
| | | |
| | | //审核通过 |
| | | @Log(title = "审批流程管理-审核通过", businessType = BusinessType.UPDATE) |
| | | @ApiOperation("审核通过") |
| | | @PostMapping("/agree") |
| | | public AjaxResult<Object> agree(@RequestBody ProcessAgreeBO processAgreeBO) { |
| | | processTemplateService.agree(processAgreeBO); |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | //审核拒绝 |
| | | @Log(title = "审批流程管理-审核拒绝", businessType = BusinessType.UPDATE) |
| | | @ApiOperation("审核拒绝") |
| | | @PostMapping("/refuse") |
| | | public AjaxResult<Object> refuse(@RequestBody ProcessRefuseBO processRefuseBO) { |
| | | processTemplateService.refuse(processRefuseBO); |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | //审核详情 |
| | | @ApiOperation("审核详情") |
| | | @GetMapping("/detail") |
| | | public AjaxResult<ProcessDetailVO> detail(@RequestParam String taskId) { |
| | | ProcessDetailVO detail = processTemplateService.detail(taskId); |
| | | return AjaxResult.success(detail); |
| | | } |
| | | |
| | | } |