diff --git a/src/main/java/com/dsic/gj_erp/controller/jcsj/BomUploadController.java b/src/main/java/com/dsic/gj_erp/controller/jcsj/BomUploadController.java
index e336898..04a018b 100644
--- a/src/main/java/com/dsic/gj_erp/controller/jcsj/BomUploadController.java
+++ b/src/main/java/com/dsic/gj_erp/controller/jcsj/BomUploadController.java
@@ -8,6 +8,8 @@ import com.dsic.gj_erp.annotation.AuthFunction;
import com.dsic.gj_erp.bean.ResultBean;
import com.dsic.gj_erp.bean.jcsj.DmBom;
import com.dsic.gj_erp.bean.jcsj.DmTltpdf;
+import com.dsic.gj_erp.bean.sy.Dm_zhbmp;
+import com.dsic.gj_erp.dao.sy.Dm_zhbmpRepository;
import com.dsic.gj_erp.exception.CustomException;
import com.dsic.gj_erp.mapper.jcsj.DmBomMapper;
import com.dsic.gj_erp.service.jcsj.DmBomService;
@@ -26,6 +28,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
*
@@ -48,6 +51,9 @@ public class BomUploadController {
@Autowired
DmTltpdfService tltpdfService;
+ @Autowired
+ Dm_zhbmpRepository dm_zhbmpRepository;
+
@PostMapping("/uploadBom")
@AuthFunction
@ResponseBody
@@ -69,121 +75,132 @@ public class BomUploadController {
@Transactional
public boolean uploadPDF(MultipartFile[] fileList, String dcCh,String pl,String date)throws IOException {
+ List kwxxs = dm_zhbmpRepository.findByBMLB("KWXX");
+ Map kwxxMap = kwxxs.stream().collect(Collectors.toMap(Dm_zhbmp::getBM, Dm_zhbmp::getBmsm));
for (MultipartFile file : fileList) {//船号_批量/日期/PDF(ERP)
- String url= com.dsic.gj_erp.util.FileUtil.handlerUpload(file,"/"+dcCh+"_"+pl+"/"+date+"/PDF");
- PDDocument document = PDDocument.load(file.getInputStream());
- int pageNum = document.getNumberOfPages();
- PDFTextStripper stripper = new PDFTextStripper();
-// stripper .setSortByPosition(true); //设置为true 则按照行进行读取,默认是false
-// // 3、获取指定页面的文本内容
-// stripper.setStartPage(1);// 设置起始页面,表示读取第一个页面
-// stripper.setEndPage(1); // 设置结束页面,表示读取第一个页面
-// String[] text = stripper.getText(document).split("\r\n");
-// String dcCh=text[46];
-// String pl=text[38].substring(1,4);
-// String th=text[29];
- stripper.setStartPage(2);// 设置起始页面,表示读取第一个页面
- stripper.setEndPage(2); // 设置结束页面,表示读取第一个页面
- String[] text = stripper.getText(document).split("序号零件编号")[1].split(" ");
-// String dcCh=text[2].split("\r\n")[1];
-// String pl=text[3];
- String th=text[6].substring(0,12);
- //删除导入过的同船、批量、图号的数据,
- 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++) {
- try {
- stripper.setStartPage(i);
- stripper.setEndPage(i);
- String s = stripper.getText(document);//本页文字内容
- String[] a=s.split("\r\n");//分行
- String tlth="";
- Double hxcd=0.0;
- Double qgcd=0.0;
- Double hxkc=0.0;
- Double qgkc=0.0;
- if (i>1){
- tlth=s.split("序号零件编号")[1].split(" ")[5];
- String num[]=s.split("序号零件编号")[1].split("\r\n");
- hxcd=new Double(num[2]);
- qgcd=new Double(num[3]);
- hxkc=new Double(num[4]);
- qgkc=new Double(num[5]);
- }
-// System.out.println("第 " + i +"/"+pageNum+ " 页 :" );
- //按页保存
- DmTltpdf tltpdf=new DmTltpdf();
- tltpdf.setDcCh(dcCh);
- tltpdf.setTh(th);
- tltpdf.setPl(pl);
- tltpdf.setTlth(tlth);
- tltpdf.setPageNum(i +"/"+pageNum);
- tltpdf.setContent(s);
- tltpdf.setFilePath(url);
- tltpdf.setHxcd(hxcd);
- tltpdf.setQgcd(qgcd);
- tltpdf.setHxkc(hxkc);
- tltpdf.setQgkc(qgkc);
- list.add(tltpdf);
- if (i==1)continue;
- Double ljzl=0.0;
- String tlth1[]=s.split("DNV\\+CCS")[1].split("\r\n");
- ljzl=new Double(tlth1[1]);
- if (ljzl==0.0)continue;
- //根据当前页数据,修改BOM中零件属性 坡口 打磨 曲
- int ljCount= s.split("\\|")[0].split("\r\n").length;//零件数量
- if (ljCount==11||ljCount==21||ljCount==31){
- //取用下标count-1 至 count*2-2的数组,为属性
- String[] sxArray=getArrayByIndex(a,ljCount-1,ljCount*2-2);
+ if(file.getOriginalFilename().contains(".QG")){
+ String s = kwxxMap.get(file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("/")+1).substring(4, 7));
+ String url= com.dsic.gj_erp.util.FileUtil.handlerUpload(file,"/"+dcCh+"_"+pl+"/"+date+"/QG"+"/"+s);
- //取用下标count*2-2 至 count*3-3 的数组,为零件号
- String[] ljArray=getArrayByIndex(a,ljCount*2-2,ljCount*3-3);
+ bomMapper.insertFile(url,"");
+ }else if (file.getOriginalFilename().contains(".pdf")){
- System.out.println(ljCount);
- System.out.println(i);
- for (int j = 0; j < ljArray.length; j++) {
- String ljbh;//零件号
- String sx;//属性
- if (i==0){
- String[] b= ljArray[j].split("0\\|");
- ljbh=b[b.length-1];
- sx=sxArray[j].split("\\|")[4];
- }else {
- ljbh=ljArray[j];
- sx=sxArray[j].split("\\|")[4];
- }
- updateBom(sx,dcCh,pl,tlth,ljbh);
- }
- }else if (ljCount==1){
- //"1,11,21,31"
- String[] ljxx= a[0].split("\\|");
- String ljbh= ljxx[ljxx.length-1];//零件号
- String sx= ljxx[4];//属性
- updateBom(sx,dcCh,pl,tlth,ljbh);
- }else {
- //取用下标count 至 count*2-1的数组,为属性
- String[] sxArray=getArrayByIndex(a,ljCount,ljCount*2-1);
- //取用下标count*2 至 count*3-1 的数组,为零件号
- String[] ljArray=getArrayByIndex(a,ljCount*2,ljCount*3-1);
- for (int j = 0; j < ljArray.length; j++) {
- String ljbh=ljArray[j];//零件号
- String sx=sxArray[j].split("\\|")[4];//属性
- updateBom(sx,dcCh,pl,tlth,ljbh);
- }
- }
- }catch (Exception e){
- String logMsg= StrUtil.format("数控套料图pdf读取错误--图号:{},页数:{}",th,i);
- log.error(logMsg);
- return false;
- }
- }
- tltpdfService.saveBatch(list);
- document.close();
+
+ String url= com.dsic.gj_erp.util.FileUtil.handlerUpload(file,"/"+dcCh+"_"+pl+"/"+date+"/PDF");
+// PDDocument document = PDDocument.load(file.getInputStream());
+// int pageNum = document.getNumberOfPages();
+// PDFTextStripper stripper = new PDFTextStripper();
+//// stripper .setSortByPosition(true); //设置为true 则按照行进行读取,默认是false
+//// // 3、获取指定页面的文本内容
+//// stripper.setStartPage(1);// 设置起始页面,表示读取第一个页面
+//// stripper.setEndPage(1); // 设置结束页面,表示读取第一个页面
+//// String[] text = stripper.getText(document).split("\r\n");
+//// String dcCh=text[46];
+//// String pl=text[38].substring(1,4);
+//// String th=text[29];
+// stripper.setStartPage(2);// 设置起始页面,表示读取第一个页面
+// stripper.setEndPage(2); // 设置结束页面,表示读取第一个页面
+// String[] text = stripper.getText(document).split("序号零件编号")[1].split(" ");
+//// String dcCh=text[2].split("\r\n")[1];
+//// String pl=text[3];
+// String th=text[6].substring(0,12);
+// //删除导入过的同船、批量、图号的数据,
+// 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++) {
+// try {
+// stripper.setStartPage(i);
+// stripper.setEndPage(i);
+// String s = stripper.getText(document);//本页文字内容
+// String[] a=s.split("\r\n");//分行
+// String tlth="";
+// Double hxcd=0.0;
+// Double qgcd=0.0;
+// Double hxkc=0.0;
+// Double qgkc=0.0;
+// if (i>1){
+// tlth=s.split("序号零件编号")[1].split(" ")[5];
+// String num[]=s.split("序号零件编号")[1].split("\r\n");
+// hxcd=new Double(num[2]);
+// qgcd=new Double(num[3]);
+// hxkc=new Double(num[4]);
+// qgkc=new Double(num[5]);
+// }
+//// System.out.println("第 " + i +"/"+pageNum+ " 页 :" );
+// //按页保存
+// DmTltpdf tltpdf=new DmTltpdf();
+// tltpdf.setDcCh(dcCh);
+// tltpdf.setTh(th);
+// tltpdf.setPl(pl);
+// tltpdf.setTlth(tlth);
+// tltpdf.setPageNum(i +"/"+pageNum);
+// tltpdf.setContent(s);
+// tltpdf.setFilePath(url);
+// tltpdf.setHxcd(hxcd);
+// tltpdf.setQgcd(qgcd);
+// tltpdf.setHxkc(hxkc);
+// tltpdf.setQgkc(qgkc);
+// list.add(tltpdf);
+// if (i==1)continue;
+// Double ljzl=0.0;
+// String tlth1[]=s.split("DNV\\+CCS")[1].split("\r\n");
+// ljzl=new Double(tlth1[1]);
+// if (ljzl==0.0)continue;
+// //根据当前页数据,修改BOM中零件属性 坡口 打磨 曲
+// int ljCount= s.split("\\|")[0].split("\r\n").length;//零件数量
+// if (ljCount==11||ljCount==21||ljCount==31){
+// //取用下标count-1 至 count*2-2的数组,为属性
+// String[] sxArray=getArrayByIndex(a,ljCount-1,ljCount*2-2);
+//
+// //取用下标count*2-2 至 count*3-3 的数组,为零件号
+// String[] ljArray=getArrayByIndex(a,ljCount*2-2,ljCount*3-3);
+//
+// System.out.println(ljCount);
+// System.out.println(i);
+// for (int j = 0; j < ljArray.length; j++) {
+// String ljbh;//零件号
+// String sx;//属性
+// if (i==0){
+// String[] b= ljArray[j].split("0\\|");
+// ljbh=b[b.length-1];
+// sx=sxArray[j].split("\\|")[4];
+// }else {
+// ljbh=ljArray[j];
+// sx=sxArray[j].split("\\|")[4];
+// }
+// updateBom(sx,dcCh,pl,tlth,ljbh);
+// }
+// }else if (ljCount==1){
+// //"1,11,21,31"
+// String[] ljxx= a[0].split("\\|");
+// String ljbh= ljxx[ljxx.length-1];//零件号
+// String sx= ljxx[4];//属性
+// updateBom(sx,dcCh,pl,tlth,ljbh);
+// }else {
+// //取用下标count 至 count*2-1的数组,为属性
+// String[] sxArray=getArrayByIndex(a,ljCount,ljCount*2-1);
+// //取用下标count*2 至 count*3-1 的数组,为零件号
+// String[] ljArray=getArrayByIndex(a,ljCount*2,ljCount*3-1);
+// for (int j = 0; j < ljArray.length; j++) {
+// String ljbh=ljArray[j];//零件号
+// String sx=sxArray[j].split("\\|")[4];//属性
+// updateBom(sx,dcCh,pl,tlth,ljbh);
+// }
+// }
+// }catch (Exception e){
+// String logMsg= StrUtil.format("数控套料图pdf读取错误--图号:{},页数:{}",th,i);
+// log.error(logMsg);
+// return false;
+// }
+// }
+// tltpdfService.saveBatch(list);
+// document.close();
+ }
}
return true;
}
@@ -222,6 +239,7 @@ public class BomUploadController {
.eq("ljbh",ljbh)
);
}
+
}
}
diff --git a/src/main/java/com/dsic/gj_erp/service/jcsj/impl/BomUploadServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jcsj/impl/BomUploadServiceImpl.java
index 478b67b..c5e1f25 100644
--- a/src/main/java/com/dsic/gj_erp/service/jcsj/impl/BomUploadServiceImpl.java
+++ b/src/main/java/com/dsic/gj_erp/service/jcsj/impl/BomUploadServiceImpl.java
@@ -204,7 +204,7 @@ public class BomUploadServiceImpl {
return new ResultBean(map);
}
}
- if (fname.contains("套料图")) {
+ if (fname.contains("套料图") && !fname.contains(".pdf")) {
int indexOfUnderscore = fname.indexOf('_');
czbh1 = fname.substring(0, indexOfUnderscore);
// 2. 第一个_后面批前面的字符
@@ -1740,7 +1740,7 @@ public class BomUploadServiceImpl {
return "";
}
- void saveFile(MultipartFile file,String path,String yhdm){
+ public void saveFile(MultipartFile file,String path,String yhdm){
String url= com.dsic.gj_erp.util.FileUtil.handlerUpload(file,path);
bomMapper.insertFile(url,yhdm);
}
diff --git a/src/main/resources/mappers/kc/ImCkwpkwp.xml b/src/main/resources/mappers/kc/ImCkwpkwp.xml
index 8e4038a..20d51c6 100644
--- a/src/main/resources/mappers/kc/ImCkwpkwp.xml
+++ b/src/main/resources/mappers/kc/ImCkwpkwp.xml
@@ -81,7 +81,14 @@
and IM_CKWPKWP.dzwz=#{ql}
- and IM_CKWPKWP.wpgg=#{wpgg}
+ and DM_WPJBP.wpgg=#{wpgg}
+
+
+
+ and IM_CKWPKWP.lph=#{lph}
+
+
+ and IM_CKWPKWP.kwh=#{kwh}
and IM_CKWPKWP.wpxh=#{wpxh}