Browse Source

2023年12月29日18:23:29

纪新园 2 years ago
parent
commit
15d91ee461
24 changed files with 505 additions and 111 deletions
  1. 5 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/dto/FeeCenterReports.java
  2. 16 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/ListAccBillVO.java
  3. 17 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/invoices/entity/FinInvoices.java
  4. 5 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/invoices/entity/FinInvoicesItems.java
  5. 62 0
      blade-service/blade-los/src/main/java/org/springblade/los/Util/DeptUtils.java
  6. 13 0
      blade-service/blade-los/src/main/java/org/springblade/los/Util/IDeptUtils.java
  7. 13 2
      blade-service/blade-los/src/main/java/org/springblade/los/basic/acc/service/impl/AccountsServiceImpl.java
  8. 26 8
      blade-service/blade-los/src/main/java/org/springblade/los/basic/corps/service/impl/BCorpsServiceImpl.java
  9. 41 4
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java
  10. 1 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/units/controller/BUnitsController.java
  11. 15 1
      blade-service/blade-los/src/main/java/org/springblade/los/billno/service/impl/BusinessBillNoServiceImpl.java
  12. 12 1
      blade-service/blade-los/src/main/java/org/springblade/los/business/amends/service/impl/AmendsServiceImpl.java
  13. 12 1
      blade-service/blade-los/src/main/java/org/springblade/los/business/files/service/impl/FilesCenterServiceImpl.java
  14. 9 3
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/BillsMapper.xml
  15. 23 2
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
  16. 20 2
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/ContainersCommodityServiceImpl.java
  17. 24 6
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/ContainersServiceImpl.java
  18. 22 4
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/PreContainersServiceImpl.java
  19. 13 2
      blade-service/blade-los/src/main/java/org/springblade/los/finance/agreement/service/impl/AgreementPriceServiceImpl.java
  20. 20 2
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java
  21. 12 1
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FinAccBillsServiceImpl.java
  22. 79 20
      blade-service/blade-los/src/main/java/org/springblade/los/finance/invoices/service/impl/FinInvoicesServiceImpl.java
  23. 32 50
      blade-service/blade-los/src/main/java/org/springblade/los/finance/stl/service/impl/FinStlBillsServiceImpl.java
  24. 13 2
      blade-service/blade-los/src/main/java/org/springblade/los/finance/vouchers/service/impl/FinVouchersServiceImpl.java

+ 5 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/dto/FeeCenterReports.java

@@ -87,5 +87,10 @@ public class FeeCenterReports implements Serializable {
 	 */
 	private String amount;
 
+	/**
+	 * dc
+	 */
+	private String dc;
+
 
 }

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

@@ -1,9 +1,12 @@
 package org.springblade.los.finance.fee.entity;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -152,4 +155,17 @@ public class ListAccBillVO extends FinAccBills {
 	 */
 	private String type;
 
+	/**
+	 * 财务开始日期
+	 */
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+	private Date accountDateFrom;
+	/**
+	 * 财务结束日期
+	 */
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+	private Date accountDateTo;
+
 }

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

@@ -520,6 +520,23 @@ public class FinInvoices implements Serializable {
 	@ApiModelProperty(value = "差额")
 	private BigDecimal amountSub;
 	/**
+	 * 综合差额
+	 */
+	@ApiModelProperty(value = "综合差额")
+	private BigDecimal amountSubLoc;
+
+	/**
+	 * 差额
+	 */
+	@ApiModelProperty(value = "差额")
+	private BigDecimal amountSubUsd;
+
+	/**
+	 * 综合税后差额
+	 */
+	@ApiModelProperty(value = "综合税后差额")
+	private BigDecimal amountSubLocNet;
+	/**
 	 * 单据状态
 	 */
 	@ApiModelProperty(value = "单据状态")

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

@@ -507,6 +507,11 @@ public class FinInvoicesItems implements Serializable {
 	@ApiModelProperty(value = "本次发票本币金额")
 	private BigDecimal currentAmountLoc;
 	/**
+	 * 本次发票金额转换汇率
+	 */
+	@ApiModelProperty(value = "本次发票金额转换汇率")
+	private BigDecimal currentAmountEx;
+	/**
 	 * 支票是否签收, 0 否, 1 是
 	 */
 	@ApiModelProperty(value = "支票是否签收, 0 否, 1 是")

+ 62 - 0
blade-service/blade-los/src/main/java/org/springblade/los/Util/DeptUtils.java

@@ -0,0 +1,62 @@
+package org.springblade.los.Util;
+
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tool.api.R;
+import org.springblade.system.entity.Dept;
+import org.springblade.system.feign.ISysClient;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author :jixinyuan
+ * @date : 2023/12/29
+ */
+@Service
+@AllArgsConstructor
+public class DeptUtils implements IDeptUtils {
+
+	private final ISysClient sysClient;
+
+
+	@Override
+	public Dept getDept(String deptId) {
+		if (ObjectUtils.isNull(deptId)) {
+			return null;
+		}
+		String id = "";
+		if (deptId.indexOf(",") > 0) {
+			id = deptId.substring(0, deptId.indexOf(","));
+		} else {
+			id = deptId;
+		}
+		R<Dept> res = sysClient.getDept(Long.parseLong(id));
+		if (res.isSuccess()) {
+			if (1 == res.getData().getDeptCategory()) {
+				return res.getData();
+			} else if (2 == res.getData().getDeptCategory()) {
+				R<Dept> dept = sysClient.getDept(res.getData().getId());
+				if (dept.isSuccess()) {
+					return dept.getData();
+				} else {
+					return null;
+				}
+			} else if (3 == res.getData().getDeptCategory()) {
+				R<Dept> dept = sysClient.getDept(res.getData().getId());
+				if (dept.isSuccess()) {
+					R<Dept> dept1 = sysClient.getDept(res.getData().getId());
+					if (dept1.isSuccess()) {
+						return dept1.getData();
+					} else {
+						return null;
+					}
+				} else {
+					return null;
+				}
+			} else {
+				return null;
+			}
+		} else {
+			return null;
+		}
+	}
+}

+ 13 - 0
blade-service/blade-los/src/main/java/org/springblade/los/Util/IDeptUtils.java

@@ -0,0 +1,13 @@
+package org.springblade.los.Util;
+
+import org.springblade.system.entity.Dept;
+
+/**
+ * @author :jixinyuan
+ * @date : 2023/12/29
+ */
+public interface IDeptUtils {
+
+	public Dept getDept(String deptId);
+
+}

+ 13 - 2
blade-service/blade-los/src/main/java/org/springblade/los/basic/acc/service/impl/AccountsServiceImpl.java

@@ -24,12 +24,14 @@ import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.basic.acc.entity.AccItemsOpenblc;
 import org.springblade.los.basic.acc.entity.Accounts;
 import org.springblade.los.basic.acc.mapper.AccountsMapper;
 import org.springblade.los.basic.acc.service.IAccItemsOpenblcService;
 import org.springblade.los.basic.acc.service.IAccountsService;
 import org.springblade.los.basic.acc.vo.AccountsVO;
+import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -51,6 +53,8 @@ public class AccountsServiceImpl extends ServiceImpl<AccountsMapper, Accounts> i
 
 	private final ISysClient sysClient;
 
+	private final IDeptUtils deptUtils;
+
 	private final IAccItemsOpenblcService accItemsOpenblcService;
 
 	@Override
@@ -74,6 +78,7 @@ public class AccountsServiceImpl extends ServiceImpl<AccountsMapper, Accounts> i
 	public R submit(Accounts accounts) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -81,6 +86,12 @@ public class AccountsServiceImpl extends ServiceImpl<AccountsMapper, Accounts> i
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		if (accounts.getId() == null) {
 			accounts.setCreateTime(new Date());
@@ -89,7 +100,7 @@ public class AccountsServiceImpl extends ServiceImpl<AccountsMapper, Accounts> i
 			//获取部门ids对应中文名
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				accounts.setCreateDept(AuthUtil.getDeptId());
-				accounts.setBranchId(AuthUtil.getDeptId());
+				accounts.setBranchId(branchId);
 				R<List<String>> res = sysClient.getDeptNames(AuthUtil.getDeptId());
 				if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 					accounts.setCreateDeptName(deptName);
@@ -132,7 +143,7 @@ public class AccountsServiceImpl extends ServiceImpl<AccountsMapper, Accounts> i
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 						item.setCreateDept(deptId);
-						item.setBranchId(AuthUtil.getDeptId());
+						item.setBranchId(branchId);
 						item.setCreateDeptName(deptName);
 					}
 				} else {

+ 26 - 8
blade-service/blade-los/src/main/java/org/springblade/los/basic/corps/service/impl/BCorpsServiceImpl.java

@@ -25,11 +25,13 @@ import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.excel.BCorpsExcel;
 import org.springblade.los.basic.corps.entity.*;
 import org.springblade.los.basic.corps.mapper.CorpsMapper;
 import org.springblade.los.basic.corps.service.*;
 import org.springblade.los.basic.corps.vo.BCorpsVO;
+import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
@@ -53,6 +55,8 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 
 	private final ISysClient sysClient;
 
+	private final IDeptUtils deptUtils;
+
 	private final IBCorpsAttnService bCorpsAttnService;
 
 	private final IBCorpsBadrecordService bCorpsBadrecordService;
@@ -90,6 +94,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 	public R submit(BCorps bCorps) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -97,6 +102,12 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		long cname = baseMapper.selectCount(new LambdaQueryWrapper<BCorps>()
 			.eq(BCorps::getCnName, bCorps.getCnName())
@@ -125,7 +136,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				bCorps.setDeptName(AuthUtil.getUserName());
 				bCorps.setDeptId(AuthUtil.getDeptId());
-				bCorps.setBranchId(deptId);
+				bCorps.setBranchId(branchId);
 				bCorps.setCreateDept(deptId);
 				bCorps.setCreateDeptName(deptName);
 			}
@@ -161,7 +172,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 				bCorpsTypes.setCreateUserName(AuthUtil.getUserName());
 				if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 					bCorpsTypes.setCreateDept(deptId);
-					bCorpsTypes.setBranchId(deptId);
+					bCorpsTypes.setBranchId(branchId);
 					bCorpsTypes.setCreateDeptName(deptName);
 				}
 				bCorpsTypesList.add(bCorpsTypes);
@@ -181,7 +192,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 						item.setCreateDept(deptId);
-						item.setBranchId(deptId);
+						item.setBranchId(branchId);
 						item.setCreateDeptName(deptName);
 					}
 				} else {
@@ -202,7 +213,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 						item.setCreateDept(deptId);
-						item.setBranchId(deptId);
+						item.setBranchId(branchId);
 						item.setCreateDeptName(deptName);
 					}
 				} else {
@@ -222,7 +233,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 					item.setCreateUser(AuthUtil.getUserId());
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-						item.setBranchId(deptId);
+						item.setBranchId(branchId);
 						item.setCreateDept(deptId);
 						item.setCreateDeptName(deptName);
 					}
@@ -244,7 +255,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 					item.setCreateUserName(AuthUtil.getUserName());
 					item.setByTime(new Date());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-						item.setBranchId(deptId);
+						item.setBranchId(branchId);
 						item.setCreateDept(deptId);
 						item.setCreateDeptName(deptName);
 					}
@@ -285,7 +296,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 					item.setCreateUser(AuthUtil.getUserId());
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-						item.setBranchId(deptId);
+						item.setBranchId(branchId);
 						item.setCreateDept(deptId);
 						item.setCreateDeptName(deptName);
 					}
@@ -345,6 +356,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 	public R<List<BCorps>> importBCorps(List<BCorpsExcel> excelList) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -352,6 +364,12 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		List<BCorps> bCorpsList = new ArrayList<>();
 		for (BCorpsExcel item : excelList) {
@@ -399,7 +417,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 					bCorps.setDeptName(AuthUtil.getUserName());
 					bCorps.setDeptId(AuthUtil.getDeptId());
 					bCorps.setCreateDept(deptId);
-					bCorps.setBranchId(deptId);
+					bCorps.setBranchId(branchId);
 					bCorps.setCreateDeptName(deptName);
 				}
 				this.saveOrUpdate(bCorps);

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

@@ -33,6 +33,7 @@ import org.springblade.los.basic.reports.service.IReportsService;
 import org.springblade.los.basic.reports.vo.ReportsVO;
 import org.springblade.los.business.sea.entity.Bills;
 import org.springblade.los.business.sea.service.IBillsService;
+import org.springblade.los.business.sea.service.IContainersBillsService;
 import org.springblade.los.finance.agreement.entity.AgreementPrice;
 import org.springblade.los.finance.agreement.entity.AgreementPriceItems;
 import org.springblade.los.finance.agreement.service.IAgreementPriceItemsService;
@@ -83,6 +84,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 
 	private final IAgreementPriceItemsService agreementPriceItemsService;
 
+	private final IContainersBillsService containersBillsService;
+
 
 	@Override
 	public IPage<ReportsVO> selectReportsPage(IPage<ReportsVO> page, ReportsVO reports) {
@@ -161,7 +164,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 									FeeCenterReports feeCenterReports = new FeeCenterReports();
 									feeCenterReports.setPid(item.getId());
 									feeCenterReports.setFeeCnName(fee.getFeeCnName());
-
+									feeCenterReports.setDc(fee.getDc());
 									List<FeeCenter> feeCenterListD = feeCenterListMh.stream()
 										.filter(e -> "D".equals(e.getDc()) && e.getPid().equals(item.getId()) &&
 											e.getFeeId().equals(fee.getFeeId()) && "CNY".equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
@@ -230,7 +233,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 							FeeCenterReports feeCenterReports = new FeeCenterReports();
 							feeCenterReports.setPid(bills.getId());
 							feeCenterReports.setFeeCnName(fee.getFeeCnName());
-
+							feeCenterReports.setDc(fee.getDc());
 							List<FeeCenter> feeCenterListD = feeCenterList.stream()
 								.filter(e -> "D".equals(e.getDc()) && e.getPid().equals(bills.getId()) &&
 									e.getFeeId().equals(fee.getFeeId()) && "CNY".equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
@@ -303,7 +306,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 								FeeCenterReports feeCenterReports = new FeeCenterReports();
 								feeCenterReports.setPid(bills.getId());
 								feeCenterReports.setFeeCnName(fee.getFeeCnName());
-
+								feeCenterReports.setDc(fee.getDc());
 								List<FeeCenter> feeCenterListD = feeCenterList.stream()
 									.filter(e -> "D".equals(e.getDc()) && e.getPid().equals(bills.getId()) &&
 										e.getFeeId().equals(fee.getFeeId()) && "CNY".equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
@@ -369,7 +372,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 							FeeCenterReports feeCenterReports = new FeeCenterReports();
 							feeCenterReports.setPid(details.getId());
 							feeCenterReports.setFeeCnName(fee.getFeeCnName());
-
+							feeCenterReports.setDc(fee.getDc());
 							List<FeeCenter> feeCenterListD = feeCenterListMh.stream()
 								.filter(e -> "D".equals(e.getDc()) && e.getPid().equals(details.getId()) &&
 									e.getFeeId().equals(fee.getFeeId()) && "CNY".equals(e.getCurCode()) && fee.getCurCode().equals(e.getCurCode()) &&
@@ -424,6 +427,40 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 						list.add(0, details);
 					}
 				}
+				if (list.size() > 0) {
+					for (Bills item : list) {
+						List<FeeCenterReports> feeCenterReports = new ArrayList<>();
+						List<FeeCenterReports> feeCenters = item.getFeeCenterList().stream()
+							.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
+								Comparator.comparing(FeeCenterReports::getFeeCnName))), ArrayList::new));
+						for (FeeCenterReports fee : feeCenters) {
+							FeeCenterReports feeCenterReportsD = item.getFeeCenterList().stream()
+								.filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && "D".equals(e.getDc()) )
+								.findFirst().orElse(null);
+							FeeCenterReports feeCenterReportsC = item.getFeeCenterList().stream()
+								.filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && "C".equals(e.getDc()))
+								.findFirst().orElse(null);
+							FeeCenterReports feeCenterReports1 = new FeeCenterReports();
+							feeCenterReports1.setFeeCnName(fee.getFeeCnName());
+							feeCenterReports1.setHblno(fee.getHblno());
+							feeCenterReports1.setPid(fee.getPid());
+							if (feeCenterReportsD != null) {
+								feeCenterReports1.setBillCorpCnName(feeCenterReportsD.getBillCorpCnName());
+								feeCenterReports1.setAmountD(feeCenterReportsD.getAmountD());
+								feeCenterReports1.setAmountLocD(feeCenterReportsD.getAmountLocD());
+								feeCenterReports1.setAmountUsdD(feeCenterReportsD.getAmountUsdD());
+							}
+							if (feeCenterReportsC != null) {
+								feeCenterReports1.setCorpCnName(feeCenterReportsC.getCorpCnName());
+								feeCenterReports1.setAmountC(feeCenterReportsC.getAmountC());
+								feeCenterReports1.setAmountLocC(feeCenterReportsC.getAmountLocC());
+								feeCenterReports1.setAmountUsdC(feeCenterReportsC.getAmountUsdC());
+							}
+							feeCenterReports.add(feeCenterReports1);
+						}
+						item.setFeeCenterList(feeCenterReports);
+					}
+				}
 				map.put("data", list);
 			}
 		} else if ("业务".equals(reportCode) && "MASTER 提单".equals(groupCode)) {

+ 1 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/units/controller/BUnitsController.java

@@ -85,6 +85,7 @@ public class BUnitsController extends BladeController {
 			.like(ObjectUtils.isNotNull(bUnits.getCnName()), BUnits::getCnName, bUnits.getCnName())
 			.like(ObjectUtils.isNotNull(bUnits.getEnName()), BUnits::getEnName, bUnits.getEnName())
 			.like(ObjectUtils.isNotNull(bUnits.getStatus()), BUnits::getStatus, bUnits.getStatus())
+			.like(ObjectUtils.isNotNull(bUnits.getQuantityRule()), BUnits::getQuantityRule, bUnits.getQuantityRule())
 			.orderByDesc(BUnits::getCreateTime);
 		IPage<BUnits> pages = bUnitsService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(pages);

+ 15 - 1
blade-service/blade-los/src/main/java/org/springblade/los/billno/service/impl/BusinessBillNoServiceImpl.java

@@ -25,6 +25,7 @@ import net.logstash.logback.encoder.org.apache.commons.lang3.time.DateFormatUtil
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.billno.entity.BillNoCenter;
 import org.springblade.los.billno.entity.BillNoSerial;
 import org.springblade.los.billno.entity.BusinessBillNo;
@@ -35,6 +36,7 @@ import org.springblade.los.billno.service.IBusinessBillNoService;
 import org.springblade.los.billno.vo.BillNoSerialVO;
 import org.springblade.los.billno.vo.BusinessBillNoVO;
 import org.springblade.los.business.sea.entity.Bills;
+import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 
@@ -58,6 +60,8 @@ public class BusinessBillNoServiceImpl extends ServiceImpl<BusinessBillNoMapper,
 
 	private final ISysClient sysClient;
 
+	private final IDeptUtils deptUtils;
+
 	@Override
 	public IPage<BusinessBillNoVO> selectBusinessBillNoPage(IPage<BusinessBillNoVO> page, BusinessBillNoVO businessBillNo) {
 		return page.setRecords(baseMapper.selectBusinessBillNoPage(page, businessBillNo));
@@ -65,6 +69,16 @@ public class BusinessBillNoServiceImpl extends ServiceImpl<BusinessBillNoMapper,
 
 	@Override
 	public R<String> getBillNoLos(BusinessBillNo businessBillNo) {
+		String branchId = "";
+		//获取部门ids对应中文名
+		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = AuthUtil.getDeptId();
+			}
+		}
 		BusinessBillNo detail = baseMapper.selectOne(new LambdaQueryWrapper<BusinessBillNo>()
 			.eq(BusinessBillNo::getTenantId, AuthUtil.getTenantId())
 			.eq(BusinessBillNo::getIsDeleted, 0)
@@ -129,7 +143,7 @@ public class BusinessBillNoServiceImpl extends ServiceImpl<BusinessBillNoMapper,
 				billNoSerial1.setPid(detail.getId());
 				billNoSerial1.setResetRule(detail.getResetRule());
 				billNoSerial1.setResetValue(billNo);
-				billNoSerial1.setBranchId(AuthUtil.getDeptId());
+				billNoSerial1.setBranchId(branchId);
 				billNoSerial1.setCreateDept(AuthUtil.getDeptId());
 				billNoSerial1.setCreateTime(new Date());
 				billNoSerial1.setCreateUser(AuthUtil.getUserId());

+ 12 - 1
blade-service/blade-los/src/main/java/org/springblade/los/business/amends/service/impl/AmendsServiceImpl.java

@@ -24,6 +24,7 @@ import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.basic.cur.service.IBCurrencyService;
 import org.springblade.los.business.amends.entity.Amends;
 import org.springblade.los.business.amends.mapper.AmendsMapper;
@@ -34,6 +35,7 @@ import org.springblade.los.business.sea.dto.WaitingBox;
 import org.springblade.los.business.sea.entity.*;
 import org.springblade.los.finance.fee.entity.FeeCenter;
 import org.springblade.los.finance.fee.service.IFeeCenterService;
+import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 
@@ -55,6 +57,8 @@ public class AmendsServiceImpl extends ServiceImpl<AmendsMapper, Amends> impleme
 
 	private final ISysClient sysClient;
 
+	private final IDeptUtils deptUtils;
+
 	private final IFeeCenterService feeCenterService;
 
 	@Override
@@ -66,6 +70,7 @@ public class AmendsServiceImpl extends ServiceImpl<AmendsMapper, Amends> impleme
 	public R submit(Amends amends) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -73,13 +78,19 @@ public class AmendsServiceImpl extends ServiceImpl<AmendsMapper, Amends> impleme
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		if (amends.getId() == null) {
 			amends.setCreateTime(new Date());
 			amends.setCreateUser(AuthUtil.getUserId());
 			amends.setCreateUserName(AuthUtil.getUserName());
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-				amends.setBranchId(deptId);
+				amends.setBranchId(branchId);
 				amends.setCreateDept(deptId);
 				amends.setCreateDeptName(deptName);
 			}

+ 12 - 1
blade-service/blade-los/src/main/java/org/springblade/los/business/files/service/impl/FilesCenterServiceImpl.java

@@ -22,10 +22,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.business.files.entity.FilesCenter;
 import org.springblade.los.business.files.mapper.FilesCenterMapper;
 import org.springblade.los.business.files.service.IFilesCenterService;
 import org.springblade.los.business.files.vo.FilesCenterVO;
+import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 
@@ -43,6 +45,8 @@ import java.util.List;
 public class FilesCenterServiceImpl extends ServiceImpl<FilesCenterMapper, FilesCenter> implements IFilesCenterService {
 	private final ISysClient sysClient;
 
+	private final IDeptUtils deptUtils;
+
 	@Override
 	public IPage<FilesCenterVO> selectFilesCenterPage(IPage<FilesCenterVO> page, FilesCenterVO filesCenter) {
 		return page.setRecords(baseMapper.selectFilesCenterPage(page, filesCenter));
@@ -52,6 +56,7 @@ public class FilesCenterServiceImpl extends ServiceImpl<FilesCenterMapper, Files
 	public R submit(FilesCenter filesCenter) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -59,6 +64,12 @@ public class FilesCenterServiceImpl extends ServiceImpl<FilesCenterMapper, Files
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		if (filesCenter.getId() == null) {
 			filesCenter.setCreateTime(new Date());
@@ -66,7 +77,7 @@ public class FilesCenterServiceImpl extends ServiceImpl<FilesCenterMapper, Files
 			filesCenter.setCreateUser(AuthUtil.getUserId());
 			filesCenter.setCreateUserName(AuthUtil.getUserName());
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-				filesCenter.setBranchId(deptId);
+				filesCenter.setBranchId(branchId);
 				filesCenter.setCreateDept(deptId);
 				filesCenter.setCreateDeptName(deptName);
 			}

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

@@ -334,13 +334,13 @@
         AND fee.is_deleted = '0'
         and bill.is_deleted = '0'
         <if test='acc.type != null and acc.type != "" and acc.type == "2"'>
-            and acc.amount_dr_loc > acc.stl_amount_dr_loc
+            and acc.amount_dr_loc > acc.stl_amount_dr_loc + applied_amount
         </if>
         <if test='acc.type != null and acc.type != "" and acc.type == "3"'>
-            and acc.amount_cr_loc > acc.stl_amount_cr_loc
+            and acc.amount_cr_loc > acc.stl_amount_cr_loc + applied_amount
         </if>
         <if test='acc.type != null and acc.type != "" and acc.type == "4"'>
-            and fee.amount > fee.uninvoiced_amount
+            and fee.amount > fee.uninvoiced_amount + applied_invoice_amount
         </if>
          <if test='acc.type != null and acc.type != "" and acc.type == "5"'>
             and fee.voucher_status = '0'
@@ -390,6 +390,12 @@
         <if test="acc.billDateList != null and acc.billDateList != '' and acc.billDateList[1] != ''">
             and acc.bill_date &lt;= #{acc.billDateList[1]}
         </if>
+        <if test="acc.accountDateFrom != null">
+            and acc.business_date &gt;= #{acc.accountDateFrom}
+        </if>
+        <if test="acc.accountDateTo != null">
+            and acc.business_date &lt;= #{acc.accountDateTo}
+        </if>
         <if test="acc.approveTimeList != null and acc.approveTimeList != '' and acc.approveTimeList[0] != ''">
             and fee.approve_time &gt;= #{acc.approveTimeList[0]}
         </if>

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

@@ -27,6 +27,7 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.basic.business.entity.BusinessType;
 import org.springblade.los.basic.business.service.IBusinessTypeService;
 import org.springblade.los.basic.cur.service.IBCurrencyService;
@@ -51,6 +52,7 @@ import org.springblade.los.finance.fee.entity.FeeCenter;
 import org.springblade.los.finance.fee.entity.FinAccBills;
 import org.springblade.los.finance.fee.service.IFeeCenterService;
 import org.springblade.los.finance.fee.service.IFinAccBillsService;
+import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -76,6 +78,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 
 	private final ISysClient sysClient;
 
+	private final IDeptUtils deptUtils;
+
 	private final IPreContainersService preContainersService;
 
 	private final IFilesCenterService filesCenterService;
@@ -114,6 +118,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 	public R submit(Bills bills) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -121,6 +126,12 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		if (ObjectUtils.isNotNull(bills.getMblno())) {
 			bills.setMblno(bills.getMblno().replaceAll(" ", ""));
@@ -157,7 +168,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			bills.setCreateUser(AuthUtil.getUserId());
 			bills.setCreateUserName(AuthUtil.getUserName());
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-				bills.setBranchId(deptId);
+				bills.setBranchId(branchId);
 				bills.setCreateDept(deptId);
 				bills.setCreateDeptName(deptName);
 			}
@@ -637,6 +648,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 	public R add(Bills bills) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -644,6 +656,12 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		long billNo = baseMapper.selectCount(new LambdaQueryWrapper<Bills>()
 			.eq(Bills::getBillNo, bills.getBillNo())
@@ -657,7 +675,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			bills.setCreateUser(AuthUtil.getUserId());
 			bills.setCreateUserName(AuthUtil.getUserName());
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-				bills.setBranchId(deptId);
+				bills.setBranchId(branchId);
 				bills.setCreateDept(deptId);
 				bills.setCreateDeptName(deptName);
 			}
@@ -1331,6 +1349,9 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		copyBills.setFeeCenterListC(feeCenterListC);
 		copyBills.setFeeCenterListD(feeCenterListD);
 		copyBills.setPreContainersList(preContainersList);
+		copyBills.setCfsQuantity(new BigDecimal("0.00"));
+		copyBills.setCfsQuantity(new BigDecimal("0.00"));
+		copyBills.setCfsQuantity(new BigDecimal("0.00"));
 		copyBills.setFilesList(filesList);
 		return copyBills;
 	}

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

@@ -22,10 +22,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.business.sea.entity.ContainersCommodity;
 import org.springblade.los.business.sea.mapper.ContainersCommodityMapper;
 import org.springblade.los.business.sea.service.IContainersCommodityService;
 import org.springblade.los.business.sea.vo.ContainersCommodityVO;
+import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 
@@ -44,6 +46,8 @@ public class ContainersCommodityServiceImpl extends ServiceImpl<ContainersCommod
 
 	private final ISysClient sysClient;
 
+	private final IDeptUtils deptUtils;
+
 	@Override
 	public IPage<ContainersCommodityVO> selectContainersCommodityPage(IPage<ContainersCommodityVO> page, ContainersCommodityVO containersCommodity) {
 		return page.setRecords(baseMapper.selectContainersCommodityPage(page, containersCommodity));
@@ -53,6 +57,7 @@ public class ContainersCommodityServiceImpl extends ServiceImpl<ContainersCommod
 	public R submit(ContainersCommodity containersCommodity) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -60,13 +65,19 @@ public class ContainersCommodityServiceImpl extends ServiceImpl<ContainersCommod
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		if (containersCommodity.getId() == null) {
 			containersCommodity.setCreateTime(new Date());
 			containersCommodity.setCreateUser(AuthUtil.getUserId());
 			containersCommodity.setCreateUserName(AuthUtil.getUserName());
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-				containersCommodity.setBranchId(deptId);
+				containersCommodity.setBranchId(branchId);
 				containersCommodity.setCreateDept(deptId);
 				containersCommodity.setCreateDeptName(deptName);
 			}
@@ -83,6 +94,7 @@ public class ContainersCommodityServiceImpl extends ServiceImpl<ContainersCommod
 	public R submitList(List<ContainersCommodity> containersCommodityList) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -90,6 +102,12 @@ public class ContainersCommodityServiceImpl extends ServiceImpl<ContainersCommod
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		for (ContainersCommodity containersCommodity : containersCommodityList) {
 			if (containersCommodity.getId() == null) {
@@ -97,7 +115,7 @@ public class ContainersCommodityServiceImpl extends ServiceImpl<ContainersCommod
 				containersCommodity.setCreateUser(AuthUtil.getUserId());
 				containersCommodity.setCreateUserName(AuthUtil.getUserName());
 				if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-					containersCommodity.setBranchId(deptId);
+					containersCommodity.setBranchId(branchId);
 					containersCommodity.setCreateDept(deptId);
 					containersCommodity.setCreateDeptName(deptName);
 				}

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

@@ -25,6 +25,7 @@ import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.business.sea.dto.WaitingBox;
 import org.springblade.los.business.sea.entity.Bills;
 import org.springblade.los.business.sea.entity.Containers;
@@ -37,6 +38,7 @@ import org.springblade.los.business.sea.service.IContainersCommodityService;
 import org.springblade.los.business.sea.service.IContainersService;
 import org.springblade.los.business.sea.vo.ContainersVO;
 import org.springblade.los.excel.BoxAndLeadSealNoExcel;
+import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -60,6 +62,8 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 
 	private final ISysClient sysClient;
 
+	private final IDeptUtils deptUtils;
+
 	private final IContainersBillsService containersBillsService;
 
 	private final BillsMapper billsMapper;
@@ -77,6 +81,7 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 	public R submit(Containers containers) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -84,13 +89,19 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		if (containers.getId() == null) {
 			containers.setCreateTime(new Date());
 			containers.setCreateUser(AuthUtil.getUserId());
 			containers.setCreateUserName(AuthUtil.getUserName());
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-				containers.setBranchId(deptId);
+				containers.setBranchId(branchId);
 				containers.setCreateDept(deptId);
 				containers.setCreateDeptName(deptName);
 			}
@@ -110,7 +121,7 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 						item.setCreateDept(deptId);
-						item.setBranchId(deptId);
+						item.setBranchId(branchId);
 						item.setCreateDeptName(deptName);
 					}
 				} else {
@@ -143,7 +154,7 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 						item.setCreateDept(deptId);
-						item.setBranchId(deptId);
+						item.setBranchId(branchId);
 						item.setCreateDeptName(deptName);
 					}
 				} else {
@@ -377,6 +388,7 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 	public R submitList(List<Containers> list) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -384,6 +396,12 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		List<ContainersBills> containersBillsList = new ArrayList<>();
 		List<ContainersBills> subtractContainersBillsList = new ArrayList<>();
@@ -394,7 +412,7 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 				containers.setCreateUser(AuthUtil.getUserId());
 				containers.setCreateUserName(AuthUtil.getUserName());
 				if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-					containers.setBranchId(deptId);
+					containers.setBranchId(branchId);
 					containers.setCreateDept(deptId);
 					containers.setCreateDeptName(deptName);
 				}
@@ -414,7 +432,7 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 						item.setCreateUserName(AuthUtil.getUserName());
 						if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 							item.setCreateDept(deptId);
-							item.setBranchId(deptId);
+							item.setBranchId(branchId);
 							item.setCreateDeptName(deptName);
 						}
 					} else {
@@ -447,7 +465,7 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 						item.setCreateUserName(AuthUtil.getUserName());
 						if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 							item.setCreateDept(deptId);
-							item.setBranchId(deptId);
+							item.setBranchId(branchId);
 							item.setCreateDeptName(deptName);
 						}
 					} else {

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

@@ -24,6 +24,7 @@ import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.business.sea.entity.Bills;
 import org.springblade.los.business.sea.entity.Containers;
 import org.springblade.los.business.sea.entity.ContainersBills;
@@ -34,6 +35,7 @@ import org.springblade.los.business.sea.service.IContainersBillsService;
 import org.springblade.los.business.sea.service.IContainersService;
 import org.springblade.los.business.sea.service.IPreContainersService;
 import org.springblade.los.business.sea.vo.PreContainersVO;
+import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -55,6 +57,8 @@ import java.util.stream.Collectors;
 public class PreContainersServiceImpl extends ServiceImpl<PreContainersMapper, PreContainers> implements IPreContainersService {
 	private final ISysClient sysClient;
 
+	private final IDeptUtils deptUtils;
+
 	private final IContainersService containersService;
 
 	private final IContainersBillsService containersBillsService;
@@ -72,6 +76,7 @@ public class PreContainersServiceImpl extends ServiceImpl<PreContainersMapper, P
 	public R submit(PreContainers preContainers) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -79,13 +84,19 @@ public class PreContainersServiceImpl extends ServiceImpl<PreContainersMapper, P
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		if (preContainers.getId() == null) {
 			preContainers.setCreateTime(new Date());
 			preContainers.setCreateUser(AuthUtil.getUserId());
 			preContainers.setCreateUserName(AuthUtil.getUserName());
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-				preContainers.setBranchId(deptId);
+				preContainers.setBranchId(branchId);
 				preContainers.setCreateDept(deptId);
 				preContainers.setCreateDeptName(deptName);
 			}
@@ -132,7 +143,7 @@ public class PreContainersServiceImpl extends ServiceImpl<PreContainersMapper, P
 			containers.setCreateUser(AuthUtil.getUserId());
 			containers.setCreateUserName(AuthUtil.getUserName());
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-				containers.setBranchId(deptId);
+				containers.setBranchId(branchId);
 				containers.setCreateDept(deptId);
 				containers.setCreateDeptName(deptName);
 			}
@@ -196,6 +207,7 @@ public class PreContainersServiceImpl extends ServiceImpl<PreContainersMapper, P
 	public R submitList(List<PreContainers> preContainersList) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -203,6 +215,12 @@ public class PreContainersServiceImpl extends ServiceImpl<PreContainersMapper, P
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		List<Containers> containersList = new ArrayList<>();
 		for (PreContainers preContainers : preContainersList) {
@@ -211,7 +229,7 @@ public class PreContainersServiceImpl extends ServiceImpl<PreContainersMapper, P
 				preContainers.setCreateUser(AuthUtil.getUserId());
 				preContainers.setCreateUserName(AuthUtil.getUserName());
 				if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-					preContainers.setBranchId(deptId);
+					preContainers.setBranchId(branchId);
 					preContainers.setCreateDept(deptId);
 					preContainers.setCreateDeptName(deptName);
 				}
@@ -242,7 +260,7 @@ public class PreContainersServiceImpl extends ServiceImpl<PreContainersMapper, P
 					containers.setCreateUser(AuthUtil.getUserId());
 					containers.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-						containers.setBranchId(deptId);
+						containers.setBranchId(branchId);
 						containers.setCreateDept(deptId);
 						containers.setCreateDeptName(deptName);
 					}

+ 13 - 2
blade-service/blade-los/src/main/java/org/springblade/los/finance/agreement/service/impl/AgreementPriceServiceImpl.java

@@ -25,6 +25,7 @@ import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.excel.AgreementPriceExcel;
 import org.springblade.los.finance.agreement.entity.AgreementPrice;
 import org.springblade.los.finance.agreement.entity.AgreementPriceItems;
@@ -32,6 +33,7 @@ import org.springblade.los.finance.agreement.mapper.AgreementPriceMapper;
 import org.springblade.los.finance.agreement.service.IAgreementPriceItemsService;
 import org.springblade.los.finance.agreement.service.IAgreementPriceService;
 import org.springblade.los.finance.agreement.vo.AgreementPriceVO;
+import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -53,6 +55,8 @@ public class AgreementPriceServiceImpl extends ServiceImpl<AgreementPriceMapper,
 
 	private final ISysClient sysClient;
 
+	private final IDeptUtils deptUtils;
+
 	private final IAgreementPriceItemsService agreementPriceItemsService;
 
 	@Override
@@ -66,6 +70,7 @@ public class AgreementPriceServiceImpl extends ServiceImpl<AgreementPriceMapper,
 	public R submit(AgreementPrice agreementPrice) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -73,6 +78,12 @@ public class AgreementPriceServiceImpl extends ServiceImpl<AgreementPriceMapper,
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		if (agreementPrice.getId() == null) {
 			agreementPrice.setCreateTime(new Date());
@@ -80,7 +91,7 @@ public class AgreementPriceServiceImpl extends ServiceImpl<AgreementPriceMapper,
 			agreementPrice.setCreateUserName(AuthUtil.getUserName());
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				agreementPrice.setCreateDept(deptId);
-				agreementPrice.setBranchId(deptId);
+				agreementPrice.setBranchId(branchId);
 				agreementPrice.setCreateDeptName(deptName);
 			}
 		} else {
@@ -98,7 +109,7 @@ public class AgreementPriceServiceImpl extends ServiceImpl<AgreementPriceMapper,
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 						item.setCreateDept(deptId);
-						item.setBranchId(deptId);
+						item.setBranchId(branchId);
 						item.setCreateDeptName(deptName);
 					}
 				} else {

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

@@ -24,6 +24,7 @@ import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.basic.corps.entity.BCorps;
 import org.springblade.los.basic.corps.service.IBCorpsService;
 import org.springblade.los.basic.cur.entity.BCurrency;
@@ -39,6 +40,7 @@ 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.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -62,6 +64,8 @@ import java.util.stream.Collectors;
 public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter> implements IFeeCenterService {
 	private final ISysClient sysClient;
 
+	private final IDeptUtils deptUtils;
+
 	private final BillsMapper billsMapper;
 
 	private final CurrencyMapper currencyMapper;
@@ -81,6 +85,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 	public R submit(FeeCenter feeCenter) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -88,6 +93,12 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		if (feeCenter.getId() == null) {
 			feeCenter.setCreateTime(new Date());
@@ -95,7 +106,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 			feeCenter.setCreateUserName(AuthUtil.getUserName());
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				feeCenter.setCreateDept(deptId);
-				feeCenter.setBranchId(deptId);
+				feeCenter.setBranchId(branchId);
 				feeCenter.setCreateDeptName(deptName);
 			}
 		} else {
@@ -345,6 +356,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 	public R submitList(List<FeeCenter> list) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -352,6 +364,12 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		List<FeeCenter> feeCenterList = new ArrayList<>();
 		for (FeeCenter feeCenter : list) {
@@ -361,7 +379,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				feeCenter.setCreateUserName(AuthUtil.getUserName());
 				if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 					feeCenter.setCreateDept(deptId);
-					feeCenter.setBranchId(deptId);
+					feeCenter.setBranchId(branchId);
 					feeCenter.setCreateDeptName(deptName);
 				}
 			} else {

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

@@ -24,6 +24,7 @@ import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.basic.business.entity.BusinessType;
 import org.springblade.los.basic.business.service.IBusinessTypeService;
 import org.springblade.los.billno.entity.BusinessBillNo;
@@ -48,6 +49,7 @@ import org.springblade.los.finance.stl.mapper.FinStlBillsMapper;
 import org.springblade.los.finance.vouchers.entity.FinVouchersItems;
 import org.springblade.los.finance.vouchers.mapper.FinVouchersItemsMapper;
 import org.springblade.los.finance.vouchers.mapper.FinVouchersMapper;
+import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -72,6 +74,8 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 
 	private final ISysClient sysClient;
 
+	private final IDeptUtils deptUtils;
+
 	private final IFeeCenterService feeCenterService;
 
 	private final BillsMapper billsMapper;
@@ -130,6 +134,7 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 		List<FinAccBills> finAccBillsList = new ArrayList<>();
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -137,6 +142,12 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		List<Bills> billsList = new ArrayList<>();
 		List<Long> ids = finAccBills.getFeeCenterList().stream().map(FeeCenter::getPid).collect(Collectors.toList());
@@ -182,7 +193,7 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 			data.setCreateUserName(AuthUtil.getUserName());
 			data.setCreateDept(deptId);
 			data.setCreateDeptName(deptName);
-			data.setBranchId(deptId);
+			data.setBranchId(branchId);
 			data.setDeptId(Long.parseLong(deptId));
 			data.setDeptName(deptName);
 

+ 79 - 20
blade-service/blade-los/src/main/java/org/springblade/los/finance/invoices/service/impl/FinInvoicesServiceImpl.java

@@ -25,6 +25,7 @@ import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.basic.business.entity.BusinessType;
 import org.springblade.los.basic.business.service.IBusinessTypeService;
 import org.springblade.los.basic.cur.service.IBCurrencyService;
@@ -43,6 +44,7 @@ import org.springblade.los.finance.invoices.service.IFinInvoiceItemDetailService
 import org.springblade.los.finance.invoices.service.IFinInvoicesItemsService;
 import org.springblade.los.finance.invoices.service.IFinInvoicesService;
 import org.springblade.los.finance.invoices.vo.FinInvoicesVO;
+import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -69,6 +71,8 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 
 	private final ISysClient sysClient;
 
+	private final IDeptUtils deptUtils;
+
 	private final IFinInvoicesItemsService finInvoicesItemsService;
 
 	private final IBusinessBillNoService businessBillNoService;
@@ -94,6 +98,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 	public R submit(FinInvoices finInvoices) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -101,6 +106,12 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		if (finInvoices.getId() == null) {
 			BusinessType businessType = bBusinessTypeService.getOne(new LambdaQueryWrapper<BusinessType>()
@@ -125,7 +136,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 			finInvoices.setCreateUserName(AuthUtil.getUserName());
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				finInvoices.setCreateDept(deptId);
-				finInvoices.setBranchId(deptId);
+				finInvoices.setBranchId(branchId);
 				finInvoices.setCreateDeptName(deptName);
 			}
 		} else {
@@ -142,8 +153,17 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 				//判断是否是本位币
 				if ("CNY".equals(item.getCurrentCurCode())) {
 					item.setCurrentAmountLoc(item.getCurrentAmount());
+					item.setCurrentAmountEx(item.getCurrentAmount());
 				} else {
 					item.setCurrentAmountLoc(bCurrencyService.converterCny(item.getCurrentCurCode(), item.getCurrentAmount()));
+					if (1 == finInvoices.getIsExchangeToCny()) {
+						item.setCurrentAmountEx(item.getCurrentAmount().multiply(finInvoices.getExrate()));
+					} else {
+						item.setCurrentAmountEx(item.getCurrentAmount().multiply(item.getExrate()));
+					}
+				}
+				if (item.getDc().equals("D")) {
+
 				}
 				// 去税金额 = 本次结算金额currentStlAmount - 税额amountTax
 				BigDecimal amountNet = new BigDecimal("0.00");
@@ -162,7 +182,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 						item.setCreateDept(deptId);
-						item.setBranchId(deptId);
+						item.setBranchId(branchId);
 						item.setCreateDeptName(deptName);
 					}
 				} else {
@@ -172,27 +192,45 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 				}
 			}
 			finInvoicesItemsService.saveOrUpdateBatch(finInvoices.getFinInvoicesItemsList());
-			BigDecimal amountCny = new BigDecimal("0.00");
-			BigDecimal amountUsd = new BigDecimal("0.00");
-			BigDecimal amountTax = new BigDecimal("0.00");
-			amountCny = amountCny.add(finInvoices.getFinInvoicesItemsList().stream()
-				.filter(e -> "CNY".equals(e.getCurrentCurCode())).map(FinInvoicesItems::getCurrentAmount)
+			BigDecimal amountCnyD = new BigDecimal("0.00");
+			BigDecimal amountUsdD = new BigDecimal("0.00");
+			BigDecimal amountTaxD = new BigDecimal("0.00");
+			BigDecimal amountCnyC = new BigDecimal("0.00");
+			BigDecimal amountUsdC = new BigDecimal("0.00");
+			BigDecimal amountTaxC = new BigDecimal("0.00");
+			BigDecimal amountCnyLoc = new BigDecimal("0.00");
+			BigDecimal amountUsdLoc = new BigDecimal("0.00");
+			BigDecimal amountTaxLoc = new BigDecimal("0.00");
+			amountCnyD = amountCnyD.add(finInvoices.getFinInvoicesItemsList().stream()
+				.filter(e -> "CNY".equals(e.getCurrentCurCode()) && "D".equals(e.getDc())).map(FinInvoicesItems::getCurrentAmount)
+				.filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+			amountCnyC = amountCnyC.add(finInvoices.getFinInvoicesItemsList().stream()
+				.filter(e -> "CNY".equals(e.getCurrentCurCode()) && "C".equals(e.getDc())).map(FinInvoicesItems::getCurrentAmount)
 				.filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-			finInvoices.setAmountCny(amountCny);
-			amountUsd = amountUsd.add(finInvoices.getFinInvoicesItemsList().stream()
-				.filter(e -> "USD".equals(e.getCurrentCurCode())).map(FinInvoicesItems::getCurrentAmount)
+			amountUsdD = amountUsdD.add(finInvoices.getFinInvoicesItemsList().stream()
+				.filter(e -> "USD".equals(e.getCurrentCurCode()) && "D".equals(e.getDc())).map(FinInvoicesItems::getCurrentAmount)
 				.filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-			finInvoices.setAmountUsd(amountUsd);
-			amountTax = amountTax.add(finInvoices.getFinInvoicesItemsList().stream()
-				.filter(e -> "CNY".equals(e.getCurrentCurCode())).map(FinInvoicesItems::getCurrentAmountTax)
+			amountUsdC = amountUsdC.add(finInvoices.getFinInvoicesItemsList().stream()
+				.filter(e -> "USD".equals(e.getCurrentCurCode()) && "C".equals(e.getDc())).map(FinInvoicesItems::getCurrentAmount)
 				.filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-			finInvoices.setAmountTax(amountTax);
-			finInvoices.setAmountLoc(amountCny.add(bCurrencyService.converterCny("USD", amountUsd)));
-			finInvoices.setAmountSub(finInvoices.getAmountLoc());
+			amountTaxD = amountTaxD.add(finInvoices.getFinInvoicesItemsList().stream()
+				.filter(e -> "CNY".equals(e.getCurrentCurCode()) && "D".equals(e.getDc())).map(FinInvoicesItems::getCurrentAmountTax)
+				.filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+			amountTaxC = amountTaxC.add(finInvoices.getFinInvoicesItemsList().stream()
+				.filter(e -> "CNY".equals(e.getCurrentCurCode()) && "C".equals(e.getDc())).map(FinInvoicesItems::getCurrentAmountTax)
+				.filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+			finInvoices.setAmountCny(amountCnyD.subtract(amountCnyC));
+			finInvoices.setAmountUsd(amountUsdD.subtract(amountUsdC));
+			finInvoices.setAmountTax(amountTaxD.subtract(amountTaxC).abs());
+			finInvoices.setAmountLoc(finInvoices.getAmountCny().add(bCurrencyService.converterCny("USD", finInvoices.getAmountSub())));
+			finInvoices.setAmountSub(amountCnyD.subtract(amountCnyC));
+			finInvoices.setAmountSubLocNet(finInvoices.getAmountLoc());
+			finInvoices.setAmountSubUsd(amountUsdD.subtract(amountUsdC));
 		}
+		BigDecimal taxRate = new BigDecimal("0.00");
 		BigDecimal invoiceAmount = new BigDecimal("0.00");
 		if (ObjectUtils.isNotNull(finInvoices.getFinInvoiceItemDetailList())) {
-			BigDecimal taxRate = new BigDecimal("1").add(finInvoices.getTaxRate().divide(new BigDecimal("100"), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP));
+			taxRate = new BigDecimal("1").add(finInvoices.getTaxRate().divide(new BigDecimal("100"), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP));
 			for (FinInvoiceItemDetail item : finInvoices.getFinInvoiceItemDetailList()) {
 				item.setPid(finInvoices.getId());
 				if (item.getId() == null) {
@@ -214,9 +252,6 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 			}
 			finInvoiceItemDetailService.saveOrUpdateBatch(finInvoices.getFinInvoiceItemDetailList());
 		}
-		if (invoiceAmount.compareTo(finInvoices.getAmountLoc()) > 0) {
-			throw new RuntimeException("开票金额大于合计金额,保存失败");
-		}
 		this.saveOrUpdate(finInvoices);
 		return R.data(finInvoices);
 	}
@@ -306,6 +341,15 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 			feeCenterService.saveOrUpdateBatch(feeCenterListNew);
 			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
 		}
+		BigDecimal invoiceAmount = new BigDecimal("0.00");
+		if (ObjectUtils.isNotNull(finInvoices.getFinInvoiceItemDetailList())) {
+			for (FinInvoiceItemDetail item : finInvoices.getFinInvoiceItemDetailList()) {
+				invoiceAmount = invoiceAmount.add(item.getAmount());
+			}
+		}
+		if (invoiceAmount.compareTo(finInvoices.getAmountLoc()) > 0) {
+			throw new RuntimeException("开票金额大于合计金额,保存失败");
+		}
 		detail.setStatus(3);
 		baseMapper.updateById(detail);
 		return R.data(detail);
@@ -509,6 +553,15 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 			}
 			feeCenterService.saveOrUpdateBatch(feeCenterList);
 		}
+		BigDecimal invoiceAmount = new BigDecimal("0.00");
+		if (ObjectUtils.isNotNull(finInvoices.getFinInvoiceItemDetailList())) {
+			for (FinInvoiceItemDetail item : finInvoices.getFinInvoiceItemDetailList()) {
+				invoiceAmount = invoiceAmount.add(item.getAmount());
+			}
+		}
+		if (invoiceAmount.compareTo(finInvoices.getAmountLoc()) > 0) {
+			throw new RuntimeException("开票金额大于合计金额,保存失败");
+		}
 		detail.setStatus(3);
 		baseMapper.updateById(detail);
 		return R.data(detail);
@@ -692,9 +745,15 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 		if (ObjectUtils.isNull(billId)) {
 			throw new RuntimeException("缺少必要参数");
 		}
+		FinInvoices details = baseMapper.selectById(billId);
 		List<FinInvoicesItems> finStlBillsItemsList = new ArrayList<>();
 		List<FinInvoiceItemDetail> finInvoiceItemDetailList = new ArrayList<>();
 		FinInvoices finInvoices = new FinInvoices();
+		BeanUtil.copyProperties(details, finInvoices);
+		finInvoices.setId(null);
+		finInvoices.setBillStatus("0");
+		finInvoices.setStatus(0);
+		finInvoices.setBillNo("");
 		finInvoices.setType("销项");
 		finInvoices.setBillDate(new Date());
 		List<FinInvoicesItems> finInvoicesItems = finInvoicesItemsService.list(new LambdaQueryWrapper<FinInvoicesItems>()

+ 32 - 50
blade-service/blade-los/src/main/java/org/springblade/los/finance/stl/service/impl/FinStlBillsServiceImpl.java

@@ -26,6 +26,7 @@ import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.basic.business.entity.BusinessType;
 import org.springblade.los.basic.business.service.IBusinessTypeService;
 import org.springblade.los.basic.cur.service.IBCurrencyService;
@@ -55,6 +56,7 @@ import org.springblade.los.finance.stl.service.IFinStlBillsItemsService;
 import org.springblade.los.finance.stl.service.IFinStlBillsService;
 import org.springblade.los.finance.stl.service.IFinStlBillsVoucherItemsService;
 import org.springblade.los.finance.stl.vo.FinStlBillsVO;
+import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -80,6 +82,8 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 
 	private final ISysClient sysClient;
 
+	private final IDeptUtils deptUtils;
+
 	private final IFinStlBillsItemsService finStlBillsItemsService;
 
 	private final IFinStlBillsVoucherItemsService finStlBillsVoucherItemsService;
@@ -136,6 +140,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 	public R submit(FinStlBills finStlBills) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -143,6 +148,12 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		if (finStlBills.getId() == null) {
 			BusinessType businessType = bBusinessTypeService.getOne(new LambdaQueryWrapper<BusinessType>()
@@ -168,7 +179,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			finStlBills.setCreateUserName(AuthUtil.getUserName());
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				finStlBills.setCreateDept(deptId);
-				finStlBills.setBranchId(deptId);
+				finStlBills.setBranchId(branchId);
 				finStlBills.setCreateDeptName(deptName);
 			}
 		} else {
@@ -206,7 +217,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 						item.setCreateDept(deptId);
-						item.setBranchId(deptId);
+						item.setBranchId(branchId);
 						item.setCreateDeptName(deptName);
 					}
 				} else {
@@ -309,47 +320,6 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 				.eq(FeeCenter::getIsDeleted, 0));
 			List<FeeCenter> feeCenterListNew = reconciliationFeeCenter(detail, feeCenterList, 1);
 			feeCenterService.saveOrUpdateBatch(feeCenterListNew);
-			/*List<Bills> billsList = new ArrayList<>();
-			List<Long> ids = finAccBillsList.stream().map(FinAccBills::getBusinessBillId).filter(Objects::nonNull).collect(Collectors.toList());
-			List<Long> idsD = finAccBillsList.stream().filter(e -> "D".equals(e.getAccountDc())).map(FinAccBills::getBusinessBillId).filter(Objects::nonNull).collect(Collectors.toList());
-			List<Long> idsC = finAccBillsList.stream().filter(e -> "C".equals(e.getAccountDc())).map(FinAccBills::getBusinessBillId).filter(Objects::nonNull).collect(Collectors.toList());
-			List<Long> divideIds = finAccBillsList.stream().map(FinAccBills::getBusinessBillDivideId).filter(Objects::nonNull).collect(Collectors.toList());
-			List<Long> divideIdsD = finAccBillsList.stream().filter(e -> "D".equals(e.getAccountDc())).map(FinAccBills::getBusinessBillDivideId).filter(Objects::nonNull).collect(Collectors.toList());
-			List<Long> divideIdsC = finAccBillsList.stream().filter(e -> "C".equals(e.getAccountDc())).map(FinAccBills::getBusinessBillDivideId).filter(Objects::nonNull).collect(Collectors.toList());
-			if (ObjectUtils.isNotNull(ids) && ids.size() > 0) {
-				billsList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
-					.eq(Bills::getTenantId, AuthUtil.getTenantId())
-					.eq(Bills::getIsDeleted, 0)
-					.in(Bills::getId, ids));
-			}
-			if (ObjectUtils.isNotNull(divideIds) && divideIds.size() > 0) {
-				List<Bills> divideBillsList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
-					.eq(Bills::getTenantId, AuthUtil.getTenantId())
-					.eq(Bills::getIsDeleted, 0)
-					.in(Bills::getId, divideIds));
-				billsList.addAll(divideBillsList);
-			}
-			for (Bills item : billsList) {
-				item.setBillingStatus(item.getBillingStatus() + 1);
-				long countD = finAccBillsService.count(new LambdaQueryWrapper<FinAccBills>()
-					.eq(FinAccBills::getBusinessBillId, item.getId())
-					.eq(FinAccBills::getTenantId, AuthUtil.getTenantId())
-					.eq(FinAccBills::getIsDeleted, 0)
-					.eq(FinAccBills::getIsChecked, 0)
-					.eq(FinAccBills::getAccountDc, "D"));
-				long countC = finAccBillsService.count(new LambdaQueryWrapper<FinAccBills>()
-					.eq(FinAccBills::getBusinessBillId, item.getId())
-					.eq(FinAccBills::getTenantId, AuthUtil.getTenantId())
-					.eq(FinAccBills::getIsDeleted, 0)
-					.eq(FinAccBills::getIsChecked, 0)
-					.eq(FinAccBills::getAccountDc, "C"));
-				if (item.getCheckDrStatus() != 9) {
-					Bills bills = reconciliation(item, countD, divideIdsD, countC, divideIdsC, idsD, idsC);
-					billsMapper.updateById(bills);
-				} else {
-					billsMapper.updateById(item);
-				}
-			}*/
 			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
 		}
 		detail.setStatus(3);
@@ -544,7 +514,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					List<FinInvoicesItems> finInvoicesItemsList = finInvoicesItemsMapper.selectList(new LambdaQueryWrapper<FinInvoicesItems>()
 						.eq(FinInvoicesItems::getTenantId, AuthUtil.getTenantId())
 						.eq(FinInvoicesItems::getIsDeleted, 0)
-						.in(FinInvoicesItems::getPid, ids));
+						.in(FinInvoicesItems::getId, ids));
 					if (finInvoicesItemsList.size() > 0) {
 						List<Long> pid = finInvoicesItemsList.stream().map(FinInvoicesItems::getPid).filter(Objects::nonNull).distinct().collect(Collectors.toList());
 						List<FinInvoices> finInvoicesList = finInvoicesMapper.selectList(new LambdaQueryWrapper<FinInvoices>()
@@ -687,7 +657,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					.eq(FeeCenter::getIsDeleted, 0)
 					.eq(FeeCenter::getAccBillId, finAccBills.getId())
 					.eq(FeeCenter::getAccStatus, 1)
-					.apply("amount != stl_ttl_amount")
+//					.apply("amount != stl_ttl_amount")
 					.orderByDesc(FeeCenter::getCreateTime));
 				BigDecimal currentStlAmount = item.getCurrentStlAmount();
 				BigDecimal stlTtlAmount = feeCenters.stream().map(FeeCenter::getStlTtlAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -918,7 +888,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					.eq(FeeCenter::getIsDeleted, 0)
 					.eq(FeeCenter::getAccBillId, finAccBills.getId())
 					.eq(FeeCenter::getAccStatus, 1)
-					.apply("stl_ttl_amount != 0")
+//					.apply("stl_ttl_amount != 0")
 					.orderByDesc(FeeCenter::getCreateTime));
 				BigDecimal currentStlAmount = item.getCurrentStlAmount();
 				BigDecimal stlTtlAmount = feeCenters.stream().map(FeeCenter::getStlTtlAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -1364,6 +1334,16 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 				finStlBills.setCorpCnName(finInvoices.get(0).getCorpCnName());
 				finStlBills.setCorpEnName(finInvoices.get(0).getCorpEnName());
 				finStlBills.setBusinessTypes(finInvoices.get(0).getBusinessTypes());
+				finStlBills.setBusinessNo(finInvoices.get(0).getBusinessNo());
+				finStlBills.setCheckNo(finInvoices.get(0).getCheckNo());
+				finStlBills.setMblno(finInvoices.get(0).getMblno());
+				finStlBills.setHblno(finInvoices.get(0).getHblno());
+				finStlBills.setVesselCnName(finInvoices.get(0).getVesselCnName());
+				finStlBills.setVesselId(finInvoices.get(0).getVesselId());
+				finStlBills.setVesselEnName(finInvoices.get(0).getVesselEnName());
+				finStlBills.setVoucherNo(finInvoices.get(0).getVoyageNo());
+				finStlBills.setCurCode(finInvoices.get(0).getCurCode());
+				finStlBills.setInvoiceNo(finInvoices.get(0).getInvoiceNo());
 				finStlBills.setDc(dc);
 				finStlBills.setRequestNo(finInvoices.stream().map(FinInvoices::getBillNo).filter(Objects::nonNull).distinct()
 					.collect(Collectors.joining(",")));
@@ -1402,10 +1382,12 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 				.eq(FinStlBills::getStatus, "3")
 				.apply("find_in_set(id,'" + billId + "')"));
 			if (finStlBills1.size() > 0) {
-				finStlBills.setCorpId(finStlBills1.get(0).getCorpId());
-				finStlBills.setCorpCnName(finStlBills1.get(0).getCorpCnName());
-				finStlBills.setCorpEnName(finStlBills1.get(0).getCorpEnName());
-				finStlBills.setBusinessTypes(finStlBills1.get(0).getBusinessTypes());
+				BeanUtil.copyProperties(finStlBills1.get(0), finStlBills);
+				finStlBills.setId(null);
+				finStlBills.setStatus(0);
+				finStlBills.setBillStatus("0");
+				finStlBills.setBusinessType("STL");
+				finStlBills.setBillDate(new Date());
 				finStlBills.setDc(dc);
 				finStlBills.setRequestNo(finStlBills1.stream().map(FinStlBills::getBillNo).filter(Objects::nonNull).distinct()
 					.collect(Collectors.joining(",")));

+ 13 - 2
blade-service/blade-los/src/main/java/org/springblade/los/finance/vouchers/service/impl/FinVouchersServiceImpl.java

@@ -24,6 +24,7 @@ import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.basic.business.entity.BusinessType;
 import org.springblade.los.basic.business.service.IBusinessTypeService;
 import org.springblade.los.basic.cur.service.IBCurrencyService;
@@ -42,6 +43,7 @@ import org.springblade.los.finance.vouchers.mapper.FinVouchersMapper;
 import org.springblade.los.finance.vouchers.service.IFinVouchersItemsService;
 import org.springblade.los.finance.vouchers.service.IFinVouchersService;
 import org.springblade.los.finance.vouchers.vo.FinVouchersVO;
+import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -67,6 +69,8 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 
 	private final ISysClient sysClient;
 
+	private final IDeptUtils deptUtils;
+
 	private final IFinVouchersItemsService finVouchersItemsService;
 
 	private final IBCurrencyService bCurrencyService;
@@ -104,6 +108,7 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 	public R submit(FinVouchers finVouchers) {
 		String deptId = "";
 		String deptName = "";
+		String branchId = "";
 		//获取部门ids对应中文名
 		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 			deptId = AuthUtil.getDeptId();
@@ -111,6 +116,12 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 				deptName = String.join(",", res.getData());
 			}
+			Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+			if (dept != null) {
+				branchId = dept.getId() + "";
+			} else {
+				branchId = deptId;
+			}
 		}
 		if (finVouchers.getId() == null) {
 			BusinessType businessType = bBusinessTypeService.getOne(new LambdaQueryWrapper<BusinessType>()
@@ -135,7 +146,7 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 			finVouchers.setCreateUserName(AuthUtil.getUserName());
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				finVouchers.setCreateDept(deptId);
-				finVouchers.setBranchId(deptId);
+				finVouchers.setBranchId(branchId);
 				finVouchers.setCreateDeptName(deptName);
 			}
 		} else {
@@ -171,7 +182,7 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 						item.setCreateDept(deptId);
-						item.setBranchId(deptId);
+						item.setBranchId(branchId);
 						item.setCreateDeptName(deptName);
 					}
 				} else {