| | |
| | | import com.ruoyi.system.api.model.LoginUserApplet; |
| | | import org.apache.poi.ss.usermodel.Row; |
| | | import org.apache.poi.ss.usermodel.Sheet; |
| | | import org.apache.poi.ss.usermodel.Workbook; |
| | | import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
| | | import org.junit.jupiter.api.Test; |
| | | import org.mockito.ArgumentCaptor; |
| | |
| | | import org.springframework.mock.web.MockMultipartFile; |
| | | import org.springframework.test.util.ReflectionTestUtils; |
| | | |
| | | import java.io.ByteArrayInputStream; |
| | | import java.io.ByteArrayOutputStream; |
| | | import java.math.BigDecimal; |
| | | import java.util.Arrays; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | |
| | | assertEquals("川A12345", parsed.getPlateNumber()); |
| | | assertEquals("13800138000", parsed.getPhone()); |
| | | assertEquals("测试公司", parsed.getCompanyName()); |
| | | assertEquals("备注", parsed.getRemark()); |
| | | assertEquals("1", parsed.getStatus()); |
| | | } |
| | | |
| | | @Test |
| | | void templateHeaderUsesRenamedColumnsWithoutRemark() throws Exception { |
| | | TVinManagementService service = mock(TVinManagementService.class); |
| | | TVinManagementController controller = buildController(service); |
| | | MockHttpServletResponse response = new MockHttpServletResponse(); |
| | | |
| | | controller.template(response); |
| | | |
| | | Row header = workbookHeader(response); |
| | | assertEquals(5, header.getLastCellNum()); |
| | | assertEquals("VIN码", header.getCell(0).getStringCellValue()); |
| | | assertEquals("车牌号", header.getCell(1).getStringCellValue()); |
| | | assertEquals("联系人手机号", header.getCell(2).getStringCellValue()); |
| | | assertEquals("所属公司", header.getCell(3).getStringCellValue()); |
| | | assertEquals("启停状态", header.getCell(4).getStringCellValue()); |
| | | } |
| | | |
| | | @Test |
| | | void exportHeaderAndAccountColumnsFollowListCaliber() throws Exception { |
| | | TVinManagementService service = mock(TVinManagementService.class); |
| | | VinManagementExcelDTO item = new VinManagementExcelDTO(); |
| | | item.setVin("LSVAM4187C2184842"); |
| | | item.setPlateNumber("川A12345"); |
| | | item.setPhone("13800138000"); |
| | | item.setCompanyName("测试公司"); |
| | | item.setFleetName("测试车队"); |
| | | item.setAccountMode(1); |
| | | item.setAvailableBalance(new BigDecimal("10.50")); |
| | | item.setOverrun(new BigDecimal("2.00")); |
| | | item.setAccountStatus(2); |
| | | item.setStatus("1"); |
| | | when(service.selectExportList(any())).thenReturn(Collections.singletonList(item)); |
| | | TVinManagementController controller = buildController(service); |
| | | |
| | | MockHttpServletResponse response = new MockHttpServletResponse(); |
| | | controller.export(response, new VinManagementQueryDTO()); |
| | | |
| | | Workbook workbook = new XSSFWorkbook(new ByteArrayInputStream(response.getContentAsByteArray())); |
| | | Row header = workbook.getSheetAt(0).getRow(0); |
| | | assertEquals(10, header.getLastCellNum()); |
| | | assertEquals("VIN码", header.getCell(0).getStringCellValue()); |
| | | assertEquals("车牌号", header.getCell(1).getStringCellValue()); |
| | | assertEquals("联系人手机号", header.getCell(2).getStringCellValue()); |
| | | assertEquals("所属公司", header.getCell(3).getStringCellValue()); |
| | | assertEquals("所属车队", header.getCell(4).getStringCellValue()); |
| | | assertEquals("账户模式", header.getCell(5).getStringCellValue()); |
| | | assertEquals("可用余额", header.getCell(6).getStringCellValue()); |
| | | assertEquals("超额", header.getCell(7).getStringCellValue()); |
| | | assertEquals("账户状态", header.getCell(8).getStringCellValue()); |
| | | assertEquals("启停状态", header.getCell(9).getStringCellValue()); |
| | | Row data = workbook.getSheetAt(0).getRow(1); |
| | | assertEquals("共享模式", data.getCell(5).getStringCellValue()); |
| | | assertEquals(10.5D, data.getCell(6).getNumericCellValue()); |
| | | assertEquals(2.0D, data.getCell(7).getNumericCellValue()); |
| | | assertEquals("欠款", data.getCell(8).getStringCellValue()); |
| | | assertEquals("启用", data.getCell(9).getStringCellValue()); |
| | | } |
| | | |
| | | private Row workbookHeader(MockHttpServletResponse response) throws Exception { |
| | | Workbook workbook = new XSSFWorkbook(new ByteArrayInputStream(response.getContentAsByteArray())); |
| | | return workbook.getSheetAt(0).getRow(0); |
| | | } |
| | | |
| | | @Test |
| | |
| | | Row header = sheet.createRow(0); |
| | | header.createCell(0).setCellValue("VIN码"); |
| | | header.createCell(1).setCellValue("车牌号"); |
| | | header.createCell(2).setCellValue("手机号"); |
| | | header.createCell(2).setCellValue("联系人手机号"); |
| | | header.createCell(3).setCellValue("所属公司"); |
| | | header.createCell(4).setCellValue("备注"); |
| | | header.createCell(5).setCellValue("启用状态"); |
| | | header.createCell(4).setCellValue("启停状态"); |
| | | Row row = sheet.createRow(1); |
| | | row.createCell(0).setCellValue("LSVAM4187C2184842"); |
| | | row.createCell(1).setCellValue("川A12345"); |
| | | row.createCell(2).setCellValue("13800138000"); |
| | | row.createCell(3).setCellValue("测试公司"); |
| | | row.createCell(4).setCellValue("备注"); |
| | | row.createCell(5).setCellValue("启用"); |
| | | row.createCell(4).setCellValue("启用"); |
| | | workbook.write(output); |
| | | return new MockMultipartFile("file", "vin.xlsx", |
| | | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", output.toByteArray()); |