src/main/java/com/whyc/controller/SOPController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/SOPProductMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/SOP.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/SOPProduct.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/SOPProductService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/SOPService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/util/FileUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/SOPController.java
@@ -14,7 +14,6 @@ import java.io.IOException; import java.text.ParseException; import java.util.List; import java.util.Map; @RequestMapping("sop") @RestController @@ -33,14 +32,14 @@ if(!name.substring(name.length()-4).equals(".xls") && !name.substring(name.length()-5).equals(".xlsx")){ response.set(1,false,"文件解析错误:上传格式非excel格式"); }else{ response = service.excelParse(multipartFile.getInputStream()); response = service.excelParse(multipartFile); } return response; } @ApiOperation("确定sop") @PostMapping("confirm") public Response add(@RequestBody SOP sop) { public Response add(@RequestBody SOP sop) throws IOException { return service.add(sop); } src/main/java/com/whyc/mapper/SOPProductMapper.java
New file @@ -0,0 +1,6 @@ package com.whyc.mapper; import com.whyc.pojo.SOPProduct; public interface SOPProductMapper extends CustomMapper<SOPProduct> { } src/main/java/com/whyc/pojo/SOP.java
@@ -1,6 +1,7 @@ package com.whyc.pojo; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; @@ -10,6 +11,7 @@ /** * SOP:操作指导书 */ @TableName("tb_sop") public class SOP { private Integer id; @@ -44,6 +46,7 @@ * {"测试":["测1","测2"} * ] */ @TableField(exist = false) private List<Map<String,List<String>>> fileTypeList; @TableField(exist = false) src/main/java/com/whyc/pojo/SOPProduct.java
@@ -1,8 +1,11 @@ package com.whyc.pojo; import com.baomidou.mybatisplus.annotation.TableName; /** * SOP适用的产品 */ @TableName("tb_sop_product") public class SOPProduct { private Integer id; /**编码*/ src/main/java/com/whyc/service/SOPProductService.java
New file @@ -0,0 +1,19 @@ package com.whyc.service; import com.whyc.mapper.SOPProductMapper; import com.whyc.pojo.SOPProduct; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; @Service public class SOPProductService { @Resource private SOPProductMapper mapper; public void insertBatch(List<SOPProduct> sopProductList) { mapper.insertBatchSomeColumn(sopProductList); } } 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(); //取第一个sheet表 @@ -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,"文件解析成功"); } 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信息 src/main/java/com/whyc/util/FileUtil.java
@@ -1,5 +1,7 @@ package com.whyc.util; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; @@ -84,6 +86,21 @@ } } public static String saveFile(MultipartFile multipartFile,String fileName) throws IOException { String rootFile = CommonUtil.getRootFile(); String filePath = rootFile + fileName; File file = new File(filePath); File parentFile = file.getParentFile(); if(!parentFile.exists()){ parentFile.mkdirs(); } //存储 multipartFile.transferTo(file); return "doc_file"+fileName; } public static void main(String[] args) { File file = new File("C:\\Users\\29550\\Desktop\\当前项目\\202207泰州平台"); List list = new ArrayList<>();