package com.ycl.controller.epuipment;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.dict.DataDictionary;
import com.ycl.entity.equipment.EquipmentBayonet;
import com.ycl.service.dict.IDataDictionaryService;
import com.ycl.service.equipment.IEquipmentBayonetService;
import com.ycl.vo.equipment.EquipmentBayonetVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.stream.Collectors;
/**
*
* 卡口管理 前端控制器
*
*
* @author wl
* @since 2022-10-14
*/
@RestController
@RequestMapping("/equipment_bayonet")
@Api(tags = "卡口管理")
public class EquipmentBayonetController extends BaseController {
@Autowired
IEquipmentBayonetService iEquipmentBayonetService;
@Autowired
IDataDictionaryService iDataDictionaryService;
@GetMapping("/query")
@ApiOperation("查询")
@LogSave
public CommonResult search(@RequestParam(required = false) Integer size,
@RequestParam(required = false) Integer current,
@RequestParam(required = false) String bayonetName) {
Page equipmentBayonetPage = new Page<>();
equipmentBayonetPage.setCurrent(current);
equipmentBayonetPage.setSize(size);
return CommonResult.success(iEquipmentBayonetService
.page(equipmentBayonetPage, new LambdaQueryWrapper()
.like(StringUtils.isNotBlank(bayonetName), EquipmentBayonet::getBayonetName, bayonetName))
.getRecords()
.stream()
.map(item -> {
EquipmentBayonetVO equipmentBayonetVO = new EquipmentBayonetVO();
BeanUtils.copyProperties(item, equipmentBayonetVO);
equipmentBayonetVO.setFrontEndType(iDataDictionaryService.getOne(new LambdaQueryWrapper().eq(DataDictionary::getId, item.getFrontEndType())).getName());
equipmentBayonetVO.setInOutCityType(iDataDictionaryService.getOne(new LambdaQueryWrapper().eq(DataDictionary::getId, item.getInOutCityType())).getName());
return equipmentBayonetVO;
}).collect(Collectors.toList()));
}
@PostMapping("/addition")
@ApiOperation("添加")
@LogSave(operationType = "卡口管理", contain = "添加卡口")
public CommonResult add(@RequestBody EquipmentBayonet equipmentBayonet) {
return CommonResult.success(iEquipmentBayonetService.save(equipmentBayonet));
}
@PutMapping("/modification")
@ApiOperation("修改")
@LogSave(operationType = "卡口管理", contain = "修改卡口")
public CommonResult modify(@RequestBody EquipmentBayonet equipmentBayonet) {
return CommonResult.success(iEquipmentBayonetService.updateById(equipmentBayonet));
}
@GetMapping("/export")
@ApiOperation("导出")
@SneakyThrows
@LogSave(operationType = "卡口管理", contain = "删除卡口")
public void export(HttpServletResponse response,
@RequestParam(required = false) Integer size,
@RequestParam(required = false) Integer current,
@RequestParam(required = false) String bayonetName) {
Page equipmentBayonetPage = new Page<>();
equipmentBayonetPage.setCurrent(current);
equipmentBayonetPage.setSize(size);
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ".xlsx");
EasyExcel.write(response.getOutputStream(), EquipmentBayonetVO.class)
.sheet("数据")
.doWrite(iEquipmentBayonetService
.page(equipmentBayonetPage, new LambdaQueryWrapper()
.like(StringUtils.isNotBlank(bayonetName), EquipmentBayonet::getBayonetName, bayonetName))
.getRecords()
.stream()
.map(item -> {
EquipmentBayonetVO equipmentBayonetVO = new EquipmentBayonetVO();
BeanUtils.copyProperties(item, equipmentBayonetVO);
equipmentBayonetVO.setFrontEndType(iDataDictionaryService.getOne(new LambdaQueryWrapper().eq(DataDictionary::getId, item.getFrontEndType())).getName());
equipmentBayonetVO.setInOutCityType(iDataDictionaryService.getOne(new LambdaQueryWrapper().eq(DataDictionary::getId, item.getInOutCityType())).getName());
return equipmentBayonetVO;
}).collect(Collectors.toList()));
}
}