wfg 9 months ago
parent
commit
291656a544

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

@@ -345,6 +345,11 @@ public class BCorps implements Serializable {
 	@ApiModelProperty(value = "INTRRA ICUA Email")
 	private String inttraIcuaEmail;
 	/**
+	 * PIL 编码
+	 */
+	@ApiModelProperty(value = "PIL 编码")
+	private String pilCode;
+	/**
 	 * EDI 格式名称
 	 */
 	@ApiModelProperty(value = "EDI 格式名称")

+ 2 - 1
blade-service/blade-los/src/main/java/org/springblade/los/Util/RegularUtils.java

@@ -302,7 +302,8 @@ public class RegularUtils {
 							lines.add(Escape ? escapeEDILine(ln) : ln);
 							ln = "";
 						} else {
-							if (!p1.matcher(ln.charAt(lineLen) + "").matches()) {
+							System.out.println("charAt("+(lineLen-1)+")" + ln.charAt(lineLen-1));
+							if (!p1.matcher(ln.charAt(lineLen-1) + "").matches()) {
 								if (Escape) {
 									lines.add(escapeEDILine(ln.substring(0, lineLen)));
 								} else {

+ 2 - 2
blade-service/blade-los/src/main/java/org/springblade/los/Util/Regular_PIL.java

@@ -315,8 +315,8 @@ public class Regular_PIL {
 //			msg += "配箱信息,";
 //		}
 
-		if (ObjectUtils.isNull(ediData.getCyCode())) {
-			msg += "场站或场站代码,";
+		if (ObjectUtils.isNull(ediData.getCyPilCode())) {
+			// msg += "场站或场站代码,";
 		}
 
 		// msg += "需要客户 8562,8563 的名称";

+ 1 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/corps/mapper/CorpsMapper.xml

@@ -61,6 +61,7 @@
         <result column="inttra_icua" property="inttraIcua"/>
         <result column="inttra_icua_attn" property="inttraIcuaAttn"/>
         <result column="inttra_icua_email" property="inttraIcuaEmail"/>
+        <result column="pil_code" property="pilCode"/>
         <result column="edi_fmt" property="ediFmt"/>
         <result column="edi_ftp" property="ediFtp"/>
         <result column="edi_email" property="ediEmail"/>

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

@@ -301,7 +301,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 					BVessels vessels = bVesselsService.getOne(new LambdaQueryWrapper<BVessels>()
 						.eq(BVessels::getTenantId, AuthUtil.getTenantId())
 						.eq(BVessels::getIsDeleted, 0)
-						.eq(BVessels::getEnName, vsl)
+						.like(BVessels::getEnName, vsl)
 						.last("limit 1"));
 					if (vessels != null) {
 						bills.setVesselEnName(vessels.getEnName());
@@ -326,7 +326,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 				BPorts ports = bPortsService.getOne(new LambdaQueryWrapper<BPorts>()
 					.eq(BPorts::getTenantId, AuthUtil.getTenantId())
 					.eq(BPorts::getIsDeleted, 0)
-					.eq(BPorts::getEnName, por)
+					.like(BPorts::getEnName, por)
 					.last("limit 1"));
 				if (ports != null) {
 					bills.setPlaceReceiptId(ports.getId());
@@ -347,7 +347,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 				BPorts ports = bPortsService.getOne(new LambdaQueryWrapper<BPorts>()
 					.eq(BPorts::getTenantId, AuthUtil.getTenantId())
 					.eq(BPorts::getIsDeleted, 0)
-					.eq(BPorts::getEnName, pol)
+					.like(BPorts::getEnName, pol)
 					.last("limit 1"));
 				if (ports != null) {
 					bills.setPolId(ports.getId());
@@ -368,7 +368,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 				BPorts ports = bPortsService.getOne(new LambdaQueryWrapper<BPorts>()
 					.eq(BPorts::getTenantId, AuthUtil.getTenantId())
 					.eq(BPorts::getIsDeleted, 0)
-					.eq(BPorts::getEnName, pod)
+					.like(BPorts::getEnName, pod)
 					.last("limit 1"));
 				if (ports != null) {
 					bills.setPodId(ports.getId());
@@ -389,7 +389,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 				BPorts ports = bPortsService.getOne(new LambdaQueryWrapper<BPorts>()
 					.eq(BPorts::getTenantId, AuthUtil.getTenantId())
 					.eq(BPorts::getIsDeleted, 0)
-					.eq(BPorts::getEnName, placeOfDelivery)
+					.like(BPorts::getEnName, placeOfDelivery)
 					.last("limit 1"));
 				if (ports != null) {
 					bills.setPlaceDeliveryId(ports.getId());

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

@@ -484,6 +484,10 @@ public class InttraSoDto {
 	 */
 	private String cyCode;
 	/**
+	 * 场站 PIL 代码
+	 */
+	private String cyPilCode;
+	/**
 	 * 场站中文名称
 	 */
 	private String cyCnName;

+ 129 - 38
blade-service/blade-los/src/main/java/org/springblade/los/edi/service/impl/EDISenderServiceImpl.java

@@ -36,6 +36,7 @@ import org.springframework.validation.annotation.Validated;
 
 import java.io.*;
 import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
@@ -140,6 +141,22 @@ public class EDISenderServiceImpl implements IEDISenderService {
 		return res;
 	}
 
+	public static int readEdiParamIntValue(JsonNode json, String keyName, int defaultValue) {
+		int res = defaultValue;
+		if (ObjectUtils.isNotNull(json)) {
+			try {
+				JsonNode js = json.findValue(keyName);
+				if (ObjectUtils.isNotNull(js) && js.isInt()) {
+					res = js.asInt();
+				}
+			} catch (Exception ignored) {
+
+			}
+		}
+
+		return res;
+	}
+
 	private String genEdiLocalFileName(@Validated InttraSoDto edi, JsonNode ediParamCarrier) {
 		String fileName = "";
 		if (ObjectUtils.isNotNull(ediParamCarrier)) {
@@ -352,6 +369,50 @@ public class EDISenderServiceImpl implements IEDISenderService {
 		return filesCenter;
 	}
 
+	public static String getBigDecimalToText(BigDecimal val, int scale){
+		String res = "";
+
+		if(ObjectUtils.isNotNull(val)) {
+			if (scale > 0 && scale <= 4) {
+				res = val.setScale(scale, RoundingMode.HALF_UP).toString();
+			} else {
+				res = val.toString();
+			}
+		}
+
+		return res;
+	}
+
+	public static BigDecimal getBigDecimalFromObj( Object value ) {
+		BigDecimal val = null;
+		if( ObjectUtils.isNotNull(value) ) {
+			if( value instanceof BigDecimal ) {
+				val = (BigDecimal) value;
+			} else if( value instanceof String ) {
+				val = new BigDecimal( (String) value );
+			} else if( value instanceof BigInteger) {
+				val = new BigDecimal( (BigInteger) value );
+			} else if( value instanceof Number ) {
+				val = new BigDecimal( ((Number)value).doubleValue() );
+			} else {
+				// throw new ClassCastException("Not possible to coerce ["+value+"] from class "+value.getClass()+" into a BigDecimal.");
+			}
+		}
+		return val;
+	}
+	public static String getBigDecimalToText(Object val, int scale){
+		String res = "";
+		BigDecimal bv = getBigDecimalFromObj(val);
+		if(ObjectUtils.isNotNull(bv)) {
+			if (scale > 0 && scale <= 4) {
+				res = bv.setScale(scale, RoundingMode.HALF_UP).toString();
+			} else {
+				res = bv.toString();
+			}
+		}
+
+		return res;
+	}
 	@Override
 	public FilesCenter sendingInttraSo(@Validated InttraSoDto inttraSoDto, JsonNode ediParamCarrier) {
 		Date date = new Date();
@@ -370,6 +431,9 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			String carrierCode = inttraSoDto.getCarrierCode();
 			String cargoType = inttraSoDto.getCargoType();
 
+			int weightScale = readEdiParamIntValue(ediParamCarrier, "weightScale", 0);
+			int volScale = readEdiParamIntValue(ediParamCarrier, "VolumeScale", 0);
+
 			// 向文件写入数据
 			// UMB+UNOA
 			writer.write("UNB+UNOA:2+" + inttraSoDto.getSenderId() + ":ZZZ+INTTRA:ZZZ+" + inttraSoDto.getMessageDate() + "+100'");
@@ -940,6 +1004,9 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			String cargoType = inttraSiDto.getCargoType();
 			Boolean mixedCargo = readEdiParamBooleanValue(ediParamCarrier, "mixedCargo", false);
 
+			int weightScale = readEdiParamIntValue(ediParamCarrier, "weightScale", 0);
+			int volScale = readEdiParamIntValue(ediParamCarrier, "VolumeScale", 0);
+
 			// 向文件写入数据
 			/* =================0005=================  */
 			writer.write("UNB+UNOC:2+" + inttraSiDto.getSenderCode() + ":ZZZ+INTTRA:ZZZ+" + inttraSiDto.getMessageDate() + "+100'");
@@ -1094,18 +1161,28 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			}
 
 			/* =================0520=================  */
+			String destCode = "", destName = "";
+			if(ObjectUtils.isNotNull(inttraSiDto.getPlaceDeliveryCode())){
+				destCode = inttraSiDto.getPlaceDeliveryCode();
+				destName = inttraSiDto.getPlaceDeliveryName();
+			}else
+			if(ObjectUtils.isNotNull(inttraSiDto.getPlaceDestinationCode())){
+				destCode = inttraSiDto.getPlaceDestinationCode();
+				destName = inttraSiDto.getPlaceDestinationName();
+			}
+
 			System.out.println("getTransportTermCode: " + inttraSiDto.getTransportTermCode());
-			System.out.println("getTransportTermCode: " + inttraSiDto.getPlaceDeliveryCode());
+			System.out.println("getTransportTermCode: " + destCode);
 			System.out.println("getPodCode: " + 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() + "'");
+					if (!destCode.equals(inttraSiDto.getPodCode())) {
+						writer.write("LOC+7+" + destCode + "::6:" + destName + "'");
 						writer.newLine();
 						count += 1;
 					}
 				}else{
-					writer.write("LOC+7+" + inttraSiDto.getPlaceDeliveryCode() + "::6:" + inttraSiDto.getPlaceDeliveryName() + "'");
+					writer.write("LOC+7+" + destCode + "::6:" + destName + "'");
 					writer.newLine();
 					count += 1;
 				}
@@ -1127,7 +1204,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 					count += 1;
 				}
 			} else {
-				writer.write("LOC+7+" + inttraSiDto.getPlaceDeliveryCode() + "::6:" + inttraSiDto.getPlaceDeliveryName() + "'");
+				writer.write("LOC+7+" + destCode + "::6:" + destName + "'");
 				writer.newLine();
 				count += 1;
 				writer.write("LOC+9+" + inttraSiDto.getPolCode() + "::6:" + inttraSiDto.getPolName() + "'");
@@ -1179,13 +1256,16 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			// MSK Line-Length=512?
 			List<String> goodsDesc = RegularUtils.reformatEDIText(inttraSiDto.getGoodsDesc(), 35, true);
 			// 发货人
-			List<String> hShipper = RegularUtils.reformatEDIText(inttraSiDto.getHShipper(), 35, true);
+			List<String> hShipper = RegularUtils.reformatEDIText(inttraSiDto.getHShipper(), 34, true);
 			writer.write("NAD+CZ+++");
 			for (int l = 0; l < hShipper.size(); l++) {
 				if (l < 5) {
 					writer.write((l > 0) ? ((l == 1) ? "+" : ":") : "");
 					writer.write(hShipper.get(l));
 				} else {
+					if(l==5){
+						writer.write('*');
+					}
 					goodsDesc.add("*" + hShipper.get(l));
 				}
 			}
@@ -1194,13 +1274,16 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			count += 1;
 
 			// 收货人
-			List<String> hConsignee = RegularUtils.reformatEDIText(inttraSiDto.getHConsignee(), 35, true);
+			List<String> hConsignee = RegularUtils.reformatEDIText(inttraSiDto.getHConsignee(), 33, true);
 			writer.write("NAD+CN+++");
 			for (int l = 0; l < hConsignee.size(); l++) {
 				if (l < 5) {
 					writer.write((l > 0) ? ((l == 1) ? "+" : ":") : "");
 					writer.write(hConsignee.get(l));
 				} else {
+					if(l==5){
+						writer.write("**");
+					}
 					goodsDesc.add("**" + hConsignee.get(l));
 				}
 			}
@@ -1209,13 +1292,16 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			count += 1;
 
 			// 通知人
-			List<String> hNotify = RegularUtils.reformatEDIText(inttraSiDto.getHNotify(), 35, true);
+			List<String> hNotify = RegularUtils.reformatEDIText(inttraSiDto.getHNotify(), 32, true);
 			writer.write("NAD+NI+++");
 			for (int l = 0; l < hNotify.size(); l++) {
 				if (l < 5) {
 					writer.write((l > 0) ? ((l == 1) ? "+" : ":") : "");
 					writer.write(hNotify.get(l));
 				} else {
+					if(l==5){
+						writer.write("***");
+					}
 					goodsDesc.add("***" + hNotify.get(l));
 				}
 			}
@@ -1307,10 +1393,10 @@ public class EDISenderServiceImpl implements IEDISenderService {
 									count += 1;
 								}
 								/* =================1070=================  */
-								writer.write("MEA+AAE+WT+KGM:" + cargo.getGrossWeight() + "'");
+								writer.write("MEA+AAE+WT+KGM:" + getBigDecimalToText(cargo.getGrossWeight(), weightScale) + "'");
 								writer.newLine();
 								count += 1;
-								writer.write("MEA+AAE+AAW+MTQ:" + cargo.getMeasurement() + "'");
+								writer.write("MEA+AAE+AAW+MTQ:" + getBigDecimalToText(cargo.getMeasurement(), volScale) + "'");
 								writer.newLine();
 								count += 1;
 
@@ -1390,11 +1476,11 @@ public class EDISenderServiceImpl implements IEDISenderService {
 					count += 1;
 				}
 
-				writer.write("MEA+AAE+AAW+MTQ:" + inttraSiDto.getMeasurement() + "'");
+				writer.write("MEA+AAE+AAW+MTQ:" + getBigDecimalToText(inttraSiDto.getMeasurement(), volScale) + "'");
 				writer.newLine();
 				count += 1;
 
-				writer.write("MEA+AAE+WT+KGM:" + inttraSiDto.getGrossWeight() + "'");
+				writer.write("MEA+AAE+WT+KGM:" + getBigDecimalToText(inttraSiDto.getGrossWeight(), weightScale) + "'");
 				writer.newLine();
 				count += 1;
 				/* =================1160=================  */
@@ -1412,10 +1498,10 @@ public class EDISenderServiceImpl implements IEDISenderService {
 						writer.newLine();
 						count += 1;
 						/* =================1400=================  */
-						writer.write("MEA+AAE+AAW+MTQ:" + map1.get("volume") + "'");
+						writer.write("MEA+AAE+AAW+MTQ:" + getBigDecimalToText(map1.get("volume"), volScale) + "'");
 						writer.newLine();
 						count += 1;
-						writer.write("MEA+AAE+WT+KGM:" + map1.get("grossWeight") + "'");
+						writer.write("MEA+AAE+WT+KGM:" + getBigDecimalToText(map1.get("grossWeight"), weightScale) + "'");
 						writer.newLine();
 						count += 1;
 					}
@@ -1485,12 +1571,12 @@ public class EDISenderServiceImpl implements IEDISenderService {
 						count += 1;
 						/* =================1690=================  */
 						if (ObjectUtils.isNotNull(map1.get("volume"))) {
-							writer.write("MEA+AAE+AAW+MTQ:" + map1.get("volume") + "'");
+							writer.write("MEA+AAE+AAW+MTQ:" + getBigDecimalToText(map1.get("volume"), volScale) + "'");
 							writer.newLine();
 							count += 1;
 						}
 						if (ObjectUtils.isNotNull(map1.get("grossWeight"))) {
-							writer.write("MEA+AAE+WT+KGM:" + map1.get("grossWeight") + "'");
+							writer.write("MEA+AAE+WT+KGM:" + getBigDecimalToText(map1.get("grossWeight"), weightScale) + "'");
 							writer.newLine();
 							count += 1;
 						}
@@ -3872,7 +3958,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				}
 			}
 
-			writer.write("73B" + RegularUtils.paddingRight(pilSoDto.getCyCode(), 120 + 127));
+			writer.write("73B" + RegularUtils.paddingRight(pilSoDto.getCyPilCode(), 120 + 127));
 			writer.newLine();
 			count += 1;
 
@@ -3917,7 +4003,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			writer.write("00DOC" + RegularUtils.paddingLeft(20 + 2));
 			writer.write(RegularUtils.paddingRight(pilSiDto.getSenderCode(), 8));
 			writer.write(RegularUtils.paddingRight(6) + RegularUtils.paddingRight(pilSiDto.getFileDate(), 12 + 1));
-			writer.write(RegularUtils.paddingRight("CNTAO", 5) + RegularUtils.paddingRight("CNTAO", 4));
+			writer.write(RegularUtils.paddingRight("CNTAO", 5) + RegularUtils.paddingRight("CNTAO", 5));
 			writer.write(RegularUtils.paddingRight("4.02", 4) + RegularUtils.paddingRight(15 + 167));
 			writer.newLine();
 			count++;
@@ -3986,7 +4072,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			pm = Objects.equals(pm, "PP") ? "P" : (Objects.equals(pm, "CC") ? "C" : " ");
 
 			writer.write(RegularUtils.paddingRight(loadType, 2 + 2) + RegularUtils.paddingRight(serviceTerm, 2 + 3) + pm);
-			writer.write(RegularUtils.paddingRight("NN", 2 + 8) + RegularUtils.paddingRight(pilSiDto.getMblNo(), 20 + 20) + "F");
+			writer.write(RegularUtils.paddingRight("NN", 2 + 8) + RegularUtils.paddingLeft(pilSiDto.getMblNo(), 20) + RegularUtils.paddingRight(20) + "F");
 			writer.write(RegularUtils.paddingRight(20 + 20 + 12));
 
 			SimpleDateFormat sdf_bkgDate = new SimpleDateFormat("yyyyMMdd");
@@ -4046,7 +4132,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			//	if(CORPID.Asinteger=8563,'SHANDONG GOODFARMER FRUITS AND VEGETABLES CO.,LT D',
 			//	 'QINGDAO JET MARINE LOGISTICS CO.,LTD. '))
 			// wfg
-			String senderTel = "0530-8312038";
+			String senderTel = "0532-82668811-185";
 			String senderName = "QINGDAO JET MARINE LOGISTICS CO.,LTD.";
 			writer.write(RegularUtils.paddingRight(senderName, 70) + RegularUtils.paddingRight(senderTel, 35 + 35 + 35 + 17 + 18 + 4 + 5 + 9));
 			writer.newLine();
@@ -4215,7 +4301,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 //					count += 1;
 
 					// 货物描述
-					writer.write("47   " + RegularUtils.paddingLeft("" + cargoline, '0', 3));
+					// writer.write("47   " + RegularUtils.paddingLeft("" + cargoline, '0', 3));
 					List<String> goodsDesc = RegularUtils.reformatEDIText(pilSiDto.getGoodsDesc(), 30, false);
 					while (goodsDesc.size() % 8 != 0) {
 						goodsDesc.add("");
@@ -4333,9 +4419,11 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				}
 			}
 
-			writer.write("73B" + RegularUtils.paddingRight(pilSiDto.getCyCode(), 120 + 127));
+			/* 场站不加?
+			writer.write("73B" + RegularUtils.paddingRight(pilSiDto.getCyPilCode(), 120 + 127));
 			writer.newLine();
 			count += 1;
+			*/
 
 			List<Map<String, Object>> mapLoadedList = pilSiDto.getLoadedCntrs();
 			for (Map<String, Object> map : mapLoadedList) {
@@ -4360,8 +4448,9 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			writer.write("74" + RegularUtils.paddingRight(3 + 5 + 8 + 4 + 3) + ("EXP".equals(pilSiDto.getIssueType()) ? "W" : "N"));
 			writer.write("0301");
 			// 服务合同
-			writer.write(RegularUtils.paddingRight(pilSiDto.getCorpArgreementNo(), 10 + 5 + 5));
-			writer.write(RegularUtils.paddingLeft(pilSiDto.getPackagesNumber().setScale(3, RoundingMode.HALF_UP).toString(), 8));
+			String soNo = ObjectUtils.isNotNull(pilSiDto.getCorpArgreementNo()) ? RegularUtils.copySubstring(pilSiDto.getCorpArgreementNo(), 0, 10) : "";
+			writer.write(RegularUtils.paddingRight(soNo, 10 + 5 + 5));
+			writer.write(RegularUtils.paddingLeft(pilSiDto.getPackagesNumber().setScale(0, RoundingMode.HALF_UP).toString(), 8));
 			String pkgsDescr = ObjectUtils.isNull(pilSiDto.getPackagesDescribe()) ? "" : pilSiDto.getPackagesDescribe();
 			writer.write(RegularUtils.paddingRight(RegularUtils.copySubstring(pkgsDescr, 0, 8), 8));
 			writer.write(RegularUtils.paddingRight(12 + 1 + 1 + 8 + 8 + 5 + 5 + 8 + 5 + 5 + 126));
@@ -4743,7 +4832,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				}
 			}
 
-			writer.write("73B" + RegularUtils.paddingRight(mellSoDto.getCyCode(), 120 + 127));
+			writer.write("73B" + RegularUtils.paddingRight(mellSoDto.getCyPilCode(), 120 + 127));
 			writer.newLine();
 			count += 1;
 
@@ -4788,7 +4877,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			writer.write("00DOC" + RegularUtils.paddingLeft(20 + 2));
 			writer.write(RegularUtils.paddingRight(mellSiDto.getSenderCode(), 8));
 			writer.write(RegularUtils.paddingRight(6) + RegularUtils.paddingRight(mellSiDto.getFileDate(), 12 + 1));
-			writer.write(RegularUtils.paddingRight("CNTAO", 5) + RegularUtils.paddingRight("CNTAO", 4));
+			writer.write(RegularUtils.paddingRight("CNTAO", 5) + RegularUtils.paddingRight("CNTAO", 5));
 			writer.write(RegularUtils.paddingRight("4.02", 4) + RegularUtils.paddingRight(15 + 167));
 			writer.newLine();
 			count++;
@@ -4857,7 +4946,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			pm = Objects.equals(pm, "PP") ? "P" : (Objects.equals(pm, "CC") ? "C" : " ");
 
 			writer.write(RegularUtils.paddingRight(loadType, 2 + 2) + RegularUtils.paddingRight(serviceTerm, 2 + 3) + pm);
-			writer.write(RegularUtils.paddingRight("NN", 2 + 8) + RegularUtils.paddingRight(mellSiDto.getMblNo(), 20 + 20) + "F");
+			writer.write(RegularUtils.paddingRight("NN", 2 + 8) + RegularUtils.paddingLeft(mellSiDto.getMblNo(), 20) + RegularUtils.paddingRight(20) + "F");
 			writer.write(RegularUtils.paddingRight(20 + 20 + 12));
 
 			SimpleDateFormat sdf_bkgDate = new SimpleDateFormat("yyyyMMdd");
@@ -4916,7 +5005,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			//	if(CORPID.Asinteger=8563,'SHANDONG GOODFARMER FRUITS AND VEGETABLES CO.,LT D',
 			//	 'QINGDAO JET MARINE LOGISTICS CO.,LTD. '))
 			// wfg
-			String senderTel = "0530-8312038";
+			String senderTel = "0532-82668811-129";
 			String senderName = "QINGDAO JET MARINE LOGISTICS CO.,LTD.";
 			writer.write(RegularUtils.paddingRight(senderName, 70) + RegularUtils.paddingRight(senderTel, 35 + 35 + 35 + 17 + 18 + 4 + 5 + 9));
 			writer.newLine();
@@ -5009,9 +5098,9 @@ public class EDISenderServiceImpl implements IEDISenderService {
 					Integer cq = 0;
 					for (Map<String, Object> mapLoaded : mapLoadedList) {
 						if (mapLoaded.get("sizeType").equals(map.get("sizeType"))) {
-							pkgs = pkgs.add(new BigDecimal(map.get("quantity").toString()));
-							gw = gw.add(new BigDecimal(map.get("grossWeight").toString()));
-							vol = vol.add(new BigDecimal(map.get("volume").toString()));
+							pkgs = pkgs.add(new BigDecimal(mapLoaded.get("quantity").toString()));
+							gw = gw.add(new BigDecimal(mapLoaded.get("grossWeight").toString()));
+							vol = vol.add(new BigDecimal(mapLoaded.get("volume").toString()));
 							cq++;
 						}
 					}
@@ -5202,9 +5291,11 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				}
 			}
 
-			writer.write("73B" + RegularUtils.paddingRight(mellSiDto.getCyCode(), 120 + 127));
+			/*
+			writer.write("73B" + RegularUtils.paddingRight(mellSiDto.getCyPilCode(), 120 + 127));
 			writer.newLine();
 			count += 1;
+			*/
 
 			List<Map<String, Object>> mapLoadedList = mellSiDto.getLoadedCntrs();
 			for (Map<String, Object> map : mapLoadedList) {
@@ -5224,13 +5315,13 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				count += 1;
 			}
 
-
 			// 提单信息
 			writer.write("74" + RegularUtils.paddingRight(3 + 5 + 8 + 4 + 3) + ("EXP".equals(mellSiDto.getIssueType()) ? "W" : "N"));
 			writer.write("0301");
 			// 服务合同
-			writer.write(RegularUtils.paddingRight(mellSiDto.getCorpArgreementNo(), 10 + 5 + 5));
-			writer.write(RegularUtils.paddingLeft(mellSiDto.getPackagesNumber().setScale(3, RoundingMode.HALF_UP).toString(), 8));
+			String soNo = ObjectUtils.isNotNull(mellSiDto.getCorpArgreementNo()) ? RegularUtils.copySubstring(mellSiDto.getCorpArgreementNo(), 0, 10) : "";
+			writer.write(RegularUtils.paddingRight(soNo, 10 + 5 + 5));
+			writer.write(RegularUtils.paddingLeft(mellSiDto.getPackagesNumber().setScale(0, RoundingMode.HALF_UP).toString(), 8));
 			String pkgsDescr = ObjectUtils.isNull(mellSiDto.getPackagesDescribe()) ? "" : mellSiDto.getPackagesDescribe();
 			writer.write(RegularUtils.paddingRight(RegularUtils.copySubstring(pkgsDescr, 0, 8), 8));
 			writer.write(RegularUtils.paddingRight(12 + 1 + 1 + 8 + 8 + 5 + 5 + 8 + 5 + 5 + 126));
@@ -6648,7 +6739,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			List<String> hShipper = RegularUtils.reformatEDIText(shpr, 35, true);
 			writer.write("20:" + ymlSoDto.getHshipperCntyName());
 			for (int l = 0; l < hShipper.size(); l++) {
-				if (l < 6) {
+				if (l < 5) {
 					writer.write(":" + hShipper.get(l));
 				} else {
 					goodsDescAddtion_S.add(hShipper.get(l));
@@ -6664,7 +6755,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			List<String> hConsignee = RegularUtils.reformatEDIText(cnee, 35, true);
 			writer.write("21:" + ymlSoDto.getHconsigneeCntyName());
 			for (int l = 0; l < hConsignee.size(); l++) {
-				if (l < 6) {
+				if (l < 5) {
 					writer.write(":" + hConsignee.get(l));
 				} else {
 					goodsDescAddtion_C.add(hConsignee.get(l));
@@ -6680,7 +6771,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 			List<String> hNotify = RegularUtils.reformatEDIText(notify, 35, true);
 			writer.write("22:" + ymlSoDto.getHnotifyCntyName());
 			for (int l = 0; l < hNotify.size(); l++) {
-				if (l < 6) {
+				if (l < 5) {
 					writer.write(":" + hNotify.get(l));
 				} else {
 					goodsDescAddtion_N.add(hNotify.get(l));

+ 14 - 6
blade-service/blade-los/src/main/java/org/springblade/los/edi/service/impl/EdiTypesServiceImpl.java

@@ -339,7 +339,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 		}
 
 		inttraSoDto.setPolCode("");
-		inttraSoDto.setPolName(RegularUtils.forceEmpty(details.getPolEnName()));
+		inttraSoDto.setPolName(RegularUtils.forceEmpty(details.getPolNamePrint()));
 		if (ObjectUtils.isNotNull(details.getPolId())) {
 			BPorts bPorts = bPortsService.getById(details.getPolId());
 			if (bPorts != null) {
@@ -352,7 +352,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 		}
 
 		inttraSoDto.setPlaceReceiptCode("");
-		inttraSoDto.setPlaceReceiptName(RegularUtils.forceEmpty(details.getPlaceReceiptName()));
+		inttraSoDto.setPlaceReceiptName(RegularUtils.forceEmpty(details.getPlaceReceiptNamePrint()));
 		if (ObjectUtils.isNotNull(details.getPlaceReceiptId())) {
 			BPorts bPorts = bPortsService.getById(details.getPlaceReceiptId());
 			if (bPorts != null) {
@@ -364,7 +364,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 			}
 		}
 		inttraSoDto.setPodCode("");
-		inttraSoDto.setPodName(RegularUtils.forceEmpty(details.getPodEnName()));
+		inttraSoDto.setPodName(RegularUtils.forceEmpty(details.getPodNamePrint()));
 		if (ObjectUtils.isNotNull(details.getPodId())) {
 			BPorts bPorts = bPortsService.getById(details.getPodId());
 			if (bPorts != null) {
@@ -376,7 +376,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 			}
 		}
 		inttraSoDto.setPotCode("");
-		inttraSoDto.setPotName(RegularUtils.forceEmpty(details.getPotEnName()));
+		inttraSoDto.setPotName(RegularUtils.forceEmpty(details.getPotNamePrint()));
 		if (ObjectUtils.isNotNull(details.getPotId())) {
 			BPorts bPorts = bPortsService.getById(details.getPotId());
 			if (bPorts != null) {
@@ -389,7 +389,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 		}
 
 		inttraSoDto.setPlaceDeliveryCode("");
-		inttraSoDto.setPlaceDeliveryName(RegularUtils.forceEmpty(details.getPlaceDeliveryName()));
+		inttraSoDto.setPlaceDeliveryName(RegularUtils.forceEmpty(details.getPlaceDeliveryNamePrint()));
 		if (ObjectUtils.isNotNull(details.getPlaceDeliveryId())) {
 			BPorts bPorts = bPortsService.getById(details.getPlaceDeliveryId());
 			if (bPorts != null) {
@@ -402,7 +402,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 		}
 
 		inttraSoDto.setPlaceDestinationCode("");
-		inttraSoDto.setPlaceDestinationName(RegularUtils.forceEmpty(details.getDestinationName()));
+		inttraSoDto.setPlaceDestinationName(RegularUtils.forceEmpty(details.getDestinationNamePrint()));
 		if (ObjectUtils.isNotNull(details.getDestinationId())) {
 			BPorts bPorts = bPortsService.getById(details.getDestinationId());
 			if (bPorts != null) {
@@ -450,6 +450,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 			BCorps bCorps = bCorpsService.getById(details.getCyId());
 			if (bCorps != null) {
 				inttraSoDto.setCyCode(bCorps.getCyCode());
+				inttraSoDto.setCyPilCode(bCorps.getPilCode());
 			}
 		}
 		inttraSoDto.setCyCnName(details.getCyCnName());
@@ -615,6 +616,13 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
 				map.put("volume", item.getMeasurement());
 				map.put("sizeType", ediCode);
 				map.put("cntrTypeName", RegularUtils.forceEmpty(bCntrTypes.getEnName()));
+				String ccc = RegularUtils.forceEmpty(bCntrTypes.getCode()), cntrType = "", cntrSize="";
+				if(ccc.length()>=4){
+					cntrSize = RegularUtils.copySubstring(ccc, 0, 2);
+					cntrType = RegularUtils.copySubstring(ccc, 2, 2);
+				}
+				map.put("cntrTypeCode", cntrType);
+				map.put("cntrSize", cntrSize);
 				map.put("cntrNo", RegularUtils.forceEmpty(item.getCntrNo()));
 				map.put("sealNo", RegularUtils.forceEmpty(item.getSealNo()));
 				map.put("sealUnit", "");

+ 5 - 0
blade-service/blade-los/src/main/java/org/springblade/los/excel/BCorpsExcel.java

@@ -236,6 +236,11 @@ public class BCorpsExcel implements Serializable {
 	@ExcelProperty(value = "INTRRA ICUA Email")
 	private String inttraIcuaEmail;
 	/**
+	 * PIL 编码
+	 */
+	@ApiModelProperty(value = "PIL 编码")
+	private String pilCode;
+	/**
 	 * EDI 格式名称
 	 */
 	@ExcelProperty(value = "EDI 格式名称")