Browse Source

2024年2月23日17:22:40

纪新园 1 year ago
parent
commit
a293d25267

+ 5 - 1
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/corps/entity/BCorps.java

@@ -25,7 +25,6 @@ import lombok.Data;
 import org.springblade.los.basic.utils.ExtendedData;
 
 import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.ArrayList;
@@ -508,6 +507,11 @@ public class BCorps implements Serializable {
 	 */
 	@ApiModelProperty(value = "维护人员")
 	private String maintenanceStaffName;
+	/**
+	 * inttraCode
+	 */
+	@ApiModelProperty(value = "inttraCode")
+	private String inttraCode;
 
 	/**
 	 * 客户更改授信等级记录

+ 14 - 0
blade-service/blade-los/src/main/java/org/springblade/los/Util/ExtendedData.java

@@ -0,0 +1,14 @@
+package org.springblade.los.Util;
+
+import lombok.Data;
+
+/**
+ * @author :jixinyuan
+ * @date : 2024/2/23
+ */
+@Data
+public class ExtendedData {
+
+	private String name;
+	private String value;
+}

+ 189 - 86
blade-service/blade-los/src/main/java/org/springblade/los/Util/RegularUtils.java

@@ -1,11 +1,13 @@
 package org.springblade.los.Util;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import org.springblade.los.edi.dto.InttraSiBillDto;
 import org.springblade.los.edi.dto.InttraSiDto;
 import org.springblade.los.edi.dto.InttraSoDto;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -56,10 +58,10 @@ public class RegularUtils {
 				code = "200";
 				susscess = data;
 			} else if (unicode >= 0x4E00 && unicode <= 0x9FFF) {
-				/*code = "500";
-				msg = "存在中文特殊字符:“" + character + "”";*/
-				code = "200";
-				susscess = data;
+				code = "500";
+				msg = "存在中文特殊字符:“" + character + "”";
+				/*code = "200";
+				susscess = data;*/
 				//Chinese
 //				throw new RuntimeException("存在中文特殊字符:“" + character + "”");
 			} else {
@@ -212,21 +214,6 @@ public class RegularUtils {
 				character += "拼箱类型,";
 			}
 		}
-		//备注
-		if (ObjectUtils.isNull(inttraSoDto.getRemarks())) {
-			msg += "备注,";
-		} else {
-			Map<String, String> mapString = regularEn(inttraSoDto.getRemarks());
-			if ("200".equals(mapString.get("code"))) {
-				if (regularLength(mapString.get("susscess"), 512)) {
-					textLength += "备注,";
-				} else {
-					inttraSoDto.setRemarks(mapString.get("susscess"));
-				}
-			} else {
-				character += "备注,";
-			}
-		}
 		//提单备注
 		if (ObjectUtils.isNotNull(inttraSoDto.getCarrySingleRemarks())) {
 			Map<String, String> mapString = regularEn(inttraSoDto.getCarrySingleRemarks());
@@ -431,6 +418,97 @@ public class RegularUtils {
 		if (ObjectUtils.isNotNull(inttraSoDto.getVesselCarrierCode())) {
 			Map<String, String> mapString = regularEn(inttraSoDto.getVesselCarrierCode());
 			if ("200".equals(mapString.get("code"))) {
+				if ("HLCU".equals(mapString.get("susscess"))) {
+					String text = "";
+					if (ObjectUtils.isNotNull(inttraSoDto.getBillNo())) {
+						text += inttraSoDto.getBillNo() + ";";
+					}
+					if (ObjectUtils.isNotNull(inttraSoDto.getPaymentType())) {
+						if ("PP".equals(inttraSoDto.getPaymentType())) {
+							text += "FREIGHT PREPAID;";
+						} else if ("CC".equals(inttraSoDto.getPaymentType())) {
+							text += "FREIGHT COLLECT;";
+						} else {
+							if (ObjectUtils.isNull(inttraSoDto.getPaymentLand())) {
+								msg += "付款地,";
+							} else {
+								text += "FREIGHT PAYABLE AT " + inttraSoDto.getPaymentLand() + ";";
+							}
+						}
+					}
+					if (ObjectUtils.isNotNull(inttraSoDto.getTransportTermCode())) {
+						if ("29".equals(inttraSoDto.getTransportTermCode())) {
+							text += "CY to DOOR;";
+						} else if ("27".equals(inttraSoDto.getTransportTermCode())) {
+							text += "DOOR to DOOR;";
+						} else if ("28".equals(inttraSoDto.getTransportTermCode())) {
+							text += "DOOR to CY;";
+						} else if ("30".equals(inttraSoDto.getTransportTermCode())) {
+							text += "CY to CY;";
+						}
+					}
+					if (ObjectUtils.isNotNull(inttraSoDto.getBookingNo())) {
+						text += inttraSoDto.getBookingNo() + ";";
+					}
+					if (ObjectUtils.isNotNull(inttraSoDto.getPlaceDeliveryName())) {
+						text += inttraSoDto.getPlaceDeliveryName() + ";";
+					} else {
+						text += inttraSoDto.getPlaceReceiptName() + ";";
+					}
+					if (ObjectUtils.isNotNull(inttraSoDto.getCarrySingleRemarks())) {
+						text += inttraSoDto.getCarrySingleRemarks() + ";";
+					}
+					inttraSoDto.setRemarks(text);
+				} else if ("MAEU".equals(mapString.get("susscess"))) {
+					String text = "";
+					if (ObjectUtils.isNotNull(inttraSoDto.getPaymentType())) {
+						if ("PP".equals(inttraSoDto.getPaymentType())) {
+							text += "FREIGHT PREPAID;";
+						} else if ("CC".equals(inttraSoDto.getPaymentType())) {
+							text += "FREIGHT COLLECT;";
+						} else {
+							if (ObjectUtils.isNull(inttraSoDto.getPaymentLand())) {
+								msg += "付款地,";
+							} else {
+								text += "FREIGHT PAYABLE AT " + inttraSoDto.getPaymentLand() + ";";
+							}
+						}
+					}
+					if (ObjectUtils.isNotNull(inttraSoDto.getTransportTermCode())) {
+						if ("29".equals(inttraSoDto.getTransportTermCode())) {
+							text += "CY to DOOR;";
+						} else if ("27".equals(inttraSoDto.getTransportTermCode())) {
+							text += "DOOR to DOOR;";
+						} else if ("28".equals(inttraSoDto.getTransportTermCode())) {
+							text += "DOOR to CY;";
+						} else if ("30".equals(inttraSoDto.getTransportTermCode())) {
+							text += "CY to CY;";
+						}
+					}
+					if (ObjectUtils.isNotNull(inttraSoDto.getPackagesNumber()) && ObjectUtils.isNotNull(inttraSoDto.getPackagesCode())) {
+						text += inttraSoDto.getPageNumber() + " " + inttraSoDto.getPackagesCode();
+					}
+					if (ObjectUtils.isNotNull(inttraSoDto.getCarrySingleRemarks())) {
+						text += inttraSoDto.getCarrySingleRemarks() + ";";
+					}
+					inttraSoDto.setRemarks(text);
+				} else {
+					//备注
+					if (ObjectUtils.isNull(inttraSoDto.getRemarks())) {
+						msg += "备注,";
+					} else {
+						Map<String, String> mapString1 = regularEn(inttraSoDto.getRemarks());
+						if ("200".equals(mapString1.get("code"))) {
+							if (regularLength(mapString1.get("susscess"), 512)) {
+								textLength += "备注,";
+							} else {
+								inttraSoDto.setRemarks(mapString1.get("susscess"));
+							}
+						} else {
+							character += "备注,";
+						}
+					}
+				}
 				inttraSoDto.setVesselCarrierCode(mapString.get("susscess"));
 			} else {
 				character += "船司代码,";
@@ -565,15 +643,15 @@ public class RegularUtils {
 				if (regularLength(hipper, 35)) {
 					inttraSoDto.setHsHipperOne(hipper.substring(0, 35));
 					if (regularLength(hipper, 35) && hipper.length() <= 70) {
-						inttraSoDto.setHsHipperTwo(hipper.substring(35, 70));
+						inttraSoDto.setHsHipperTwo(hipper.substring(35));
 					} else if (regularLength(hipper, 70) && hipper.length() <= 105) {
-						inttraSoDto.setHsHipperThree(hipper.substring(70, 105));
+						inttraSoDto.setHsHipperThree(hipper.substring(70));
 					} else if (regularLength(hipper, 105) && hipper.length() <= 140) {
-						inttraSoDto.setHsHipperFour(hipper.substring(105, 140));
+						inttraSoDto.setHsHipperFour(hipper.substring(105));
 					} else if (regularLength(hipper, 140) && hipper.length() <= 175) {
-						inttraSoDto.setHsHipperFive(hipper.substring(140, 175));
+						inttraSoDto.setHsHipperFive(hipper.substring(140));
 					} else {
-						inttraSoDto.setHsHipperFive(hipper.substring(140, 174) + "*");
+						inttraSoDto.setHsHipperFive(hipper.substring( 174) + "*");
 						if (ObjectUtils.isNotNull(inttraSoDto.getProductName())) {
 							inttraSoDto.setProductName(inttraSoDto.getProductName() + "*" + hipper.substring(174));
 						}
@@ -595,15 +673,15 @@ public class RegularUtils {
 				if (regularLength(hConsignee, 35)) {
 					inttraSoDto.setHConsigneeOne(hConsignee.substring(0, 35));
 					if (regularLength(hConsignee, 35) && hConsignee.length() <= 70) {
-						inttraSoDto.setHConsigneeTwo(hConsignee.substring(35, 70));
+						inttraSoDto.setHConsigneeTwo(hConsignee.substring(35));
 					} else if (regularLength(hConsignee, 70) && hConsignee.length() <= 105) {
-						inttraSoDto.setHConsigneeThree(hConsignee.substring(70, 105));
+						inttraSoDto.setHConsigneeThree(hConsignee.substring(70));
 					} else if (regularLength(hConsignee, 105) && hConsignee.length() <= 140) {
-						inttraSoDto.setHConsigneeFour(hConsignee.substring(105, 140));
+						inttraSoDto.setHConsigneeFour(hConsignee.substring(105));
 					} else if (regularLength(hConsignee, 140) && hConsignee.length() <= 175) {
-						inttraSoDto.setHConsigneeFive(hConsignee.substring(140, 175));
+						inttraSoDto.setHConsigneeFive(hConsignee.substring(140));
 					} else {
-						inttraSoDto.setHConsigneeFive(hConsignee.substring(140, 174) + "*");
+						inttraSoDto.setHConsigneeFive(hConsignee.substring(174) + "*");
 						if (ObjectUtils.isNotNull(inttraSoDto.getProductName())) {
 							inttraSoDto.setProductName(inttraSoDto.getProductName() + "**" + hConsignee.substring(174));
 						}
@@ -625,15 +703,15 @@ public class RegularUtils {
 				if (regularLength(hNotify, 35)) {
 					inttraSoDto.setHNotifyOne(hNotify.substring(0, 35));
 					if (regularLength(hNotify, 35) && hNotify.length() <= 70) {
-						inttraSoDto.setHNotifyTwo(hNotify.substring(35, 70));
+						inttraSoDto.setHNotifyTwo(hNotify.substring(35));
 					} else if (regularLength(hNotify, 70) && hNotify.length() <= 105) {
-						inttraSoDto.setHNotifyThree(hNotify.substring(70, 105));
+						inttraSoDto.setHNotifyThree(hNotify.substring(70));
 					} else if (regularLength(hNotify, 105) && hNotify.length() <= 140) {
-						inttraSoDto.setHNotifyFour(hNotify.substring(105, 140));
+						inttraSoDto.setHNotifyFour(hNotify.substring(105));
 					} else if (regularLength(hNotify, 140) && hNotify.length() <= 175) {
-						inttraSoDto.setHNotifyFive(hNotify.substring(140, 175));
+						inttraSoDto.setHNotifyFive(hNotify.substring(140));
 					} else {
-						inttraSoDto.setHNotifyFive(hNotify.substring(140, 174) + "*");
+						inttraSoDto.setHNotifyFive(hNotify.substring( 174) + "*");
 						if (ObjectUtils.isNotNull(inttraSoDto.getProductName())) {
 							inttraSoDto.setProductName(inttraSoDto.getProductName() + "***" + hNotify.substring(174));
 						}
@@ -1008,7 +1086,8 @@ public class RegularUtils {
 		} else {
 			Map<String, String> mapString = regularEn(inttraSoDto.getMarks());
 			if ("200".equals(mapString.get("code"))) {
-				if (regularLength(mapString.get("susscess"), 35)) {
+				//35*50
+				if (regularLength(mapString.get("susscess"), 1750)) {
 					textLength += "麦头,";
 				} else {
 					inttraSoDto.setMarks(mapString.get("susscess"));
@@ -1081,63 +1160,63 @@ public class RegularUtils {
 				character += "危险品电话号码,";
 			}
 		}
-		//箱型代码
-		if (ObjectUtils.isNull(inttraSoDto.getBoxCode())) {
+		if (ObjectUtils.isNull(inttraSoDto.getBox())) {
 			msg += "箱型代码,";
 		} else {
-			Map<String, String> mapString = regularEn(inttraSoDto.getBoxCode());
-			if ("200".equals(mapString.get("code"))) {
-				inttraSoDto.setBoxCode(mapString.get("susscess"));
-			} else {
-				character += "箱型代码,";
-			}
-		}
-		//箱量
-		if (ObjectUtils.isNull(inttraSoDto.getBoxNumber())) {
-			msg += "箱量,";
-		} else {
-			if (regularLength(inttraSoDto.getBoxNumber().toString(), 15)) {
-				textLength += "箱量,";
-			}
-		}
-		//冷藏通风量
-		if (ObjectUtils.isNotNull(inttraSoDto.getVentilation())) {
-			Map<String, String> mapString = regularEn(inttraSoDto.getVentilation());
-			if ("200".equals(mapString.get("code"))) {
-				if (regularLength(mapString.get("susscess"), 18)) {
-					textLength += "冷藏通风量,";
+			List<Map<String, Object>> mapList = inttraSoDto.getBox();
+			for (Map<String, Object> map1 : mapList) {
+				Double temperature = ObjectUtils.isNotNull(map1.get("temperature")) ? Double.parseDouble(map1.get("temperature").toString()) : 0;
+				//箱型代码
+				if (ObjectUtils.isNull(map1.get("boxCode").toString())) {
+					msg += "箱型代码,";
 				} else {
-					if (mapString.get("susscess").contains(",")) {
-						special += "冷藏通风量不能出现“,”";
+					Map<String, String> mapString = regularEn(map1.get("boxCode").toString());
+					if ("200".equals(mapString.get("code"))) {
+						inttraSoDto.setBoxCode(mapString.get("susscess"));
 					} else {
-						inttraSoDto.setVentilation(mapString.get("susscess"));
+						character += "箱型代码,";
+					}
+				}
+				//箱量
+				if (ObjectUtils.isNull(map1.get("boxNumber"))) {
+					msg += "箱量,";
+				} else {
+					if (regularLength(map1.get("temperature").toString(), 15)) {
+						textLength += "箱量,";
+					}
+				}
+				//冷藏通风量
+				if (ObjectUtils.isNotNull(map1.get("ventilation").toString())) {
+					Map<String, String> mapString = regularEn(map1.get("ventilation").toString());
+					if ("200".equals(mapString.get("code"))) {
+						if (regularLength(mapString.get("susscess"), 18)) {
+							textLength += "冷藏通风量,";
+						} else {
+							if (mapString.get("susscess").contains(",")) {
+								special += "冷藏通风量不能出现“,”";
+							} else {
+								inttraSoDto.setVentilation(mapString.get("susscess"));
+							}
+						}
+					} else {
+						character += "冷藏通风量,";
+					}
+				}
+				//温度
+				if (ObjectUtils.isNotNull(temperature)) {
+					if (regularLength(temperature.toString(), 4)) {
+						textLength += "温度,";
+					}
+				}
+				//温度单位
+				if (ObjectUtils.isNotNull(map1.get("temperatureUnit").toString())) {
+					Map<String, String> mapString = regularEn(map1.get("temperatureUnit").toString());
+					if ("200".equals(mapString.get("code"))) {
+						inttraSoDto.setTemperatureUnit(mapString.get("susscess"));
+					} else {
+						character += "温度单位,";
 					}
 				}
-			} else {
-				character += "冷藏通风量,";
-			}
-		}
-		//温度
-		if (ObjectUtils.isNotNull(inttraSoDto.getTemperature())) {
-			if (regularLength(inttraSoDto.getTemperature().toString(), 3)) {
-				textLength += "温度,";
-			}
-		}
-		//温度单位
-		if (ObjectUtils.isNotNull(inttraSoDto.getTemperatureUnit())) {
-			Map<String, String> mapString = regularEn(inttraSoDto.getTemperatureUnit());
-			if ("200".equals(mapString.get("code"))) {
-				inttraSoDto.setTemperatureUnit(mapString.get("susscess"));
-			} else {
-				character += "温度单位,";
-			}
-		}
-		//记录行数
-		if (ObjectUtils.isNull(inttraSoDto.getRecordRows())) {
-			msg += "记录行数,";
-		} else {
-			if (regularLength(inttraSoDto.getRecordRows().toString(), 6)) {
-				textLength += "记录行数,";
 			}
 		}
 		//信息编号
@@ -1170,6 +1249,14 @@ public class RegularUtils {
 				character += "文件交换编号,";
 			}
 		}
+		//记录行数
+		if (ObjectUtils.isNull(inttraSoDto.getRecordRows())) {
+			msg += "记录行数,";
+		} else {
+			if (regularLength(inttraSoDto.getRecordRows().toString(), 6)) {
+				textLength += "记录行数,";
+			}
+		}
 		String data = "";
 		if (ObjectUtils.isNotNull(msg)) {
 			code = 500;
@@ -2698,6 +2785,22 @@ public class RegularUtils {
 		return map;
 	}
 
+	/**
+	 * 获取船公司对应edicode
+	 */
+	public static String getEdiCode(String type, String data) {
+//[{"name": "INTTRA", "value": "22G0"}, {"name": "API", "value": "22G1"}]
+		String ediCode = "";
+		List<ExtendedData> jsonArray = JSONArray.parseArray(data).toJavaList(ExtendedData.class);
+		for (ExtendedData item : jsonArray) {
+			if (ObjectUtils.isNotNull(item.getName()) && item.getName().equals(type)) {
+				ediCode = ObjectUtils.isNotNull(item.getValue()) ? item.getValue() : null;
+				break;
+			}
+		}
+		return ediCode;
+	}
+
 }
 /*Class<?> inttraSoDtoClass = inttraSoDto.getClass();
 

+ 4 - 2
blade-service/blade-los/src/main/java/org/springblade/los/business/customsDeclaration/service/impl/CustomsDeclarationServiceImpl.java

@@ -130,6 +130,8 @@ public class CustomsDeclarationServiceImpl extends ServiceImpl<CustomsDeclaratio
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R submit(CustomsDeclaration customsDeclaration) {
 		String deptId = "";
 		String deptName = "";
@@ -155,7 +157,7 @@ public class CustomsDeclarationServiceImpl extends ServiceImpl<CustomsDeclaratio
 			));
 		if (customsDeclaration.getId() == null) {
 			if (ObjectUtils.isNotNull(customsDeclaration.getMblno())) {
-				if (count.size() > 0) {
+				if (!count.isEmpty()) {
 					throw new RuntimeException("提单号不允许重复");
 				}
 			}
@@ -187,7 +189,7 @@ public class CustomsDeclarationServiceImpl extends ServiceImpl<CustomsDeclaratio
 		} else {
 			List<Long> ids = count.stream().map(CustomsDeclaration::getId).distinct().collect(Collectors.toList());
 			if (ObjectUtils.isNotNull(customsDeclaration.getMblno())) {
-				if (count.size() > 0 && !ids.contains(customsDeclaration.getId())) {
+				if (!count.isEmpty() && !ids.contains(customsDeclaration.getId())) {
 					throw new RuntimeException("提单号不允许重复");
 				}
 			}

+ 15 - 5
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java

@@ -150,7 +150,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		if (bills.getId() == null) {
 			if (!"MH".equals(bills.getBillType())) {
 				if (ObjectUtils.isNotNull(bills.getMblno())) {
-					if (count.size() > 0) {
+					if (!count.isEmpty()) {
 						throw new RuntimeException("提单号不允许重复:" + bills.getMblno());
 					}
 				}
@@ -185,7 +185,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			List<Long> ids = count.stream().map(Bills::getId).distinct().collect(Collectors.toList());
 			if (!"MH".equals(bills.getBillType())) {
 				if (ObjectUtils.isNotNull(bills.getMblno())) {
-					if (count.size() > 0 && !ids.contains(bills.getId())) {
+					if (!count.isEmpty() && !ids.contains(bills.getId())) {
 						throw new RuntimeException("提单号不允许重复:" + bills.getMblno());
 					}
 				}
@@ -199,7 +199,17 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 				Bills details = baseMapper.selectOne(new LambdaQueryWrapper<Bills>()
 					.select(Bills::getId, Bills::getVesselId, Bills::getVoyageNo, Bills::getEtd)
 					.eq(Bills::getId, bills.getId()));
-				if (!details.getVesselId().equals(bills.getVesselId()) || !details.getVoyageNo().equals(bills.getVoyageNo()) || !details.getEtd().equals(bills.getEtd())) {
+				boolean status = false;
+				if ("SE".equals(bills.getBillType())) {
+					if (!details.getEtd().equals(bills.getEtd())) {
+						status = true;
+					}
+				} else {
+					if (!details.getEta().equals(bills.getEta())) {
+						status = true;
+					}
+				}
+				if (!details.getVesselId().equals(bills.getVesselId()) || !details.getVoyageNo().equals(bills.getVoyageNo()) || status) {
 					List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
 						.select(Bills::getId, Bills::getEtd, Bills::getVesselId, Bills::getVesselCnName, Bills::getVesselEnName, Bills::getVoyageNo, Bills::getPolId
 							, Bills::getPolCnName, Bills::getPolEnName, Bills::getPolCode, Bills::getPolNamePrint, Bills::getPodId, Bills::getPodCnName
@@ -213,7 +223,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 						.eq(Bills::getTenantId, AuthUtil.getTenantId())
 						.eq(Bills::getIsDeleted, 0)
 						.eq(Bills::getMblno, bills.getMblno()));
-					if (billsList.size() > 0) {
+					if (!billsList.isEmpty()) {
 						for (Bills item : billsList) {
 							item.setEtd(bills.getEtd());
 							item.setVesselId(bills.getVesselId());
@@ -261,7 +271,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 							item.setCarrierArgreementNo(bills.getCarrierArgreementNo());
 							item.setBookingDate(bills.getBookingDate());
 						}
-						if (billsList.size() > 0) {
+						if (!billsList.isEmpty()) {
 							this.updateBatchById(billsList);
 						}
 						List<Long> billIds = billsList.stream().map(Bills::getId).collect(Collectors.toList());

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/edi/dto/InttraSoDto.java

@@ -7,6 +7,8 @@ import org.springblade.los.edi.entity.EdiTypes;
 
 import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author :jixinyuan
@@ -542,6 +544,8 @@ public class InttraSoDto {
 	 */
 	private String shipperBoxIdentification;
 
+	private List<Map<String,Object>> box;
+
 	/*    EQN+   */
 	/**
 	 * 箱量

+ 115 - 32
blade-service/blade-los/src/main/java/org/springblade/los/edi/service/impl/EDISenderServiceImpl.java

@@ -14,9 +14,11 @@ import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
-import java.text.SimpleDateFormat;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author :jixinyuan
@@ -34,43 +36,55 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			file.createNewFile();
 			// 打开文件输出流进行写入操作
 			BufferedWriter writer = new BufferedWriter(new FileWriter(file));
+			int count = 0;
 			// 向文件写入数据
 			/* =================005=================  */
 			writer.write("UNB+UNOC:2+" + inttraSoDto.getIdentifying() + ":ZZZ+INTTRA:ZZZ+" + inttraSoDto.getDate() + "+" + inttraSoDto.getFileExchangeNumber() + "'");
 			writer.newLine();
+			count += 1;
 			/* =================0010=================  */
 			writer.write("UNH+" + inttraSoDto.getInformationNo() + "+IFTMIN:D:99B:UN'");
 			writer.newLine();
+			count += 1;
 			/* =================0020=================  */
 			writer.write("BGM+335+" + inttraSoDto.getIdentificationCode() + "+" + inttraSoDto.getFilesFunction() + "'");
 			writer.newLine();
+			count += 1;
 			/* =================0050=================  */
 			writer.write("DTM+137:" + inttraSoDto.getFilesDate() + "203'");
 			writer.newLine();
+			count += 1;
 			/* =================0060=================  */
 			writer.write("TSR+" + inttraSoDto.getTransportTermCode() + "+" + inttraSoDto.getLclType() + "'");
 			writer.newLine();
+			count += 1;
 			/* =================0090=================  */
 			writer.write("FTX+AAI+++" + inttraSoDto.getRemarks() + "'");
 			writer.newLine();
+			count += 1;
 			if (ObjectUtils.isNotNull(inttraSoDto.getCarrySingleRemarks())) {
 				writer.write("FTX+BLC+++" + inttraSoDto.getCarrySingleRemarks() + "'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================0100=================  */
 			writer.write("CNT+7:" + inttraSoDto.getWeightOfGoods() + ":KGM'");
 			writer.newLine();
+			count += 1;
 			if (ObjectUtils.isNotNull(inttraSoDto.getPackagesNumber())) {
 				writer.write("CNT+11:" + inttraSoDto.getPackagesNumber() + "'");
 				writer.newLine();
+				count += 1;
 			}
 			if (ObjectUtils.isNotNull(inttraSoDto.getVolumeOfGoods())) {
 				writer.write("CNT+15:" + inttraSoDto.getVolumeOfGoods() + ":MTQ'");
 				writer.newLine();
+				count += 1;
 			}
 			if (ObjectUtils.isNotNull(inttraSoDto.getTotalBoxNumber())) {
 				writer.write("CNT+16:" + inttraSoDto.getTotalBoxNumber() + "'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================0140=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getPaymentLocationCode())) {
@@ -82,6 +96,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 					writer.write("'");
 					writer.newLine();
 				}
+				count += 1;
 			}
 			if (ObjectUtils.isNotNull(inttraSoDto.getIssuanceLandCode())) {
 				writer.write("LOC+73+" + inttraSoDto.getIssuanceLandCode());
@@ -92,38 +107,47 @@ public class EDISenderServiceImpl implements IEDISenderService {
 					writer.write("'");
 					writer.newLine();
 				}
+				count += 1;
 			}
 			/* =================0150=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getIssueDate())) {
 				writer.write("DTM+95:" + inttraSoDto.getIssueDate() + ":102'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================0200=================  */
 			writer.write("RFF+BN:" + inttraSoDto.getBookingNo() + "'");
 			writer.newLine();
+			count += 1;
 			if (ObjectUtils.isNotNull(inttraSoDto.getBillNo())) {
 				writer.write("RFF+BM:" + inttraSoDto.getBillNo() + "'");
 				writer.newLine();
+				count += 1;
 			}
 			if (ObjectUtils.isNotNull(inttraSoDto.getFreightProtocolNumber())) {
 				writer.write("RFF+CT:" + inttraSoDto.getFreightProtocolNumber() + "'");
 				writer.newLine();
+				count += 1;
 			}
 			if (ObjectUtils.isNotNull(inttraSoDto.getMainPinyin())) {
 				writer.write("RFF+SI:" + inttraSoDto.getMainPinyin() + "'");
 				writer.newLine();
+				count += 1;
 			}
 			if (ObjectUtils.isNotNull(inttraSoDto.getOrderNo())) {
 				writer.write("RFF+ON:" + inttraSoDto.getOrderNo() + "'");
 				writer.newLine();
+				count += 1;
 			}
 			if (ObjectUtils.isNotNull(inttraSoDto.getJobId())) {
 				writer.write("RFF+FF:" + inttraSoDto.getJobId() + "'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================0320=================  */
 			writer.write("CPI+4++" + inttraSoDto.getPaymentType() + "'");
 			writer.newLine();
+			count += 1;
 			/* =================0480=================  */
 			if (inttraSoDto.getVoyageNo().indexOf("V.") > 0) {
 				throw new RuntimeException("航次中不能存在‘V.’");
@@ -136,22 +160,28 @@ public class EDISenderServiceImpl implements IEDISenderService {
 					writer.write(":172+++:::" + inttraSoDto.getVesselName() + "'");
 					writer.newLine();
 				}
+				count += 1;
 			}
 			/* =================0520=================  */
 			writer.write("LOC+9+" + inttraSoDto.getPolCode() + "::6:" + inttraSoDto.getPolName() + "'");
 			writer.newLine();
+			count += 1;
 			/* =================0530=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getEtd())) {
 				writer.write("DTM+133:" + inttraSoDto.getEtd() + ":102'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================0520=================  */
 			writer.write("LOC+88+" + inttraSoDto.getPlaceReceiptCode() + "::6:" + inttraSoDto.getPlaceReceiptName() + "'");
 			writer.newLine();
+			count += 1;
 			writer.write("LOC+11+" + inttraSoDto.getPodCode() + "::6:" + inttraSoDto.getPodName() + "'");
 			writer.newLine();
+			count += 1;
 			writer.write("LOC+7+" + inttraSoDto.getPlaceDeliveryCode() + "::6:" + inttraSoDto.getPlaceDeliveryName() + "'");
 			writer.newLine();
+			count += 1;
 			/* =================0580=================  */
 			writer.write("NAD+CZ+++" + inttraSoDto.getHsHipperOne());
 			if (ObjectUtils.isNotNull(inttraSoDto.getHsHipperFive())) {
@@ -201,6 +231,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			}
 			writer.write("'");
 			writer.newLine();
+			count += 1;
 
 			writer.write("NAD+CN+++" + inttraSoDto.getHConsigneeOne());
 			if (ObjectUtils.isNotNull(inttraSoDto.getHConsigneeFive())) {
@@ -250,6 +281,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			}
 			writer.write("'");
 			writer.newLine();
+			count += 1;
 			writer.write("NAD+NI+++" + inttraSoDto.getHNotifyOne());
 			if (ObjectUtils.isNotNull(inttraSoDto.getHNotifyFive())) {
 				if (ObjectUtils.isNotNull(inttraSoDto.getHNotifyTwo())) {
@@ -298,21 +330,26 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			}
 			writer.write("'");
 			writer.newLine();
+			count += 1;
 			writer.write("NAD+CA+" + inttraSoDto.getCarrierCode() + ":160:86++" + inttraSoDto.getCarrierName() + "'");
 			writer.newLine();
+			count += 1;
 			if (ObjectUtils.isNotNull(inttraSoDto.getContactInformation())) {
 				writer.write("NAD+MR+++" + inttraSoDto.getContactInformation() + "'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================0620=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getContacts())) {
 				writer.write("CTA+NT+:" + inttraSoDto.getContacts() + "'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================0630=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getAttnEmail())) {
 				writer.write("COM+" + inttraSoDto.getAttnEmail() + ":EM'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================0580=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getInttraToDoorName())) {
@@ -364,16 +401,19 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				}
 				writer.write("'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================0620=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getInttraToDoorContacts())) {
 				writer.write("CTA+IC+:" + inttraSoDto.getInttraToDoorContacts() + "'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================0630=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getInttraToDoorTel())) {
 				writer.write("COM+" + inttraSoDto.getInttraToDoorTel() + ":EM'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================0580=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getInttraDoorToName())) {
@@ -425,16 +465,19 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				}
 				writer.write("'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================0620=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getInttraDoorToContacts())) {
 				writer.write("CTA+IC+:" + inttraSoDto.getInttraDoorToContacts() + "'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================0630=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getInttraDoorToTel())) {
 				writer.write("COM+" + inttraSoDto.getInttraDoorToTel() + ":EM'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================0580=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getFreightForwarderCode())) {
@@ -446,17 +489,22 @@ public class EDISenderServiceImpl implements IEDISenderService {
 					writer.write("'");
 					writer.newLine();
 				}
+				count += 1;
 			}
 			writer.write("NAD+HI+" + inttraSoDto.getSenderCode() + ":160:86++" + inttraSoDto.getSenderName() + "'");
 			writer.newLine();
+			count += 1;
 			/* =================0620=================  */
 			writer.write("CTA+IC+:" + inttraSoDto.getSenderContacts() + "'");
 			writer.newLine();
+			count += 1;
 			/* =================0630=================  */
 			writer.write("COM+" + inttraSoDto.getSenderTel() + ":TE'");
 			writer.newLine();
+			count += 1;
 			writer.write("COM+" + inttraSoDto.getSenderEmail() + ":EM'");
 			writer.newLine();
+			count += 1;
 			/* =================0650=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getBillLadingType())) {
 				writer.write("DOC+" + inttraSoDto.getBillLadingType());
@@ -467,6 +515,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 					writer.write("+:+:" + inttraSoDto.getBillLadingNumber() + "'");
 					writer.newLine();
 				}
+				count += 1;
 			}
 			/* =================0910=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getPackagesNumbers())) {
@@ -478,23 +527,42 @@ public class EDISenderServiceImpl implements IEDISenderService {
 					writer.write("'");
 					writer.newLine();
 				}
+				count += 1;
 			}
 			/* =================0980=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getHsCode())) {
 				writer.write("PIA+5+" + inttraSoDto.getHsCode() + ":HS'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================0990=================  */
 			writer.write("FTX+AAA+++" + inttraSoDto.getProductName() + "'");
 			writer.newLine();
+			count += 1;
 			/* =================1070=================  */
 			writer.write("MEA+AAE+WT+KGM:" + inttraSoDto.getGrossWeight() + "'");
 			writer.newLine();
+			count += 1;
 			writer.write("MEA+AAE+AAW+MTQ:" + inttraSoDto.getMeasurement() + "'");
 			writer.newLine();
+			count += 1;
 			/* =================1160=================  */
-			writer.write("PCI++" + inttraSoDto.getMarks() + "'");
-			writer.newLine();
+			BigDecimal sum = new BigDecimal(inttraSoDto.getMarks().length()).divide(new BigDecimal("35"), 2, RoundingMode.HALF_UP).setScale(0, RoundingMode.HALF_UP);
+			int subS = 0;
+			int subE = 35;
+			for (int i = 0; i <= sum.intValue(); i++) {
+				String marks = "";
+				if (inttraSoDto.getMarks().length() > subE) {
+					marks = inttraSoDto.getMarks().substring(subS, subE);
+				} else {
+					marks = inttraSoDto.getMarks().substring(subS);
+				}
+				writer.write("PCI++" + marks + "'");
+				writer.newLine();
+				count += 1;
+				subS = subS + 35;
+				subE = subE + 35;
+			}
 			/* =================1520=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getDgImdgCode())) {
 				writer.write("DGS+IMD+" + inttraSoDto.getDgImdgCode());
@@ -608,54 +676,69 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				}
 				writer.write("'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================1530=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getDgRemarks())) {
 				writer.write("FTX+AAC+++" + inttraSoDto.getDgRemarks() + "'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================1530=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getDgContacts())) {
 				writer.write("CTA+HG+:" + inttraSoDto.getDgContacts() + "'");
 				writer.newLine();
+				count += 1;
 			}
 			/* =================1560=================  */
 			if (ObjectUtils.isNotNull(inttraSoDto.getDgTel())) {
 				writer.write("COM+" + inttraSoDto.getDgTel() + "'");
 				writer.newLine();
+				count += 1;
 			}
-			/* =================1660=================  */
-			writer.write("EQD+CN++" + inttraSoDto.getBoxCode());
-			if (ObjectUtils.isNotNull(inttraSoDto.getShipperBoxIdentification())) {
-				writer.write("+" + inttraSoDto.getShipperBoxIdentification() + "'");
-				writer.newLine();
-			} else {
-				writer.write("'");
-				writer.newLine();
-			}
-			/* =================1670=================  */
-			if (ObjectUtils.isNotNull(inttraSoDto.getBoxNumber())) {
-				writer.write("EQN+" + inttraSoDto.getBoxNumber() + "'");
-				writer.newLine();
-			}
-			/* =================1690=================  */
-			if (ObjectUtils.isNotNull(inttraSoDto.getVentilation())) {
-				writer.write("MEA+AAE+AAS+CBM:" + inttraSoDto.getVentilation() + "'");
-				writer.newLine();
-			}
-			/* =================1740=================  */
-			if (ObjectUtils.isNotNull(inttraSoDto.getTemperature())) {
-				writer.write("TMP+2+" + inttraSoDto.getTemperature());
-				if (ObjectUtils.isNotNull(inttraSoDto.getTemperatureUnit())) {
-					writer.write(":" + inttraSoDto.getTemperatureUnit() + "'");
-					writer.newLine();
-				} else {
-					writer.write("'");
-					writer.newLine();
+			if (ObjectUtils.isNotNull(inttraSoDto.getBox())) {
+				List<Map<String, Object>> mapList = inttraSoDto.getBox();
+				for (Map<String, Object> map1 : mapList) {
+					/* =================1660=================  */
+					writer.write("EQD+CN++" + map1.get("boxCode"));
+					if (ObjectUtils.isNotNull(map1.get("shipperBoxIdentification"))) {
+						writer.write("+" + map1.get("shipperBoxIdentification") + "'");
+						writer.newLine();
+					} else {
+						writer.write("'");
+						writer.newLine();
+					}
+					count += 1;
+					/* =================1670=================  */
+					if (ObjectUtils.isNotNull(map1.get("boxNumber"))) {
+						writer.write("EQN+" + map1.get("boxNumber") + "'");
+						writer.newLine();
+						count += 1;
+					}
+					/* =================1690=================  */
+					if (ObjectUtils.isNotNull(map1.get("ventilation"))) {
+						writer.write("MEA+AAE+AAS+CBM:" + map1.get("ventilation") + "'");
+						writer.newLine();
+						count += 1;
+					}
+					/* =================1740=================  */
+					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("'");
+							writer.newLine();
+						}
+						count += 1;
+					}
 				}
 			}
+
 			/* =================2000=================  */
-			writer.write("UNT+" + inttraSoDto.getRecordRows() + "+" + inttraSoDto.getInformationNoEnd() + "'");
+			count =  count + 2;
+			writer.write("UNT+" + count+ "+" + inttraSoDto.getInformationNoEnd() + "'");
 			writer.newLine();
 			/* =================2010=================  */
 			writer.write("UNZ+1+" + inttraSoDto.getFileExchangeNumberEnd() + "'");

+ 155 - 62
blade-service/blade-los/src/main/java/org/springblade/los/edi/service/impl/EdiTypesServiceImpl.java

@@ -25,8 +25,12 @@ import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.los.Util.RegularUtils;
+import org.springblade.los.basic.cntr.entity.BCntrTypes;
+import org.springblade.los.basic.cntr.service.IBCntrTypesService;
 import org.springblade.los.basic.corps.entity.BCorps;
 import org.springblade.los.basic.corps.service.IBCorpsService;
+import org.springblade.los.basic.packages.entity.BPackages;
+import org.springblade.los.basic.packages.service.IBPackagesService;
 import org.springblade.los.basic.ports.entity.BPorts;
 import org.springblade.los.basic.ports.service.IBPortsService;
 import org.springblade.los.basic.vessels.entity.BVessels;
@@ -35,8 +39,10 @@ import org.springblade.los.business.files.entity.FilesCenter;
 import org.springblade.los.business.files.service.IFilesCenterService;
 import org.springblade.los.business.sea.entity.Bills;
 import org.springblade.los.business.sea.entity.Containers;
+import org.springblade.los.business.sea.entity.PreContainers;
 import org.springblade.los.business.sea.service.IBillsService;
 import org.springblade.los.business.sea.service.IContainersService;
+import org.springblade.los.business.sea.service.IPreContainersService;
 import org.springblade.los.edi.api.EDISender;
 import org.springblade.los.edi.dto.APLSoDto;
 import org.springblade.los.edi.dto.InttraSiBillDto;
@@ -72,6 +78,8 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 
 	private final IBPortsService bPortsService;
 
+	private final IBPackagesService bPackagesService;
+
 	private final IBCorpsService bCorpsService;
 
 	private final IBVesselsService bVesselsService;
@@ -86,6 +94,10 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 
 	private final IEDISenderService iediSenderService;
 
+	private final IPreContainersService preContainersService;
+
+	private final IBCntrTypesService bCntrTypesService;
+
 	@Override
 	public IPage<EdiTypesVO> selectEdiTypesPage(IPage<EdiTypesVO> page, EdiTypesVO ediTypes) {
 		return page.setRecords(baseMapper.selectEdiTypesPage(page, ediTypes));
@@ -141,12 +153,12 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 			Date date = new Date();
 			for (Bills details : billsList) {
 				InttraSoDto inttraSoDto = new InttraSoDto();
-				inttraSoDto.setIdentifying("发送方标识");
+				inttraSoDto.setIdentifying("JMSLOGQDSO");
 				SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd:hhmm");
 				inttraSoDto.setDate(sdf.format(date));
 				SimpleDateFormat sdf1 = new SimpleDateFormat("yyMMddhhmm");
 				String corpId = details.getCorpId().toString();
-				inttraSoDto.setFileExchangeNumber(sdf1.format(date) + corpId.substring(corpId.length() - 4) + "11111111111111111111111111");
+				inttraSoDto.setFileExchangeNumber(sdf1.format(date) + corpId.substring(corpId.length() - 4));
 				inttraSoDto.setInformationNo(inttraSoDto.getFileExchangeNumber());
 				inttraSoDto.setIdentificationCode(details.getMblno() + "SO");
 				if (ObjectUtils.isNotNull(details.getEdiStatus()) && Integer.parseInt(details.getEdiStatus()) > 0) {
@@ -173,19 +185,19 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 						.eq(BPorts::getIsDeleted, 0)
 						.eq(BPorts::getEnName, details.getMpayplace()));
 					if (bPorts != null) {
-						bPorts.setCode(bPorts.getCode());
-						inttraSoDto.setPaymentLocationCode(bPorts.getCode());
+						String ediCode = RegularUtils.getEdiCode("INTTRA",bPorts.getExtendedData());
+						inttraSoDto.setPaymentLocationCode(ediCode);
+						inttraSoDto.setPaymentLand(bPorts.getEnName());
 					}
 				}
-				inttraSoDto.setPaymentLand(details.getMpayplace());
 				if (ObjectUtils.isNotNull(details.getIssueAtId())) {
 					BPorts bPorts = bPortsService.getById(details.getIssueAtId());
 					if (bPorts != null) {
-						bPorts.setCode(bPorts.getCode());
-						inttraSoDto.setIssuanceLandCode(bPorts.getCode());
+						String ediCode = RegularUtils.getEdiCode("INTTRA",bPorts.getExtendedData());
+						inttraSoDto.setIssuanceLandCode(ediCode);
+						inttraSoDto.setIssuanceLand(bPorts.getEnName());
 					}
 				}
-				inttraSoDto.setIssuanceLand(details.getIssueAt());
 				SimpleDateFormat sdf2 = new SimpleDateFormat("yyyymmdd");
 				if (ObjectUtils.isNotNull(details.getIssueDate())) {
 					inttraSoDto.setIssueDate(sdf2.format(details.getIssueDate()));
@@ -203,34 +215,58 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 					if (bVessels != null) {
 						BCorps bCorps = bCorpsService.getById(bVessels.getCarrierId());
 						if (bCorps != null) {
-							inttraSoDto.setVesselCarrierCode(bCorps.getCode());
+							inttraSoDto.setVesselCarrierCode(bCorps.getInttraCode());
 						}
 					}
 				}
-				inttraSoDto.setVesselName(details.getVesselCnName());
-				inttraSoDto.setPolCode(details.getPolCode());
-				inttraSoDto.setPolName(details.getPolCnName());
+				inttraSoDto.setVesselName(details.getVesselEnName());
+				if (ObjectUtils.isNotNull(details.getPolId())) {
+					BPorts bPorts = bPortsService.getById(details.getPolId());
+					if (bPorts != null) {
+						String ediCode = RegularUtils.getEdiCode("INTTRA",bPorts.getExtendedData());
+						inttraSoDto.setPolCode(ediCode);
+					}
+				}
+				inttraSoDto.setPolName(details.getPolEnName());
 				SimpleDateFormat sdf3 = new SimpleDateFormat("yyyymmdd");
 				if (ObjectUtils.isNotNull(details.getEtd())) {
 					inttraSoDto.setEtd(sdf3.format(details.getEtd()));
 				}
-				inttraSoDto.setPlaceReceiptCode(details.getPlaceReceiptCode());
-				inttraSoDto.setPlaceReceiptName(details.getPlaceReceiptName());
-				inttraSoDto.setPodCode(details.getPodCode());
-				inttraSoDto.setPodName(details.getPodCnName());
-				inttraSoDto.setPlaceDeliveryCode(details.getPlaceDeliveryCode());
-				inttraSoDto.setPlaceDeliveryName(details.getPlaceDeliveryName());
-				inttraSoDto.setHsHipperOne(details.getHshipperCnName());
-				inttraSoDto.setHConsigneeOne(details.getHconsigneeCnName());
-				inttraSoDto.setHNotifyOne(details.getHnotifyCnName());
-				inttraSoDto.setCarrierName(details.getCarrierCnName());
+				if (ObjectUtils.isNotNull(details.getPlaceReceiptId())) {
+					BPorts bPorts = bPortsService.getById(details.getPlaceReceiptId());
+					if (bPorts != null) {
+						String ediCode = RegularUtils.getEdiCode("INTTRA",bPorts.getExtendedData());
+						inttraSoDto.setPlaceReceiptCode(ediCode);
+						inttraSoDto.setPlaceReceiptName(bPorts.getEnName());
+					}
+				}
+				if (ObjectUtils.isNotNull(details.getPodId())) {
+					BPorts bPorts = bPortsService.getById(details.getPodId());
+					if (bPorts != null) {
+						String ediCode = RegularUtils.getEdiCode("INTTRA",bPorts.getExtendedData());
+						inttraSoDto.setPodCode(ediCode);
+					}
+				}
+				inttraSoDto.setPodName(details.getPodEnName());
+				if (ObjectUtils.isNotNull(details.getPlaceDeliveryId())) {
+					BPorts bPorts = bPortsService.getById(details.getPlaceDeliveryId());
+					if (bPorts != null) {
+						String ediCode = RegularUtils.getEdiCode("INTTRA",bPorts.getExtendedData());
+						inttraSoDto.setPlaceDeliveryCode(ediCode);
+						inttraSoDto.setPlaceDeliveryName(bPorts.getEnName());
+					}
+				}
+				inttraSoDto.setHsHipperOne(details.getHshipperEnName());
+				inttraSoDto.setHConsigneeOne(details.getHconsigneeEnName());
+				inttraSoDto.setHNotifyOne(details.getHnotifyEnName());
+				inttraSoDto.setCarrierName(details.getCarrierEnName());
 				if (ObjectUtils.isNotNull(details.getCarrierId())) {
 					BCorps bCorps = bCorpsService.getById(details.getCarrierId());
 					if (bCorps != null) {
-						inttraSoDto.setCarrierCode(bCorps.getCode());
-						inttraSoDto.setContactInformation(bCorps.getShortName());
-						inttraSoDto.setContacts(bCorps.getAttnName());
-						inttraSoDto.setAttnEmail(bCorps.getEmail());
+						inttraSoDto.setCarrierCode(bCorps.getInttraCode());
+						inttraSoDto.setContactInformation(bCorps.getInttraIcua());
+						inttraSoDto.setContacts(bCorps.getInttraIcuaAttn());
+						inttraSoDto.setAttnEmail(bCorps.getInttraIcuaEmail());
 					}
 				}
 				inttraSoDto.setInttraToDoorName(details.getInttraToDoorCorpName());
@@ -241,25 +277,27 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 				inttraSoDto.setInttraDoorToAddrOne(details.getInttraDoorToCorpAddr());
 				inttraSoDto.setInttraDoorToContacts(details.getInttraDoorToCorpContacts());
 				inttraSoDto.setInttraDoorToTel(details.getInttraDoorToCorpTel());
-				inttraSoDto.setFreightForwarderCode("货代代码");
-				inttraSoDto.setFreightForwarderName("货代称呼");
-				inttraSoDto.setSenderCode("发送方代码");
-				inttraSoDto.setSenderName("发送方称呼");
-				inttraSoDto.setSenderContacts("发送方联系人");
-				inttraSoDto.setSenderTel("发送方联系电话");
-				inttraSoDto.setSenderEmail("发送方联系邮件");
+				inttraSoDto.setFreightForwarderCode("los-code");
+				inttraSoDto.setFreightForwarderName("los-call");
+				inttraSoDto.setSenderCode("JMSLOGQDSO");
+				inttraSoDto.setSenderName("JMS");
+				inttraSoDto.setSenderContacts("JMS-contacts");
+				inttraSoDto.setSenderTel("JMS-tel");
+				inttraSoDto.setSenderEmail("JMS-email");
 				inttraSoDto.setBillLadingType(details.getBillType());
+
+//				inttraSoDto.setBillLadingType("706/710");
 				if (details.getStlCrStatus() >= 3 || details.getStlDrStatus() >= 3) {
-					inttraSoDto.setPaymentStatus("已付款");
+					inttraSoDto.setPaymentStatus("27");
 				} else {
-					inttraSoDto.setPaymentStatus("未付款");
+					inttraSoDto.setPaymentStatus("26");
 				}
 				inttraSoDto.setBillLadingNumber(new BigDecimal("0"));
 				inttraSoDto.setPackagesNumbers(details.getQuantity());
 				inttraSoDto.setPackagesCode(details.getPackingUnit());
-				inttraSoDto.setPackagesDescribe("包装描述");
+				inttraSoDto.setPackagesDescribe("");//包装描述
 				inttraSoDto.setHsCode(new BigDecimal("001"));
-				inttraSoDto.setProductName(details.getCommodityCnName());
+				inttraSoDto.setProductName(details.getCommodityEnName());
 				inttraSoDto.setGrossWeight(details.getGrossWeight());
 				inttraSoDto.setMeasurement(details.getMeasurement());
 				inttraSoDto.setMarks(details.getMarks());
@@ -268,19 +306,36 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 				inttraSoDto.setDgUnCode(1);
 				inttraSoDto.setDgFlashPoint(1);
 				inttraSoDto.setDgFlashPointUnit(details.getDgFlashPointUnit());
-				inttraSoDto.setPackingGroup("包装组别");
-				inttraSoDto.setEmergencyMeasureNo("应急措施号");
+				inttraSoDto.setPackingGroup("");//包装组别
+				inttraSoDto.setEmergencyMeasureNo("");//应急措施号
 				inttraSoDto.setDgRemarks(details.getDgRemarks());
 				inttraSoDto.setDgContacts(details.getDgContacts());
 				inttraSoDto.setDgTel(details.getDgTel());
-				inttraSoDto.setBoxCode(details.getQuantityCntrDescr());
-				inttraSoDto.setShipperBoxIdentification("货主箱标识");
-				Integer sum1 = details.getQuantityV20() + details.getQuantityV40() + details.getQuantityV45()
-					+ details.getQuantityV48() + details.getQuantityV40hc();
-				inttraSoDto.setBoxNumber(new BigDecimal(sum1 + ""));
-				inttraSoDto.setVentilation("冷藏通风量");
-				inttraSoDto.setTemperature(1);
-				inttraSoDto.setTemperatureUnit("温度单位");
+				List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
+					.eq(PreContainers::getPid, details.getId())
+					.eq(PreContainers::getIsDeleted, 0));
+				String boxType = preContainersList.stream().map(PreContainers::getCntrTypeCode).collect(Collectors.joining(","));
+				List<BCntrTypes> bCntrTypesList = bCntrTypesService.list(new LambdaQueryWrapper<BCntrTypes>()
+					.apply("find_in_set(cntr_type,'" + boxType + "')")
+					.eq(BCntrTypes::getIsDeleted, 0));
+				List<Map<String, Object>> box = new ArrayList<>();
+				for (PreContainers item : preContainersList) {
+					BCntrTypes bCntrTypes = bCntrTypesList.stream().filter(e -> e.getCntrType().equals(item.getCntrTypeCode())).findFirst().orElse(null);
+					if (bCntrTypes != null) {
+						String ediCode = RegularUtils.getEdiCode("INTTRA",bCntrTypes.getExtendedData());
+						Map<String, Object> map = new HashMap<>();
+						map.put("boxCode", ediCode);
+						map.put("boxNumber", item.getQuantity());
+						map.put("shipperBoxIdentification", item.getIsSoc());
+						map.put("temperature", item.getTemperature());
+						map.put("ventilation", item.getVentilation());
+						map.put("temperatureUnit", item.getTemperatureUnit());
+						box.add(map);
+					} else {
+						throw new RuntimeException("箱型数据错误");
+					}
+				}
+				inttraSoDto.setBox(box);
 				inttraSoDto.setRecordRows(new BigDecimal("10"));
 				inttraSoDto.setInformationNoEnd(inttraSoDto.getInformationNo());
 				inttraSoDto.setFileExchangeNumberEnd(inttraSoDto.getFileExchangeNumber());
@@ -396,18 +451,42 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 					if (bVessels != null) {
 						BCorps bCorps = bCorpsService.getById(bVessels.getCarrierId());
 						if (bCorps != null) {
-							inttraSoDto.setVesselCarrierCode(bCorps.getCode());
+							inttraSoDto.setVesselCarrierCode(bCorps.getInttraCode());
 						}
 					}
 				}
 				inttraSoDto.setVesselName(details.getVesselCnName());
-				inttraSoDto.setPolCode(details.getPolCode());
+				if (ObjectUtils.isNotNull(details.getPolCode())) {
+					BPorts bPorts = bPortsService.getById(details.getPolCode());
+					if (bPorts != null) {
+						String ediCode = RegularUtils.getEdiCode("INTTRA",bPorts.getExtendedData());
+						inttraSoDto.setPolName(ediCode);
+					}
+				}
 				inttraSoDto.setPolName(details.getPolCnName());
-				inttraSoDto.setPlaceReceiptCode(details.getPlaceReceiptCode());
+				if (ObjectUtils.isNotNull(details.getPlaceReceiptCode())) {
+					BPorts bPorts = bPortsService.getById(details.getPlaceReceiptCode());
+					if (bPorts != null) {
+						String ediCode = RegularUtils.getEdiCode("INTTRA",bPorts.getExtendedData());
+						inttraSoDto.setPlaceReceiptCode(ediCode);
+					}
+				}
 				inttraSoDto.setPlaceReceiptName(details.getPlaceReceiptName());
-				inttraSoDto.setPodCode(details.getPodCode());
+				if (ObjectUtils.isNotNull(details.getPodCode())) {
+					BPorts bPorts = bPortsService.getById(details.getPodCode());
+					if (bPorts != null) {
+						String ediCode = RegularUtils.getEdiCode("INTTRA",bPorts.getExtendedData());
+						inttraSoDto.setPodCode(ediCode);
+					}
+				}
 				inttraSoDto.setPodName(details.getPodCnName());
-				inttraSoDto.setPlaceDeliveryCode(details.getPlaceDeliveryCode());
+				if (ObjectUtils.isNotNull(details.getPlaceDeliveryCode())) {
+					BPorts bPorts = bPortsService.getById(details.getPlaceDeliveryCode());
+					if (bPorts != null) {
+						String ediCode = RegularUtils.getEdiCode("INTTRA",bPorts.getExtendedData());
+						inttraSoDto.setPlaceDeliveryCode(ediCode);
+					}
+				}
 				inttraSoDto.setPlaceDeliveryName(details.getPlaceDeliveryName());
 				inttraSoDto.setHsHipperOne(details.getHshipperCnName());
 				inttraSoDto.setHConsigneeOne(details.getHconsigneeCnName());
@@ -416,7 +495,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 				if (ObjectUtils.isNotNull(details.getCarrierId())) {
 					BCorps bCorps = bCorpsService.getById(details.getCarrierId());
 					if (bCorps != null) {
-						inttraSoDto.setCarrierCode(bCorps.getCode());
+						inttraSoDto.setCarrierCode(bCorps.getInttraCode());
 					}
 				}
 				inttraSoDto.setSenderCode("发送方代码");
@@ -432,7 +511,14 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 				}
 				inttraSoDto.setBillLadingNumber(new BigDecimal("0"));
 				inttraSoDto.setPackagesNumbers(details.getQuantity());
-				inttraSoDto.setPackagesCode(details.getPackingUnit());
+				if (ObjectUtils.isNotNull(details.getPackingUnit())) {
+					BPackages bPackages = bPackagesService.getOne(new LambdaQueryWrapper<BPackages>()
+						.eq(BPackages::getCode, details.getPackingUnit()));
+					if (bPackages != null) {
+						String ediCode = RegularUtils.getEdiCode("INTTRA",bPackages.getExtendedData());
+						inttraSoDto.setPackagesCode(ediCode);
+					}
+				}
 				inttraSoDto.setPackagesDescribe("包装描述");
 				inttraSoDto.setHsCode(new BigDecimal("001"));
 				inttraSoDto.setProductName(details.getCommodityCnName());
@@ -442,7 +528,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 				BigDecimal boxGoodNumber = new BigDecimal("0.00");
 				BigDecimal boxGoodWeight = new BigDecimal("0.00");
 				BigDecimal boxGoodMeasurement = new BigDecimal("0.00");
-				if (containersList.size() > 0) {
+				if (!containersList.isEmpty()) {
 					inttraSoDto.setBoxGoodNumber(containersList.get(0).getQuantity());
 					inttraSoDto.setBoxGoodWeight(containersList.get(0).getGrossWeight());
 					inttraSoDto.setBoxGoodMeasurement(containersList.get(0).getMeasurement());
@@ -474,7 +560,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 				inttraSoDto.setFileExchangeNumberEnd(inttraSoDto.getFileExchangeNumber());
 				inttraSoDto.setEdiTypes(ediTypes);
 				Map<String, Object> status = RegularUtils.notNullInttraSiDto(inttraSoDto);
-				if (200 == Integer.parseInt(status.get("code").toString())){
+				if (200 == Integer.parseInt(status.get("code").toString())) {
 					FilesCenter filesCenter = iediSenderService.sendingInttraSI(inttraSoDto);
 
 					//发送edi记录
@@ -516,7 +602,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 					filesCenter.setIsImage(0);
 					filesCenter.setTenantId(AuthUtil.getTenantId());
 					filesCenterList.add(filesCenter);
-				}else{
+				} else {
 					return R.success(status.get("data").toString());
 				}
 			}
@@ -556,7 +642,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 					if (bVessels != null) {
 						BCorps bCorps = bCorpsService.getById(bVessels.getCarrierId());
 						if (bCorps != null) {
-							inttraSoDto.setVesselCarrierCode(bCorps.getCode());
+							inttraSoDto.setVesselCarrierCode(bCorps.getInttraCode());
 						}
 					}
 				}
@@ -569,12 +655,19 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 				}
 				inttraSoDto.setBillLadingNumber(new BigDecimal("0"));
 				inttraSoDto.setPackagesNumbers(details.getQuantity());
-				inttraSoDto.setPackagesCode(details.getPackingUnit());
+				if (ObjectUtils.isNotNull(details.getPackingUnit())) {
+					BPackages bPackages = bPackagesService.getOne(new LambdaQueryWrapper<BPackages>()
+						.eq(BPackages::getCode, details.getPackingUnit()));
+					if (bPackages != null) {
+						String ediCode = RegularUtils.getEdiCode("INTTRA",bPackages.getExtendedData());
+						inttraSoDto.setPackagesCode(ediCode);
+					}
+				}
 				inttraSoDto.setPackagesDescribe("包装描述");
 				inttraSoDto.setHsCode(new BigDecimal("001"));
 				inttraSoDto.setMarks(details.getMarks());
 				BigDecimal boxGoodNumber = new BigDecimal("0.00");
-				if (containersList.size() > 0) {
+				if (!containersList.isEmpty()) {
 					inttraSoDto.setBoxGoodNumber(containersList.get(0).getQuantity());
 					String boxNumber = containersList.stream().map(Containers::getCntrNo).filter(Objects::nonNull).distinct().collect(Collectors.joining("/"));
 					inttraSoDto.setBoxNo(boxNumber);
@@ -601,7 +694,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 				inttraSoDto.setEdiTypes(ediTypes);
 
 				Map<String, Object> status = RegularUtils.notNullInttraSiBillDto(inttraSoDto);
-				if (200 == Integer.parseInt(status.get("code").toString())){
+				if (200 == Integer.parseInt(status.get("code").toString())) {
 					FilesCenter filesCenter = iediSenderService.sendingInttraSiBill(inttraSoDto);
 
 					//发送edi记录
@@ -643,7 +736,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 					filesCenter.setIsImage(0);
 					filesCenter.setTenantId(AuthUtil.getTenantId());
 					filesCenterList.add(filesCenter);
-				}else{
+				} else {
 					return R.success(status.get("data").toString());
 				}
 			}

+ 8 - 8
blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/service/impl/StatisticAnalysisServiceImpl.java

@@ -469,8 +469,8 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 		LambdaQueryWrapper<CustomsDeclaration> customsDeclarationLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		customsDeclarationLambdaQueryWrapper.eq(CustomsDeclaration::getTenantId, AuthUtil.getTenantId())
 			.eq(CustomsDeclaration::getIsDeleted, 0)
-			.ge(CustomsDeclaration::getBillDate, dateStart)
-			.le(CustomsDeclaration::getBillDate, dateEnd)
+			.ge(CustomsDeclaration::getDeclareDate, dateStart)
+			.le(CustomsDeclaration::getDeclareDate, dateEnd)
 			.apply("find_in_set(status,'1,2')");
 		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
 			customsDeclarationLambdaQueryWrapper.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
@@ -483,8 +483,8 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 		LambdaQueryWrapper<CustomsDeclaration> customsDeclarationLambdaQueryWrapperBGSI = new LambdaQueryWrapper<>();
 		customsDeclarationLambdaQueryWrapperBGSI.eq(CustomsDeclaration::getTenantId, AuthUtil.getTenantId())
 			.eq(CustomsDeclaration::getIsDeleted, 0)
-			.ge(CustomsDeclaration::getBillDate, dateStart)
-			.le(CustomsDeclaration::getBillDate, dateEnd)
+			.ge(CustomsDeclaration::getDeclareDate, dateStart)
+			.le(CustomsDeclaration::getDeclareDate, dateEnd)
 			.apply("find_in_set(status,'1,2')");
 		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
 			customsDeclarationLambdaQueryWrapperBGSI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
@@ -497,8 +497,8 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 		LambdaQueryWrapper<CustomsDeclaration> customsDeclarationLambdaQueryWrapperBGAE = new LambdaQueryWrapper<>();
 		customsDeclarationLambdaQueryWrapperBGAE.eq(CustomsDeclaration::getTenantId, AuthUtil.getTenantId())
 			.eq(CustomsDeclaration::getIsDeleted, 0)
-			.ge(CustomsDeclaration::getBillDate, dateStart)
-			.le(CustomsDeclaration::getBillDate, dateEnd)
+			.ge(CustomsDeclaration::getDeclareDate, dateStart)
+			.le(CustomsDeclaration::getDeclareDate, dateEnd)
 			.apply("find_in_set(status,'1,2')");
 		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
 			customsDeclarationLambdaQueryWrapperBGAE.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
@@ -511,8 +511,8 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 		LambdaQueryWrapper<CustomsDeclaration> customsDeclarationLambdaQueryWrapperBGAI = new LambdaQueryWrapper<>();
 		customsDeclarationLambdaQueryWrapperBGAI.eq(CustomsDeclaration::getTenantId, AuthUtil.getTenantId())
 			.eq(CustomsDeclaration::getIsDeleted, 0)
-			.ge(CustomsDeclaration::getBillDate, dateStart)
-			.le(CustomsDeclaration::getBillDate, dateEnd)
+			.ge(CustomsDeclaration::getDeclareDate, dateStart)
+			.le(CustomsDeclaration::getDeclareDate, dateEnd)
 			.apply("find_in_set(status,'1,2')");
 		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
 			customsDeclarationLambdaQueryWrapperBGAI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");