From 0a0b89c69d3ec0b66a3a3ec70eb26689c08f10b0 Mon Sep 17 00:00:00 2001 From: lst Date: Wed, 11 Sep 2024 16:57:13 +0800 Subject: [PATCH] 开发:气瓶导入模板下载 --- backend/lpg-common/pom.xml | 29 +++++++++++++++++++++++++++++ backend/lpg-common/src/main/java/com/hotent/lpg/common/util/DataExportUtils.java | 260 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/lpg-common/src/main/java/com/hotent/lpg/common/util/ExcelUtils.java | 100 +++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------- backend/lpg-manage/pom.xml | 1 + backend/lpg-manage/src/main/java/com/hotent/lpg/manage/controller/MQpxxController.java | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/lpg-manage/src/main/java/com/hotent/lpg/manage/dto/BottleBatchImportDTO.java | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/lpg-manage/src/main/resources/doc/qpdadrmb.xlsx | Bin 0 -> 10553 bytes 7 files changed, 470 insertions(+), 53 deletions(-) create mode 100644 backend/lpg-common/src/main/java/com/hotent/lpg/common/util/DataExportUtils.java create mode 100644 backend/lpg-manage/src/main/java/com/hotent/lpg/manage/dto/BottleBatchImportDTO.java create mode 100644 backend/lpg-manage/src/main/resources/doc/qpdadrmb.xlsx diff --git a/backend/lpg-common/pom.xml b/backend/lpg-common/pom.xml index ef998c5..c73dea6 100644 --- a/backend/lpg-common/pom.xml +++ b/backend/lpg-common/pom.xml @@ -38,6 +38,34 @@ 8.2.1 compile + + + org.apache.poi + poi + 4.1.2 + + + org.apache.poi + poi-ooxml + 4.1.2 + + + + + cn.afterturn + easypoi-base + 4.1.0 + + + cn.afterturn + easypoi-web + 4.1.0 + + + cn.afterturn + easypoi-annotation + 4.1.0 + @@ -47,6 +75,7 @@ xls + xlsx diff --git a/backend/lpg-common/src/main/java/com/hotent/lpg/common/util/DataExportUtils.java b/backend/lpg-common/src/main/java/com/hotent/lpg/common/util/DataExportUtils.java new file mode 100644 index 0000000..a999868 --- /dev/null +++ b/backend/lpg-common/src/main/java/com/hotent/lpg/common/util/DataExportUtils.java @@ -0,0 +1,260 @@ +package com.hotent.lpg.common.util; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.poi.excel.ExcelUtil; +import cn.hutool.poi.excel.ExcelWriter; +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.VerticalAlignment; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.lang.reflect.Field; +import java.net.URLEncoder; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Slf4j +@UtilityClass +public class DataExportUtils { + + public void getExcel(Class clazz, HttpServletResponse response, List data) { + + Field[] entityFields = clazz.getDeclaredFields(); + ExcelWriter writer = ExcelUtil.getWriter(true); + List headers = CollUtil.newArrayList(); + StringBuilder comment = new StringBuilder(); + comment.append("提示(请勿删除此提示):"); + for (Field field : entityFields) { + ApiModelProperty api = field.getAnnotation(ApiModelProperty.class); + Size size = field.getAnnotation(Size.class); + NotBlank notBlank = field.getAnnotation(NotBlank.class); + if (null != api) { + headers.add(api.value()); + } + String sizeValue = Optional.ofNullable(size).map(Size::message).orElse(""); + String notBlankValue = Optional.ofNullable(notBlank).map(NotBlank::message).orElse(""); + comment.append("*").append(sizeValue).append(",").append(notBlankValue).append("\n"); + } + comment.append("使用模板导入时请删除示例数据"); + for (int i = 0; i < headers.size(); i++) { + writer.setColumnWidth(i, 22); + } + List> rows = CollUtil.newArrayList(); + rows.add(headers); + writer.merge(headers.size() - 1, comment).setRowHeight(0, headers.size() * 25); + + //设置注释单元格格式:水平左对齐,垂直居中,自动换行 + CellStyle style = writer.createCellStyle(); + style.setAlignment(HorizontalAlignment.LEFT); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setWrapText(true); + writer.setStyle(style, 0, 0); + + writer.write(rows); + writer.write(data); + try { + final OutputStream output = response.getOutputStream(); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader("Content-disposition", + "attachment;filename=" + + URLEncoder.encode(clazz.getSimpleName() + ".xlsx", "UTF-8")); + writer.flush(output); + writer.close(); + IoUtil.close(output); + } catch (IOException e) { + log.error("转化流失败", e); + } + } + + public void bottleBatchImportTemplate(Class clazz, HttpServletResponse response, List data) { + + Field[] entityFields = clazz.getDeclaredFields(); + ExcelWriter writer = ExcelUtil.getWriter(true); + List headers = CollUtil.newArrayList(); + StringBuilder comment = new StringBuilder(); + comment.append("气瓶档案信息").append("\n"); + String sizeValue = "0"; + String notBlankValue = "0"; + for (Field field : entityFields) { + ApiModelProperty api = field.getAnnotation(ApiModelProperty.class); + Size size = field.getAnnotation(Size.class); + NotBlank notBlank = field.getAnnotation(NotBlank.class); + if (null != api) { + headers.add(api.value()); + } + sizeValue = Optional.ofNullable(size).map(Size::message).orElse(""); + notBlankValue = Optional.ofNullable(notBlank).map(NotBlank::message).orElse(""); + continue; + } + for (int i = 0; i < headers.size(); i++) { + writer.setColumnWidth(i, 22); + } + List> rows = CollUtil.newArrayList(); + rows.add(headers); + writer.merge(headers.size() - 1, comment).setRowHeight(0, 80); + + //设置注释单元格格式:水平左对齐,垂直居中,自动换行 + CellStyle style = writer.createCellStyle(); + style.setAlignment(HorizontalAlignment.LEFT); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setWrapText(true); + writer.setStyle(style, 0, 0); + + writer.write(rows); + writer.write(data); + try { + final OutputStream output = response.getOutputStream(); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader("Content-disposition", + "attachment;filename=" + + URLEncoder.encode(clazz.getSimpleName() + ".xlsx", "UTF-8")); + writer.flush(output); + writer.close(); + IoUtil.close(output); + } catch (IOException e) { + log.error("转化流失败", e); + } + } + + public void getExcelVersion(Class clazz, HttpServletResponse response, List data) { + + Field[] entityFields = clazz.getDeclaredFields(); + ExcelWriter writer = ExcelUtil.getWriter(true); + List headers = CollUtil.newArrayList(); + StringBuilder comment = new StringBuilder(); + for (Field field : entityFields) { + ApiModelProperty api = field.getAnnotation(ApiModelProperty.class); + Size size = field.getAnnotation(Size.class); + NotBlank notBlank = field.getAnnotation(NotBlank.class); + if (null != api) { + headers.add(api.value()); + } + String sizeValue = Optional.ofNullable(size).map(Size::message).orElse(""); + String notBlankValue = Optional.ofNullable(notBlank).map(NotBlank::message).orElse(""); + } + for (int i = 0; i < headers.size(); i++) { + writer.setColumnWidth(i, 22); + } + List> rows = CollUtil.newArrayList(); + rows.add(headers); +// writer.merge(headers.size() - 1, comment).setRowHeight(0, headers.size() * 25); + + //设置注释单元格格式:水平左对齐,垂直居中,自动换行 + CellStyle style = writer.createCellStyle(); + style.setAlignment(HorizontalAlignment.LEFT); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setWrapText(true); + writer.setStyle(style, 0, 0); + + writer.write(rows); + writer.write(data); + try { + final OutputStream output = response.getOutputStream(); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader("Content-disposition", + "attachment;filename=" + + URLEncoder.encode(clazz.getSimpleName() + ".xlsx", "UTF-8")); + writer.flush(output); + writer.close(); + IoUtil.close(output); + } catch (IOException e) { + log.error("转化流失败", e); + } + } + + public void writeToExcel(List list, HttpServletResponse response) { + if (list == null || list.isEmpty()) { + log.error("列表为空,生成表格失败"); + return; + } + + Class itemClass = list.get(0).getClass(); + ApiModel apiModel = itemClass.getAnnotation(ApiModel.class); + String fileName = Optional.ofNullable(apiModel).map(ApiModel::value).orElse("导出数据"); + + Field[] entityFields = itemClass.getDeclaredFields(); + + //创建xlsx格式的writer + ExcelWriter writer = ExcelUtil.getWriter(true); + + setHeaderAlias(writer, entityFields); + + writer.write(list); + + //自适应每一列宽度 + for (int i = 0; i < entityFields.length; i++) { + // 调整每一列宽度 + writer.autoSizeColumn(i, false); + } + + try { + // 获取输出流 + final OutputStream output = response.getOutputStream(); + response.setHeader("Content-disposition", + "attachment;filename=" + URLEncoder.encode(fileName + ".xlsx", "UTF-8")); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + writer.flush(output); + writer.close(); + IoUtil.close(output); + } catch (IOException e) { + log.error("转化为流失败", e); + } + + } + + public void writeToTxt(Object o, HttpServletResponse response) { + if (o == null) { + log.error("数据为空,生成文件失败"); + return; + } + + Class itemClass = o.getClass(); + ApiModel apiModel = itemClass.getAnnotation(ApiModel.class); + String fileName = Optional.ofNullable(apiModel).map(ApiModel::value).orElse("导出数据") + ".txt"; + + try { + ByteArrayInputStream inputStringStream = new ByteArrayInputStream(JSONObject.toJSONString(o).getBytes()); + final OutputStream output = response.getOutputStream(); + response.setHeader("Content-disposition", + "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); + response.setContentType("text/plain"); + int len; + byte[] buffer = new byte[1024 * 10]; + while ((len = inputStringStream.read(buffer)) != -1) { + output.write(buffer, 0, len); + } + output.flush(); + IoUtil.close(inputStringStream); + IoUtil.close(output); + } catch (IOException e) { + log.error("转化为流失败", e); + } + } + + private static void setHeaderAlias(ExcelWriter writer, Field[]... fieldsList) { + Map headerAlias = MapUtil.newHashMap(true); + for (Field[] fields : fieldsList) { + for (Field field : fields) { + ApiModelProperty api = field.getAnnotation(ApiModelProperty.class); + if (null != api) { + headerAlias.put(field.getName(), api.value()); + } + } + } + writer.setHeaderAlias(headerAlias); + } + +} diff --git a/backend/lpg-common/src/main/java/com/hotent/lpg/common/util/ExcelUtils.java b/backend/lpg-common/src/main/java/com/hotent/lpg/common/util/ExcelUtils.java index f07ded9..9c500a9 100644 --- a/backend/lpg-common/src/main/java/com/hotent/lpg/common/util/ExcelUtils.java +++ b/backend/lpg-common/src/main/java/com/hotent/lpg/common/util/ExcelUtils.java @@ -12,34 +12,34 @@ import java.util.Date; import java.util.List; public class ExcelUtils { - private final static String excel2003L =".xls"; //2003- 版本的excel - private final static String excel2007U =".xlsx"; //2007+ 版本的excel + private final static String excel2003L = ".xls"; //2003- 版本的excel + private final static String excel2007U = ".xlsx"; //2007+ 版本的excel - public static List> getListByExcel(InputStream in, String fileName) throws Exception{ + public static List> getListByExcel(InputStream in, String fileName) throws Exception { List> list = null; - //创建Excel工作薄 - Workbook work = getWorkbook(in,fileName); - if(null == work){ + Workbook work = getWorkbook(in, fileName); + if (null == work) { throw new Exception("创建Excel工作薄为空!"); } Sheet sheet = null; //页数 Row row = null; //行数 Cell cell = null; //列数 - list = new ArrayList>(); //遍历Excel中所有的sheet for (int i = 0; i < work.getNumberOfSheets(); i++) { //取某个sheet sheet = work.getSheetAt(i); - if(sheet== null){continue;} - + if (sheet == null) { + continue; + } //遍历当前sheet中的所有行 - for (int j = sheet.getFirstRowNum()+1; j <= sheet.getLastRowNum(); j++) { + for (int j = sheet.getFirstRowNum() + 1; j <= sheet.getLastRowNum(); j++) { row = sheet.getRow(j); - if(row == null){continue;} - + if (row == null) { + continue; + } //遍历所有的列 List li = new ArrayList(); for (int y = row.getFirstCellNum(); y < row.getLastCellNum(); y++) { @@ -49,35 +49,33 @@ public class ExcelUtils { list.add(li); } } - return list; - } - public static List> getListByExcelVersion2(InputStream in, String fileName) throws Exception{ + public static List> getListByExcelVersion2(InputStream in, String fileName) throws Exception { List> list = null; - //创建Excel工作薄 - Workbook work = getWorkbook(in,fileName); - if(null == work){ + Workbook work = getWorkbook(in, fileName); + if (null == work) { throw new Exception("创建Excel工作薄为空!"); } Sheet sheet = null; //页数 Row row = null; //行数 Cell cell = null; //列数 - list = new ArrayList>(); //遍历Excel中所有的sheet for (int i = 0; i < work.getNumberOfSheets(); i++) { //取某个sheet sheet = work.getSheetAt(i); - if(sheet== null){continue;} - + if (sheet == null) { + continue; + } //遍历当前sheet中的所有行 for (int j = sheet.getFirstRowNum(); j <= sheet.getLastRowNum(); j++) { row = sheet.getRow(j); - if(row == null){continue;} - + if (row == null) { + continue; + } //遍历所有的列 List li = new ArrayList(); for (int y = row.getFirstCellNum(); y < row.getLastCellNum(); y++) { @@ -87,34 +85,33 @@ public class ExcelUtils { list.add(li); } } - return list; - } - public static List> getListByExcelVersion3(InputStream in, String fileName) throws Exception{ - List> list = null; + public static List> getListByExcelVersion3(InputStream in, String fileName) throws Exception { + List> list = null; //创建Excel工作薄 - Workbook work = getWorkbook(in,fileName); - if(null == work){ + Workbook work = getWorkbook(in, fileName); + if (null == work) { throw new Exception("创建Excel工作薄为空!"); } Sheet sheet = null; //页数 Row row = null; //行数 Cell cell = null; //列数 - list = new ArrayList>(); //遍历Excel中所有的sheet for (int i = 0; i < work.getNumberOfSheets(); i++) { //取某个sheet sheet = work.getSheetAt(i); - if(sheet== null){continue;} - + if (sheet == null) { + continue; + } //遍历当前sheet中的所有行 for (int j = sheet.getFirstRowNum() + 1; j <= sheet.getLastRowNum(); j++) { row = sheet.getRow(j); - if(row == null){continue;} - + if (row == null) { + continue; + } //遍历所有的列 List li = new ArrayList(); for (int y = row.getFirstCellNum(); y < row.getLastCellNum(); y++) { @@ -124,39 +121,37 @@ public class ExcelUtils { list.add(li); } } - return list; - } /** - * @Description:根据文件后缀,自适应上传文件的版本 * @param inStr,fileName * @return * @throws Exception + * @Description:根据文件后缀,自适应上传文件的版本 */ - public static Workbook getWorkbook(InputStream inStr, String fileName) throws Exception{ + public static Workbook getWorkbook(InputStream inStr, String fileName) throws Exception { Workbook wb = null; String fileType = fileName.substring(fileName.lastIndexOf(".")); - if(excel2003L.equals(fileType)){ + if (excel2003L.equals(fileType)) { wb = new HSSFWorkbook(inStr); //2003- - }else if(excel2007U.equals(fileType)){ + } else if (excel2007U.equals(fileType)) { wb = new XSSFWorkbook(inStr); //2007+ - }else{ + } else { throw new Exception("解析的文件格式有误!"); } return wb; } /** - * @Description:对表格中数值进行格式化 * @param cell * @return + * @Description:对表格中数值进行格式化 */ //解决excel类型问题,获得数值 public static String getValue(Cell cell) { String value = ""; - if(null == cell){ + if (null == cell) { return value; } switch (cell.getCellType()) { @@ -166,14 +161,15 @@ public class ExcelUtils { //如果是date类型则 ,获取该cell的date值 Date date = DateUtil.getJavaDate(cell.getNumericCellValue()); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - value = format.format(date);; - }else {// 纯数字 - BigDecimal big= new BigDecimal(cell.getNumericCellValue()); + value = format.format(date); + ; + } else {// 纯数字 + BigDecimal big = new BigDecimal(cell.getNumericCellValue()); value = big.toString(); //解决1234.0 去掉后面的.0 - if(null!= value&&!"".equals(value.trim())){ + if (null != value && !"".equals(value.trim())) { String[] item = value.split("[.]"); - if(1 xls + xlsx diff --git a/backend/lpg-manage/src/main/java/com/hotent/lpg/manage/controller/MQpxxController.java b/backend/lpg-manage/src/main/java/com/hotent/lpg/manage/controller/MQpxxController.java index 2a90552..3c9fda7 100644 --- a/backend/lpg-manage/src/main/java/com/hotent/lpg/manage/controller/MQpxxController.java +++ b/backend/lpg-manage/src/main/java/com/hotent/lpg/manage/controller/MQpxxController.java @@ -1,6 +1,9 @@ package com.hotent.lpg.manage.controller; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -9,6 +12,7 @@ import com.hotent.base.util.BeanUtils; import com.hotent.base.util.StringUtil; import com.hotent.lpg.common.model.WQpssxx; import com.hotent.lpg.common.model.WQpxx; +import com.hotent.lpg.manage.dto.BottleBatchImportDTO; import com.hotent.lpg.manage.dto.QpczDTO; import com.hotent.lpg.manage.dto.ReceiveQpRequest; import com.hotent.lpg.manage.manager.MCzxxManager; @@ -20,13 +24,18 @@ import com.hotent.runtime.script.ScriptImpl; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.usermodel.Workbook; 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.io.OutputStream; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 员工气瓶 @@ -228,4 +237,61 @@ public class MQpxxController { log.info("耗时={}秒", (end - start) / 1000); return CommonResult.ok().value("气瓶导入成功"); } + + @ApiOperation(value = "气瓶导入模板下载") + @PostMapping("/bottleBatchImportTemplate") + public void bottleBatchImportTemplate(HttpServletResponse response) throws Exception { + BottleBatchImportDTO bottleBatchImportDTO = BottleBatchImportDTO.builder() + .ro("1") + .czdwmc("云梦县城南液化气有限公司") + .ewm("4020968725") + .ccbh("1041628") + .zybh("000000") + .qpzl("液化石油气钢瓶") + .czjz("液化石油气") + .zzny("2016-09-20") + .xcjyny("2028-08-20") + .bcjyny("2024-08-20") + .sjsynx("2028-08-20") + .qprj("35.5") + .qpzt("正常") + .qpgg("YSP35.5") + .gcgzyl("2.1") + .sjbh("2.5") + .lrzh("9712001") + .qpcpzlzms("1") + .qpaqzljdjyzs("1") + .qpcqzm("1") + .qpjyhgzm("1") + .tjsj("2024/8/20 7:58:57") + .qpyszl("16.5") + .ssyyl("3.2") + .zzdw("佛山市良琦燃气具有限公司") + .jyhbh("44702") + .qpbz("自有产权瓶").build(); + Map map = JSON.parseObject(JSON.toJSONString(bottleBatchImportDTO), Map.class); + TemplateExportParams params = new TemplateExportParams( + "doc/qpdadrmb.xlsx"); + params.setColForEach(true); + Workbook workbook = ExcelExportUtil.exportExcel(params, map); + String fileName = "气瓶档案导入模板.xlsx"; + response.setContentType("APPLICATION/OCTET-STREAM"); + response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); + response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8")); + response.addHeader("filename", fileName); + OutputStream os = null; + try { + os = response.getOutputStream(); + if (workbook != null) { + workbook.write(os); + } + os.flush(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (os != null) + os.close(); + } + } } diff --git a/backend/lpg-manage/src/main/java/com/hotent/lpg/manage/dto/BottleBatchImportDTO.java b/backend/lpg-manage/src/main/java/com/hotent/lpg/manage/dto/BottleBatchImportDTO.java new file mode 100644 index 0000000..e1c7332 --- /dev/null +++ b/backend/lpg-manage/src/main/java/com/hotent/lpg/manage/dto/BottleBatchImportDTO.java @@ -0,0 +1,67 @@ +package com.hotent.lpg.manage.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +@ApiModel(description = "气瓶导入模板") +public class BottleBatchImportDTO { + + @ApiModelProperty(value = "RO") + private String ro; + @ApiModelProperty(value = "充装单位名称") + private String czdwmc; + @ApiModelProperty(value = "二维码") + private String ewm; + @ApiModelProperty(value = "出厂编号") + private String ccbh; + @ApiModelProperty(value = "自有编号") + private String zybh; + @ApiModelProperty(value = "气瓶种类") + private String qpzl; + @ApiModelProperty(value = "充装介质") + private String czjz; + @ApiModelProperty(value = "制造年月") + private String zzny; + @ApiModelProperty(value = "下次检验年月") + private String xcjyny; + @ApiModelProperty(value = "本次检验年月") + private String bcjyny; + @ApiModelProperty(value = "设计使用年限") + private String sjsynx; + @ApiModelProperty(value = "气瓶容积") + private String qprj; + @ApiModelProperty(value = "气瓶状态") + private String qpzt; + @ApiModelProperty(value = "气瓶规格") + private String qpgg; + @ApiModelProperty(value = "公称工作压力") + private String gcgzyl; + @ApiModelProperty(value = "设计壁厚") + private String sjbh; + @ApiModelProperty(value = "录入账号") + private String lrzh; + @ApiModelProperty(value = "气瓶产品质量证明书") + private String qpcpzlzms; + @ApiModelProperty(value = "气瓶安全质量监督检验证书") + private String qpaqzljdjyzs; + @ApiModelProperty(value = "气瓶产权证明") + private String qpcqzm; + @ApiModelProperty(value = "气瓶检验合格证明") + private String qpjyhgzm; + @ApiModelProperty(value = "添加时间") + private String tjsj; + @ApiModelProperty(value = "气瓶原始重量") + private String qpyszl; + @ApiModelProperty(value = "水试验压力") + private String ssyyl; + @ApiModelProperty(value = "制造单位") + private String zzdw; + @ApiModelProperty(value = "检验环编号") + private String jyhbh; + @ApiModelProperty(value = "气瓶备注") + private String qpbz; +} diff --git a/backend/lpg-manage/src/main/resources/doc/qpdadrmb.xlsx b/backend/lpg-manage/src/main/resources/doc/qpdadrmb.xlsx new file mode 100644 index 0000000..3246c00 Binary files /dev/null and b/backend/lpg-manage/src/main/resources/doc/qpdadrmb.xlsx differ -- libgit2 0.21.2