Browse Source

导入模版

wfg 1 year ago
parent
commit
ab03b17c73

+ 5 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/HYCKTemplateImportController.java

@@ -56,6 +56,11 @@ public class HYCKTemplateImportController {
 		return templateImportService.importPilCutOffOrders(file);
 	}
 
+	@PostMapping("/importHisenseBill")
+	@RepeatSubmit
+	public R<Bills> importHisenseBill(@RequestParam("file") MultipartFile file) throws Exception {
+		return templateImportService.importHisenseBill(file);
+	}
 	/**
 	 * 海运出口模版导入(海信组)
 	 */

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/ITemplateImportService.java

@@ -39,5 +39,7 @@ public interface ITemplateImportService {
 
 	R<Bills> importPilCutOffOrders(MultipartFile file)throws Exception ;
 
+	R<Bills> importHisenseBill(MultipartFile file)throws Exception ;
+
 	R<List<Containers>> importHisense(MultipartFile file)throws Exception ;
 }

+ 142 - 38
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/TemplateImportServiceImpl.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import lombok.AllArgsConstructor;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.CellType;
+import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -24,6 +26,7 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.FileInputStream;
 import java.lang.reflect.Field;
 import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.StandardCopyOption;
@@ -42,6 +45,88 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 
 	private final IBPortsService bPortsService;
 
+	public static double splitNumericPrefixFromString(String str){
+		str=str.trim();
+		String str2="";
+		if(str != null && !"".equals(str)){
+			for(int i=0; i<str.length(); i++){
+				if(str.charAt(i)==46||(str.charAt(i)>=48 && str.charAt(i)<=57)){
+					str2+=str.charAt(i);
+				}
+			}
+		}
+
+		double d=0;
+
+		try{
+			d = Double.parseDouble(str2);
+		}catch (Exception e){
+			d = 0;
+		}finally{
+			return d;
+		}
+	}
+
+	public static String getSheetCellValueAsString(Sheet sheet, int row, int col){
+		Row r = sheet.getRow(row);
+		Cell c = ObjectUtils.isNotNull(r) ? r.getCell(col) : null;
+		String res = "";
+		if(ObjectUtils.isNotNull(c)){
+			CellType ct = c.getCellTypeEnum();
+			switch (ct){
+				case STRING:
+					res = c.getStringCellValue().trim();
+					break;
+				case NUMERIC:
+					res = Double.toString(c.getNumericCellValue());
+					break;
+				case BOOLEAN:
+					res = Boolean.toString(c.getBooleanCellValue());
+					break;
+				case FORMULA:
+					break;
+				default:
+					break;
+			}
+		}
+		return res;
+	}
+
+	public static double getSheetCellValueAsDouble(Sheet sheet, int row, int col){
+		Row r = sheet.getRow(row);
+		Cell c = ObjectUtils.isNotNull(r) ? r.getCell(col) : null;
+		double res = 0.0;
+		if(ObjectUtils.isNotNull(c)){
+			CellType ct = c.getCellTypeEnum();
+			switch (ct){
+				case STRING:
+					try {
+						res = Double.parseDouble(c.getStringCellValue().trim());
+					}catch (Exception e) {
+					    res = 0;
+					}
+					break;
+				case NUMERIC:
+					res = c.getNumericCellValue();
+					break;
+				case BOOLEAN:
+					res = c.getBooleanCellValue() ? 1 : 0;
+					break;
+				case FORMULA:
+					break;
+				default:
+					break;
+			}
+		}
+		return res;
+	}
+
+	public static double getSheetCellValueAsNumericPrefix(Sheet sheet, int row, int col) {
+		String str = getSheetCellValueAsString(sheet, row, col);
+
+		return splitNumericPrefixFromString(str);
+	}
+
 	@Override
 	public R<Bills> importOne(MultipartFile file) throws Exception {
 		Bills bills = new Bills();
@@ -56,21 +141,23 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		Workbook workbook = new HSSFWorkbook(fis);
 		Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
 
+		String stringCellValue = "";
+
 		//TO
 		if (ObjectUtils.isNotNull(sheet.getRow(1).getCell(1))) {
-			String to = sheet.getRow(1).getCell(1).getStringCellValue();
+			String to = getSheetCellValueAsString(sheet, 1, 1);
 			System.out.println("TO:" + to);
 		}
 		//ATTN
 		if (ObjectUtils.isNotNull(sheet.getRow(2).getCell(1))) {
-			String attn = sheet.getRow(2).getCell(1).getStringCellValue();
+			String attn = getSheetCellValueAsString(sheet, 2, 1);
 			System.out.println("attn:" + attn);
 		}
 		//SHIPPER
 		StringBuilder shipper = new StringBuilder();
 		for (int i = 3; i <= 7; i++) {
 			if (ObjectUtils.isNotNull(sheet.getRow(i).getCell(1))) {
-				shipper.append(sheet.getRow(i).getCell(1).getStringCellValue());
+				shipper.append(getSheetCellValueAsString(sheet, i, 1));
 			}
 		}
 		if (ObjectUtils.isNotNull(shipper)) {
@@ -84,7 +171,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		StringBuilder consignee = new StringBuilder();
 		for (int i = 8; i <= 12; i++) {
 			if (ObjectUtils.isNotNull(sheet.getRow(i).getCell(1))) {
-				consignee.append(sheet.getRow(i).getCell(1).getStringCellValue());
+				consignee.append(getSheetCellValueAsString(sheet, i, 1));
 			}
 		}
 		if (ObjectUtils.isNotNull(consignee)) {
@@ -98,7 +185,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		StringBuilder notifyParty = new StringBuilder();
 		for (int i = 13; i <= 17; i++) {
 			if (ObjectUtils.isNotNull(sheet.getRow(i).getCell(1))) {
-				notifyParty.append(sheet.getRow(i).getCell(1).getStringCellValue());
+				notifyParty.append(getSheetCellValueAsString(sheet, i, 1));
 			}
 		}
 		if (ObjectUtils.isNotNull(notifyParty)) {
@@ -110,7 +197,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//B/L NO
 		if (ObjectUtils.isNotNull(sheet.getRow(18).getCell(1))) {
-			String blno = sheet.getRow(18).getCell(1).getStringCellValue();
+			String blno = getSheetCellValueAsString(sheet, 18, 1);
 			System.out.println("blno:" + blno);
 			bills.setMblno(blno);
 		} else {
@@ -118,7 +205,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//VSL/VOY
 		if (ObjectUtils.isNotNull(sheet.getRow(18).getCell(4))) {
-			String vslVoy = sheet.getRow(18).getCell(4).getStringCellValue();
+			String vslVoy = getSheetCellValueAsString(sheet, 18, 4);
 			if (vslVoy.contains("/")) {
 				String vsl = vslVoy.substring(0, vslVoy.indexOf("/"));
 				String voy = vslVoy.substring(vslVoy.indexOf("/") + 1);
@@ -146,7 +233,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//POR
 		if (ObjectUtils.isNotNull(sheet.getRow(19).getCell(1))) {
-			String por = sheet.getRow(19).getCell(1).getStringCellValue();
+			String por = getSheetCellValueAsString(sheet, 19, 1);
 			if (ObjectUtils.isNotNull(por)) {
 				BPorts ports = bPortsService.getOne(new LambdaQueryWrapper<BPorts>()
 					.eq(BPorts::getTenantId, AuthUtil.getTenantId())
@@ -167,7 +254,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//POL
 		if (ObjectUtils.isNotNull(sheet.getRow(19).getCell(4))) {
-			String pol = sheet.getRow(19).getCell(4).getStringCellValue();
+			String pol = getSheetCellValueAsString(sheet, 19, 4);
 			if (ObjectUtils.isNotNull(pol)) {
 				BPorts ports = bPortsService.getOne(new LambdaQueryWrapper<BPorts>()
 					.eq(BPorts::getTenantId, AuthUtil.getTenantId())
@@ -188,7 +275,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//POD
 		if (ObjectUtils.isNotNull(sheet.getRow(20).getCell(1))) {
-			String pod = sheet.getRow(20).getCell(1).getStringCellValue();
+			String pod = getSheetCellValueAsString(sheet, 20, 1);
 			if (ObjectUtils.isNotNull(pod)) {
 				BPorts ports = bPortsService.getOne(new LambdaQueryWrapper<BPorts>()
 					.eq(BPorts::getTenantId, AuthUtil.getTenantId())
@@ -209,7 +296,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//PLACE OF DELIVERY
 		if (ObjectUtils.isNotNull(sheet.getRow(20).getCell(4))) {
-			String placeOfDelivery = sheet.getRow(20).getCell(4).getStringCellValue();
+			String placeOfDelivery = getSheetCellValueAsString(sheet, 20, 4);
 			if (ObjectUtils.isNotNull(placeOfDelivery)) {
 				BPorts ports = bPortsService.getOne(new LambdaQueryWrapper<BPorts>()
 					.eq(BPorts::getTenantId, AuthUtil.getTenantId())
@@ -229,7 +316,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//KIND OF B/L
 		if (ObjectUtils.isNotNull(sheet.getRow(21).getCell(1))) {
-			String kindOfBl = sheet.getRow(21).getCell(1).getStringCellValue();
+			String kindOfBl = getSheetCellValueAsString(sheet, 21, 1);
 			System.out.println("kindOfBl:" + kindOfBl);
 			bills.setIssueType(kindOfBl);
 		} else {
@@ -237,7 +324,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//PLACE OF ISSUE
 		if (ObjectUtils.isNotNull(sheet.getRow(22).getCell(1))) {
-			String placeOfIssue = sheet.getRow(22).getCell(1).getStringCellValue();
+			String placeOfIssue = getSheetCellValueAsString(sheet, 22, 1);
 			System.out.println("placeOfIssue:" + placeOfIssue);
 			bills.setIssueAt(placeOfIssue);
 		} else {
@@ -245,7 +332,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//FREIGHT PAYABLE AT
 		if (ObjectUtils.isNotNull(sheet.getRow(22).getCell(4))) {
-			String freightPayAbleAt = sheet.getRow(22).getCell(4).getStringCellValue();
+			String freightPayAbleAt = getSheetCellValueAsString(sheet, 22, 4);
 			System.out.println("freightPayAbleAt:" + freightPayAbleAt);
 			bills.setHpayplace(freightPayAbleAt);
 		} else {
@@ -255,7 +342,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		StringBuilder marks = new StringBuilder();
 		for (int i = 25; i <= 46; i++) {
 			if (ObjectUtils.isNotNull(sheet.getRow(i).getCell(0))) {
-				marks.append(sheet.getRow(i).getCell(0).getStringCellValue());
+				marks.append(getSheetCellValueAsString(sheet, i, 0));
 			}
 		}
 		if (ObjectUtils.isNotNull(marks)) {
@@ -266,7 +353,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//BAGS
 		if (ObjectUtils.isNotNull(sheet.getRow(25).getCell(1))) {
-			double bags = sheet.getRow(25).getCell(1).getNumericCellValue();
+			double bags = getSheetCellValueAsNumericPrefix(sheet, 25, 1);
 			System.out.println("bags:" + bags);
 			bills.setQuantity(new BigDecimal(bags));
 		} else {
@@ -276,7 +363,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		StringBuilder description = new StringBuilder();
 		for (int i = 25; i <= 46; i++) {
 			if (ObjectUtils.isNotNull(sheet.getRow(i).getCell(2))) {
-				description.append(sheet.getRow(i).getCell(2).getStringCellValue());
+				description.append(getSheetCellValueAsString(sheet, i, 2));
 			}
 		}
 		if (ObjectUtils.isNotNull(description)) {
@@ -287,7 +374,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//G.W.
 		if (ObjectUtils.isNotNull(sheet.getRow(25).getCell(4))) {
-			double gw = sheet.getRow(25).getCell(4).getNumericCellValue();
+			double gw = getSheetCellValueAsNumericPrefix(sheet, 25, 4);
 			System.out.println("gw:" + gw);
 			bills.setGrossWeight(new BigDecimal(gw));
 		} else {
@@ -295,7 +382,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//MEAS
 		if (ObjectUtils.isNotNull(sheet.getRow(25).getCell(6))) {
-			double meas = sheet.getRow(25).getCell(6).getNumericCellValue();
+			double meas = getSheetCellValueAsNumericPrefix(sheet, 25, 6);
 			System.out.println("meas:" + meas);
 			bills.setMeasurement(new BigDecimal(meas));
 		} else {
@@ -305,7 +392,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		StringBuilder remark = new StringBuilder();
 		for (int i = 47; i <= 50; i++) {
 			if (ObjectUtils.isNotNull(sheet.getRow(i).getCell(1))) {
-				remark.append(sheet.getRow(i).getCell(1).getStringCellValue());
+				remark.append(getSheetCellValueAsString(sheet, i, 1));
 			}
 		}
 		if (ObjectUtils.isNotNull(remark)) {
@@ -314,7 +401,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//FINAL DESTINATION FOR THE MERCHANT’S REFERENCE
 		if (ObjectUtils.isNotNull(sheet.getRow(51).getCell(4))) {
-			String finalDestination = sheet.getRow(51).getCell(4).getStringCellValue();
+			String finalDestination = getSheetCellValueAsString(sheet, 51,4);
 			if (ObjectUtils.isNotNull(finalDestination)) {
 				BPorts ports = bPortsService.getOne(new LambdaQueryWrapper<BPorts>()
 					.eq(BPorts::getTenantId, AuthUtil.getTenantId())
@@ -372,7 +459,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 
 		//SHIPPER
 		if (ObjectUtils.isNotNull(sheet.getRow(2).getCell(0))) {
-			String shipper = sheet.getRow(2).getCell(0).getStringCellValue();
+			String shipper = getSheetCellValueAsString(sheet, 2,0);
 //			bills.setHshipperDetails(shipper);
 			seaBillsDetail.setHshipperDetails(shipper);
 			System.out.println("shipper:" + shipper);
@@ -381,7 +468,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//CONSIGNEE
 		if (ObjectUtils.isNotNull(sheet.getRow(9).getCell(0))) {
-			String consignee = sheet.getRow(9).getCell(0).getStringCellValue();
+			String consignee = getSheetCellValueAsString(sheet, 9, 0);
 			seaBillsDetail.setHconsigneeDetails(consignee);
 //			bills.setHconsigneeDetails(consignee);
 			System.out.println("consignee:" + consignee);
@@ -390,7 +477,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//NOTIFY PARTY
 		if (ObjectUtils.isNotNull(sheet.getRow(16).getCell(0))) {
-			String notifyParty = sheet.getRow(16).getCell(0).getStringCellValue();
+			String notifyParty = getSheetCellValueAsString(sheet, 16, 0);
 //			bills.setHnotifyDetails(notifyParty);
 			seaBillsDetail.setHnotifyDetails(notifyParty);
 			System.out.println("notifyParty:" + notifyParty);
@@ -399,7 +486,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//B/L NO
 		if (ObjectUtils.isNotNull(sheet.getRow(26).getCell(5))) {
-			String blno = sheet.getRow(26).getCell(5).getStringCellValue();
+			String blno = getSheetCellValueAsString(sheet, 26, 5);
 			System.out.println("blno:" + blno);
 			bills.setMblno(blno);
 		} else {
@@ -407,7 +494,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//MARKS
 		if (ObjectUtils.isNotNull(sheet.getRow(28).getCell(0))) {
-			String marks = sheet.getRow(28).getCell(0).getStringCellValue();
+			String marks = getSheetCellValueAsString(sheet, 28, 0);
 			System.out.println("blno:" + marks);
 			bills.setMarks(marks);
 		} else {
@@ -415,7 +502,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//BAGS
 		if (ObjectUtils.isNotNull(sheet.getRow(28).getCell(2))) {
-			double bags = sheet.getRow(28).getCell(2).getNumericCellValue();
+			double bags = getSheetCellValueAsNumericPrefix(sheet,28, 2);
 			System.out.println("bags:" + bags);
 			bills.setQuantity(new BigDecimal(bags));
 		} else {
@@ -423,7 +510,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//DESCRIPTION
 		if (ObjectUtils.isNotNull(sheet.getRow(28).getCell(3))) {
-			String description = sheet.getRow(28).getCell(3).getStringCellValue();
+			String description = getSheetCellValueAsString(sheet, 28, 3);
 			System.out.println("description:" + description);
 			bills.setCommodityDescr(description);
 		} else {
@@ -431,7 +518,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//G.W.
 		if (ObjectUtils.isNotNull(sheet.getRow(28).getCell(6))) {
-			double gw = sheet.getRow(28).getCell(6).getNumericCellValue();
+			double gw = getSheetCellValueAsNumericPrefix(sheet,28,6);
 			System.out.println("gw:" + gw);
 			bills.setGrossWeight(new BigDecimal(gw));
 		} else {
@@ -439,7 +526,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//MEAS
 		if (ObjectUtils.isNotNull(sheet.getRow(28).getCell(7))) {
-			double meas = sheet.getRow(28).getCell(7).getNumericCellValue();
+			double meas = getSheetCellValueAsNumericPrefix(sheet,28,7);
 			System.out.println("meas:" + meas);
 			bills.setMeasurement(new BigDecimal(meas));
 		} else {
@@ -486,7 +573,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 
 		//SHIPPER
 		if (ObjectUtils.isNotNull(sheet.getRow(2).getCell(0))) {
-			String shipper = sheet.getRow(2).getCell(0).getStringCellValue();
+			String shipper = getSheetCellValueAsString(sheet, 2, 0);
 //			bills.setHshipperDetails(shipper);
 			seaBillsDetail.setHshipperDetails(shipper);
 			System.out.println("shipper:" + shipper);
@@ -495,7 +582,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//CONSIGNEE
 		if (ObjectUtils.isNotNull(sheet.getRow(9).getCell(0))) {
-			String consignee = sheet.getRow(9).getCell(0).getStringCellValue();
+			String consignee = getSheetCellValueAsString(sheet, 9, 0);
 			seaBillsDetail.setHconsigneeDetails(consignee);
 //			bills.setHconsigneeDetails(consignee);
 			System.out.println("consignee:" + consignee);
@@ -504,7 +591,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//NOTIFY PARTY
 		if (ObjectUtils.isNotNull(sheet.getRow(16).getCell(0))) {
-			String notifyParty = sheet.getRow(16).getCell(0).getStringCellValue();
+			String notifyParty = getSheetCellValueAsString(sheet, 16, 0);
 			seaBillsDetail.setHnotifyDetails(notifyParty);
 //			bills.setHnotifyDetails(notifyParty);
 			System.out.println("notifyParty:" + notifyParty);
@@ -513,7 +600,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//MARKS
 		if (ObjectUtils.isNotNull(sheet.getRow(28).getCell(0))) {
-			String marks = sheet.getRow(28).getCell(0).getStringCellValue();
+			String marks = getSheetCellValueAsString(sheet, 28, 0);
 			System.out.println("blno:" + marks);
 			bills.setMarks(marks);
 		} else {
@@ -521,7 +608,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//BAGS
 		if (ObjectUtils.isNotNull(sheet.getRow(28).getCell(2))) {
-			double bags = sheet.getRow(28).getCell(2).getNumericCellValue();
+			double bags = getSheetCellValueAsNumericPrefix(sheet, 28, 2);
 			System.out.println("bags:" + bags);
 			bills.setQuantity(new BigDecimal(bags));
 		} else {
@@ -529,7 +616,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//DESCRIPTION
 		if (ObjectUtils.isNotNull(sheet.getRow(28).getCell(3))) {
-			String description = sheet.getRow(28).getCell(3).getStringCellValue();
+			String description = getSheetCellValueAsString(sheet, 28, 3);
 			System.out.println("description:" + description);
 			bills.setCommodityDescr(description);
 		} else {
@@ -537,7 +624,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//G.W.
 		if (ObjectUtils.isNotNull(sheet.getRow(28).getCell(6))) {
-			double gw = sheet.getRow(28).getCell(6).getNumericCellValue();
+			double gw = getSheetCellValueAsNumericPrefix(sheet, 28, 6);
 			System.out.println("gw:" + gw);
 			bills.setGrossWeight(new BigDecimal(gw));
 		} else {
@@ -545,7 +632,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 		}
 		//MEAS
 		if (ObjectUtils.isNotNull(sheet.getRow(28).getCell(7))) {
-			double meas = sheet.getRow(28).getCell(7).getNumericCellValue();
+			double meas = getSheetCellValueAsNumericPrefix(sheet, 28,7);
 			System.out.println("meas:" + meas);
 			bills.setMeasurement(new BigDecimal(meas));
 		} else {
@@ -578,6 +665,23 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 	}
 
 	@Override
+	public R<Bills> importHisenseBill(MultipartFile file) throws Exception {
+		Bills bills = new Bills();
+		SeaBillsDetail seaBillsDetail = new SeaBillsDetail();
+		// 创建临时文件
+		Path tempFile = Files.createTempFile("prefix", "suffix");
+		// 将MultipartFile的内容复制到临时文件
+		Files.copy(file.getInputStream(), tempFile, StandardCopyOption.REPLACE_EXISTING);
+
+		// 创建FileInputStream来读取临时文件
+		FileInputStream fis = new FileInputStream(tempFile.toFile());
+		Workbook workbook = new HSSFWorkbook(fis);
+		Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
+
+		return R.data(bills);
+	}
+
+	@Override
 	public R<List<Containers>> importHisense(MultipartFile file) throws Exception {
 		List<Containers> containersList = new ArrayList<>();