Browse Source

2023年12月21日17:36:59

纪新园 2 years ago
parent
commit
25028cb6e1

+ 5 - 5
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/vo/FinAccBillsVO.java

@@ -198,6 +198,11 @@ public class FinAccBillsVO extends FinAccBills {
 	private BigDecimal unsettledAmount;
 
 	/**
+	 * 已开票金额
+	 */
+	private BigDecimal uninvoicedAmount;
+
+	/**
 	 * 是否已签收(0 否 1是)
 	 */
 	private Integer isSignfor;
@@ -243,9 +248,4 @@ public class FinAccBillsVO extends FinAccBills {
 	 */
 	private String accountPeriodType;
 
-	/**
-	 * 已开票金额
-	 */
-	private String uninvoicedAmount;
-
 }

+ 12 - 1
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java

@@ -353,11 +353,22 @@ public class BillsController extends BladeController {
 	 */
 	@PostMapping("/copyBills")
 	@ApiOperationSupport(order = 13)
-	@ApiOperation(value = "撤销请核", notes = "传入bills")
+	@ApiOperation(value = "复制单据", notes = "传入bills")
 	@RepeatSubmit
 	public R copyBills(@RequestBody Bills bills) {
 		Bills declare = billsService.copyBills(bills);
 		return R.data(declare);
 	}
 
+	/**
+	 * 发送edi
+	 */
+	@GetMapping("/sendingEdi")
+	@ApiOperationSupport(order = 13)
+	@ApiOperation(value = "发送edi", notes = "传入bills")
+	@RepeatSubmit
+	public R sendingEdi( Bills bills) {
+		return billsService.sendingEdi(bills);
+	}
+
 }

+ 4 - 1
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/BillsMapper.xml

@@ -305,7 +305,10 @@
         SUM(fee.amount_loc) as amountLoc,
         SUM(fee.stl_ttl_amount) as stlTtlAmount,
         SUM(fee.invoice_amount_loc) as invoiceAmountLoc,
-        IF(SUM(fee.uninvoiced_amount),SUM(fee.uninvoiced_amount),0.00) as unsettledAmount,
+        IF
+        ( sum( fee.uninvoiced_amount ), sum( fee.uninvoiced_amount ), 0.00 ) AS uninvoicedAmount,
+        IF
+        ( sum( fee.unsettled_amount ), sum( fee.unsettled_amount ), 0.00 ) AS unsettledAmount,
         fee.is_signfor as isSignfor,
         fee.signfor_id as signforId,
         fee.signfor_name as signforName,

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/IBillsService.java

@@ -133,4 +133,11 @@ public interface IBillsService extends IService<Bills> {
 	 * @return
 	 */
 	Bills copyBills(Bills bills);
+
+	/**
+	 * 发送edi
+	 * @param bills
+	 * @return
+	 */
+    R sendingEdi(Bills bills);
 }

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

@@ -45,6 +45,8 @@ import org.springblade.los.check.entity.LosAuditPathsLevels;
 import org.springblade.los.check.service.IAuditPathsActsService;
 import org.springblade.los.check.service.IAuditPathsLevelsService;
 import org.springblade.los.check.service.IAuditProecessService;
+import org.springblade.los.edi.api.EDISender;
+import org.springblade.los.edi.dto.InttraSoDto;
 import org.springblade.los.finance.fee.entity.FeeCenter;
 import org.springblade.los.finance.fee.entity.FinAccBills;
 import org.springblade.los.finance.fee.service.IFeeCenterService;
@@ -55,6 +57,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -126,7 +129,9 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			.eq(Bills::getCreateDept, AuthUtil.getDeptId())
 			.eq(Bills::getTenantId, AuthUtil.getTenantId())
 			.eq(Bills::getIsDeleted, 0)
-			.eq(Bills::getMblno, bills.getMblno()));
+			.eq(Bills::getMblno, bills.getMblno())
+			.eq(Bills::getBookingNo, bills.getBookingNo())
+		);
 		if (bills.getId() == null) {
 			if (count.size() > 0) {
 				throw new RuntimeException("提单号不允许重复");
@@ -206,10 +211,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 						this.updateBatchById(billsList);
 					}
 				}
-			} else if ("MH".equals(bills.getBillType())) {
-
 			}
-
 		}
 		this.saveOrUpdate(bills);
 		/**-------------箱型箱量计算---------*/
@@ -1109,4 +1111,86 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		return copyBills;
 	}
 
+	@Override
+	public R sendingEdi(Bills bills) {
+		if (bills.getId() == null) {
+			throw new RuntimeException("缺少必要参数");
+		}
+		Date date = new Date();
+		Bills details = baseMapper.selectById(bills.getId());
+		InttraSoDto inttraSoDto = new InttraSoDto();
+		inttraSoDto.setIdentifying("发送方标识");
+		SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd:hhmm");
+		inttraSoDto.setDate(sdf.format(date));
+		SimpleDateFormat sdf1 = new SimpleDateFormat("yyMMddhhmm");
+		String corpId = details.getCorpId().toString();
+		inttraSoDto.setFileExchangeNumber(sdf1.format(date) + corpId.substring(corpId.length() - 4));
+		inttraSoDto.setInformationNo(inttraSoDto.getFileExchangeNumber());
+		inttraSoDto.setIdentificationCode(details.getMblno() + "SO");
+		inttraSoDto.setFilesFunction("9");
+		inttraSoDto.setFilesDate("cc" + sdf1.format(date));
+		inttraSoDto.setTransportTermCode("运输条款代码");
+		inttraSoDto.setLclType("2");
+		inttraSoDto.setRemarks("备注");
+		inttraSoDto.setWeightOfGoods("货物重量");
+		inttraSoDto.setPaymentLand("付款地");
+		inttraSoDto.setBookingNo(details.getBookingNo());
+		inttraSoDto.setPaymentType(details.getMpaymode());
+		inttraSoDto.setVoyageNo(details.getVoyageNo());
+		inttraSoDto.setVesselCarrierCode("船司代码");
+		inttraSoDto.setVesselName(details.getVesselCnName());
+		inttraSoDto.setPolCode(details.getPolCode());
+		inttraSoDto.setPolName(details.getPolCnName());
+		inttraSoDto.setPlaceReceiptCode(details.getPlaceReceiptCode());
+		inttraSoDto.setPlaceReceiptName(details.getPlaceReceiptName());
+		inttraSoDto.setPodCode(details.getPodCode());
+		inttraSoDto.setPodName(details.getPodCnName());
+		inttraSoDto.setPlaceDeliveryCode(details.getPlaceDeliveryCode());
+		inttraSoDto.setPlaceDeliveryName(details.getPlaceDeliveryName());
+		inttraSoDto.setHsHipperOne(details.getHshipperCnName());
+		inttraSoDto.setHConsigneeOne(details.getHconsigneeCnName());
+		inttraSoDto.setHNotifyOne(details.getHnotifyCnName());
+		inttraSoDto.setCarrierCode("船司代码");
+		inttraSoDto.setCarrierName(details.getCarrierCnName());
+		inttraSoDto.setSenderCode("发送方代码");
+		inttraSoDto.setSenderName("发送方称呼");
+		inttraSoDto.setSenderContacts("发送方联系人");
+		inttraSoDto.setSenderTel("发送方联系电话");
+		inttraSoDto.setSenderEmail("发送方联系邮件");
+		inttraSoDto.setPackagesNumbers(details.getQuantity());
+		inttraSoDto.setPackagesCode(details.getPackingUnit());
+		inttraSoDto.setProductName("品名");
+		inttraSoDto.setGrossWeight(details.getGrossWeight());
+		inttraSoDto.setMeasurement(details.getMeasurement());
+		inttraSoDto.setMarks(details.getMarks());
+		inttraSoDto.setBoxCode("箱型代码");
+		Integer sum = details.getQuantityV20() + details.getQuantityV40() + details.getQuantityV45()
+			+ details.getQuantityV48() + details.getQuantityV40hc();
+		inttraSoDto.setBoxNumber(new BigDecimal(sum + ""));
+		inttraSoDto.setRecordRows(new BigDecimal("10"));
+		inttraSoDto.setInformationNoEnd(inttraSoDto.getInformationNo());
+		inttraSoDto.setFileExchangeNumberEnd(inttraSoDto.getFileExchangeNumber());
+
+		FilesCenter filesCenter = EDISender.sendingInttraSo(inttraSoDto);
+		filesCenter.setMblno(details.getMblno());
+		filesCenter.setHblno(details.getHblno());
+		filesCenter.setBillNo(details.getBillNo());
+		filesCenter.setCreateDept(details.getCreateDept());
+		filesCenter.setCreateTime(details.getCreateTime());
+		filesCenter.setCreateDeptName(details.getCreateDeptName());
+		filesCenter.setCreateUser(details.getCreateUser());
+		filesCenter.setCreateUserName(details.getCreateUserName());
+		filesCenter.setPid(details.getId());
+		filesCenter.setBusinessType(details.getBusinessType());
+		filesCenter.setClassifyCode("edi");
+		filesCenter.setGroupCode("SO");
+		filesCenter.setSerialNo(1);
+		filesCenter.setSort(1);
+		filesCenter.setReceivedData(new Date());
+		filesCenter.setIsImage(0);
+		filesCenter.setTenantId(AuthUtil.getTenantId());
+		filesCenterService.saveOrUpdate(filesCenter);
+		return R.data(filesCenter);
+	}
+
 }

+ 430 - 293
blade-service/blade-los/src/main/java/org/springblade/los/edi/api/EDISender.java

@@ -10,6 +10,7 @@ import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 
 /**
@@ -20,348 +21,484 @@ public class EDISender {
 
 
 	public static FilesCenter sendingInttraSo(@Valid InttraSoDto inttraSoDto) {
-		String text = "";
-		/* =================005=================  */
-		text += "UNB+UNOC:2+" + inttraSoDto.getIdentifying() + ":ZZZ+INTTRA:ZZZ+" + inttraSoDto.getDate() + "+" + inttraSoDto.getFileExchangeNumber() + "'";
-		/* =================0010=================  */
-		text += "UNH+" + inttraSoDto.getInformationNo() + "+IFTMIN:D:99B:UN'";
-		/* =================0020=================  */
-		text += "BGM+335+" + inttraSoDto.getIdentificationCode() + inttraSoDto.getFilesFunction() + "'";
-		/* =================0050=================  */
-		text += "DTM+137:" + inttraSoDto.getFilesDate() + "203'";
-		/* =================0060=================  */
-		text += "TSR+" + inttraSoDto.getTransportTermCode() + inttraSoDto.getLclType() + "'";
-		/* =================0090=================  */
-		text += "FTX+AAI+++" + inttraSoDto.getRemarks() + "'";
-		if (ObjectUtils.isNotNull(inttraSoDto.getCarrySingleRemarks())) {
-			text += "FTX+BLC+++" + inttraSoDto.getCarrySingleRemarks() + "'";
-		}
-		/* =================0100=================  */
-		text += "CNT+7:" + inttraSoDto.getWeightOfGoods() + ":KGM'";
-		if (ObjectUtils.isNotNull(inttraSoDto.getPackagesNumber())) {
-			text += "CNT+11:" + inttraSoDto.getPackagesNumber() + "'";
-		}
-		if (ObjectUtils.isNotNull(inttraSoDto.getVolumeOfGoods())) {
-			text += "CNT+15:" + inttraSoDto.getVolumeOfGoods() + ":MTQ'";
-		}
-		if (ObjectUtils.isNotNull(inttraSoDto.getTotalBoxNumber())) {
-			text += "CNT+16:" + inttraSoDto.getTotalBoxNumber() + "'";
-		}
-		/* =================0140=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getPaymentLocationCode())) {
-			text += "LOC+57+" + inttraSoDto.getPaymentLocationCode();
-		}
-		if (ObjectUtils.isNotNull(inttraSoDto.getPaymentLand())) {
-			text += "::6:" + inttraSoDto.getPaymentLand() + "'";
-		} else {
-			text += "'";
-		}
-		if (ObjectUtils.isNotNull(inttraSoDto.getIssuanceLandCode())) {
-			text += "LOC+73+" + inttraSoDto.getIssuanceLandCode();
-		}
-		if (ObjectUtils.isNotNull(inttraSoDto.getIssuanceLand())) {
-			text += "::6:" + inttraSoDto.getIssuanceLand() + "'";
-		} else {
-			text += "'";
-		}
-		/* =================0150=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getIssueDate())) {
-			text += "DTM+95:" + inttraSoDto.getIssueDate() + ":102'";
-		}
-		/* =================0200=================  */
-		text += "RFF+BN:" + inttraSoDto.getBookingNo() + "'";
-		if (ObjectUtils.isNotNull(inttraSoDto.getBillNo())) {
-			text += "RFF+BM:" + inttraSoDto.getBillNo() + "'";
-		}
-		if (ObjectUtils.isNotNull(inttraSoDto.getFreightProtocolNumber())) {
-			text += "RFF+CT:" + inttraSoDto.getFreightProtocolNumber() + "'";
-		}
-		if (ObjectUtils.isNotNull(inttraSoDto.getMainPinyin())) {
-			text += "RFF+SI:" + inttraSoDto.getMainPinyin() + "'";
-		}
-		if (ObjectUtils.isNotNull(inttraSoDto.getOrderNo())) {
-			text += "RFF+ON:" + inttraSoDto.getOrderNo() + "'";
-		}
-		if (ObjectUtils.isNotNull(inttraSoDto.getJobId())) {
-			text += "RFF+FF:" + inttraSoDto.getJobId() + "'";
-		}
-		/* =================0320=================  */
-		text += "CPI+4++" + inttraSoDto.getPaymentType() + "'";
-		/* =================0480=================  */
-		if (inttraSoDto.getVoyageNo().indexOf("V.") > 0) {
-			throw new RuntimeException("航次中不能存在‘V.’");
-		} else {
-			text += "TDT+20+" + inttraSoDto.getVoyageNo() + "+1++";
-			if (ObjectUtils.isNotNull(inttraSoDto.getVesselCarrierCode())) {
-				text += inttraSoDto.getVesselCarrierCode() + ":172+++:::" + inttraSoDto.getVesselName() + "'";
+		try {
+			SimpleDateFormat sdf1 = new SimpleDateFormat("yyMMddhhmmss");
+			Date date = new Date();
+			//生成edi文件
+//			File file = new File("/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload", "edi.txt");
+			File file = new File("D:/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload", sdf1.format(date) + "-edi.text");
+			file.createNewFile();
+			// 打开文件输出流进行写入操作
+			BufferedWriter writer = new BufferedWriter(new FileWriter(file));
+			// 向文件写入数据
+			/* =================005=================  */
+			writer.write("UNB+UNOC:2+" + inttraSoDto.getIdentifying() + ":ZZZ+INTTRA:ZZZ+" + inttraSoDto.getDate() + "+" + inttraSoDto.getFileExchangeNumber() + "'");
+			writer.newLine();
+			/* =================0010=================  */
+			writer.write("UNH+" + inttraSoDto.getInformationNo() + "+IFTMIN:D:99B:UN'");
+			writer.newLine();
+			/* =================0020=================  */
+			writer.write("BGM+335+" + inttraSoDto.getIdentificationCode()+"+" + inttraSoDto.getFilesFunction() + "'");
+			writer.newLine();
+			/* =================0050=================  */
+			writer.write("DTM+137:" + inttraSoDto.getFilesDate() + "203'");
+			writer.newLine();
+			/* =================0060=================  */
+			writer.write("TSR+" + inttraSoDto.getTransportTermCode()+"+" + inttraSoDto.getLclType() + "'");
+			writer.newLine();
+			/* =================0090=================  */
+			writer.write("FTX+AAI+++" + inttraSoDto.getRemarks() + "'");
+			writer.newLine();
+			if (ObjectUtils.isNotNull(inttraSoDto.getCarrySingleRemarks())) {
+				writer.write("FTX+BLC+++" + inttraSoDto.getCarrySingleRemarks() + "'");
+				writer.newLine();
+			}
+			/* =================0100=================  */
+			writer.write("CNT+7:" + inttraSoDto.getWeightOfGoods() + ":KGM'");
+			writer.newLine();
+			if (ObjectUtils.isNotNull(inttraSoDto.getPackagesNumber())) {
+				writer.write("CNT+11:" + inttraSoDto.getPackagesNumber() + "'");
+				writer.newLine();
+			}
+			if (ObjectUtils.isNotNull(inttraSoDto.getVolumeOfGoods())) {
+				writer.write("CNT+15:" + inttraSoDto.getVolumeOfGoods() + ":MTQ'");
+				writer.newLine();
+			}
+			if (ObjectUtils.isNotNull(inttraSoDto.getTotalBoxNumber())) {
+				writer.write("CNT+16:" + inttraSoDto.getTotalBoxNumber() + "'");
+				writer.newLine();
+			}
+			/* =================0140=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getPaymentLocationCode())) {
+				writer.write("LOC+57+" + inttraSoDto.getPaymentLocationCode());
+				if (ObjectUtils.isNotNull(inttraSoDto.getPaymentLand())) {
+					writer.write("::6:" + inttraSoDto.getPaymentLand() + "'");
+					writer.newLine();
+				} else {
+					writer.write("'");
+					writer.newLine();
+				}
+			}
+			if (ObjectUtils.isNotNull(inttraSoDto.getIssuanceLandCode())) {
+				writer.write("LOC+73+" + inttraSoDto.getIssuanceLandCode());
+				if (ObjectUtils.isNotNull(inttraSoDto.getIssuanceLand())) {
+					writer.write("::6:" + inttraSoDto.getIssuanceLand() + "'");
+					writer.newLine();
+				} else {
+					writer.write("'");
+					writer.newLine();
+				}
+			}
+			/* =================0150=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getIssueDate())) {
+				writer.write("DTM+95:" + inttraSoDto.getIssueDate() + ":102'");
+				writer.newLine();
+			}
+			/* =================0200=================  */
+			writer.write("RFF+BN:" + inttraSoDto.getBookingNo() + "'");
+			writer.newLine();
+			if (ObjectUtils.isNotNull(inttraSoDto.getBillNo())) {
+				writer.write("RFF+BM:" + inttraSoDto.getBillNo() + "'");
+				writer.newLine();
+			}
+			if (ObjectUtils.isNotNull(inttraSoDto.getFreightProtocolNumber())) {
+				writer.write("RFF+CT:" + inttraSoDto.getFreightProtocolNumber() + "'");
+				writer.newLine();
+			}
+			if (ObjectUtils.isNotNull(inttraSoDto.getMainPinyin())) {
+				writer.write("RFF+SI:" + inttraSoDto.getMainPinyin() + "'");
+				writer.newLine();
+			}
+			if (ObjectUtils.isNotNull(inttraSoDto.getOrderNo())) {
+				writer.write("RFF+ON:" + inttraSoDto.getOrderNo() + "'");
+				writer.newLine();
+			}
+			if (ObjectUtils.isNotNull(inttraSoDto.getJobId())) {
+				writer.write("RFF+FF:" + inttraSoDto.getJobId() + "'");
+				writer.newLine();
+			}
+			/* =================0320=================  */
+			writer.write("CPI+4++" + inttraSoDto.getPaymentType() + "'");
+			writer.newLine();
+			/* =================0480=================  */
+			if (inttraSoDto.getVoyageNo().indexOf("V.") > 0) {
+				throw new RuntimeException("航次中不能存在‘V.’");
 			} else {
-				text += "+++:::" + inttraSoDto.getVesselName() + "'";
+				writer.write("TDT+20+" + inttraSoDto.getVoyageNo() + "+1++");
+				if (ObjectUtils.isNotNull(inttraSoDto.getVesselCarrierCode())) {
+					writer.write(inttraSoDto.getVesselCarrierCode() + ":172+++:::" + inttraSoDto.getVesselName() + "'");
+					writer.newLine();
+				} else {
+					writer.write("+++:::" + inttraSoDto.getVesselName() + "'");
+					writer.newLine();
+				}
 			}
-		}
-		/* =================0520=================  */
-		text += "LOC+9+" + inttraSoDto.getPolCode() + "::6:" + inttraSoDto.getPolName() + "'";
-		/* =================0530=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getEtd())) {
-			text += "DTM+133:" + inttraSoDto.getEtd() + ":102'";
-		}
-		/* =================0520=================  */
-		text += "LOC+88+" + inttraSoDto.getPlaceReceiptCode() + "::6:" + inttraSoDto.getPlaceReceiptName() + "'";
-		text += "LOC+11+" + inttraSoDto.getPodCode() + "::6:" + inttraSoDto.getPodName() + "'";
-		text += "LOC+7+" + inttraSoDto.getPlaceDeliveryCode() + "::6:" + inttraSoDto.getPlaceDeliveryName() + "'";
-		/* =================0580=================  */
-		text += "NAD+CZ+++" + inttraSoDto.getHsHipperOne();
-		if (ObjectUtils.isNotNull(inttraSoDto.getHsHipperTwo())) {
-			text += ":" + inttraSoDto.getHsHipperTwo();
-			if (ObjectUtils.isNotNull(inttraSoDto.getHsHipperThree())) {
-				text += ":" + inttraSoDto.getHsHipperThree();
-				if (ObjectUtils.isNotNull(inttraSoDto.getHsHipperFour())) {
-					text += ":" + inttraSoDto.getHsHipperFour();
-					if (ObjectUtils.isNotNull(inttraSoDto.getHsHipperFive())) {
-						text += ":" + inttraSoDto.getHsHipperFive() + "'";
+			/* =================0520=================  */
+			writer.write("LOC+9+" + inttraSoDto.getPolCode() + "::6:" + inttraSoDto.getPolName() + "'");
+			writer.newLine();
+			/* =================0530=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getEtd())) {
+				writer.write("DTM+133:" + inttraSoDto.getEtd() + ":102'");
+				writer.newLine();
+			}
+			/* =================0520=================  */
+			writer.write("LOC+88+" + inttraSoDto.getPlaceReceiptCode() + "::6:" + inttraSoDto.getPlaceReceiptName() + "'");
+			writer.newLine();
+			writer.write("LOC+11+" + inttraSoDto.getPodCode() + "::6:" + inttraSoDto.getPodName() + "'");
+			writer.newLine();
+			writer.write("LOC+7+" + inttraSoDto.getPlaceDeliveryCode() + "::6:" + inttraSoDto.getPlaceDeliveryName() + "'");
+			writer.newLine();
+			/* =================0580=================  */
+			writer.write("NAD+CZ+++" + inttraSoDto.getHsHipperOne());
+			if (ObjectUtils.isNotNull(inttraSoDto.getHsHipperTwo())) {
+				writer.write(":" + inttraSoDto.getHsHipperTwo());
+				if (ObjectUtils.isNotNull(inttraSoDto.getHsHipperThree())) {
+					writer.write(":" + inttraSoDto.getHsHipperThree());
+					if (ObjectUtils.isNotNull(inttraSoDto.getHsHipperFour())) {
+						writer.write(":" + inttraSoDto.getHsHipperFour());
+						if (ObjectUtils.isNotNull(inttraSoDto.getHsHipperFive())) {
+							writer.write(":" + inttraSoDto.getHsHipperFive() + "'");
+							writer.newLine();
+						} else {
+							writer.write("'");
+							writer.newLine();
+						}
 					} else {
-						text += "'";
+						writer.write("'");
+						writer.newLine();
 					}
 				} else {
-					text += "'";
+					writer.write("'");
+					writer.newLine();
 				}
 			} else {
-				text += "'";
+				writer.write("'");
+				writer.newLine();
 			}
-		} else {
-			text += "'";
-		}
-		text += "NAD+CN+++" + inttraSoDto.getHConsigneeOne();
-		if (ObjectUtils.isNotNull(inttraSoDto.getHConsigneeTwo())) {
-			text += ":" + inttraSoDto.getHConsigneeTwo();
-			if (ObjectUtils.isNotNull(inttraSoDto.getHConsigneeThree())) {
-				text += ":" + inttraSoDto.getHConsigneeThree();
-				if (ObjectUtils.isNotNull(inttraSoDto.getHConsigneeFour())) {
-					text += ":" + inttraSoDto.getHConsigneeFour();
-					if (ObjectUtils.isNotNull(inttraSoDto.getHConsigneeFive())) {
-						text += ":" + inttraSoDto.getHConsigneeFive() + "'";
+			writer.write("NAD+CN+++" + inttraSoDto.getHConsigneeOne());
+			if (ObjectUtils.isNotNull(inttraSoDto.getHConsigneeTwo())) {
+				writer.write(":" + inttraSoDto.getHConsigneeTwo());
+				if (ObjectUtils.isNotNull(inttraSoDto.getHConsigneeThree())) {
+					writer.write(":" + inttraSoDto.getHConsigneeThree());
+					if (ObjectUtils.isNotNull(inttraSoDto.getHConsigneeFour())) {
+						writer.write(":" + inttraSoDto.getHConsigneeFour());
+						if (ObjectUtils.isNotNull(inttraSoDto.getHConsigneeFive())) {
+							writer.write(":" + inttraSoDto.getHConsigneeFive() + "'");
+							writer.newLine();
+						} else {
+							writer.write("'");
+							writer.newLine();
+						}
 					} else {
-						text += "'";
+						writer.write("'");
+						writer.newLine();
 					}
 				} else {
-					text += "'";
+					writer.write("'");
+					writer.newLine();
 				}
 			} else {
-				text += "'";
+				writer.write("'");
+				writer.newLine();
 			}
-		} else {
-			text += "'";
-		}
-		text += "NAD+NI+++" + inttraSoDto.getHNotifyOne();
-		if (ObjectUtils.isNotNull(inttraSoDto.getHNotifyTwo())) {
-			text += ":" + inttraSoDto.getHNotifyTwo();
-			if (ObjectUtils.isNotNull(inttraSoDto.getHNotifyThree())) {
-				text += ":" + inttraSoDto.getHNotifyThree();
-				if (ObjectUtils.isNotNull(inttraSoDto.getHNotifyFour())) {
-					text += ":" + inttraSoDto.getHNotifyFour();
-					if (ObjectUtils.isNotNull(inttraSoDto.getHNotifyFive())) {
-						text += ":" + inttraSoDto.getHNotifyFive() + "'";
+			writer.write("NAD+NI+++" + inttraSoDto.getHNotifyOne());
+			if (ObjectUtils.isNotNull(inttraSoDto.getHNotifyTwo())) {
+				writer.write(":" + inttraSoDto.getHNotifyTwo());
+				if (ObjectUtils.isNotNull(inttraSoDto.getHNotifyThree())) {
+					writer.write(":" + inttraSoDto.getHNotifyThree());
+					if (ObjectUtils.isNotNull(inttraSoDto.getHNotifyFour())) {
+						writer.write(":" + inttraSoDto.getHNotifyFour());
+						if (ObjectUtils.isNotNull(inttraSoDto.getHNotifyFive())) {
+							writer.write(":" + inttraSoDto.getHNotifyFive() + "'");
+							writer.newLine();
+						} else {
+							writer.write("'");
+							writer.newLine();
+						}
 					} else {
-						text += "'";
+						writer.write("'");
+						writer.newLine();
 					}
 				} else {
-					text += "'";
+					writer.write("'");
+					writer.newLine();
 				}
 			} else {
-				text += "'";
+				writer.write("'");
+				writer.newLine();
 			}
-		} else {
-			text += "'";
-		}
-		text += "NAD+CA+" + inttraSoDto.getCarrierCode() + ":160:86++" + inttraSoDto.getCarrierName() + "'";
-		if (ObjectUtils.isNotNull(inttraSoDto.getContactInformation())) {
-			text += "NAD+MR+++" + inttraSoDto.getContactInformation() + "'";
-		}
-		/* =================0620=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getContacts())) {
-			text += "CTA+NT+:" + inttraSoDto.getContacts() + "'";
-		}
-		/* =================0630=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getAttnEmail())) {
-			text += "COM+" + inttraSoDto.getAttnEmail() + ":EM'";
-		}
-		/* =================0580=================  */
-		text += "NAD+ST+++" + inttraSoDto.getInttraToDoorName() + inttraSoDto.getInttraToDoorAddrOne();
-		if (ObjectUtils.isNotNull(inttraSoDto.getInttraToDoorAddrTwo())) {
-			text += ":" + inttraSoDto.getInttraToDoorAddrTwo();
-			if (ObjectUtils.isNotNull(inttraSoDto.getInttraToDoorAddrThree())) {
-				text += ":" + inttraSoDto.getInttraToDoorAddrThree();
-				if (ObjectUtils.isNotNull(inttraSoDto.getInttraToDoorAddrFour())) {
-					text += ":" + inttraSoDto.getInttraToDoorAddrFour() + "'";
+			writer.write("NAD+CA+" + inttraSoDto.getCarrierCode() + ":160:86++" + inttraSoDto.getCarrierName() + "'");
+			writer.newLine();
+			if (ObjectUtils.isNotNull(inttraSoDto.getContactInformation())) {
+				writer.write("NAD+MR+++" + inttraSoDto.getContactInformation() + "'");
+				writer.newLine();
+			}
+			/* =================0620=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getContacts())) {
+				writer.write("CTA+NT+:" + inttraSoDto.getContacts() + "'");
+				writer.newLine();
+			}
+			/* =================0630=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getAttnEmail())) {
+				writer.write("COM+" + inttraSoDto.getAttnEmail() + ":EM'");
+				writer.newLine();
+			}
+			/* =================0580=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getInttraToDoorName())) {
+				writer.write("NAD+ST+++" + inttraSoDto.getInttraToDoorName());
+				if (ObjectUtils.isNotNull(inttraSoDto.getInttraToDoorAddrOne())) {
+					writer.write("+" + inttraSoDto.getInttraToDoorAddrOne());
+					if (ObjectUtils.isNotNull(inttraSoDto.getInttraToDoorAddrTwo())) {
+						writer.write(":" + inttraSoDto.getInttraToDoorAddrTwo());
+						if (ObjectUtils.isNotNull(inttraSoDto.getInttraToDoorAddrThree())) {
+							writer.write(":" + inttraSoDto.getInttraToDoorAddrThree());
+							if (ObjectUtils.isNotNull(inttraSoDto.getInttraToDoorAddrFour())) {
+								writer.write(":" + inttraSoDto.getInttraToDoorAddrFour() + "'");
+								writer.newLine();
+							} else {
+								writer.write("'");
+								writer.newLine();
+							}
+						} else {
+							writer.write("'");
+							writer.newLine();
+						}
+					} else {
+						writer.write("'");
+						writer.newLine();
+					}
+				}
+			}
+			/* =================0620=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getInttraToDoorContacts())) {
+				writer.write("CTA+IC+:" + inttraSoDto.getInttraToDoorContacts() + "'");
+				writer.newLine();
+			}
+			/* =================0630=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getInttraToDoorTel())) {
+				writer.write("COM+" + inttraSoDto.getInttraToDoorTel() + ":EM'");
+				writer.newLine();
+			}
+			/* =================0580=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getInttraDoorToName())) {
+				writer.write("NAD+SF+++" + inttraSoDto.getInttraDoorToName());
+				if (ObjectUtils.isNotNull(inttraSoDto.getInttraDoorToAddrOne())) {
+					writer.write("+" + inttraSoDto.getInttraDoorToAddrOne());
+					if (ObjectUtils.isNotNull(inttraSoDto.getInttraDoorToAddrTwo())) {
+						writer.write(":" + inttraSoDto.getInttraDoorToAddrTwo());
+						if (ObjectUtils.isNotNull(inttraSoDto.getInttraDoorToAddrThree())) {
+							writer.write(":" + inttraSoDto.getInttraDoorToAddrThree());
+							if (ObjectUtils.isNotNull(inttraSoDto.getInttraDoorToAddrFour())) {
+								writer.write(":" + inttraSoDto.getInttraDoorToAddrFour() + "'");
+								writer.newLine();
+							} else {
+								writer.write("'");
+								writer.newLine();
+							}
+						} else {
+							writer.write("'");
+							writer.newLine();
+						}
+					} else {
+						writer.write("'");
+						writer.newLine();
+					}
 				} else {
-					text += "'";
+					writer.write("'");
+					writer.newLine();
 				}
-			} else {
-				text += "'";
 			}
-		} else {
-			text += "'";
-		}
-		/* =================0620=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getInttraToDoorContacts())) {
-			text += "CTA+IC+:" + inttraSoDto.getInttraToDoorContacts() + "'";
-		}
-		/* =================0630=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getInttraToDoorTel())) {
-			text += "COM+" + inttraSoDto.getInttraToDoorTel() + ":EM'";
-		}
-		/* =================0580=================  */
-		text += "NAD+SF+++" + inttraSoDto.getInttraDoorToName() + inttraSoDto.getInttraDoorToAddrOne();
-		if (ObjectUtils.isNotNull(inttraSoDto.getInttraDoorToAddrTwo())) {
-			text += ":" + inttraSoDto.getInttraDoorToAddrTwo();
-			if (ObjectUtils.isNotNull(inttraSoDto.getInttraDoorToAddrThree())) {
-				text += ":" + inttraSoDto.getInttraDoorToAddrThree();
-				if (ObjectUtils.isNotNull(inttraSoDto.getInttraDoorToAddrFour())) {
-					text += ":" + inttraSoDto.getInttraDoorToAddrFour() + "'";
+			/* =================0620=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getInttraDoorToContacts())) {
+				writer.write("CTA+IC+:" + inttraSoDto.getInttraDoorToContacts() + "'");
+				writer.newLine();
+			}
+			/* =================0630=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getInttraDoorToTel())) {
+				writer.write("COM+" + inttraSoDto.getInttraDoorToTel() + ":EM'");
+				writer.newLine();
+			}
+			/* =================0580=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getFreightForwarderCode())) {
+				writer.write("NAD+FW+" + inttraSoDto.getFreightForwarderCode() + ":160");
+				if (ObjectUtils.isNotNull(inttraSoDto.getFreightForwarderName())) {
+					writer.write(":86++" + inttraSoDto.getFreightForwarderName() + "'");
+					writer.newLine();
 				} else {
-					text += "'";
+					writer.write("'");
+					writer.newLine();
 				}
-			} else {
-				text += "'";
 			}
-		} else {
-			text += "'";
-		}
-		/* =================0620=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getInttraDoorToContacts())) {
-			text += "CTA+IC+:" + inttraSoDto.getInttraDoorToContacts() + "'";
-		}
-		/* =================0630=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getInttraDoorToTel())) {
-			text += "COM+" + inttraSoDto.getInttraDoorToTel() + ":EM'";
-		}
-		/* =================0580=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getFreightForwarderCode())) {
-			text += "NAD+FW+" + inttraSoDto.getFreightForwarderCode() + ":160";
-			if (ObjectUtils.isNotNull(inttraSoDto.getFreightForwarderName())) {
-				text += ":86++" + inttraSoDto.getFreightForwarderName() + "'";
-			} else {
-				text += "'";
+			writer.write("NAD+HI+" + inttraSoDto.getSenderCode() + ":160:86++" + inttraSoDto.getSenderName() + "'");
+			writer.newLine();
+			/* =================0620=================  */
+			writer.write("CTA+IC+:" + inttraSoDto.getSenderContacts() + "'");
+			writer.newLine();
+			/* =================0630=================  */
+			writer.write("COM+" + inttraSoDto.getSenderTel() + ":TE'");
+			writer.newLine();
+			writer.write("COM+" + inttraSoDto.getSenderEmail() + ":EM'");
+			writer.newLine();
+			/* =================0650=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getBillLadingType())) {
+				writer.write("DOC+" + inttraSoDto.getBillLadingType());
+				if (ObjectUtils.isNotNull(inttraSoDto.getPaymentStatus())) {
+					writer.write("+:" + inttraSoDto.getPaymentStatus() + "+:" + inttraSoDto.getBillLadingNumber() + "'");
+					writer.newLine();
+				} else {
+					writer.write("+:" + inttraSoDto.getBillLadingNumber() + "'");
+					writer.newLine();
+				}
 			}
-		}
-		text += "NAD+HI+" + inttraSoDto.getSenderCode() + ":160:86++" + inttraSoDto.getSenderName() + "'";
-		/* =================0620=================  */
-		text += "CTA+IC+:" + inttraSoDto.getSenderContacts() + "'";
-		/* =================0630=================  */
-		text += "COM+" + inttraSoDto.getSenderTel() + ":TE'";
-		text += "COM+" + inttraSoDto.getSenderEmail() + ":EM'";
-		/* =================0650=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getBillLadingType())) {
-			text += "DOC+" + inttraSoDto.getBillLadingType();
-			if (ObjectUtils.isNotNull(inttraSoDto.getPaymentStatus())) {
-				text += "+:" + inttraSoDto.getPaymentStatus() + "+:" + inttraSoDto.getBillLadingNumber() + "'";
-			} else {
-				text += "+:" + inttraSoDto.getBillLadingNumber() + "'";
+			/* =================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();
+				}
 			}
-		}
-		/* =================0910=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getPackagesNumbers())) {
-			text += "GID+1+" + inttraSoDto.getPackagesNumbers() + ":" + inttraSoDto.getPackagesCode() + "::6";
-			if (ObjectUtils.isNotNull(inttraSoDto.getPackagesDescribe())) {
-				text += ":" + inttraSoDto.getPackagesDescribe() + "'";
-			} else {
-				text += "'";
+			/* =================0980=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getHsCode())) {
+				writer.write("PIA+5+" + inttraSoDto.getHsCode() + ":HS'");
+				writer.newLine();
 			}
-		}
-		/* =================0980=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getHsCode())) {
-			text += "PIA+5+" + inttraSoDto.getHsCode() + ":HS'";
-		}
-		/* =================0990=================  */
-		text += "FTX+AAA+++" + inttraSoDto.getProductName() + "'";
-		/* =================1070=================  */
-		text += "MEA+AAE+WT+KGM:" + inttraSoDto.getGrossWeight() + "'";
-		text += "MEA+AAE+AAW+MTQ:" + inttraSoDto.getMeasurement() + "'";
-		/* =================1160=================  */
-		text += "PCI++" + inttraSoDto.getMarks() + "'";
-		/* =================1520=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getDgImdgCode())) {
-			text += "DGS+IMD+" + inttraSoDto.getDgImdgCode();
-			if (ObjectUtils.isNotNull(inttraSoDto.getPageNumber())) {
-				text += ":" + inttraSoDto.getPageNumber();
-				if (ObjectUtils.isNotNull(inttraSoDto.getDgUnCode())) {
-					text += "+" + inttraSoDto.getDgUnCode();
-					if (ObjectUtils.isNotNull(inttraSoDto.getDgFlashPoint())) {
-						text += "+" + inttraSoDto.getDgFlashPoint();
-						if (ObjectUtils.isNotNull(inttraSoDto.getDgFlashPointUnit())) {
-							text += ":" + inttraSoDto.getDgFlashPointUnit();
-							if (ObjectUtils.isNotNull(inttraSoDto.getPackingGroup())) {
-								text += "+" + inttraSoDto.getPackingGroup();
-								if (ObjectUtils.isNotNull(inttraSoDto.getEmergencyMeasureNo())) {
-									text += "+" + inttraSoDto.getEmergencyMeasureNo() + "'";
+			/* =================0990=================  */
+			writer.write("FTX+AAA+++" + inttraSoDto.getProductName() + "'");
+			writer.newLine();
+			/* =================1070=================  */
+			writer.write("MEA+AAE+WT+KGM:" + inttraSoDto.getGrossWeight() + "'");
+			writer.newLine();
+			writer.write("MEA+AAE+AAW+MTQ:" + inttraSoDto.getMeasurement() + "'");
+			writer.newLine();
+			/* =================1160=================  */
+			writer.write("PCI++" + inttraSoDto.getMarks() + "'");
+			writer.newLine();
+			/* =================1520=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getDgImdgCode())) {
+				writer.write("DGS+IMD+" + inttraSoDto.getDgImdgCode());
+				if (ObjectUtils.isNotNull(inttraSoDto.getPageNumber())) {
+					writer.write(":" + inttraSoDto.getPageNumber());
+					if (ObjectUtils.isNotNull(inttraSoDto.getDgUnCode())) {
+						writer.write("+" + inttraSoDto.getDgUnCode());
+						if (ObjectUtils.isNotNull(inttraSoDto.getDgFlashPoint())) {
+							writer.write("+" + inttraSoDto.getDgFlashPoint());
+							if (ObjectUtils.isNotNull(inttraSoDto.getDgFlashPointUnit())) {
+								writer.write(":" + inttraSoDto.getDgFlashPointUnit());
+								if (ObjectUtils.isNotNull(inttraSoDto.getPackingGroup())) {
+									writer.write("+" + inttraSoDto.getPackingGroup());
+									if (ObjectUtils.isNotNull(inttraSoDto.getEmergencyMeasureNo())) {
+										writer.write("+" + inttraSoDto.getEmergencyMeasureNo() + "'");
+										writer.newLine();
+									} else {
+										writer.write("'");
+										writer.newLine();
+									}
 								} else {
-									text += "'";
+									writer.write("'");
+									writer.newLine();
 								}
 							} else {
-								text += "'";
+								writer.write("'");
+								writer.newLine();
 							}
 						} else {
-							text += "'";
+							writer.write("'");
+							writer.newLine();
 						}
 					} else {
-						text += "'";
+						writer.write("'");
+						writer.newLine();
 					}
 				} else {
-					text += "'";
+					writer.write("'");
+					writer.newLine();
 				}
-			} else {
-				text += "'";
 			}
-		}
-		/* =================1530=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getDgRemarks())) {
-			text += "FTX+AAC+++" + inttraSoDto.getDgRemarks() + "'";
-		}
-		/* =================1530=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getDgContacts())) {
-			text += "CTA+HG+:" + inttraSoDto.getDgContacts() + "'";
-		}
-		/* =================1560=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getDgTel())) {
-			text += "COM+" + inttraSoDto.getDgTel() + "'";
-		}
-		/* =================1660=================  */
-		text += "EQD+CN++" + inttraSoDto.getBoxCode();
-		if (ObjectUtils.isNotNull(inttraSoDto.getShipperBoxIdentification())) {
-			text += "+" + inttraSoDto.getShipperBoxIdentification() + "'";
-		} else {
-			text += "'";
-		}
-		/* =================1670=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getBoxNumber())) {
-			text += "EQN+" + inttraSoDto.getBoxNumber() + "'";
-		}
-		/* =================1690=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getVentilation())) {
-			text += "MEA+AAE+AAS+CBM:" + inttraSoDto.getVentilation() + "'";
-		}
-		/* =================1740=================  */
-		if (ObjectUtils.isNotNull(inttraSoDto.getTemperature())) {
-			text += "TMP+2+" + inttraSoDto.getTemperature();
-			if (ObjectUtils.isNotNull(inttraSoDto.getTemperatureUnit())) {
-				text += ":" + inttraSoDto.getTemperatureUnit() + "'";
+			/* =================1530=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getDgRemarks())) {
+				writer.write("FTX+AAC+++" + inttraSoDto.getDgRemarks() + "'");
+				writer.newLine();
+			}
+			/* =================1530=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getDgContacts())) {
+				writer.write("CTA+HG+:" + inttraSoDto.getDgContacts() + "'");
+				writer.newLine();
+			}
+			/* =================1560=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getDgTel())) {
+				writer.write("COM+" + inttraSoDto.getDgTel() + "'");
+				writer.newLine();
+			}
+			/* =================1660=================  */
+			writer.write("EQD+CN++" + inttraSoDto.getBoxCode());
+			if (ObjectUtils.isNotNull(inttraSoDto.getShipperBoxIdentification())) {
+				writer.write("+" + inttraSoDto.getShipperBoxIdentification() + "'");
+				writer.newLine();
 			} else {
-				text += "'";
+				writer.write("'");
+				writer.newLine();
+			}
+			/* =================1670=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getBoxNumber())) {
+				writer.write("EQN+" + inttraSoDto.getBoxNumber() + "'");
+				writer.newLine();
+			}
+			/* =================1690=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getVentilation())) {
+				writer.write("MEA+AAE+AAS+CBM:" + inttraSoDto.getVentilation() + "'");
+				writer.newLine();
+			}
+			/* =================1740=================  */
+			if (ObjectUtils.isNotNull(inttraSoDto.getTemperature())) {
+				writer.write("TMP+2+" + inttraSoDto.getTemperature());
+				if (ObjectUtils.isNotNull(inttraSoDto.getTemperatureUnit())) {
+					writer.write(":" + inttraSoDto.getTemperatureUnit() + "'");
+					writer.newLine();
+				} else {
+					writer.write("'");
+					writer.newLine();
+				}
+			}
+			/* =================2000=================  */
+			writer.write("UNT+" + inttraSoDto.getRecordRows() + "+" + inttraSoDto.getInformationNoEnd() + "'");
+			writer.newLine();
+			/* =================2010=================  */
+			writer.write("UNZ+1+" + inttraSoDto.getFileExchangeNumberEnd() + "'");
+			writer.newLine();
+			// 关闭文件输出流
+			writer.close();
+			//文件地址
+			String url = file.getAbsolutePath();
+			//替换地址
+			url = url.replace("/home/minio", "http://121.37.83.47");
+
+			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文件失败");
 		}
-		/* =================2000=================  */
-		text += "UNT+" + inttraSoDto.getRecordRows() + "+" + inttraSoDto.getInformationNoEnd() + "'";
-		/* =================2010=================  */
-		text += "UNZ+1+" + inttraSoDto.getFileExchangeNumberEnd() + "'";
-		FilesCenter filesCenter = sending(text);
-		return filesCenter;
 	}
 
 
 	public static FilesCenter sending(String content) {
 		try {
 			//生成edi文件
-			File file = new File("/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload", "edi.txt");
-//			File file = new File("D:/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload", "edi.text");
+//			File file = new File("/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload", "edi.txt");
+			File file = new File("D:/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload", "edi.text");
 			file.createNewFile();
 			// 打开文件输出流进行写入操作
 			BufferedWriter writer = new BufferedWriter(new FileWriter(file));

+ 62 - 18
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FinAccBillsServiceImpl.java

@@ -37,12 +37,17 @@ import org.springblade.los.finance.fee.mapper.FinAccBillsMapper;
 import org.springblade.los.finance.fee.service.IFeeCenterService;
 import org.springblade.los.finance.fee.service.IFinAccBillsService;
 import org.springblade.los.finance.fee.vo.FinAccBillsVO;
+import org.springblade.los.finance.invoices.entity.FinInvoices;
 import org.springblade.los.finance.invoices.entity.FinInvoicesItems;
 import org.springblade.los.finance.invoices.mapper.FinInvoicesItemsMapper;
+import org.springblade.los.finance.invoices.mapper.FinInvoicesMapper;
+import org.springblade.los.finance.stl.entity.FinStlBills;
 import org.springblade.los.finance.stl.entity.FinStlBillsItems;
 import org.springblade.los.finance.stl.mapper.FinStlBillsItemsMapper;
+import org.springblade.los.finance.stl.mapper.FinStlBillsMapper;
 import org.springblade.los.finance.vouchers.entity.FinVouchersItems;
 import org.springblade.los.finance.vouchers.mapper.FinVouchersItemsMapper;
+import org.springblade.los.finance.vouchers.mapper.FinVouchersMapper;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -76,10 +81,13 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 	private final IBusinessTypeService bBusinessTypeService;
 
 	private final FinInvoicesItemsMapper finInvoicesItemsMapper;
+	private final FinInvoicesMapper finInvoicesMapper;
 
 	private final FinStlBillsItemsMapper finStlBillsItemsMapper;
+	private final FinStlBillsMapper finStlBillsMapper;
 
 	private final FinVouchersItemsMapper finVouchersItemsMapper;
+	private final FinVouchersMapper finVouchersMapper;
 
 	@Override
 	public IPage<FinAccBillsVO> selectFinAccBillsPage(IPage<FinAccBillsVO> page, FinAccBillsVO finAccBills) {
@@ -311,47 +319,83 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 		List<Long> finAccBillsIds = finAccBills.getFeeCenterList().stream().map(FeeCenter::getAccBillId).distinct().collect(Collectors.toList());
 		String finAccBillsBillNo = finAccBills.getFeeCenterList().stream().map(FeeCenter::getBillNo).distinct().collect(Collectors.joining(","));
 		if (finAccBillsIds.size() > 0) {
-			if (finInvoicesItemsMapper.selectCount(new LambdaQueryWrapper<FinInvoicesItems>()
+			List<FinInvoicesItems> finInvoicesItems = finInvoicesItemsMapper.selectList(new LambdaQueryWrapper<FinInvoicesItems>()
 				.eq(FinInvoicesItems::getTenantId, AuthUtil.getTenantId())
 				.eq(FinInvoicesItems::getIsDeleted, 0)
-				.in(FinInvoicesItems::getAccBillId, finAccBillsIds)) > 0) {
-				throw new RuntimeException("账单已生成发票单,撤销失败");
+				.in(FinInvoicesItems::getAccBillId, finAccBillsIds));
+			if (finInvoicesItems.size() > 0) {
+				List<Long> finInvoicesIds = finInvoicesItems.stream().map(FinInvoicesItems::getPid).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+				String finInvoices = finInvoicesMapper.selectList(new LambdaQueryWrapper<FinInvoices>()
+					.eq(FinInvoices::getTenantId, AuthUtil.getTenantId())
+					.eq(FinInvoices::getIsDeleted, 0)
+					.in(FinInvoices::getId, finInvoicesIds)).stream().map(FinInvoices::getBillNo).collect(Collectors.joining(","));
+				throw new RuntimeException("账单已生成发票单,撤销失败! 发票单号为:" + finInvoices);
 			}
-			if (finStlBillsItemsMapper.selectCount(new LambdaQueryWrapper<FinStlBillsItems>()
+			List<FinStlBillsItems> finStlBillsItemsCHK = finStlBillsItemsMapper.selectList(new LambdaQueryWrapper<FinStlBillsItems>()
 				.eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
 				.eq(FinStlBillsItems::getIsDeleted, 0)
 				.eq(FinStlBillsItems::getItemType, "CHK")
-				.in(FinStlBillsItems::getAccBillId, finAccBillsIds)) > 0) {
-				throw new RuntimeException("账单已对账,撤销失败");
+				.in(FinStlBillsItems::getAccBillId, finAccBillsIds));
+			if (finStlBillsItemsCHK.size() > 0) {
+				List<Long> finStlBillsIds = finStlBillsItemsCHK.stream().map(FinStlBillsItems::getPid).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+				String finStlBills = finStlBillsMapper.selectList(new LambdaQueryWrapper<FinStlBills>()
+					.eq(FinStlBills::getTenantId, AuthUtil.getTenantId())
+					.eq(FinStlBills::getIsDeleted, 0)
+					.in(FinStlBills::getId, finStlBillsIds)).stream().map(FinStlBills::getBillNo).collect(Collectors.joining(","));
+				throw new RuntimeException("账单已生成对账单,撤销失败! 对账单号为:" + finStlBills);
 			}
-			if (finStlBillsItemsMapper.selectCount(new LambdaQueryWrapper<FinStlBillsItems>()
+			List<FinStlBillsItems> finStlBillsItemsSTLD = finStlBillsItemsMapper.selectList(new LambdaQueryWrapper<FinStlBillsItems>()
 				.eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
 				.eq(FinStlBillsItems::getIsDeleted, 0)
 				.eq(FinStlBillsItems::getItemType, "STL")
 				.eq(FinStlBillsItems::getDc, "D")
-				.in(FinStlBillsItems::getAccBillId, finAccBillsIds)) > 0) {
-				throw new RuntimeException("账单已生成收款单,撤销失败");
+				.in(FinStlBillsItems::getAccBillId, finAccBillsIds));
+			if (finStlBillsItemsSTLD.size() > 0) {
+				List<Long> finStlBillsIds = finStlBillsItemsSTLD.stream().map(FinStlBillsItems::getPid).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+				String finStlBills = finStlBillsMapper.selectList(new LambdaQueryWrapper<FinStlBills>()
+					.eq(FinStlBills::getTenantId, AuthUtil.getTenantId())
+					.eq(FinStlBills::getIsDeleted, 0)
+					.in(FinStlBills::getId, finStlBillsIds)).stream().map(FinStlBills::getBillNo).collect(Collectors.joining(","));
+				throw new RuntimeException("账单已生成收款单,撤销失败! 收款单号为:" + finStlBills);
 			}
-			if (finStlBillsItemsMapper.selectCount(new LambdaQueryWrapper<FinStlBillsItems>()
+			List<FinStlBillsItems> finStlBillsItemsSTLC = finStlBillsItemsMapper.selectList(new LambdaQueryWrapper<FinStlBillsItems>()
 				.eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
 				.eq(FinStlBillsItems::getIsDeleted, 0)
 				.eq(FinStlBillsItems::getItemType, "STL")
 				.eq(FinStlBillsItems::getDc, "C")
-				.in(FinStlBillsItems::getAccBillId, finAccBillsIds)) > 0) {
-				throw new RuntimeException("账单已生成付款单,撤销失败");
+				.in(FinStlBillsItems::getAccBillId, finAccBillsIds));
+			if (finStlBillsItemsSTLC.size() > 0) {
+				List<Long> finStlBillsIds = finStlBillsItemsSTLC.stream().map(FinStlBillsItems::getPid).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+				String finStlBills = finStlBillsMapper.selectList(new LambdaQueryWrapper<FinStlBills>()
+					.eq(FinStlBills::getTenantId, AuthUtil.getTenantId())
+					.eq(FinStlBills::getIsDeleted, 0)
+					.in(FinStlBills::getId, finStlBillsIds)).stream().map(FinStlBills::getBillNo).collect(Collectors.joining(","));
+				throw new RuntimeException("账单已生成付款单,撤销失败! 付款单号为:" + finStlBills);
 			}
-			if (finStlBillsItemsMapper.selectCount(new LambdaQueryWrapper<FinStlBillsItems>()
+			List<FinStlBillsItems> finStlBillsItemsFFSQ = finStlBillsItemsMapper.selectList(new LambdaQueryWrapper<FinStlBillsItems>()
 				.eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
 				.eq(FinStlBillsItems::getIsDeleted, 0)
 				.eq(FinStlBillsItems::getItemType, "FFSQ")
-				.in(FinStlBillsItems::getAccBillId, finAccBillsIds)) > 0) {
-				throw new RuntimeException("账单已付费申请,撤销失败");
+				.in(FinStlBillsItems::getAccBillId, finAccBillsIds));
+			if (finStlBillsItemsFFSQ.size() > 0) {
+				List<Long> finStlBillsIds = finStlBillsItemsFFSQ.stream().map(FinStlBillsItems::getPid).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+				String finStlBills = finStlBillsMapper.selectList(new LambdaQueryWrapper<FinStlBills>()
+					.eq(FinStlBills::getTenantId, AuthUtil.getTenantId())
+					.eq(FinStlBills::getIsDeleted, 0)
+					.in(FinStlBills::getId, finStlBillsIds)).stream().map(FinStlBills::getBillNo).collect(Collectors.joining(","));
+				throw new RuntimeException("账单已付费申请,撤销失败! 付费申请单号为:" + finStlBills);
 			}
-			if (finVouchersItemsMapper.selectCount(new LambdaQueryWrapper<FinVouchersItems>()
+			List<FinVouchersItems> finVouchersItems = finVouchersItemsMapper.selectList(new LambdaQueryWrapper<FinVouchersItems>()
 				.eq(FinVouchersItems::getTenantId, AuthUtil.getTenantId())
 				.eq(FinVouchersItems::getIsDeleted, 0)
-				.apply("find_in_set(bill_no,'" + finAccBillsBillNo + "')")) > 0) {
-				throw new RuntimeException("账单已生成凭证,撤销失败");
+				.apply("find_in_set(bill_no,'" + finAccBillsBillNo + "')"));
+			if (finVouchersItems.size() > 0) {
+				List<Long> finStlBillsIds = finVouchersItems.stream().map(FinVouchersItems::getPid).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+				String finVouchers = finStlBillsMapper.selectList(new LambdaQueryWrapper<FinStlBills>()
+					.eq(FinStlBills::getTenantId, AuthUtil.getTenantId())
+					.eq(FinStlBills::getIsDeleted, 0)
+					.in(FinStlBills::getId, finStlBillsIds)).stream().map(FinStlBills::getBillNo).collect(Collectors.joining(","));
+				throw new RuntimeException("账单已生成凭证,撤销失败! 凭证单号为:" + finVouchers);
 			}
 		} else {
 			throw new RuntimeException("未找到账单信息");

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/brand/controller/BrandDescController.java

@@ -78,7 +78,7 @@ public class BrandDescController extends BladeController {
 	}
 
 	/**
-	 * 分页
+	 * 分页  配件批发品牌
 	 */
 	@GetMapping("/list")
 	@ApiOperationSupport(order = 2)