Browse Source

Merge remote-tracking branch 'origin/dev' into dev

liyuan 4 months ago
parent
commit
ad486763c5

+ 21 - 4
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/MscZipImportImpl.java

@@ -914,8 +914,8 @@ public class MscZipImportImpl extends ServiceImpl<BillsMapper, Bills> implements
 					// 12	    25	        FFSHIPPER
 					if(ObjectUtils.isNotNull(jaCompanys) && !jaCompanys.isEmpty()){
 						List<JsonElement> removeEles = new ArrayList<>();
-						jaCompanys.forEach(joCompany->{
-							JsonObject joc = (JsonObject) joCompany;
+						for (JsonElement jaCompany : jaCompanys) {
+							JsonObject joc = (JsonObject) jaCompany;
 							JsonObject jod = joc.getAsJsonObject("@attributes");
 							if(getJsonValueAsLong(jod, "BookingId") == bookingId){
 								String ds = getJsonValueAsString(jod, "Company") + "\n"
@@ -923,20 +923,24 @@ public class MscZipImportImpl extends ServiceImpl<BillsMapper, Bills> implements
   									      + "TEL:" + getJsonValueAsString(jod, "PhoneNumber") + "\n"
 									      + "FAX:" + getJsonValueAsString(jod, "FaxNumber");
 								if("SHIPPER".equals(getJsonValueAsString(jod, "CompanyTypeCode"))){
+									bill.setHshipperDetails(ds);
 									seaBillsDetail.setHshipperDetails(ds);
 								}
 								if("CONSIGN".equals(getJsonValueAsString(jod, "CompanyTypeCode"))){
+									bill.setHconsigneeDetails(ds);
 									seaBillsDetail.setHconsigneeDetails(ds);
 								}
 								if("NOTIFY1".equals(getJsonValueAsString(jod, "CompanyTypeCode"))){
+									bill.setHnotifyDetails(ds);
 									seaBillsDetail.setHnotifyDetails(ds);
 								}
 								if("NOTIFY2".equals(getJsonValueAsString(jod, "CompanyTypeCode"))){
+									bill.setHnotify2Details(ds);
 									seaBillsDetail.setHnotify2Details(ds);
 								}
-								removeEles.add(joCompany);
+								removeEles.add(jaCompany);
 							}
-						});
+						};
 
 						for (JsonElement removeEle : removeEles) {
 							jaCompanys.remove(removeEle);
@@ -955,6 +959,7 @@ public class MscZipImportImpl extends ServiceImpl<BillsMapper, Bills> implements
 					// 预配箱 及 已装箱
 					Long lineNo = 0L;
 					if(ObjectUtils.isNotNull(jaContainers) && jaContainers.size()>0) {
+						List<JsonElement> removeEles = new ArrayList<>();
 						for (JsonElement jaContainer : jaContainers) {
 							JsonObject joe = (JsonObject) jaContainer;
 							JsonObject jof = joe.getAsJsonObject("@attributes");
@@ -1046,6 +1051,7 @@ public class MscZipImportImpl extends ServiceImpl<BillsMapper, Bills> implements
 									// 箱内货物
 									if(ObjectUtils.isNotNull(jaCargos) && !jaCargos.isEmpty()) {
 										Long cargoLineNo = 0L;
+										List<JsonElement> removeCargoEles = new ArrayList<>();
 										for (JsonElement jaCargo : jaCargos) {
 											JsonObject joi = (JsonObject) jaCargo;
 											JsonObject joj = joi.getAsJsonObject("@attributes");
@@ -1107,8 +1113,14 @@ public class MscZipImportImpl extends ServiceImpl<BillsMapper, Bills> implements
 												}
 
 												cntrCommoditys.add(cargo);
+
+												removeCargoEles.add(jaCargo);
 											}
 										}
+
+										for (JsonElement removeEle : removeCargoEles) {
+											jaCargos.remove(removeEle);
+										}
 									}
 									cntr.setQuantity(cntrQty);
 									cntr.setGrossWeight(cntrGw);
@@ -1117,8 +1129,13 @@ public class MscZipImportImpl extends ServiceImpl<BillsMapper, Bills> implements
 								}else{
 									throw new RuntimeException("订舱号 " + bill.getBookingNo() + " 箱号 " + getJsonValueAsString(jof, "ContainerNumber") + " 箱型代码不能识别 " + getJsonValueAsString(jof, "ContainerTypeCode") + " !");
 								}
+								removeEles.add(jaContainer);
 							}
 						}
+
+						for (JsonElement removeEle : removeEles) {
+							jaContainers.remove(removeEle);
+						}
 					}
 
 					bill.setHscode(hsCode);