From 0f67cd5804a7da8dc72e03d669dbfdf8de80c441 Mon Sep 17 00:00:00 2001 From: xiaoning <1097449274@qq.com> Date: Sat, 11 May 2024 14:52:13 +0800 Subject: [PATCH] =?UTF-8?q?PDF=E5=AF=BC=E5=85=A5=EF=BC=8C=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E5=88=B0=E6=95=B0=E6=8D=AE=E5=BA=93=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E4=B8=94=E4=BF=AE=E6=AD=A3BOM=E4=B8=AD=E7=9A=84=E5=9D=A1?= =?UTF-8?q?=E5=8F=A3=E3=80=81=E6=89=93=E7=A3=A8=E3=80=81=E6=9B=B2=E6=A0=87?= =?UTF-8?q?=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dsic/gj_erp/bean/jcsj/DmBom.java | 4 +- .../com/dsic/gj_erp/bean/jcsj/DmTltpdf.java | 7 +- .../controller/jcsj/DmBomController.java | 118 +++++++++++++++--- 3 files changed, 111 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/dsic/gj_erp/bean/jcsj/DmBom.java b/src/main/java/com/dsic/gj_erp/bean/jcsj/DmBom.java index a2656d9..e4add63 100644 --- a/src/main/java/com/dsic/gj_erp/bean/jcsj/DmBom.java +++ b/src/main/java/com/dsic/gj_erp/bean/jcsj/DmBom.java @@ -96,10 +96,10 @@ public class DmBom implements Serializable { @ApiModelProperty(value = "曲标识") private String qbs; - @ApiModelProperty(value = "坡口長度") + @ApiModelProperty(value = "坡口标识") private String pkbs; - @ApiModelProperty(value = "坡口标识") + @ApiModelProperty(value = "坡口长度") private BigDecimal pkcd; @ApiModelProperty(value = "打磨标识") diff --git a/src/main/java/com/dsic/gj_erp/bean/jcsj/DmTltpdf.java b/src/main/java/com/dsic/gj_erp/bean/jcsj/DmTltpdf.java index 1b220bc..b811b02 100644 --- a/src/main/java/com/dsic/gj_erp/bean/jcsj/DmTltpdf.java +++ b/src/main/java/com/dsic/gj_erp/bean/jcsj/DmTltpdf.java @@ -28,9 +28,12 @@ public class DmTltpdf implements Serializable { @ApiModelProperty(value = "船号") private String dcCh; - @ApiModelProperty(value = "图号(不是图纸编号)") + @ApiModelProperty(value = "批量") + private String pl; + @ApiModelProperty(value = "图号(总图号,不是图纸编号)") private String th; - + @ApiModelProperty(value = "套料图号(每一页的图纸编号)") + private String tlth; @ApiModelProperty(value = "页码") private String pageNum; diff --git a/src/main/java/com/dsic/gj_erp/controller/jcsj/DmBomController.java b/src/main/java/com/dsic/gj_erp/controller/jcsj/DmBomController.java index 065142a..7f1978c 100644 --- a/src/main/java/com/dsic/gj_erp/controller/jcsj/DmBomController.java +++ b/src/main/java/com/dsic/gj_erp/controller/jcsj/DmBomController.java @@ -2,6 +2,7 @@ package com.dsic.gj_erp.controller.jcsj; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.dsic.gj_erp.annotation.AuthFunction; import com.dsic.gj_erp.bean.ResultBean; import com.dsic.gj_erp.bean.jcsj.DmBom; @@ -18,12 +19,15 @@ import org.apache.commons.lang3.StringUtils; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -53,34 +57,41 @@ public class DmBomController { @PostMapping("/uploadPDF") @Authorization("") + @Transactional @ResponseBody - public ResultBean uploadPDF(@RequestParam("file") MultipartFile file)throws IOException { -// String pdfFilePath = "E:/runpeng/1润芃工作日志/第21个月/第3周/钢加项目资料/小池/B046HC103HN第046批量数控套料图2023-05-11.pdf"; // PDF文件路径 + public ResultBean uploadPDF(@RequestParam("file") MultipartFile[] fileList)throws IOException { + for (MultipartFile file : fileList) { PDDocument document = PDDocument.load(file.getInputStream()); int pageNum = document.getNumberOfPages(); -// PDFTextStripper stripper = new PDFTextStripper(); - stripper .setSortByPosition(true); //设置为true 则按照行进行读取,默认是false -// // 指定页面读取内容 -// stripper.setStartPage(12); // 设置起始页面,这里设置成0,就表示读取第一个页面 -// stripper.setEndPage(12); // 设置结束页面,这里设置成0,就表示读取第一个页面 +// stripper .setSortByPosition(true); //设置为true 则按照行进行读取,默认是false // // 3、获取指定页面的文本内容 - stripper.setStartPage(2); - stripper.setEndPage(2); - String[] text = stripper.getText(document).split("\r\n")[2].split(" "); - String dcCh=text[1]; - String th=text[10]; + stripper.setStartPage(1);// 设置起始页面,这里设置成2,就表示读取第一个页面 + stripper.setEndPage(1); // 设置结束页面,这里设置成2,就表示读取第一个页面 + String[] text = stripper.getText(document).split("\r\n"); + String dcCh=text[46]; + String pl=text[38].substring(1,4); + String th=text[29]; + //删除导入过的同船、批量、图号的数据, + tltpdfService.remove(new QueryWrapper() + .eq("dc_ch",dcCh) + .eq("pl",pl) + .eq("th",th) + ); List list=new ArrayList<>(); for (int i = 1; i <= pageNum; i++) { stripper.setStartPage(i); stripper.setEndPage(i); - String s = stripper.getText(document); - String[] a=s.split("\r\n"); + String s = stripper.getText(document);//本页文字内容 + String[] a=s.split("\r\n");//分行 + String tlth=i>1?s.split("序号零件编号")[1].split(" ")[5]:""; // System.out.println("第 " + i +"/"+pageNum+ " 页 :" ); for (int j=0;j-1){ + dmBomService.update(new UpdateWrapper().set("pkbs","Y") + .eq("dcch",dcCh) + .eq("pl",pl) + .eq("tzbh",tlth) + .eq("ljbh",ljbh) + ); + } + if ("D,Q".indexOf(sx)>-1){ + dmBomService.update(new UpdateWrapper().set("qbs","Y") + .eq("dcch",dcCh) + .eq("pl",pl) + .eq("tzbh",tlth) + .eq("ljbh",ljbh) + ); + } + if ("E,F,G,H".indexOf(sx)>-1){ + dmBomService.update(new UpdateWrapper().set("dmbs","Y") + .eq("dcch",dcCh) + .eq("pl",pl) + .eq("tzbh",tlth) + .eq("ljbh",ljbh) + ); + } + } @PostMapping("/getListBom") public ResultBean getListBom(HttpServletRequest req, @RequestBody Map map) throws CustomException { List listBom = dmBomService.getListBom(req,map);