|
|
@@ -56,6 +56,26 @@ public class EDISenderServiceImpl implements IEDISenderService {
|
|
|
@Autowired
|
|
|
static FTPPoolConfig config;
|
|
|
|
|
|
+ public static String getOSName() {
|
|
|
+ String osName = System.getProperty("os.name").toLowerCase();
|
|
|
+ if (osName.contains("win")) {
|
|
|
+ return "win";
|
|
|
+ } else if (osName.contains("mac")) {
|
|
|
+ return "mac";
|
|
|
+ } else if (osName.contains("nix") || osName.contains("nux") || osName.contains("aix")) {
|
|
|
+ return "unix";
|
|
|
+ } else {
|
|
|
+ return osName;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public static Boolean getOsIsWindow(){
|
|
|
+ String osName = getOSName();
|
|
|
+ return "win".equals(osName);
|
|
|
+ }
|
|
|
+ public static Boolean getOsIsUnix(){
|
|
|
+ String osName = getOSName();
|
|
|
+ return "unix".equals(osName);
|
|
|
+ }
|
|
|
public static boolean createDir(String folder) {
|
|
|
if (!folder.endsWith(File.separator)) {
|
|
|
// 结尾是否以"/"结束
|
|
|
@@ -72,11 +92,14 @@ public class EDISenderServiceImpl implements IEDISenderService {
|
|
|
}
|
|
|
|
|
|
private String genEdiLocalFolder(@Validated InttraSoDto edi, JsonNode ediParamCarrier) {
|
|
|
- String pathRoot = "/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload/" + edi.getEdiTypes().getCode() + "/";
|
|
|
+ // String pathRoot = "/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload/" + edi.getEdiTypes().getCode() + "/";
|
|
|
+ String pathRoot = "/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload";
|
|
|
// 本地测试
|
|
|
- pathRoot = "D:" + pathRoot;
|
|
|
- if (!createDir(pathRoot)) {
|
|
|
- pathRoot = "";
|
|
|
+ if(getOsIsWindow()) {
|
|
|
+ pathRoot = "D:\\home\\minio\\file\\" + AuthUtil.getTenantId() + "-bladex\\upload";
|
|
|
+ if (!createDir(pathRoot)) {
|
|
|
+ pathRoot = "";
|
|
|
+ }
|
|
|
}
|
|
|
return pathRoot;
|
|
|
}
|
|
|
@@ -326,9 +349,9 @@ public class EDISenderServiceImpl implements IEDISenderService {
|
|
|
public FilesCenter sendingInttraSo(@Validated InttraSoDto inttraSoDto, JsonNode ediParamCarrier) {
|
|
|
Date date = new Date();
|
|
|
try {
|
|
|
-// String localFolder = genEdiLocalFolder(inttraSoDto, ediParamCarrier);
|
|
|
- String localFolder = "/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload";
|
|
|
-// localFolder = "D:/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload";
|
|
|
+ String localFolder = genEdiLocalFolder(inttraSoDto, ediParamCarrier);
|
|
|
+ // String localFolder = "/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload";
|
|
|
+ // localFolder = "D:/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload";
|
|
|
String localFileName = genEdiLocalFileName(inttraSoDto, ediParamCarrier);
|
|
|
File file = new File(localFolder, localFileName);
|
|
|
file.createNewFile();
|
|
|
@@ -486,10 +509,13 @@ public class EDISenderServiceImpl implements IEDISenderService {
|
|
|
writer.newLine();
|
|
|
count += 1;
|
|
|
/* =================0530================= */
|
|
|
- if (ObjectUtils.isNotNull(inttraSoDto.getEtd())) {
|
|
|
- writer.write("DTM+133:" + inttraSoDto.getEtd() + ":102'");
|
|
|
- writer.newLine();
|
|
|
- count += 1;
|
|
|
+ // MAEU 发送 ETD,其他不发送
|
|
|
+ if ("MAEU".equals(carrierCode)) {
|
|
|
+ if (ObjectUtils.isNotNull(inttraSoDto.getEtd())) {
|
|
|
+ writer.write("DTM+133:" + inttraSoDto.getEtd() + ":102'");
|
|
|
+ writer.newLine();
|
|
|
+ count += 1;
|
|
|
+ }
|
|
|
}
|
|
|
/* =================0520================= */
|
|
|
writer.write("LOC+11+" + inttraSoDto.getPodCode() + "::6:" + inttraSoDto.getPodName() + "'");
|
|
|
@@ -823,7 +849,9 @@ public class EDISenderServiceImpl implements IEDISenderService {
|
|
|
writer.newLine();
|
|
|
count += 1;
|
|
|
|
|
|
- if ("reefer".equals(cargoType)) {
|
|
|
+ // 无论是否冻柜,操作填了就发送
|
|
|
+ // if ("reefer".equals(cargoType)) {
|
|
|
+ if (true) {
|
|
|
if (ObjectUtils.isNotNull(map1.get("ventilation"))) {
|
|
|
writer.write("MEA+AAE+AAS+CBM:" + map1.get("ventilation") + "'");
|
|
|
writer.newLine();
|
|
|
@@ -836,13 +864,10 @@ public class EDISenderServiceImpl implements IEDISenderService {
|
|
|
}
|
|
|
if (ObjectUtils.isNotNull(map1.get("temperature"))) {
|
|
|
writer.write("TMP+2+" + map1.get("temperature"));
|
|
|
- if (ObjectUtils.isNotNull(map1.get("temperatureUnit"))) {
|
|
|
- writer.write(":" + map1.get("temperatureUnit") + "'");
|
|
|
- writer.newLine();
|
|
|
- } else {
|
|
|
- writer.write(":CEL'");
|
|
|
- writer.newLine();
|
|
|
- }
|
|
|
+ String tu = ObjectUtils.isNotNull(map1.get("temperatureUnit")) ? map1.get("temperatureUnit").toString() : "CEL";
|
|
|
+ tu = tu.equals("C") ? "CEL" : (tu.equals("F") ? "FAH" : tu);
|
|
|
+ writer.write(":" + tu + "'");
|
|
|
+ writer.newLine();
|
|
|
count += 1;
|
|
|
}
|
|
|
}
|
|
|
@@ -1983,8 +2008,11 @@ public class EDISenderServiceImpl implements IEDISenderService {
|
|
|
@Override
|
|
|
public FilesCenter sendingOneBooking(@Validated InttraSoDto oneSoDto, JsonNode ediParamCarrier) {
|
|
|
try {
|
|
|
+ Boolean allowMaster = readEdiParamBooleanValue(ediParamCarrier, "allowMaster", true);
|
|
|
List<InttraSoDto> billsList = new ArrayList<>();
|
|
|
- billsList.add(oneSoDto);
|
|
|
+ if(allowMaster || !"MM".equals(oneSoDto.getBillType())) {
|
|
|
+ billsList.add(oneSoDto);
|
|
|
+ }
|
|
|
oneSoDto.setIsMasterBill(true);
|
|
|
if (ObjectUtils.isNotNull(oneSoDto.getHblBillsList())) {
|
|
|
for (InttraSoDto bill : oneSoDto.getHblBillsList()) {
|
|
|
@@ -5869,10 +5897,11 @@ public class EDISenderServiceImpl implements IEDISenderService {
|
|
|
String S1 = sdf2.format(date);
|
|
|
String mbf = "MBF" + S1.substring(4, 14);
|
|
|
String msgId = S1.substring(4, 12) + S1.substring(14, 17);
|
|
|
- writer.write("UNB+UNOA:1+JMS:ZZ+SMLM:ZZ+" + sdf1.format(date) + mbf + "'");
|
|
|
+ writer.write("UNB+UNOA:1+JMS:ZZ+SMLM:ZZ+" + sdf1.format(date) + ":" + mbf + "'");
|
|
|
writer.newLine();
|
|
|
/* =================0010================= */
|
|
|
- writer.write("UNH+80+"+ msgId +"+IFTMBF:D:98B:UN'");
|
|
|
+ // +80
|
|
|
+ writer.write("UNH+"+ msgId +"+IFTMBF:D:98B:UN'");
|
|
|
writer.newLine();
|
|
|
count += 1;
|
|
|
/* =================0020================= */
|
|
|
@@ -5888,7 +5917,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
|
|
|
writer.newLine();
|
|
|
count += 1;
|
|
|
|
|
|
- List<String> goodsDesc = RegularUtils.reformatEDIText(smlSoDto.getGoodsDesc(), 70, true);
|
|
|
+ List<String> goodsDesc = RegularUtils.reformatEDITextEscapeAll(smlSoDto.getGoodsDesc(), 70, true);
|
|
|
List<String> goodsDescAddtion = new ArrayList<>();
|
|
|
int gc = goodsDesc.size();
|
|
|
for(int l = 0; l<gc; l++){
|
|
|
@@ -5912,7 +5941,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- List<String> bookingRemarks = RegularUtils.reformatEDIText(smlSoDto.getBookingRemarks(), 70, true);
|
|
|
+ List<String> bookingRemarks = RegularUtils.reformatEDITextEscapeAll(smlSoDto.getBookingRemarks(), 70, true);
|
|
|
List<String> bookingRemarksAddtion = new ArrayList<>();
|
|
|
gc = bookingRemarks.size();
|
|
|
for(int l = 0; l<gc; l++){
|
|
|
@@ -5943,7 +5972,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
|
|
|
|
|
|
// 船名
|
|
|
// V_VOY+'+1++HJSC:172:182+++'+RecTDT.smlvslno+':::'+V_VSL
|
|
|
- writer.write("TDT+20+" + smlSoDto.getVoyageNo() + "+1+HJSC:172:182+++" + smlSoDto.getVesselCode() + ":::"+smlSoDto.getVesselName()+"'");
|
|
|
+ writer.write("TDT+20+" + smlSoDto.getVoyageNo() + "+1++HJSC:172:182+++" + smlSoDto.getVesselCode() + ":::"+smlSoDto.getVesselName()+"'");
|
|
|
writer.newLine();
|
|
|
count += 1;
|
|
|
|
|
|
@@ -5964,11 +5993,12 @@ public class EDISenderServiceImpl implements IEDISenderService {
|
|
|
writer.newLine();
|
|
|
count += 1;
|
|
|
|
|
|
- writer.write("NAD+FW+CN116336+QINGDAO JET MARINE LOGISTICS CO.,LTD.'");
|
|
|
+ // QINGDAO JET MARINE LOGISTICS CO.,LTD. 超35字符,故折行
|
|
|
+ writer.write("NAD+FW+CN116336+QINGDAO JET MARINE LOGISTICS CO.,:LTD.'");
|
|
|
writer.newLine();
|
|
|
count += 1;
|
|
|
|
|
|
- List<String> shpr = RegularUtils.reformatEDIText(smlSoDto.getHShipper(), 35, true);
|
|
|
+ List<String> shpr = RegularUtils.reformatEDITextEscapeAll(smlSoDto.getHShipper(), 35, true);
|
|
|
List<String> shprAddtion = new ArrayList<>();
|
|
|
gc = shpr.size();
|
|
|
for(int l = 0; l<gc; l++){
|
|
|
@@ -5992,7 +6022,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- List<String> cnee = RegularUtils.reformatEDIText(smlSoDto.getHConsignee(), 35, true);
|
|
|
+ List<String> cnee = RegularUtils.reformatEDITextEscapeAll(smlSoDto.getHConsignee(), 35, true);
|
|
|
List<String> cneeAddtion = new ArrayList<>();
|
|
|
gc = cnee.size();
|
|
|
for(int l = 0; l<gc; l++){
|
|
|
@@ -6016,7 +6046,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- List<String> notify = RegularUtils.reformatEDIText(smlSoDto.getHNotify(), 35, true);
|
|
|
+ List<String> notify = RegularUtils.reformatEDITextEscapeAll(smlSoDto.getHNotify(), 35, true);
|
|
|
List<String> notifyAddtion = new ArrayList<>();
|
|
|
gc = notify.size();
|
|
|
for(int l = 0; l<gc; l++){
|