package com.ycl.controller.cockpit.teamConstruction;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ycl.annotation.LogSave;
import com.ycl.api.CommonResult;
import com.ycl.controller.BaseController;
import com.ycl.entity.cockpitManage.TeamConstruction;
import com.ycl.service.cockpitManage.ITeamConstructionService;
import com.ycl.utils.EasyExcelUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.util.Arrays;
/**
*
* 队伍建设表 前端控制器
*
*
* @author zhanghua
* @since 2022-10-31
*/
@RestController
@RequestMapping("/team_construction")
@Api(tags = "队伍建设")
public class TeamConstructionController extends BaseController {
@Autowired
ITeamConstructionService iTeamConstructionService;
@GetMapping("/query")
@ApiOperation("查询")
@ApiImplicitParams({
@ApiImplicitParam(name = "size", required = true, value = "页面数量"),
@ApiImplicitParam(name = "current", required = true, value = "页码"),
@ApiImplicitParam(name = "departName", value = "部门名称"),
@ApiImplicitParam(name = "status", value = "状态")}
)
public CommonResult search(@RequestParam(name = "size") Integer size,
@RequestParam(name = "current") Integer current,
@RequestParam(name = "departName", required = false) String departName,
@RequestParam(name = "status", required = false) Integer status) {
Integer isDelete = 0;
return CommonResult.success(iTeamConstructionService
.page(new Page().setSize(size).setCurrent(current), new LambdaQueryWrapper()
.like(StringUtils.isNotBlank(departName), TeamConstruction::getName, departName)
.eq(status != null, TeamConstruction::getStatus, status)
.eq(TeamConstruction::getIsDelete, isDelete)
.orderByDesc(TeamConstruction::getId)));
}
@PostMapping("/addition")
@ApiOperation("添加")
@LogSave(operationType = "队伍建设管理", contain = "添加")
public CommonResult add(@RequestBody TeamConstruction teamConstruction) {
return CommonResult.success(iTeamConstructionService.save(teamConstruction));
}
@PutMapping("/modification")
@ApiOperation("修改")
@LogSave(operationType = "队伍建设管理", contain = "修改")
public CommonResult modify(@RequestBody TeamConstruction teamConstruction) {
return CommonResult.success(iTeamConstructionService.updateById(teamConstruction));
}
@DeleteMapping("/deletion")
@ApiOperation("删除")
@LogSave(operationType = "队伍建设管理", contain = "删除")
public CommonResult delete(@RequestParam Long id) {
Integer isDelete = 1;
TeamConstruction teamConstruction = new TeamConstruction();
teamConstruction.setIsDelete(isDelete);
teamConstruction.setId(id);
return CommonResult.success(iTeamConstructionService.updateById(teamConstruction));
}
@ApiOperation(value = "批量删除违规类型")
@DeleteMapping("/batch_delete")
@LogSave(operationType = "运营基础设置", contain = "批量删除违规事项")
public CommonResult removeViolations(@RequestParam Long[] ids) {
return CommonResult.success(iTeamConstructionService.removeBatchByIds(Arrays.asList(ids)));
}
@PostMapping("/export")
@ApiOperation("导出")
@LogSave(operationType = "队伍建设管理", contain = "导出")
@ApiImplicitParams(
{
@ApiImplicitParam(name = "departName", value = "部门名称"),
@ApiImplicitParam(name = "status", value = "状态")}
)
@SneakyThrows
public void export(
@RequestParam(name = "departName", required = false) String departName,
@RequestParam(name = "status", required = false) Integer status,
HttpServletResponse response) {
Integer isDelete = 0;
String sheetName = "数据";
EasyExcelUtils.export(response, sheetName, TeamConstruction.class, iTeamConstructionService
.list(new LambdaQueryWrapper()
.like(StringUtils.isNotBlank(departName), TeamConstruction::getName, departName)
.eq(status != null, TeamConstruction::getStatus, status)
.eq(TeamConstruction::getIsDelete, isDelete)));
}
@PostMapping("/import")
@ApiOperation("导入")
@SneakyThrows
@LogSave(operationType = "队伍建设管理", contain = "导入")
public CommonResult export(@RequestParam("file") MultipartFile multipartFile) {
EasyExcel.read(multipartFile.getInputStream(), TeamConstruction.class, new ReadListener() {
@Override
public void invoke(Object o, AnalysisContext analysisContext) {
if (o != null) {
TeamConstruction teamConstruction = new TeamConstruction();
BeanUtils.copyProperties(o, teamConstruction);
teamConstruction.setCreateTime(LocalDateTime.now());
iTeamConstructionService.save(teamConstruction);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}).doReadAll();
return CommonResult.success("import ok");
}
}