|
@@ -1,10 +1,12 @@
|
|
|
package org.jeecg.modules.saleCode.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import com.google.gson.JsonObject;
|
|
|
import io.micrometer.core.instrument.util.StringUtils;
|
|
|
import io.swagger.annotations.ApiModelProperty;
|
|
|
import org.apache.shiro.SecurityUtils;
|
|
@@ -507,52 +509,94 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
@Override
|
|
|
public void parsePdfByType(String type, String txt, MultipartFile file) throws Exception{
|
|
|
switch(type) {
|
|
|
- case "0" :
|
|
|
- parseCSL(txt);
|
|
|
case "1" :
|
|
|
- parseNorthern(txt, file);
|
|
|
+ parseCSL(file);
|
|
|
+ break;
|
|
|
case "2" :
|
|
|
- parseNorthern2(txt, file);
|
|
|
+ parseNorthern(file);
|
|
|
+ break;
|
|
|
case "3" :
|
|
|
- parseBSM(txt, file);
|
|
|
+ parseNorthern2(file);
|
|
|
+ break;
|
|
|
+ case "4" :
|
|
|
+ parseBSM(file);
|
|
|
+ break;
|
|
|
+ case "5" :
|
|
|
+ parseWallem(file);
|
|
|
+ break;
|
|
|
+ case "6" :
|
|
|
+ parseVShips(file);
|
|
|
+ break;
|
|
|
case "7" :
|
|
|
- parseWarine(txt, file);
|
|
|
+ parseWarine(file);
|
|
|
+ break;
|
|
|
default:
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void parseCSL(String txt) {
|
|
|
- String[] nodes = txt.split("\n");
|
|
|
+ public void parseCSL(MultipartFile file) {
|
|
|
SaleInterfaceSync saleInterfaceSync = new SaleInterfaceSync();
|
|
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+ String id = UUIDGenerator.generate();
|
|
|
+ saleInterfaceSync.setId(id);
|
|
|
saleInterfaceSync.setCreateBy(sysUser.getUsername());
|
|
|
- for(int index = 0; index < nodes.length; index ++) {
|
|
|
- if(nodes[index].contains("Request For Quote No.")) {
|
|
|
- saleInterfaceSync.setReferenceNumber(nodes[index].replace("Request For Quote No. ", ""));
|
|
|
- }
|
|
|
- if(nodes[index].contains("Spare Part Type")) {
|
|
|
- saleInterfaceSync.setPriority(nodes[index - 1]);
|
|
|
- }
|
|
|
- if(nodes[index].contains("Account Code")) {
|
|
|
- saleInterfaceSync.setBuyerName(nodes[index].replace("Account Code ", ""));
|
|
|
- }
|
|
|
- if(nodes[index].contains("Account Code")) {
|
|
|
- saleInterfaceSync.setBuyerName(nodes[index].replace("Account Code ", ""));
|
|
|
+ List<String> fieldList = new ArrayList<>();
|
|
|
+ fieldList.add("Item");
|
|
|
+ fieldList.add("Qty");
|
|
|
+ fieldList.add("UOM");
|
|
|
+ fieldList.add("Description");
|
|
|
+ fieldList.add("Makers Reference");
|
|
|
+ fieldList.add("Drawing Position");
|
|
|
+ fieldList.add("Discount");
|
|
|
+ fieldList.add("Unit Price");
|
|
|
+ fieldList.add("Total Price");
|
|
|
+
|
|
|
+ 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 / Sheet No");
|
|
|
+ ignoreList.add("Order Line Notes");
|
|
|
+ ignoreList.add("Sub Total");
|
|
|
+ ignoreList.add("Freight Cost");
|
|
|
+ ignoreList.add("Packaging Cost");
|
|
|
+ ignoreList.add("Grand Total");
|
|
|
+ ignoreList.add("(%)");
|
|
|
+
|
|
|
+ saleInterfaceSync.setPriority(PDFTableReader.getFields(file, "Priority", "", true).get(0).trim());
|
|
|
+ saleInterfaceSync.setBuyerName(PDFTableReader.getFields(file, "Company Name:", "", true).get(0).trim());
|
|
|
+ saleInterfaceSync.setBuyerContactName(PDFTableReader.getFields(file, "Our Contact", "", true).get(0).trim());
|
|
|
+ saleInterfaceSync.setBuyerTelephone(PDFTableReader.getFields(file, "Tel.", "", true).get(0).trim());
|
|
|
+ saleInterfaceSync.setReferenceNumber(PDFTableReader.getFields(file, "Request For Quote No.", "", true).get(0).trim());
|
|
|
+ saleInterfaceSync.setVesselImo(PDFTableReader.getNextLineFields(file, "IMO Number").get(0).trim());
|
|
|
+ saleInterfaceSync.setVesselCode(PDFTableReader.getFields(file, "Vessel Name", "", true).get(0).trim());
|
|
|
+
|
|
|
+ JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "Sub Total", -1, "mediate", "Request For Quote No", "Makers Reference");
|
|
|
+ for(Object node : jsonArray) {
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(String.valueOf(node));
|
|
|
+ if(jsonObject.size() == 8) {
|
|
|
+ continue;
|
|
|
}
|
|
|
+ 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.setHeadId(id);
|
|
|
+ saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
|
}
|
|
|
+ saleInterfaceSyncMapper.insert(saleInterfaceSync);
|
|
|
}
|
|
|
|
|
|
- public void parseNorthern(String txt, MultipartFile file) throws Exception{
|
|
|
- String[] nodes = txt.split("\n");
|
|
|
+ public void parseNorthern(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());
|
|
|
- List<String> buyerNodes = PDFTableReader.getMultipleLineFields(file, "Supplier", "RFQ Details", true);
|
|
|
- List<String> RFQNodes = PDFTableReader.getMultipleLineFields(file, "RFQ Details", "Buyer Message", true);
|
|
|
- List<String> detailNodes = PDFTableReader.getMultipleLineFields(file, "UoM", "", true);
|
|
|
saleInterfaceSync.setBuyerName(PDFTableReader.getNextLineFields(file, "Company Name:").get(0));
|
|
|
saleInterfaceSync.setSupplierName(PDFTableReader.getNextLineFields(file, "Name:").get(1));
|
|
|
saleInterfaceSync.setBuyerContactName(PDFTableReader.getNextLineFields(file, "Contact:").get(0));
|
|
@@ -560,68 +604,99 @@ 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.setCurrencyCode(PDFTableReader.getNextLineFields(file, "Requested Currency:").get(0));
|
|
|
-
|
|
|
- detailNodes = detailNodes.stream().filter(item -> !item.contains("Page")).collect(Collectors.toList());
|
|
|
- int detailIndex = 0;
|
|
|
- if(detailNodes != null) {
|
|
|
- detailIndex = detailNodes.indexOf("1");
|
|
|
- while(detailIndex + 7 <= detailNodes.size()) {
|
|
|
- SaleInterfaceItem saleInterfaceItem = new SaleInterfaceItem();
|
|
|
- saleInterfaceItem.setDescription(detailNodes.get(detailIndex + 1));
|
|
|
- saleInterfaceItem.setQuantity(detailNodes.get(detailIndex + 5));
|
|
|
- saleInterfaceItem.setSyncItemCode(detailNodes.get(detailIndex + 2));
|
|
|
- saleInterfaceItem.setUnitOfMeasure(detailNodes.get(detailIndex + 6));
|
|
|
- saleInterfaceItem.setHeadId(id);
|
|
|
- saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
|
- detailIndex += 7;
|
|
|
|
|
|
- }
|
|
|
+ List<String> fieldList = new ArrayList<>();
|
|
|
+ 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 / Sheet No");
|
|
|
+ ignoreList.add("Order Line Notes");
|
|
|
+ ignoreList.add("Sub Total");
|
|
|
+ ignoreList.add("Freight Cost");
|
|
|
+ ignoreList.add("Packaging Cost");
|
|
|
+ ignoreList.add("Grand Total");
|
|
|
+ ignoreList.add("(%)");
|
|
|
+
|
|
|
+ JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "", -1, "left", "Request For Quote No", "Item Code/Part");
|
|
|
+ for(Object node : jsonArray) {
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(String.valueOf(node));
|
|
|
+ if(jsonObject.size() == 6) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ 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.setHeadId(id);
|
|
|
+ saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
|
}
|
|
|
saleInterfaceSyncMapper.insert(saleInterfaceSync);
|
|
|
|
|
|
}
|
|
|
|
|
|
- public void parseNorthern2(String txt, MultipartFile file) {
|
|
|
- String[] nodes = txt.split("\n");
|
|
|
+ public void parseNorthern2(MultipartFile file) {
|
|
|
SaleInterfaceSync saleInterfaceSync = new SaleInterfaceSync();
|
|
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
String id = UUIDGenerator.generate();
|
|
|
saleInterfaceSync.setId(id);
|
|
|
saleInterfaceSync.setCreateBy(sysUser.getUsername());
|
|
|
- List<String> detailNodes = PDFTableReader.getMultipleLineFields(file, "Enquiry", "Vendor Details", true);
|
|
|
- saleInterfaceSync.setBuyerName(PDFTableReader.getNextLineFields(file, "Company Name:").get(0));
|
|
|
- saleInterfaceSync.setSupplierName(PDFTableReader.getNextLineFields(file, "Name:").get(1));
|
|
|
- saleInterfaceSync.setBuyerContactName(PDFTableReader.getNextLineFields(file, "Contact:").get(0));
|
|
|
- saleInterfaceSync.setBuyerTelephone(PDFTableReader.getNextLineFields(file, "Phone:").get(0));
|
|
|
- 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.setCurrencyCode(PDFTableReader.getNextLineFields(file, "Requested Currency:").get(0));
|
|
|
-
|
|
|
- int detailIndex = 0;
|
|
|
- if(detailNodes != null) {
|
|
|
- detailIndex = detailNodes.indexOf("1");
|
|
|
- while(detailIndex < detailNodes.size()) {
|
|
|
- SaleInterfaceItem saleInterfaceItem = new SaleInterfaceItem();
|
|
|
- saleInterfaceItem.setDescription(detailNodes.get(detailIndex + 1));
|
|
|
- saleInterfaceItem.setQuantity(detailNodes.get(detailIndex + 5));
|
|
|
- saleInterfaceItem.setSyncItemCode(detailNodes.get(detailIndex + 2));
|
|
|
- saleInterfaceItem.setUnitOfMeasure(detailNodes.get(detailIndex + 6));
|
|
|
- saleInterfaceItem.setHeadId(id);
|
|
|
- // saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
|
- detailIndex += 7;
|
|
|
+ //saleInterfaceSync.setBuyerName(PDFTableReader.getNextLineFields(file, "Company Name:").get(0));
|
|
|
+ //saleInterfaceSync.setSupplierName(PDFTableReader.getNextLineFields(file, "Name:").get(1));
|
|
|
+ saleInterfaceSync.setBuyerContactName(PDFTableReader.getFields(file, "Contact:", "", true).get(0));
|
|
|
+ saleInterfaceSync.setBuyerTelephone(PDFTableReader.getFields(file, "Telephone:", "", true).get(0));
|
|
|
+ saleInterfaceSync.setReferenceNumber(PDFTableReader.getFields(file, "Reference:", "", true).get(0).trim());
|
|
|
+ //saleInterfaceSync.setVesselImo(PDFTableReader.getNextLineFields(file, "IMO:").get(0));
|
|
|
+ saleInterfaceSync.setVesselCode(PDFTableReader.getFields(file, "Ship Name:", "", true).get(0));
|
|
|
|
|
|
- }
|
|
|
+ List<String> fieldList = new ArrayList<>();
|
|
|
+ fieldList.add("Qty");
|
|
|
+ fieldList.add("UoM");
|
|
|
+ fieldList.add("Part No.");
|
|
|
+ fieldList.add("Description");
|
|
|
|
|
|
+ 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 / Sheet No");
|
|
|
+ ignoreList.add("Order Line Notes");
|
|
|
+ ignoreList.add("Sub Total");
|
|
|
+ ignoreList.add("Freight Cost");
|
|
|
+ ignoreList.add("Packaging Cost");
|
|
|
+ ignoreList.add("Grand Total");
|
|
|
+ ignoreList.add("(%)");
|
|
|
+
|
|
|
+ JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "Contact:", -1, "left", "Contact:", "Part No.");
|
|
|
+ for(Object node : jsonArray) {
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(String.valueOf(node));
|
|
|
+ if(jsonObject.size() == 4) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ 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.setHeadId(id);
|
|
|
+ saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
|
}
|
|
|
- // saleInterfaceSyncMapper.insert(saleInterfaceSync);
|
|
|
-
|
|
|
+ saleInterfaceSyncMapper.insert(saleInterfaceSync);
|
|
|
}
|
|
|
|
|
|
- public void parseBSM(String txt, MultipartFile file) {
|
|
|
- String[] nodes = txt.split("\n");
|
|
|
+ public void parseBSM(MultipartFile file) {
|
|
|
SaleInterfaceSync saleInterfaceSync = new SaleInterfaceSync();
|
|
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
String id = UUIDGenerator.generate();
|
|
@@ -675,15 +750,68 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
|
|
|
}
|
|
|
|
|
|
- public void parseWarine(String txt, MultipartFile file) {
|
|
|
- String[] nodes = txt.split("\n");
|
|
|
+ public void parseWallem(MultipartFile file) {
|
|
|
+ SaleInterfaceSync saleInterfaceSync = new SaleInterfaceSync();
|
|
|
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+ String id = UUIDGenerator.generate();
|
|
|
+ saleInterfaceSync.setId(id);
|
|
|
+ saleInterfaceSync.setCreateBy(sysUser.getUsername());
|
|
|
+ List<String> fieldList = new ArrayList<>();
|
|
|
+ fieldList.add("Type");
|
|
|
+ fieldList.add("Part Number");
|
|
|
+ fieldList.add("Supplier Part");
|
|
|
+ fieldList.add("Item Description");
|
|
|
+ fieldList.add("Quality");
|
|
|
+ fieldList.add("Custom");
|
|
|
+ fieldList.add("UoM");
|
|
|
+ fieldList.add("Qty");
|
|
|
+
|
|
|
+ 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 / Sheet No");
|
|
|
+ ignoreList.add("Order Line Notes");
|
|
|
+ ignoreList.add("Sub Total");
|
|
|
+ ignoreList.add("Freight Cost");
|
|
|
+ ignoreList.add("Packaging Cost");
|
|
|
+ ignoreList.add("Grand Total");
|
|
|
+ ignoreList.add("(%)");
|
|
|
+
|
|
|
+ //saleInterfaceSync.setPriority(PDFTableReader.getFields(file, "Priority", "", true).get(0).trim());
|
|
|
+ saleInterfaceSync.setBuyerName(PDFTableReader.getNextLineFields(file, "Buyer Details:").get(0).trim());
|
|
|
+ //saleInterfaceSync.setBuyerContactName(PDFTableReader.getFields(file, "Our Contact", "", true).get(0).trim());
|
|
|
+ //saleInterfaceSync.setBuyerTelephone(PDFTableReader.getFields(file, "Tel.", "", true).get(0).trim());
|
|
|
+ saleInterfaceSync.setReferenceNumber(PDFTableReader.getFields(file, "RFQ Ref:", "", true).get(0).trim());
|
|
|
+ saleInterfaceSync.setSupplierName(PDFTableReader.getNextLineFields(file, "Supplier Details:").get(0).trim());
|
|
|
+ //saleInterfaceSync.setVesselImo(PDFTableReader.getNextLineFields(file, "IMO Number").get(0).trim());
|
|
|
+ saleInterfaceSync.setVesselCode(PDFTableReader.getFields(file, "Vessel:", "", true).get(0).trim());
|
|
|
+ saleInterfaceSync.setCurrencyCode(PDFTableReader.getFields(file, "Currency: ", "", true).get(0).trim());
|
|
|
+ JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "ShipServ Buyer Record:", -1, "left", "Buyer Details:", "Supplier Part");
|
|
|
+ for(Object node : jsonArray) {
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(String.valueOf(node));
|
|
|
+ if(jsonObject.size() == 8) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ 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.setHeadId(id);
|
|
|
+ saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
|
+ }
|
|
|
+ saleInterfaceSyncMapper.insert(saleInterfaceSync);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void parseWarine(MultipartFile file) {
|
|
|
SaleInterfaceSync saleInterfaceSync = new SaleInterfaceSync();
|
|
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
String id = UUIDGenerator.generate();
|
|
|
saleInterfaceSync.setId(id);
|
|
|
saleInterfaceSync.setCreateBy(sysUser.getUsername());
|
|
|
- List<String> buyerNodes = PDFTableReader.getMultipleLineFields(file, "Supplier", "RFQ Details", true);
|
|
|
- List<String> RFQNodes = PDFTableReader.getMultipleLineFields(file, "RFQ Details", "Buyer Message", true);
|
|
|
saleInterfaceSync.setBuyerName(PDFTableReader.getNextLineFields(file, "Company Name:").get(0));
|
|
|
saleInterfaceSync.setSupplierName(PDFTableReader.getNextLineFields(file, "Name:").get(1));
|
|
|
saleInterfaceSync.setBuyerContactName(PDFTableReader.getNextLineFields(file, "Contact:").get(0));
|
|
@@ -693,35 +821,103 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
saleInterfaceSync.setVesselCode(PDFTableReader.getNextLineFields(file, "Vessel:").get(0));
|
|
|
|
|
|
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");
|
|
|
- JSONArray table = PDFTableReader.getTable(file, fieldList);
|
|
|
|
|
|
- int detailIndex = 0;
|
|
|
-// if(detailNodes != null) {
|
|
|
-// detailIndex = detailNodes.indexOf("1");
|
|
|
-// while(detailIndex < detailNodes.size()) {
|
|
|
-// SaleInterfaceItem saleInterfaceItem = new SaleInterfaceItem();
|
|
|
-// saleInterfaceItem.setDescription(detailNodes.get(detailIndex + 1));
|
|
|
-// saleInterfaceItem.setQuantity(detailNodes.get(detailIndex + 5));
|
|
|
-// saleInterfaceItem.setSyncItemCode(detailNodes.get(detailIndex + 2));
|
|
|
-// saleInterfaceItem.setUnitOfMeasure(detailNodes.get(detailIndex + 6));
|
|
|
-// saleInterfaceItem.setHeadId(id);
|
|
|
-// //saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
|
-// detailIndex += 7;
|
|
|
-//
|
|
|
-// }
|
|
|
-//
|
|
|
-// }
|
|
|
- //saleInterfaceSyncMapper.insert(saleInterfaceSync);
|
|
|
+ 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 / Sheet No");
|
|
|
+ ignoreList.add("Order Line Notes");
|
|
|
+ ignoreList.add("Sub Total");
|
|
|
+ ignoreList.add("Freight Cost");
|
|
|
+ ignoreList.add("Packaging Cost");
|
|
|
+ ignoreList.add("Grand Total");
|
|
|
+ ignoreList.add("(%)");
|
|
|
+
|
|
|
+ JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "", -1, "left", "Buyer Message", "Item Code/Part");
|
|
|
+ for(Object node : jsonArray) {
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(String.valueOf(node));
|
|
|
+ if(jsonObject.size() == 6) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ 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.setHeadId(id);
|
|
|
+ saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
|
+ }
|
|
|
+ saleInterfaceSyncMapper.insert(saleInterfaceSync);
|
|
|
|
|
|
}
|
|
|
|
|
|
+ public void parseVShips(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());
|
|
|
+ List<String> fieldList = new ArrayList<>();
|
|
|
+ fieldList.add("Item");
|
|
|
+ fieldList.add("Qty");
|
|
|
+ fieldList.add("UOM");
|
|
|
+ fieldList.add("Description");
|
|
|
+ fieldList.add("Makers Reference");
|
|
|
+ fieldList.add("Drawing Position");
|
|
|
+ fieldList.add("Discount");
|
|
|
+ fieldList.add("Unit Price");
|
|
|
+ fieldList.add("Total Price");
|
|
|
+
|
|
|
+ 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 / Sheet No");
|
|
|
+ ignoreList.add("Order Line Notes");
|
|
|
+ ignoreList.add("Sub Total");
|
|
|
+ ignoreList.add("Freight Cost");
|
|
|
+ ignoreList.add("Packaging Cost");
|
|
|
+ ignoreList.add("Grand Total");
|
|
|
+ ignoreList.add("(%)");
|
|
|
+
|
|
|
+ saleInterfaceSync.setPriority(PDFTableReader.getFields(file, "Priority", "", true).get(0).trim());
|
|
|
+ saleInterfaceSync.setBuyerName(PDFTableReader.getFields(file, "Company Name:", "", true).get(0).trim());
|
|
|
+ saleInterfaceSync.setBuyerContactName(PDFTableReader.getFields(file, "Our Contact", "", true).get(0).trim());
|
|
|
+ saleInterfaceSync.setBuyerTelephone(PDFTableReader.getFields(file, "Tel.", "", true).get(0).trim());
|
|
|
+ saleInterfaceSync.setReferenceNumber(PDFTableReader.getFields(file, "Request For Quote No.", "", true).get(0).trim());
|
|
|
+ saleInterfaceSync.setVesselImo(PDFTableReader.getNextLineFields(file, "IMO Number").get(0).trim());
|
|
|
+ saleInterfaceSync.setVesselCode(PDFTableReader.getFields(file, "Vessel Name", "", true).get(0).trim());
|
|
|
+
|
|
|
+ JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "Sub Total", -1, "mediate", "Request For Quote No", "Makers Reference");
|
|
|
+ for(Object node : jsonArray) {
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(String.valueOf(node));
|
|
|
+ if(jsonObject.size() == 8) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ 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.setHeadId(id);
|
|
|
+ saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
|
+ }
|
|
|
+ saleInterfaceSyncMapper.insert(saleInterfaceSync);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|