From 7951879338b046e000d39ebb6fbcfae16ff47324 Mon Sep 17 00:00:00 2001 From: whycxzp <perryhsu@163.com> Date: 星期日, 25 六月 2023 10:33:36 +0800 Subject: [PATCH] sop接口更新 --- src/main/java/com/whyc/service/SOPService.java | 43 +++++++++++++++++++++++++++++++++++++++---- 1 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/whyc/service/SOPService.java b/src/main/java/com/whyc/service/SOPService.java index 9eb4a35..8688ea5 100644 --- a/src/main/java/com/whyc/service/SOPService.java +++ b/src/main/java/com/whyc/service/SOPService.java @@ -7,14 +7,20 @@ import com.whyc.pojo.SOPProduct; import com.whyc.util.CommonUtil; import com.whyc.util.DateUtil; +import com.whyc.util.FileUtil; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.text.ParseException; @@ -27,13 +33,18 @@ @Resource private SOPMapper mapper; + @Autowired + private SOPProductService productService; - public Response<Object> excelParse(InputStream inputStream) throws IOException, InvalidFormatException { + + @Transactional + public Response<Object> excelParse(MultipartFile multipartFile) throws IOException, InvalidFormatException { SOP sop = new SOP(); List<SOPProduct> sopProductList = new LinkedList<>(); sop.setCreateTime(new Date()); Workbook workbook = null; + InputStream inputStream = multipartFile.getInputStream(); workbook = WorkbookFactory.create(inputStream); inputStream.close(); //鍙栫涓�涓猻heet琛� @@ -273,10 +284,17 @@ }else{ product.setModel(model); } - //TODO 瀛樺偍excel鏂囦欢 sopProductList.add(product); } + //瀛樺偍excel鏂囦欢,/sop_submit/xxx_202306250506.xlsx + String originalFilename = multipartFile.getOriginalFilename(); + String[] fileNameSplit = originalFilename.split("\\."); + String dateFormat = DateUtil.YYYY_MM_DD_HH_MM_SS_UNION.format(new Date()); + String newFileName = fileNameSplit[0]+"_"+dateFormat+"."+fileNameSplit[1]; + + String fileUrl = FileUtil.saveFile(multipartFile,"/sop_submit/"+newFileName); + sop.setFileUrl(fileUrl); sopProductList = sopProductList.stream().filter(product -> !product.getCode().equals("")).collect(Collectors.toList()); sop.setSopProductList(sopProductList); @@ -284,8 +302,25 @@ return new Response().setII(1,true,sop,"鏂囦欢瑙f瀽鎴愬姛"); } - public Response add(SOP sop) { - return null; + @Transactional + public Response add(SOP sop) throws IOException { + List<SOPProduct> sopProductList = sop.getSopProductList(); + mapper.insert(sop); + sopProductList.forEach(product -> product.setSopId(sop.getId())); + productService.insertBatch(sopProductList); + //鏂囦欢杞Щ + String fileUrl = sop.getFileUrl(); + String fileNameFrom = fileUrl.substring(fileUrl.lastIndexOf("/")); + String projectDir = CommonUtil.getProjectDir(); + String filePathFrom = projectDir + File.separator + fileUrl; + File fileFrom = new File(filePathFrom); + String filePathTo = projectDir + File.separator + "/sop" + fileNameFrom; + File fileTo = new File(filePathTo); + if(!fileTo.getParentFile().exists()){ + fileTo.getParentFile().mkdirs(); + } + FileCopyUtils.copy(fileFrom,fileTo); + return new Response().setII(1,"涓婁紶瀹屾垚"); } //鏌ヨsop淇℃伅 -- Gitblit v1.9.1