package com.chinaztt.mes.quality.controller;
|
|
import cn.hutool.core.bean.BeanUtil;
|
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.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.chinaztt.mes.common.wrapper.QueryWrapperUtil;
|
import com.chinaztt.mes.quality.dto.QualityHw19CodeDTO;
|
import com.chinaztt.mes.quality.entity.BasicCustomerPartRelationMap;
|
import com.chinaztt.mes.quality.entity.QualityHw19Code;
|
import com.chinaztt.mes.quality.excel.*;
|
import com.chinaztt.mes.quality.service.BasicCustomerPartRelationMapService;
|
import com.chinaztt.mes.quality.service.QualityHw19CodeService;
|
import com.chinaztt.ztt.common.core.util.R;
|
import com.chinaztt.ztt.common.log.annotation.SysLog;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
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.Instant;
|
import java.time.LocalDateTime;
|
import java.time.ZoneId;
|
import java.time.ZonedDateTime;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
|
/**
|
* 19条码生成信息
|
*
|
* @author pigx code generator
|
* @date 2022-12-01 17:11:07
|
*/
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/qualityhw19code" )
|
@Api(value = "qualityhw19code", tags = "19条码生成信息管理")
|
public class QualityHw19CodeController {
|
|
private final QualityHw19CodeService qualityHw19CodeService;
|
|
private final BasicCustomerPartRelationMapService customerPartRelationMapService;
|
|
/**
|
* 分页查询
|
* @param page 分页对象
|
* @param qualityHw19Code 19条码生成信息
|
* @return
|
*/
|
@ApiOperation(value = "分页查询", notes = "分页查询")
|
@GetMapping("/page" )
|
public R getQualityHw19CodePage(Page page, QualityHw19Code qualityHw19Code) {
|
// qualityHw19CodeService.pageInfo(page, dto)
|
return R.ok(qualityHw19CodeService.page(page, QueryWrapperUtil.gen(qualityHw19Code)));
|
}
|
|
|
/**
|
* 通过id查询19条码生成信息
|
* @param id id
|
* @return R
|
*/
|
@ApiOperation(value = "通过id查询", notes = "通过id查询")
|
@GetMapping("/{id}" )
|
public R getById(@PathVariable("id" ) Long id) {
|
return R.ok(qualityHw19CodeService.getById(id));
|
}
|
|
/**
|
* 新增19条码生成信息
|
* @param qualityHw19Code 19条码生成信息
|
* @return R
|
*/
|
@ApiOperation(value = "新增19条码生成信息", notes = "新增19条码生成信息")
|
@SysLog("新增19条码生成信息" )
|
@PostMapping
|
public R save(@RequestBody QualityHw19Code qualityHw19Code) {
|
qualityHw19CodeService.insert(qualityHw19Code);
|
return R.ok();
|
}
|
|
/**
|
* 修改19条码生成信息
|
* @param qualityHw19Code 19条码生成信息
|
* @return R
|
*/
|
@ApiOperation(value = "修改19条码生成信息", notes = "修改19条码生成信息")
|
@SysLog("修改19条码生成信息" )
|
@PutMapping
|
public R updateById(@RequestBody QualityHw19Code qualityHw19Code) {
|
return R.ok(qualityHw19CodeService.updateById(qualityHw19Code));
|
}
|
|
/**
|
* 通过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(qualityHw19CodeService.removeById(id));
|
}
|
|
|
@ApiOperation(value = "导出19条码", notes = "导出19条码")
|
@SysLog("导出19条码" )
|
@GetMapping("/exportInfo" )
|
public void exportInfo(HttpServletResponse response, QualityHw19Code 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(QualityHw19CodeData.class).build();
|
//向sheet0写入数据 传入空list这样只导出表头
|
List<QualityHw19Code> list = qualityHw19CodeService.list(QueryWrapperUtil.gen(req));
|
// List<QualityHw19CodeData> resp = qualityHw19CodeService.selectExcelList(dto);
|
List<QualityHw19CodeData> respList = new ArrayList<>();
|
for (QualityHw19Code qualityHw19Code : list) {
|
QualityHw19CodeData resp = new QualityHw19CodeData();
|
BeanUtils.copyProperties(qualityHw19Code,resp);
|
LocalDateTime createTime = qualityHw19Code.getCreateTime();
|
LocalDateTime barTime = qualityHw19Code.getBarTime();
|
|
if (createTime != null) {
|
resp.setCreateTime(createTime.toString().replace("T"," "));
|
resp.setBarTime(barTime.toString().replace("T"," "));
|
}
|
|
respList.add(resp);
|
}
|
excelWriter.write(respList, mainSheet);
|
|
//关闭流
|
excelWriter.finish();
|
} catch (IOException e) {
|
throw new RuntimeException("导出失败");
|
}
|
|
}
|
|
/**
|
* 获取华为物料编码
|
* @return
|
*/
|
@ApiOperation(value = "获取华为物料编码", notes = "获取华为物料编码")
|
@GetMapping("/getHwMaterialCode" )
|
public R getHwMaterialCode() {
|
List<BasicCustomerPartRelationMap> resp = customerPartRelationMapService.list(Wrappers.<BasicCustomerPartRelationMap>lambdaQuery()
|
.eq(BasicCustomerPartRelationMap::getCusCode, "HW"));
|
return R.ok(resp);
|
}
|
|
|
@ApiOperation(value = "模板导出", notes = "模板导出")
|
@SysLog("模板导出" )
|
@GetMapping("/exportModel" )
|
public void exportModel(HttpServletResponse response) throws IOException{
|
qualityHw19CodeService.exportModel(response);
|
}
|
|
|
/**
|
* 导入
|
* @param file 导入文件
|
* @return
|
* @throws Exception
|
*/
|
@ApiOperation("导入")
|
@PostMapping("/upload")
|
public R upload(@RequestParam("file") MultipartFile file){
|
try {
|
EasyExcel.read(file.getInputStream(), QualityHw19CodeImportData.class, new QualityHw19CodeUploadListener(qualityHw19CodeService)).sheet().doRead();
|
}catch(ExcelAnalysisException e){
|
throw new RuntimeException("请核实导入文件数据格式");
|
}catch (IOException e){
|
throw new RuntimeException(e);
|
}
|
return R.ok();
|
}
|
|
|
}
|