peng
2026-03-18 e59a0201057ba67cad425fed804c82ff4ba0c6f1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package com.tievd.cube.modules.system.controller;
 
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tievd.cube.commons.base.CubeController;
import com.tievd.cube.commons.mybatisplus.QueryGenerator;
import com.tievd.cube.commons.annotations.AutoLog;
import com.tievd.cube.commons.annotations.DictMethod;
import com.tievd.cube.commons.base.Result;
import com.tievd.cube.commons.easyexcel.model.ImportExcel;
import com.tievd.cube.commons.utils.SystemContextUtil;
import com.tievd.cube.commons.utils.web.HttpServletUtil;
import com.tievd.cube.modules.system.entity.SysPosition;
import com.tievd.cube.modules.system.service.ISysPositionService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLDecoder;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
 
/**
 * 职务管理
 *
 * @author xinwuy
 * @version V1.0.0
 * @since 2019-09-19
 */
@Slf4j
@Tag(name = "职务管理相关接口")
@RestController
@RequestMapping("/sys/position")
public class SysPositionController extends CubeController<SysPosition, ISysPositionService> {
 
    /**
     * 分页列表查询
     *
     * @param sysPosition 查询参数
     * @param pageNo      页码
     * @param pageSize    每页大小
     */
    @DictMethod
    @GetMapping("/list")
    public Result<IPage<SysPosition>> queryPageList(SysPosition sysPosition, @RequestParam(defaultValue = "1") Integer pageNo, @RequestParam(defaultValue = "10") Integer pageSize, HttpServletRequest req) {
        QueryWrapper<SysPosition> queryWrapper = QueryGenerator.initQueryWrapper(sysPosition, req.getParameterMap());
        Page<SysPosition> page = new Page<>(pageNo, pageSize);
        IPage<SysPosition> pageList = service.page(page, queryWrapper);
        return Result.ok(pageList);
    }
 
    /**
     * 新增
     *
     * @param sysPosition 新增参数
     */
    @AutoLog("职务管理-添加")
    @PostMapping("/add")
    public Result<?> add(@RequestBody SysPosition sysPosition) {
        service.save(sysPosition);
        return Result.ok();
    }
 
    /**
     * 更新
     *
     * @param sysPosition 更新参数
     */
    @AutoLog("职务管理-编辑")
    @PutMapping("/edit")
    public Result<?> edit(@RequestBody SysPosition sysPosition) {
        service.updateById(sysPosition);
        return Result.ok();
    }
 
    /**
     * 通过id删除
     *
     * @param id 主键id
     */
    @AutoLog("职务管理-通过id删除")
    @DeleteMapping("/delete")
    public Result<?> delete(@RequestParam String id) {
        return service.delete(ListUtil.of(id));
    }
 
    /**
     * 批量删除
     *
     * @param ids 主键(多个逗号分隔)
     */
    @AutoLog("职务管理-批量删除")
    @DeleteMapping("/deleteBatch")
    public Result<?> deleteBatch(@RequestParam String ids) {
        if (StrUtil.isBlank(ids)) {
            return Result.error("参数不识别!");
        }
        return service.delete(Arrays.asList(ids.split(",")));
    }
 
    /**
     * 导出数据到Excel
     */
    @GetMapping("/exportXls")
    public void exportXls(HttpServletRequest request, HttpServletResponse response) throws IOException {
        QueryWrapper<SysPosition> queryWrapper = null;
        String paramsStr = request.getParameter("paramsStr");
        if (StrUtil.isNotEmpty(paramsStr)) {
            String deString = URLDecoder.decode(paramsStr, "UTF-8");
            SysPosition sysPosition = JSONUtil.toBean(deString, SysPosition.class);
            queryWrapper = QueryGenerator.initQueryWrapper(sysPosition, request.getParameterMap());
        }
        List<SysPosition> pageList = service.list(queryWrapper);
        String date = DateUtil.format(new Date(), "yyyyMMddHHmmss");
        HttpServletUtil.addDownloadHeader(response, "职务数据-" + date + easyExcel.getExtension());
        easyExcel.export(pageList, response.getOutputStream(), SystemContextUtil.dictTranslator());
    }
 
    /**
     * 通过Excel导入职位数据
     */
    @PostMapping("/importExcel")
    public Result<?> importExcel(HttpServletRequest request) throws Exception {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
            MultipartFile file = entity.getValue();// 获取上传文件对象
            ImportExcel excel = new ImportExcel();
            excel.setInputStream(file.getInputStream());
            List<SysPosition> sysPositions = easyExcel.read(SysPosition.class, excel, SystemContextUtil.dictTranslator());
            service.saveBatch(sysPositions);
        }
        return Result.ok();
    }
}