package com.ruoyi.web.controller.api;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.dto.SetApprovalDTO;
import com.ruoyi.system.dto.SetDeptDTO;
import com.ruoyi.system.model.OaApproval;
import com.ruoyi.system.model.OaApprovalFlowNode;
import com.ruoyi.system.query.ApprovalListQuery;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.OaApprovalFlowNodeService;
import com.ruoyi.system.service.OaApprovalService;
import com.ruoyi.system.vo.system.ApprovalFlowNodeVO;
import com.ruoyi.system.vo.system.ApprovalVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/**
*
* 审批流程实例 前端控制器
*
*
* @author WuGuanFengYue
* @since 2025-09-15
*/
@RestController
@Api(tags ="审批流程")
@RequestMapping("/oa-approval-flow-node")
public class OaApprovalFlowNodeController {
@Resource
private OaApprovalFlowNodeService oaApprovalFlowNodeService;
@Resource
private ISysUserService sysUserService;
/**
* 审批流程设计列表
*/
@ApiOperation("审批流程设计列表")
@PostMapping("list")
public R> list(@RequestBody ApprovalListQuery query) {
return R.ok( oaApprovalFlowNodeService.pageList(query));
}
@ApiOperation(value = "启用禁用")
@GetMapping(value = "/updateStatus")
public R updateStatus(Integer id ) {
OaApprovalFlowNode approval = oaApprovalFlowNodeService.getById(id);
approval.setStatus(!approval.getStatus());
oaApprovalFlowNodeService.updateById(approval);
return R.ok();
}
@ApiOperation(value = "是否需要签名")
@GetMapping(value = "/updateSign")
public R updateSign(Integer id ) {
OaApprovalFlowNode approval = oaApprovalFlowNodeService.getById(id);
approval.setSignFlag(!approval.getSignFlag());
oaApprovalFlowNodeService.updateById(approval);
return R.ok();
}
@ApiOperation(value = "根据部门查询人员列表")
@GetMapping(value = "/listUserByDeptId")
public R> listUserByDeptId(Integer id ) {
List users = sysUserService.selectAllList().stream()
.filter(e -> e.getStatus().equals("0") && e.getDeptId().equals(id.toString()))
.collect(Collectors.toList());
return R.ok(users);
}
@Log(title = "审批流程-设置审批人", businessType = BusinessType.UPDATE)
@ApiOperation(value = "设置审批人")
@PostMapping(value = "/setApproval")
public R setDept(@RequestBody SetApprovalDTO dto) {
LambdaUpdateWrapper oaApprovalFlowNodeLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
oaApprovalFlowNodeLambdaUpdateWrapper.eq(OaApprovalFlowNode::getId,dto.getId());
oaApprovalFlowNodeLambdaUpdateWrapper.set(OaApprovalFlowNode::getApprovalType,dto.getApprovalType());
if (dto.getApprovalType() == 1){
oaApprovalFlowNodeLambdaUpdateWrapper.set(OaApprovalFlowNode::getApprovalIds,null);
}else{
oaApprovalFlowNodeLambdaUpdateWrapper.set(OaApprovalFlowNode::getApprovalIds,dto.getApprovalIds());
}
oaApprovalFlowNodeService.update(oaApprovalFlowNodeLambdaUpdateWrapper);
return R.ok();
}
}