|
@@ -805,7 +805,7 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
for(PdfCell cell : rowsByTitle) {
|
|
|
comment = comment + cell.getText();
|
|
|
}
|
|
|
- comment.replaceAll("Remarks To Vendor :", "");
|
|
|
+ comment = comment.replaceAll("Remarks To Vendor :", "");
|
|
|
saleInterfaceSync.setComment(comment);
|
|
|
}
|
|
|
saleInterfaceSync.setReferenceNumber(PDFTableReader.getFields(file, "Enquiry Number", "Printed On", true).get(0));
|
|
@@ -929,6 +929,7 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
SaleInterfaceSync saleInterfaceSync = new SaleInterfaceSync();
|
|
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
String id = UUIDGenerator.generate();
|
|
|
+ PdfTable pdfTable = PDFTableReader.handlePdf(file, "RFQ Details");
|
|
|
saleInterfaceSync.setId(id);
|
|
|
saleInterfaceSync.setCreateBy(sysUser.getUsername());
|
|
|
saleInterfaceSync.setBuyerName(PDFTableReader.getNextLineFields(file, "Company Name:").get(0));
|
|
@@ -938,6 +939,26 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
saleInterfaceSync.setReferenceNumber(PDFTableReader.getNextLineFields(file, "Requisition No.:").get(0));
|
|
|
saleInterfaceSync.setVesselImo(PDFTableReader.getNextLineFields(file, "IMO:").get(0));
|
|
|
saleInterfaceSync.setVesselCode(PDFTableReader.getNextLineFields(file, "Vessel:").get(0));
|
|
|
+ saleInterfaceSync.setSubject(PDFTableReader.getLineByTitle(pdfTable, "Description:", null, "Buyer Message"));
|
|
|
+ try {
|
|
|
+ String[] removeLine = {"Buyer Message"};
|
|
|
+ List<PdfCell> buyerMessage = PDFTableReader.getRowsByTitle(pdfTable, "Buyer Message", null, "Equipment:");
|
|
|
+ if(buyerMessage != null && buyerMessage.size() > 0) {
|
|
|
+ buyerMessage.remove(buyerMessage.size() - 1);
|
|
|
+ String comment = "";
|
|
|
+ for(PdfCell cell : buyerMessage) {
|
|
|
+ comment = comment + cell.getText();
|
|
|
+ }
|
|
|
+ comment = comment.replaceAll("Buyer Message", "");
|
|
|
+ saleInterfaceSync.setComment(comment);
|
|
|
+ }
|
|
|
+ String[] date = PDFTableReader.getNextLineFields(file, "Requisition Date:").get(0).split("/");
|
|
|
+ String day = date[2] + "-" + date[1] + "-" + date[0];
|
|
|
+ saleInterfaceSync.setSubmittedDate(DateUtils.parseDate(day, "yyyy-MM-dd"));
|
|
|
+ }catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
List<String> fieldList = new ArrayList<>();
|
|
|
fieldList.add("No.");
|
|
@@ -956,22 +977,40 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
ignoreList.add("Shipsure Version Number");
|
|
|
ignoreList.add("Plate");
|
|
|
ignoreList.add("Order Line Notes");
|
|
|
- ignoreList.add("Sub Total");
|
|
|
- ignoreList.add("Freight Cost");
|
|
|
+ ignoreList.add("Assembly Particulars:");
|
|
|
+ ignoreList.add("Assembly:");
|
|
|
ignoreList.add("Packaging Cost");
|
|
|
- ignoreList.add("Grand Total");
|
|
|
- ignoreList.add("(%)");
|
|
|
+ ignoreList.add("Equipment Particulars:");
|
|
|
+ ignoreList.add("Item Code/Part");
|
|
|
+
|
|
|
+ String[] extra = {"Office Notes:"};
|
|
|
+ JSONArray jsonArray = PDFTableReader.getPdfTable(pdfTable, fieldList, ignoreList, extra, "Item Code/Part", "noEndKey", "left", true);
|
|
|
+ //JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "", -1, "left", "Buyer Message", "Item Code/Part", extra, 6, 0);
|
|
|
+ //数据去重,No.重复的去掉,取第二个
|
|
|
+ try {
|
|
|
+ Map<String, JSONObject> willSortedData = new HashMap<>();
|
|
|
+ for(Object data : jsonArray) {
|
|
|
+ willSortedData.put(((JSONObject)data).getString("No."), (JSONObject)data);
|
|
|
+ }
|
|
|
+ List<JSONObject> values = willSortedData.values().stream().sorted(new Comparator<JSONObject>() {
|
|
|
+ @Override
|
|
|
+ public int compare(JSONObject o1, JSONObject o2) {
|
|
|
+ return (o1.getInteger("No.") - o2.getInteger("No."));
|
|
|
+ }}).collect(Collectors.toList());
|
|
|
+
|
|
|
+ jsonArray = JSONArray.parseArray(JSONArray.toJSONString(values));
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("去重失败", e);
|
|
|
+ }
|
|
|
|
|
|
- String[] extra = {"Equipment: -", "Page"};
|
|
|
- JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "", -1, "left", "Buyer Message", "Item Code/Part", extra, 6, 0);
|
|
|
for(Object node : jsonArray) {
|
|
|
JSONObject jsonObject = JSONObject.parseObject(String.valueOf(node));
|
|
|
if(jsonObject.size() >= 0) {
|
|
|
SaleInterfaceItem saleInterfaceItem = new SaleInterfaceItem();
|
|
|
saleInterfaceItem.setDescription(jsonObject.getString("Description"));
|
|
|
- saleInterfaceItem.setQuantity(jsonObject.getString("Qty"));
|
|
|
- saleInterfaceItem.setSyncItemCode(jsonObject.getString("Makers Reference"));
|
|
|
- saleInterfaceItem.setUnitOfMeasure(jsonObject.getString("UOM"));
|
|
|
+ saleInterfaceItem.setQuantity(jsonObject.getString("Quantity"));
|
|
|
+ saleInterfaceItem.setSupplierPartNumber(jsonObject.getString("Item Code/Part"));
|
|
|
+ saleInterfaceItem.setUnitOfMeasure(jsonObject.getString("UoM") == null ? "" : jsonObject.getString("UoM").toUpperCase());
|
|
|
saleInterfaceItem.setHeadId(id);
|
|
|
saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
|
}
|
|
@@ -1109,7 +1148,7 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
String[] date = time.get(2).getText().split(",")[0].split(" ");
|
|
|
String day = date[2] + "-" + MonthUtil.getMonthValue(date[1]) + "-" + date[0];
|
|
|
saleInterfaceSync.setSubmittedDate(DateUtils.parseDate(day, "yyyy-MM-dd"));
|
|
|
- } catch (ParseException e) {
|
|
|
+ } catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
String[] extra = {"Buyer comments:", "Equipment Section Name:"};
|
|
@@ -1146,26 +1185,31 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
List<String> ignoreList = new ArrayList<>();
|
|
|
ignoreList.add("Page");
|
|
|
ignoreList.add("Awaiting your");
|
|
|
+ ignoreList.add("Part No.");
|
|
|
|
|
|
+ PdfTable pdfTable = PDFTableReader.handlePdf(file, "Machinery type:");
|
|
|
|
|
|
- //saleInterfaceSync.setPriority(PDFTableReader.getFields(file, "Priority", "", true).get(0));
|
|
|
- saleInterfaceSync.setBuyerName(PDFTableReader.getFields(file, "MAKER:", "", true).get(0));
|
|
|
- // saleInterfaceSync.setBuyerContactName(PDFTableReader.getFields(file, "Our Contact", "", true).get(0));
|
|
|
- //saleInterfaceSync.setBuyerTelephone(PDFTableReader.getFields(file, "Tel.", "", true).get(0));
|
|
|
- saleInterfaceSync.setReferenceNumber(PDFTableReader.getFields(file, "Our Reference……", "", true).get(0));
|
|
|
- saleInterfaceSync.setVesselImo(PDFTableReader.getNextLineFields(file, "IMO No:").get(0));
|
|
|
- saleInterfaceSync.setVesselCode(PDFTableReader.getFields(file, "Vessel:", "", true).get(0));
|
|
|
+ saleInterfaceSync.setVesselImo(PDFTableReader.getLineByTitle(pdfTable, "IMO No:", null, null));
|
|
|
+ saleInterfaceSync.setVesselCode(PDFTableReader.getLineByTitle(pdfTable, "Vessel", null, null).split(":")[1]);
|
|
|
+ String date = PDFTableReader.getLineByTitle(pdfTable, "Date…", null, null);
|
|
|
+ try {
|
|
|
+ String[] split = date.split(":")[1].split(".");
|
|
|
+ String day = split[2] + "-" + split[1] + "-" + split[0];
|
|
|
+ saleInterfaceSync.setSubmittedDate(DateUtils.parseDate(day, "yyyy-MM-dd"));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
|
|
|
- String[] extra = {"Page", "Awaiting your"};
|
|
|
- JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "Awaiting your", -1, "left", "Awaiting your", "Part No.", extra, 3, 0);
|
|
|
+ String[] extra = {"haveNoExtra"};
|
|
|
+ JSONArray jsonArray = PDFTableReader.getPdfTable(pdfTable, fieldList, ignoreList, extra, "Part No.", "Awaiting your", "left", false);
|
|
|
+ //JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "Awaiting your", -1, "left", "Awaiting your", "Part No.", extra, 3, 0);
|
|
|
for(Object node : jsonArray) {
|
|
|
JSONObject jsonObject = JSONObject.parseObject(String.valueOf(node));
|
|
|
if(jsonObject.size() >= 0) {
|
|
|
SaleInterfaceItem saleInterfaceItem = new SaleInterfaceItem();
|
|
|
saleInterfaceItem.setDescription(jsonObject.getString("Description"));
|
|
|
- saleInterfaceItem.setQuantity(jsonObject.getString("Qty"));
|
|
|
- saleInterfaceItem.setSyncItemCode(jsonObject.getString("Makers Reference"));
|
|
|
- saleInterfaceItem.setUnitOfMeasure(jsonObject.getString("UOM"));
|
|
|
+ saleInterfaceItem.setQuantity(jsonObject.getString("Quantity"));
|
|
|
+ saleInterfaceItem.setSupplierPartNumber(jsonObject.getString("Part No."));
|
|
|
saleInterfaceItem.setHeadId(id);
|
|
|
saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
|
}
|