|
@@ -9,6 +9,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.google.gson.JsonObject;
|
|
import com.google.gson.JsonObject;
|
|
import io.micrometer.core.instrument.util.StringUtils;
|
|
import io.micrometer.core.instrument.util.StringUtils;
|
|
import io.swagger.annotations.ApiModelProperty;
|
|
import io.swagger.annotations.ApiModelProperty;
|
|
|
|
+import org.apache.logging.log4j.util.Strings;
|
|
import org.apache.shiro.SecurityUtils;
|
|
import org.apache.shiro.SecurityUtils;
|
|
import org.apache.shiro.SecurityUtils;
|
|
import org.apache.shiro.SecurityUtils;
|
|
import org.jeecg.common.api.vo.Result;
|
|
import org.jeecg.common.api.vo.Result;
|
|
@@ -35,6 +36,7 @@ import org.jeecg.modules.saleCode.mapper.SaleInterfaceItemMapper;
|
|
import org.jeecg.modules.saleCode.mapper.SaleInterfaceSyncMapper;
|
|
import org.jeecg.modules.saleCode.mapper.SaleInterfaceSyncMapper;
|
|
import org.jeecg.modules.saleCode.service.ISaleInterfaceSyncService;
|
|
import org.jeecg.modules.saleCode.service.ISaleInterfaceSyncService;
|
|
import org.jeecg.modules.saleCode.util.HttpUtils;
|
|
import org.jeecg.modules.saleCode.util.HttpUtils;
|
|
|
|
+import org.jeecg.modules.saleCode.util.MonthUtil;
|
|
import org.jeecg.modules.saleCode.util.PDFTableReader;
|
|
import org.jeecg.modules.saleCode.util.PDFTableReader;
|
|
import org.jeecg.modules.system.mapper.SysDictMapper;
|
|
import org.jeecg.modules.system.mapper.SysDictMapper;
|
|
import org.jeecgframework.poi.excel.annotation.Excel;
|
|
import org.jeecgframework.poi.excel.annotation.Excel;
|
|
@@ -49,6 +51,7 @@ import java.math.BigDecimal;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.ParseException;
|
|
import java.text.ParseException;
|
|
import java.time.Instant;
|
|
import java.time.Instant;
|
|
|
|
+import java.time.Month;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.regex.Matcher;
|
|
import java.util.regex.Matcher;
|
|
import java.util.regex.Pattern;
|
|
import java.util.regex.Pattern;
|
|
@@ -599,7 +602,7 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
saleInterfaceSync.setBuyerName(split[1]);
|
|
saleInterfaceSync.setBuyerName(split[1]);
|
|
try {
|
|
try {
|
|
String[] date = split[0].split(" ");
|
|
String[] date = split[0].split(" ");
|
|
- String day = date[2] + "-" + date[1] + "-" + date[0];
|
|
|
|
|
|
+ String day = date[2] + "-" + MonthUtil.getMonthValue(date[1]) + "-" + date[0];
|
|
saleInterfaceSync.setSubmittedDate(DateUtils.parseDate(day, "yyyy-MM-dd"));
|
|
saleInterfaceSync.setSubmittedDate(DateUtils.parseDate(day, "yyyy-MM-dd"));
|
|
} catch (ParseException e) {
|
|
} catch (ParseException e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
@@ -616,6 +619,10 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
saleInterfaceSync.setReferenceNumber(PDFTableReader.getFields(file, "Request For Quote No.", "", true).get(0));
|
|
saleInterfaceSync.setReferenceNumber(PDFTableReader.getFields(file, "Request For Quote No.", "", true).get(0));
|
|
saleInterfaceSync.setVesselImo(PDFTableReader.getNextLineFields(file, "IMO Number").get(0));
|
|
saleInterfaceSync.setVesselImo(PDFTableReader.getNextLineFields(file, "IMO Number").get(0));
|
|
saleInterfaceSync.setVesselCode(PDFTableReader.getFields(file, "Vessel Name", "", true).get(0).toUpperCase());
|
|
saleInterfaceSync.setVesselCode(PDFTableReader.getFields(file, "Vessel Name", "", true).get(0).toUpperCase());
|
|
|
|
+ saleInterfaceSync.setSubject(
|
|
|
|
+ PDFTableReader.getFields(file, "Order Title", "Priority", true).get(0));
|
|
|
|
+ String[] removeLine = {"Page", "Request For Quotation", "CSL Australia", "vessel m/v CSL RELIANCE", "Shipsure Version", "Notes"};
|
|
|
|
+ saleInterfaceSync.setComment(Strings.join(PDFTableReader.getMultipleLineFields(file, "Supplier Notes", "Terms and Conditions", removeLine, true), ' '));
|
|
|
|
|
|
String[] extraLine = {"For Component", "Order Line Notes", "Page"};
|
|
String[] extraLine = {"For Component", "Order Line Notes", "Page"};
|
|
JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "Supplier Notes", -1, "mediate", "Request For Quote No", "Makers Reference", extraLine, 8, 0);
|
|
JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "Supplier Notes", -1, "mediate", "Request For Quote No", "Makers Reference", extraLine, 8, 0);
|
|
@@ -631,7 +638,7 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
}
|
|
}
|
|
saleInterfaceItem.setQuantity(jsonObject.getString("Qty"));
|
|
saleInterfaceItem.setQuantity(jsonObject.getString("Qty"));
|
|
saleInterfaceItem.setSupplierPartNumber(jsonObject.getString("Makers Reference"));
|
|
saleInterfaceItem.setSupplierPartNumber(jsonObject.getString("Makers Reference"));
|
|
- saleInterfaceItem.setUnitOfMeasure(jsonObject.getString("UOM"));
|
|
|
|
|
|
+ saleInterfaceItem.setUnitOfMeasure(jsonObject.getString("UOM") == null ? "" : jsonObject.getString("UOM").toUpperCase());
|
|
saleInterfaceItem.setHeadId(id);
|
|
saleInterfaceItem.setHeadId(id);
|
|
saleInterfaceItem.setComment(jsonObject.getString("Drawing Position"));
|
|
saleInterfaceItem.setComment(jsonObject.getString("Drawing Position"));
|
|
saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
@@ -653,10 +660,15 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
saleInterfaceSync.setBuyerTelephone(PDFTableReader.getNextLineFields(file, "Phone:").get(0));
|
|
saleInterfaceSync.setBuyerTelephone(PDFTableReader.getNextLineFields(file, "Phone:").get(0));
|
|
saleInterfaceSync.setReferenceNumber(PDFTableReader.getNextLineFields(file, "Requisition No.:").get(0));
|
|
saleInterfaceSync.setReferenceNumber(PDFTableReader.getNextLineFields(file, "Requisition No.:").get(0));
|
|
saleInterfaceSync.setVesselImo(PDFTableReader.getNextLineFields(file, "IMO:").get(0));
|
|
saleInterfaceSync.setVesselImo(PDFTableReader.getNextLineFields(file, "IMO:").get(0));
|
|
- saleInterfaceSync.setVesselCode(PDFTableReader.getNextLineFields(file, "Vessel:").get(0));
|
|
|
|
|
|
+ saleInterfaceSync.setVesselCode(PDFTableReader.getNextLineFields(file, "Vessel:").get(0).toUpperCase());
|
|
saleInterfaceSync.setCurrencyCode(PDFTableReader.getNextLineFields(file, "Requested Currency:").get(0));
|
|
saleInterfaceSync.setCurrencyCode(PDFTableReader.getNextLineFields(file, "Requested Currency:").get(0));
|
|
- saleInterfaceSync.setComment(PDFTableReader.getNextLineFields(file, "Buyer Message").get(0));
|
|
|
|
|
|
+
|
|
try {
|
|
try {
|
|
|
|
+ String[] removeLine = {"Buyer Message"};
|
|
|
|
+ List<String> multipleLineFields = PDFTableReader.getMultipleLineFields(file, "Buyer Message", "Please provide energy", removeLine, true);
|
|
|
|
+ if(multipleLineFields != null) {
|
|
|
|
+ saleInterfaceSync.setComment(Strings.join(multipleLineFields, ' '));
|
|
|
|
+ }
|
|
String[] date = PDFTableReader.getNextLineFields(file, "Requisition Date:").get(0).split("/");
|
|
String[] date = PDFTableReader.getNextLineFields(file, "Requisition Date:").get(0).split("/");
|
|
String day = date[2] + "-" + date[1] + "-" + date[0];
|
|
String day = date[2] + "-" + date[1] + "-" + date[0];
|
|
saleInterfaceSync.setSubmittedDate(DateUtils.parseDate(day, "yyyy-MM-dd"));
|
|
saleInterfaceSync.setSubmittedDate(DateUtils.parseDate(day, "yyyy-MM-dd"));
|
|
@@ -696,7 +708,7 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
saleInterfaceItem.setDescription(jsonObject.getString("Description"));
|
|
saleInterfaceItem.setDescription(jsonObject.getString("Description"));
|
|
saleInterfaceItem.setQuantity(jsonObject.getString("Quantity"));
|
|
saleInterfaceItem.setQuantity(jsonObject.getString("Quantity"));
|
|
saleInterfaceItem.setSyncItemCode(jsonObject.getString("Item Code/Part"));
|
|
saleInterfaceItem.setSyncItemCode(jsonObject.getString("Item Code/Part"));
|
|
- saleInterfaceItem.setUnitOfMeasure(jsonObject.getString("UoM"));
|
|
|
|
|
|
+ saleInterfaceItem.setUnitOfMeasure(jsonObject.getString("UoM") == null ? "" : jsonObject.getString("UoM").toUpperCase());
|
|
saleInterfaceItem.setHeadId(id);
|
|
saleInterfaceItem.setHeadId(id);
|
|
saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
}
|
|
}
|
|
@@ -772,9 +784,6 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
saleInterfaceSync.setVesselCode(PDFTableReader.getFields(file, "Vessel Name", "Quote By", true).get(0));
|
|
saleInterfaceSync.setVesselCode(PDFTableReader.getFields(file, "Vessel Name", "Quote By", true).get(0));
|
|
saleInterfaceSync.setCurrencyCode(PDFTableReader.getFields(file, "Currency", "", true).get(0));
|
|
saleInterfaceSync.setCurrencyCode(PDFTableReader.getFields(file, "Currency", "", true).get(0));
|
|
|
|
|
|
- List<String> detailNodesPart1 = PDFTableReader.getMultipleLineFields(file, "Item Details", "1 of 2", false);
|
|
|
|
- List<String> detailNodesPart2 = PDFTableReader.getMultipleLineFields(file, "Item Details", "Remarks To Vendor :", false);
|
|
|
|
-
|
|
|
|
List<String> fieldList = new ArrayList<>();
|
|
List<String> fieldList = new ArrayList<>();
|
|
fieldList.add("S.No");
|
|
fieldList.add("S.No");
|
|
fieldList.add("Item Code");
|
|
fieldList.add("Item Code");
|
|
@@ -957,7 +966,7 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
saleInterfaceSync.setBuyerName(split[1]);
|
|
saleInterfaceSync.setBuyerName(split[1]);
|
|
try {
|
|
try {
|
|
String[] date = split[0].split(" ");
|
|
String[] date = split[0].split(" ");
|
|
- String day = date[2] + "-" + date[1] + "-" + date[0];
|
|
|
|
|
|
+ String day = date[2] + "-" + MonthUtil.getMonthValue(date[1]) + "-" + date[0];
|
|
saleInterfaceSync.setSubmittedDate(DateUtils.parseDate(day, "yyyy-MM-dd"));
|
|
saleInterfaceSync.setSubmittedDate(DateUtils.parseDate(day, "yyyy-MM-dd"));
|
|
} catch (ParseException e) {
|
|
} catch (ParseException e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
@@ -970,11 +979,14 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
if (matcher.find()) {
|
|
if (matcher.find()) {
|
|
saleInterfaceSync.setBuyerEmail(matcher.group(1));
|
|
saleInterfaceSync.setBuyerEmail(matcher.group(1));
|
|
}
|
|
}
|
|
- saleInterfaceSync.setSubject(PDFTableReader.getFields(file, "Order Title", "", true).get(0));
|
|
|
|
|
|
+ saleInterfaceSync.setSubject(
|
|
|
|
+ PDFTableReader.getFields(file, "Order Title", "Priority", true).get(0));
|
|
saleInterfaceSync.setBuyerTelephone(PDFTableReader.getFields(file, "Tel.", "", true).get(0));
|
|
saleInterfaceSync.setBuyerTelephone(PDFTableReader.getFields(file, "Tel.", "", true).get(0));
|
|
saleInterfaceSync.setReferenceNumber(PDFTableReader.getFields(file, "Request For Quote No.", "", true).get(0));
|
|
saleInterfaceSync.setReferenceNumber(PDFTableReader.getFields(file, "Request For Quote No.", "", true).get(0));
|
|
saleInterfaceSync.setVesselImo(PDFTableReader.getNextLineFields(file, "IMO Number").get(0));
|
|
saleInterfaceSync.setVesselImo(PDFTableReader.getNextLineFields(file, "IMO Number").get(0));
|
|
saleInterfaceSync.setVesselCode(PDFTableReader.getFields(file, "Vessel Name", "", true).get(0).toUpperCase());
|
|
saleInterfaceSync.setVesselCode(PDFTableReader.getFields(file, "Vessel Name", "", true).get(0).toUpperCase());
|
|
|
|
+ String[] removeLine = {"Page", "Request For Quotation", "CSL Australia", "vessel m/v CSL RELIANCE", "Shipsure Version", "Notes"};
|
|
|
|
+ saleInterfaceSync.setComment(Strings.join(PDFTableReader.getMultipleLineFields(file, "Supplier Notes", "Terms and Conditions", removeLine, true), ' '));
|
|
|
|
|
|
String[] extra = {"Page", "Plate", "Order Line Notes"};
|
|
String[] extra = {"Page", "Plate", "Order Line Notes"};
|
|
JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "Sub Total", -1, "mediate", "Request For Quote No", "Makers Reference", extra, 8, 0);
|
|
JSONArray jsonArray = PDFTableReader.getTableByPosition(file, fieldList, ignoreList, "Sub Total", -1, "mediate", "Request For Quote No", "Makers Reference", extra, 8, 0);
|
|
@@ -990,7 +1002,7 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
}
|
|
}
|
|
saleInterfaceItem.setQuantity(jsonObject.getString("Qty"));
|
|
saleInterfaceItem.setQuantity(jsonObject.getString("Qty"));
|
|
saleInterfaceItem.setSupplierPartNumber(jsonObject.getString("Makers Reference"));
|
|
saleInterfaceItem.setSupplierPartNumber(jsonObject.getString("Makers Reference"));
|
|
- saleInterfaceItem.setUnitOfMeasure(jsonObject.getString("UOM"));
|
|
|
|
|
|
+ saleInterfaceItem.setUnitOfMeasure(jsonObject.getString("UOM") == null ? "" : jsonObject.getString("UOM").toUpperCase());
|
|
saleInterfaceItem.setHeadId(id);
|
|
saleInterfaceItem.setHeadId(id);
|
|
saleInterfaceItem.setComment(jsonObject.getString("Drawing Position"));
|
|
saleInterfaceItem.setComment(jsonObject.getString("Drawing Position"));
|
|
saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
saleInterfaceItemMapper.insert(saleInterfaceItem);
|