wfg 2 лет назад
Родитель
Сommit
080d0e207c

+ 5 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/business/entity/BusinessType.java

@@ -146,5 +146,10 @@ public class BusinessType implements Serializable {
 	@ApiModelProperty(value = "是否启用凭证模版")
 	private String enableVoucher;
 
+	/**
+	 * 排序
+	 */
+	@ApiModelProperty(value = "排序")
+	private Integer zorder;
 
 }

+ 264 - 10
blade-service/blade-los/src/main/java/org/springblade/los/Util/RegularUtils.java

@@ -507,14 +507,14 @@ public class RegularUtils {
 				character += "订舱号,";
 			}
 		}
-		//单号
-		if (ObjectUtils.isNotNull(inttraSoDto.getBillNo())) {
-			Map<String, String> mapString = regularEn(inttraSoDto.getBillNo(),true);
+		//单号
+		if (ObjectUtils.isNotNull(inttraSoDto.getMblNo())) {
+			Map<String, String> mapString = regularEn(inttraSoDto.getMblNo(),true);
 			if ("200".equals(mapString.get("code"))) {
 				if (regularLength(mapString.get("susscess"), 30)) {
-					textLength += "单号,";
+					textLength += "单号,";
 				} else {
-					inttraSoDto.setBillNo(mapString.get("susscess"));
+					inttraSoDto.setMblNo(mapString.get("susscess"));
 				}
 			} else {
 				character += "提单号,";
@@ -630,8 +630,8 @@ public class RegularUtils {
 					String CC = mapString.get("susscess");
 					if ("HLCU".equals(CC) || "CMDU".equals(CC) || "ANNU".equals(CC) || "CHNL".equals(CC) || "MAEU".equals(CC)) {
 						String text = "";
-						if (ObjectUtils.isNotNull(inttraSoDto.getBillNo())) {
-							text += inttraSoDto.getBillNo() + ";";
+						if (ObjectUtils.isNotNull(inttraSoDto.getMblNo())) {
+							text += inttraSoDto.getMblNo() + ";";
 						} else {
 							text += ";";
 						}
@@ -1169,13 +1169,13 @@ public class RegularUtils {
 		if (ObjectUtils.isNotNull(inttraSoDto.getBillLadingNumber())) {
 		}
 		//包装件数
-		if (ObjectUtils.isNull(inttraSoDto.getPackagesNumbers())) {
+		if (ObjectUtils.isNull(inttraSoDto.getPackagesNumber())) {
 			msg += "包装件数,";
 		} else {
-			if (regularLength(inttraSoDto.getPackagesNumbers().toString(), 8)) {
+			if (regularLength(inttraSoDto.getPackagesNumber().toString(), 8)) {
 				textLength += "包装件数,";
 			} else {
-				inttraSoDto.setPackagesNumbers(inttraSoDto.getPackagesNumbers().setScale(0, RoundingMode.HALF_UP).abs());
+				inttraSoDto.setPackagesNumber(inttraSoDto.getPackagesNumber().setScale(0, RoundingMode.HALF_UP).abs());
 			}
 		}
 		//包装代码
@@ -1570,6 +1570,260 @@ public class RegularUtils {
 			return map;
 		}
 
+		//运输条款代码
+		if (ObjectUtils.isNull(aplSoDto.getTransportTermCode())) {
+			msg += "运输条款代码,";
+		} else {
+			String serviceCode = serviceTermToInttraCode(aplSoDto.getTransportTermCode());
+			aplSoDto.setTransportTermCode(serviceCode);
+			aplSoDto.setTransportTermName(serviceTermFromInttraCode(serviceCode));
+		}
+
+		//运输条款代码
+		if (ObjectUtils.isNotNull(aplSoDto.getVesselId())) {
+			if (ObjectUtils.isNull(aplSoDto.getVesselCode())) {
+				msg += "APL 船名 " + aplSoDto.getVesselName() + " 代码,";
+			}
+		}
+
+		//船名
+		if (ObjectUtils.isNull(aplSoDto.getVesselName())) {
+			msg += "船名,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getVesselName(),true);
+			if ("200".equals(mapString.get("code"))) {
+				if (regularLength(mapString.get("susscess"), 30)) {
+					textLength += "船名,";
+				} else {
+					aplSoDto.setVesselName(mapString.get("susscess"));
+				}
+			} else {
+				character += "船名,";
+			}
+		}
+		//装货港代码
+		if (ObjectUtils.isNull(aplSoDto.getPolCode())) {
+			msg += "装货港代码,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getPolCode(),true);
+			if ("200".equals(mapString.get("code"))) {
+				aplSoDto.setPolCode(mapString.get("susscess"));
+			} else {
+				character += "装货港代码,";
+			}
+		}
+		//装货港
+		if (ObjectUtils.isNull(aplSoDto.getPolName())) {
+			msg += "装货港,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getPolName(),true);
+			if ("200".equals(mapString.get("code"))) {
+				if (regularLength(mapString.get("susscess"), 256)) {
+					textLength += "装货港,";
+				} else {
+					aplSoDto.setPolName(mapString.get("susscess"));
+				}
+			} else {
+				character += "装货港,";
+			}
+		}
+		//收货地代码
+		if (ObjectUtils.isNull(aplSoDto.getPlaceReceiptCode())) {
+			msg += "收货地代码,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getPlaceReceiptCode(),true);
+			if ("200".equals(mapString.get("code"))) {
+				aplSoDto.setPlaceReceiptCode(mapString.get("susscess"));
+			} else {
+				character += "收货地代码,";
+			}
+		}
+		//收货地
+		if (ObjectUtils.isNull(aplSoDto.getPlaceReceiptName())) {
+			msg += "收货地,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getPlaceReceiptName(),true);
+			if ("200".equals(mapString.get("code"))) {
+				if (regularLength(mapString.get("susscess"), 256)) {
+					textLength += "收货地,";
+				} else {
+					aplSoDto.setPlaceReceiptName(mapString.get("susscess"));
+				}
+			} else {
+				character += "收货地,";
+			}
+		}
+		//卸货港代码
+		if (ObjectUtils.isNull(aplSoDto.getPodCode())) {
+			msg += "卸货港代码,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getPodCode(),true);
+			if ("200".equals(mapString.get("code"))) {
+				aplSoDto.setPodCode(mapString.get("susscess"));
+			} else {
+				character += "卸货港代码,";
+			}
+		}
+		//卸货港
+		if (ObjectUtils.isNull(aplSoDto.getPodName())) {
+			msg += "卸货港,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getPodName(),true);
+			if ("200".equals(mapString.get("code"))) {
+				if (regularLength(mapString.get("susscess"), 256)) {
+					textLength += "卸货港,";
+				} else {
+					aplSoDto.setPodName(mapString.get("susscess"));
+				}
+			} else {
+				character += "卸货港,";
+			}
+		}
+		//交货地代码
+		if (ObjectUtils.isNull(aplSoDto.getPlaceDeliveryCode())) {
+			msg += "交货地代码,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getPlaceDeliveryCode(),true);
+			if ("200".equals(mapString.get("code"))) {
+				aplSoDto.setPlaceDeliveryCode(mapString.get("susscess"));
+			} else {
+				character += "交货地代码,";
+			}
+		}
+		//交货地
+		if (ObjectUtils.isNull(aplSoDto.getPlaceDeliveryName())) {
+			msg += "交货地,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getPlaceDeliveryName(),true);
+			if ("200".equals(mapString.get("code"))) {
+				if (regularLength(mapString.get("susscess"), 256)) {
+					textLength += "交货地,";
+				} else {
+					aplSoDto.setPlaceDeliveryName(mapString.get("susscess"));
+				}
+			} else {
+				character += "交货地,";
+			}
+		}
+		//目的地代码
+		if (ObjectUtils.isNull(aplSoDto.getPlaceDestinationCode())) {
+			msg += "目的地代码,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getPlaceDestinationCode(),true);
+			if ("200".equals(mapString.get("code"))) {
+				aplSoDto.setPlaceDestinationCode(mapString.get("susscess"));
+			} else {
+				character += "目的地代码,";
+			}
+		}
+		//目的地
+		if (ObjectUtils.isNull(aplSoDto.getPlaceDestinationName())) {
+			msg += "目的地,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getPlaceDestinationName(),true);
+			if ("200".equals(mapString.get("code"))) {
+				if (regularLength(mapString.get("susscess"), 256)) {
+					textLength += "目的地,";
+				} else {
+					aplSoDto.setPlaceDestinationName(mapString.get("susscess"));
+				}
+			} else {
+				character += "目的地,";
+			}
+		}
+
+		String text = "";
+		if (ObjectUtils.isNotNull(aplSoDto.getBookingRemarks())) {
+			String bookingRemarks = aplSoDto.getBookingRemarks().trim();
+			if (!bookingRemarks.isEmpty()) {
+				String[] bookingRemarksArr = bookingRemarks.replaceAll("\r", "").split("\n");
+				// 最多 5 行
+				for (int i = 0; i < bookingRemarksArr.length; i++) {
+					String line = bookingRemarksArr[i].trim();
+					if (!line.isEmpty()) {
+						if (text.isEmpty()) {
+							text = escapeEDILine(line);
+						} else {
+							text += ":" + escapeEDILine(line);
+						}
+					}
+					if(i == 4){
+						break;
+					}
+				}
+			}
+		}
+		aplSoDto.setBookingRemarks(text);
+
+		//发货人
+		if (ObjectUtils.isNull(aplSoDto.getHShipper())) {
+			msg += "发货人,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getHShipper(), false);
+			if ("200".equals(mapString.get("code"))) {
+				aplSoDto.setHShipper(mapString.get("susscess"));
+			} else {
+				character += "发货人,";
+			}
+		}
+		//收货人
+		if (ObjectUtils.isNull(aplSoDto.getHConsignee())) {
+			msg += "收货人,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getHConsignee(),false);
+			if ("200".equals(mapString.get("code"))) {
+				aplSoDto.setHConsignee(mapString.get("susscess"));
+			} else {
+				character += "收货人,";
+			}
+		}
+		//通知人
+		if (ObjectUtils.isNull(aplSoDto.getHNotify())) {
+			msg += "通知人,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getHNotify(),false);
+			if ("200".equals(mapString.get("code"))) {
+				aplSoDto.setHNotify(mapString.get("susscess"));
+			} else {
+				character += "通知人,";
+			}
+		}
+
+		if (ObjectUtils.isNotNull(aplSoDto.getHNotify2())) {
+			Map<String, String> mapString = regularEn(aplSoDto.getHNotify2(),false);
+			if ("200".equals(mapString.get("code"))) {
+				aplSoDto.setHNotify2(mapString.get("susscess"));
+			} else {
+				character += "第二通知人,";
+			}
+		}
+
+		//包装代码
+		if (ObjectUtils.isNull(aplSoDto.getPackagesCode())) {
+			msg += "包装代码,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getPackagesCode(),true);
+			if ("200".equals(mapString.get("code"))) {
+				aplSoDto.setPackagesCode(mapString.get("susscess"));
+			} else {
+				character += "包装代码,";
+			}
+		}
+		//包装描述
+		if (ObjectUtils.isNull(aplSoDto.getPackagesDescribe())) {
+			msg += "包装描述,";
+		} else {
+			Map<String, String> mapString = regularEn(aplSoDto.getPackagesDescribe(),true);
+			if ("200".equals(mapString.get("code"))) {
+				if (regularLength(mapString.get("susscess"), 35)) {
+					textLength += "包装描述,";
+				} else {
+					aplSoDto.setPackagesDescribe(mapString.get("susscess"));
+				}
+			} else {
+				character += "包装描述,";
+			}
+		}
 
 		String data = "";
 		if (ObjectUtils.isNotNull(msg)) {

+ 2 - 1
blade-service/blade-los/src/main/java/org/springblade/los/basic/business/controller/BusinessTypeController.java

@@ -88,7 +88,8 @@ public class BusinessTypeController extends BladeController {
 			.like(ObjectUtils.isNotNull(businessType.getStatus()), BusinessType::getStatus, businessType.getStatus())
 			.eq(ObjectUtils.isNotNull(businessType.getEnableFee()), BusinessType::getEnableFee, businessType.getEnableFee())
 			.eq(ObjectUtils.isNotNull(businessType.getEnableVoucher()), BusinessType::getEnableVoucher, businessType.getEnableVoucher())
-			.orderByDesc(BusinessType::getCreateTime);
+			 // .orderByDesc(BusinessType::getCreateTime)
+			.orderBy(true, true, BusinessType::getZorder);
 		IPage<BusinessType> pages = bBusinessTypeService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(pages);
 	}

+ 53 - 11
blade-service/blade-los/src/main/java/org/springblade/los/edi/dto/InttraSoDto.java

@@ -1,6 +1,7 @@
 package org.springblade.los.edi.dto;
 
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.hibernate.validator.constraints.Length;
 import org.springblade.los.Util.LosNotNull;
@@ -67,6 +68,10 @@ public class InttraSoDto {
 	 * 拼箱类型
 	 */
 	private String lclType;
+	/**
+	 * 装箱方式
+	 */
+	private String loadType;
 
 	/*   FTX+AAI+++   */
 	/**
@@ -149,9 +154,14 @@ public class InttraSoDto {
 
 	/*   RFF+BM:   */
 	/**
-	 * 提单号
+	 * 主单号
+	 */
+	private String mblNo;
+
+	/**
+	 * 分单号
 	 */
-	private String billNo;
+	private String hblNo;
 
 	/*   RFF+CT:   */
 	/**
@@ -185,6 +195,18 @@ public class InttraSoDto {
 
 	/*   TDT+20+   */
 	/**
+	 * 船名Id
+	 */
+	private Long vesselId;
+	/**
+	 * 船名
+	 */
+	private String vesselName;
+	/**
+	 * 船名代码
+	 */
+	private String vesselCode;
+	/**
 	 * 航次
 	 */
 	private String voyageNo;
@@ -192,10 +214,6 @@ public class InttraSoDto {
 	 * 船司代码
 	 */
 	private String vesselCarrierCode;
-	/**
-	 * 船名
-	 */
-	private String vesselName;
 
 	/*   LOC+9+   */
 	/**
@@ -243,6 +261,14 @@ public class InttraSoDto {
 	 */
 	private String placeDeliveryName;
 
+	/**
+	 * 目的地代码
+	 */
+	private String placeDestinationCode;
+	/**
+	 * 目的地
+	 */
+	private String placeDestinationName;
 	/*   NAD+CZ+++   */
 	/**
 	 * 发货人
@@ -260,6 +286,10 @@ public class InttraSoDto {
 	 * 通知人
 	 */
 	private String hNotify;
+	/**
+	 * 第二通知人
+	 */
+	private String hNotify2;
 	/*    NAD+CA+   */
 	/**
 	 * 船司代码
@@ -288,6 +318,23 @@ public class InttraSoDto {
 	 */
 	private String attnEmail;
 
+	/**
+	 * 场站 id
+	 */
+	private Long cyId;
+	/**
+	 * 场站代码
+	 */
+	private String cyCode;
+	/**
+	 * 场站中文名称
+	 */
+	private String cyCnName;
+	/**
+	 * 场站英文名称
+	 */
+	private String cyEnName;
+
 	/*   NAD+ST+++   */
 	/**
 	 * TO DOOR 联系信息
@@ -383,11 +430,6 @@ public class InttraSoDto {
 	 */
 	private int billLadingNumber;
 
-	/*     GID+1+   */
-	/**
-	 * 包装件数
-	 */
-	private BigDecimal packagesNumbers;
 	/**
 	 * 包装代码
 	 */

+ 0 - 15
blade-service/blade-los/src/main/java/org/springblade/los/edi/service/IEDISenderService.java

@@ -48,20 +48,5 @@ public interface IEDISenderService {
 	 */
 	FilesCenter sendingAplSi(InttraSoDto aplSoDto, JsonNode ediParamCarrier);
 
-	/**
-	 * edi  SI-提单
-	 *
-	 * @param inttraSiBillDto 数据
-	 * @return 结果
-	 */
-	FilesCenter sendingInttraSiBill(InttraSiBillDto inttraSiBillDto);
-
-	/**
-	 * edi  Apl  so
-	 *
-	 * @param aplSoDto 数据
-	 * @return 结果
-	 */
-	FilesCenter sendingAplSo_bak(APLSoDto aplSoDto);
 
 }

+ 375 - 2064
blade-service/blade-los/src/main/java/org/springblade/los/edi/service/impl/EDISenderServiceImpl.java

@@ -48,15 +48,15 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			return true;
 		}
 
-        // 创建目标目录
-        return dir.mkdirs();
+		// 创建目标目录
+		return dir.mkdirs();
 	}
 
-	private String genEdiLocalFolder(@Validated InttraSoDto edi, JsonNode ediParamCarrier){
+	private String genEdiLocalFolder(@Validated InttraSoDto edi, JsonNode ediParamCarrier) {
 		String pathRoot = "/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload/" + edi.getEdiTypes().getCode() + "/";
 		// 本地测试
 		pathRoot = "D:" + pathRoot;
-		if(!createDir(pathRoot)){
+		if (!createDir(pathRoot)) {
 			pathRoot = "";
 		}
 		return pathRoot;
@@ -81,23 +81,39 @@ public class EDISenderServiceImpl implements IEDISenderService {
 		return ObjectUtils.isNotNull(res) ? res : "";
 	}
 
-	private String genEdiLocalFileName(@Validated InttraSoDto edi, JsonNode ediParamCarrier){
+	public static Boolean readEdiParamBooleanValue(JsonNode json, String keyName, Boolean defaultValue) {
+		Boolean res = defaultValue;
+		if (ObjectUtils.isNotNull(json)) {
+			try {
+				JsonNode js = json.findValue(keyName);
+				if (ObjectUtils.isNotNull(js) && js.isBoolean()) {
+					res = js.asBoolean();
+				}
+			} catch (Exception ignored) {
+
+			}
+		}
+
+		return res;
+	}
+
+	private String genEdiLocalFileName(@Validated InttraSoDto edi, JsonNode ediParamCarrier) {
 		String fileName = "";
-		if(ObjectUtils.isNotNull(ediParamCarrier)){
-			try{
+		if (ObjectUtils.isNotNull(ediParamCarrier)) {
+			try {
 				JsonNode js = ediParamCarrier.findValue("fileName");
-				if(ObjectUtils.isNotNull(js) && js.isArray()){
-					ArrayNode ja = (ArrayNode)js;
+				if (ObjectUtils.isNotNull(js) && js.isArray()) {
+					ArrayNode ja = (ArrayNode) js;
 					for (JsonNode jn : ja) {
-						if(jn.isObject()){
+						if (jn.isObject()) {
 							// type = const or datetime
 							String type = readEdiParamStringValue(jn, "type", "").toLowerCase();
-							if("const".equals(type)){
+							if ("const".equals(type)) {
 								fileName += readEdiParamStringValue(jn, "value", "");
 							}
-							if("datetime".equals(type)){
+							if ("datetime".equals(type)) {
 								String fmt = readEdiParamStringValue(jn, "format", "");
-								if(ObjectUtils.isNotNull(fmt)) {
+								if (ObjectUtils.isNotNull(fmt)) {
 									SimpleDateFormat sdf = new SimpleDateFormat(fmt);
 									Date date = new Date();
 									fileName += sdf.format(date);
@@ -106,11 +122,11 @@ public class EDISenderServiceImpl implements IEDISenderService {
 						}
 					}
 				}
-			}catch (Exception e){
+			} catch (Exception e) {
 				fileName = "";
 			}
 		}
-		if(ObjectUtils.isNull(fileName)){
+		if (ObjectUtils.isNull(fileName)) {
 			SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
 			Date date = new Date();
 			fileName = sdf.format(date) + ".txt";
@@ -118,7 +134,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 		return fileName;
 	}
 
-	public static Map<String, String> sendEDIFileToRemote(InttraSoDto edi, File file){
+	public static Map<String, String> sendEDIFileToRemote(InttraSoDto edi, File file) {
 		Map<String, String> map = new HashMap<>();
 		String code = "0";
 		String message = "文件未发送";
@@ -143,7 +159,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 		return map;
 	}
 
-	private static FilesCenter createEDIFilesCenter(InttraSoDto inttraSoDto, File file){
+	private static FilesCenter createEDIFilesCenter(InttraSoDto inttraSoDto, File file) {
 		Map<String, String> send = sendEDIFileToRemote(inttraSoDto, file);
 
 		//文件地址
@@ -265,16 +281,16 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				count += 1;
 			}
 			/* =================0200=================  */
-			if("HLCU".equals(carrierCode)){
+			if ("HLCU".equals(carrierCode)) {
 				// HLCU 不传订舱号
-			}else {
+			} else {
 				writer.write("RFF+BN:" + (ObjectUtils.isNotNull(inttraSoDto.getBookingNo()) ? inttraSoDto.getBookingNo() : "") + "'");
 				writer.newLine();
 				count += 1;
 			}
-			if (ObjectUtils.isNotNull(inttraSoDto.getBillNo())) {
-				writer.write("RFF+BM:" + inttraSoDto.getBillNo() + "'");
-			}else{
+			if (ObjectUtils.isNotNull(inttraSoDto.getMblNo())) {
+				writer.write("RFF+BM:" + inttraSoDto.getMblNo() + "'");
+			} else {
 				writer.write("RFF+BM:'");
 			}
 			writer.newLine();
@@ -378,12 +394,12 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				inttraSoDto.getFreightForwarderName().trim() :
 				(ObjectUtils.isNotNull(inttraSoDto.getFreightForwarderCode()) ?
 					inttraSoDto.getFreightForwarderCode() : "");
-			if("".equals(fw)){
-				fw="JET MARINE";
+			if ("".equals(fw)) {
+				fw = "JET MARINE";
 			}
-			if("HLCU".equals(carrierCode)) {
+			if ("HLCU".equals(carrierCode)) {
 				// HLCU 不传 NAD+FW
-			}else {
+			} else {
 				List<String> hForwarder = RegularUtils.reformatEDIText(fw, 35, true);
 				writer.write("NAD+FW+++");
 				for (int l = 0; l < hForwarder.size(); l++) {
@@ -416,8 +432,8 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			// 发货人
 			List<String> hShipper = RegularUtils.reformatEDIText(inttraSoDto.getHShipper(), 35, true);
 			writer.write("NAD+CZ+++");
-			for (int l=0; l<hShipper.size(); l++){
-				if (l<5) {
+			for (int l = 0; l < hShipper.size(); l++) {
+				if (l < 5) {
 					writer.write((l > 0) ? ((l == 1) ? "+" : ":") : "");
 					writer.write(hShipper.get(l));
 				} else {
@@ -431,8 +447,8 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			// 发货人
 			List<String> hConsignee = RegularUtils.reformatEDIText(inttraSoDto.getHConsignee(), 35, true);
 			writer.write("NAD+CN+++");
-			for (int l=0; l<hConsignee.size(); l++){
-				if (l<5) {
+			for (int l = 0; l < hConsignee.size(); l++) {
+				if (l < 5) {
 					writer.write((l > 0) ? ((l == 1) ? "+" : ":") : "");
 					writer.write(hConsignee.get(l));
 				} else {
@@ -446,8 +462,8 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			// 发货人
 			List<String> hNotify = RegularUtils.reformatEDIText(inttraSoDto.getHNotify(), 35, true);
 			writer.write("NAD+NI+++");
-			for (int l=0; l<hNotify.size(); l++){
-				if (l<5) {
+			for (int l = 0; l < hNotify.size(); l++) {
+				if (l < 5) {
 					writer.write((l > 0) ? ((l == 1) ? "+" : ":") : "");
 					writer.write(hNotify.get(l));
 				} else {
@@ -459,7 +475,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			count += 1;
 
 			String serviceTermCode = inttraSoDto.getTransportTermCode();
-			if(inttraSoDto.isDoorToServiceTerm()){
+			if (inttraSoDto.isDoorToServiceTerm()) {
 				// DOOR TO
 				String S1 = inttraSoDto.getInttraDoorToName();
 				String S2 = inttraSoDto.getInttraDoorToAddr();
@@ -473,13 +489,13 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				count += 1;
 
 				S1 = inttraSoDto.getInttraDoorToTel();
-				if(ObjectUtils.isNotEmpty(S1)) {
+				if (ObjectUtils.isNotEmpty(S1)) {
 					writer.write("COM+" + S1 + ":TE'");
 					writer.newLine();
 					count += 1;
 				}
 			}
-			if(inttraSoDto.isToDoorServiceTerm()){
+			if (inttraSoDto.isToDoorServiceTerm()) {
 				// TO DOOR
 				String S1 = inttraSoDto.getInttraToDoorName();
 				String S2 = inttraSoDto.getInttraToDoorAddr();
@@ -493,7 +509,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				count += 1;
 
 				S1 = inttraSoDto.getInttraToDoorTel();
-				if(ObjectUtils.isNotEmpty(S1)) {
+				if (ObjectUtils.isNotEmpty(S1)) {
 					writer.write("COM+" + S1 + ":TE'");
 					writer.newLine();
 					count += 1;
@@ -513,118 +529,118 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				count += 1;
 			}
 			/* =================0910=================  */
-				if (ObjectUtils.isNotNull(inttraSoDto.getPackagesNumbers())) {
-					writer.write("GID+1+" + inttraSoDto.getPackagesNumbers() + ":" + inttraSoDto.getPackagesCode() + "::6");
-					if (ObjectUtils.isNotNull(inttraSoDto.getPackagesDescribe())) {
-						writer.write(":" + inttraSoDto.getPackagesDescribe() + "'");
-						writer.newLine();
-					} else {
-						writer.write(":'");
-						writer.newLine();
-					}
-					count += 1;
-				}
-				/* =================0980=================  */
-				if (ObjectUtils.isNotNull(inttraSoDto.getHsCode())) {
-					writer.write("PIA+5+" + inttraSoDto.getHsCode() + ":HS'");
+			if (ObjectUtils.isNotNull(inttraSoDto.getPackagesNumber())) {
+				writer.write("GID+1+" + inttraSoDto.getPackagesNumber() + ":" + inttraSoDto.getPackagesCode() + "::6");
+				if (ObjectUtils.isNotNull(inttraSoDto.getPackagesDescribe())) {
+					writer.write(":" + inttraSoDto.getPackagesDescribe() + "'");
 					writer.newLine();
-					count += 1;
-				}
-				/* =================0990=================  */
-				for (String line : goodsDesc) {
-					writer.write("FTX+AAA+++" + line + "'");
+				} else {
+					writer.write(":'");
 					writer.newLine();
-					count += 1;
 				}
-				/* =================1070=================  */
-				writer.write("MEA+AAE+AAW+MTQ:" + inttraSoDto.getVolumeOfGoods() + "'");
+				count += 1;
+			}
+			/* =================0980=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getHsCode())) {
+				writer.write("PIA+5+" + inttraSoDto.getHsCode() + ":HS'");
 				writer.newLine();
 				count += 1;
-				writer.write("MEA+AAE+WT+KGM:" + inttraSoDto.getGrossWeight() + "'");
+			}
+			/* =================0990=================  */
+			for (String line : goodsDesc) {
+				writer.write("FTX+AAA+++" + line + "'");
 				writer.newLine();
 				count += 1;
-				/* =================1160=================  */
-				List<String> goodsMarks = RegularUtils.reformatEDIText(inttraSoDto.getMarks(), 35, true);
-				for (String line : goodsMarks) {
-					writer.write("PCI++" + line + "'");
+			}
+			/* =================1070=================  */
+			writer.write("MEA+AAE+AAW+MTQ:" + inttraSoDto.getVolumeOfGoods() + "'");
+			writer.newLine();
+			count += 1;
+			writer.write("MEA+AAE+WT+KGM:" + inttraSoDto.getGrossWeight() + "'");
+			writer.newLine();
+			count += 1;
+			/* =================1160=================  */
+			List<String> goodsMarks = RegularUtils.reformatEDIText(inttraSoDto.getMarks(), 35, true);
+			for (String line : goodsMarks) {
+				writer.write("PCI++" + line + "'");
+				writer.newLine();
+				count += 1;
+			}
+
+			/* =================1520=================  */
+			// HLCU 普危混装,按危险品处理
+			if ("danger".equals(cargoType)) {
+				if (ObjectUtils.isNotNull(inttraSoDto.getDgImdgCode())) {
+					writer.write("DGS+IMD+" + inttraSoDto.getDgImdgCode() + "+" + inttraSoDto.getDgUnCode());
+					if (!"0".equals(inttraSoDto.getPackingGroup())) {
+						writer.write("+" + inttraSoDto.getDgFlashPoint() + ":" + inttraSoDto.getDgFlashPointUnit() + "+" + inttraSoDto.getPackingGroup());
+					}
+					writer.write("'");
 					writer.newLine();
 					count += 1;
 				}
-
-				/* =================1520=================  */
-				// HLCU 普危混装,按危险品处理
-				if ("danger".equals(cargoType)) {
-					if (ObjectUtils.isNotNull(inttraSoDto.getDgImdgCode())) {
-						writer.write("DGS+IMD+" + inttraSoDto.getDgImdgCode() + "+" + inttraSoDto.getDgUnCode());
-						if (!"0".equals(inttraSoDto.getPackingGroup())) {
-							writer.write("+" + inttraSoDto.getDgFlashPoint() + ":" + inttraSoDto.getDgFlashPointUnit() + "+" + inttraSoDto.getPackingGroup());
-						}
-						writer.write("'");
-						writer.newLine();
-						count += 1;
-					}
-					/* =================1530=================  */
+				/* =================1530=================  */
 //				INTTRA 不录入
 //				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().toUpperCase() + "'");
-						writer.newLine();
-						count += 1;
-					}
-					/* =================1560=================  */
-					if (ObjectUtils.isNotNull(inttraSoDto.getDgTel())) {
-						writer.write("COM+" + inttraSoDto.getDgTel().toUpperCase() + ":TE'");
-						writer.newLine();
-						count += 1;
-					}
+				/* =================1530=================  */
+				if (ObjectUtils.isNotNull(inttraSoDto.getDgContacts())) {
+					writer.write("CTA+HG+:" + inttraSoDto.getDgContacts().toUpperCase() + "'");
+					writer.newLine();
+					count += 1;
+				}
+				/* =================1560=================  */
+				if (ObjectUtils.isNotNull(inttraSoDto.getDgTel())) {
+					writer.write("COM+" + inttraSoDto.getDgTel().toUpperCase() + ":TE'");
+					writer.newLine();
+					count += 1;
 				}
+			}
 
-				if (ObjectUtils.isNotNull(inttraSoDto.getPreCntrs())) {
-					List<Map<String, Object>> mapList = inttraSoDto.getPreCntrs();
-					for (Map<String, Object> map1 : mapList) {
-						/* =================1660=================  */
-						writer.write("EQD+CN++" + map1.get("sizeType"));
-						writer.write("+" + (map1.get("isSoc").equals(1) ? "1" : "2") + "'");
+			if (ObjectUtils.isNotNull(inttraSoDto.getPreCntrs())) {
+				List<Map<String, Object>> mapList = inttraSoDto.getPreCntrs();
+				for (Map<String, Object> map1 : mapList) {
+					/* =================1660=================  */
+					writer.write("EQD+CN++" + map1.get("sizeType"));
+					writer.write("+" + (map1.get("isSoc").equals(1) ? "1" : "2") + "'");
+					writer.newLine();
+					count += 1;
+					/* =================1670=================  */
+					if (ObjectUtils.isNotNull(map1.get("cntrQty"))) {
+						writer.write("EQN+" + map1.get("cntrQty") + "'");
 						writer.newLine();
 						count += 1;
-						/* =================1670=================  */
-						if (ObjectUtils.isNotNull(map1.get("cntrQty"))) {
-							writer.write("EQN+" + map1.get("cntrQty") + "'");
+					}
+					/* =================1690=================  */
+					if ("reefer".equals(cargoType)) {
+						if (ObjectUtils.isNotNull(map1.get("ventilation"))) {
+							writer.write("MEA+AAE+AAS+CBM:" + map1.get("ventilation") + "'");
 							writer.newLine();
 							count += 1;
 						}
-						/* =================1690=================  */
-						if ("reefer".equals(cargoType)) {
-							if (ObjectUtils.isNotNull(map1.get("ventilation"))) {
-								writer.write("MEA+AAE+AAS+CBM:" + map1.get("ventilation") + "'");
+						/* =================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();
-								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;
-							}
-							if (ObjectUtils.isNotNull(map1.get("humidity"))) {
-								writer.write("MEA+AAE+AAO+HMD:" + map1.get("humidity") + "'");
+							} else {
+								writer.write("'");
 								writer.newLine();
-								count += 1;
 							}
+							count += 1;
+						}
+						if (ObjectUtils.isNotNull(map1.get("humidity"))) {
+							writer.write("MEA+AAE+AAO+HMD:" + map1.get("humidity") + "'");
+							writer.newLine();
+							count += 1;
 						}
 					}
 				}
+			}
 
 			if (ObjectUtils.isNotNull(inttraSoDto.getContactInformation())) {
 				writer.write("NAD+MR+++" + inttraSoDto.getContactInformation() + "'");
@@ -663,7 +679,8 @@ public class EDISenderServiceImpl implements IEDISenderService {
 
 	/**
 	 * 发送 INTTRA SI
-	 * @param inttraSiDto 数据
+	 *
+	 * @param inttraSiDto     数据
 	 * @param ediParamCarrier
 	 * @return
 	 */
@@ -678,7 +695,9 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			BufferedWriter writer = new BufferedWriter(new FileWriter(file));
 			int count = 0;
 			String carrierCode = inttraSiDto.getCarrierCode();
+			// dry=普货 danger=危险品 reefer=冻柜
 			String cargoType = inttraSiDto.getCargoType();
+			Boolean mixedCargo = readEdiParamBooleanValue(ediParamCarrier, "mixedCargo", false);
 
 			// 向文件写入数据
 			/* =================0005=================  */
@@ -781,12 +800,12 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			writer.write("RFF+BN:" + (ObjectUtils.isNotNull(inttraSiDto.getBookingNo()) ? inttraSiDto.getBookingNo() : "") + "'");
 			writer.newLine();
 			count += 1;
-			if (ObjectUtils.isNotNull(inttraSiDto.getBillNo())) {
-				writer.write("RFF+BM:" + inttraSiDto.getBillNo() + "'");
+			if (ObjectUtils.isNotNull(inttraSiDto.getMblNo())) {
+				writer.write("RFF+BM:" + inttraSiDto.getMblNo() + "'");
 				writer.newLine();
 				count += 1;
 			}
-			if ("MAEU".equals(carrierCode)){
+			if ("MAEU".equals(carrierCode)) {
 				// 其他船公司不填
 				if (ObjectUtils.isNotNull(inttraSiDto.getCorpArgreementNo())) {
 					writer.write("RFF+CT:" + inttraSiDto.getCorpArgreementNo() + "'");
@@ -841,9 +860,9 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				count += 1;
 			}
 			/* =================0520=================  */
-			if(Objects.equals(carrierCode, "CMDU") && !"27".equals(inttraSiDto.getTransportTermCode())){
-				if("28".equals(inttraSiDto.getTransportTermCode()) || "30".equals(inttraSiDto.getTransportTermCode())){
-					if(!inttraSiDto.getPlaceDeliveryCode().equals(inttraSiDto.getPodCode())){
+			if (Objects.equals(carrierCode, "CMDU") && !"27".equals(inttraSiDto.getTransportTermCode())) {
+				if ("28".equals(inttraSiDto.getTransportTermCode()) || "30".equals(inttraSiDto.getTransportTermCode())) {
+					if (!inttraSiDto.getPlaceDeliveryCode().equals(inttraSiDto.getPodCode())) {
 						writer.write("LOC+7+" + inttraSiDto.getPlaceDeliveryCode() + "::6:" + inttraSiDto.getPlaceDeliveryName() + "'");
 						writer.newLine();
 						count += 1;
@@ -855,14 +874,14 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				writer.write("LOC+11+" + inttraSiDto.getPodCode() + "::6:" + inttraSiDto.getPodName() + "'");
 				writer.newLine();
 				count += 1;
-				if("29".equals(inttraSiDto.getTransportTermCode()) || "30".equals(inttraSiDto.getTransportTermCode())){
-					if(!inttraSiDto.getPlaceReceiptCode().equals(inttraSiDto.getPolCode())){
+				if ("29".equals(inttraSiDto.getTransportTermCode()) || "30".equals(inttraSiDto.getTransportTermCode())) {
+					if (!inttraSiDto.getPlaceReceiptCode().equals(inttraSiDto.getPolCode())) {
 						writer.write("LOC+88+" + inttraSiDto.getPlaceReceiptCode() + "::6:" + inttraSiDto.getPlaceReceiptName() + "'");
 						writer.newLine();
 						count += 1;
 					}
 				}
-			}else {
+			} else {
 				writer.write("LOC+7+" + inttraSiDto.getPlaceDeliveryCode() + "::6:" + inttraSiDto.getPlaceDeliveryName() + "'");
 				writer.newLine();
 				count += 1;
@@ -903,8 +922,8 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			// 发货人
 			List<String> hShipper = RegularUtils.reformatEDIText(inttraSiDto.getHShipper(), 35, true);
 			writer.write("NAD+CZ+++");
-			for (int l=0; l<hShipper.size(); l++){
-				if (l<5) {
+			for (int l = 0; l < hShipper.size(); l++) {
+				if (l < 5) {
 					writer.write((l > 0) ? ((l == 1) ? "+" : ":") : "");
 					writer.write(hShipper.get(l));
 				} else {
@@ -918,8 +937,8 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			// 发货人
 			List<String> hConsignee = RegularUtils.reformatEDIText(inttraSiDto.getHConsignee(), 35, true);
 			writer.write("NAD+CN+++");
-			for (int l=0; l<hConsignee.size(); l++){
-				if (l<5) {
+			for (int l = 0; l < hConsignee.size(); l++) {
+				if (l < 5) {
 					writer.write((l > 0) ? ((l == 1) ? "+" : ":") : "");
 					writer.write(hConsignee.get(l));
 				} else {
@@ -933,8 +952,8 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			// 发货人
 			List<String> hNotify = RegularUtils.reformatEDIText(inttraSiDto.getHNotify(), 35, true);
 			writer.write("NAD+NI+++");
-			for (int l=0; l<hNotify.size(); l++){
-				if (l<5) {
+			for (int l = 0; l < hNotify.size(); l++) {
+				if (l < 5) {
 					writer.write((l > 0) ? ((l == 1) ? "+" : ":") : "");
 					writer.write(hNotify.get(l));
 				} else {
@@ -960,13 +979,13 @@ public class EDISenderServiceImpl implements IEDISenderService {
 
 			/* =================0910=================  */
 			// 赫伯罗特普危混装,每箱输入明细,普危混装时,为危险品
-			if("danger".equals(cargoType) && "HLCU".equals(carrierCode)) {
+			if ("danger".equals(cargoType) && mixedCargo) {
 				if (ObjectUtils.isNotNull(inttraSiDto.getLoadedCntrs())) {
 					List<Map<String, Object>> mapList = inttraSiDto.getLoadedCntrs();
 					// 多箱每箱从 1 开始?
 					Integer gid = 0;
 					for (Map<String, Object> map1 : mapList) {
-						if(ObjectUtils.isNotNull(map1.get("commodityList"))){
+						if (ObjectUtils.isNotNull(map1.get("commodityList"))) {
 							List<ContainersCommodity> cargoList = (List<ContainersCommodity>) map1.get("commodityList");
 							for (ContainersCommodity cargo : cargoList) {
 								// GID
@@ -980,7 +999,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 											pkgsCode = RegularUtils.getEdiCode("INTTRA", bPackages.getExtendedData());
 										}
 									}
-									if(ObjectUtils.isNull(pkgsCode)){
+									if (ObjectUtils.isNull(pkgsCode)) {
 										throw new RuntimeException("缺少包装单位或 INTTRA 代码");
 									}
 									writer.write("GID+" + gid + "+" + cargo.getQuantity() + ":" + pkgsCode + "::6");
@@ -991,7 +1010,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 									}
 									writer.newLine();
 									count += 1;
-								}else{
+								} else {
 									throw new RuntimeException("缺少件数");
 								}
 
@@ -1069,9 +1088,9 @@ public class EDISenderServiceImpl implements IEDISenderService {
 						}
 					}
 				}
-			}else {
-				if (ObjectUtils.isNotNull(inttraSiDto.getPackagesNumbers())) {
-					writer.write("GID+1+" + inttraSiDto.getPackagesNumbers() + ":" + inttraSiDto.getPackagesCode() + "::6");
+			} else {
+				if (ObjectUtils.isNotNull(inttraSiDto.getPackagesNumber())) {
+					writer.write("GID+1+" + inttraSiDto.getPackagesNumber() + ":" + inttraSiDto.getPackagesCode() + "::6");
 					if (ObjectUtils.isNotNull(inttraSiDto.getPackagesDescribe())) {
 						writer.write(":" + inttraSiDto.getPackagesDescribe() + "'");
 						writer.newLine();
@@ -1242,6 +1261,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 
 	/**
 	 * 发送 APL SO
+	 *
 	 * @param aplSoDto
 	 * @return
 	 */
@@ -1259,6 +1279,217 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			String cargoType = aplSoDto.getCargoType();
 
 			// 向文件写入数据
+			// 00 HEAD RECORD
+			// 2=增加  3=删除 4=变更  9=原始
+			writer.write("00:IFTMBF:BOOKING:9:" + aplSoDto.getSenderCode() + ":APLMBF:" + aplSoDto.getFileDate() + "'");
+			writer.newLine();
+			count++;
+
+			// 02 BOOKING 订舱信息
+			// 记录类型标识
+			writer.write("02");
+			// 运编号
+			writer.write(":" + (ObjectUtils.isNotNull(aplSoDto.getBookingNo()) ? aplSoDto.getBookingNo() : (ObjectUtils.isNotNull(aplSoDto.getMblNo()) ? aplSoDto.getMblNo() : "")));
+			// 提单号
+			writer.write(":" + (ObjectUtils.isNotNull(aplSoDto.getMblNo()) ? aplSoDto.getMblNo() : ""));
+			// 交货条款 CY-CY(pier-pier/port):30
+			//CY-CFS(pier/port-door): 29
+			//CFS-CY(door-pier/port): 28
+			//CFS-CFS(door-door): 27
+			writer.write(":" + aplSoDto.getTransportTermName());
+			// 货代方企业名称
+			writer.write(":" + aplSoDto.getSenderCode());
+			// 即接受订舱的人的代码 + 签单人说明 + 询价单位 + 国外订舱单位 + 转船标识 + 分批 + 装期 + 效期 + 运费协议号 + 费率本代码 + 服务合同号 + BOND NO + 舱位互用标识
+			writer.write(":APLMBF::::::::" + aplSoDto.getCorpArgreementNo() + "::::'");
+			writer.newLine();
+			count++;
+
+			// 03 提单信息,不填
+
+			// 11 VESSEL 船舶信息
+			// 记录类型标识 + 船舶呼号 +  船名 + 航次 + 船舶经营人
+			writer.write("11:" + aplSoDto.getVesselCode() + ":" + aplSoDto.getVesselName() + ":" + aplSoDto.getVoyageNo() + ":APL'" );
+			writer.newLine();
+			count++;
+
+			// 12	PORTS 地点信息
+			writer.write("11");
+			// 收货地代码 + 收货地代名称
+			writer.write(":" + aplSoDto.getPlaceReceiptCode() + ":" + aplSoDto.getPlaceReceiptName() );
+			// 装货港代码 + 装货港
+			writer.write(":" + aplSoDto.getPolCode() + ":" + aplSoDto.getPolName() );
+			// 卸货港代码 + 卸货港代
+			writer.write(":" + aplSoDto.getPodCode() + ":" + aplSoDto.getPodName() );
+			// 中转港代码 + 中转港 不填
+			writer.write("::");
+			// 交货地代码  + 交货地
+			writer.write(":" + aplSoDto.getPlaceDeliveryCode() + ":" + aplSoDto.getPlaceDeliveryName() );
+			// 目的地代码  + 目的地
+			writer.write(":" + aplSoDto.getPlaceDestinationCode() + ":" + aplSoDto.getPlaceDestinationName() );
+			// 堆场代码
+			// if(V_Depotid=142,'L&S',if(V_Depotid=167,'ITC',if(V_Depotid=341,'COS',if(V_Depotid=342,'MIN','QCT'))))
+			String depotCode = "";
+			writer.write(":" + depotCode + "'");
+			writer.newLine();
+			count++;
+
+			// 14 FREIGHT CLAUSE             运费条款
+			String pm = aplSoDto.getPaymentType();
+			writer.write("14:" + ("PP".equals(pm) ? "P" : ("CC".equals(pm) ? "C" : "OTH")) + ":" + ("PP".equals(pm) ? "FREIGHT PREPAID" : ("CC".equals(pm) ? "FREIGHT COLLECT" : "OTHER")) + "'");
+			writer.newLine();
+			count++;
+
+			// 17 REMARKS 订舱备注 其他信息
+			writer.write("17:" + aplSoDto.getBookingRemarks() + "'");
+			writer.newLine();
+			count++;
+
+
+			// 20	SHIPPER 发货人
+			// 处理收发通之前,先处理货描,因为收发通多余的部分要追加到货描
+			List<String> goodsDesc = RegularUtils.reformatEDIText(aplSoDto.getGoodsDesc(), 70, true);
+			List<String> goodsDescAddtion = new ArrayList<>();
+			// 发货人
+			List<String> hShipper = RegularUtils.reformatEDIText(aplSoDto.getHShipper(), 35, true);
+			writer.write("20:"); // 发货人代码为空
+			for (int l = 0; l < hShipper.size(); l++) {
+				if (l < 5) {
+					writer.write(":" + hShipper.get(l));
+				} else {
+					goodsDescAddtion.add("*" + hShipper.get(l));
+				}
+			}
+			writer.write("'");
+			writer.newLine();
+			count += 1;
+
+			// 21	CONSIGNEE 收货人
+			List<String> hConsignee = RegularUtils.reformatEDIText(aplSoDto.getHConsignee(), 35, true);
+			writer.write("21:"); // 收货人代码为空
+			for (int l = 0; l < hConsignee.size(); l++) {
+				if (l < 5) {
+					writer.write(":" + hConsignee.get(l));
+				} else {
+					goodsDescAddtion.add("**" + hConsignee.get(l));
+				}
+			}
+			writer.write("'");
+			writer.newLine();
+			count += 1;
+
+			// 22	NOTIFY PARTY 通知人
+			List<String> hNotify = RegularUtils.reformatEDIText(aplSoDto.getHNotify(), 35, true);
+			writer.write("22:"); // 通知人代码为空
+			for (int l = 0; l < hNotify.size(); l++) {
+				if (l < 5) {
+					writer.write(":" + hNotify.get(l));
+				} else {
+					goodsDescAddtion.add("***" + hNotify.get(l));
+				}
+			}
+			writer.write("'");
+			writer.newLine();
+			count += 1;
+
+			// 23	NOTIFY PARTY 第二通知人
+			if(ObjectUtils.isNotNull(aplSoDto.getHNotify2())) {
+				List<String> hNotify2 = RegularUtils.reformatEDIText(aplSoDto.getHNotify2(), 35, true);
+				writer.write("23:"); // 通知人代码为空
+				for (int l = 0; l < hNotify2.size(); l++) {
+					if (l < 5) {
+						writer.write(":" + hNotify2.get(l));
+						// 多余抛弃
+					}
+				}
+				writer.write("'");
+				writer.newLine();
+				count += 1;
+			}
+
+			// 41 CARGO OF BOOKING  订舱货物
+			// 注:1)货物有两种包装,如是大包装(如托盘),则必须同时填小包装件数和包装类型;
+			// 2) CARGO ID (货物标识)的填法: S=普通,  R=冷冻,   D=危险 ,  O=非标
+			// 41:1::S:8378:CT:CARTONS:20559:138.8::::::20559'
+			// 记录类型标识 + 货物序号 + 货类代码 + 货物标识
+			writer.write("40:1::" + ("danger".equals(cargoType) ? "D" : ("reefer".equals(cargoType) ? "R" : "S")));
+			// 第一层包装件数 + 第一层包装类型 + 第一层包装说明
+			writer.write(":" + aplSoDto.getPackagesNumber() + ":" + aplSoDto.getPackagesCode() + ":" + aplSoDto.getPackagesDescribe());
+			// 第一层包装皮重 + 第一层包装尺码
+			writer.write(":" + aplSoDto.getGrossWeight() + ":" + aplSoDto.getVolumeOfGoods() + ":" + aplSoDto.getPackagesDescribe());
+			// 第二层包装件数 + 第二层包装类型 + 第二层包装说明 + 第二层包装皮重 + 第二层包装尺码 + 货毛重
+			writer.write("::::::" + aplSoDto.getGrossWeight() + "'");
+			writer.newLine();
+			count += 1;
+
+			// 43 DANGEROUS, REEFER & OOG 危险品,冷藏和超标信息
+			// 温度中,除正(+)负(-)号及小数点外,最多只能三位数字。
+			if (ObjectUtils.isNotNull(aplSoDto.getPreCntrs())) {
+				List<Map<String, Object>> mapList = aplSoDto.getPreCntrs();
+				if(mapList.size()>0){
+					Map<String, Object> map = mapList.get(0);
+					if(ObjectUtils.isNotNull(map.get("temperature")) && ObjectUtils.isNotNull(map.get("ventilation"))){
+						// '43::::::::::'+fieldbyName('Draught').asString+':C:'+FieldbyName('Temperature').asString+':::'
+						writer.write("43::::::::::" + map.get("ventilation") + ":C:" + map.get("temperature") + ":::'");
+						writer.newLine();
+						count += 1;
+					}
+				}
+			}
+
+			// 44	MARKS & NOS. 唛头 1-10 行
+			List<String> goodsMarks = RegularUtils.reformatEDIText(aplSoDto.getMarks(), 35, true);
+			writer.write("44");
+			if(goodsMarks.size()>0) {
+				for (String line : goodsMarks) {
+					writer.write(":" + line);
+				}
+			}else{
+				writer.write(":");
+			}
+			writer.write("'");
+			writer.newLine();
+			count += 1;
+
+			// 47 CARGO DESCRIPTION 货物描述 5行一组
+			Integer lineSpecCount = 0;
+			String dl = "";
+			for(String line : goodsDesc){
+				if(lineSpecCount<=4){
+					dl += ":" + line;
+				}
+				if(lineSpecCount==4){
+					writer.write("47" + dl + "'");
+					writer.newLine();
+					count += 1;
+
+					lineSpecCount = 0;
+					dl = "";
+				}
+			}
+			for(String line : goodsDescAddtion) {
+				writer.write("47:" + line + "'");
+				writer.newLine();
+				count += 1;
+			}
+
+			// 48 CONTAINER OF BOOKING 订舱预配箱
+			if (ObjectUtils.isNotNull(aplSoDto.getPreCntrs())) {
+				List<Map<String, Object>> mapList = aplSoDto.getPreCntrs();
+				for (Map<String, Object> map1 : mapList) {
+					// 记录类型标识 + 集装箱尺寸类 + 集装箱箱数
+					writer.write("48:" + map1.get("sizeType") + ":" + map1.get("cntrQty") );
+					// 集装箱状态 + 主拼号 + 装箱方式 自选/内装/自派车队等
+					writer.write(":" + ("FCL".equals(aplSoDto.getLoadType()) ? "F" : "L") + "::" );
+					//  装箱地点代码 + 装箱地点说明 + 货主箱标志
+					writer.write(":" + aplSoDto.getCyCode() + "::N'" );
+					writer.newLine();
+					count += 1;
+				}
+			}
+
+			// 99 TRAILER RECORD              尾记录
+			// RECORD TOTAL OF FILE   记录总数	9(6)	包括:头、尾记录
+			writer.write("99:" + (++count) + "'");
 
 			writer.close();
 
@@ -1270,6 +1501,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 
 	/**
 	 * 发送 APL SI
+	 *
 	 * @param aplSiDto
 	 * @return
 	 */
@@ -1295,1926 +1527,5 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			throw new SecurityException("生成edi文件失败");
 		}
 	}
+}
 
-	@Override
-	public FilesCenter sendingInttraSiBill(@Validated InttraSiBillDto inttraSiBillDto) {
-		try {
-			//生成edi文件
-			File file = new File("/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload", inttraSiBillDto.getEdiTypes().getCode() + ".txt");
-			file.createNewFile();
-			// 打开文件输出流进行写入操作
-			BufferedWriter writer = new BufferedWriter(new FileWriter(file));
-			int count = 0;
-			// 向文件写入数据
-			/* =================0005=================  */
-			writer.write("UNB+UNOC:2+" + inttraSiBillDto.getIdentifying() + ":ZZZ+INTTRA:ZZZ+" + inttraSiBillDto.getDate() + "+" + inttraSiBillDto.getFileExchangeNumber() + "'");
-			writer.newLine();
-			count += 1;
-			/* =================0010=================  */
-			writer.write("UNH+" + inttraSiBillDto.getInformationNo() + "+IFTMIN:D:99B:UN'");
-			writer.newLine();
-			count += 1;
-			/* =================0020=================  */
-			writer.write("BGM+340+" + inttraSiBillDto.getIdentificationCode() + "+" + inttraSiBillDto.getFilesFunction() + "'");
-			writer.newLine();
-			count += 1;
-			/* =================0050=================  */
-			writer.write("DTM+137:" + inttraSiBillDto.getFilesDate() + "203'");
-			writer.newLine();
-			count += 1;
-			/* =================0060=================  */
-			writer.write("TSR+" + inttraSiBillDto.getTransportTermCode() + "+" + inttraSiBillDto.getLclType() + "'");
-			writer.newLine();
-			count += 1;
-			/* =================0070=================  */
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getCurCode())) {
-				writer.write("CUX+4:" + inttraSiBillDto.getCurCode() + "'");
-				writer.newLine();
-				count += 1;
-			}
-			/* =================0080=================  */
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getFeeAmount())) {
-				writer.write("MOA+44:" + inttraSiBillDto.getFeeAmount() + "'");
-				writer.newLine();
-				count += 1;
-			}
-			/* =================0090=================  */
-			writer.write("FTX+" + inttraSiBillDto.getRemarksCode() + "");
-			if ("CCI".equals(inttraSiBillDto.getRemarksCode())) {
-				writer.write("++MFS");
-				inttraSiBillDto.setRemarksContentCode("MFS");
-			} else if ("DOC".equals(inttraSiBillDto.getRemarksCode())) {
-				writer.write("++SMI");
-				inttraSiBillDto.setRemarksContentCode("SMI");
-			} else {
-				//todo
-			}
-			if ("BLC".equals(inttraSiBillDto.getRemarksCode())) {
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getRemarks())) {
-					if (inttraSiBillDto.getRemarks().indexOf("NA") > 0) {
-						throw new RuntimeException("edi数据错误");
-					}
-				}
-			}
-			if ("MFS".equals(inttraSiBillDto.getRemarksContentCode())) {
-				writer.write("+" + inttraSiBillDto.getRemarks());
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getRemarksTwo())) {
-					writer.write(":" + inttraSiBillDto.getRemarksTwo());
-				} else {
-					throw new RuntimeException("文本内容2不能为空");
-				}
-			}
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getRemarksThree())) {
-				writer.write(":" + inttraSiBillDto.getRemarksThree() + "'");
-				writer.newLine();
-			} else {
-				writer.write("'");
-				writer.newLine();
-			}
-			count += 1;
-			/* =================0100=================  */
-			writer.write("CNT+" + inttraSiBillDto.getSumType() + ":" + inttraSiBillDto.getSumValue());
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getSumUnit())) {
-				writer.write(":" + inttraSiBillDto.getSumUnit() + "'");
-				writer.newLine();
-			} else {
-				writer.write("'");
-				writer.newLine();
-			}
-			count += 1;
-			/* =================0140=================  */
-			writer.write("LOC+" + inttraSiBillDto.getLocationType());
-			if ("73".equals(inttraSiBillDto.getLocationType())) {
-				if (ObjectUtils.isNull(inttraSiBillDto.getLocationCode())) {
-					throw new RuntimeException("提单签发地点代码不能为空");
-				}
-				if (ObjectUtils.isNull(inttraSiBillDto.getDefine())) {
-					throw new RuntimeException("提单签发地点代码定义者不能为空");
-				}
-			}
-			count += 1;
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getCountryCode())) {
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getLocationCode())) {
-					writer.write("+" + inttraSiBillDto.getLocationCode());
-				} else {
-					writer.write("+");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getDefine())) {
-					writer.write("::" + inttraSiBillDto.getDefine());
-				} else {
-					writer.write("::");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getLocation())) {
-					writer.write(":" + inttraSiBillDto.getLocation());
-				} else {
-					writer.write(":");
-				}
-				writer.write("+" + inttraSiBillDto.getCountryCode());
-			} else {
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getLocation())) {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getLocationCode())) {
-						writer.write("+" + inttraSiBillDto.getLocationCode());
-					} else {
-						writer.write("+");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getDefine())) {
-						writer.write("::" + inttraSiBillDto.getDefine());
-					} else {
-						writer.write("::");
-					}
-					writer.write(":" + inttraSiBillDto.getLocation());
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getDefine())) {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getLocationCode())) {
-							writer.write("+" + inttraSiBillDto.getLocationCode());
-						} else {
-							writer.write("+");
-						}
-						writer.write("::" + inttraSiBillDto.getDefine());
-					} else {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getLocationCode())) {
-							writer.write("+" + inttraSiBillDto.getLocationCode());
-						}
-					}
-				}
-			}
-			writer.write("'");
-			writer.newLine();
-			count += 1;
-			/* =================0150=================  */
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getIssueDate())) {
-				writer.write("DTM+95:" + inttraSiBillDto.getIssueDate());
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getIssueDateType())) {
-					writer.write(":" + inttraSiBillDto.getIssueDateType());
-					writer.newLine();
-				} else {
-					writer.write("'");
-					writer.newLine();
-				}
-				count += 1;
-			}
-			/* =================0200=================  */
-			writer.write("RFF+" + inttraSiBillDto.getBillNoType() + ":" + inttraSiBillDto.getBillNoValue() + "'");
-			writer.newLine();
-			count += 1;
-			/* =================0210=================  */
-			if ("LC".equals(inttraSiBillDto.getBillNoType())) {
-				writer.write("DTM+" + inttraSiBillDto.getValidityPeriodType());
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getValidityPeriod())) {
-					writer.write(":" + inttraSiBillDto.getValidityPeriod());
-				}
-				writer.write(":102'");
-				writer.newLine();
-				count += 1;
-			}
-			/* =================0320=================  */
-			writer.write("CPI++" + inttraSiBillDto.getPaymentType() + "++" + inttraSiBillDto.getPaymentTypeCode() + "'");
-			writer.newLine();
-			count += 1;
-			/* =================0480=================  */
-			writer.write("TDT+20");
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getVesselDefine())) {
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getVoyageNo())) {
-					writer.write("+" + inttraSiBillDto.getVoyageNo());
-				} else {
-					writer.write("+");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getTransportMode())) {
-					writer.write("+" + inttraSiBillDto.getTransportMode());
-				} else {
-					writer.write("+");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getVesselCarrierCode())) {
-					writer.write("++" + inttraSiBillDto.getVesselCarrierCode());
-				} else {
-					writer.write("++");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getVesselCarrierListCode())) {
-					writer.write(":" + inttraSiBillDto.getVesselCarrierListCode());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getVesselCode())) {
-					writer.write("+++" + inttraSiBillDto.getVesselCode());
-				} else {
-					writer.write("+++");
-				}
-				writer.write("::" + inttraSiBillDto.getVesselDefine());
-			} else {
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getVesselCode())) {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getVoyageNo())) {
-						writer.write("+" + inttraSiBillDto.getVoyageNo());
-					} else {
-						writer.write("+");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getTransportMode())) {
-						writer.write("+" + inttraSiBillDto.getTransportMode());
-					} else {
-						writer.write("+");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getVesselCarrierCode())) {
-						writer.write("++" + inttraSiBillDto.getVesselCarrierCode());
-					} else {
-						writer.write("++");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getVesselCarrierListCode())) {
-						writer.write(":" + inttraSiBillDto.getVesselCarrierListCode());
-					} else {
-						writer.write(":");
-					}
-					writer.write("+++" + inttraSiBillDto.getVesselCode());
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getVesselCarrierListCode())) {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getVoyageNo())) {
-							writer.write("+" + inttraSiBillDto.getVoyageNo());
-						} else {
-							writer.write("+");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getTransportMode())) {
-							writer.write("+" + inttraSiBillDto.getTransportMode());
-						} else {
-							writer.write("+");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getVesselCarrierCode())) {
-							writer.write("++" + inttraSiBillDto.getVesselCarrierCode());
-						} else {
-							writer.write("++");
-						}
-						writer.write(":" + inttraSiBillDto.getVesselCarrierListCode());
-					} else {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getVesselCarrierCode())) {
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getVoyageNo())) {
-								writer.write("+" + inttraSiBillDto.getVoyageNo());
-							} else {
-								writer.write("+");
-							}
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getTransportMode())) {
-								writer.write("+" + inttraSiBillDto.getTransportMode());
-							} else {
-								writer.write("+");
-							}
-							writer.write("++" + inttraSiBillDto.getVesselCarrierCode());
-						} else {
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getTransportMode())) {
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getVoyageNo())) {
-									writer.write("+" + inttraSiBillDto.getVoyageNo());
-								} else {
-									writer.write("+");
-								}
-								writer.write("+" + inttraSiBillDto.getTransportMode());
-							} else {
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getVoyageNo())) {
-									writer.write("+" + inttraSiBillDto.getVoyageNo());
-								}
-							}
-						}
-					}
-				}
-			}
-
-			writer.write(":" + inttraSiBillDto.getVesselName() + "'");
-			writer.newLine();
-			count += 1;
-			/* =================0520=================  */
-			writer.write("LOC+" + inttraSiBillDto.getAddressType());
-			if ("9".equals(inttraSiBillDto.getAddressType()) || "11".equals(inttraSiBillDto.getAddressType())) {
-				if (ObjectUtils.isNull(inttraSiBillDto.getAddressCode())) {
-					throw new RuntimeException("edi地点代码不能为空");
-				}
-			}
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getAddressCountryCode())) {
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getAddressCode())) {
-					writer.write("+" + inttraSiBillDto.getAddressCode() + "::" + inttraSiBillDto.getAddressDefine());
-				} else {
-					writer.write("+::");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getAddressDescribe())) {
-					writer.write("+" + inttraSiBillDto.getAddressDescribe());
-				} else {
-					writer.write("+");
-				}
-				writer.write("+" + inttraSiBillDto.getAddressCountryCode());
-			} else {
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getAddressDescribe())) {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getAddressCode())) {
-						writer.write("+" + inttraSiBillDto.getAddressCode() + "::" + inttraSiBillDto.getAddressDefine());
-					} else {
-						writer.write("+::");
-					}
-					writer.write("+" + inttraSiBillDto.getAddressDescribe());
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getAddressCode())) {
-						writer.write("+" + inttraSiBillDto.getAddressCode() + "::" + inttraSiBillDto.getAddressDefine());
-					}
-				}
-			}
-
-			writer.write("'");
-			writer.newLine();
-			count += 1;
-			/* =================0580=================  */
-			writer.write("NAD+" + inttraSiBillDto.getCompanyType());
-			if ("CA".equals(inttraSiBillDto.getCompanyType()) || "HI".equals(inttraSiBillDto.getCompanyType())) {
-				if (ObjectUtils.isNull(inttraSiBillDto.getCompanyCode()) ||
-					ObjectUtils.isNull(inttraSiBillDto.getCompanyListName()) ||
-					ObjectUtils.isNull(inttraSiBillDto.getCompanyDefine())) {
-					throw new RuntimeException("edi公司代码/列表名/代码定义者不能为空");
-				}
-			}
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyCountryCode())) {
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyCode()) &&
-					ObjectUtils.isNotNull(inttraSiBillDto.getCompanyListName()) &&
-					ObjectUtils.isNotNull(inttraSiBillDto.getCompanyDefine())) {
-					writer.write("+" + inttraSiBillDto.getCompanyCode() + ":" + inttraSiBillDto.getCompanyListName() + ":" + inttraSiBillDto.getCompanyDefine());
-				} else {
-					writer.write("+::");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressOne())) {
-					writer.write("+" + inttraSiBillDto.getStructuredAddressOne());
-				} else {
-					writer.write("+");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressTwo())) {
-					writer.write(":" + inttraSiBillDto.getStructuredAddressTwo());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameOne())) {
-					writer.write("+" + inttraSiBillDto.getCompanyNameOne());
-				} else {
-					writer.write("+");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameTwo())) {
-					writer.write(":" + inttraSiBillDto.getCompanyNameTwo());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressOne())) {
-					writer.write("+" + inttraSiBillDto.getCompanyAddressOne());
-				} else {
-					writer.write("+");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressTwo())) {
-					writer.write(":" + inttraSiBillDto.getCompanyAddressTwo());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressThree())) {
-					writer.write(":" + inttraSiBillDto.getCompanyAddressThree());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressFour())) {
-					writer.write(":" + inttraSiBillDto.getCompanyAddressFour());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getCityName())) {
-					writer.write("+" + inttraSiBillDto.getCityName());
-				} else {
-					writer.write("+");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getRegionCode())) {
-					writer.write("+" + inttraSiBillDto.getRegionCode());
-				} else {
-					writer.write("+");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getZipCode())) {
-					writer.write("+" + inttraSiBillDto.getZipCode());
-				} else {
-					writer.write("+");
-				}
-				writer.write("+" + inttraSiBillDto.getCompanyCountryCode());
-			} else {
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getZipCode())) {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyCode()) &&
-						ObjectUtils.isNotNull(inttraSiBillDto.getCompanyListName()) &&
-						ObjectUtils.isNotNull(inttraSiBillDto.getCompanyDefine())) {
-						writer.write("+" + inttraSiBillDto.getCompanyCode() + ":" + inttraSiBillDto.getCompanyListName() + ":" + inttraSiBillDto.getCompanyDefine());
-					} else {
-						writer.write("+::");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressOne())) {
-						writer.write("+" + inttraSiBillDto.getStructuredAddressOne());
-					} else {
-						writer.write("+");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressTwo())) {
-						writer.write(":" + inttraSiBillDto.getStructuredAddressTwo());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameOne())) {
-						writer.write("+" + inttraSiBillDto.getCompanyNameOne());
-					} else {
-						writer.write("+");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameTwo())) {
-						writer.write(":" + inttraSiBillDto.getCompanyNameTwo());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressOne())) {
-						writer.write("+" + inttraSiBillDto.getCompanyAddressOne());
-					} else {
-						writer.write("+");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressTwo())) {
-						writer.write(":" + inttraSiBillDto.getCompanyAddressTwo());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressThree())) {
-						writer.write(":" + inttraSiBillDto.getCompanyAddressThree());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressFour())) {
-						writer.write(":" + inttraSiBillDto.getCompanyAddressFour());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getCityName())) {
-						writer.write("+" + inttraSiBillDto.getCityName());
-					} else {
-						writer.write("+");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getRegionCode())) {
-						writer.write("+" + inttraSiBillDto.getRegionCode());
-					} else {
-						writer.write("+");
-					}
-					writer.write("+" + inttraSiBillDto.getZipCode());
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getRegionCode())) {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyCode()) &&
-							ObjectUtils.isNotNull(inttraSiBillDto.getCompanyListName()) &&
-							ObjectUtils.isNotNull(inttraSiBillDto.getCompanyDefine())) {
-							writer.write("+" + inttraSiBillDto.getCompanyCode() + ":" + inttraSiBillDto.getCompanyListName() + ":" + inttraSiBillDto.getCompanyDefine());
-						} else {
-							writer.write("+::");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressOne())) {
-							writer.write("+" + inttraSiBillDto.getStructuredAddressOne());
-						} else {
-							writer.write("+");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressTwo())) {
-							writer.write(":" + inttraSiBillDto.getStructuredAddressTwo());
-						} else {
-							writer.write(":");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameOne())) {
-							writer.write("+" + inttraSiBillDto.getCompanyNameOne());
-						} else {
-							writer.write("+");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameTwo())) {
-							writer.write(":" + inttraSiBillDto.getCompanyNameTwo());
-						} else {
-							writer.write(":");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressOne())) {
-							writer.write("+" + inttraSiBillDto.getCompanyAddressOne());
-						} else {
-							writer.write("+");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressTwo())) {
-							writer.write(":" + inttraSiBillDto.getCompanyAddressTwo());
-						} else {
-							writer.write(":");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressThree())) {
-							writer.write(":" + inttraSiBillDto.getCompanyAddressThree());
-						} else {
-							writer.write(":");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressFour())) {
-							writer.write(":" + inttraSiBillDto.getCompanyAddressFour());
-						} else {
-							writer.write(":");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getCityName())) {
-							writer.write("+" + inttraSiBillDto.getCityName());
-						} else {
-							writer.write("+");
-						}
-						writer.write("+" + inttraSiBillDto.getRegionCode());
-					} else {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getCityName())) {
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyCode()) &&
-								ObjectUtils.isNotNull(inttraSiBillDto.getCompanyListName()) &&
-								ObjectUtils.isNotNull(inttraSiBillDto.getCompanyDefine())) {
-								writer.write("+" + inttraSiBillDto.getCompanyCode() + ":" + inttraSiBillDto.getCompanyListName() + ":" + inttraSiBillDto.getCompanyDefine());
-							} else {
-								writer.write("+::");
-							}
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressOne())) {
-								writer.write("+" + inttraSiBillDto.getStructuredAddressOne());
-							} else {
-								writer.write("+");
-							}
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressTwo())) {
-								writer.write(":" + inttraSiBillDto.getStructuredAddressTwo());
-							} else {
-								writer.write(":");
-							}
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameOne())) {
-								writer.write("+" + inttraSiBillDto.getCompanyNameOne());
-							} else {
-								writer.write("+");
-							}
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameTwo())) {
-								writer.write(":" + inttraSiBillDto.getCompanyNameTwo());
-							} else {
-								writer.write(":");
-							}
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressOne())) {
-								writer.write("+" + inttraSiBillDto.getCompanyAddressOne());
-							} else {
-								writer.write("+");
-							}
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressTwo())) {
-								writer.write(":" + inttraSiBillDto.getCompanyAddressTwo());
-							} else {
-								writer.write(":");
-							}
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressThree())) {
-								writer.write(":" + inttraSiBillDto.getCompanyAddressThree());
-							} else {
-								writer.write(":");
-							}
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressFour())) {
-								writer.write(":" + inttraSiBillDto.getCompanyAddressFour());
-							} else {
-								writer.write(":");
-							}
-							writer.write("+" + inttraSiBillDto.getCityName());
-						} else {
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressFour())) {
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyCode()) &&
-									ObjectUtils.isNotNull(inttraSiBillDto.getCompanyListName()) &&
-									ObjectUtils.isNotNull(inttraSiBillDto.getCompanyDefine())) {
-									writer.write("+" + inttraSiBillDto.getCompanyCode() + ":" + inttraSiBillDto.getCompanyListName() + ":" + inttraSiBillDto.getCompanyDefine());
-								} else {
-									writer.write("+::");
-								}
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressOne())) {
-									writer.write("+" + inttraSiBillDto.getStructuredAddressOne());
-								} else {
-									writer.write("+");
-								}
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressTwo())) {
-									writer.write(":" + inttraSiBillDto.getStructuredAddressTwo());
-								} else {
-									writer.write(":");
-								}
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameOne())) {
-									writer.write("+" + inttraSiBillDto.getCompanyNameOne());
-								} else {
-									writer.write("+");
-								}
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameTwo())) {
-									writer.write(":" + inttraSiBillDto.getCompanyNameTwo());
-								} else {
-									writer.write(":");
-								}
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressOne())) {
-									writer.write("+" + inttraSiBillDto.getCompanyAddressOne());
-								} else {
-									writer.write("+");
-								}
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressTwo())) {
-									writer.write(":" + inttraSiBillDto.getCompanyAddressTwo());
-								} else {
-									writer.write(":");
-								}
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressThree())) {
-									writer.write(":" + inttraSiBillDto.getCompanyAddressThree());
-								} else {
-									writer.write(":");
-								}
-								writer.write(":" + inttraSiBillDto.getCompanyAddressFour());
-							} else {
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressThree())) {
-									if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyCode()) &&
-										ObjectUtils.isNotNull(inttraSiBillDto.getCompanyListName()) &&
-										ObjectUtils.isNotNull(inttraSiBillDto.getCompanyDefine())) {
-										writer.write("+" + inttraSiBillDto.getCompanyCode() + ":" + inttraSiBillDto.getCompanyListName() + ":" + inttraSiBillDto.getCompanyDefine());
-									} else {
-										writer.write("+::");
-									}
-									if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressOne())) {
-										writer.write("+" + inttraSiBillDto.getStructuredAddressOne());
-									} else {
-										writer.write("+");
-									}
-									if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressTwo())) {
-										writer.write(":" + inttraSiBillDto.getStructuredAddressTwo());
-									} else {
-										writer.write(":");
-									}
-									if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameOne())) {
-										writer.write("+" + inttraSiBillDto.getCompanyNameOne());
-									} else {
-										writer.write("+");
-									}
-									if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameTwo())) {
-										writer.write(":" + inttraSiBillDto.getCompanyNameTwo());
-									} else {
-										writer.write(":");
-									}
-									if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressOne())) {
-										writer.write("+" + inttraSiBillDto.getCompanyAddressOne());
-									} else {
-										writer.write("+");
-									}
-									if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressTwo())) {
-										writer.write(":" + inttraSiBillDto.getCompanyAddressTwo());
-									} else {
-										writer.write(":");
-									}
-									writer.write(":" + inttraSiBillDto.getCompanyAddressThree());
-								} else {
-									if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressTwo())) {
-										if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyCode()) &&
-											ObjectUtils.isNotNull(inttraSiBillDto.getCompanyListName()) &&
-											ObjectUtils.isNotNull(inttraSiBillDto.getCompanyDefine())) {
-											writer.write("+" + inttraSiBillDto.getCompanyCode() + ":" + inttraSiBillDto.getCompanyListName() + ":" + inttraSiBillDto.getCompanyDefine());
-										} else {
-											writer.write("+::");
-										}
-										if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressOne())) {
-											writer.write("+" + inttraSiBillDto.getStructuredAddressOne());
-										} else {
-											writer.write("+");
-										}
-										if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressTwo())) {
-											writer.write(":" + inttraSiBillDto.getStructuredAddressTwo());
-										} else {
-											writer.write(":");
-										}
-										if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameOne())) {
-											writer.write("+" + inttraSiBillDto.getCompanyNameOne());
-										} else {
-											writer.write("+");
-										}
-										if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameTwo())) {
-											writer.write(":" + inttraSiBillDto.getCompanyNameTwo());
-										} else {
-											writer.write(":");
-										}
-										if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressOne())) {
-											writer.write("+" + inttraSiBillDto.getCompanyAddressOne());
-										} else {
-											writer.write("+");
-										}
-										writer.write(":" + inttraSiBillDto.getCompanyAddressTwo());
-									} else {
-										if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyAddressOne())) {
-											if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyCode()) &&
-												ObjectUtils.isNotNull(inttraSiBillDto.getCompanyListName()) &&
-												ObjectUtils.isNotNull(inttraSiBillDto.getCompanyDefine())) {
-												writer.write("+" + inttraSiBillDto.getCompanyCode() + ":" + inttraSiBillDto.getCompanyListName() + ":" + inttraSiBillDto.getCompanyDefine());
-											} else {
-												writer.write("+::");
-											}
-											if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressOne())) {
-												writer.write("+" + inttraSiBillDto.getStructuredAddressOne());
-											} else {
-												writer.write("+");
-											}
-											if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressTwo())) {
-												writer.write(":" + inttraSiBillDto.getStructuredAddressTwo());
-											} else {
-												writer.write(":");
-											}
-											if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameOne())) {
-												writer.write("+" + inttraSiBillDto.getCompanyNameOne());
-											} else {
-												writer.write("+");
-											}
-											if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameTwo())) {
-												writer.write(":" + inttraSiBillDto.getCompanyNameTwo());
-											} else {
-												writer.write(":");
-											}
-											writer.write("+" + inttraSiBillDto.getCompanyAddressOne());
-										} else {
-											if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameTwo())) {
-												if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyCode()) &&
-													ObjectUtils.isNotNull(inttraSiBillDto.getCompanyListName()) &&
-													ObjectUtils.isNotNull(inttraSiBillDto.getCompanyDefine())) {
-													writer.write("+" + inttraSiBillDto.getCompanyCode() + ":" + inttraSiBillDto.getCompanyListName() + ":" + inttraSiBillDto.getCompanyDefine());
-												} else {
-													writer.write("+::");
-												}
-												if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressOne())) {
-													writer.write("+" + inttraSiBillDto.getStructuredAddressOne());
-												} else {
-													writer.write("+");
-												}
-												if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressTwo())) {
-													writer.write(":" + inttraSiBillDto.getStructuredAddressTwo());
-												} else {
-													writer.write(":");
-												}
-												if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameOne())) {
-													writer.write("+" + inttraSiBillDto.getCompanyNameOne());
-												} else {
-													writer.write("+");
-												}
-												writer.write(":" + inttraSiBillDto.getCompanyNameTwo());
-											} else {
-												if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyNameOne())) {
-													if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyCode()) &&
-														ObjectUtils.isNotNull(inttraSiBillDto.getCompanyListName()) &&
-														ObjectUtils.isNotNull(inttraSiBillDto.getCompanyDefine())) {
-														writer.write("+" + inttraSiBillDto.getCompanyCode() + ":" + inttraSiBillDto.getCompanyListName() + ":" + inttraSiBillDto.getCompanyDefine());
-													} else {
-														writer.write("+::");
-													}
-													if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressOne())) {
-														writer.write("+" + inttraSiBillDto.getStructuredAddressOne());
-													} else {
-														writer.write("+");
-													}
-													if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressTwo())) {
-														writer.write(":" + inttraSiBillDto.getStructuredAddressTwo());
-													} else {
-														writer.write(":");
-													}
-													writer.write("+" + inttraSiBillDto.getCompanyNameOne());
-												} else {
-													if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressTwo())) {
-														if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyCode()) &&
-															ObjectUtils.isNotNull(inttraSiBillDto.getCompanyListName()) &&
-															ObjectUtils.isNotNull(inttraSiBillDto.getCompanyDefine())) {
-															writer.write("+" + inttraSiBillDto.getCompanyCode() + ":" + inttraSiBillDto.getCompanyListName() + ":" + inttraSiBillDto.getCompanyDefine());
-														} else {
-															writer.write("+::");
-														}
-														if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressOne())) {
-															writer.write("+" + inttraSiBillDto.getStructuredAddressOne());
-														} else {
-															writer.write("+");
-														}
-														writer.write(":" + inttraSiBillDto.getStructuredAddressTwo());
-													} else {
-														if (ObjectUtils.isNotNull(inttraSiBillDto.getStructuredAddressOne())) {
-															if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyCode()) &&
-																ObjectUtils.isNotNull(inttraSiBillDto.getCompanyListName()) &&
-																ObjectUtils.isNotNull(inttraSiBillDto.getCompanyDefine())) {
-																writer.write("+" + inttraSiBillDto.getCompanyCode() + ":" + inttraSiBillDto.getCompanyListName() + ":" + inttraSiBillDto.getCompanyDefine());
-															} else {
-																writer.write("+::");
-															}
-															writer.write("+" + inttraSiBillDto.getStructuredAddressOne());
-														} else {
-															if (ObjectUtils.isNotNull(inttraSiBillDto.getCompanyCode()) &&
-																ObjectUtils.isNotNull(inttraSiBillDto.getCompanyListName()) &&
-																ObjectUtils.isNotNull(inttraSiBillDto.getCompanyDefine())) {
-																writer.write("+" + inttraSiBillDto.getCompanyCode() + ":" + inttraSiBillDto.getCompanyListName() + ":" + inttraSiBillDto.getCompanyDefine());
-															}
-														}
-													}
-												}
-											}
-										}
-									}
-								}
-							}
-						}
-					}
-				}
-			}
-
-			writer.write("'");
-			writer.newLine();
-			count += 1;
-			/* =================0620=================  */
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getContactsType())) {
-				writer.write("CTA+" + inttraSiBillDto.getContactsType());
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getContactsName())) {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getContactsCode())) {
-						writer.write("+" + inttraSiBillDto.getContactsCode());
-					} else {
-						writer.write("+");
-					}
-					writer.write(":" + inttraSiBillDto.getContactsName());
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getContactsCode())) {
-						writer.write("+" + inttraSiBillDto.getContactsCode());
-					}
-				}
-				writer.write("'");
-				writer.newLine();
-				/* =================0630=================  */
-				writer.write("COM+" + inttraSiBillDto.getContactsValue() + ":" + inttraSiBillDto.getContactsInformation() + "'");
-				writer.newLine();
-				count += 1;
-			}
-			/* =================0650=================  */
-			writer.write("DOC+" + inttraSiBillDto.getBillLadingType());
-			if ("714".equals(inttraSiBillDto.getBillLadingType())) {
-				if (ObjectUtils.isNull(inttraSiBillDto.getBillNo())) {
-					throw new RuntimeException("edi提单号不能为空");
-				} else {
-					writer.write(":::" + inttraSiBillDto.getBillNo() + "'");
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getBillLadingNumber())) {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getPaymentStatus())) {
-							writer.write("+:" + inttraSiBillDto.getPaymentStatus());
-						} else {
-							writer.write("+");
-						}
-						writer.write("++" + inttraSiBillDto.getBillLadingNumber());
-					} else {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getPaymentStatus())) {
-							writer.write("+:" + inttraSiBillDto.getPaymentStatus());
-						}
-					}
-					writer.write("'");
-					writer.newLine();
-				}
-			} else {
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getBillNo())) {
-					writer.write(":::" + inttraSiBillDto.getBillNo() + "'");
-					writer.newLine();
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getBillLadingNumber())) {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getPaymentStatus())) {
-							writer.write("+:" + inttraSiBillDto.getPaymentStatus());
-						} else {
-							writer.write("+:");
-						}
-						writer.write("++" + inttraSiBillDto.getBillLadingNumber());
-					} else {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getPaymentStatus())) {
-							writer.write("+:" + inttraSiBillDto.getPaymentStatus());
-						}
-					}
-					writer.write("'");
-					writer.newLine();
-				}
-			}
-			count += 1;
-			/* =================0760=================  */
-			writer.write("RFF+" + inttraSiBillDto.getNumberTypes() + ":" + inttraSiBillDto.getNumberValue() + "'");
-			writer.newLine();
-			count += 1;
-			/* =================0910=================  */
-			writer.write("GID+" + inttraSiBillDto.getGoodsSort());
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getPackagesNumbers())) {
-				writer.write("+" + inttraSiBillDto.getPackagesNumbers());
-				if (ObjectUtils.isNull(inttraSiBillDto.getPackagesCode()) &&
-					ObjectUtils.isNull(inttraSiBillDto.getPackagesDescribe())) {
-					throw new RuntimeException("edi包装代码与包装描述不能同时为空");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getPackagesDescribe())) {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getPackagesCode())) {
-						writer.write(":" + inttraSiBillDto.getPackagesCode());
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getPackagesDefine())) {
-							writer.write("+:" + inttraSiBillDto.getPackagesDefine());
-						}
-					} else {
-						writer.write("+:");
-					}
-					writer.write("+:" + inttraSiBillDto.getPackagesDescribe());
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getPackagesCode())) {
-						writer.write(":" + inttraSiBillDto.getPackagesCode());
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getPackagesDefine())) {
-							writer.write("+:" + inttraSiBillDto.getPackagesDefine());
-						}
-					}
-				}
-			}
-			writer.write("'");
-			writer.newLine();
-			count += 1;
-			/* =================0980=================  */
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getHsCode())) {
-				writer.write("PIA+5+" + inttraSiBillDto.getHsCode());
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getHsType())) {
-					writer.write(":" + inttraSiBillDto.getHsType());
-				}
-				writer.write("'");
-				writer.newLine();
-				count += 1;
-			}
-			/* =================0990=================  */
-			writer.write("FTX+" + inttraSiBillDto.getProductType());
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getProductContentThree())) {
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getProductContent())) {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getProductCode())) {
-						writer.write("++" + inttraSiBillDto.getProductCode());
-					} else {
-						writer.write("++");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getProductContent())) {
-						writer.write("+" + inttraSiBillDto.getProductContent());
-					}
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getProductCode())) {
-						writer.write("++" + inttraSiBillDto.getProductCode());
-					}
-				}
-				if ("CCI".equals(inttraSiBillDto.getProductType())) {
-					inttraSiBillDto.setProductCode("MFS");
-				}
-				if ("MFS".equals(inttraSiBillDto.getProductCode())) {
-					if (ObjectUtils.isNull(inttraSiBillDto.getProductContentTwo())) {
-						throw new RuntimeException("edi文本内容2不能为空");
-					}
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getProductContentTwo())) {
-					writer.write(":" + inttraSiBillDto.getProductContentTwo());
-				}
-				if ("MFS".equals(inttraSiBillDto.getProductCode()) && "1".equals(inttraSiBillDto.getProductContent())) {
-					if (ObjectUtils.isNull(inttraSiBillDto.getProductContentThree())) {
-						throw new RuntimeException("edi文本内容3不能为空");
-					}
-				}
-				writer.write(":" + inttraSiBillDto.getProductContentThree());
-			} else {
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getProductContentTwo())) {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getProductContent())) {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getProductCode())) {
-							writer.write("++" + inttraSiBillDto.getProductCode());
-						} else {
-							writer.write("++");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getProductContent())) {
-							writer.write("+" + inttraSiBillDto.getProductContent());
-						}
-					} else {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getProductCode())) {
-							writer.write("++" + inttraSiBillDto.getProductCode());
-						}
-					}
-					if ("CCI".equals(inttraSiBillDto.getProductType())) {
-						inttraSiBillDto.setProductCode("MFS");
-					}
-					if ("MFS".equals(inttraSiBillDto.getProductCode())) {
-						if (ObjectUtils.isNull(inttraSiBillDto.getProductContentTwo())) {
-							throw new RuntimeException("edi文本内容2不能为空");
-						}
-					}
-					writer.write(":" + inttraSiBillDto.getProductContentTwo());
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getProductContent())) {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getProductCode())) {
-							writer.write("++" + inttraSiBillDto.getProductCode());
-						} else {
-							writer.write("++");
-						}
-						writer.write("+" + inttraSiBillDto.getProductContent());
-					} else {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getProductCode())) {
-							writer.write("++" + inttraSiBillDto.getProductCode());
-						}
-					}
-				}
-			}
-			writer.write("'");
-			writer.newLine();
-			count += 1;
-			/* =================1010=================  */
-			writer.write("NAD+" + inttraSiBillDto.getCarrierType());
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierAddressFour())) {
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierNameOne())) {
-					writer.write("+++" + inttraSiBillDto.getCarrierNameOne());
-				} else {
-					writer.write("+++");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierNameTwo())) {
-					writer.write(":" + inttraSiBillDto.getCarrierNameTwo());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierAddressOne())) {
-					writer.write("+" + inttraSiBillDto.getCarrierAddressOne());
-				} else {
-					writer.write("+");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierAddressTwo())) {
-					writer.write(":" + inttraSiBillDto.getCarrierAddressTwo());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierAddressThree())) {
-					writer.write(":" + inttraSiBillDto.getCarrierAddressThree());
-				} else {
-					writer.write(":");
-				}
-				writer.write(":" + inttraSiBillDto.getCarrierAddressFour());
-
-			} else {
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierAddressThree())) {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierNameOne())) {
-						writer.write("+++" + inttraSiBillDto.getCarrierNameOne());
-					} else {
-						writer.write("+++");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierNameTwo())) {
-						writer.write(":" + inttraSiBillDto.getCarrierNameTwo());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierAddressOne())) {
-						writer.write("+" + inttraSiBillDto.getCarrierAddressOne());
-					} else {
-						writer.write("+");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierAddressTwo())) {
-						writer.write(":" + inttraSiBillDto.getCarrierAddressTwo());
-					} else {
-						writer.write(":");
-					}
-					writer.write(":" + inttraSiBillDto.getCarrierAddressThree());
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierAddressTwo())) {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierNameOne())) {
-							writer.write("+++" + inttraSiBillDto.getCarrierNameOne());
-						} else {
-							writer.write("+++");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierNameTwo())) {
-							writer.write(":" + inttraSiBillDto.getCarrierNameTwo());
-						} else {
-							writer.write(":");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierAddressOne())) {
-							writer.write("+" + inttraSiBillDto.getCarrierAddressOne());
-						} else {
-							writer.write("+");
-						}
-						writer.write(":" + inttraSiBillDto.getCarrierAddressTwo());
-					} else {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierAddressOne())) {
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierNameOne())) {
-								writer.write("+++" + inttraSiBillDto.getCarrierNameOne());
-							} else {
-								writer.write("+++");
-							}
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierNameTwo())) {
-								writer.write(":" + inttraSiBillDto.getCarrierNameTwo());
-							} else {
-								writer.write(":");
-							}
-							writer.write("+" + inttraSiBillDto.getCarrierAddressOne());
-						} else {
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierNameTwo())) {
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierNameOne())) {
-									writer.write("+++" + inttraSiBillDto.getCarrierNameOne());
-								} else {
-									writer.write("+++");
-								}
-								writer.write(":" + inttraSiBillDto.getCarrierNameTwo());
-							} else {
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getCarrierNameOne())) {
-									writer.write("+++" + inttraSiBillDto.getCarrierNameOne());
-								}
-							}
-						}
-					}
-				}
-			}
-			writer.write("'");
-			writer.newLine();
-			count += 1;
-			/* =================1070=================  */
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getGoodsNumberType())) {
-				writer.write("MEA+AAE+" + inttraSiBillDto.getGoodsNumberType());
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getGoodsNumber())) {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getGoodsNumberUnit())) {
-						writer.write("+" + inttraSiBillDto.getGoodsNumberUnit());
-					} else {
-						writer.write("+");
-					}
-					writer.write(":" + inttraSiBillDto.getGoodsNumber());
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getGoodsNumberUnit())) {
-						writer.write("+" + inttraSiBillDto.getGoodsNumberUnit());
-					}
-				}
-				writer.write("'");
-				writer.newLine();
-				count += 1;
-			}
-			/* =================1010=================  */
-			writer.write("RFF+" + inttraSiBillDto.getNumberType() + ":" + inttraSiBillDto.getNumberCode() + "'");
-			writer.newLine();
-			count += 1;
-			/* =================1160=================  */
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getMarks())) {
-				writer.write("PCI++" + inttraSiBillDto.getMarks());
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getMarkss())) {
-					writer.write(":" + inttraSiBillDto.getMarkss());
-				}
-				writer.newLine();
-			}
-			/* =================1380=================  */
-			writer.write("SGP+" + inttraSiBillDto.getBoxNo() + "+" + inttraSiBillDto.getBoxGoodNumber() + "'");
-			writer.newLine();
-			count += 1;
-			/* =================1400=================  */
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getGoodsNumberTypeTwo())) {
-				writer.write("MEA+AAE+" + inttraSiBillDto.getGoodsNumberTypeTwo());
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getGoodsNumberTwo())) {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getGoodsNumberUnitTwo())) {
-						writer.write("+" + inttraSiBillDto.getGoodsNumberUnitTwo());
-					} else {
-						writer.write("+");
-					}
-					writer.write(":" + inttraSiBillDto.getGoodsNumberTwo());
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getGoodsNumberUnitTwo())) {
-						writer.write("+" + inttraSiBillDto.getGoodsNumberUnitTwo());
-					}
-				}
-				writer.write("'");
-				writer.newLine();
-				count += 1;
-			}
-			/* =================1520=================  */
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getDgImdgCode())) {
-				writer.write("DGS+IMD+" + inttraSiBillDto.getDgImdgCode());
-
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getEmergencyMeasureNo())) {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getPageNumber())) {
-						writer.write(":" + inttraSiBillDto.getPageNumber());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getDgUnCode())) {
-						writer.write("+" + inttraSiBillDto.getDgUnCode());
-					} else {
-						writer.write("+");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getDgFlashPoint())) {
-						writer.write("+" + inttraSiBillDto.getDgFlashPoint());
-					} else {
-						writer.write("+");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getDgFlashPointUnit())) {
-						writer.write("+" + inttraSiBillDto.getDgFlashPointUnit());
-					} else {
-						writer.write("+");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getPackingGroup())) {
-						writer.write("+" + inttraSiBillDto.getPackingGroup());
-					} else {
-						writer.write("+");
-					}
-					writer.write("+" + inttraSiBillDto.getEmergencyMeasureNo());
-
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getPackingGroup())) {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getPageNumber())) {
-							writer.write(":" + inttraSiBillDto.getPageNumber());
-						} else {
-							writer.write(":");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getDgUnCode())) {
-							writer.write("+" + inttraSiBillDto.getDgUnCode());
-						} else {
-							writer.write("+");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getDgFlashPoint())) {
-							writer.write("+" + inttraSiBillDto.getDgFlashPoint());
-						} else {
-							writer.write("+");
-						}
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getDgFlashPointUnit())) {
-							writer.write("+" + inttraSiBillDto.getDgFlashPointUnit());
-						} else {
-							writer.write("+");
-						}
-						writer.write("+" + inttraSiBillDto.getPackingGroup());
-					} else {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getDgFlashPointUnit())) {
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getPageNumber())) {
-								writer.write(":" + inttraSiBillDto.getPageNumber());
-							} else {
-								writer.write(":");
-							}
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getDgUnCode())) {
-								writer.write("+" + inttraSiBillDto.getDgUnCode());
-							} else {
-								writer.write("+");
-							}
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getDgFlashPoint())) {
-								writer.write("+" + inttraSiBillDto.getDgFlashPoint());
-							} else {
-								writer.write("+");
-							}
-							writer.write("+" + inttraSiBillDto.getDgFlashPointUnit());
-						} else {
-							if (ObjectUtils.isNotNull(inttraSiBillDto.getDgFlashPoint())) {
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getPageNumber())) {
-									writer.write(":" + inttraSiBillDto.getPageNumber());
-								} else {
-									writer.write(":");
-								}
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getDgUnCode())) {
-									writer.write("+" + inttraSiBillDto.getDgUnCode());
-								} else {
-									writer.write("+");
-								}
-								writer.write("+" + inttraSiBillDto.getDgFlashPoint());
-							} else {
-								if (ObjectUtils.isNotNull(inttraSiBillDto.getDgUnCode())) {
-									if (ObjectUtils.isNotNull(inttraSiBillDto.getPageNumber())) {
-										writer.write(":" + inttraSiBillDto.getPageNumber());
-									} else {
-										writer.write(":");
-									}
-									writer.write("+" + inttraSiBillDto.getDgUnCode());
-								} else {
-									if (ObjectUtils.isNotNull(inttraSiBillDto.getPageNumber())) {
-										writer.write(":" + inttraSiBillDto.getPageNumber());
-									}
-								}
-							}
-						}
-					}
-				}
-				writer.write("'");
-				writer.newLine();
-				count += 1;
-			}
-			/* =================1530=================  */
-			writer.write("FTX+" + inttraSiBillDto.getDgRemarksType() + "+++" + inttraSiBillDto.getDgRemarks() + "'");
-			writer.newLine();
-			count += 1;
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getDgImdgCode())) {
-				if (ObjectUtils.isNull(inttraSiBillDto.getDgContacts())) {
-					throw new RuntimeException("edi危险品联系方不能为空");
-				} else {
-					if (ObjectUtils.isNull(inttraSiBillDto.getDgTel())) {
-						throw new RuntimeException("edi危险品联系电话号码不能为空");
-					}
-				}
-				/* =================1550=================  */
-				writer.write("CTA+HG+:" + inttraSiBillDto.getDgImdgCode() + "'");
-				writer.newLine();
-				count += 1;
-				/* =================1560=================  */
-				writer.write("COM+" + inttraSiBillDto.getDgTel() + "TE'");
-				writer.newLine();
-				count += 1;
-			}
-			/* =================1660=================  */
-			if (ObjectUtils.isNull(inttraSiBillDto.getBoxNo())) {
-				writer.write("EQD+CN+" + inttraSiBillDto.getBoxNo());
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getShipperBoxIdentification())) {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getBoxCode())) {
-						writer.write("+" + inttraSiBillDto.getBoxCode());
-					} else {
-						writer.write("+");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getBoxTypeDescribe())) {
-						writer.write(":::" + inttraSiBillDto.getBoxTypeDescribe());
-					} else {
-						writer.write(":::");
-					}
-					writer.write("+" + inttraSiBillDto.getShipperBoxIdentification());
-
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getBoxTypeDescribe())) {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getBoxCode())) {
-							writer.write("+" + inttraSiBillDto.getBoxCode());
-						} else {
-							writer.write("+");
-						}
-						writer.write(":::" + inttraSiBillDto.getBoxTypeDescribe());
-					} else {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getBoxCode())) {
-							writer.write("+" + inttraSiBillDto.getBoxCode());
-						}
-					}
-				}
-				writer.write("'");
-				writer.newLine();
-				count += 1;
-			}
-			/* =================1690=================  */
-			if (ObjectUtils.isNull(inttraSiBillDto.getGoodsNumberTypeThree())) {
-				writer.write("MEA+AAE+" + inttraSiBillDto.getGoodsNumberTypeThree());
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getGoodsNumberThree())) {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getGoodsNumberUnitThree())) {
-						writer.write("+" + inttraSiBillDto.getGoodsNumberUnitThree());
-					} else {
-						writer.write("+");
-					}
-					writer.write(":" + inttraSiBillDto.getGoodsNumberThree());
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getGoodsNumberUnitThree())) {
-						writer.write("+" + inttraSiBillDto.getGoodsNumberUnitThree());
-					}
-				}
-				writer.write("'");
-				writer.newLine();
-				count += 1;
-			}
-			/* =================1710=================  */
-			if (ObjectUtils.isNull(inttraSiBillDto.getSeal())) {
-				writer.write("SEL+" + inttraSiBillDto.getSeal());
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getSealUnit())) {
-					writer.write("+" + inttraSiBillDto.getSealUnit());
-				}
-				writer.write("'");
-				writer.newLine();
-				count += 1;
-			}
-			/* =================1740=================  */
-			if (ObjectUtils.isNull(inttraSiBillDto.getTemperature())) {
-				writer.write("TMP+2+" + inttraSiBillDto.getTemperature());
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getTemperatureUnit())) {
-					writer.write(":" + inttraSiBillDto.getTemperatureUnit());
-				}
-				writer.write("'");
-				writer.newLine();
-				count += 1;
-			}
-			/* =================1740=================  */
-			writer.write("FTX+" + inttraSiBillDto.getRemarksCodes());
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getRemarksContent())) {
-				writer.write("+++" + inttraSiBillDto.getRemarksContent());
-			}
-			writer.write("'");
-			writer.newLine();
-			count += 1;
-			/* =================1760=================  */
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getBillNumber())) {
-				writer.write("RFF+AHZ:" + inttraSiBillDto.getBillNumber() + "'");
-				writer.newLine();
-				count += 1;
-			}
-			/* =================1860=================  */
-			if (ObjectUtils.isNull(inttraSiBillDto.getAddCode())) {
-				writer.write("NAD+CS+" + inttraSiBillDto.getAddCode() + ":263");
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getAddCountryCode())) {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getAddDefine())) {
-						writer.write(":" + inttraSiBillDto.getAddDefine());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getAddDescribe())) {
-						writer.write("++++" + inttraSiBillDto.getAddDescribe());
-					} else {
-						writer.write("++++");
-					}
-					writer.write("+++" + inttraSiBillDto.getAddCountryCode());
-				} else {
-					if (ObjectUtils.isNotNull(inttraSiBillDto.getAddDescribe())) {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getAddDefine())) {
-							writer.write(":" + inttraSiBillDto.getAddDefine());
-						} else {
-							writer.write(":");
-						}
-						writer.write("++++" + inttraSiBillDto.getAddDescribe());
-					} else {
-						if (ObjectUtils.isNotNull(inttraSiBillDto.getAddDefine())) {
-							writer.write(":" + inttraSiBillDto.getAddDefine());
-						}
-					}
-				}
-				writer.write("'");
-				writer.newLine();
-				count += 1;
-			}
-			/* =================2000=================  */
-			count = count + 2;
-			writer.write("UNT+" + count + "+" + inttraSiBillDto.getInformationNoEnd() + "'");
-			writer.newLine();
-			/* =================2010=================  */
-			writer.write("UNZ+" + inttraSiBillDto.getInformationNumber() + "+" + inttraSiBillDto.getFileExchangeNumberEnd() + "'");
-			writer.newLine();
-
-			// 关闭文件输出流
-			writer.close();
-			//文件地址
-			String url = file.getAbsolutePath();
-			//替换地址
-			url = url.replace("/home/minio", "http://121.37.83.47");
-
-			if (ObjectUtils.isNotNull(inttraSiBillDto.getEdiTypes())) {
-				if (ObjectUtils.isNotNull(inttraSiBillDto.getEdiTypes().getAddress())) {
-					List<EdiAddress> ediAddressList = JSONArray.parseArray(inttraSiBillDto.getEdiTypes().getAddress(), EdiAddress.class);
-					for (EdiAddress item : ediAddressList) {
-						if ("email".equals(item.getMode())) {
-
-						} else if ("ftp".equals(item.getMode())) {
-
-						} else {
-							throw new RuntimeException("edi地址配置错误");
-						}
-					}
-				}
-			}
-			FilesCenter filesCenter = new FilesCenter();
-			filesCenter.setUrl(url);
-			filesCenter.setFileName(file.getName());
-			// 查找最后一个点号的索引位置
-			int dotIndex = file.getName().lastIndexOf('.');
-			// 确保点号不是第一个字符且不是最后一个字符
-			if (dotIndex > -1 && dotIndex < file.getName().length() - 1) {
-				// 提取从点号开始到结尾之间的部分作为扩展名
-				filesCenter.setFileExt(file.getName().substring(dotIndex + 1));
-			}
-			filesCenter.setReceivedData(new Date());
-			return filesCenter;
-		} catch (IOException e) {
-			throw new SecurityException("生成edi文件失败");
-		}
-	}
-
-	@Override
-	public FilesCenter sendingAplSo_bak(@Validated APLSoDto aplSoDto) {
-		try {
-			//生成edi文件
-			File file = new File("/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload", aplSoDto.getEdiTypes().getCode() + ".txt");
-			file.createNewFile();
-			// 打开文件输出流进行写入操作
-			BufferedWriter writer = new BufferedWriter(new FileWriter(file));
-			// 向文件写入数据
-			/* =================00=================  */
-			writer.write("00:" + aplSoDto.getMessageType() + ":" + aplSoDto.getFileDescription());
-			if (ObjectUtils.isNotNull(aplSoDto.getFileDescription())) {
-				writer.write(":" + aplSoDto.getFileDescription());
-			} else {
-				writer.write(":");
-			}
-			writer.write(":" + aplSoDto.getFileFunction() + ":" + aplSoDto.getSenderCode() + ":" + aplSoDto.getReceiverCode()
-				+ ":" + aplSoDto.getFilesEstablishTime() + "'");
-			writer.newLine();
-			/* =================02=================  */
-			writer.write("02:" + aplSoDto.getOperationNumber());
-			if (ObjectUtils.isNotNull(aplSoDto.getBillNo())) {
-				writer.write(":" + aplSoDto.getBillNo());
-			} else {
-				writer.write(":");
-			}
-			writer.write(":" + aplSoDto.getDeliveryTerms());
-			if (ObjectUtils.isNotNull(aplSoDto.getBookerExplain())) {
-				writer.write(":" + aplSoDto.getBookerExplain());
-			} else {
-				writer.write(":");
-			}
-			writer.write(":" + aplSoDto.getSignerCode());
-			if (ObjectUtils.isNotNull(aplSoDto.getCabinInteroperabilityIdentification())) {
-				if (ObjectUtils.isNotNull(aplSoDto.getSignerExplain())) {
-					writer.write(":" + aplSoDto.getSignerExplain());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(aplSoDto.getInquiryParty())) {
-					writer.write(":" + aplSoDto.getInquiryParty());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(aplSoDto.getAbroadBookingParty())) {
-					writer.write(":" + aplSoDto.getAbroadBookingParty());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(aplSoDto.getTransshipmentIdentification())) {
-					writer.write(":" + aplSoDto.getTransshipmentIdentification());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(aplSoDto.getInBatches())) {
-					writer.write(":" + aplSoDto.getInBatches());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(aplSoDto.getInstallationPeriod())) {
-					writer.write(":" + aplSoDto.getInstallationPeriod());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(aplSoDto.getValidityPeriod())) {
-					writer.write(":" + aplSoDto.getValidityPeriod());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(aplSoDto.getFreightAgreementNumber())) {
-					writer.write(":" + aplSoDto.getFreightAgreementNumber());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(aplSoDto.getRateBookCode())) {
-					writer.write(":" + aplSoDto.getRateBookCode());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(aplSoDto.getServiceContractNumber())) {
-					writer.write(":" + aplSoDto.getServiceContractNumber());
-				} else {
-					writer.write(":");
-				}
-				if (ObjectUtils.isNotNull(aplSoDto.getBondNo())) {
-					writer.write(":" + aplSoDto.getBondNo());
-				} else {
-					writer.write(":");
-				}
-				writer.write(":" + aplSoDto.getCabinInteroperabilityIdentification());
-			} else {
-				if (ObjectUtils.isNotNull(aplSoDto.getBondNo())) {
-					if (ObjectUtils.isNotNull(aplSoDto.getSignerExplain())) {
-						writer.write(":" + aplSoDto.getSignerExplain());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(aplSoDto.getInquiryParty())) {
-						writer.write(":" + aplSoDto.getInquiryParty());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(aplSoDto.getAbroadBookingParty())) {
-						writer.write(":" + aplSoDto.getAbroadBookingParty());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(aplSoDto.getTransshipmentIdentification())) {
-						writer.write(":" + aplSoDto.getTransshipmentIdentification());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(aplSoDto.getInBatches())) {
-						writer.write(":" + aplSoDto.getInBatches());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(aplSoDto.getInstallationPeriod())) {
-						writer.write(":" + aplSoDto.getInstallationPeriod());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(aplSoDto.getValidityPeriod())) {
-						writer.write(":" + aplSoDto.getValidityPeriod());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(aplSoDto.getFreightAgreementNumber())) {
-						writer.write(":" + aplSoDto.getFreightAgreementNumber());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(aplSoDto.getRateBookCode())) {
-						writer.write(":" + aplSoDto.getRateBookCode());
-					} else {
-						writer.write(":");
-					}
-					if (ObjectUtils.isNotNull(aplSoDto.getServiceContractNumber())) {
-						writer.write(":" + aplSoDto.getServiceContractNumber());
-					} else {
-						writer.write(":");
-					}
-					writer.write(":" + aplSoDto.getBondNo());
-
-				} else {
-					if (ObjectUtils.isNotNull(aplSoDto.getServiceContractNumber())) {
-						if (ObjectUtils.isNotNull(aplSoDto.getSignerExplain())) {
-							writer.write(":" + aplSoDto.getSignerExplain());
-						} else {
-							writer.write(":");
-						}
-						if (ObjectUtils.isNotNull(aplSoDto.getInquiryParty())) {
-							writer.write(":" + aplSoDto.getInquiryParty());
-						} else {
-							writer.write(":");
-						}
-						if (ObjectUtils.isNotNull(aplSoDto.getAbroadBookingParty())) {
-							writer.write(":" + aplSoDto.getAbroadBookingParty());
-						} else {
-							writer.write(":");
-						}
-						if (ObjectUtils.isNotNull(aplSoDto.getTransshipmentIdentification())) {
-							writer.write(":" + aplSoDto.getTransshipmentIdentification());
-						} else {
-							writer.write(":");
-						}
-						if (ObjectUtils.isNotNull(aplSoDto.getInBatches())) {
-							writer.write(":" + aplSoDto.getInBatches());
-						} else {
-							writer.write(":");
-						}
-						if (ObjectUtils.isNotNull(aplSoDto.getInstallationPeriod())) {
-							writer.write(":" + aplSoDto.getInstallationPeriod());
-						} else {
-							writer.write(":");
-						}
-						if (ObjectUtils.isNotNull(aplSoDto.getValidityPeriod())) {
-							writer.write(":" + aplSoDto.getValidityPeriod());
-						} else {
-							writer.write(":");
-						}
-						if (ObjectUtils.isNotNull(aplSoDto.getFreightAgreementNumber())) {
-							writer.write(":" + aplSoDto.getFreightAgreementNumber());
-						} else {
-							writer.write(":");
-						}
-						if (ObjectUtils.isNotNull(aplSoDto.getRateBookCode())) {
-							writer.write(":" + aplSoDto.getRateBookCode());
-						} else {
-							writer.write(":");
-						}
-						writer.write(":" + aplSoDto.getServiceContractNumber());
-					} else {
-						if (ObjectUtils.isNotNull(aplSoDto.getRateBookCode())) {
-							if (ObjectUtils.isNotNull(aplSoDto.getSignerExplain())) {
-								writer.write(":" + aplSoDto.getSignerExplain());
-							} else {
-								writer.write(":");
-							}
-							if (ObjectUtils.isNotNull(aplSoDto.getInquiryParty())) {
-								writer.write(":" + aplSoDto.getInquiryParty());
-							} else {
-								writer.write(":");
-							}
-							if (ObjectUtils.isNotNull(aplSoDto.getAbroadBookingParty())) {
-								writer.write(":" + aplSoDto.getAbroadBookingParty());
-							} else {
-								writer.write(":");
-							}
-							if (ObjectUtils.isNotNull(aplSoDto.getTransshipmentIdentification())) {
-								writer.write(":" + aplSoDto.getTransshipmentIdentification());
-							} else {
-								writer.write(":");
-							}
-							if (ObjectUtils.isNotNull(aplSoDto.getInBatches())) {
-								writer.write(":" + aplSoDto.getInBatches());
-							} else {
-								writer.write(":");
-							}
-							if (ObjectUtils.isNotNull(aplSoDto.getInstallationPeriod())) {
-								writer.write(":" + aplSoDto.getInstallationPeriod());
-							} else {
-								writer.write(":");
-							}
-							if (ObjectUtils.isNotNull(aplSoDto.getValidityPeriod())) {
-								writer.write(":" + aplSoDto.getValidityPeriod());
-							} else {
-								writer.write(":");
-							}
-							if (ObjectUtils.isNotNull(aplSoDto.getFreightAgreementNumber())) {
-								writer.write(":" + aplSoDto.getFreightAgreementNumber());
-							} else {
-								writer.write(":");
-							}
-							writer.write(":" + aplSoDto.getRateBookCode());
-						} else {
-							if (ObjectUtils.isNotNull(aplSoDto.getFreightAgreementNumber())) {
-								if (ObjectUtils.isNotNull(aplSoDto.getSignerExplain())) {
-									writer.write(":" + aplSoDto.getSignerExplain());
-								} else {
-									writer.write(":");
-								}
-								if (ObjectUtils.isNotNull(aplSoDto.getInquiryParty())) {
-									writer.write(":" + aplSoDto.getInquiryParty());
-								} else {
-									writer.write(":");
-								}
-								if (ObjectUtils.isNotNull(aplSoDto.getAbroadBookingParty())) {
-									writer.write(":" + aplSoDto.getAbroadBookingParty());
-								} else {
-									writer.write(":");
-								}
-								if (ObjectUtils.isNotNull(aplSoDto.getTransshipmentIdentification())) {
-									writer.write(":" + aplSoDto.getTransshipmentIdentification());
-								} else {
-									writer.write(":");
-								}
-								if (ObjectUtils.isNotNull(aplSoDto.getInBatches())) {
-									writer.write(":" + aplSoDto.getInBatches());
-								} else {
-									writer.write(":");
-								}
-								if (ObjectUtils.isNotNull(aplSoDto.getInstallationPeriod())) {
-									writer.write(":" + aplSoDto.getInstallationPeriod());
-								} else {
-									writer.write(":");
-								}
-								if (ObjectUtils.isNotNull(aplSoDto.getValidityPeriod())) {
-									writer.write(":" + aplSoDto.getValidityPeriod());
-								} else {
-									writer.write(":");
-								}
-								writer.write(":" + aplSoDto.getFreightAgreementNumber());
-							} else {
-								if (ObjectUtils.isNotNull(aplSoDto.getValidityPeriod())) {
-									if (ObjectUtils.isNotNull(aplSoDto.getSignerExplain())) {
-										writer.write(":" + aplSoDto.getSignerExplain());
-									} else {
-										writer.write(":");
-									}
-									if (ObjectUtils.isNotNull(aplSoDto.getInquiryParty())) {
-										writer.write(":" + aplSoDto.getInquiryParty());
-									} else {
-										writer.write(":");
-									}
-									if (ObjectUtils.isNotNull(aplSoDto.getAbroadBookingParty())) {
-										writer.write(":" + aplSoDto.getAbroadBookingParty());
-									} else {
-										writer.write(":");
-									}
-									if (ObjectUtils.isNotNull(aplSoDto.getTransshipmentIdentification())) {
-										writer.write(":" + aplSoDto.getTransshipmentIdentification());
-									} else {
-										writer.write(":");
-									}
-									if (ObjectUtils.isNotNull(aplSoDto.getInBatches())) {
-										writer.write(":" + aplSoDto.getInBatches());
-									} else {
-										writer.write(":");
-									}
-									if (ObjectUtils.isNotNull(aplSoDto.getInstallationPeriod())) {
-										writer.write(":" + aplSoDto.getInstallationPeriod());
-									} else {
-										writer.write(":");
-									}
-									writer.write(":" + aplSoDto.getValidityPeriod());
-								} else {
-									if (ObjectUtils.isNotNull(aplSoDto.getInstallationPeriod())) {
-										if (ObjectUtils.isNotNull(aplSoDto.getSignerExplain())) {
-											writer.write(":" + aplSoDto.getSignerExplain());
-										} else {
-											writer.write(":");
-										}
-										if (ObjectUtils.isNotNull(aplSoDto.getInquiryParty())) {
-											writer.write(":" + aplSoDto.getInquiryParty());
-										} else {
-											writer.write(":");
-										}
-										if (ObjectUtils.isNotNull(aplSoDto.getAbroadBookingParty())) {
-											writer.write(":" + aplSoDto.getAbroadBookingParty());
-										} else {
-											writer.write(":");
-										}
-										if (ObjectUtils.isNotNull(aplSoDto.getTransshipmentIdentification())) {
-											writer.write(":" + aplSoDto.getTransshipmentIdentification());
-										} else {
-											writer.write(":");
-										}
-										if (ObjectUtils.isNotNull(aplSoDto.getInBatches())) {
-											writer.write(":" + aplSoDto.getInBatches());
-										} else {
-											writer.write(":");
-										}
-										writer.write(":" + aplSoDto.getInstallationPeriod());
-									} else {
-										if (ObjectUtils.isNotNull(aplSoDto.getInBatches())) {
-											if (ObjectUtils.isNotNull(aplSoDto.getSignerExplain())) {
-												writer.write(":" + aplSoDto.getSignerExplain());
-											} else {
-												writer.write(":");
-											}
-											if (ObjectUtils.isNotNull(aplSoDto.getInquiryParty())) {
-												writer.write(":" + aplSoDto.getInquiryParty());
-											} else {
-												writer.write(":");
-											}
-											if (ObjectUtils.isNotNull(aplSoDto.getAbroadBookingParty())) {
-												writer.write(":" + aplSoDto.getAbroadBookingParty());
-											} else {
-												writer.write(":");
-											}
-											if (ObjectUtils.isNotNull(aplSoDto.getTransshipmentIdentification())) {
-												writer.write(":" + aplSoDto.getTransshipmentIdentification());
-											} else {
-												writer.write(":");
-											}
-											writer.write(":" + aplSoDto.getInBatches());
-										} else {
-											if (ObjectUtils.isNotNull(aplSoDto.getTransshipmentIdentification())) {
-												if (ObjectUtils.isNotNull(aplSoDto.getSignerExplain())) {
-													writer.write(":" + aplSoDto.getSignerExplain());
-												} else {
-													writer.write(":");
-												}
-												if (ObjectUtils.isNotNull(aplSoDto.getInquiryParty())) {
-													writer.write(":" + aplSoDto.getInquiryParty());
-												} else {
-													writer.write(":");
-												}
-												if (ObjectUtils.isNotNull(aplSoDto.getAbroadBookingParty())) {
-													writer.write(":" + aplSoDto.getAbroadBookingParty());
-												} else {
-													writer.write(":");
-												}
-												writer.write(":" + aplSoDto.getTransshipmentIdentification());
-											} else {
-												if (ObjectUtils.isNotNull(aplSoDto.getAbroadBookingParty())) {
-													if (ObjectUtils.isNotNull(aplSoDto.getSignerExplain())) {
-														writer.write(":" + aplSoDto.getSignerExplain());
-													} else {
-														writer.write(":");
-													}
-													if (ObjectUtils.isNotNull(aplSoDto.getInquiryParty())) {
-														writer.write(":" + aplSoDto.getInquiryParty());
-													} else {
-														writer.write(":");
-													}
-													writer.write(":" + aplSoDto.getAbroadBookingParty());
-												} else {
-													if (ObjectUtils.isNotNull(aplSoDto.getInquiryParty())) {
-														if (ObjectUtils.isNotNull(aplSoDto.getSignerExplain())) {
-															writer.write(":" + aplSoDto.getSignerExplain());
-														} else {
-															writer.write(":");
-														}
-														writer.write(":" + aplSoDto.getInquiryParty());
-													} else {
-														if (ObjectUtils.isNotNull(aplSoDto.getSignerExplain())) {
-															writer.write(":" + aplSoDto.getSignerExplain());
-														}
-													}
-												}
-											}
-										}
-									}
-								}
-							}
-						}
-					}
-				}
-			}
-			/* =================0020=================  */
-			/* =================0050=================  */
-			/* =================0060=================  */
-			/* =================0070=================  */
-			/* =================0080=================  */
-			/* =================0090=================  */
-			/* =================0100=================  */
-			/* =================0140=================  */
-			/* =================0150=================  */
-			/* =================0200=================  */
-			/* =================0210=================  */
-			/* =================0320=================  */
-			/* =================0480=================  */
-			/* =================0520=================  */
-			/* =================0580=================  */
-			/* =================0620=================  */
-			/* =================0650=================  */
-			/* =================0760=================  */
-			/* =================0910=================  */
-			/* =================0980=================  */
-			/* =================0990=================  */
-			/* =================1010=================  */
-			/* =================1070=================  */
-			/* =================1160=================  */
-			/* =================1380=================  */
-			/* =================1400=================  */
-			/* =================1520=================  */
-			/* =================1530=================  */
-			/* =================1660=================  */
-			/* =================1690=================  */
-			/* =================1710=================  */
-			/* =================1740=================  */
-			/* =================1740=================  */
-			/* =================1760=================  */
-			/* =================1860=================  */
-			/* =================2000=================  */
-			/* =================2010=================  */
-
-			// 关闭文件输出流
-			writer.close();
-			//文件地址
-			String url = file.getAbsolutePath();
-			//替换地址
-			url = url.replace("/home/minio", "http://121.37.83.47");
-
-			if (ObjectUtils.isNotNull(aplSoDto.getEdiTypes())) {
-				if (ObjectUtils.isNotNull(aplSoDto.getEdiTypes().getAddress())) {
-					List<EdiAddress> ediAddressList = JSONArray.parseArray(aplSoDto.getEdiTypes().getAddress(), EdiAddress.class);
-					for (EdiAddress item : ediAddressList) {
-						if ("email".equals(item.getMode())) {
-
-						} else if ("ftp".equals(item.getMode())) {
-
-						} else {
-							throw new RuntimeException("edi地址配置错误");
-						}
-					}
-				}
-			}
-			FilesCenter filesCenter = new FilesCenter();
-			filesCenter.setUrl(url);
-			filesCenter.setFileName(file.getName());
-			// 查找最后一个点号的索引位置
-			int dotIndex = file.getName().lastIndexOf('.');
-			// 确保点号不是第一个字符且不是最后一个字符
-			if (dotIndex > -1 && dotIndex < file.getName().length() - 1) {
-				// 提取从点号开始到结尾之间的部分作为扩展名
-				filesCenter.setFileExt(file.getName().substring(dotIndex + 1));
-			}
-			filesCenter.setReceivedData(new Date());
-			return filesCenter;
-		} catch (IOException e) {
-			throw new SecurityException("生成edi文件失败");
-		}
-	}
-}

+ 77 - 12
blade-service/blade-los/src/main/java/org/springblade/los/edi/service/impl/EdiTypesServiceImpl.java

@@ -160,6 +160,21 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 		return res;
 	}
 
+	public static Boolean readEdiParamBooleanValue(JsonNode json, String keyName, Boolean defaultValue) {
+		Boolean res = defaultValue;
+		if (ObjectUtils.isNotNull(json)) {
+			try {
+				JsonNode js = json.findValue(keyName);
+				if (ObjectUtils.isNotNull(js) && js.isBoolean()) {
+					res = js.asBoolean();
+				}
+			} catch (Exception ignored) {
+
+			}
+		}
+
+		return res;
+	}
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
@@ -216,6 +231,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 			if(ObjectUtils.isNotNull(ediParamsRoot) && !"".equals(carrierCode)){
 				ediParamCarrier = ediParamsRoot.findValue(carrierCode);
 			}
+			Boolean mixedCargo = readEdiParamBooleanValue(ediParamCarrier, "mixedCargo", false);
 
 			String EDI_CODE_NAME = readEdiParamStringValue(ediParamCarrier, "ediCode", "INTTRA");
 
@@ -246,6 +262,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 			inttraSoDto.setFileDate(sdf4.format(date));
 			inttraSoDto.setTransportTermCode(details.getServiceTerms());
 			inttraSoDto.setLclType("2");
+			inttraSoDto.setLoadType(details.getLoadType());
 			inttraSoDto.setBookingRemarks(details.getBookingRemarks());
 			inttraSoDto.setSiRemarks(details.getSiRemarks());
 			inttraSoDto.setCarrySingleRemarks(details.getRemarks());
@@ -276,62 +293,109 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 				inttraSoDto.setIssueDate(sdf2.format(details.getIssueDate()));
 			}
 			inttraSoDto.setBookingNo(details.getBookingNo());
-			inttraSoDto.setBillNo(details.getMblno());
+			inttraSoDto.setMblNo(details.getMblno());
+			inttraSoDto.setHblNo(details.getHblno());
 			inttraSoDto.setCorpArgreementNo(details.getCorpArgreementNo());
 			inttraSoDto.setMainPinyin("");
 			inttraSoDto.setOrderNo(details.getBookingNo());
 			inttraSoDto.setJobId(details.getBookingNo());
 			inttraSoDto.setPaymentType(details.getMpaymode());
+			inttraSoDto.setVesselId(details.getVesselId());
+			inttraSoDto.setVesselName(details.getVesselEnName());
+			inttraSoDto.setVesselCode("");
 			inttraSoDto.setVoyageNo(details.getVoyageNo());
 			if (ObjectUtils.isNotNull(details.getVesselId())) {
 				BVessels bVessels = bVesselsService.getById(details.getVesselId());
 				if (bVessels != null) {
+					if("APL".equals(carrierCode)){
+						// APL 要获取船名代码
+						String ediCode = RegularUtils.getEdiCode(EDI_CODE_NAME, bVessels.getExtendedData());
+						inttraSoDto.setVesselCode(ediCode);
+					}
 					BCorps bCorps = bCorpsService.getById(bVessels.getCarrierId());
 					if (bCorps != null) {
 						inttraSoDto.setVesselCarrierCode(bCorps.getInttraCode());
 					}
 				}
 			}
-			inttraSoDto.setVesselName(details.getVesselEnName());
+			SimpleDateFormat sdf3 = new SimpleDateFormat(readEdiParamStringValue(ediParamCarrier, "etd-format", "yyyyMMdd"));
+			if (ObjectUtils.isNotNull(details.getEtd())) {
+				inttraSoDto.setEtd(sdf3.format(details.getEtd()));
+			}
+
+			inttraSoDto.setPolName(details.getPolEnName());
 			if (ObjectUtils.isNotNull(details.getPolId())) {
 				BPorts bPorts = bPortsService.getById(details.getPolId());
 				if (bPorts != null) {
 					String ediCode = RegularUtils.getEdiCode(EDI_CODE_NAME, bPorts.getExtendedData());
 					inttraSoDto.setPolCode(ediCode);
+					if (ObjectUtils.isNull(inttraSoDto.getPolName())) {
+						inttraSoDto.setPolName(bPorts.getEnName());
+					}
 				}
 			}
-			inttraSoDto.setPolName(details.getPolEnName());
-			SimpleDateFormat sdf3 = new SimpleDateFormat(readEdiParamStringValue(ediParamCarrier, "etd-format", "yyyyMMdd"));
-			if (ObjectUtils.isNotNull(details.getEtd())) {
-				inttraSoDto.setEtd(sdf3.format(details.getEtd()));
-			}
+
+			inttraSoDto.setPlaceReceiptName(details.getPlaceReceiptName());
 			if (ObjectUtils.isNotNull(details.getPlaceReceiptId())) {
 				BPorts bPorts = bPortsService.getById(details.getPlaceReceiptId());
 				if (bPorts != null) {
 					String ediCode = RegularUtils.getEdiCode(EDI_CODE_NAME, bPorts.getExtendedData());
 					inttraSoDto.setPlaceReceiptCode(ediCode);
-					inttraSoDto.setPlaceReceiptName(bPorts.getEnName());
+					if (ObjectUtils.isNull(inttraSoDto.getPlaceReceiptName())) {
+						inttraSoDto.setPlaceReceiptName(bPorts.getEnName());
+					}
 				}
 			}
+			inttraSoDto.setPodName(details.getPodEnName());
 			if (ObjectUtils.isNotNull(details.getPodId())) {
 				BPorts bPorts = bPortsService.getById(details.getPodId());
 				if (bPorts != null) {
 					String ediCode = RegularUtils.getEdiCode(EDI_CODE_NAME, bPorts.getExtendedData());
 					inttraSoDto.setPodCode(ediCode);
+					if (ObjectUtils.isNull(inttraSoDto.getPodName())) {
+						inttraSoDto.setPodName(bPorts.getEnName());
+					}
 				}
 			}
-			inttraSoDto.setPodName(details.getPodEnName());
+			inttraSoDto.setPlaceDeliveryName(details.getPlaceDeliveryName());
 			if (ObjectUtils.isNotNull(details.getPlaceDeliveryId())) {
 				BPorts bPorts = bPortsService.getById(details.getPlaceDeliveryId());
 				if (bPorts != null) {
 					String ediCode = RegularUtils.getEdiCode(EDI_CODE_NAME, bPorts.getExtendedData());
 					inttraSoDto.setPlaceDeliveryCode(ediCode);
-					inttraSoDto.setPlaceDeliveryName(bPorts.getEnName());
+					if (ObjectUtils.isNull(inttraSoDto.getPlaceDeliveryName())) {
+						inttraSoDto.setPlaceDeliveryName(bPorts.getEnName());
+					}
+				}
+			}
+			inttraSoDto.setPlaceDestinationName(details.getDestinationName());
+			if (ObjectUtils.isNotNull(details.getDestinationId())) {
+				BPorts bPorts = bPortsService.getById(details.getDestinationId());
+				if (bPorts != null) {
+					String ediCode = RegularUtils.getEdiCode(EDI_CODE_NAME, bPorts.getExtendedData());
+					inttraSoDto.setPlaceDestinationCode(ediCode);
+					if (ObjectUtils.isNull(inttraSoDto.getPlaceDestinationName())) {
+						inttraSoDto.setPlaceDestinationName(bPorts.getEnName());
+					}
 				}
 			}
 			inttraSoDto.setHShipper(details.getHshipperDetails());
 			inttraSoDto.setHConsignee(details.getHconsigneeDetails());
 			inttraSoDto.setHNotify(details.getHnotifyDetails());
+			inttraSoDto.setHNotify2(details.getHnotify2Details());
+
+			inttraSoDto.setCyId(details.getCyId());
+			inttraSoDto.setCyCode(details.getCyCode());
+			inttraSoDto.setCyCnName(details.getCyCnName());
+			inttraSoDto.setCyEnName(details.getCyEnName());
+			// 场站代码就是3字码
+//			if (ObjectUtils.isNotNull(details.getCyId())) {
+//				BCorps bCorps = bCorpsService.getById(details.getCyId());
+//				if (bCorps != null) {
+//					inttraSoDto.setCyCode(bCorps.getInttraCode());
+//				}
+//			}
+
 			inttraSoDto.setInttraToDoorName(details.getInttraToDoorCorpName());
 			inttraSoDto.setInttraToDoorAddr(details.getInttraToDoorCorpAddr());
 			inttraSoDto.setInttraToDoorContacts(details.getInttraToDoorCorpContacts());
@@ -360,7 +424,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 				inttraSoDto.setPaymentStatus("26");
 			}
 			inttraSoDto.setBillLadingNumber(RegularUtils.englishToNumber(details.getNumberOfObl()));
-			inttraSoDto.setPackagesNumbers(details.getQuantity());
+			inttraSoDto.setPackagesNumber(details.getQuantity());
 			if (ObjectUtils.isNotNull(details.getPackingUnit())) {
 				BPackages bPackages = bPackagesService.getOne(new LambdaQueryWrapper<BPackages>()
 					.eq(BPackages::getCode, details.getPackingUnit()));
@@ -430,7 +494,8 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 				BCntrTypes bCntrTypes = bCntrTypesList.stream().filter(e -> e.getCntrType().equals(item.getCntrTypeCode())).findFirst().orElse(null);
 				if (bCntrTypes != null) {
 					// 赫伯罗特需要装箱货物
-					if("HLCU".equals(carrierCode)) {
+					// if("HLCU".equals(carrierCode)) {
+					if(mixedCargo){
 						item.setContainersCommodityList(containersCommodityService.list(new LambdaQueryWrapper<ContainersCommodity>()
 							.eq(ContainersCommodity::getIsDeleted, 0)
 							.eq(ContainersCommodity::getTenantId, AuthUtil.getTenantId())