导出检验规格
This commit is contained in:
		| @@ -1,6 +1,6 @@ | ||||
| package com.xkrs.controller; | ||||
|  | ||||
| import com.xkrs.model.qo.ExportExcelQo; | ||||
| import com.xkrs.model.qo.ExportSourceExcelQo; | ||||
| import com.xkrs.model.qo.QcSourceQoDelete; | ||||
| import com.xkrs.model.qo.QcSourceQoInsert; | ||||
| import com.xkrs.service.QcSourceService; | ||||
| @@ -51,8 +51,8 @@ public class QcSourceController { | ||||
|      * 导出Excel表格 | ||||
|      */ | ||||
|     @PostMapping("/exportExcel") | ||||
|     public String exportExcel(@RequestBody ExportExcelQo exportExcelQo) throws Exception { | ||||
|         return qcSourceService.exportExcel(exportExcelQo); | ||||
|     public String exportExcel(@RequestBody ExportSourceExcelQo exportSourceExcelQo) throws Exception { | ||||
|         return qcSourceService.exportExcel(exportSourceExcelQo); | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| package com.xkrs.controller; | ||||
|  | ||||
| import com.xkrs.model.qo.ExportSpecExcelQo; | ||||
| import com.xkrs.model.qo.QcSpecQoDelete; | ||||
| import com.xkrs.model.qo.QcSpecQoInsert; | ||||
| import com.xkrs.model.qo.QcSpecQoUpdate; | ||||
| @@ -58,9 +59,9 @@ public class QcSpecController { | ||||
|     /** | ||||
|      * 导出检验规格 | ||||
|      */ | ||||
|     @GetMapping("/exportSpecExcel") | ||||
|     public String exportSpecExcel() { | ||||
|         return qcSpecService.exportSpecExcel(); | ||||
|     @PostMapping("/exportSpecExcel") | ||||
|     public String exportSpecExcel(@RequestBody ExportSpecExcelQo exportSpecExcelQo) throws Exception { | ||||
|         return qcSpecService.exportSpecExcel(exportSpecExcelQo); | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -1,15 +1,15 @@ | ||||
| package com.xkrs.model.qo; | ||||
| 
 | ||||
| import com.xkrs.model.va.ExportExcelQoVa; | ||||
| import com.xkrs.model.va.ExportSourceExcelQoVa; | ||||
| 
 | ||||
| import javax.validation.constraints.NotBlank; | ||||
| 
 | ||||
| public class ExportExcelQo { | ||||
| public class ExportSourceExcelQo { | ||||
| 
 | ||||
|     /** | ||||
|      * IP端口 | ||||
|      */ | ||||
|     @NotBlank(message = "{QcSourceEntity.host.blank}", groups = {ExportExcelQoVa.class}) | ||||
|     @NotBlank(message = "{QcSourceEntity.host.blank}", groups = {ExportSourceExcelQoVa.class}) | ||||
|     private String host; | ||||
| 
 | ||||
|     /** | ||||
| @@ -42,7 +42,7 @@ public class ExportExcelQo { | ||||
|      */ | ||||
|     private String craftItemNo; | ||||
| 
 | ||||
|     public ExportExcelQo() { | ||||
|     public ExportSourceExcelQo() { | ||||
|     } | ||||
| 
 | ||||
|     public String getHost() { | ||||
							
								
								
									
										30
									
								
								src/main/java/com/xkrs/model/qo/ExportSpecExcelQo.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/main/java/com/xkrs/model/qo/ExportSpecExcelQo.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| package com.xkrs.model.qo; | ||||
|  | ||||
| import com.xkrs.model.va.ExportSpecExcelQoVa; | ||||
|  | ||||
| import javax.validation.constraints.NotBlank; | ||||
|  | ||||
| public class ExportSpecExcelQo { | ||||
|  | ||||
|     /** | ||||
|      * IP端口 | ||||
|      */ | ||||
|     @NotBlank(message = "{QcSpecEntity.host.blank}", groups = {ExportSpecExcelQoVa.class}) | ||||
|     private String host; | ||||
|  | ||||
|     public ExportSpecExcelQo() { | ||||
|     } | ||||
|  | ||||
|     public String getHost() { | ||||
|         return host; | ||||
|     } | ||||
|  | ||||
|     public void setHost(String host) { | ||||
|         this.host = host; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "ExportSpecExcelQo{" + "host='" + host + '\'' + '}'; | ||||
|     } | ||||
| } | ||||
| @@ -1,4 +0,0 @@ | ||||
| package com.xkrs.model.va; | ||||
|  | ||||
| public interface ExportExcelQoVa { | ||||
| } | ||||
| @@ -0,0 +1,4 @@ | ||||
| package com.xkrs.model.va; | ||||
|  | ||||
| public interface ExportSourceExcelQoVa { | ||||
| } | ||||
							
								
								
									
										4
									
								
								src/main/java/com/xkrs/model/va/ExportSpecExcelQoVa.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/main/java/com/xkrs/model/va/ExportSpecExcelQoVa.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| package com.xkrs.model.va; | ||||
|  | ||||
| public interface ExportSpecExcelQoVa { | ||||
| } | ||||
| @@ -1,6 +1,6 @@ | ||||
| package com.xkrs.service; | ||||
|  | ||||
| import com.xkrs.model.qo.ExportExcelQo; | ||||
| import com.xkrs.model.qo.ExportSourceExcelQo; | ||||
| import com.xkrs.model.qo.QcSourceQoDelete; | ||||
| import com.xkrs.model.qo.QcSourceQoInsert; | ||||
| import org.springframework.web.multipart.MultipartFile; | ||||
| @@ -25,6 +25,6 @@ public interface QcSourceService { | ||||
|     /** | ||||
|      * 导出Excel表格 | ||||
|      */ | ||||
|     String exportExcel(ExportExcelQo exportExcelQo) throws Exception; | ||||
|     String exportExcel(ExportSourceExcelQo exportSourceExcelQo) throws Exception; | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| package com.xkrs.service; | ||||
|  | ||||
| import com.xkrs.model.qo.ExportSpecExcelQo; | ||||
| import com.xkrs.model.qo.QcSpecQoDelete; | ||||
| import com.xkrs.model.qo.QcSpecQoInsert; | ||||
| import com.xkrs.model.qo.QcSpecQoUpdate; | ||||
| @@ -35,6 +36,6 @@ public interface QcSpecService { | ||||
|     /** | ||||
|      * 导出检验规格 | ||||
|      */ | ||||
|     String exportSpecExcel(); | ||||
|     String exportSpecExcel(ExportSpecExcelQo exportSpecExcelQo) throws Exception; | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -9,7 +9,7 @@ import com.xkrs.model.entity.CraftItemEntity; | ||||
| import com.xkrs.model.entity.QcItemEntity; | ||||
| import com.xkrs.model.entity.QcSourceEntity; | ||||
| import com.xkrs.model.entity.QcSpecEntity; | ||||
| import com.xkrs.model.qo.ExportExcelQo; | ||||
| import com.xkrs.model.qo.ExportSourceExcelQo; | ||||
| import com.xkrs.model.qo.QcSourceQoDelete; | ||||
| import com.xkrs.model.qo.QcSourceQoInsert; | ||||
| import com.xkrs.service.QcSourceService; | ||||
| @@ -260,14 +260,14 @@ public class QcSourceServiceImpl implements QcSourceService { | ||||
|      * 导出Excel表格 | ||||
|      */ | ||||
|     @Override | ||||
|     public String exportExcel(ExportExcelQo exportExcelQo) throws Exception { | ||||
|         String host = exportExcelQo.getHost(); | ||||
|         String finalBatchNo = LocalStringUtils.formatEmptyValue(exportExcelQo.getBatchNo()).trim(); | ||||
|         String finalMachineNo = LocalStringUtils.formatEmptyValue(exportExcelQo.getMachineNo()).trim(); | ||||
|         String finalMaterialNo = LocalStringUtils.formatEmptyValue(exportExcelQo.getMaterialNo()).trim(); | ||||
|         String finalMouldNo = LocalStringUtils.formatEmptyValue(exportExcelQo.getMouldNo()).trim(); | ||||
|         String finalVarietyNo = LocalStringUtils.formatEmptyValue(exportExcelQo.getVarietyNo()).trim(); | ||||
|         String craftItemNo = exportExcelQo.getCraftItemNo(); | ||||
|     public String exportExcel(ExportSourceExcelQo exportSourceExcelQo) throws Exception { | ||||
|         String host = exportSourceExcelQo.getHost(); | ||||
|         String finalBatchNo = LocalStringUtils.formatEmptyValue(exportSourceExcelQo.getBatchNo()).trim(); | ||||
|         String finalMachineNo = LocalStringUtils.formatEmptyValue(exportSourceExcelQo.getMachineNo()).trim(); | ||||
|         String finalMaterialNo = LocalStringUtils.formatEmptyValue(exportSourceExcelQo.getMaterialNo()).trim(); | ||||
|         String finalMouldNo = LocalStringUtils.formatEmptyValue(exportSourceExcelQo.getMouldNo()).trim(); | ||||
|         String finalVarietyNo = LocalStringUtils.formatEmptyValue(exportSourceExcelQo.getVarietyNo()).trim(); | ||||
|         String craftItemNo = exportSourceExcelQo.getCraftItemNo(); | ||||
|         List<CraftItemEntity> craftItemList = craftItemDao.findAll(); | ||||
|         if (craftItemList.isEmpty()) { | ||||
|             return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "未添加工艺项目,请先添加工艺项目!", locale); | ||||
| @@ -339,7 +339,7 @@ public class QcSourceServiceImpl implements QcSourceService { | ||||
|         //创建XSSFWorkbook对象(excel的文档对象) | ||||
|         XSSFWorkbook workbook = new XSSFWorkbook(); | ||||
|         //建立新的sheet对象(excel的表单) | ||||
|         XSSFSheet sheet = workbook.createSheet("测量数据表"); | ||||
|         XSSFSheet sheet = workbook.createSheet("检验数据表"); | ||||
|  | ||||
|         XSSFCellStyle highCellStyle = workbook.createCellStyle(); | ||||
|         highCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); | ||||
| @@ -367,7 +367,7 @@ public class QcSourceServiceImpl implements QcSourceService { | ||||
|         //创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个 | ||||
|         XSSFCell titleCell = titleRow.createCell(0); | ||||
|         //设置单元格内容 | ||||
|         titleCell.setCellValue("测量数据导出表"); | ||||
|         titleCell.setCellValue("检验数据导出表"); | ||||
|         titleCell.setCellStyle(normalCellStyle); | ||||
|         //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列 | ||||
|         sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, dataListList.get(0).size() - 1)); | ||||
| @@ -394,6 +394,7 @@ public class QcSourceServiceImpl implements QcSourceService { | ||||
|         } | ||||
|         //输出Excel文件 | ||||
|         File dirFile = new File("/home/sxy/server/industrial_measurement/excel/"); | ||||
| //        File dirFile = new File("/Users/liuchengqian/Desktop/DaJiang/"); | ||||
|         if (!dirFile.exists()) { | ||||
|             dirFile.mkdirs(); | ||||
|         } | ||||
|   | ||||
| @@ -8,6 +8,7 @@ import com.xkrs.model.bean.ReadSpecHeadBean; | ||||
| import com.xkrs.model.entity.CraftItemEntity; | ||||
| import com.xkrs.model.entity.QcItemEntity; | ||||
| import com.xkrs.model.entity.QcSpecEntity; | ||||
| import com.xkrs.model.qo.ExportSpecExcelQo; | ||||
| import com.xkrs.model.qo.QcSpecQoDelete; | ||||
| import com.xkrs.model.qo.QcSpecQoInsert; | ||||
| import com.xkrs.model.qo.QcSpecQoUpdate; | ||||
| @@ -15,17 +16,21 @@ import com.xkrs.service.QcSpecService; | ||||
| import com.xkrs.util.LocalDateUtils; | ||||
| import com.xkrs.util.LocalStringUtils; | ||||
| import org.apache.http.util.TextUtils; | ||||
| import org.apache.poi.hssf.usermodel.HSSFCellStyle; | ||||
| import org.apache.poi.hssf.usermodel.HSSFDateUtil; | ||||
| import org.apache.poi.hssf.util.HSSFColor; | ||||
| import org.apache.poi.ss.usermodel.Cell; | ||||
| import org.apache.poi.ss.usermodel.Row; | ||||
| import org.apache.poi.xssf.usermodel.XSSFSheet; | ||||
| import org.apache.poi.xssf.usermodel.XSSFWorkbook; | ||||
| import org.apache.poi.xssf.usermodel.*; | ||||
| import org.springframework.context.i18n.LocaleContextHolder; | ||||
| import org.springframework.data.domain.Sort; | ||||
| import org.springframework.stereotype.Service; | ||||
| import org.springframework.web.multipart.MultipartFile; | ||||
|  | ||||
| import javax.annotation.Resource; | ||||
| import javax.transaction.Transactional; | ||||
| import java.io.File; | ||||
| import java.io.FileOutputStream; | ||||
| import java.util.*; | ||||
|  | ||||
| import static com.xkrs.encapsulation.OutputEncapsulation.outputEncapsulationObject; | ||||
| @@ -156,7 +161,7 @@ public class QcSpecServiceImpl implements QcSpecService { | ||||
|     @Override | ||||
|     public String importSpecExcel(MultipartFile specExcel) { | ||||
|         try { | ||||
|             //1、读取测量规格数据表文件 | ||||
|             //1、读取检验规格数据表文件 | ||||
|             XSSFWorkbook workbook = new XSSFWorkbook(specExcel.getInputStream()); | ||||
|             //2、获取工作表对象 | ||||
|             XSSFSheet sheet = workbook.getSheetAt(0); | ||||
| @@ -213,7 +218,7 @@ public class QcSpecServiceImpl implements QcSpecService { | ||||
|                 } | ||||
|                 if (appearIndexList.size() > 1) { | ||||
|                     StringBuilder response = new StringBuilder(); | ||||
|                     response.append("测量规格表中:机种号、工艺项目、检验项目三项存在全部相同项,行数:"); | ||||
|                     response.append("检验规格表中:机种号、工艺项目、检验项目三项存在全部相同项,行数:"); | ||||
|                     for (Integer appearIndex : appearIndexList) { | ||||
|                         response.append("第").append(appearIndex + 2).append("行、"); | ||||
|                     } | ||||
| @@ -255,17 +260,17 @@ public class QcSpecServiceImpl implements QcSpecService { | ||||
|             StringBuilder response = new StringBuilder(); | ||||
|             response.append("导入成功"); | ||||
|             if (insertCount > 0) { | ||||
|                 response.append(",新增").append(insertCount).append("条测量规格"); | ||||
|                 response.append(",新增").append(insertCount).append("条检验规格"); | ||||
|             } | ||||
|             if (updateCount > 0) { | ||||
|                 response.append(",更新").append(updateCount).append("条测量规格"); | ||||
|                 response.append(",更新").append(updateCount).append("条检验规格"); | ||||
|             } | ||||
|             response.append("。"); | ||||
|             return outputEncapsulationObject(PromptMessageEnum.SUCCESS, response.toString(), locale); | ||||
|         } catch (Exception e) { | ||||
|             e.printStackTrace(); | ||||
|         } | ||||
|         return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "测量规格数据导入失败!", locale); | ||||
|         return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "检验规格数据导入失败!", locale); | ||||
|     } | ||||
|  | ||||
|     private List<Integer> checkAppearIndex(List<List<String>> sheetDataList, String varietyNo, String craftItemNo, String qcItemNo) { | ||||
| @@ -326,9 +331,76 @@ public class QcSpecServiceImpl implements QcSpecService { | ||||
|  | ||||
|     } | ||||
|  | ||||
|  | ||||
|     /** | ||||
|      * 导出检验规格 | ||||
|      */ | ||||
|     @Override | ||||
|     public String exportSpecExcel() { | ||||
|         return null; | ||||
|     public String exportSpecExcel(ExportSpecExcelQo exportSpecExcelQo) throws Exception { | ||||
|  | ||||
|         List<QcSpecEntity> qcSpecList = qcSpecDao.findAll(Sort.by(Sort.Direction.ASC, "createTime")); | ||||
|         if (qcSpecList.isEmpty()) { | ||||
|             return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "无检验规格数据可导出,请先添加检验规格!", locale); | ||||
|         } | ||||
|  | ||||
|         List<List<String>> dataListList = new ArrayList<>(); | ||||
|         dataListList.add(QC_SPEC_HEAD); | ||||
|         for (QcSpecEntity qcSpecEntity : qcSpecList) { | ||||
|             List<String> dataList = new ArrayList<>(); | ||||
|             dataList.add(qcSpecEntity.getVarietyNo()); | ||||
|             Optional<CraftItemEntity> craftItemOptional = craftItemDao.findByCraftItemNo(qcSpecEntity.getCraftItemNo()); | ||||
|             if (craftItemOptional.isEmpty()) { | ||||
|                 return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "检验规格数据导出失败(code=01)!", locale); | ||||
|             } | ||||
|             dataList.add(craftItemOptional.get().getCraftItemName()); | ||||
|             Optional<QcItemEntity> qcItemOptional = qcItemDao.findByQcItemNo(qcSpecEntity.getQcItemNo()); | ||||
|             if (qcItemOptional.isEmpty()) { | ||||
|                 return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "检验规格数据导出失败(code=02)!", locale); | ||||
|             } | ||||
|             dataList.add(qcItemOptional.get().getQcItemName()); | ||||
|             dataList.add(qcSpecEntity.getMax()); | ||||
|             dataList.add(qcSpecEntity.getMin()); | ||||
|             dataList.add(qcSpecEntity.getMethod()); | ||||
|             dataListList.add(dataList); | ||||
|         } | ||||
|  | ||||
|         //创建XSSFWorkbook对象(excel的文档对象) | ||||
|         XSSFWorkbook workbook = new XSSFWorkbook(); | ||||
|         //建立新的sheet对象(excel的表单) | ||||
|         XSSFSheet sheet = workbook.createSheet("检验规格表"); | ||||
|  | ||||
|         XSSFCellStyle normalCellStyle = workbook.createCellStyle(); | ||||
|         normalCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); | ||||
|         normalCellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); | ||||
|         XSSFFont normalFont = workbook.createFont(); | ||||
|         normalFont.setColor(HSSFColor.BLACK.index); | ||||
|         normalCellStyle.setFont(normalFont); | ||||
|  | ||||
|         int startRowNum = 0; | ||||
|         for (int i = 0; i < dataListList.size(); i++) { | ||||
|             List<String> dataList = dataListList.get(i); | ||||
|             if (dataList != null && dataList.size() > 0) { | ||||
|                 XSSFRow row = sheet.createRow(i + startRowNum); | ||||
|                 for (int j = 0; j < dataList.size(); j++) { | ||||
|                     XSSFCell cell = row.createCell(j); | ||||
|                     String data = dataList.get(j); | ||||
|                     cell.setCellValue(data); | ||||
|                     cell.setCellStyle(normalCellStyle); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         //输出Excel文件 | ||||
|         File dirFile = new File("/home/sxy/server/industrial_measurement/excel/"); | ||||
| //        File dirFile = new File("/Users/liuchengqian/Desktop/DaJiang/"); | ||||
|         if (!dirFile.exists()) { | ||||
|             dirFile.mkdirs(); | ||||
|         } | ||||
|         String excelFileName = System.currentTimeMillis() + ".xlsx"; | ||||
|         FileOutputStream output = new FileOutputStream(new File(dirFile, excelFileName)); | ||||
|         workbook.write(output); | ||||
|         output.flush(); | ||||
|  | ||||
|         String host = exportSpecExcelQo.getHost(); | ||||
|         String finalHost = host.endsWith("/") ? host : host + "/"; | ||||
|         return outputEncapsulationObject(PromptMessageEnum.SUCCESS, finalHost + "excel/" + excelFileName, locale); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user