ExtLeaveController.java 4.2 KB
Newer Older
lakernote's avatar
lakernote 已提交
1 2 3 4
package com.laker.admin.module.ext.controller;

import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.collection.CollUtil;
lakernote's avatar
lakernote 已提交
5
import cn.hutool.core.date.DateUtil;
lakernote's avatar
lakernote 已提交
6 7 8
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
lakernote's avatar
lakernote 已提交
9
import com.laker.admin.framework.EasyAdminSecurityUtils;
lakernote's avatar
lakernote 已提交
10 11
import com.laker.admin.framework.PageResponse;
import com.laker.admin.framework.Response;
lakernote's avatar
lakernote 已提交
12
import com.laker.admin.framework.aop.Metrics;
lakernote's avatar
lakernote 已提交
13 14
import com.laker.admin.module.ext.entity.ExtLeave;
import com.laker.admin.module.ext.service.IExtLeaveService;
lakernote's avatar
lakernote 已提交
15 16
import com.laker.admin.module.flow.process.BaseFlowController;
import com.laker.admin.module.flow.process.SnakerEngineFacets;
lakernote's avatar
lakernote 已提交
17 18
import com.laker.admin.module.sys.service.ISysUserService;
import io.swagger.annotations.ApiOperation;
lakernote's avatar
lakernote 已提交
19
import org.snaker.engine.SnakerEngine;
lakernote's avatar
lakernote 已提交
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
import org.snaker.engine.entity.Order;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author laker
 * @since 2021-08-19
 */
@RestController
@RequestMapping("/ext/leave")
lakernote's avatar
lakernote 已提交
39
@Metrics
lakernote's avatar
lakernote 已提交
40
public class ExtLeaveController extends BaseFlowController {
lakernote's avatar
lakernote 已提交
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
    @Autowired
    IExtLeaveService extLeaveService;
    @Autowired
    private SnakerEngineFacets snakerEngineFacets;
    @Autowired
    private ISysUserService sysUserService;


    @GetMapping
    @ApiOperation(value = "分页查询")
    public PageResponse pageAll(@RequestParam(required = false, defaultValue = "1") long page,
                                @RequestParam(required = false, defaultValue = "10") long limit) {
        Page roadPage = new Page<>(page, limit);
        LambdaQueryWrapper<ExtLeave> queryWrapper = new QueryWrapper().lambda();
        queryWrapper.orderByDesc(ExtLeave::getCreateTime);
        Page pageList = extLeaveService.page(roadPage, queryWrapper);
        List<ExtLeave> records = pageList.getRecords();
        records.forEach(extLeave -> {
            extLeave.setCreateUser(sysUserService.getUserAndDeptById(extLeave.getCreateBy()));
lakernote's avatar
lakernote 已提交
60 61
            this.setFlowStatusInfo(extLeave);

lakernote's avatar
lakernote 已提交
62 63 64 65 66
        });
        return PageResponse.ok(records, pageList.getTotal());
    }

    @PostMapping
lakernote's avatar
lakernote 已提交
67
    @ApiOperation(value = "发起请假")
lakernote's avatar
lakernote 已提交
68 69 70 71
    @Transactional(rollbackFor = Exception.class)
    public Response saveOrUpdate(@RequestBody ExtLeave param) {
        if (param.getLeaveId() == null) {
            param.setLeaveUserId(StpUtil.getLoginIdAsLong());
72 73
            Map args = new HashMap(8);
            // 当前登录人
lakernote's avatar
lakernote 已提交
74
            args.put("user1", StpUtil.getLoginIdAsString());
75
            // 部门经理岗位的人 去用户表查询当前登录人同部门 and 岗位 = 部门经理
lakernote's avatar
lakernote 已提交
76
            args.put("user2", "17");
77
            // 总经理岗位的人   去用户表查询当前登录人同部门 and 岗位 = 总经理
lakernote's avatar
lakernote 已提交
78 79
            args.put("user3", "18");
            args.put("day", param.getLeaveDay());
lakernote's avatar
lakernote 已提交
80
            args.put(SnakerEngine.ID, EasyAdminSecurityUtils.getCurrentUserInfo().getNickName() + "-" + DateUtil.now() + "的请假申请");
lakernote's avatar
lakernote 已提交
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
            Order leave = snakerEngineFacets.startAndExecute("leave", 2, StpUtil.getLoginIdAsString(), args);
            param.setOrderId(leave.getId());
            extLeaveService.saveOrUpdate(param);
        } else {
            extLeaveService.saveOrUpdate(param);
        }


        return Response.ok();
    }

    @GetMapping("/{id}")
    @ApiOperation(value = "根据id查询")
    public Response get(@PathVariable Long id) {
        return Response.ok(extLeaveService.getById(id));
    }

    @DeleteMapping("/{id}")
    @ApiOperation(value = "根据id删除")
    public Response delete(@PathVariable Long id) {
        return Response.ok(extLeaveService.removeById(id));
    }

    @DeleteMapping("/batch/{ids}")
    @ApiOperation(value = "根据批量删除ids删除")
    public Response batchRemove(@PathVariable Long[] ids) {
        return Response.ok(extLeaveService.removeByIds(CollUtil.toList(ids)));
    }
}