package com.chinaztt.mes.quality.controller;
|
|
import com.alibaba.excel.EasyExcel;
|
import com.alibaba.excel.ExcelWriter;
|
import com.alibaba.excel.exception.ExcelAnalysisException;
|
import com.alibaba.excel.write.metadata.WriteSheet;
|
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.chinaztt.mes.common.wrapper.QueryWrapperUtil;
|
import com.chinaztt.mes.quality.entity.QualityHw19Verify;
|
import com.chinaztt.mes.quality.excel.*;
|
import com.chinaztt.mes.quality.service.QualityHw19VerifyService;
|
import com.chinaztt.ztt.common.core.util.R;
|
import com.chinaztt.ztt.common.log.annotation.SysLog;
|
import org.springframework.beans.BeanUtils;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.AllArgsConstructor;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.net.URLEncoder;
|
import java.time.LocalDateTime;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
|
/**
|
* 19码防呆校验
|
*
|
* @author pigx code generator
|
* @date 2022-12-02 15:39:32
|
*/
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/qualityhw19verify" )
|
@Api(value = "qualityhw19verify", tags = "19码防呆校验管理")
|
public class QualityHw19VerifyController {
|
|
private final QualityHw19VerifyService qualityHw19VerifyService;
|
|
/**
|
* 分页查询
|
*
|
* @param page 分页对象
|
* @param qualityHw19Verify 19码防呆校验
|
* @return
|
*/
|
@ApiOperation(value = "分页查询", notes = "分页查询")
|
@GetMapping("/page")
|
public R getQualityHw19VerifyPage(Page page, QualityHw19Verify qualityHw19Verify) {
|
return R.ok(qualityHw19VerifyService.page(page, QueryWrapperUtil.gen(qualityHw19Verify)));
|
}
|
|
|
/**
|
* 通过id查询19码防呆校验
|
*
|
* @param id id
|
* @return R
|
*/
|
@ApiOperation(value = "通过id查询", notes = "通过id查询")
|
@GetMapping("/{id}")
|
public R getById(@PathVariable("id") Long id) {
|
return R.ok(qualityHw19VerifyService.getById(id));
|
}
|
|
/**
|
* 新增19码防呆校验
|
*
|
* @param qualityHw19Verify 19码防呆校验
|
* @return R
|
*/
|
@ApiOperation(value = "新增19码防呆校验", notes = "新增19码防呆校验")
|
@SysLog("新增19码防呆校验")
|
@PostMapping
|
public R save(@RequestBody QualityHw19Verify qualityHw19Verify) {
|
qualityHw19VerifyService.insert(qualityHw19Verify);
|
return R.ok();
|
}
|
|
/**
|
* 修改19码防呆校验
|
*
|
* @param qualityHw19Verify 19码防呆校验
|
* @return R
|
*/
|
@ApiOperation(value = "修改19码防呆校验", notes = "修改19码防呆校验")
|
@SysLog("修改19码防呆校验")
|
@PutMapping
|
public R updateById(@RequestBody QualityHw19Verify qualityHw19Verify) {
|
return R.ok(qualityHw19VerifyService.updateById(qualityHw19Verify));
|
}
|
|
/**
|
* 通过id删除19码防呆校验
|
*
|
* @param id id
|
* @return R
|
*/
|
@ApiOperation(value = "通过id删除19码防呆校验", notes = "通过id删除19码防呆校验")
|
@SysLog("通过id删除19码防呆校验")
|
@DeleteMapping("/{id}")
|
public R removeById(@PathVariable Long id) {
|
return R.ok(qualityHw19VerifyService.removeById(id));
|
}
|
|
@ApiOperation(value = "导出防呆校验数据", notes = "导出防呆校验数据")
|
@SysLog("导出防呆校验数据" )
|
@GetMapping("/exportInfo" )
|
public void exportInfo(HttpServletResponse response, QualityHw19Verify req) throws IOException {
|
response.setContentType("application/vnd.ms-excel");
|
response.setCharacterEncoding("UTF-8");
|
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
|
String fileName = URLEncoder.encode("19条码防呆校验", "UTF-8");
|
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
|
try {
|
//新建ExcelWriter
|
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
|
//获取sheet0对象
|
WriteSheet mainSheet = EasyExcel.writerSheet(0, "19条码防呆校验").head(QualityHw19VerData.class).build();
|
//向sheet0写入数据 传入空list这样只导出表头
|
List<QualityHw19Verify> list = qualityHw19VerifyService.list(QueryWrapperUtil.gen(req));
|
List<QualityHw19VerData> respList = new ArrayList<>();
|
for (QualityHw19Verify qualityHw19Verify : list) {
|
QualityHw19VerData resp = new QualityHw19VerData();
|
BeanUtils.copyProperties(qualityHw19Verify,resp);
|
LocalDateTime createTime = qualityHw19Verify.getCreateTime();
|
if (createTime != null) {
|
resp.setCreateTime(createTime.toString().replace("T"," "));
|
}
|
respList.add(resp);
|
}
|
|
excelWriter.write(respList, mainSheet);
|
|
//关闭流
|
excelWriter.finish();
|
} catch (IOException e) {
|
throw new RuntimeException("导出失败");
|
}
|
|
}
|
|
@ApiOperation(value = "模板导出", notes = "模板导出")
|
@SysLog("19条码防呆模板导出" )
|
@GetMapping("/exportModel" )
|
public void exportModel(HttpServletResponse response) throws IOException {
|
qualityHw19VerifyService.exportModel(response);
|
}
|
|
|
|
/**
|
* 导入
|
* @param file 导入文件
|
* @return
|
* @throws Exception
|
*/
|
@ApiOperation("导入")
|
@PostMapping("/upload")
|
public R upload(@RequestParam("file") MultipartFile file) {
|
try{
|
EasyExcel.read(file.getInputStream(), QualityHw19VerImportData.class, new QualityHw19VerifyUploadListener(qualityHw19VerifyService)).sheet().doRead();
|
}catch(ExcelAnalysisException e){
|
throw new RuntimeException("请核实导入文件数据格式");
|
}catch (IOException e){
|
throw new RuntimeException(e);
|
}
|
return R.ok();
|
}
|
|
|
}
|