纪新园 5 months ago
parent
commit
6b02340cd2
13 changed files with 449 additions and 392 deletions
  1. 1 1
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/entity/ArchivesTrajectory.java
  2. 5 2
      blade-service/blade-los/src/main/java/org/springblade/los/Util/BoxNumUtils.java
  3. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/Util/MagicValues.java
  4. 283 360
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java
  5. 2 2
      blade-service/blade-los/src/main/java/org/springblade/los/box/controller/TradingBoxItemController.java
  6. 74 0
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/PutBoxServiceImpl.java
  7. 4 4
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/TradingBoxItemServiceImpl.java
  8. 2 1
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/TradingBoxServiceImpl.java
  9. 43 1
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
  10. 16 6
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/ContainersServiceImpl.java
  11. 2 1
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/PreContainersServiceImpl.java
  12. 4 3
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/TemplateImportServiceImpl.java
  13. 11 11
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java

+ 1 - 1
blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/entity/ArchivesTrajectory.java

@@ -255,7 +255,7 @@ public class ArchivesTrajectory implements Serializable {
 	 * pod场站
 	 */
 	@ApiModelProperty(value = "pod场站")
-	private Integer podStationId;
+	private Long podStationId;
 	/**
 	 * pod场站编码
 	 */

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

@@ -21,7 +21,10 @@ public class BoxNumUtils {
 		if (StringUtils.isEmpty(cntrNo)) {
 			return null;
 		}
-		int length = cntrNo.length();
+		if(!cntrNo.matches("^[\\p{L}\\p{N}]*$")){
+			throw new RuntimeException("箱号存在特殊字符");
+		}
+		/*int length = cntrNo.length();
 		if (length != 11) {
 			throw new RuntimeException("总长度非11位长!");
 		}
@@ -56,7 +59,7 @@ public class BoxNumUtils {
 
 		if (!(Integer.parseInt(String.valueOf(codeChars[10])) == num)) {
 			throw new RuntimeException("第11位校验码未通过验证");
-		}
+		}*/
 		return null;
 	}
 

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

@@ -21,6 +21,8 @@ public class MagicValues {
 	public static final String DOCUMENT = "单证";
 	public static final String COST = "费用";
 	public static final String PAID_APPLICATION = "付费申请";
+
+	public static final String PAID_APPLICATION_V1 = "付费申请*";
 	public static final String RECONCILIATION_CENTER = "对账中心";
 	public static final String INVOICE_APPLICATION = "发票申请";
 	public static final String COST_APPLY_MODIFY = "费用-申请修改";

+ 283 - 360
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java

@@ -50,6 +50,7 @@ import org.springblade.los.business.sea.service.*;
 import org.springblade.los.business.sea.vo.GenerateMailVo;
 import org.springblade.los.email.entity.EmailAddress;
 import org.springblade.los.email.service.IEmailAddressService;
+import org.springblade.los.enums.AmendType;
 import org.springblade.los.finance.agreement.entity.AgreementPrice;
 import org.springblade.los.finance.agreement.entity.AgreementPriceItems;
 import org.springblade.los.finance.agreement.service.IAgreementPriceItemsService;
@@ -225,7 +226,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 			} else if (MagicValues.AMEND.equals(type)) {
 				return this.getReportDataAmend(billId, reportCode, groupCode, corpIds, itemIds, type, curCode);
 			} else {
-				if (MagicValues.PAID_APPLICATION.equals(reportCode) && MagicValues.PAID_APPLICATION.equals(groupCode)) {
+				if (MagicValues.PAID_APPLICATION.equals(reportCode) &&
+					(MagicValues.PAID_APPLICATION.equals(groupCode) || MagicValues.PAID_APPLICATION_V1.equals(groupCode))) {
 					FinStlBills finStlBills = finStlBillsService.getById(billId);
 					if (finStlBills != null) {
 						String exrateType = currencyUtils.standardCurrency(finStlBills.getBranchId());
@@ -282,111 +284,228 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 						List<FinStlBillsItems> finStlBillsItems = finStlBillsItemsService.list(lambdaQueryWrapper);
 						if (!finStlBillsItems.isEmpty()) {
 							finStlBills.setSalesman(finStlBillsItems.get(0).getSrcCnName());
-							List<FinStlBillsItems> reducelList = finStlBillsItems.stream().filter(distinctByKey(FinStlBillsItems::getMblno)).collect(Collectors.toList());
-							List<Bills> billsList = new ArrayList<>();
-							List<FeeCenter> feeCenterListAll = new ArrayList<>();
-							if (!reducelList.isEmpty()) {
-								String mblno = reducelList.stream().map(FinStlBillsItems::getMblno).collect(Collectors.joining(","));
-								billsList = billsService.list(new LambdaQueryWrapper<Bills>()
-									.eq(Bills::getTenantId, AuthUtil.getTenantId())
-									.eq(Bills::getIsDeleted, 0)
-									.apply("find_in_set(mblno,'" + mblno + "')"));
+							if (MagicValues.PAID_APPLICATION_V1.equals(groupCode)) {
+								List<FinStlBillsItems> reducelList = finStlBillsItems.stream()
+									.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
+										Comparator.comparing(f -> f.getMblno() + f.getHblno()))), ArrayList::new));
+								List<Bills> billsList = new ArrayList<>();
+								List<FeeCenter> feeCenterListAll = new ArrayList<>();
+								if (!reducelList.isEmpty()) {
+									String mblno = reducelList.stream().map(FinStlBillsItems::getMblno).collect(Collectors.joining(","));
+									billsList = billsService.list(new LambdaQueryWrapper<Bills>()
+										.eq(Bills::getTenantId, AuthUtil.getTenantId())
+										.eq(Bills::getIsDeleted, 0)
+										.apply("find_in_set(mblno,'" + mblno + "')"));
 
-								if (!billsList.isEmpty()) {
-									List<Long> billCorpId = billsList.stream().map(Bills::getCorpId).distinct().collect(Collectors.toList());
-									List<AgreementPriceItems> agreementPriceItemsList = new ArrayList<>();
-									List<AgreementPrice> agreementPriceList = agreementPriceService.list(new LambdaQueryWrapper<AgreementPrice>()
-										.eq(AgreementPrice::getTenantId, AuthUtil.getTenantId())
-										.eq(AgreementPrice::getIsDeleted, 0)
-										.eq(AgreementPrice::getStatus, 0)
-										.in(AgreementPrice::getCorpId, billCorpId));
-									if (!agreementPriceList.isEmpty()) {
-										List<Long> ids = agreementPriceList.stream().map(AgreementPrice::getId).collect(Collectors.toList());
-										agreementPriceItemsList = agreementPriceItemsService.list(new LambdaQueryWrapper<AgreementPriceItems>()
-											.eq(AgreementPriceItems::getTenantId, AuthUtil.getTenantId())
-											.eq(AgreementPriceItems::getIsDeleted, 0)
-											.eq(AgreementPriceItems::getStatus, 0)
-											.in(AgreementPriceItems::getPid, ids));
-									}
-									StringBuilder billCorpName = new StringBuilder();
-									StringBuilder billCorpNameAgreement = new StringBuilder();
-									List<Long> billsIds = billsList.stream().map(Bills::getCorpId).distinct().collect(Collectors.toList());
-									List<Bills> billsList1 = billsList.stream().filter(e -> billsIds.contains(e.getCorpId())).collect(Collectors.toList());
-									for (Bills item : billsList1) {
-										billCorpName.append(item.getCorpCnName()).append("/");
-										AgreementPrice agreementPrice = agreementPriceList.stream().filter(e -> e.getCorpId().equals(item.getCorpId())).findFirst().orElse(null);
-										if (agreementPrice != null) {
-											AgreementPriceItems agreementPriceItems = agreementPriceItemsList.stream().filter(e -> e.getPid().equals(agreementPrice.getId())).findFirst().orElse(null);
-											if (agreementPriceItems != null) {
-												billCorpNameAgreement.append(agreementPriceItems.getSettlementPeriodName()).append("/");
+									if (!billsList.isEmpty()) {
+										List<Long> billCorpId = billsList.stream().map(Bills::getCorpId).distinct().collect(Collectors.toList());
+										List<AgreementPriceItems> agreementPriceItemsList = new ArrayList<>();
+										List<AgreementPrice> agreementPriceList = agreementPriceService.list(new LambdaQueryWrapper<AgreementPrice>()
+											.eq(AgreementPrice::getTenantId, AuthUtil.getTenantId())
+											.eq(AgreementPrice::getIsDeleted, 0)
+											.eq(AgreementPrice::getStatus, 0)
+											.in(AgreementPrice::getCorpId, billCorpId));
+										if (!agreementPriceList.isEmpty()) {
+											List<Long> ids = agreementPriceList.stream().map(AgreementPrice::getId).collect(Collectors.toList());
+											agreementPriceItemsList = agreementPriceItemsService.list(new LambdaQueryWrapper<AgreementPriceItems>()
+												.eq(AgreementPriceItems::getTenantId, AuthUtil.getTenantId())
+												.eq(AgreementPriceItems::getIsDeleted, 0)
+												.eq(AgreementPriceItems::getStatus, 0)
+												.in(AgreementPriceItems::getPid, ids));
+										}
+										StringBuilder billCorpName = new StringBuilder();
+										StringBuilder billCorpNameAgreement = new StringBuilder();
+										List<Long> billsIds = billsList.stream().map(Bills::getCorpId).distinct().collect(Collectors.toList());
+										List<Bills> billsList1 = billsList.stream().filter(e -> billsIds.contains(e.getCorpId())).collect(Collectors.toList());
+										for (Bills item : billsList1) {
+											billCorpName.append(item.getCorpCnName()).append("/");
+											AgreementPrice agreementPrice = agreementPriceList.stream().filter(e -> e.getCorpId().equals(item.getCorpId())).findFirst().orElse(null);
+											if (agreementPrice != null) {
+												AgreementPriceItems agreementPriceItems = agreementPriceItemsList.stream().filter(e -> e.getPid().equals(agreementPrice.getId())).findFirst().orElse(null);
+												if (agreementPriceItems != null) {
+													billCorpNameAgreement.append(agreementPriceItems.getSettlementPeriodName()).append("/");
+												} else {
+													billCorpNameAgreement.append("无").append("/");
+												}
 											} else {
 												billCorpNameAgreement.append("无").append("/");
 											}
-										} else {
-											billCorpNameAgreement.append("无").append("/");
 										}
+										finStlBills.setBillCorpName(billCorpName.toString());
+										finStlBills.setBillCorpNameAgreement(billCorpNameAgreement.toString());
 									}
-									finStlBills.setBillCorpName(billCorpName.toString());
-									finStlBills.setBillCorpNameAgreement(billCorpNameAgreement.toString());
-								}
-								feeCenterListAll = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
-									.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
-									.eq(FeeCenter::getIsDeleted, 0)
-									.eq(FeeCenter::getDc, "D")
-									.apply("find_in_set(mblno,'" + mblno + "')"));
-							}
-							for (FinStlBillsItems item : reducelList) {
-								FinStlBillsItemsReports finStlBillsItemsReports = new FinStlBillsItemsReports();
-								finStlBillsItemsReports.setMblno(item.getMblno());
-								finStlBillsItemsReports.setHblno(item.getHblno());
-								finStlBillsItemsReports.setBillNo(item.getBillNo());
-								finStlBillsItemsReports.setAccBillNo(item.getAccBillNo());
-								finStlBillsItemsReports.setEtd(item.getEtd());
-								finStlBillsItemsReports.setVesselCnName(item.getVesselCnName() + "/" + item.getVoyageNo());
-								finStlBillsItemsReports.setVesselEnName(item.getVesselEnName() + "/" + item.getVoyageNo());
-								finStlBillsItemsReports.setSalesman(item.getSrcCnName());
-								finStlBillsItemsReports.setPodEnName(item.getPodEnName());
-								finStlBillsItemsReports.setPodCnName(item.getPodCnName());
-								finStlBillsItemsReports.setQuantityCntrDescr(item.getQuantityCntrDescr());
-								finStlBillsItemsReports.setTeu(item.getTeu());
-								if (!billsList.isEmpty()) {
-									String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
-									finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
-								}
-								if (!feeCenterListAll.isEmpty()) {
-									BigDecimal amountDSum = feeCenterListAll.stream().filter(e -> e.getCurCode().equals(exrateType))
-										.map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-									BigDecimal amountDStl = feeCenterListAll.stream().filter(e -> e.getCurCode().equals(exrateType))
-										.map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-									BigDecimal amountDSumUsd = feeCenterListAll.stream().filter(e -> !e.getCurCode().equals(exrateType))
-										.map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-									BigDecimal amountDStlUsd = feeCenterListAll.stream().filter(e -> !e.getCurCode().equals(exrateType))
-										.map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-									finStlBillsItemsReports.setAmountD(amountDSum.subtract(amountDStl));
-									finStlBillsItemsReports.setAmountUsdD(amountDSumUsd.subtract(amountDStlUsd));
+									feeCenterListAll = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+										.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+										.eq(FeeCenter::getIsDeleted, 0)
+										.eq(FeeCenter::getDc, "D")
+										.apply("find_in_set(mblno,'" + mblno + "')"));
+								}
+								for (FinStlBillsItems item : reducelList) {
+									FinStlBillsItemsReports finStlBillsItemsReports = new FinStlBillsItemsReports();
+									finStlBillsItemsReports.setMblno(item.getMblno());
+									finStlBillsItemsReports.setHblno(item.getHblno());
+									finStlBillsItemsReports.setBillNo(item.getBillNo());
+									finStlBillsItemsReports.setAccBillNo(item.getAccBillNo());
+									finStlBillsItemsReports.setEtd(item.getEtd());
+									finStlBillsItemsReports.setVesselCnName(item.getVesselCnName() + "/" + item.getVoyageNo());
+									finStlBillsItemsReports.setVesselEnName(item.getVesselEnName() + "/" + item.getVoyageNo());
+									finStlBillsItemsReports.setSalesman(item.getSrcCnName());
+									finStlBillsItemsReports.setPodEnName(item.getPodEnName());
+									finStlBillsItemsReports.setPodCnName(item.getPodCnName());
+									finStlBillsItemsReports.setQuantityCntrDescr(item.getQuantityCntrDescr());
+									finStlBillsItemsReports.setTeu(item.getTeu());
+									if (!billsList.isEmpty()) {
+										String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
+										finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
+									}
+									if (!feeCenterListAll.isEmpty()) {
+										BigDecimal amountDSum = feeCenterListAll.stream().filter(e -> e.getCurCode().equals(exrateType))
+											.map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+										BigDecimal amountDStl = feeCenterListAll.stream().filter(e -> e.getCurCode().equals(exrateType))
+											.map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+										BigDecimal amountDSumUsd = feeCenterListAll.stream().filter(e -> !e.getCurCode().equals(exrateType))
+											.map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+										BigDecimal amountDStlUsd = feeCenterListAll.stream().filter(e -> !e.getCurCode().equals(exrateType))
+											.map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+										finStlBillsItemsReports.setAmountD(amountDSum.subtract(amountDStl));
+										finStlBillsItemsReports.setAmountUsdD(amountDSumUsd.subtract(amountDStlUsd));
+									}
+									BigDecimal currentStlAmountD = finStlBillsItems.stream()
+										.filter(e -> e.getMblno().equals(item.getMblno())
+											&& (ObjectUtils.isNotNull(e.getHblno()) && e.getHblno().equals(item.getHblno()))
+											&& MagicValues.D.equals(e.getDc()) && exrateType.equals(e.getCurCode()))
+										.map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+									BigDecimal currentStlAmountC = finStlBillsItems.stream()
+										.filter(e -> e.getMblno().equals(item.getMblno())
+											&& (ObjectUtils.isNotNull(e.getHblno()) && e.getHblno().equals(item.getHblno())) && MagicValues.C.equals(e.getDc()) && exrateType.equals(e.getCurCode()))
+										.map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+									BigDecimal currentStlAmountUsdD = finStlBillsItems.stream()
+										.filter(e -> e.getMblno().equals(item.getMblno())
+											&& (ObjectUtils.isNotNull(e.getHblno()) && e.getHblno().equals(item.getHblno())) && MagicValues.D.equals(e.getDc()) && !exrateType.equals(e.getCurCode()))
+										.map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+									BigDecimal currentStlAmountUsdC = finStlBillsItems.stream()
+										.filter(e -> e.getMblno().equals(item.getMblno())
+											&& (ObjectUtils.isNotNull(e.getHblno()) && e.getHblno().equals(item.getHblno())) && MagicValues.C.equals(e.getDc()) && !exrateType.equals(e.getCurCode()))
+										.map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+									finStlBillsItemsReports.setAmount(currentStlAmountC.subtract(currentStlAmountD));
+									finStlBillsItemsReports.setAmountUsd(currentStlAmountUsdC.subtract(currentStlAmountUsdD));
+									if (!billsList.isEmpty()) {
+										billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).findFirst()
+											.ifPresent(bills -> finStlBillsItemsReports.setAmountProfit(bills.getAmountDrLoc().subtract(bills.getAmountCrLoc())));
+									} else {
+										finStlBillsItemsReports.setAmountProfit(new BigDecimal(MagicValues.ZERO));
+									}
+									finStlBillsItemsReportsList.add(finStlBillsItemsReports);
 								}
-								BigDecimal currentStlAmountD = finStlBillsItems.stream()
-									.filter(e -> e.getMblno().equals(item.getMblno()) && MagicValues.D.equals(e.getDc()) && exrateType.equals(e.getCurCode()))
-									.map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-								BigDecimal currentStlAmountC = finStlBillsItems.stream()
-									.filter(e -> e.getMblno().equals(item.getMblno()) && MagicValues.C.equals(e.getDc()) && exrateType.equals(e.getCurCode()))
-									.map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-								BigDecimal currentStlAmountUsdD = finStlBillsItems.stream()
-									.filter(e -> e.getMblno().equals(item.getMblno()) && MagicValues.D.equals(e.getDc()) && !exrateType.equals(e.getCurCode()))
-									.map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-								BigDecimal currentStlAmountUsdC = finStlBillsItems.stream()
-									.filter(e -> e.getMblno().equals(item.getMblno()) && MagicValues.C.equals(e.getDc()) && !exrateType.equals(e.getCurCode()))
-									.map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-								finStlBillsItemsReports.setAmount(currentStlAmountC.subtract(currentStlAmountD).abs());
-								finStlBillsItemsReports.setAmountUsd(currentStlAmountUsdC.subtract(currentStlAmountUsdD).abs());
-								if (!billsList.isEmpty()) {
-									billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).findFirst()
-										.ifPresent(bills -> finStlBillsItemsReports.setAmountProfit(bills.getAmountDrLoc().subtract(bills.getAmountCrLoc())));
-								} else {
-									finStlBillsItemsReports.setAmountProfit(new BigDecimal(MagicValues.ZERO));
+							} else {
+								List<FinStlBillsItems> reducelList = finStlBillsItems.stream().filter(distinctByKey(FinStlBillsItems::getMblno)).collect(Collectors.toList());
+								List<Bills> billsList = new ArrayList<>();
+								List<FeeCenter> feeCenterListAll = new ArrayList<>();
+								if (!reducelList.isEmpty()) {
+									String mblno = reducelList.stream().map(FinStlBillsItems::getMblno).collect(Collectors.joining(","));
+									billsList = billsService.list(new LambdaQueryWrapper<Bills>()
+										.eq(Bills::getTenantId, AuthUtil.getTenantId())
+										.eq(Bills::getIsDeleted, 0)
+										.apply("find_in_set(mblno,'" + mblno + "')"));
+
+									if (!billsList.isEmpty()) {
+										List<Long> billCorpId = billsList.stream().map(Bills::getCorpId).distinct().collect(Collectors.toList());
+										List<AgreementPriceItems> agreementPriceItemsList = new ArrayList<>();
+										List<AgreementPrice> agreementPriceList = agreementPriceService.list(new LambdaQueryWrapper<AgreementPrice>()
+											.eq(AgreementPrice::getTenantId, AuthUtil.getTenantId())
+											.eq(AgreementPrice::getIsDeleted, 0)
+											.eq(AgreementPrice::getStatus, 0)
+											.in(AgreementPrice::getCorpId, billCorpId));
+										if (!agreementPriceList.isEmpty()) {
+											List<Long> ids = agreementPriceList.stream().map(AgreementPrice::getId).collect(Collectors.toList());
+											agreementPriceItemsList = agreementPriceItemsService.list(new LambdaQueryWrapper<AgreementPriceItems>()
+												.eq(AgreementPriceItems::getTenantId, AuthUtil.getTenantId())
+												.eq(AgreementPriceItems::getIsDeleted, 0)
+												.eq(AgreementPriceItems::getStatus, 0)
+												.in(AgreementPriceItems::getPid, ids));
+										}
+										StringBuilder billCorpName = new StringBuilder();
+										StringBuilder billCorpNameAgreement = new StringBuilder();
+										List<Long> billsIds = billsList.stream().map(Bills::getCorpId).distinct().collect(Collectors.toList());
+										List<Bills> billsList1 = billsList.stream().filter(e -> billsIds.contains(e.getCorpId())).collect(Collectors.toList());
+										for (Bills item : billsList1) {
+											billCorpName.append(item.getCorpCnName()).append("/");
+											AgreementPrice agreementPrice = agreementPriceList.stream().filter(e -> e.getCorpId().equals(item.getCorpId())).findFirst().orElse(null);
+											if (agreementPrice != null) {
+												AgreementPriceItems agreementPriceItems = agreementPriceItemsList.stream().filter(e -> e.getPid().equals(agreementPrice.getId())).findFirst().orElse(null);
+												if (agreementPriceItems != null) {
+													billCorpNameAgreement.append(agreementPriceItems.getSettlementPeriodName()).append("/");
+												} else {
+													billCorpNameAgreement.append("无").append("/");
+												}
+											} else {
+												billCorpNameAgreement.append("无").append("/");
+											}
+										}
+										finStlBills.setBillCorpName(billCorpName.toString());
+										finStlBills.setBillCorpNameAgreement(billCorpNameAgreement.toString());
+									}
+									feeCenterListAll = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+										.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+										.eq(FeeCenter::getIsDeleted, 0)
+										.eq(FeeCenter::getDc, "D")
+										.apply("find_in_set(mblno,'" + mblno + "')"));
+								}
+								for (FinStlBillsItems item : reducelList) {
+									FinStlBillsItemsReports finStlBillsItemsReports = new FinStlBillsItemsReports();
+									finStlBillsItemsReports.setMblno(item.getMblno());
+									finStlBillsItemsReports.setHblno(item.getHblno());
+									finStlBillsItemsReports.setBillNo(item.getBillNo());
+									finStlBillsItemsReports.setAccBillNo(item.getAccBillNo());
+									finStlBillsItemsReports.setEtd(item.getEtd());
+									finStlBillsItemsReports.setVesselCnName(item.getVesselCnName() + "/" + item.getVoyageNo());
+									finStlBillsItemsReports.setVesselEnName(item.getVesselEnName() + "/" + item.getVoyageNo());
+									finStlBillsItemsReports.setSalesman(item.getSrcCnName());
+									finStlBillsItemsReports.setPodEnName(item.getPodEnName());
+									finStlBillsItemsReports.setPodCnName(item.getPodCnName());
+									finStlBillsItemsReports.setQuantityCntrDescr(item.getQuantityCntrDescr());
+									finStlBillsItemsReports.setTeu(item.getTeu());
+									if (!billsList.isEmpty()) {
+										String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
+										finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
+									}
+									if (!feeCenterListAll.isEmpty()) {
+										BigDecimal amountDSum = feeCenterListAll.stream().filter(e -> e.getCurCode().equals(exrateType))
+											.map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+										BigDecimal amountDStl = feeCenterListAll.stream().filter(e -> e.getCurCode().equals(exrateType))
+											.map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+										BigDecimal amountDSumUsd = feeCenterListAll.stream().filter(e -> !e.getCurCode().equals(exrateType))
+											.map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+										BigDecimal amountDStlUsd = feeCenterListAll.stream().filter(e -> !e.getCurCode().equals(exrateType))
+											.map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+										finStlBillsItemsReports.setAmountD(amountDSum.subtract(amountDStl));
+										finStlBillsItemsReports.setAmountUsdD(amountDSumUsd.subtract(amountDStlUsd));
+									}
+									BigDecimal currentStlAmountD = finStlBillsItems.stream()
+										.filter(e -> e.getMblno().equals(item.getMblno())
+											&& MagicValues.D.equals(e.getDc()) && exrateType.equals(e.getCurCode()))
+										.map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+									BigDecimal currentStlAmountC = finStlBillsItems.stream()
+										.filter(e -> e.getMblno().equals(item.getMblno()))
+										.map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+									BigDecimal currentStlAmountUsdD = finStlBillsItems.stream()
+										.filter(e -> e.getMblno().equals(item.getMblno()))
+										.map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+									BigDecimal currentStlAmountUsdC = finStlBillsItems.stream()
+										.filter(e -> e.getMblno().equals(item.getMblno()))
+										.map(FinStlBillsItems::getCurrentStlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+									finStlBillsItemsReports.setAmount(currentStlAmountC.subtract(currentStlAmountD));
+									finStlBillsItemsReports.setAmountUsd(currentStlAmountUsdC.subtract(currentStlAmountUsdD));
+									if (!billsList.isEmpty()) {
+										billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).findFirst()
+											.ifPresent(bills -> finStlBillsItemsReports.setAmountProfit(bills.getAmountDrLoc().subtract(bills.getAmountCrLoc())));
+									} else {
+										finStlBillsItemsReports.setAmountProfit(new BigDecimal(MagicValues.ZERO));
+									}
+									finStlBillsItemsReportsList.add(finStlBillsItemsReports);
 								}
-								finStlBillsItemsReportsList.add(finStlBillsItemsReports);
 							}
+
 						}
 						finStlBills.setAmountSubLoc(finStlBills.getAmountSubLoc().abs());
 						finStlBills.setFinStlBillsItemsReportsList(finStlBillsItemsReportsList);
@@ -817,7 +936,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 				} else {
 					bills.setGrossMargin(new BigDecimal(MagicValues.ZERO));
 				}
-				List<FeeCenter> allFeeCenter = new ArrayList<>();
 				// 直单或主单
 				if (MagicValues.MM.equals(bills.getBillType()) || MagicValues.DD.equals(bills.getBillType())) {
 					List<Bills> billsList = billsService.list(new LambdaQueryWrapper<Bills>()
@@ -844,7 +962,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 							}
 							List<FeeCenter> feeCenterListMh = feeCenterService.list(lambdaQueryWrapper);
 							if (!feeCenterListMh.isEmpty()) {
-								allFeeCenter.addAll(feeCenterListMh);
 								for (FeeCenter item : feeCenterListMh) {
 									if (ObjectUtils.isNotNull(item.getShortName())) {
 										item.setCorpCnName(item.getShortName());
@@ -950,7 +1067,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 					}
 					List<FeeCenter> feeCenterList = feeCenterService.list(lambdaQueryWrapper);
 					if (!feeCenterList.isEmpty()) {
-						allFeeCenter.addAll(feeCenterList);
 						List<FeeCenter> feeD = feeCenterList.stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
 						bills.setFeeCenterListD(feeD);
 						List<FeeCenter> feeC = feeCenterList.stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
@@ -1052,7 +1168,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 					}
 					List<FeeCenter> feeCenterList = feeCenterService.list(lambdaQueryWrapper);
 					if (!feeCenterList.isEmpty()) {
-						allFeeCenter.addAll(feeCenterList);
 						List<FeeCenter> feeD = feeCenterList.stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
 						bills.setFeeCenterListD(feeD);
 						List<FeeCenter> feeC = feeCenterList.stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
@@ -1137,107 +1252,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 						bills.setFeeCenterList(feeCenterReportList);
 					}
 					list.add(bills);
-					Bills details = billsService.getOne(new LambdaQueryWrapper<Bills>()
-						.eq(Bills::getId, bills.getMasterId())
-						.eq(Bills::getTenantId, AuthUtil.getTenantId())
-						.eq(Bills::getIsDeleted, 0));
-					/*if (details != null) {
-						LambdaQueryWrapper<FeeCenter> feeCenterLambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
-							.in(FeeCenter::getPid, details.getId())
-							.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
-							.eq(FeeCenter::getIsDeleted, 0);
-						if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
-							if (!(AuthUtil.getUserRole().contains("应付查看") && AuthUtil.getUserRole().contains("应收查看"))) {
-								if (AuthUtil.getUserRole().contains("应付查看")) {
-									feeCenterLambdaQueryWrapper.eq(FeeCenter::getDc, "C");
-								} else if (AuthUtil.getUserRole().contains("应收查看")) {
-									feeCenterLambdaQueryWrapper.eq(FeeCenter::getDc, "D");
-								}
-							}
-						}
-						List<FeeCenter> feeCenterListMh = feeCenterService.list(feeCenterLambdaQueryWrapper);
-						if (!feeCenterListMh.isEmpty()) {
-							allFeeCenter.addAll(feeCenterListMh);
-							List<FeeCenter> feeD2 = feeCenterListMh.stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
-							details.setFeeCenterListD(feeD2);
-							List<FeeCenter> feeC2 = feeCenterListMh.stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
-							details.setFeeCenterListC(feeC2);
-							for (FeeCenter item : feeCenterListMh) {
-								if (ObjectUtils.isNotNull(item.getShortName())) {
-									item.setCorpCnName(item.getShortName());
-								} else {
-									item.setCorpCnName("无");
-								}
-								if (ObjectUtils.isNotNull(item.getBillShortName())) {
-									item.setBillCorpCnName(item.getBillShortName());
-								} else {
-									item.setBillCorpCnName("无");
-								}
-							}
-							List<FeeCenter> feeCenterList1 = feeCenterListMh.stream()
-								.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
-									Comparator.comparing(f -> f.getFeeId() + f.getCorpId() + f.getCurCode() + f.getDc()))), ArrayList::new));
-							List<FeeCenterReports> feeCenterReportList = new ArrayList<>();
-							for (FeeCenter fee : feeCenterList1) {
-								FeeCenterReports feeCenterReports = new FeeCenterReports();
-								feeCenterReports.setRemarks(fee.getRemarks());
-								feeCenterReports.setPid(details.getId());
-								feeCenterReports.setFeeCnName(fee.getFeeCnName());
-								feeCenterReports.setDc(fee.getDc());
-								List<FeeCenter> feeCenterListD = feeCenterListMh.stream()
-									.filter(e -> MagicValues.D.equals(e.getDc()) && e.getPid().equals(details.getId()) &&
-										e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
-										e.getCorpId().equals(fee.getCorpId()))
-									.collect(Collectors.toList());
-								if (!feeCenterListD.isEmpty()) {
-									feeCenterReports.setBillCorpCnName(fee.getCorpCnName());
-									feeCenterReports.setAmountD(feeCenterListD.stream().map(FeeCenter::getAmount)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-									feeCenterReports.setAmountLocD(feeCenterListD.stream().map(FeeCenter::getAmountLoc)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-								}
-								List<FeeCenter> feeCenterListUsdD = feeCenterListMh.stream()
-									.filter(e -> MagicValues.D.equals(e.getDc()) && e.getPid().equals(details.getId()) &&
-										e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
-										e.getCorpId().equals(fee.getCorpId()))
-									.collect(Collectors.toList());
-								if (!feeCenterListUsdD.isEmpty()) {
-									feeCenterReports.setBillCorpCnName(fee.getCorpCnName());
-									feeCenterReports.setAmountUsdD(feeCenterListUsdD.stream().map(FeeCenter::getAmount)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-									feeCenterReports.setAmountLocD(feeCenterListUsdD.stream().map(FeeCenter::getAmountLoc)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-								}
-								List<FeeCenter> feeCenterListC = feeCenterListMh.stream()
-									.filter(e -> MagicValues.C.equals(e.getDc()) && e.getPid().equals(details.getId()) &&
-										e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
-										e.getCorpId().equals(fee.getCorpId()))
-									.collect(Collectors.toList());
-								if (!feeCenterListC.isEmpty()) {
-									feeCenterReports.setCorpCnName(fee.getCorpCnName());
-									feeCenterReports.setAmountC(feeCenterListC.stream().map(FeeCenter::getAmount)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-									feeCenterReports.setAmountLocC(feeCenterListC.stream().map(FeeCenter::getAmountLoc)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-								}
-								List<FeeCenter> feeCenterListUsdC = feeCenterListMh.stream()
-									.filter(e -> MagicValues.C.equals(e.getDc()) && e.getPid().equals(details.getId()) &&
-										e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
-										e.getCorpId().equals(fee.getCorpId()))
-									.collect(Collectors.toList());
-								if (!feeCenterListUsdC.isEmpty()) {
-									feeCenterReports.setCorpCnName(fee.getCorpCnName());
-									feeCenterReports.setAmountUsdC(feeCenterListUsdC.stream().map(FeeCenter::getAmount)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-									feeCenterReports.setAmountLocC(feeCenterListUsdC.stream().map(FeeCenter::getAmountLoc)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-								}
-								feeCenterReportList.add(feeCenterReports);
-							}
-							details.setFeeCenterList(feeCenterReportList);
-						}
-						list.add(0, details);
-					}*/
 				}
 				if (!list.isEmpty()) {
 					for (Bills item : list) {
@@ -1635,7 +1649,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 				} else {
 					bills.setGrossMargin(new BigDecimal(MagicValues.ZERO));
 				}
-				List<FeeCenter> allFeeCenter = new ArrayList<>();
 				// 直单或主单
 				if (MagicValues.MM.equals(bills.getBillType()) || MagicValues.DD.equals(bills.getBillType())) {
 					List<Bills> billsList = billsService.list(new LambdaQueryWrapper<Bills>()
@@ -1663,17 +1676,16 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 							if (feeCenterListMh.isEmpty()) {
 								throw new RuntimeException("请先维护费用信息");
 							}
-//							List<Long> amendIds = feeCenterListMh.stream().filter(f -> AmendType.isAmendType(f.getBusinessType())).map(FeeCenter::getPid).distinct().collect(Collectors.toList());
-							allFeeCenter.addAll(feeCenterListMh);
-//							if (!CollectionUtils.isEmpty(amendIds)) {
-							List<Amends> amendsList = amendsService.list(new LambdaQueryWrapper<Amends>()
-								.select(Amends::getId, Amends::getStatus).in(Amends::getOrigId, mblNo));
-							feeCenterListMh = feeCenterListMh.stream().filter(fc -> {
-								// 是 amend 类型并没审核通过的不计入
-								Amends amends = amendsList.stream().filter(a -> a.getId().equals(fc.getPid())).findFirst().orElse(null);
-								return amends == null || CommonEnum.THREE.info.equals(String.valueOf(amends.getStatus()));
-							}).collect(Collectors.toList());
-//							}
+							List<Long> amendIds = feeCenterListMh.stream().filter(f -> AmendType.isAmendType(f.getBusinessType())).map(FeeCenter::getPid).distinct().collect(Collectors.toList());
+							if (!CollectionUtils.isEmpty(amendIds)) {
+								List<Amends> amendsList = amendsService.list(new LambdaQueryWrapper<Amends>()
+									.select(Amends::getId, Amends::getStatus).in(Amends::getOrigId, mblNo));
+								feeCenterListMh = feeCenterListMh.stream().filter(fc -> {
+									// 是 amend 类型并没审核通过的不计入
+									Amends amends = amendsList.stream().filter(a -> a.getId().equals(fc.getPid())).findFirst().orElse(null);
+									return amends == null || CommonEnum.THREE.info.equals(String.valueOf(amends.getStatus()));
+								}).collect(Collectors.toList());
+							}
 
 							for (FeeCenter item : feeCenterListMh) {
 								if (ObjectUtils.isNotNull(item.getShortName())) {
@@ -1689,11 +1701,13 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 							}
 							for (Bills item : billsList) {
 								item.setPrintPeople(AuthUtil.getUserName());
-								List<FeeCenter> feeD = feeCenterListMh.stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
+								List<FeeCenter> feeD = feeCenterListMh.stream().filter(e -> MagicValues.D.equals(e.getDc())
+									&& e.getPid().equals(item.getId())).collect(Collectors.toList());
 								item.setFeeCenterListD(feeD);
-								List<FeeCenter> feeC = feeCenterListMh.stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
+								List<FeeCenter> feeC = feeCenterListMh.stream().filter(e -> MagicValues.C.equals(e.getDc())
+									&& e.getPid().equals(item.getId())).collect(Collectors.toList());
 								item.setFeeCenterListC(feeC);
-								List<FeeCenter> feeCenterList = feeCenterListMh.stream()
+								List<FeeCenter> feeCenterList = feeCenterListMh.stream().filter(e -> e.getPid().equals(item.getId()))
 									.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
 										Comparator.comparing(f -> f.getFeeId() + f.getCorpId() + f.getCurCode() + f.getDc()))), ArrayList::new));
 								List<FeeCenterReports> feeCenterReportList = new ArrayList<>();
@@ -1705,7 +1719,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 									feeCenterReports.setDc(fee.getDc());
 									List<FeeCenter> feeCenterListD = feeCenterListMh.stream()
 										.filter(e -> MagicValues.D.equals(e.getDc()) && e.getMblno().equals(item.getMblno()) &&
-											e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
+											e.getFeeId().equals(fee.getFeeId()) && e.getPid().equals(item.getId())
+											&& exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
 											e.getCorpId().equals(fee.getCorpId()))
 										.collect(Collectors.toList());
 									if (!feeCenterListD.isEmpty()) {
@@ -1717,7 +1732,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 									}
 									List<FeeCenter> feeCenterListUsdD = feeCenterListMh.stream()
 										.filter(e -> MagicValues.D.equals(e.getDc()) && e.getMblno().equals(item.getMblno()) &&
-											e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
+											e.getFeeId().equals(fee.getFeeId()) && e.getPid().equals(item.getId()) &&
+											!exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
 											e.getCorpId().equals(fee.getCorpId()))
 										.collect(Collectors.toList());
 									if (!feeCenterListUsdD.isEmpty()) {
@@ -1729,7 +1745,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 									}
 									List<FeeCenter> feeCenterListC = feeCenterListMh.stream()
 										.filter(e -> MagicValues.C.equals(e.getDc()) && e.getMblno().equals(item.getMblno()) &&
-											e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
+											e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode())
+											&& e.getPid().equals(item.getId()) && fee.getCurCode().equals(e.getCurCode()) &&
 											e.getCorpId().equals(fee.getCorpId()))
 										.collect(Collectors.toList());
 									if (!feeCenterListC.isEmpty()) {
@@ -1741,7 +1758,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 									}
 									List<FeeCenter> feeCenterListUsdC = feeCenterListMh.stream()
 										.filter(e -> MagicValues.C.equals(e.getDc()) && e.getMblno().equals(item.getMblno()) &&
-											e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
+											e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode())
+											&& e.getPid().equals(item.getId()) && fee.getCurCode().equals(e.getCurCode()) &&
 											e.getCorpId().equals(fee.getCorpId()))
 										.collect(Collectors.toList());
 									if (!feeCenterListUsdC.isEmpty()) {
@@ -1773,7 +1791,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 						}
 					}
 					List<FeeCenter> feeCenterList = feeCenterService.list(feeCenterLambdaQueryWrapper);
-					allFeeCenter.addAll(feeCenterList);
 					List<Amends> amendsList = amendsService.list(new LambdaQueryWrapper<Amends>()
 						.select(Amends::getId, Amends::getStatus).in(Amends::getOrigId, bills.getId()));
 					feeCenterList = feeCenterList.stream().filter(fc -> {
@@ -1870,132 +1887,36 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 					map.put(MagicValues.DATA, list);
 				} else if (MagicValues.MH.equals(bills.getBillType())) {
 					// 分单
-					Bills details = billsService.getOne(new LambdaQueryWrapper<Bills>()
-						.eq(Bills::getId, bills.getMasterId())
-						.eq(Bills::getTenantId, AuthUtil.getTenantId())
-						.eq(Bills::getIsDeleted, 0));
-					if (details != null) {
-						details.setPrintPeople(AuthUtil.getUserName());
-						LambdaQueryWrapper<FeeCenter> feeCenterLambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
-							.eq(FeeCenter::getPid, bills.getId())
-							.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
-							.eq(FeeCenter::getIsDeleted, 0);
-						if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
-							if (!(AuthUtil.getUserRole().contains("应付查看") && AuthUtil.getUserRole().contains("应收查看"))) {
-								if (AuthUtil.getUserRole().contains("应付查看")) {
-									feeCenterLambdaQueryWrapper.eq(FeeCenter::getDc, "C");
-								} else if (AuthUtil.getUserRole().contains("应收查看")) {
-									feeCenterLambdaQueryWrapper.eq(FeeCenter::getDc, "D");
-								}
-							}
-						}
-						List<FeeCenter> feeCenterList = feeCenterService.list(feeCenterLambdaQueryWrapper);
-						if (feeCenterList.isEmpty()) {
-							throw new RuntimeException("请先维护费用信息");
-						}
-						allFeeCenter.addAll(feeCenterList);
-						List<FeeCenter> feeD = feeCenterList.stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
-						bills.setFeeCenterListD(feeD);
-						List<FeeCenter> feeC = feeCenterList.stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
-						bills.setFeeCenterListC(feeC);
-						if (!feeCenterList.isEmpty()) {
-							for (FeeCenter item : feeCenterList) {
-								if (ObjectUtils.isNotNull(item.getShortName())) {
-									item.setCorpCnName(item.getShortName());
-								} else {
-									item.setCorpCnName("无");
-								}
-								if (ObjectUtils.isNotNull(item.getBillShortName())) {
-									item.setBillCorpCnName(item.getBillShortName());
-								} else {
-									item.setBillCorpCnName("无");
-								}
-							}
-							List<FeeCenter> feeCenters = feeCenterList.stream()
-								.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
-									Comparator.comparing(f -> f.getFeeId() + f.getCorpId() + f.getCurCode() + f.getDc()))), ArrayList::new));
-							List<FeeCenterReports> feeCenterReportList = new ArrayList<>();
-							for (FeeCenter fee : feeCenters) {
-								FeeCenterReports feeCenterReports = new FeeCenterReports();
-								feeCenterReports.setRemarks(fee.getRemarks());
-								feeCenterReports.setPid(bills.getId());
-								feeCenterReports.setFeeCnName(fee.getFeeCnName());
-								feeCenterReports.setDc(fee.getDc());
-								Bills finalBills1 = bills;
-								List<FeeCenter> feeCenterListD = feeCenterList.stream()
-									.filter(e -> MagicValues.D.equals(e.getDc()) && e.getMblno().equals(finalBills1.getMblno()) &&
-										e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
-										e.getCorpId().equals(fee.getCorpId()))
-									.collect(Collectors.toList());
-								if (!feeCenterListD.isEmpty()) {
-									feeCenterReports.setBillCorpCnName(fee.getCorpCnName());
-									feeCenterReports.setAmountD(feeCenterListD.stream().map(FeeCenter::getAmount)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-									feeCenterReports.setAmountLocD(feeCenterListD.stream().map(FeeCenter::getAmountLoc)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-								}
-								List<FeeCenter> feeCenterListUsdD = feeCenterList.stream()
-									.filter(e -> MagicValues.D.equals(e.getDc()) && e.getMblno().equals(finalBills1.getMblno()) &&
-										e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
-										e.getCorpId().equals(fee.getCorpId()))
-									.collect(Collectors.toList());
-								if (!feeCenterListUsdD.isEmpty()) {
-									feeCenterReports.setBillCorpCnName(fee.getCorpCnName());
-									feeCenterReports.setAmountUsdD(feeCenterListUsdD.stream().map(FeeCenter::getAmount)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-									feeCenterReports.setAmountLocD(feeCenterListUsdD.stream().map(FeeCenter::getAmountLoc)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-								}
-								List<FeeCenter> feeCenterListC = feeCenterList.stream()
-									.filter(e -> MagicValues.C.equals(e.getDc()) && e.getMblno().equals(finalBills1.getMblno()) &&
-										e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
-										e.getCorpId().equals(fee.getCorpId()))
-									.collect(Collectors.toList());
-								if (!feeCenterListC.isEmpty()) {
-									feeCenterReports.setCorpCnName(fee.getCorpCnName());
-									feeCenterReports.setAmountC(feeCenterListC.stream().map(FeeCenter::getAmount)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-									feeCenterReports.setAmountLocC(feeCenterListC.stream().map(FeeCenter::getAmountLoc)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-								}
-								List<FeeCenter> feeCenterListUsdC = feeCenterList.stream()
-									.filter(e -> MagicValues.C.equals(e.getDc()) && e.getMblno().equals(finalBills1.getMblno()) &&
-										e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
-										e.getCorpId().equals(fee.getCorpId()))
-									.collect(Collectors.toList());
-								if (!feeCenterListUsdC.isEmpty()) {
-									feeCenterReports.setCorpCnName(fee.getCorpCnName());
-									feeCenterReports.setAmountUsdC(feeCenterListUsdC.stream().map(FeeCenter::getAmount)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-									feeCenterReports.setAmountLocC(feeCenterListUsdC.stream().map(FeeCenter::getAmountLoc)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-								}
-								feeCenterReportList.add(feeCenterReports);
-							}
-							bills.setFeeCenterList(feeCenterReportList);
-						}
-						list.add(bills);
-						LambdaQueryWrapper<FeeCenter> lambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
-							.eq(FeeCenter::getPid, details.getId())
-							.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
-							.eq(FeeCenter::getIsDeleted, 0);
-						if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
-							if (!(AuthUtil.getUserRole().contains("应付查看") && AuthUtil.getUserRole().contains("应收查看"))) {
-								if (AuthUtil.getUserRole().contains("应付查看")) {
-									lambdaQueryWrapper.eq(FeeCenter::getDc, "C");
-								} else if (AuthUtil.getUserRole().contains("应收查看")) {
-									lambdaQueryWrapper.eq(FeeCenter::getDc, "D");
-								}
+					LambdaQueryWrapper<FeeCenter> feeCenterLambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
+						.eq(FeeCenter::getPid, bills.getId())
+						.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+						.eq(FeeCenter::getIsDeleted, 0);
+					if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
+						if (!(AuthUtil.getUserRole().contains("应付查看") && AuthUtil.getUserRole().contains("应收查看"))) {
+							if (AuthUtil.getUserRole().contains("应付查看")) {
+								feeCenterLambdaQueryWrapper.eq(FeeCenter::getDc, "C");
+							} else if (AuthUtil.getUserRole().contains("应收查看")) {
+								feeCenterLambdaQueryWrapper.eq(FeeCenter::getDc, "D");
 							}
 						}
-						List<FeeCenter> feeCenterListMh = feeCenterService.list(lambdaQueryWrapper);
-						allFeeCenter.addAll(feeCenterListMh);
-
-						List<FeeCenter> feeD2 = feeCenterListMh.stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
-						details.setFeeCenterListD(feeD2);
-						List<FeeCenter> feeC2 = feeCenterListMh.stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
-						details.setFeeCenterListC(feeC2);
-						for (FeeCenter item : feeCenterListMh) {
+					}
+					List<FeeCenter> feeCenterList = feeCenterService.list(feeCenterLambdaQueryWrapper);
+					if (feeCenterList.isEmpty()) {
+						throw new RuntimeException("请先维护费用信息");
+					}
+					List<Amends> amendsList = amendsService.list(new LambdaQueryWrapper<Amends>()
+						.select(Amends::getId, Amends::getStatus).in(Amends::getOrigId, bills.getId()));
+					feeCenterList = feeCenterList.stream().filter(fc -> {
+						// 是 amend 类型并没审核通过的不计入
+						Amends amends = amendsList.stream().filter(a -> a.getId().equals(fc.getPid())).findFirst().orElse(null);
+						return amends == null || CommonEnum.THREE.info.equals(String.valueOf(amends.getStatus()));
+					}).collect(Collectors.toList());
+					List<FeeCenter> feeD = feeCenterList.stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
+					bills.setFeeCenterListD(feeD);
+					List<FeeCenter> feeC = feeCenterList.stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
+					bills.setFeeCenterListC(feeC);
+					if (!feeCenterList.isEmpty()) {
+						for (FeeCenter item : feeCenterList) {
 							if (ObjectUtils.isNotNull(item.getShortName())) {
 								item.setCorpCnName(item.getShortName());
 							} else {
@@ -2007,18 +1928,19 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 								item.setBillCorpCnName("无");
 							}
 						}
-						List<FeeCenter> feeCenterList1 = feeCenterListMh.stream()
+						List<FeeCenter> feeCenters = feeCenterList.stream()
 							.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
 								Comparator.comparing(f -> f.getFeeId() + f.getCorpId() + f.getCurCode() + f.getDc()))), ArrayList::new));
 						List<FeeCenterReports> feeCenterReportList = new ArrayList<>();
-						for (FeeCenter fee : feeCenterList1) {
+						for (FeeCenter fee : feeCenters) {
 							FeeCenterReports feeCenterReports = new FeeCenterReports();
 							feeCenterReports.setRemarks(fee.getRemarks());
-							feeCenterReports.setPid(details.getId());
+							feeCenterReports.setPid(bills.getId());
 							feeCenterReports.setFeeCnName(fee.getFeeCnName());
 							feeCenterReports.setDc(fee.getDc());
-							List<FeeCenter> feeCenterListD = feeCenterListMh.stream()
-								.filter(e -> MagicValues.D.equals(e.getDc()) && e.getMblno().equals(details.getMblno()) &&
+							Bills finalBills1 = bills;
+							List<FeeCenter> feeCenterListD = feeCenterList.stream()
+								.filter(e -> MagicValues.D.equals(e.getDc()) && e.getMblno().equals(finalBills1.getMblno()) &&
 									e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
 									e.getCorpId().equals(fee.getCorpId()))
 								.collect(Collectors.toList());
@@ -2029,8 +1951,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 								feeCenterReports.setAmountLocD(feeCenterListD.stream().map(FeeCenter::getAmountLoc)
 									.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 							}
-							List<FeeCenter> feeCenterListUsdD = feeCenterListMh.stream()
-								.filter(e -> MagicValues.D.equals(e.getDc()) && e.getMblno().equals(details.getMblno()) &&
+							List<FeeCenter> feeCenterListUsdD = feeCenterList.stream()
+								.filter(e -> MagicValues.D.equals(e.getDc()) && e.getMblno().equals(finalBills1.getMblno()) &&
 									e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
 									e.getCorpId().equals(fee.getCorpId()))
 								.collect(Collectors.toList());
@@ -2041,8 +1963,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 								feeCenterReports.setAmountLocD(feeCenterListUsdD.stream().map(FeeCenter::getAmountLoc)
 									.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 							}
-							List<FeeCenter> feeCenterListC = feeCenterListMh.stream()
-								.filter(e -> MagicValues.C.equals(e.getDc()) && e.getMblno().equals(details.getMblno()) &&
+							List<FeeCenter> feeCenterListC = feeCenterList.stream()
+								.filter(e -> MagicValues.C.equals(e.getDc()) && e.getMblno().equals(finalBills1.getMblno()) &&
 									e.getFeeId().equals(fee.getFeeId()) && exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
 									e.getCorpId().equals(fee.getCorpId()))
 								.collect(Collectors.toList());
@@ -2053,8 +1975,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 								feeCenterReports.setAmountLocC(feeCenterListC.stream().map(FeeCenter::getAmountLoc)
 									.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 							}
-							List<FeeCenter> feeCenterListUsdC = feeCenterListMh.stream()
-								.filter(e -> MagicValues.C.equals(e.getDc()) && e.getMblno().equals(details.getMblno()) &&
+							List<FeeCenter> feeCenterListUsdC = feeCenterList.stream()
+								.filter(e -> MagicValues.C.equals(e.getDc()) && e.getMblno().equals(finalBills1.getMblno()) &&
 									e.getFeeId().equals(fee.getFeeId()) && !exrateType.equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
 									e.getCorpId().equals(fee.getCorpId()))
 								.collect(Collectors.toList());
@@ -2067,9 +1989,9 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 							}
 							feeCenterReportList.add(feeCenterReports);
 						}
-						details.setFeeCenterList(feeCenterReportList);
-						list.add(0, details);
+						bills.setFeeCenterList(feeCenterReportList);
 					}
+					list.add(bills);
 				}
 				if (!list.isEmpty()) {
 					for (Bills item : list) {
@@ -2085,7 +2007,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 						// 排序
 						List<FeeCenterReports> feeCentersD = feeCenterReportsD.stream()
 							.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
-								Comparator.comparing(e -> e.getFeeCnName() + e.getBillCorpCnName()))), ArrayList::new));
+								Comparator.comparing(e -> e.getFeeCnName() + e.getBillCorpCnName() + e.getCurCode()))), ArrayList::new));
+
 						int countC = 0;
 						// 遍历应收,并与应付对应
 						for (int i = 0; i < feeCentersD.size(); i++) {

+ 2 - 2
blade-service/blade-los/src/main/java/org/springblade/los/box/controller/TradingBoxItemController.java

@@ -120,7 +120,7 @@ public class TradingBoxItemController extends BladeController {
 	@ApiOperation(value = "新增或修改", notes = "传入tradingBoxItem")
 	@RepeatSubmit
 	public R submit(@Valid @RequestBody TradingBoxItem tradingBoxItem) {
-		//BoxNumUtils.containerNumberVerification(tradingBoxItem.getCode());
+		BoxNumUtils.containerNumberVerification(tradingBoxItem.getCode());
 		TradingBox tradingBox;
 		if (ObjectUtils.isNotNull(tradingBoxItem.getPid())) {
 			tradingBox = tradingBoxService.getById(tradingBoxItem.getPid());
@@ -220,7 +220,7 @@ public class TradingBoxItemController extends BladeController {
 					item.setCode(item.getCode().trim());
 					item.setCode(item.getCode().toUpperCase());
 				}
-				//BoxNumUtils.containerNumberVerification(item.getCode());
+				BoxNumUtils.containerNumberVerification(item.getCode());
 				if ("BUY".equals(tradingBox.getType())) {
 					item.setOriginalBoxEastId(tradingBox.getPurchaseCompanyId());
 					item.setOriginalBoxEastName(tradingBox.getPurchaseCompanyName());

+ 74 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/PutBoxServiceImpl.java

@@ -240,6 +240,9 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 			if (putBox.getPutBoxItemsList().size() != boxCode.size()) {
 				throw new RuntimeException("本单据明细存在重复箱号,操作失败!");
 			}
+			if (!boxCode.isEmpty()) {
+				putBox.setCode(String.join(",", boxCode));
+			}
 			String boxEastId = "";
 			for (PutBoxItems item : putBox.getPutBoxItemsList()) {
 				if (ObjectUtils.isNull(boxEastId)) {
@@ -286,6 +289,8 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 			}
 			putBoxItemsService.saveOrUpdateBatch(putBox.getPutBoxItemsList());
 			baseMapper.updateById(putBox);
+		} else {
+			putBox.setCode("");
 		}
 		return R.data(putBox);
 	}
@@ -1249,6 +1254,29 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 					archivesTrajectory.setCreateUserName(AuthUtil.getUserName());
 					archivesTrajectory.setTenantId(AuthUtil.getTenantId());
 					archivesTrajectory.setSrcId(tradingBox.getId());
+					archivesTrajectory.setEtd(item.getEtd());
+					archivesTrajectory.setPolCyId(item.getPolCyId());
+					archivesTrajectory.setPolCyCode(item.getPolCyCode());
+					archivesTrajectory.setPolCyCname(item.getPolCyCname());
+					archivesTrajectory.setPolCyEname(item.getPolCyEname());
+					archivesTrajectory.setPolFreeBoxUseDays(item.getPolFreeBoxUseDays());
+					archivesTrajectory.setPolPreAppearanceDate(item.getPolPreAppearanceDate());
+					archivesTrajectory.setPolStationEmptyContainerExitDate(item.getPolStationEmptyContainerExitDate());
+					archivesTrajectory.setPolReturnDate(item.getPolReturnDate());
+					archivesTrajectory.setPolOverdueBoxUseDays(item.getPolOverdueBoxUseDays());
+					archivesTrajectory.setEta(item.getEta());
+					archivesTrajectory.setPodEmptyContainerReturnDate(item.getPodEmptyContainerReturnDate());
+					archivesTrajectory.setPodStationId(item.getPodStationId());
+					archivesTrajectory.setPodStationCode(item.getPodStationCode());
+					archivesTrajectory.setPodStationCname(item.getPodStationCname());
+					archivesTrajectory.setPodStationEname(item.getPodStationEname());
+					archivesTrajectory.setPodFreeBoxUseDays(item.getPodFreeBoxUseDays());
+					archivesTrajectory.setPodBoxUseDays(item.getPodBoxUseDays());
+					archivesTrajectory.setShipNameId(item.getShipNameId());
+					archivesTrajectory.setShipCname(item.getShipCname());
+					archivesTrajectory.setShipEname(item.getShipEname());
+					archivesTrajectory.setShipCode(item.getShipCode());
+					archivesTrajectory.setVoyage(item.getVoyage());
 					archivesTrajectoryMapper.insert(archivesTrajectory);
 				}
 			}
@@ -2999,6 +3027,29 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 					archivesTrajectory.setCreateUserName(AuthUtil.getUserName());
 					archivesTrajectory.setTenantId(AuthUtil.getTenantId());
 					archivesTrajectory.setSrcId(tradingBox.getId());
+					archivesTrajectory.setEtd(item.getEtd());
+					archivesTrajectory.setPolCyId(item.getPolCyId());
+					archivesTrajectory.setPolCyCode(item.getPolCyCode());
+					archivesTrajectory.setPolCyCname(item.getPolCyCname());
+					archivesTrajectory.setPolCyEname(item.getPolCyEname());
+					archivesTrajectory.setPolFreeBoxUseDays(item.getPolFreeBoxUseDays());
+					archivesTrajectory.setPolPreAppearanceDate(item.getPolPreAppearanceDate());
+					archivesTrajectory.setPolStationEmptyContainerExitDate(item.getPolStationEmptyContainerExitDate());
+					archivesTrajectory.setPolReturnDate(item.getPolReturnDate());
+					archivesTrajectory.setPolOverdueBoxUseDays(item.getPolOverdueBoxUseDays());
+					archivesTrajectory.setEta(item.getEta());
+					archivesTrajectory.setPodEmptyContainerReturnDate(item.getPodEmptyContainerReturnDate());
+					archivesTrajectory.setPodStationId(item.getPodStationId());
+					archivesTrajectory.setPodStationCode(item.getPodStationCode());
+					archivesTrajectory.setPodStationCname(item.getPodStationCname());
+					archivesTrajectory.setPodStationEname(item.getPodStationEname());
+					archivesTrajectory.setPodFreeBoxUseDays(item.getPodFreeBoxUseDays());
+					archivesTrajectory.setPodBoxUseDays(item.getPodBoxUseDays());
+					archivesTrajectory.setShipNameId(item.getShipNameId());
+					archivesTrajectory.setShipCname(item.getShipCname());
+					archivesTrajectory.setShipEname(item.getShipEname());
+					archivesTrajectory.setShipCode(item.getShipCode());
+					archivesTrajectory.setVoyage(item.getVoyage());
 					archivesTrajectoryMapper.insert(archivesTrajectory);
 				}
 			}
@@ -3573,6 +3624,29 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 								archivesTrajectory.setCreateUserName(AuthUtil.getUserName());
 								archivesTrajectory.setTenantId(AuthUtil.getTenantId());
 								archivesTrajectory.setSrcId(putBox.getId());
+								archivesTrajectory.setEtd(item.getEtd());
+								archivesTrajectory.setPolCyId(item.getPolCyId());
+								archivesTrajectory.setPolCyCode(item.getPolCyCode());
+								archivesTrajectory.setPolCyCname(item.getPolCyCname());
+								archivesTrajectory.setPolCyEname(item.getPolCyEname());
+								archivesTrajectory.setPolFreeBoxUseDays(item.getPolFreeBoxUseDays());
+								archivesTrajectory.setPolPreAppearanceDate(item.getPolPreAppearanceDate());
+								archivesTrajectory.setPolStationEmptyContainerExitDate(item.getPolStationEmptyContainerExitDate());
+								archivesTrajectory.setPolReturnDate(item.getPolReturnDate());
+								archivesTrajectory.setPolOverdueBoxUseDays(item.getPolOverdueBoxUseDays());
+								archivesTrajectory.setEta(item.getEta());
+								archivesTrajectory.setPodEmptyContainerReturnDate(item.getPodEmptyContainerReturnDate());
+								archivesTrajectory.setPodStationId(item.getPodStationId());
+								archivesTrajectory.setPodStationCode(item.getPodStationCode());
+								archivesTrajectory.setPodStationCname(item.getPodStationCname());
+								archivesTrajectory.setPodStationEname(item.getPodStationEname());
+								archivesTrajectory.setPodFreeBoxUseDays(item.getPodFreeBoxUseDays());
+								archivesTrajectory.setPodBoxUseDays(item.getPodBoxUseDays());
+								archivesTrajectory.setShipNameId(item.getShipNameId());
+								archivesTrajectory.setShipCname(item.getShipCname());
+								archivesTrajectory.setShipEname(item.getShipEname());
+								archivesTrajectory.setShipCode(item.getShipCode());
+								archivesTrajectory.setVoyage(item.getVoyage());
 								archivesTrajectoryMapper.insert(archivesTrajectory);
 							}
 						}

+ 4 - 4
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/TradingBoxItemServiceImpl.java

@@ -125,7 +125,7 @@ public class TradingBoxItemServiceImpl extends ServiceImpl<TradingBoxItemMapper,
 				if (ObjectUtils.isNull(item.getCode())) {
 					throw new RuntimeException("箱号不能为空");
 				}
-				//BoxNumUtils.containerNumberVerification(item.getCode());
+				BoxNumUtils.containerNumberVerification(item.getCode());
 				if (ObjectUtils.isNull(item.getBoxType())) {
 					throw new RuntimeException("箱型不能为空");
 				}
@@ -166,7 +166,7 @@ public class TradingBoxItemServiceImpl extends ServiceImpl<TradingBoxItemMapper,
 				if (ObjectUtils.isNull(item.getCode())) {
 					throw new RuntimeException("箱号不能为空");
 				}
-				//BoxNumUtils.containerNumberVerification(item.getCode());
+				BoxNumUtils.containerNumberVerification(item.getCode());
 				if (ObjectUtils.isNull(item.getBoxType())) {
 					throw new RuntimeException("箱型不能为空");
 				}
@@ -207,7 +207,7 @@ public class TradingBoxItemServiceImpl extends ServiceImpl<TradingBoxItemMapper,
 				if (ObjectUtils.isNull(item.getCode())) {
 					throw new RuntimeException("箱号不能为空");
 				}
-				//BoxNumUtils.containerNumberVerification(item.getCode());
+				BoxNumUtils.containerNumberVerification(item.getCode());
 				if (ObjectUtils.isNull(item.getBoxType())) {
 					throw new RuntimeException("箱型不能为空");
 				}
@@ -251,7 +251,7 @@ public class TradingBoxItemServiceImpl extends ServiceImpl<TradingBoxItemMapper,
 				if (ObjectUtils.isNull(item.getCode())) {
 					throw new RuntimeException("箱号不能为空");
 				}
-				//BoxNumUtils.containerNumberVerification(item.getCode());
+				BoxNumUtils.containerNumberVerification(item.getCode());
 				if (ObjectUtils.isNull(item.getBoxType())) {
 					throw new RuntimeException("箱型不能为空");
 				}

+ 2 - 1
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/TradingBoxServiceImpl.java

@@ -24,6 +24,7 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.los.Util.BoxNumUtils;
 import org.springblade.los.Util.CurrencyUtils;
 import org.springblade.los.basic.business.entity.BusinessType;
 import org.springblade.los.basic.business.service.IBusinessTypeService;
@@ -332,7 +333,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 					item.setCode(item.getCode().trim());
 					item.setCode(item.getCode().toUpperCase());
 				}
-				//BoxNumUtils.containerNumberVerification(item.getCode());
+				BoxNumUtils.containerNumberVerification(item.getCode());
 				if ("BUY".equals(tradingBox.getType())) {
 					item.setOriginalBoxEastId(tradingBox.getPurchaseCompanyId());
 					item.setOriginalBoxEastName(tradingBox.getPurchaseCompanyName());

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

@@ -31,6 +31,7 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.los.Util.BoxNumUtils;
 import org.springblade.los.Util.CurrencyUtils;
 import org.springblade.los.Util.StringTools;
 import org.springblade.los.Util.ZrUtil;
@@ -370,7 +371,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 				.eq(Containers::getIsDeleted, 0));
 			if (!containersList.isEmpty()) {
 				for (Containers item : containersList) {
-					//BoxNumUtils.containerNumberVerification(item.getCntrNo());
+					BoxNumUtils.containerNumberVerification(item.getCntrNo());
 					item.setUpdateUser(AuthUtil.getUserId());
 					item.setUpdateUserName(AuthUtil.getUserName());
 					item.setUpdateTime(new Date());
@@ -1128,6 +1129,16 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			.eq(Amends::getIsDeleted, 0)
 			.eq(Amends::getStatus, 3)
 			.eq(Amends::getOrigId, detail.getId()));
+		BigDecimal amountDr = new BigDecimal("0.00");
+		BigDecimal amountCr = new BigDecimal("0.00");
+		BigDecimal amountProfit;
+		BigDecimal amountDrUsd = new BigDecimal("0.00");
+		BigDecimal amountCrUsd = new BigDecimal("0.00");
+		BigDecimal amountProfitUsd;
+		BigDecimal amountDrLoc = new BigDecimal("0.00");
+		BigDecimal amountCrLoc = new BigDecimal("0.00");
+		BigDecimal amountProfitLoc;
+		String exrateType = currencyUtils.standardCurrency(detail.getBranchId());
 		if (!amendsList.isEmpty()) {
 			List<Long> ids = amendsList.stream().map(Amends::getId).distinct().collect(Collectors.toList());
 			List<FeeCenter> feeCenterAmendList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
@@ -1135,9 +1146,40 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 				.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
 				.in(FeeCenter::getPid, ids));
 			detail.setFeeCenterAmendList(feeCenterAmendList.isEmpty() ? new ArrayList<>() : feeCenterAmendList);
+			for (FeeCenter item : feeCenterAmendList) {
+				if ("D".equals(item.getDc())) {
+					if (exrateType.equals(item.getCurCode())) {
+						amountDr = amountDr.add(item.getAmount());
+						amountDrLoc = amountDrLoc.add(item.getAmount());
+					} else {
+						amountDrUsd = amountDrUsd.add(item.getAmount());
+						amountDrLoc = amountDrLoc.add(item.getAmount().multiply(item.getExrate()));
+					}
+				} else {
+					if (exrateType.equals(item.getCurCode())) {
+						amountCr = amountCr.add(item.getAmount());
+						amountCrLoc = amountCrLoc.add(item.getAmount());
+					} else {
+						amountCrUsd = amountCrUsd.add(item.getAmount());
+						amountCrLoc = amountCrLoc.add(item.getAmount().multiply(item.getExrate()));
+					}
+				}
+			}
 		} else {
 			detail.setFeeCenterAmendList(new ArrayList<>());
 		}
+		amountProfit = amountDr.subtract(amountCr);
+		amountProfitUsd = amountDrUsd.subtract(amountCrUsd);
+		amountProfitLoc = amountDrLoc.subtract(amountCrLoc);
+		detail.setAmountDrAmend(amountDr);
+		detail.setAmountCrAmend(amountCr);
+		detail.setAmountProfitAmend(amountProfit);
+		detail.setAmountDrUsdAmend(amountDrUsd);
+		detail.setAmountCrUsdAmend(amountCrUsd);
+		detail.setAmountProfitUsdAmend(amountProfitUsd);
+		detail.setAmountDrLocAmend(amountDrLoc);
+		detail.setAmountCrLocAmend(amountCrLoc);
+		detail.setAmountProfitLocAmend(amountProfitLoc);
 		return detail;
 	}
 

+ 16 - 6
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/ContainersServiceImpl.java

@@ -24,6 +24,7 @@ import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.los.Util.BoxNumUtils;
 import org.springblade.los.business.sea.dto.WaitingBox;
 import org.springblade.los.business.sea.entity.Bills;
 import org.springblade.los.business.sea.entity.Containers;
@@ -81,7 +82,7 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 		if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 			deptName = String.join(",", res.getData());
 		}
-		//BoxNumUtils.containerNumberVerification(containers.getCntrNo());
+		BoxNumUtils.containerNumberVerification(containers.getCntrNo());
 		String sealNo = ObjectUtils.isNotNull(containers.getSealNo()) ? containers.getSealNo().toUpperCase() : "";
 		// 普柜可以设定为,铅封不能重复,但框架 FR  FH这一类的,HMM要求录入NIL,MSK要求录入000000
 		Boolean isNilSealNo = "".equals(sealNo) || "NIL".equals(sealNo) || "000000".equals(sealNo);
@@ -419,9 +420,17 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 				throw new RuntimeException("请先维护单据箱型");
 			}
 			if (bills != null) {
-				if ("MH".equals(bills.getBillType())) {
-					if (!bills.getHblno().equals(item.getHblno())) {
-						throw new RuntimeException("导入提单号与单据提单号不一致");
+				if ("SI".equals(bills.getBusinessType())){
+					if ("MH".equals(bills.getBillType()) && ObjectUtils.isNotNull(item.getHblno())) {
+						if (!bills.getHblno().equals(item.getHblno())) {
+							throw new RuntimeException("导入提单号与单据提单号不一致");
+						}
+					}
+				}else{
+					if ("MH".equals(bills.getBillType())) {
+						if (!bills.getHblno().equals(item.getHblno())) {
+							throw new RuntimeException("导入提单号与单据提单号不一致");
+						}
 					}
 				}
 			}
@@ -436,7 +445,7 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 					}
 				}
 			}
-			if (ObjectUtils.isNotNull(item.getSealNo())) {
+			if (ObjectUtils.isNotNull(item.getCntrNo())) {
 				if (cntrNo.isEmpty()) {
 					cntrNo.add(item.getCntrNo());
 				} else {
@@ -466,6 +475,7 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 			BoxAndLeadSealNoExcel item = excelList.get(i);
 			Containers containers = list.get(i);
 			containers.setCntrTypeCode(item.getCntrTypeCode());
+			BoxNumUtils.containerNumberVerification(item.getCntrNo());
 			containers.setCntrNo(item.getCntrNo().toUpperCase());
 			containers.setSealNo(item.getSealNo());
 			containers.setMeasurement(ObjectUtils.isNotNull(item.getMeasurement()) ? item.getMeasurement() : new BigDecimal("0.00"));
@@ -510,7 +520,7 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 		bills.setUpdateTime(new Date());
 		billsMapper.updateById(bills);
 		for (Containers containers : list) {
-			//BoxNumUtils.containerNumberVerification(containers.getCntrNo());
+			BoxNumUtils.containerNumberVerification(containers.getCntrNo());
 			String sealNo = ObjectUtils.isNotNull(containers.getSealNo()) ? containers.getSealNo().toUpperCase() : "";
 			// 普柜可以设定为,铅封不能重复,但框架 FR  FH这一类的,HMM要求录入NIL,MSK要求录入000000
 			boolean isNilSealNo = sealNo.isEmpty() || "NIL".equals(sealNo) || "000000".equals(sealNo);

+ 2 - 1
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/PreContainersServiceImpl.java

@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.los.Util.BoxNumUtils;
 import org.springblade.los.Util.CurrencyUtils;
 import org.springblade.los.Util.RegularUtils;
 import org.springblade.los.basic.cntr.entity.BCntrTypes;
@@ -329,7 +330,7 @@ public class PreContainersServiceImpl extends ServiceImpl<PreContainersMapper, P
 			.eq(Containers::getIsDeleted, 0));
 		if (!containersList.isEmpty()) {
 			for (Containers item : containersList) {
-				//BoxNumUtils.containerNumberVerification(item.getCntrNo());
+				BoxNumUtils.containerNumberVerification(item.getCntrNo());
 				item.setUpdateUser(AuthUtil.getUserId());
 				item.setUpdateUserName(AuthUtil.getUserName());
 				item.setUpdateTime(new Date());

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

@@ -7,6 +7,7 @@ import org.apache.poi.ss.usermodel.*;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.los.Util.BigDecimalUtils;
+import org.springblade.los.Util.BoxNumUtils;
 import org.springblade.los.basic.packages.entity.BPackages;
 import org.springblade.los.basic.packages.service.IBPackagesService;
 import org.springblade.los.basic.ports.entity.BPorts;
@@ -1540,7 +1541,7 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 				containers.setPackingUnit(bills.getPackingUnit());
 				if (ObjectUtils.isNotNull(getSheetCellValueAsString(sheet, r, cellIndex)) &&
 					ObjectUtils.isNotNull(getSheetCellValueAsString(sheet, r, cellIndex + 2))) {
-//				containerNumberVerification(getSheetCellValueAsString(sheet, r, cellIndex));
+					BoxNumUtils.containerNumberVerification(getSheetCellValueAsString(sheet, r, cellIndex));
 					containers.setCntrNo(getSheetCellValueAsString(sheet, r, cellIndex));
 					containers.setSealNo(getSheetCellValueAsString(sheet, r, cellIndex + 1));
 					containers.setCntrTypeCode(getSheetCellValueAsString(sheet, r, cellIndex + 2));
@@ -1565,12 +1566,12 @@ public class TemplateImportServiceImpl implements ITemplateImportService {
 			}
 			if (!containersList.isEmpty()) {
 				List<String> cntrTypeList = billsService.cntrTypeList(billId);
-				for (Containers item : containersList){
+				for (Containers item : containersList) {
 					if (!cntrTypeList.isEmpty()) {
 						if (!cntrTypeList.contains(item.getCntrTypeCode())) {
 							throw new RuntimeException("箱型" + item.getCntrTypeCode() + "与单据箱型不符");
 						}
-					}else{
+					} else {
 						throw new RuntimeException("请先维护单据箱型");
 					}
 				}

+ 11 - 11
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java

@@ -297,13 +297,13 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 						bCorps = corpsList.stream().filter(e -> e.getId().equals(items.getCorpId())).findFirst().orElse(null);
 					}
 					feeCenter.setCorpId(items.getCorpId());
-					feeCenter.setCorpCnName(bCorps == null ? items.getCorpCnName() : bCorps.getShortName());
+					feeCenter.setCorpCnName(bCorps == null ? items.getCorpCnName() : bCorps.getCorpName());
 					feeCenter.setCorpEnName(items.getCorpEnName());
 					feeCenter.setShortName(bCorps == null ? items.getCorpCnName() : bCorps.getShortName());
 				} else {
 					if ("国内直接客户,国外直接客户,国内同行及代理".contains(templateItems.getCorpType())) {
 						feeCenter.setCorpId(bills.getCorpId());
-						feeCenter.setCorpCnName(bills.getShortName());
+						feeCenter.setCorpCnName(bills.getCorpCnName());
 						feeCenter.setCorpEnName(bills.getCorpEnName());
 						feeCenter.setShortName(bills.getShortName());
 					} else if ("国外同行及代理".contains(templateItems.getCorpType())) {
@@ -324,7 +324,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 						}
 					} else if ("船公司".contains(templateItems.getCorpType())) {
 						feeCenter.setCorpId(bills.getCarrierId());
-						feeCenter.setCorpCnName(bills.getCarrierShortName());
+						feeCenter.setCorpCnName(bills.getCarrierCnName());
 						feeCenter.setCorpEnName(bills.getCarrierEnName());
 						feeCenter.setShortName(bills.getCarrierShortName());
 					} else if ("场站".contains(templateItems.getCorpType())) {
@@ -333,7 +333,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 							bCorps = corpsList.stream().filter(e -> e.getId().equals(bills.getCyId())).findFirst().orElse(null);
 						}
 						feeCenter.setCorpId(bills.getCyId());
-						feeCenter.setCorpCnName(bCorps == null ? bills.getCyCnName() : bCorps.getShortName());
+						feeCenter.setCorpCnName(bCorps == null ? bills.getCyCnName() : bCorps.getCorpName());
 						feeCenter.setCorpEnName(bills.getCyEnName());
 						feeCenter.setShortName(bCorps == null ? bills.getCyCnName() : bCorps.getShortName());
 					} else if ("船代".contains(templateItems.getCorpType())) {
@@ -358,7 +358,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 							bCorps = corpsList.stream().filter(e -> e.getId().equals(items.getCorpId())).findFirst().orElse(null);
 						}
 						feeCenter.setCorpId(items.getCorpId());
-						feeCenter.setCorpCnName(bCorps == null ? items.getCorpCnName() : bCorps.getShortName());
+						feeCenter.setCorpCnName(bCorps == null ? items.getCorpCnName() : bCorps.getCnName());
 						feeCenter.setCorpEnName(items.getCorpEnName());
 						feeCenter.setShortName(bCorps == null ? items.getCorpCnName() : bCorps.getShortName());
 					}
@@ -1226,7 +1226,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 						bCorps = corpsList.stream().filter(e -> e.getId().equals(items.getCorpId())).findFirst().orElse(null);
 					}
 					feeCenter.setCorpId(items.getCorpId());
-					feeCenter.setCorpCnName(bCorps == null ? items.getCorpCnName() : bCorps.getShortName());
+					feeCenter.setCorpCnName(bCorps == null ? items.getCorpCnName() : bCorps.getCnName());
 					feeCenter.setCorpEnName(items.getCorpEnName());
 					feeCenter.setShortName(bCorps == null ? items.getCorpCnName() : bCorps.getShortName());
 				} else {
@@ -1253,7 +1253,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 						}
 					} else if ("船公司".contains(templateItems.getCorpType())) {
 						feeCenter.setCorpId(bills.getCarrierId());
-						feeCenter.setCorpCnName(bills.getCarrierShortName());
+						feeCenter.setCorpCnName(bills.getCarrierCnName());
 						feeCenter.setCorpEnName(bills.getCarrierEnName());
 						feeCenter.setShortName(bills.getCarrierShortName());
 					} else if ("场站".contains(templateItems.getCorpType())) {
@@ -1262,7 +1262,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 							bCorps = corpsList.stream().filter(e -> e.getId().equals(bills.getCyId())).findFirst().orElse(null);
 						}
 						feeCenter.setCorpId(bills.getCyId());
-						feeCenter.setCorpCnName(bCorps == null ? bills.getCyCnName() : bCorps.getShortName());
+						feeCenter.setCorpCnName(bCorps == null ? bills.getCyCnName() : bCorps.getCnName());
 						feeCenter.setCorpEnName(bills.getCyEnName());
 						feeCenter.setShortName(bCorps == null ? bills.getCyCnName() : bCorps.getShortName());
 					} else if ("船代".contains(templateItems.getCorpType())) {
@@ -1287,7 +1287,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 							bCorps = corpsList.stream().filter(e -> e.getId().equals(items.getCorpId())).findFirst().orElse(null);
 						}
 						feeCenter.setCorpId(items.getCorpId());
-						feeCenter.setCorpCnName(bCorps == null ? items.getCorpCnName() : bCorps.getShortName());
+						feeCenter.setCorpCnName(bCorps == null ? items.getCorpCnName() : bCorps.getCnName());
 						feeCenter.setCorpEnName(items.getCorpEnName());
 						feeCenter.setShortName(bCorps == null ? items.getCorpCnName() : bCorps.getShortName());
 					}
@@ -2228,7 +2228,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 		feeCenter.setQuantity(new BigDecimal(quantity + ""));
 		if ("1".equals(type)) {
 			feeCenter.setCorpId(bills.getCarrierId());
-			feeCenter.setCorpCnName(bills.getCarrierShortName());
+			feeCenter.setCorpCnName(bills.getCarrierCnName());
 			feeCenter.setCorpEnName(bills.getCarrierEnName());
 			feeCenter.setShortName(bills.getCarrierShortName());
 			if (ObjectUtils.isNotNull(bills.getPotId())) {
@@ -2282,7 +2282,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 			}
 		} else if ("5".equals(type)) {
 			feeCenter.setCorpId(bills.getCarrierId());
-			feeCenter.setCorpCnName(bills.getCarrierShortName());
+			feeCenter.setCorpCnName(bills.getCarrierCnName());
 			feeCenter.setCorpEnName(bills.getCarrierEnName());
 			feeCenter.setShortName(bills.getCarrierShortName());
 			feeCenter.setPrice(items.getAdditionalFee());