|
@@ -568,6 +568,7 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
break;
|
|
|
case "8" :
|
|
|
parseLemissoler(file);
|
|
|
+ break;
|
|
|
case "9" :
|
|
|
parseTechnava(file);
|
|
|
break;
|
|
@@ -610,10 +611,17 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
ignoreList.add("For Component");
|
|
|
ignoreList.add("Designer");
|
|
|
ignoreList.add("Maker");
|
|
|
-
|
|
|
+ ignoreList.add("1 of");
|
|
|
+ ignoreList.add("2 of");
|
|
|
+ ignoreList.add("3 of");
|
|
|
+ ignoreList.add("4 of");
|
|
|
+ ignoreList.add("5 of");
|
|
|
+ ignoreList.add("6 of");
|
|
|
+ ignoreList.add("7 of");
|
|
|
+ ignoreList.add("8 of");
|
|
|
|
|
|
saleInterfaceSync.setPriority(PDFTableReader.getFields(file, "Priority", "", true).get(0));
|
|
|
- saleInterfaceSync.setBuyerName(split[1]);
|
|
|
+ saleInterfaceSync.setBuyerName(split[1].toUpperCase());
|
|
|
try {
|
|
|
String[] date = split[0].split(" ");
|
|
|
String day = date[2] + "-" + MonthUtil.getMonthValue(date[1]) + "-" + date[0];
|
|
@@ -634,8 +642,8 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
saleInterfaceSync.setVesselImo(PDFTableReader.getNextLineFields(file, "IMO Number").get(0));
|
|
|
saleInterfaceSync.setVesselCode(PDFTableReader.getFields(file, "Vessel Name", "", true).get(0).toUpperCase());
|
|
|
PdfTable pdfTable = PDFTableReader.handlePdf(file, "Request For Quote No");
|
|
|
- saleInterfaceSync.setSubject(PDFTableReader.getLineByTitle(pdfTable, "Order Title", "Priority", "Spare Part Type"));
|
|
|
- String[] removeLine = {"Page", "Request For Quotation", "CSL Australia", "vessel m/v CSL RELIANCE", "Shipsure Version", "Notes"};
|
|
|
+ saleInterfaceSync.setSubject(PDFTableReader.getLineByTitle(pdfTable, "Order Title", "Priority", "Spare Part Type", ignoreList));
|
|
|
+ String[] removeLine = {"Page", "Request For Quotation", "CSL Australia", "behalf of Owners", "Shipsure Version", "Notes"};
|
|
|
saleInterfaceSync.setComment(Strings.join(PDFTableReader.getMultipleLineFields(file, "Supplier Notes", "Terms and Conditions", removeLine, true), ' '));
|
|
|
|
|
|
String[] extraLine = {"Order Line Notes", "Sheet No."};
|
|
@@ -645,7 +653,7 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
JSONObject jsonObject = JSONObject.parseObject(String.valueOf(node));
|
|
|
if(jsonObject.size() >= 0) {
|
|
|
SaleInterfaceItem saleInterfaceItem = new SaleInterfaceItem();
|
|
|
- saleInterfaceItem.setDescription(jsonObject.getString("Description"));
|
|
|
+ saleInterfaceItem.setDescription(Objects.toString(jsonObject.getString("Description"), "").toUpperCase());
|
|
|
try {
|
|
|
saleInterfaceItem.setNumber(Integer.parseInt(jsonObject.getString("Item")));
|
|
|
}catch (Exception e) {
|
|
@@ -655,7 +663,7 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
saleInterfaceItem.setSupplierPartNumber(jsonObject.getString("Makers Reference"));
|
|
|
saleInterfaceItem.setUnitOfMeasure(jsonObject.getString("UOM") == null ? "" : jsonObject.getString("UOM").toUpperCase());
|
|
|
saleInterfaceItem.setHeadId(id);
|
|
|
- saleInterfaceItem.setComment(jsonObject.getString("Drawing Position"));
|
|
|
+ saleInterfaceItem.setComment(Objects.toString(jsonObject.getString("Drawing Position"), "").toUpperCase());
|
|
|
saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
|
}
|
|
|
}
|
|
@@ -713,11 +721,35 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
ignoreList.add("Packaging Cost");
|
|
|
ignoreList.add("Grand Total");
|
|
|
ignoreList.add("(%)");
|
|
|
+ ignoreList.add("1 of");
|
|
|
+ ignoreList.add("2 of");
|
|
|
+ ignoreList.add("3 of");
|
|
|
+ ignoreList.add("4 of");
|
|
|
+ ignoreList.add("5 of");
|
|
|
+ ignoreList.add("6 of");
|
|
|
+ ignoreList.add("7 of");
|
|
|
+ ignoreList.add("8 of");
|
|
|
|
|
|
String[] extra = {"Page"};
|
|
|
PdfTable pdfTable = PDFTableReader.handlePdf(file, "RFQ Details");
|
|
|
JSONArray jsonArray = PDFTableReader.getPdfTable(pdfTable, fieldList, ignoreList, extra, "Item Code/Part", "noEndKey", "left", true);
|
|
|
// JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "", -1, "left", "Request For Quote No", "Item Code/Part", extra, 5, 0);
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+
|
|
|
for(Object node : jsonArray) {
|
|
|
JSONObject jsonObject = JSONObject.parseObject(String.valueOf(node));
|
|
|
if(jsonObject.size() >= 0) {
|
|
@@ -768,6 +800,14 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
ignoreList.add("Packaging Cost");
|
|
|
ignoreList.add("Grand Total");
|
|
|
ignoreList.add("(%)");
|
|
|
+ ignoreList.add("1 of");
|
|
|
+ ignoreList.add("2 of");
|
|
|
+ ignoreList.add("3 of");
|
|
|
+ ignoreList.add("4 of");
|
|
|
+ ignoreList.add("5 of");
|
|
|
+ ignoreList.add("6 of");
|
|
|
+ ignoreList.add("7 of");
|
|
|
+ ignoreList.add("8 of");
|
|
|
|
|
|
String[] extra = {"Page"};
|
|
|
JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "Contact:", -1, "left", "Contact:", "Part No.", extra, 4, 0);
|
|
@@ -792,8 +832,34 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
saleInterfaceSync.setId(id);
|
|
|
saleInterfaceSync.setCreateBy(sysUser.getUsername());
|
|
|
PdfTable pdfTable = PDFTableReader.handlePdf(file, "Equipment Details");
|
|
|
- String quoteBy = PDFTableReader.getLineByTitle(pdfTable, "Quote By", null, null);
|
|
|
- String printedOn = PDFTableReader.getLineByTitle(pdfTable, "Printed On", null, null);
|
|
|
+ List<String> fieldList = new ArrayList<>();
|
|
|
+ fieldList.add("S.No");
|
|
|
+ fieldList.add("Item Code");
|
|
|
+ fieldList.add("Item Description");
|
|
|
+ fieldList.add("Drawing Number");
|
|
|
+ fieldList.add("Part Number");
|
|
|
+ fieldList.add("Unit");
|
|
|
+ fieldList.add("Quantity");
|
|
|
+ fieldList.add("MD");
|
|
|
+ fieldList.add("SDoC");
|
|
|
+ fieldList.add("Origin of Product");
|
|
|
+ fieldList.add("Export Control No");
|
|
|
+ fieldList.add("Remarks");
|
|
|
+
|
|
|
+ List<String> ignoreList = new ArrayList<>();
|
|
|
+ ignoreList.add("Item Details");
|
|
|
+ ignoreList.add("Item Description");
|
|
|
+ ignoreList.add("1 of");
|
|
|
+ ignoreList.add("2 of");
|
|
|
+ ignoreList.add("3 of");
|
|
|
+ ignoreList.add("4 of");
|
|
|
+ ignoreList.add("5 of");
|
|
|
+ ignoreList.add("6 of");
|
|
|
+ ignoreList.add("7 of");
|
|
|
+ ignoreList.add("8 of");
|
|
|
+
|
|
|
+ String quoteBy = PDFTableReader.getLineByTitle(pdfTable, "Quote By", null, null, ignoreList);
|
|
|
+ String printedOn = PDFTableReader.getLineByTitle(pdfTable, "Printed On", null, null, ignoreList);
|
|
|
try {
|
|
|
String[] adviseDate = quoteBy.split(" ");
|
|
|
String adviseDay = adviseDate[2] + "-" + MonthUtil.getMonthValue(adviseDate[1]) + "-" + adviseDate[0];
|
|
@@ -805,10 +871,9 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- saleInterfaceSync.setSubject(PDFTableReader.getLineByTitle(pdfTable, "RFQ Title", "Place(CITY)", "Enquiry Date"));
|
|
|
- List<PdfCell> rowsByTitle = PDFTableReader.getRowsByTitle(pdfTable, "Remarks To Vendor :", null, "tableEnd");
|
|
|
+ saleInterfaceSync.setSubject(PDFTableReader.getLineByTitle(pdfTable, "RFQ Title", "Place(CITY)", "Enquiry Date", ignoreList));
|
|
|
+ List<PdfCell> rowsByTitle = PDFTableReader.getRowsByTitle(pdfTable, "Remarks To Vendor :", null, "tableEnd", ignoreList);
|
|
|
if(rowsByTitle != null && rowsByTitle.size() > 0) {
|
|
|
- rowsByTitle.remove(rowsByTitle.size() - 1);
|
|
|
String comment = "";
|
|
|
for(PdfCell cell : rowsByTitle) {
|
|
|
comment = comment + cell.getText();
|
|
@@ -817,31 +882,18 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
saleInterfaceSync.setComment(comment);
|
|
|
}
|
|
|
saleInterfaceSync.setReferenceNumber(PDFTableReader.getFields(file, "Enquiry Number", "Printed On", true).get(0));
|
|
|
- saleInterfaceSync.setVesselCode(PDFTableReader.getFields(file, "Vessel Name", "Quote By", true).get(0));
|
|
|
+ String vesselCode = PDFTableReader.getFields(file, "Vessel Name", "Quote By", true).get(0);
|
|
|
+ if(Strings.isNotBlank(vesselCode)) {
|
|
|
+ vesselCode = vesselCode.toUpperCase();
|
|
|
+ }
|
|
|
+ saleInterfaceSync.setVesselCode(vesselCode);
|
|
|
saleInterfaceSync.setCurrencyCode(PDFTableReader.getFields(file, "Currency", "", true).get(0));
|
|
|
|
|
|
- List<String> fieldList = new ArrayList<>();
|
|
|
- fieldList.add("S.No");
|
|
|
- fieldList.add("Item Code");
|
|
|
- fieldList.add("Item Description");
|
|
|
- fieldList.add("Drawing Number");
|
|
|
- fieldList.add("Part Number");
|
|
|
- fieldList.add("Unit");
|
|
|
- fieldList.add("Quantity");
|
|
|
- fieldList.add("MD");
|
|
|
- fieldList.add("SDoC");
|
|
|
- fieldList.add("Origin of Product");
|
|
|
- fieldList.add("Export Control No");
|
|
|
- fieldList.add("Remarks");
|
|
|
|
|
|
- List<String> ignoreList = new ArrayList<>();
|
|
|
- ignoreList.add("Remarks To Vendor");
|
|
|
- ignoreList.add("Item Details");
|
|
|
- ignoreList.add("Item Description");
|
|
|
|
|
|
|
|
|
- String[] extra = {"Equipment Name"};
|
|
|
- JSONArray jsonArray = PDFTableReader.getPdfTable(pdfTable, fieldList, ignoreList, extra, "Item Description", "noEndKey", "left", true);
|
|
|
+ String[] extra = {"Equipment Name", "Control No"};
|
|
|
+ JSONArray jsonArray = PDFTableReader.getPdfTable(pdfTable, fieldList, ignoreList, extra, "Item Description", "Remarks To Vendor :", "left", true);
|
|
|
//JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "Remarks To Vendor", -1, "left", "Remarks To Vendor", "Item Description", extra, 4, 0);
|
|
|
for(Object node : jsonArray) {
|
|
|
JSONObject jsonObject = JSONObject.parseObject(String.valueOf(node));
|
|
@@ -892,22 +944,30 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
ignoreList.add("Packaging Cost");
|
|
|
ignoreList.add("Grand Total");
|
|
|
ignoreList.add("(%)");
|
|
|
+ ignoreList.add("1 of");
|
|
|
+ ignoreList.add("2 of");
|
|
|
+ ignoreList.add("3 of");
|
|
|
+ ignoreList.add("4 of");
|
|
|
+ ignoreList.add("5 of");
|
|
|
+ ignoreList.add("6 of");
|
|
|
+ ignoreList.add("7 of");
|
|
|
+ ignoreList.add("8 of");
|
|
|
|
|
|
PdfTable pdfTable = PDFTableReader.handlePdf(file, "Buyer Details:");
|
|
|
- saleInterfaceSync.setReferenceNumber(PDFTableReader.getLineByTitle(pdfTable, "RFQ Ref:", "Vessel:", null));
|
|
|
- saleInterfaceSync.setSubject(PDFTableReader.getLineByTitle(pdfTable, "Subject:", "Vessel Arrival Est.:", "Requested Delivery:"));
|
|
|
- String vessel = PDFTableReader.getLineByTitle(pdfTable, "Vessel:", null, null);
|
|
|
+ saleInterfaceSync.setReferenceNumber(PDFTableReader.getLineByTitle(pdfTable, "RFQ Ref:", null, null, ignoreList));
|
|
|
+ saleInterfaceSync.setSubject(PDFTableReader.getLineByTitle(pdfTable, "Subject:", "Vessel Arrival Est.:", "Requested Delivery:", ignoreList));
|
|
|
+ String vessel = PDFTableReader.getLineByTitle(pdfTable, "Vessel:", null, null, ignoreList);
|
|
|
String[] split = vessel.split("\\(");
|
|
|
saleInterfaceSync.setVesselCode(split[0]);
|
|
|
saleInterfaceSync.setVesselImo(split[1].replaceAll("\\)", ""));
|
|
|
- saleInterfaceSync.setCurrencyCode(PDFTableReader.getLineByTitle(pdfTable, "Currency:", null, null));
|
|
|
- List<PdfCell> rowsByTitle = PDFTableReader.getRowsByTitle(pdfTable, "Buyer Details:", "Supplier Details:", "Vessel:");
|
|
|
+ saleInterfaceSync.setCurrencyCode(PDFTableReader.getLineByTitle(pdfTable, "Currency:", null, null, ignoreList));
|
|
|
+ List<PdfCell> rowsByTitle = PDFTableReader.getRowsByTitle(pdfTable, "Buyer Details:", "Supplier Details:", "Vessel:", ignoreList);
|
|
|
saleInterfaceSync.setBuyerName(rowsByTitle.get(1).getText());
|
|
|
saleInterfaceSync.setBuyerContactName(rowsByTitle.get(rowsByTitle.size() - 4).getText());
|
|
|
saleInterfaceSync.setBuyerTelephone(rowsByTitle.get(rowsByTitle.size() - 3).getText());
|
|
|
saleInterfaceSync.setBuyerEmail(rowsByTitle.get(rowsByTitle.size() - 2).getText());
|
|
|
|
|
|
- List<PdfCell> time = PDFTableReader.getRowsByTitle(pdfTable, "Request For Quote", null, "Currency:");
|
|
|
+ List<PdfCell> time = PDFTableReader.getRowsByTitle(pdfTable, "Request For Quote", null, "Currency:", ignoreList);
|
|
|
try {
|
|
|
String[] date = time.get(2).getText().split(",")[0].split(" ");
|
|
|
String day = date[2] + "-" + MonthUtil.getMonthValue(date[1]) + "-" + date[0];
|
|
@@ -938,6 +998,36 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
String id = UUIDGenerator.generate();
|
|
|
PdfTable pdfTable = PDFTableReader.handlePdf(file, "RFQ Details");
|
|
|
+ List<String> fieldList = new ArrayList<>();
|
|
|
+ fieldList.add("No.");
|
|
|
+ fieldList.add("Description");
|
|
|
+ fieldList.add("Item Code/Part");
|
|
|
+ fieldList.add("Ref. No.");
|
|
|
+ fieldList.add("Drawing");
|
|
|
+ fieldList.add("Quantity");
|
|
|
+ fieldList.add("UoM");
|
|
|
+
|
|
|
+ List<String> ignoreList = new ArrayList<>();
|
|
|
+ ignoreList.add("Page");
|
|
|
+ ignoreList.add("Request For Quotation");
|
|
|
+ ignoreList.add("LIMITED as Managers");
|
|
|
+ ignoreList.add("behalf of Owners Abundance");
|
|
|
+ ignoreList.add("Shipsure Version Number");
|
|
|
+ ignoreList.add("Plate");
|
|
|
+ ignoreList.add("Order Line Notes");
|
|
|
+ ignoreList.add("Assembly Particulars:");
|
|
|
+ ignoreList.add("Assembly:");
|
|
|
+ ignoreList.add("Packaging Cost");
|
|
|
+ ignoreList.add("Equipment Particulars:");
|
|
|
+ ignoreList.add("Item Code/Part");
|
|
|
+ ignoreList.add("1 of");
|
|
|
+ ignoreList.add("2 of");
|
|
|
+ ignoreList.add("3 of");
|
|
|
+ ignoreList.add("4 of");
|
|
|
+ ignoreList.add("5 of");
|
|
|
+ ignoreList.add("6 of");
|
|
|
+ ignoreList.add("7 of");
|
|
|
+ ignoreList.add("8 of");
|
|
|
saleInterfaceSync.setId(id);
|
|
|
saleInterfaceSync.setCreateBy(sysUser.getUsername());
|
|
|
saleInterfaceSync.setBuyerName(PDFTableReader.getNextLineFields(file, "Company Name:").get(0));
|
|
@@ -947,10 +1037,12 @@ 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"));
|
|
|
+ saleInterfaceSync.setSubject(PDFTableReader.getLineByTitle(pdfTable, "Description:", null, "Buyer Message", ignoreList));
|
|
|
try {
|
|
|
- String[] removeLine = {"Buyer Message"};
|
|
|
- List<PdfCell> buyerMessage = PDFTableReader.getRowsByTitle(pdfTable, "Buyer Message", null, "Equipment:");
|
|
|
+ List<String> removeLine = new ArrayList<>();
|
|
|
+ removeLine.add("Buyer Message");
|
|
|
+ removeLine.add("items");
|
|
|
+ List<PdfCell> buyerMessage = PDFTableReader.getRowsByTitle(pdfTable, "Buyer Message", null, "Equipment:", removeLine);
|
|
|
if(buyerMessage != null && buyerMessage.size() > 0) {
|
|
|
buyerMessage.remove(buyerMessage.size() - 1);
|
|
|
String comment = "";
|
|
@@ -968,28 +1060,7 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
}
|
|
|
|
|
|
|
|
|
- List<String> fieldList = new ArrayList<>();
|
|
|
- fieldList.add("No.");
|
|
|
- fieldList.add("Description");
|
|
|
- fieldList.add("Item Code/Part");
|
|
|
- fieldList.add("Ref. No.");
|
|
|
- fieldList.add("Drawing");
|
|
|
- fieldList.add("Quantity");
|
|
|
- fieldList.add("UoM");
|
|
|
|
|
|
- List<String> ignoreList = new ArrayList<>();
|
|
|
- ignoreList.add("Page");
|
|
|
- ignoreList.add("Request For Quotation");
|
|
|
- ignoreList.add("LIMITED as Managers");
|
|
|
- ignoreList.add("behalf of Owners Abundance");
|
|
|
- ignoreList.add("Shipsure Version Number");
|
|
|
- ignoreList.add("Plate");
|
|
|
- ignoreList.add("Order Line Notes");
|
|
|
- ignoreList.add("Assembly Particulars:");
|
|
|
- ignoreList.add("Assembly:");
|
|
|
- ignoreList.add("Packaging Cost");
|
|
|
- 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);
|
|
@@ -1054,6 +1125,14 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
ignoreList.add("For Component");
|
|
|
ignoreList.add("Designer");
|
|
|
ignoreList.add("Maker");
|
|
|
+ ignoreList.add("1 of");
|
|
|
+ ignoreList.add("2 of");
|
|
|
+ ignoreList.add("3 of");
|
|
|
+ ignoreList.add("4 of");
|
|
|
+ ignoreList.add("5 of");
|
|
|
+ ignoreList.add("6 of");
|
|
|
+ ignoreList.add("7 of");
|
|
|
+ ignoreList.add("8 of");
|
|
|
|
|
|
saleInterfaceSync.setPriority(PDFTableReader.getFields(file, "Priority", "", true).get(0));
|
|
|
saleInterfaceSync.setBuyerName(split[1]);
|
|
@@ -1073,7 +1152,7 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
saleInterfaceSync.setBuyerEmail(matcher.group(1));
|
|
|
}
|
|
|
PdfTable pdfTable = PDFTableReader.handlePdf(file, "Request For Quote No");
|
|
|
- saleInterfaceSync.setSubject(PDFTableReader.getLineByTitle(pdfTable, "Order Title", "Priority", "Spare Part Type"));
|
|
|
+ saleInterfaceSync.setSubject(PDFTableReader.getLineByTitle(pdfTable, "Order Title", "Priority", "Spare Part Type", ignoreList));
|
|
|
String s = PDFTableReader.getFields(file, "Tel.", "", true).get(0);
|
|
|
saleInterfaceSync.setBuyerTelephone(s.split("Role")[0]);
|
|
|
saleInterfaceSync.setReferenceNumber(PDFTableReader.getFields(file, "Request For Quote No.", "", true).get(0));
|
|
@@ -1135,23 +1214,31 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
ignoreList.add("Packaging Cost");
|
|
|
ignoreList.add("Grand Total");
|
|
|
ignoreList.add("Sent from");
|
|
|
+ ignoreList.add("1 of");
|
|
|
+ ignoreList.add("2 of");
|
|
|
+ ignoreList.add("3 of");
|
|
|
+ ignoreList.add("4 of");
|
|
|
+ ignoreList.add("5 of");
|
|
|
+ ignoreList.add("6 of");
|
|
|
+ ignoreList.add("7 of");
|
|
|
+ ignoreList.add("8 of");
|
|
|
|
|
|
PdfTable pdfTable = PDFTableReader.handlePdf(file, "Buyer Details:");
|
|
|
- saleInterfaceSync.setReferenceNumber(PDFTableReader.getLineByTitle(pdfTable, "RFQ Ref:", "Vessel:", null));
|
|
|
- saleInterfaceSync.setSubject(PDFTableReader.getLineByTitle(pdfTable, "Subject:", "Vessel Arrival Est.:", "Requested Delivery:"));
|
|
|
- String vessel = PDFTableReader.getLineByTitle(pdfTable, "Vessel:", null, null);
|
|
|
+ saleInterfaceSync.setReferenceNumber(PDFTableReader.getLineByTitle(pdfTable, "RFQ Ref:", "Vessel:", null, ignoreList));
|
|
|
+ saleInterfaceSync.setSubject(PDFTableReader.getLineByTitle(pdfTable, "Subject:", "Vessel Arrival Est.:", "Requested Delivery:", ignoreList));
|
|
|
+ String vessel = PDFTableReader.getLineByTitle(pdfTable, "Vessel:", null, null, ignoreList);
|
|
|
String[] split = vessel.split("\\(");
|
|
|
saleInterfaceSync.setVesselCode(split[0]);
|
|
|
saleInterfaceSync.setVesselImo(split[1].replaceAll("\\)", ""));
|
|
|
- saleInterfaceSync.setCurrencyCode(PDFTableReader.getLineByTitle(pdfTable, "Currency:", null, null));
|
|
|
- List<PdfCell> rowsByTitle = PDFTableReader.getRowsByTitle(pdfTable, "Buyer Details:", "Supplier Details:", "Vessel:");
|
|
|
+ saleInterfaceSync.setCurrencyCode(PDFTableReader.getLineByTitle(pdfTable, "Currency:", null, null, ignoreList));
|
|
|
+ List<PdfCell> rowsByTitle = PDFTableReader.getRowsByTitle(pdfTable, "Buyer Details:", "Supplier Details:", "Vessel:", ignoreList);
|
|
|
saleInterfaceSync.setBuyerName(rowsByTitle.get(1).getText());
|
|
|
saleInterfaceSync.setBuyerContactName(rowsByTitle.get(rowsByTitle.size() - 4).getText());
|
|
|
saleInterfaceSync.setBuyerTelephone(rowsByTitle.get(rowsByTitle.size() - 3).getText());
|
|
|
saleInterfaceSync.setBuyerEmail(rowsByTitle.get(rowsByTitle.size() - 2).getText());
|
|
|
- saleInterfaceSync.setInquiryNotes(PDFTableReader.getLineByTitle(pdfTable, "Equipment Section Name:", null, null));
|
|
|
+ saleInterfaceSync.setInquiryNotes(PDFTableReader.getLineByTitle(pdfTable, "Equipment Section Name:", null, null, ignoreList));
|
|
|
|
|
|
- List<PdfCell> time = PDFTableReader.getRowsByTitle(pdfTable, "Request For Quote", null, "Currency:");
|
|
|
+ List<PdfCell> time = PDFTableReader.getRowsByTitle(pdfTable, "Request For Quote", null, "Currency:", ignoreList);
|
|
|
try {
|
|
|
String[] date = time.get(2).getText().split(",")[0].split(" ");
|
|
|
String day = date[2] + "-" + MonthUtil.getMonthValue(date[1]) + "-" + date[0];
|
|
@@ -1178,76 +1265,117 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
}
|
|
|
|
|
|
public void parseLemissoler(MultipartFile file) throws Exception {
|
|
|
- SaleInterfaceSync saleInterfaceSync = new SaleInterfaceSync();
|
|
|
- LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
- String id = UUIDGenerator.generate();
|
|
|
- saleInterfaceSync.setId(id);
|
|
|
- saleInterfaceSync.setCreateBy(sysUser.getUsername());
|
|
|
- InputStream inputStream = file.getInputStream();
|
|
|
- Workbook workbook = new HSSFWorkbook(inputStream);
|
|
|
- Sheet sheet = workbook.getSheetAt(0);
|
|
|
- List<String> fields = new ArrayList<>();
|
|
|
- int headerNum = 0;
|
|
|
- for(int index = 0; index <= sheet.getLastRowNum(); index ++) {
|
|
|
- Row row = sheet.getRow(index);
|
|
|
- for(int cellIndex = 0; cellIndex <= sheet.getLastRowNum(); cellIndex ++) {
|
|
|
- Cell cell = row.getCell(cellIndex);
|
|
|
- if(cell != null) {
|
|
|
- cell.setCellType(CellType.STRING);
|
|
|
- if("Ship Name".equals(cell.getStringCellValue())) {
|
|
|
- if(row.getCell(cellIndex + 1) != null) {
|
|
|
- saleInterfaceSync.setVesselImo(row.getCell(cellIndex + 1).getStringCellValue());
|
|
|
+ try {
|
|
|
+ SaleInterfaceSync saleInterfaceSync = new SaleInterfaceSync();
|
|
|
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+ String id = UUIDGenerator.generate();
|
|
|
+ saleInterfaceSync.setId(id);
|
|
|
+ saleInterfaceSync.setCreateBy(sysUser.getUsername());
|
|
|
+ InputStream inputStream = file.getInputStream();
|
|
|
+ Workbook workbook = new HSSFWorkbook(inputStream);
|
|
|
+ Sheet sheet = workbook.getSheetAt(0);
|
|
|
+ List<String> fields = new ArrayList<>();
|
|
|
+ int headerNum = 0;
|
|
|
+ for(int index = 0; index <= sheet.getLastRowNum(); index ++) {
|
|
|
+ Row row = sheet.getRow(index);
|
|
|
+ for(int cellIndex = 0; cellIndex <= sheet.getLastRowNum(); cellIndex ++) {
|
|
|
+ Cell cell = row.getCell(cellIndex);
|
|
|
+ if(cell != null) {
|
|
|
+ cell.setCellType(CellType.STRING);
|
|
|
+ if(Strings.isNotBlank(cell.getStringCellValue())) {
|
|
|
+ if(cell.getStringCellValue().contains("QUOTATION REQUEST REF.:")) {
|
|
|
+ saleInterfaceSync.setReferenceNumber(cell.getStringCellValue().replaceAll("QUOTATION REQUEST REF.:", ""));
|
|
|
+ }
|
|
|
+ if(cell.getStringCellValue().contains("Ship Name")) {
|
|
|
+ if(row.getCell(cellIndex + 2) != null && Strings.isNotBlank(row.getCell(cellIndex + 2).getStringCellValue())) {
|
|
|
+ saleInterfaceSync.setVesselCode(row.getCell(cellIndex + 2).getStringCellValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if("Purchaser".equals(cell.getStringCellValue())) {
|
|
|
+ if(row.getCell(cellIndex + 1) != null && Strings.isNotBlank(row.getCell(cellIndex + 1).getStringCellValue())) {
|
|
|
+ saleInterfaceSync.setBuyerContactName(row.getCell(cellIndex + 1).getStringCellValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if("E-mail Address".equals(cell.getStringCellValue())) {
|
|
|
+ if(row.getCell(cellIndex + 1) != null && Strings.isNotBlank(row.getCell(cellIndex + 1).getStringCellValue())) {
|
|
|
+ saleInterfaceSync.setBuyerEmail(row.getCell(cellIndex + 1).getStringCellValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if("Dir. Phone".equals(cell.getStringCellValue())) {
|
|
|
+ if(row.getCell(cellIndex + 1) != null && Strings.isNotBlank(row.getCell(cellIndex + 1).getStringCellValue())) {
|
|
|
+ saleInterfaceSync.setBuyerTelephone(row.getCell(cellIndex + 1).getStringCellValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if("HazMat Division".equals(cell.getStringCellValue())) {
|
|
|
+ headerNum = index;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- if("HazMat Division".equals(cell.getStringCellValue())) {
|
|
|
- headerNum = index;
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- Row headerRow = sheet.getRow(headerNum);
|
|
|
- for(int i = 0; i < sheet.getLastRowNum() + 1; i ++) {
|
|
|
- Cell cell = headerRow.getCell(i);
|
|
|
- if(cell != null) {
|
|
|
- cell.setCellType(CellType.STRING);
|
|
|
- fields.add(i, cell.getStringCellValue());
|
|
|
- }
|
|
|
- }
|
|
|
- JSONArray jsonArray = new JSONArray();
|
|
|
-
|
|
|
- for(int index = headerNum + 1; index <= sheet.getLastRowNum(); index ++) {
|
|
|
- Row row = sheet.getRow(index);
|
|
|
- JSONObject jsonObject = new JSONObject();
|
|
|
- for(int cellIndex = 0; cellIndex <= fields.size(); cellIndex ++) {
|
|
|
- Cell cell = row.getCell(cellIndex);
|
|
|
+ Row headerRow = sheet.getRow(headerNum);
|
|
|
+ for(int i = 0; i < sheet.getLastRowNum() + 1; i ++) {
|
|
|
+ Cell cell = headerRow.getCell(i);
|
|
|
if(cell != null) {
|
|
|
cell.setCellType(CellType.STRING);
|
|
|
- jsonObject.put(fields.get(cellIndex), cell.getStringCellValue());
|
|
|
+ fields.add(i, cell.getStringCellValue());
|
|
|
}
|
|
|
}
|
|
|
- if(Strings.isBlank(jsonObject.getString("Line No"))) {
|
|
|
- break;
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
+
|
|
|
+ for(int index = headerNum + 1; index <= sheet.getLastRowNum(); index ++) {
|
|
|
+ Row row = sheet.getRow(index);
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ for(int cellIndex = 0; cellIndex <= fields.size(); cellIndex ++) {
|
|
|
+ Cell cell = row.getCell(cellIndex);
|
|
|
+ if(cell != null) {
|
|
|
+ cell.setCellType(CellType.STRING);
|
|
|
+ jsonObject.put(fields.get(cellIndex), cell.getStringCellValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(Strings.isBlank(jsonObject.getString("Line No"))) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ jsonArray.add(jsonObject);
|
|
|
}
|
|
|
|
|
|
- jsonArray.add(jsonObject);
|
|
|
- }
|
|
|
+ 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("Orig Qty"));
|
|
|
+ saleInterfaceItem.setComment(jsonObject.getString("Drawing #"));
|
|
|
+ String unit = jsonObject.getString("Unit");
|
|
|
+ if(Strings.isNotBlank(unit)) {
|
|
|
+ unit = unit.toUpperCase();
|
|
|
+ }
|
|
|
+ saleInterfaceItem.setUnitOfMeasure(unit);
|
|
|
+ saleInterfaceItem.setSupplierPartNumber(jsonObject.getString("Impa code/\n" +
|
|
|
+ "Mfgr P/N"));
|
|
|
+ try {
|
|
|
+ saleInterfaceItem.setNumber(Integer.parseInt(jsonObject.getString("Orig Qty")));
|
|
|
+ }catch (Exception e) {
|
|
|
+ log.error("获取数量失败", e);
|
|
|
+ saleInterfaceItem.setNumber(-1);
|
|
|
+ }
|
|
|
+ saleInterfaceItem.setHeadId(id);
|
|
|
|
|
|
- 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("Orig Qty"));
|
|
|
- saleInterfaceItem.setComment(jsonObject.getString("Manufacturer"));
|
|
|
- saleInterfaceItem.setHeadId(id);
|
|
|
- saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
|
+
|
|
|
+ saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ saleInterfaceSyncMapper.insert(saleInterfaceSync);
|
|
|
+ inputStream.close();
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("导入出错", e);
|
|
|
}
|
|
|
|
|
|
|
|
|
- saleInterfaceSyncMapper.insert(saleInterfaceSync);
|
|
|
- inputStream.close();
|
|
|
}
|
|
|
|
|
|
public void parseTechnava(MultipartFile file) throws Exception{
|
|
@@ -1269,9 +1397,9 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
|
|
|
PdfTable pdfTable = PDFTableReader.handlePdf(file, "Machinery type:");
|
|
|
|
|
|
- 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);
|
|
|
+ saleInterfaceSync.setVesselImo(PDFTableReader.getLineByTitle(pdfTable, "IMO No:", null, null, ignoreList));
|
|
|
+ saleInterfaceSync.setVesselCode(PDFTableReader.getLineByTitle(pdfTable, "Vessel", null, null, ignoreList).split(":")[1]);
|
|
|
+ String date = PDFTableReader.getLineByTitle(pdfTable, "Date…", null, null, ignoreList);
|
|
|
try {
|
|
|
String[] split = date.split(":")[1].split(".");
|
|
|
String day = split[2] + "-" + split[1] + "-" + split[0];
|