Browse Source

1.文件山传地址修改
3.海运业务箱量利润统计修改
4.集装箱保存判断合同号是否重复修改
5.费用申请修改报表接口修改
6.用箱计划增加撤销接口
7.费用一键删除计算利润不对修改
8.客户,费用中心,财务模块增加代理公司字段

纪新园 6 months ago
parent
commit
9103b19a4e
30 changed files with 821 additions and 524 deletions
  1. 4 4
      blade-ops/blade-resource/src/main/java/org/springblade/resource/endpoint/OssEndpoint.java
  2. 2 2
      blade-ops/blade-resource/src/main/java/org/springblade/resource/feign/OssClient.java
  3. 18 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/corps/entity/BCorps.java
  4. 2 2
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/dto/ArchivesExcelEnter.java
  5. 18 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FeeCenter.java
  6. 18 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FinAccBills.java
  7. 18 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/invoices/entity/FinInvoices.java
  8. 18 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/invoices/entity/FinInvoicesItems.java
  9. 18 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/stl/entity/FinStlBills.java
  10. 18 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/stl/entity/FinStlBillsItems.java
  11. 5 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/BoxNumberProfitQ.java
  12. 3 1
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/view/entity/BoxNumberProfit.java
  13. 1 1
      blade-service/blade-client/src/main/java/org/springblade/client/equipment/service/impl/CorpEquipmentArchivesServiceImpl.java
  14. 1 1
      blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/TableMessageServiceImpl.java
  15. 2 2
      blade-service/blade-los/src/main/java/org/springblade/los/Util/BigDecimalUtils.java
  16. 499 498
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java
  17. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/box/controller/UseBoxPlanController.java
  18. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/IUseBoxPlanService.java
  19. 3 0
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/PutBoxServiceImpl.java
  20. 2 1
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/TradingBoxServiceImpl.java
  21. 11 0
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/UseBoxPlanServiceImpl.java
  22. 9 1
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
  23. 3 0
      blade-service/blade-los/src/main/java/org/springblade/los/check/service/impl/AuditProecessServiceImpl.java
  24. 1 1
      blade-service/blade-los/src/main/java/org/springblade/los/edi/api/EDISender.java
  25. 1 1
      blade-service/blade-los/src/main/java/org/springblade/los/edi/service/impl/EDISenderServiceImpl.java
  26. 6 1
      blade-service/blade-los/src/main/java/org/springblade/los/excel/BoxNumberProfitExcel.java
  27. 114 4
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java
  28. 3 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FinAccBillsServiceImpl.java
  29. 12 2
      blade-service/blade-los/src/main/java/org/springblade/los/view/mapper/BoxNumberProfitMapper.xml
  30. 2 2
      blade-service/blade-weChat/src/main/java/org/springblade/weChat/QRCode/WechatQRCodeController.java

+ 4 - 4
blade-ops/blade-resource/src/main/java/org/springblade/resource/endpoint/OssEndpoint.java

@@ -190,7 +190,7 @@ public class OssEndpoint {
 				replace = link.replace(status + ":9000/", status + "/file/");
 			}
 		} else {
-			replace = link.replace("http://113.44.105.66:9000/", "http://113.44.105.66/file/");
+			replace = link.replace("http://113.44.105.66:9000/", "http://e.win-fl.com/file/");
 		}
 		System.err.println("replace:" + replace);
 		bladeFile.setLink(replace);
@@ -242,7 +242,7 @@ public class OssEndpoint {
 				replace = link.replace(status + ":9000/", status + "/file/");
 			}
 		} else {
-			replace = link.replace("http://113.44.105.66:9000/", "http://113.44.105.66/file/");
+			replace = link.replace("http://113.44.105.66:9000/", "http://e.win-fl.com/file/");
 		}
 		System.err.println("replace:" + replace);
 		bladeFile.setLink(replace);
@@ -272,7 +272,7 @@ public class OssEndpoint {
 		if (ObjectUtils.isNotNull(status)) {
 			replace = link.replace(status + ":9000/", status + "/file/");
 		} else {
-			replace = link.replace("http://113.44.105.66:9000/", "https://trade.re-king.cn/file/");
+			replace = link.replace("http://113.44.105.66:9000/", "http://e.win-fl.com/file/");
 		}
 		System.out.println("replace======>" + replace);
 		bladeFile.setLink(replace);
@@ -295,7 +295,7 @@ public class OssEndpoint {
 		if (ObjectUtils.isNotNull(status)) {
 			replace = link.replace(status + ":9000/", status + "/file/");
 		} else {
-			replace = link.replace("http://113.44.105.66:9000/", "http://113.44.105.66/file/");
+			replace = link.replace("http://113.44.105.66:9000/", "http://e.win-fl.com/file/");
 		}
 		bladeFile.setLink(replace);
 		return R.data(bladeFile);

+ 2 - 2
blade-ops/blade-resource/src/main/java/org/springblade/resource/feign/OssClient.java

@@ -82,7 +82,7 @@ public class OssClient implements IOssClient {
 		}
 		String link = bladeFile.getLink();
 		System.err.println("link:" + link);
-		//String replace = link.replace("http://113.44.105.66:9000/", "https://trade.tubaosoft.com/file/");
+		//String replace = link.replace("http://e.win-fl.com:9000/", "https://trade.tubaosoft.com/file/");
 		String replace = "";
 		if (ObjectUtils.isNotNull(status) && "获取数据失败".equals(status)) {
 			if (ObjectUtils.isNotNull(replaceUrl)&& "获取数据失败".equals(replaceUrl)){
@@ -91,7 +91,7 @@ public class OssClient implements IOssClient {
 				replace = link.replace(status + ":9000/", status + "/file/");
 			}
 		} else {
-			replace = link.replace("http://113.44.105.66:9000/", "http://113.44.105.66/file/");
+			replace = link.replace("http://e.win-fl.com:9000/", "http://e.win-fl.com/file/");
 		}
 		System.err.println("replace:" + replace);
 		bladeFile.setLink(replace);

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

@@ -587,6 +587,24 @@ public class BCorps implements Serializable {
 	private String passwordFtp;
 
 	/**
+	 * 订舱代理 id
+	 */
+	@ApiModelProperty(value = "订舱代理 id")
+	private Long bookingAgentId;
+
+	/**
+	 * 订舱代理中文名称
+	 */
+	@ApiModelProperty(value = "订舱代理中文名称")
+	private String bookingAgentCnName;
+
+	/**
+	 * 订舱代理英文名称
+	 */
+	@ApiModelProperty(value = "订舱代理英文名称")
+	private String bookingAgentEnName;
+
+	/**
 	 * 客户更改授信等级记录
 	 */
 	@TableField(exist = false)

+ 2 - 2
blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/dto/ArchivesExcelEnter.java

@@ -52,13 +52,13 @@ public class ArchivesExcelEnter implements Serializable {
 	/**
 	 * 港口
 	 */
-	@ExcelProperty(value = "港口")
+	@ExcelProperty(value = "港口(必填)")
 	private String addressCname;
 
 	/**
 	 * 场站
 	 */
-	@ExcelProperty(value = "场站")
+	@ExcelProperty(value = "场站(必填)")
 	private String stationCname;
 	/**
 	 * 放箱号

+ 18 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FeeCenter.java

@@ -995,5 +995,23 @@ public class FeeCenter implements Serializable {
 	@ApiModelProperty(value = "结算单位类别")
 	private String corpType;
 
+	/**
+	 * 订舱代理 id
+	 */
+	@ApiModelProperty(value = "订舱代理 id")
+	private Long bookingAgentId;
+
+	/**
+	 * 订舱代理中文名称
+	 */
+	@ApiModelProperty(value = "订舱代理中文名称")
+	private String bookingAgentCnName;
+
+	/**
+	 * 订舱代理英文名称
+	 */
+	@ApiModelProperty(value = "订舱代理英文名称")
+	private String bookingAgentEnName;
+
 }
 

+ 18 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FinAccBills.java

@@ -779,5 +779,23 @@ public class FinAccBills implements Serializable {
 	@ApiModelProperty(value = "集装箱箱数英文")
 	private String quantityCntrDescr;
 
+	/**
+	 * 订舱代理 id
+	 */
+	@ApiModelProperty(value = "订舱代理 id")
+	private Long bookingAgentId;
+
+	/**
+	 * 订舱代理中文名称
+	 */
+	@ApiModelProperty(value = "订舱代理中文名称")
+	private String bookingAgentCnName;
+
+	/**
+	 * 订舱代理英文名称
+	 */
+	@ApiModelProperty(value = "订舱代理英文名称")
+	private String bookingAgentEnName;
+
 
 }

+ 18 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/invoices/entity/FinInvoices.java

@@ -675,6 +675,24 @@ public class FinInvoices implements Serializable {
 	private String dc;
 
 	/**
+	 * 订舱代理 id
+	 */
+	@ApiModelProperty(value = "订舱代理 id")
+	private Long bookingAgentId;
+
+	/**
+	 * 订舱代理中文名称
+	 */
+	@ApiModelProperty(value = "订舱代理中文名称")
+	private String bookingAgentCnName;
+
+	/**
+	 * 订舱代理英文名称
+	 */
+	@ApiModelProperty(value = "订舱代理英文名称")
+	private String bookingAgentEnName;
+
+	/**
 	 * 业务员
 	 */
 	@TableField(exist = false)

+ 18 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/invoices/entity/FinInvoicesItems.java

@@ -595,6 +595,24 @@ public class FinInvoicesItems implements Serializable {
 	@ApiModelProperty(value = "已结算金额")
 	private BigDecimal stlTtlAmount;
 
+	/**
+	 * 订舱代理 id
+	 */
+	@ApiModelProperty(value = "订舱代理 id")
+	private Long bookingAgentId;
+
+	/**
+	 * 订舱代理中文名称
+	 */
+	@ApiModelProperty(value = "订舱代理中文名称")
+	private String bookingAgentCnName;
+
+	/**
+	 * 订舱代理英文名称
+	 */
+	@ApiModelProperty(value = "订舱代理英文名称")
+	private String bookingAgentEnName;
+
 
 
 }

+ 18 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/stl/entity/FinStlBills.java

@@ -536,6 +536,24 @@ public class FinStlBills implements Serializable {
 	private Date estimatedTime;
 
 	/**
+	 * 订舱代理 id
+	 */
+	@ApiModelProperty(value = "订舱代理 id")
+	private Long bookingAgentId;
+
+	/**
+	 * 订舱代理中文名称
+	 */
+	@ApiModelProperty(value = "订舱代理中文名称")
+	private String bookingAgentCnName;
+
+	/**
+	 * 订舱代理英文名称
+	 */
+	@ApiModelProperty(value = "订舱代理英文名称")
+	private String bookingAgentEnName;
+
+	/**
 	 * 预收时间
 	 */
 	@TableField(exist = false)

+ 18 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/stl/entity/FinStlBillsItems.java

@@ -680,6 +680,24 @@ public class FinStlBillsItems implements Serializable {
 	@ApiModelProperty(value = "扣款时间")
 	private Date deductionTime;
 
+	/**
+	 * 订舱代理 id
+	 */
+	@ApiModelProperty(value = "订舱代理 id")
+	private Long bookingAgentId;
+
+	/**
+	 * 订舱代理中文名称
+	 */
+	@ApiModelProperty(value = "订舱代理中文名称")
+	private String bookingAgentCnName;
+
+	/**
+	 * 订舱代理英文名称
+	 */
+	@ApiModelProperty(value = "订舱代理英文名称")
+	private String bookingAgentEnName;
+
 
 	/**
 	 * 已申请金额

+ 5 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/BoxNumberProfitQ.java

@@ -69,5 +69,10 @@ public class BoxNumberProfitQ {
 	 */
 	private String selecTypeId;
 
+	/**
+	 * 单据类型
+	 */
+	private String billType;
+
 
 }

+ 3 - 1
blade-service-api/blade-los-api/src/main/java/org/springblade/los/view/entity/BoxNumberProfit.java

@@ -52,6 +52,7 @@ public class BoxNumberProfit implements Serializable {
 	private String carrierCnName;
 	private Long vesselId;
 	private String vesselCnName;
+	private String vesselEnName;
 	private String voyageNo;
 	private Long podId;
 	private String podCnName;
@@ -88,7 +89,7 @@ public class BoxNumberProfit implements Serializable {
 	private Long teamId;
 	private String teamName;
 	private Long operatorId;
-	private Long operatorName;
+	private String operatorName;
 	private String operatorDept;
 	private String srcDeptId;
 	private Long createUser;
@@ -100,6 +101,7 @@ public class BoxNumberProfit implements Serializable {
 	 * 客服
 	 */
 	private String customerServiceName;
+	private String billType;
 
 
 }

+ 1 - 1
blade-service/blade-client/src/main/java/org/springblade/client/equipment/service/impl/CorpEquipmentArchivesServiceImpl.java

@@ -187,7 +187,7 @@ public class CorpEquipmentArchivesServiceImpl extends ServiceImpl<CorpEquipmentA
 						//生成二维码
 						String qRCode = QRCodeTest.generateQRCode(qRCodeFile, item.getId() + "");
 						//替换地址
-						qRCode = qRCode.replace("/home/minio", "http://113.44.105.66");
+						qRCode = qRCode.replace("/home/minio", "http://e.win-fl.com");
 						item.setUrl(qRCode);
 					} catch (IOException e) {
 						throw new SecurityException("生成二维码失败");

+ 1 - 1
blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/TableMessageServiceImpl.java

@@ -76,7 +76,7 @@ public class TableMessageServiceImpl extends ServiceImpl<TableMessageMapper, Tab
 				BladeFile bladeFile = minioTemplate.putFile(bucketName, fileName, multipartFile.getInputStream());
 				if (StringUtils.isNotBlank(bladeFile.getLink())) {
 					String link = bladeFile.getLink();
-					String replace = link.replace("http://113.44.105.66:9000/", "http://trade.tubaosoft.com/file/");
+					String replace = link.replace("http://e.win-fl.com:9000/", "http://trade.tubaosoft.com/file/");
 					bladeFile.setLink(replace);
 					tableMessage.setFileUrl(bladeFile.getLink());
 				} else {

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

@@ -38,12 +38,12 @@ public class BigDecimalUtils {
 		StringBuilder result = new StringBuilder();
 
 		if ((number / 1000) > 0) {
-			result.append(convert(number / 1000)).append(" THOUSAND ");
+			result.append(convert(number / 1000)).append(" THOUSAND AND ");
 			number %= 1000;
 		}
 
 		if ((number / 100) > 0) {
-			result.append(convert(number / 100)).append(" HUNDRED ");
+			result.append(convert(number / 100)).append(" HUNDRED AND ");
 			number %= 100;
 		}
 

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

@@ -192,546 +192,547 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 		} else {
 			throw new RuntimeException("获取报表表头数据失败");
 		}
-		if (MagicValues.HYCK.equals(type) || MagicValues.HYJK.equals(type)) {
-			return this.getReportDataHY(billId, reportCode, groupCode, corpIds, itemIds, type, curCode);
-		} 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)) {
-				FinStlBills finStlBills = finStlBillsService.getById(billId);
-				if (finStlBills != null) {
-					String exrateType = currencyUtils.standardCurrency(finStlBills.getBranchId());
-					finStlBills.setExrateType(exrateType);
-					finStlBills.setBankAccountBank(finStlBills.getBankAccountBank() + "/" + finStlBills.getBankAccountNo());
-					if (agreementPriceService.count(new LambdaQueryWrapper<AgreementPrice>()
-						.eq(AgreementPrice::getTenantId, AuthUtil.getTenantId())
-						.eq(AgreementPrice::getIsDeleted, 0)
-						.eq(AgreementPrice::getStatus, 0)
-						.eq(AgreementPrice::getCorpId, finStlBills.getCorpId())) > 0) {
-						finStlBills.setAgreement("是");
-					} else {
-						finStlBills.setAgreement("否");
-					}
-					BigDecimal amountC = new BigDecimal(MagicValues.ZERO);
-					BigDecimal amountC1 = new BigDecimal(MagicValues.ZERO);
-					BigDecimal amountD = new BigDecimal(MagicValues.ZERO);
-					BigDecimal amountD1 = new BigDecimal(MagicValues.ZERO);
-					List<FeeCenter> feeCenterListC = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
-						.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
-						.eq(FeeCenter::getIsDeleted, 0)
-						.eq(FeeCenter::getDc, MagicValues.C)
-						.eq(FeeCenter::getAccStatus, MagicValues.ONE)
-						.apply("amount != stl_ttl_amount")
-						.eq(FeeCenter::getCorpId, finStlBills.getCorpId()));
-					if (!feeCenterListC.isEmpty()) {
-						amountC = feeCenterListC.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-						amountC1 = feeCenterListC.stream().map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-					}
-					List<FeeCenter> feeCenterListD = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
-						.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
-						.eq(FeeCenter::getIsDeleted, 0)
-						.eq(FeeCenter::getDc, MagicValues.D)
-						.eq(FeeCenter::getAccStatus, MagicValues.ONE)
-						.apply("amount != stl_ttl_amount")
-						.eq(FeeCenter::getCorpId, finStlBills.getCorpId()));
-					if (!feeCenterListD.isEmpty()) {
-						amountD = feeCenterListD.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-						amountD1 = feeCenterListD.stream().map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-					}
-					BigDecimal amount = amountD.subtract(amountD1);
-					BigDecimal amount1 = amountC.subtract(amountC1);
-					if (amount.subtract(amount1).compareTo(new BigDecimal("0.00")) > 0) {
-						finStlBills.setAmountOwed("是");
-					} else {
-						finStlBills.setAmountOwed("否");
-					}
+		if ((MagicValues.COST_APPLY_MODIFY.equals(groupCode) || MagicValues.COST_APPLY_DELETE.equals(groupCode))) {
+			FeeCenterUpdateRecord feeCenterUpdateRecord = feeCenterUpdateRecordService.getById(billId);
+			if (feeCenterUpdateRecord != null) {
+				feeCenterUpdateRecord.setDept(dept);
+				map.put(MagicValues.DATA, feeCenterUpdateRecord);
+			} else {
+				map.put(MagicValues.DATA, null);
+			}
+		}else{
+			if (MagicValues.HYCK.equals(type) || MagicValues.HYJK.equals(type)) {
+				return this.getReportDataHY(billId, reportCode, groupCode, corpIds, itemIds, type, curCode);
+			} 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)) {
+					FinStlBills finStlBills = finStlBillsService.getById(billId);
+					if (finStlBills != null) {
+						String exrateType = currencyUtils.standardCurrency(finStlBills.getBranchId());
+						finStlBills.setExrateType(exrateType);
+						finStlBills.setBankAccountBank(finStlBills.getBankAccountBank() + "/" + finStlBills.getBankAccountNo());
+						if (agreementPriceService.count(new LambdaQueryWrapper<AgreementPrice>()
+							.eq(AgreementPrice::getTenantId, AuthUtil.getTenantId())
+							.eq(AgreementPrice::getIsDeleted, 0)
+							.eq(AgreementPrice::getStatus, 0)
+							.eq(AgreementPrice::getCorpId, finStlBills.getCorpId())) > 0) {
+							finStlBills.setAgreement("是");
+						} else {
+							finStlBills.setAgreement("否");
+						}
+						BigDecimal amountC = new BigDecimal(MagicValues.ZERO);
+						BigDecimal amountC1 = new BigDecimal(MagicValues.ZERO);
+						BigDecimal amountD = new BigDecimal(MagicValues.ZERO);
+						BigDecimal amountD1 = new BigDecimal(MagicValues.ZERO);
+						List<FeeCenter> feeCenterListC = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+							.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+							.eq(FeeCenter::getIsDeleted, 0)
+							.eq(FeeCenter::getDc, MagicValues.C)
+							.eq(FeeCenter::getAccStatus, MagicValues.ONE)
+							.apply("amount != stl_ttl_amount")
+							.eq(FeeCenter::getCorpId, finStlBills.getCorpId()));
+						if (!feeCenterListC.isEmpty()) {
+							amountC = feeCenterListC.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+							amountC1 = feeCenterListC.stream().map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						}
+						List<FeeCenter> feeCenterListD = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+							.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+							.eq(FeeCenter::getIsDeleted, 0)
+							.eq(FeeCenter::getDc, MagicValues.D)
+							.eq(FeeCenter::getAccStatus, MagicValues.ONE)
+							.apply("amount != stl_ttl_amount")
+							.eq(FeeCenter::getCorpId, finStlBills.getCorpId()));
+						if (!feeCenterListD.isEmpty()) {
+							amountD = feeCenterListD.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+							amountD1 = feeCenterListD.stream().map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						}
+						BigDecimal amount = amountD.subtract(amountD1);
+						BigDecimal amount1 = amountC.subtract(amountC1);
+						if (amount.subtract(amount1).compareTo(new BigDecimal("0.00")) > 0) {
+							finStlBills.setAmountOwed("是");
+						} else {
+							finStlBills.setAmountOwed("否");
+						}
 
-					List<FinStlBillsItemsReports> finStlBillsItemsReportsList = new ArrayList<>();
-					LambdaQueryWrapper<FinStlBillsItems> lambdaQueryWrapper = new LambdaQueryWrapper<FinStlBillsItems>()
-						.eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
-						.eq(FinStlBillsItems::getIsDeleted, 0)
-						.eq(FinStlBillsItems::getPid, finStlBills.getId());
-					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 + "')"));
+						List<FinStlBillsItemsReports> finStlBillsItemsReportsList = new ArrayList<>();
+						LambdaQueryWrapper<FinStlBillsItems> lambdaQueryWrapper = new LambdaQueryWrapper<FinStlBillsItems>()
+							.eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
+							.eq(FinStlBillsItems::getIsDeleted, 0)
+							.eq(FinStlBillsItems::getPid, finStlBills.getId());
+						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 (!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());
+								}
+								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());
+								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()) && 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));
 								}
-								finStlBills.setBillCorpName(billCorpName.toString());
-								finStlBills.setBillCorpNameAgreement(billCorpNameAgreement.toString());
+								finStlBillsItemsReportsList.add(finStlBillsItemsReports);
 							}
-							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());
-							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()) && 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));
+						finStlBills.setAmountSubLoc(finStlBills.getAmountSubLoc().abs());
+						finStlBills.setFinStlBillsItemsReportsList(finStlBillsItemsReportsList);
+						finStlBills.setDept(dept);
+						map.put(MagicValues.DATA, finStlBills);
+					} else {
+						map.put(MagicValues.DATA, null);
+					}
+				} else if ((MagicValues.SETTLEMENT_CENTER.equals(reportCode) || MagicValues.RECONCILIATION_CENTER.equals(reportCode)
+					|| MagicValues.PAID_APPLICATION.equals(reportCode))
+					&& MagicValues.CHARGE_PAID_OFFSET.equals(groupCode)) {
+					FinStlBills finStlBills = finStlBillsService.getById(billId);
+					if (finStlBills != null) {
+						String exrateType = currencyUtils.standardCurrency(finStlBills.getBranchId());
+						finStlBills.setExrateType(exrateType);
+						if (ObjectUtils.isNotNull(finStlBills.getCorpId())) {
+							BCorps bCorps = bCorpsService.getById(finStlBills.getCorpId());
+							if (bCorps != null) {
+								finStlBills.setAttnName(bCorps.getAttnName());
+								finStlBills.setAttnTel(bCorps.getAttnTel());
 							}
-							finStlBillsItemsReportsList.add(finStlBillsItemsReports);
 						}
-					}
-					finStlBills.setAmountSubLoc(finStlBills.getAmountSubLoc().abs());
-					finStlBills.setFinStlBillsItemsReportsList(finStlBillsItemsReportsList);
-					finStlBills.setDept(dept);
-					map.put(MagicValues.DATA, finStlBills);
-				} else {
-					map.put(MagicValues.DATA, null);
-				}
-			} else if ((MagicValues.SETTLEMENT_CENTER.equals(reportCode) || MagicValues.RECONCILIATION_CENTER.equals(reportCode)
-				|| MagicValues.PAID_APPLICATION.equals(reportCode))
-				&& MagicValues.CHARGE_PAID_OFFSET.equals(groupCode)) {
-				FinStlBills finStlBills = finStlBillsService.getById(billId);
-				if (finStlBills != null) {
-					String exrateType = currencyUtils.standardCurrency(finStlBills.getBranchId());
-					finStlBills.setExrateType(exrateType);
-					if (ObjectUtils.isNotNull(finStlBills.getCorpId())) {
-						BCorps bCorps = bCorpsService.getById(finStlBills.getCorpId());
-						if (bCorps != null) {
-							finStlBills.setAttnName(bCorps.getAttnName());
-							finStlBills.setAttnTel(bCorps.getAttnTel());
+						List<FinStlBillsItemsReports> finStlBillsItemsReportsList = new ArrayList<>();
+						LambdaQueryWrapper<FinStlBillsItems> lambdaQueryWrapper = new LambdaQueryWrapper<FinStlBillsItems>()
+							.eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
+							.eq(FinStlBillsItems::getIsDeleted, 0)
+							.eq(FinStlBillsItems::getPid, finStlBills.getId());
+						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<>();
+							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 + "')"));
+							}
+							for (FinStlBillsItems item : finStlBillsItems) {
+								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());
+								if (!billsList.isEmpty()) {
+									String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
+									finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
+								}
+								if (MagicValues.D.equals(item.getDc())) {
+									if (exrateType.equals(item.getCurCode())) {
+										finStlBillsItemsReports.setAmount(item.getCurrentStlAmount());
+									} else {
+										finStlBillsItemsReports.setAmountUsd(item.getCurrentStlAmount());
+									}
+								} else {
+									if (exrateType.equals(item.getCurCode())) {
+										finStlBillsItemsReports.setAmountC(item.getCurrentStlAmount());
+									} else {
+										finStlBillsItemsReports.setAmountUsdC(item.getCurrentStlAmount());
+									}
+								}
+								finStlBillsItemsReportsList.add(finStlBillsItemsReports);
+							}
 						}
+						finStlBills.setFinStlBillsItemsReportsList(finStlBillsItemsReportsList);
+						finStlBills.setDept(dept);
+						map.put(MagicValues.DATA, finStlBills);
+					} else {
+						map.put(MagicValues.DATA, null);
 					}
-					List<FinStlBillsItemsReports> finStlBillsItemsReportsList = new ArrayList<>();
-					LambdaQueryWrapper<FinStlBillsItems> lambdaQueryWrapper = new LambdaQueryWrapper<FinStlBillsItems>()
-						.eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
-						.eq(FinStlBillsItems::getIsDeleted, 0)
-						.eq(FinStlBillsItems::getPid, finStlBills.getId());
-					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<>();
-						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 + "')"));
+				} else if ((MagicValues.SETTLEMENT_CENTER.equals(reportCode) || MagicValues.RECONCILIATION_CENTER.equals(reportCode)
+					|| MagicValues.PAID_APPLICATION.equals(reportCode))
+					&& (MagicValues.CHARGE_SETTLEMENT.equals(groupCode) || MagicValues.CHARGE.equals(groupCode))) {
+					FinStlBills finStlBills = finStlBillsService.getById(billId);
+					if (finStlBills != null) {
+						String exrateType = currencyUtils.standardCurrency(finStlBills.getBranchId());
+						finStlBills.setExrateType(exrateType);
+						if (ObjectUtils.isNotNull(finStlBills.getCorpId())) {
+							BCorps bCorps = bCorpsService.getById(finStlBills.getCorpId());
+							if (bCorps != null) {
+								finStlBills.setAttnName(bCorps.getAttnName());
+								finStlBills.setAttnTel(bCorps.getAttnTel());
+							}
 						}
-						for (FinStlBillsItems item : finStlBillsItems) {
-							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());
-							if (!billsList.isEmpty()) {
-								String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
-								finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
-							}
-							if (MagicValues.D.equals(item.getDc())) {
-								if (exrateType.equals(item.getCurCode())) {
-									finStlBillsItemsReports.setAmount(item.getCurrentStlAmount());
-								} else {
-									finStlBillsItemsReports.setAmountUsd(item.getCurrentStlAmount());
-								}
-							} else {
-								if (exrateType.equals(item.getCurCode())) {
-									finStlBillsItemsReports.setAmountC(item.getCurrentStlAmount());
+						List<FinStlBillsItemsReports> finStlBillsItemsReportsList = new ArrayList<>();
+						LambdaQueryWrapper<FinStlBillsItems> lambdaQueryWrapper = new LambdaQueryWrapper<FinStlBillsItems>()
+							.eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
+							.eq(FinStlBillsItems::getIsDeleted, 0)
+							.eq(FinStlBillsItems::getPid, finStlBills.getId())
+							.eq(FinStlBillsItems::getDc, "D")
+							.orderByDesc(FinStlBillsItems::getVesselCnName);
+						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<>();
+							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 + "')"));
+							}
+							for (FinStlBillsItems item : finStlBillsItems) {
+								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());
+								if (!billsList.isEmpty()) {
+									String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
+									finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
+								}
+								if (MagicValues.D.equals(item.getDc())) {
+									if (exrateType.equals(item.getCurCode())) {
+										finStlBillsItemsReports.setAmount(item.getCurrentStlAmount());
+									} else {
+										finStlBillsItemsReports.setAmountUsd(item.getCurrentStlAmount());
+									}
 								} else {
-									finStlBillsItemsReports.setAmountUsdC(item.getCurrentStlAmount());
+									if (exrateType.equals(item.getCurCode())) {
+										finStlBillsItemsReports.setAmountC(item.getCurrentStlAmount());
+									} else {
+										finStlBillsItemsReports.setAmountUsdC(item.getCurrentStlAmount());
+									}
 								}
+								finStlBillsItemsReportsList.add(finStlBillsItemsReports);
 							}
-							finStlBillsItemsReportsList.add(finStlBillsItemsReports);
-						}
-					}
-					finStlBills.setFinStlBillsItemsReportsList(finStlBillsItemsReportsList);
-					finStlBills.setDept(dept);
-					map.put(MagicValues.DATA, finStlBills);
-				} else {
-					map.put(MagicValues.DATA, null);
-				}
-			} else if ((MagicValues.SETTLEMENT_CENTER.equals(reportCode) || MagicValues.RECONCILIATION_CENTER.equals(reportCode)
-				|| MagicValues.PAID_APPLICATION.equals(reportCode))
-				&& (MagicValues.CHARGE_SETTLEMENT.equals(groupCode) || MagicValues.CHARGE.equals(groupCode))) {
-				FinStlBills finStlBills = finStlBillsService.getById(billId);
-				if (finStlBills != null) {
-					String exrateType = currencyUtils.standardCurrency(finStlBills.getBranchId());
-					finStlBills.setExrateType(exrateType);
-					if (ObjectUtils.isNotNull(finStlBills.getCorpId())) {
-						BCorps bCorps = bCorpsService.getById(finStlBills.getCorpId());
-						if (bCorps != null) {
-							finStlBills.setAttnName(bCorps.getAttnName());
-							finStlBills.setAttnTel(bCorps.getAttnTel());
 						}
+						finStlBills.setFinStlBillsItemsReportsList(finStlBillsItemsReportsList);
+						finStlBills.setDept(dept);
+						map.put(MagicValues.DATA, finStlBills);
+					} else {
+						map.put(MagicValues.DATA, null);
 					}
-					List<FinStlBillsItemsReports> finStlBillsItemsReportsList = new ArrayList<>();
-					LambdaQueryWrapper<FinStlBillsItems> lambdaQueryWrapper = new LambdaQueryWrapper<FinStlBillsItems>()
-						.eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
-						.eq(FinStlBillsItems::getIsDeleted, 0)
-						.eq(FinStlBillsItems::getPid, finStlBills.getId())
-						.eq(FinStlBillsItems::getDc, "D")
-						.orderByDesc(FinStlBillsItems::getVesselCnName);
-					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<>();
-						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 + "')"));
+				} else if ((MagicValues.SETTLEMENT_CENTER.equals(reportCode) || MagicValues.RECONCILIATION_CENTER.equals(reportCode) || MagicValues.PAID_APPLICATION.equals(reportCode))
+					&& (MagicValues.PAID_SETTLEMENT.equals(groupCode) || MagicValues.PAID.equals(groupCode))) {
+					FinStlBills finStlBills = finStlBillsService.getById(billId);
+					if (finStlBills != null) {
+						String exrateType = currencyUtils.standardCurrency(finStlBills.getBranchId());
+						finStlBills.setExrateType(exrateType);
+						if (ObjectUtils.isNotNull(finStlBills.getCorpId())) {
+							BCorps bCorps = bCorpsService.getById(finStlBills.getCorpId());
+							if (bCorps != null) {
+								finStlBills.setAttnName(bCorps.getAttnName());
+								finStlBills.setAttnTel(bCorps.getAttnTel());
+							}
 						}
-						for (FinStlBillsItems item : finStlBillsItems) {
-							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());
-							if (!billsList.isEmpty()) {
-								String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
-								finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
-							}
-							if (MagicValues.D.equals(item.getDc())) {
-								if (exrateType.equals(item.getCurCode())) {
-									finStlBillsItemsReports.setAmount(item.getCurrentStlAmount());
-								} else {
-									finStlBillsItemsReports.setAmountUsd(item.getCurrentStlAmount());
-								}
-							} else {
-								if (exrateType.equals(item.getCurCode())) {
-									finStlBillsItemsReports.setAmountC(item.getCurrentStlAmount());
+						List<FinStlBillsItemsReports> finStlBillsItemsReportsList = new ArrayList<>();
+						LambdaQueryWrapper<FinStlBillsItems> lambdaQueryWrapper = new LambdaQueryWrapper<FinStlBillsItems>()
+							.eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
+							.eq(FinStlBillsItems::getIsDeleted, 0)
+							.eq(FinStlBillsItems::getPid, finStlBills.getId())
+							.eq(FinStlBillsItems::getDc, "C")
+							.orderByDesc(FinStlBillsItems::getVesselCnName);
+						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<>();
+							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 + "')"));
+							}
+							for (FinStlBillsItems item : finStlBillsItems) {
+								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());
+								if (!billsList.isEmpty()) {
+									String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
+									finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
+								}
+								if (MagicValues.D.equals(item.getDc())) {
+									if (exrateType.equals(item.getCurCode())) {
+										finStlBillsItemsReports.setAmount(item.getCurrentStlAmount());
+									} else {
+										finStlBillsItemsReports.setAmountUsd(item.getCurrentStlAmount());
+									}
 								} else {
-									finStlBillsItemsReports.setAmountUsdC(item.getCurrentStlAmount());
+									if (exrateType.equals(item.getCurCode())) {
+										finStlBillsItemsReports.setAmountC(item.getCurrentStlAmount());
+									} else {
+										finStlBillsItemsReports.setAmountUsdC(item.getCurrentStlAmount());
+									}
 								}
+								finStlBillsItemsReportsList.add(finStlBillsItemsReports);
 							}
-							finStlBillsItemsReportsList.add(finStlBillsItemsReports);
 						}
+						finStlBills.setFinStlBillsItemsReportsList(finStlBillsItemsReportsList);
+						finStlBills.setDept(dept);
+						map.put(MagicValues.DATA, finStlBills);
+					} else {
+						map.put(MagicValues.DATA, null);
 					}
-					finStlBills.setFinStlBillsItemsReportsList(finStlBillsItemsReportsList);
-					finStlBills.setDept(dept);
-					map.put(MagicValues.DATA, finStlBills);
-				} else {
-					map.put(MagicValues.DATA, null);
-				}
-			} else if ((MagicValues.SETTLEMENT_CENTER.equals(reportCode) || MagicValues.RECONCILIATION_CENTER.equals(reportCode) || MagicValues.PAID_APPLICATION.equals(reportCode))
-				&& (MagicValues.PAID_SETTLEMENT.equals(groupCode) || MagicValues.PAID.equals(groupCode))) {
-				FinStlBills finStlBills = finStlBillsService.getById(billId);
-				if (finStlBills != null) {
-					String exrateType = currencyUtils.standardCurrency(finStlBills.getBranchId());
-					finStlBills.setExrateType(exrateType);
-					if (ObjectUtils.isNotNull(finStlBills.getCorpId())) {
-						BCorps bCorps = bCorpsService.getById(finStlBills.getCorpId());
-						if (bCorps != null) {
-							finStlBills.setAttnName(bCorps.getAttnName());
-							finStlBills.setAttnTel(bCorps.getAttnTel());
+				} else if (MagicValues.INVOICE_APPLICATION.equals(reportCode) && MagicValues.CHARGE_PAID_OFFSET.equals(groupCode)) {
+					FinInvoices finStlBills = finInvoicesService.getById(billId);
+					if (finStlBills != null) {
+						String exrateType = currencyUtils.standardCurrency(finStlBills.getBranchId());
+						finStlBills.setExrateType(exrateType);
+						if (ObjectUtils.isNotNull(finStlBills.getCorpId())) {
+							BCorps bCorps = bCorpsService.getById(finStlBills.getCorpId());
+							if (bCorps != null) {
+								finStlBills.setAttnName(bCorps.getAttnName());
+								finStlBills.setAttnTel(bCorps.getAttnTel());
+							}
 						}
-					}
-					List<FinStlBillsItemsReports> finStlBillsItemsReportsList = new ArrayList<>();
-					LambdaQueryWrapper<FinStlBillsItems> lambdaQueryWrapper = new LambdaQueryWrapper<FinStlBillsItems>()
-						.eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
-						.eq(FinStlBillsItems::getIsDeleted, 0)
-						.eq(FinStlBillsItems::getPid, finStlBills.getId())
-						.eq(FinStlBillsItems::getDc, "C")
-						.orderByDesc(FinStlBillsItems::getVesselCnName);
-					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<>();
-						if (!reducelList.isEmpty()) {
-							String mblno = reducelList.stream().map(FinStlBillsItems::getMblno).collect(Collectors.joining(","));
+						List<FinStlBillsItemsReports> finStlBillsItemsReportsList = new ArrayList<>();
+						LambdaQueryWrapper<FinInvoicesItems> lambdaQueryWrapper = new LambdaQueryWrapper<FinInvoicesItems>()
+							.eq(FinInvoicesItems::getTenantId, AuthUtil.getTenantId())
+							.eq(FinInvoicesItems::getIsDeleted, 0)
+							.eq(FinInvoicesItems::getPid, finStlBills.getId());
+						List<FinInvoicesItems> finStlBillsItems = finInvoicesItemsService.list(lambdaQueryWrapper);
+						if (!finStlBillsItems.isEmpty()) {
+							finStlBills.setSalesman(finStlBillsItems.get(0).getSrcCnName());
+							List<Bills> billsList;
+							String mblno = finStlBillsItems.stream().map(FinInvoicesItems::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 + "')"));
-						}
-						for (FinStlBillsItems item : finStlBillsItems) {
-							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());
-							if (!billsList.isEmpty()) {
-								String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
-								finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
-							}
-							if (MagicValues.D.equals(item.getDc())) {
-								if (exrateType.equals(item.getCurCode())) {
-									finStlBillsItemsReports.setAmount(item.getCurrentStlAmount());
-								} else {
-									finStlBillsItemsReports.setAmountUsd(item.getCurrentStlAmount());
-								}
-							} else {
-								if (exrateType.equals(item.getCurCode())) {
-									finStlBillsItemsReports.setAmountC(item.getCurrentStlAmount());
+							for (FinInvoicesItems item : finStlBillsItems) {
+								FinStlBillsItemsReports finStlBillsItemsReports = new FinStlBillsItemsReports();
+								if (!billsList.isEmpty()) {
+									String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
+									finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
+								}
+								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());
+								if (MagicValues.D.equals(item.getDc())) {
+									if (exrateType.equals(item.getCurCode())) {
+										finStlBillsItemsReports.setAmount(item.getCurrentAmount());
+									} else {
+										finStlBillsItemsReports.setAmountUsd(item.getCurrentAmount());
+									}
 								} else {
-									finStlBillsItemsReports.setAmountUsdC(item.getCurrentStlAmount());
+									if (exrateType.equals(item.getCurCode())) {
+										finStlBillsItemsReports.setAmountC(item.getCurrentAmount());
+									} else {
+										finStlBillsItemsReports.setAmountUsdC(item.getCurrentAmount());
+									}
 								}
+								finStlBillsItemsReportsList.add(finStlBillsItemsReports);
 							}
-							finStlBillsItemsReportsList.add(finStlBillsItemsReports);
-						}
-					}
-					finStlBills.setFinStlBillsItemsReportsList(finStlBillsItemsReportsList);
-					finStlBills.setDept(dept);
-					map.put(MagicValues.DATA, finStlBills);
-				} else {
-					map.put(MagicValues.DATA, null);
-				}
-			} else if (MagicValues.INVOICE_APPLICATION.equals(reportCode) && MagicValues.CHARGE_PAID_OFFSET.equals(groupCode)) {
-				FinInvoices finStlBills = finInvoicesService.getById(billId);
-				if (finStlBills != null) {
-					String exrateType = currencyUtils.standardCurrency(finStlBills.getBranchId());
-					finStlBills.setExrateType(exrateType);
-					if (ObjectUtils.isNotNull(finStlBills.getCorpId())) {
-						BCorps bCorps = bCorpsService.getById(finStlBills.getCorpId());
-						if (bCorps != null) {
-							finStlBills.setAttnName(bCorps.getAttnName());
-							finStlBills.setAttnTel(bCorps.getAttnTel());
 						}
+						finStlBills.setAmountD(finStlBillsItemsReportsList.stream().map(FinStlBillsItemsReports::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+						finStlBills.setAmountDUsd(finStlBillsItemsReportsList.stream().map(FinStlBillsItemsReports::getAmountUsd).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+						finStlBills.setAmountC(finStlBillsItemsReportsList.stream().map(FinStlBillsItemsReports::getAmountC).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+						finStlBills.setAmountCUsd(finStlBillsItemsReportsList.stream().map(FinStlBillsItemsReports::getAmountUsdC).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+						finStlBills.setFinStlBillsItemsReportsList(finStlBillsItemsReportsList);
+						finStlBills.setDept(dept);
+						map.put(MagicValues.DATA, finStlBills);
+					} else {
+						map.put(MagicValues.DATA, null);
 					}
-					List<FinStlBillsItemsReports> finStlBillsItemsReportsList = new ArrayList<>();
-					LambdaQueryWrapper<FinInvoicesItems> lambdaQueryWrapper = new LambdaQueryWrapper<FinInvoicesItems>()
-						.eq(FinInvoicesItems::getTenantId, AuthUtil.getTenantId())
-						.eq(FinInvoicesItems::getIsDeleted, 0)
-						.eq(FinInvoicesItems::getPid, finStlBills.getId());
-					List<FinInvoicesItems> finStlBillsItems = finInvoicesItemsService.list(lambdaQueryWrapper);
-					if (!finStlBillsItems.isEmpty()) {
-						finStlBills.setSalesman(finStlBillsItems.get(0).getSrcCnName());
-						List<Bills> billsList;
-						String mblno = finStlBillsItems.stream().map(FinInvoicesItems::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 + "')"));
-						for (FinInvoicesItems item : finStlBillsItems) {
-							FinStlBillsItemsReports finStlBillsItemsReports = new FinStlBillsItemsReports();
-							if (!billsList.isEmpty()) {
-								String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
-								finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
-							}
-							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());
-							if (MagicValues.D.equals(item.getDc())) {
-								if (exrateType.equals(item.getCurCode())) {
-									finStlBillsItemsReports.setAmount(item.getCurrentAmount());
-								} else {
-									finStlBillsItemsReports.setAmountUsd(item.getCurrentAmount());
-								}
-							} else {
-								if (exrateType.equals(item.getCurCode())) {
-									finStlBillsItemsReports.setAmountC(item.getCurrentAmount());
-								} else {
-									finStlBillsItemsReports.setAmountUsdC(item.getCurrentAmount());
-								}
+				} else if (MagicValues.INVOICE_APPLICATION.equals(reportCode) && MagicValues.CHARGE.equals(groupCode)) {
+					FinInvoices finStlBills = finInvoicesService.getById(billId);
+					if (finStlBills != null) {
+						String exrateType = currencyUtils.standardCurrency(finStlBills.getBranchId());
+						finStlBills.setExrateType(exrateType);
+						if (ObjectUtils.isNotNull(finStlBills.getCorpId())) {
+							BCorps bCorps = bCorpsService.getById(finStlBills.getCorpId());
+							if (bCorps != null) {
+								finStlBills.setAttnName(bCorps.getAttnName());
+								finStlBills.setAttnTel(bCorps.getAttnTel());
 							}
-							finStlBillsItemsReportsList.add(finStlBillsItemsReports);
-						}
-					}
-					finStlBills.setAmountD(finStlBillsItemsReportsList.stream().map(FinStlBillsItemsReports::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-					finStlBills.setAmountDUsd(finStlBillsItemsReportsList.stream().map(FinStlBillsItemsReports::getAmountUsd).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-					finStlBills.setAmountC(finStlBillsItemsReportsList.stream().map(FinStlBillsItemsReports::getAmountC).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-					finStlBills.setAmountCUsd(finStlBillsItemsReportsList.stream().map(FinStlBillsItemsReports::getAmountUsdC).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-					finStlBills.setFinStlBillsItemsReportsList(finStlBillsItemsReportsList);
-					finStlBills.setDept(dept);
-					map.put(MagicValues.DATA, finStlBills);
-				} else {
-					map.put(MagicValues.DATA, null);
-				}
-			} else if (MagicValues.INVOICE_APPLICATION.equals(reportCode) && MagicValues.CHARGE.equals(groupCode)) {
-				FinInvoices finStlBills = finInvoicesService.getById(billId);
-				if (finStlBills != null) {
-					String exrateType = currencyUtils.standardCurrency(finStlBills.getBranchId());
-					finStlBills.setExrateType(exrateType);
-					if (ObjectUtils.isNotNull(finStlBills.getCorpId())) {
-						BCorps bCorps = bCorpsService.getById(finStlBills.getCorpId());
-						if (bCorps != null) {
-							finStlBills.setAttnName(bCorps.getAttnName());
-							finStlBills.setAttnTel(bCorps.getAttnTel());
 						}
-					}
-					List<FinStlBillsItemsReports> finStlBillsItemsReportsList = new ArrayList<>();
-					LambdaQueryWrapper<FinInvoicesItems> lambdaQueryWrapper = new LambdaQueryWrapper<FinInvoicesItems>()
-						.eq(FinInvoicesItems::getTenantId, AuthUtil.getTenantId())
-						.eq(FinInvoicesItems::getIsDeleted, 0)
-						.eq(FinInvoicesItems::getPid, finStlBills.getId())
-						.eq(FinInvoicesItems::getDc, "D")
-						.orderByDesc(FinInvoicesItems::getVesselCnName);
-					List<FinInvoicesItems> finStlBillsItems = finInvoicesItemsService.list(lambdaQueryWrapper);
-					if (!finStlBillsItems.isEmpty()) {
-						finStlBills.setSalesman(finStlBillsItems.get(0).getSrcCnName());
-						List<Bills> billsList;
-						String mblno = finStlBillsItems.stream().map(FinInvoicesItems::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 + "')"));
-						for (FinInvoicesItems item : finStlBillsItems) {
-							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());
-							if (!billsList.isEmpty()) {
-								String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
-								finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
-							}
-							if (MagicValues.D.equals(item.getDc())) {
-								if (exrateType.equals(item.getCurCode())) {
-									finStlBillsItemsReports.setAmount(item.getCurrentAmount());
-								} else {
-									finStlBillsItemsReports.setAmountUsd(item.getCurrentAmount());
-								}
-							} else {
-								if (exrateType.equals(item.getCurCode())) {
-									finStlBillsItemsReports.setAmountC(item.getCurrentAmount());
+						List<FinStlBillsItemsReports> finStlBillsItemsReportsList = new ArrayList<>();
+						LambdaQueryWrapper<FinInvoicesItems> lambdaQueryWrapper = new LambdaQueryWrapper<FinInvoicesItems>()
+							.eq(FinInvoicesItems::getTenantId, AuthUtil.getTenantId())
+							.eq(FinInvoicesItems::getIsDeleted, 0)
+							.eq(FinInvoicesItems::getPid, finStlBills.getId())
+							.eq(FinInvoicesItems::getDc, "D")
+							.orderByDesc(FinInvoicesItems::getVesselCnName);
+						List<FinInvoicesItems> finStlBillsItems = finInvoicesItemsService.list(lambdaQueryWrapper);
+						if (!finStlBillsItems.isEmpty()) {
+							finStlBills.setSalesman(finStlBillsItems.get(0).getSrcCnName());
+							List<Bills> billsList;
+							String mblno = finStlBillsItems.stream().map(FinInvoicesItems::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 + "')"));
+							for (FinInvoicesItems item : finStlBillsItems) {
+								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());
+								if (!billsList.isEmpty()) {
+									String quantityCntrDescr = billsList.stream().filter(e -> e.getMblno().equals(item.getMblno())).map(Bills::getQuantityCntrDescr).collect(Collectors.joining(","));
+									finStlBillsItemsReports.setQuantityCntrTypesDescr(quantityCntrDescr);
+								}
+								if (MagicValues.D.equals(item.getDc())) {
+									if (exrateType.equals(item.getCurCode())) {
+										finStlBillsItemsReports.setAmount(item.getCurrentAmount());
+									} else {
+										finStlBillsItemsReports.setAmountUsd(item.getCurrentAmount());
+									}
 								} else {
-									finStlBillsItemsReports.setAmountUsdC(item.getCurrentAmount());
+									if (exrateType.equals(item.getCurCode())) {
+										finStlBillsItemsReports.setAmountC(item.getCurrentAmount());
+									} else {
+										finStlBillsItemsReports.setAmountUsdC(item.getCurrentAmount());
+									}
 								}
+								finStlBillsItemsReportsList.add(finStlBillsItemsReports);
 							}
-							finStlBillsItemsReportsList.add(finStlBillsItemsReports);
 						}
+						finStlBills.setAmountD(finStlBillsItemsReportsList.stream().map(FinStlBillsItemsReports::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+						finStlBills.setAmountDUsd(finStlBillsItemsReportsList.stream().map(FinStlBillsItemsReports::getAmountUsd).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+						finStlBills.setFinStlBillsItemsReportsList(finStlBillsItemsReportsList);
+						finStlBills.setDept(dept);
+						map.put(MagicValues.DATA, finStlBills);
+					} else {
+						map.put(MagicValues.DATA, null);
+					}
+				} else if (MagicValues.KHTS.equals(reportCode) && MagicValues.KHTS.equals(groupCode) && MagicValues.KHTS.equals(type)) {
+					Bills bills = billsService.getById(billId);
+					if (bills != null) {
+						List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
+							.eq(PreContainers::getIsDeleted, 0)
+							.eq(PreContainers::getTenantId, AuthUtil.getTenantId())
+							.eq(PreContainers::getPid, bills.getId()));
+						bills.setPreContainersList(preContainersList);
+						bills.setDept(dept);
+						map.put(MagicValues.DATA, bills);
+					} else {
+						map.put(MagicValues.DATA, null);
 					}
-					finStlBills.setAmountD(finStlBillsItemsReportsList.stream().map(FinStlBillsItemsReports::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-					finStlBills.setAmountDUsd(finStlBillsItemsReportsList.stream().map(FinStlBillsItemsReports::getAmountUsd).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-					finStlBills.setFinStlBillsItemsReportsList(finStlBillsItemsReportsList);
-					finStlBills.setDept(dept);
-					map.put(MagicValues.DATA, finStlBills);
-				} else {
-					map.put(MagicValues.DATA, null);
-				}
-			} else if (MagicValues.COST.equals(reportCode)
-				&& (MagicValues.COST_APPLY_MODIFY.equals(groupCode) || MagicValues.COST_APPLY_DELETE.equals(groupCode))) {
-				FeeCenterUpdateRecord feeCenterUpdateRecord = feeCenterUpdateRecordService.getById(billId);
-				if (feeCenterUpdateRecord != null) {
-					feeCenterUpdateRecord.setDept(dept);
-					map.put(MagicValues.DATA, feeCenterUpdateRecord);
-				} else {
-					map.put(MagicValues.DATA, null);
-				}
-			} else if (MagicValues.KHTS.equals(reportCode) && MagicValues.KHTS.equals(groupCode) && MagicValues.KHTS.equals(type)) {
-				Bills bills = billsService.getById(billId);
-				if (bills != null) {
-					List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
-						.eq(PreContainers::getIsDeleted, 0)
-						.eq(PreContainers::getTenantId, AuthUtil.getTenantId())
-						.eq(PreContainers::getPid, bills.getId()));
-					bills.setPreContainersList(preContainersList);
-					bills.setDept(dept);
-					map.put(MagicValues.DATA, bills);
-				} else {
-					map.put(MagicValues.DATA, null);
 				}
 			}
 		}

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/controller/UseBoxPlanController.java

@@ -143,6 +143,13 @@ public class UseBoxPlanController extends BladeController {
 		return useBoxPlanService.submitUseBoxPlan(useBoxPlan);
 	}
 	/**
+	 * 提交用箱计划
+	 */
+	@PostMapping("/revokeUseBoxPlan")
+	public R revokeUseBoxPlan(@Valid @RequestBody UseBoxPlan useBoxPlan) {
+		return useBoxPlanService.revokeUseBoxPlan(useBoxPlan);
+	}
+	/**
 	 * 详情
 	 */
 	@GetMapping("/copy")

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/service/IUseBoxPlanService.java

@@ -47,4 +47,6 @@ public interface IUseBoxPlanService extends IService<UseBoxPlan> {
 	R submitUseBoxPlan(UseBoxPlan useBoxPlan);
 
 	UseBoxPlan copy(UseBoxPlan useBoxPlan);
+
+	R revokeUseBoxPlan(UseBoxPlan useBoxPlan);
 }

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

@@ -3565,6 +3565,9 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 			}
 		} else {
 			for (Containers item : containersHYJKList) {
+				if (ObjectUtils.isNull(item.getHblno())) {
+					throw new RuntimeException("分单号不能为空");
+				}
 				item.setPodStationId(podStationR.getPodStationId());
 				item.setPodStationCname(podStationR.getPodStationCname());
 				item.setPodStationEname(podStationR.getPodStationEname());

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

@@ -157,7 +157,8 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 		List<TradingBox> tradingBoxList = new ArrayList<>();
 		LambdaQueryWrapper<TradingBox> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(TradingBox::getIsDeleted, 0)
-			.eq(TradingBox::getTenantId, AuthUtil.getTenantId());
+			.eq(TradingBox::getTenantId, AuthUtil.getTenantId())
+			.eq(TradingBox::getType, tradingBox.getType());
 		if ("OW-N,OW-F".contains(tradingBox.getType())) {
 			lambdaQueryWrapper.eq(TradingBox::getContainerNumber, tradingBox.getContainerNumber());
 		} else {

+ 11 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/UseBoxPlanServiceImpl.java

@@ -230,4 +230,15 @@ public class UseBoxPlanServiceImpl extends ServiceImpl<UseBoxPlanMapper, UseBoxP
 		return detail;
 	}
 
+	@Override
+	public R revokeUseBoxPlan(UseBoxPlan useBoxPlan) {
+		if (useBoxPlan.getId() == null) {
+			throw new RuntimeException("缺少必要参数");
+		}
+		UseBoxPlan detail = baseMapper.selectById(useBoxPlan.getId());
+		detail.setStatus(0);
+		baseMapper.updateById(detail);
+		return R.data(detail);
+	}
+
 }

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

@@ -414,6 +414,9 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 				item.setBillDate(bills.getBillDate());
 				item.setSrcType(bills.getSrcType());
 				item.setSrcId(bills.getSrcId());
+				item.setBookingAgentId(bills.getBookingAgentId());
+				item.setBookingAgentCnName(bills.getBookingAgentCnName());
+				item.setBookingAgentEnName(bills.getBookingAgentEnName());
 				item.setSrcCnName(bills.getSrcCnName());
 				item.setSrcEnName(bills.getSrcEnName());
 				item.setBillCorpId(bills.getCorpId());
@@ -467,6 +470,9 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 				item.setBusinessType(bills.getBusinessType());
 				item.setBillType(bills.getBillType());
 				item.setBillDate(bills.getBillDate());
+				item.setBookingAgentId(bills.getBookingAgentId());
+				item.setBookingAgentCnName(bills.getBookingAgentCnName());
+				item.setBookingAgentEnName(bills.getBookingAgentEnName());
 				item.setSrcType(bills.getSrcType());
 				item.setSrcId(bills.getSrcId());
 				item.setSrcCnName(bills.getSrcCnName());
@@ -4340,7 +4346,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		copyBills.setId(null);
 		BusinessBillNo businessBillNo = new BusinessBillNo();
 		businessBillNo.setBusinessTypeId(businessType.getId());
-		businessBillNo.setCode("HYCK");
+		businessBillNo.setCode("HYCK-PH");
 		businessBillNo.setBranchId(detail.getBranchId());
 		R clientBillNo = businessBillNoService.getBillNoLos(businessBillNo);
 		if (!clientBillNo.isSuccess()) {
@@ -4949,6 +4955,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		copyBills.setReturnEmptyDate(null);
 		copyBills.setClearanceDate(null);
 		copyBills.setReceiveStatus(null);
+		copyBills.setCyReturnTime(null);
+		copyBills.setCyTrailerTime(null);
 		copyBills.setChangeOrdersStatus(null);
 		copyBills.setReturningSecurityMoneyStatus(null);
 		copyBills.setAmountDr(new BigDecimal("0.00"));

+ 3 - 0
blade-service/blade-los/src/main/java/org/springblade/los/check/service/impl/AuditProecessServiceImpl.java

@@ -2108,6 +2108,9 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 				data.setBranchName(item.getBranchName());
 				data.setDeptId(Long.parseLong(item.getBranchId()));
 				data.setDeptName(item.getBranchName());
+				data.setBookingAgentId(item.getBookingAgentId());
+				data.setBookingAgentCnName(item.getBookingAgentCnName());
+				data.setBookingAgentEnName(item.getBookingAgentEnName());
 				BusinessBillNo businessBillNo = new BusinessBillNo();
 				businessBillNo.setBusinessTypeId(businessType.getId());
 				businessBillNo.setCode("YWZD");

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

@@ -33,7 +33,7 @@ public class EDISender {
 			//文件地址
 			String url = file.getAbsolutePath();
 			//替换地址
-			url = url.replace("/home/minio", "http://113.44.105.66");
+			url = url.replace("/home/minio", "http://e.win-fl.com");
 
 			FilesCenter filesCenter = new FilesCenter();
 			filesCenter.setUrl(url);

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

@@ -353,7 +353,7 @@ public class EDISenderServiceImpl implements IEDISenderService {
 				url = url.replace("/home/minio", status);
 			}
 		} else {
-			url = url.replace("/home/minio", "http://113.44.105.66");
+			url = url.replace("/home/minio", "http://e.win-fl.com");
 		}
 
 		FilesCenter filesCenter = new FilesCenter();

+ 6 - 1
blade-service/blade-los/src/main/java/org/springblade/los/excel/BoxNumberProfitExcel.java

@@ -59,7 +59,7 @@ public class BoxNumberProfitExcel {
 	 * 船名
 	 */
 	@ExcelProperty(value = "船名")
-	private String vesselCnName;
+	private String vesselEnName;
 	/**
 	 * 航次
 	 */
@@ -215,5 +215,10 @@ public class BoxNumberProfitExcel {
 	 */
 	@ExcelProperty(value = "团队")
 	private String customerServiceName;
+/**
+	 * 单据类型
+	 */
+	@ExcelProperty(value = "单据类型")
+	private String  billType;
 
 }

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

@@ -52,12 +52,16 @@ import org.springblade.los.finance.fee.entity.FeeCenter;
 import org.springblade.los.finance.fee.mapper.FeeCenterMapper;
 import org.springblade.los.finance.fee.service.IFeeCenterService;
 import org.springblade.los.finance.fee.vo.FeeCenterVO;
+import org.springblade.los.finance.genleg.entity.FinPeriod;
+import org.springblade.los.finance.genleg.mapper.FinPeriodMapper;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.time.ZoneId;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -99,6 +103,8 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 
 	private final IMktSlotQuotationService mktSlotQuotationService;
 
+	private final FinPeriodMapper finPeriodMapper;
+
 	@Override
 	public IPage<FeeCenterVO> selectFeeCenterPage(IPage<FeeCenterVO> page, FeeCenterVO feeCenter) {
 		return page.setRecords(baseMapper.selectFeeCenterPage(page, feeCenter));
@@ -246,6 +252,9 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				FeeCenter feeCenter = new FeeCenter();
 				feeCenter.setBranchId(branchId);
 				feeCenter.setBranchName(deptName);
+				feeCenter.setBookingAgentId(bills.getBookingAgentId());
+				feeCenter.setBookingAgentCnName(bills.getBookingAgentCnName());
+				feeCenter.setBookingAgentEnName(bills.getBookingAgentEnName());
 				feeCenter.setPid(bills.getId());
 				feeCenter.setCntrNo(bills.getQuantityCntrTypesDescr());
 				feeCenter.setBillNo(bills.getBillNo());
@@ -609,13 +618,28 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 	public R submitList(List<FeeCenter> list) {
 		List<FeeCenter> feeCenterList = new ArrayList<>();
 		if (ObjectUtils.isNotNull(list) && !list.isEmpty()) {
-			boolean status = false;
 			Bills bills = new Bills();
 			if ("SE".equals(list.get(0).getBusinessType()) || "SI".equals(list.get(0).getBusinessType())) {
 				bills = billsMapper.selectById(list.get(0).getPid());
-				status = true;
+				if (bills != null && ObjectUtils.isNotNull(bills.getBillDate())) {
+					LocalDate date = bills.getBillDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+					int year = date.getYear();
+					int month = date.getMonthValue();
+					FinPeriod finPeriod = finPeriodMapper.selectOne(new LambdaQueryWrapper<FinPeriod>()
+						.eq(FinPeriod::getTenantId, AuthUtil.getTenantId())
+						.eq(FinPeriod::getIsDeleted, 0)
+						.eq(FinPeriod::getPeriodYear, year)
+						.eq(FinPeriod::getPeriodMonth, month));
+					if (finPeriod != null) {
+						if (1 == finPeriod.getIsClosed()) {
+							throw new RuntimeException(year + "年" + month + "月账期已结转,保存失败");
+						}
+						if (1 == finPeriod.getLockingStatus()) {
+							throw new RuntimeException(year + "年" + month + "月账期已锁定,保存失败");
+						}
+					}
+				}
 			}
-
 			String deptName = "";
 			String deptId = AuthUtil.getDeptId();
 			String branchId = AuthUtil.getDeptId();
@@ -631,6 +655,9 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				.eq(BCorps::getTenantId, AuthUtil.getTenantId())
 				.eq(BCorps::getIsDeleted, 0));
 			for (FeeCenter feeCenter : list) {
+				feeCenter.setBookingAgentId(bills.getBookingAgentId());
+				feeCenter.setBookingAgentCnName(bills.getBookingAgentCnName());
+				feeCenter.setBookingAgentEnName(bills.getBookingAgentEnName());
 				if (!bCorpsList.isEmpty()) {
 					BCorps bCorps = bCorpsList.stream().filter(e -> e.getId().equals(feeCenter.getCorpId())).findFirst().orElse(null);
 					if (bCorps != null) {
@@ -906,6 +933,24 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 			if (tradingBox == null) {
 				throw new RuntimeException("未查到主表信息");
 			}
+			if (ObjectUtils.isNotNull(tradingBox.getPurchaseDate())) {
+				LocalDate date = tradingBox.getPurchaseDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+				int year = date.getYear();
+				int month = date.getMonthValue();
+				FinPeriod finPeriod = finPeriodMapper.selectOne(new LambdaQueryWrapper<FinPeriod>()
+					.eq(FinPeriod::getTenantId, AuthUtil.getTenantId())
+					.eq(FinPeriod::getIsDeleted, 0)
+					.eq(FinPeriod::getPeriodYear, year)
+					.eq(FinPeriod::getPeriodMonth, month));
+				if (finPeriod != null) {
+					if (1 == finPeriod.getIsClosed()) {
+						throw new RuntimeException(year + "年" + month + "月账期已结转,保存失败");
+					}
+					if (1 == finPeriod.getLockingStatus()) {
+						throw new RuntimeException(year + "年" + month + "月账期已锁定,保存失败");
+					}
+				}
+			}
 			BigDecimal amountD = new BigDecimal("0.00");
 			BigDecimal amountC = new BigDecimal("0.00");
 			BigDecimal amountDUsd = new BigDecimal("0.00");
@@ -1130,6 +1175,9 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				FeeCenter feeCenter = new FeeCenter();
 				feeCenter.setBranchId(branchId);
 				feeCenter.setBranchName(deptName);
+				feeCenter.setBookingAgentId(bills.getBookingAgentId());
+				feeCenter.setBookingAgentCnName(bills.getBookingAgentCnName());
+				feeCenter.setBookingAgentEnName(bills.getBookingAgentEnName());
 				feeCenter.setPid(bills.getId());
 				feeCenter.setCntrNo(bills.getQuantityCntrTypesDescr());
 				feeCenter.setBillNo(bills.getBillNo());
@@ -1490,6 +1538,9 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 								FeeCenter feeCenterC = new FeeCenter();
 								feeCenterC.setBranchId(item.getBranchId());
 								feeCenterC.setBranchName(item.getBranchName());
+								feeCenter.setBookingAgentId(item.getBookingAgentId());
+								feeCenter.setBookingAgentCnName(item.getBookingAgentCnName());
+								feeCenter.setBookingAgentEnName(item.getBookingAgentEnName());
 								feeCenterC.setPid(item.getId());
 								feeCenterC.setCntrNo(item.getQuantityCntrTypesDescr());
 								feeCenterC.setBillNo(item.getBillNo());
@@ -1927,7 +1978,63 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				.notIn(FeeCenter::getId, longList));
 			String exrateType = currencyUtils.standardCurrency(bills.getBranchId());
 			if (!feeCenters.isEmpty()) {
-				this.updateBills(feeCenters, bills, exrateType);
+				//应付
+				int statusC = 0;
+				if (feeCenters.stream().anyMatch(e -> "C".equals(e.getDc()))) {
+					statusC = 1;
+				}
+				//应收
+				int statusD = 0;
+				if (feeCenters.stream().anyMatch(e -> "D".equals(e.getDc()))) {
+					statusD = 1;
+				}
+				if (1 == statusD && 0 == statusC) {
+					bills.setAccountStatus(1);
+				} else if (0 == statusD && 1 == statusC) {
+					bills.setAccountStatus(2);
+				} else {
+					bills.setAccountStatus(3);
+				}
+				BigDecimal amountDr;
+				BigDecimal amountCr;
+				BigDecimal amountProfit;
+				BigDecimal amountDrUsd;
+				BigDecimal amountCrUsd;
+				BigDecimal amountProfitUsd;
+				BigDecimal amountDrLoc;
+				BigDecimal amountCrLoc;
+				BigDecimal amountProfitLoc;
+				BigDecimal oceanFreightDr;
+				BigDecimal oceanFreightCr;
+				BigDecimal oceanFreightProfit;
+				amountDr = feeCenters.stream().filter(e -> "D".equals(e.getDc()) && exrateType.equals(e.getCurCode())).map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+				amountDrUsd = feeCenters.stream().filter(e -> "D".equals(e.getDc()) && !exrateType.equals(e.getCurCode())).map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+				amountDrLoc = feeCenters.stream().filter(e -> "D".equals(e.getDc())).map(FeeCenter::getAmountLoc).reduce(BigDecimal.ZERO, BigDecimal::add);
+				amountCr = feeCenters.stream().filter(e -> "C".equals(e.getDc()) && exrateType.equals(e.getCurCode())).map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+				amountCrUsd = feeCenters.stream().filter(e -> "C".equals(e.getDc()) && !exrateType.equals(e.getCurCode())).map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+				amountCrLoc = feeCenters.stream().filter(e -> "C".equals(e.getDc())).map(FeeCenter::getAmountLoc).reduce(BigDecimal.ZERO, BigDecimal::add);
+				oceanFreightDr = feeCenters.stream().filter(e -> "D".equals(e.getDc()) &&
+					"HYF".equals(e.getFeeCode())).map(FeeCenter::getAmountLoc).reduce(BigDecimal.ZERO, BigDecimal::add);
+				oceanFreightCr = feeCenters.stream().filter(e -> "C".equals(e.getDc()) &&
+					"HYF".equals(e.getFeeCode())).map(FeeCenter::getAmountLoc).reduce(BigDecimal.ZERO, BigDecimal::add);
+				oceanFreightProfit = oceanFreightDr.subtract(oceanFreightCr);
+				//利润 = 收 - 付
+				amountProfit = amountDr.subtract(amountCr);
+				amountProfitUsd = amountDrUsd.subtract(amountCrUsd);
+				amountProfitLoc = amountDrLoc.subtract(amountCrLoc);
+				bills.setAmountDr(amountDr);
+				bills.setOceanFreightDr(oceanFreightDr);
+				bills.setAmountCr(amountCr);
+				bills.setOceanFreightCr(oceanFreightCr);
+				bills.setAmountProfit(amountProfit);
+				bills.setOceanFreightProfit(oceanFreightProfit);
+				bills.setAmountDrUsd(amountDrUsd);
+				bills.setAmountCrUsd(amountCrUsd);
+				bills.setAmountProfitUsd(amountProfitUsd);
+				bills.setAmountDrLoc(amountDrLoc);
+				bills.setAmountCrLoc(amountCrLoc);
+				bills.setAmountProfitLoc(amountProfitLoc);
+				billsMapper.updateById(bills);
 			}
 		}
 
@@ -1940,6 +2047,9 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 		FeeCenter feeCenter = new FeeCenter();
 		feeCenter.setBranchId(bills.getBranchId());
 		feeCenter.setBranchName(bills.getBranchName());
+		feeCenter.setBookingAgentId(bills.getBookingAgentId());
+		feeCenter.setBookingAgentCnName(bills.getBookingAgentCnName());
+		feeCenter.setBookingAgentEnName(bills.getBookingAgentEnName());
 		feeCenter.setPid(bills.getId());
 		feeCenter.setCntrNo(bills.getQuantityCntrTypesDescr());
 		feeCenter.setBillNo(bills.getBillNo());

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

@@ -181,6 +181,9 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 			data.setBranchName(item.getBranchName());
 			data.setDeptId(Long.parseLong(item.getBranchId()));
 			data.setDeptName(item.getBranchName());
+			data.setBookingAgentId(item.getBookingAgentId());
+			data.setBookingAgentCnName(item.getBookingAgentCnName());
+			data.setBookingAgentEnName(item.getBookingAgentEnName());
 			BusinessBillNo businessBillNo = new BusinessBillNo();
 			businessBillNo.setBusinessTypeId(businessType.getId());
 			businessBillNo.setCode(finAccBills.getBillNoFormat());

+ 12 - 2
blade-service/blade-los/src/main/java/org/springblade/los/view/mapper/BoxNumberProfitMapper.xml

@@ -59,10 +59,15 @@
         from los_box_number_profit
         where is_deleted = 0
         AND tenant_id = #{data.tenantId}
-        AND branch_id = #{data.branchId}
+        <if test="data.branchId != null and data.branchId != ''">
+            AND branch_id = #{data.branchId}
+        </if>
         <if test="data.businessType != null and data.businessType != ''">
             and find_in_set(business_type,#{data.businessType})
         </if>
+        <if test="data.billType != null and data.billType != ''">
+            and find_in_set(bill_type,#{data.billType})
+        </if>
         <if test="data.srcType != null and data.srcType != ''">
             and src_type = #{data.srcType}
         </if>
@@ -129,10 +134,15 @@
         from los_box_number_profit
         where is_deleted = 0
         AND tenant_id = #{data.tenantId}
-        AND branch_id = #{data.branchId}
+        <if test="data.branchId != null and data.branchId != ''">
+            AND branch_id = #{data.branchId}
+        </if>
         <if test="data.businessType != null and data.businessType != ''">
             and find_in_set(business_type,#{data.businessType})
         </if>
+        <if test="data.billType != null and data.billType != ''">
+            and find_in_set(bill_type,#{data.billType})
+        </if>
         <if test="data.srcType != null and data.srcType != ''">
             and src_type = #{data.srcType}
         </if>

+ 2 - 2
blade-service/blade-weChat/src/main/java/org/springblade/weChat/QRCode/WechatQRCodeController.java

@@ -129,7 +129,7 @@ public class WechatQRCodeController extends BladeController {
 		File qRCodeFile = new File(packageFile, corpName + ".jpg");
 		qRCodeFile.createNewFile();
 		//替换地址
-		return qRCodeFile.getAbsolutePath().replace("/home/minio", "http://113.44.105.66");
+		return qRCodeFile.getAbsolutePath().replace("/home/minio", "http://e.win-fl.com");
 	}
 
 	/**
@@ -193,7 +193,7 @@ public class WechatQRCodeController extends BladeController {
 			os.close();
 			System.out.println("Path1:" + qRCodeFile.getPath());
 			System.out.println("AbsolutePath1:" + qRCodeFile.getAbsolutePath());
-			filePath = qRCodeFile.getAbsolutePath().replace("/home/minio", "http://113.44.105.66");
+			filePath = qRCodeFile.getAbsolutePath().replace("/home/minio", "http://e.win-fl.com");
 		} catch (Exception e) {
 			e.printStackTrace();
 		}