Browse Source

1.费用中心增加单据所属公司
2.费用中心,账单中心相关保存,导入接口增加单据所属公司
3.未收付明细统计接口检索条件修改
4.付费申请,结算中心增加转人民币相关接口逻辑
5.营业费用增加打印次数接口
6.营业费用增加报表打印接口
7.成本中心增加批量复制接口
8.业务修改bug修改

纪新园 4 months ago
parent
commit
97de7d79b7
27 changed files with 452 additions and 151 deletions
  1. 6 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/entity/RouteCost.java
  2. 16 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java
  3. 12 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FeeCenter.java
  4. 12 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FinAccBills.java
  5. 31 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/operatingExpenses/entity/OperatingExpenses.java
  6. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/FeeSummaryQ.java
  7. 6 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/FinanceProfitDtoList.java
  8. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/Util/MagicValues.java
  9. 21 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsBoxServiceImpl.java
  10. 17 7
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java
  11. 8 4
      blade-service/blade-los/src/main/java/org/springblade/los/box/controller/RouteCostController.java
  12. 3 1
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/IRouteCostService.java
  13. 142 104
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/RouteCostServiceImpl.java
  14. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/amends/service/impl/AmendsServiceImpl.java
  15. 0 3
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java
  16. 12 2
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
  17. 3 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/update/service/impl/UpdateServiceImpl.java
  18. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/check/service/impl/AuditProecessServiceImpl.java
  19. 20 2
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/mapper/FinAccBillsMapper.xml
  20. 24 5
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java
  21. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FinAccBillsServiceImpl.java
  22. 9 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/operatingExpenses/controller/OperatingExpensesController.java
  23. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/operatingExpenses/service/IOperatingExpensesService.java
  24. 30 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/operatingExpenses/service/impl/OperatingExpensesServiceImpl.java
  25. 42 15
      blade-service/blade-los/src/main/java/org/springblade/los/finance/stl/service/impl/FinStlBillsServiceImpl.java
  26. 18 8
      blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/service/impl/StatisticAnalysisServiceImpl.java
  27. 6 0
      blade-service/blade-los/src/main/java/org/springblade/los/view/mapper/FinanceProfitMapper.xml

+ 6 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/entity/RouteCost.java

@@ -617,6 +617,12 @@ public class RouteCost implements Serializable {
 	@TableField(exist = false)
 	private String etd;
 
+	/**
+	 * 临时复制id
+	 */
+	@TableField(exist = false)
+	private Long copyId;
+
 
 
 }

+ 16 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java

@@ -1627,6 +1627,11 @@ public class Bills implements Serializable {
 	@ApiModelProperty(value = "文件联络人邮箱")
 	private String fileEmail;
 	/**
+	 * 文件联络人电话
+	 */
+	@ApiModelProperty(value = "文件联络人电话")
+	private String fileTel;
+	/**
 	 * 是否修改过箱型箱量
 	 */
 	@ApiModelProperty(value = "是否修改过箱型箱量")
@@ -2193,6 +2198,17 @@ public class Bills implements Serializable {
 	 */
 	@TableField(exist = false)
 	private String address;
+
+	/**
+	 * 客户地址
+	 */
+	@TableField(exist = false)
+	private String corpAddress;
+	/**
+	 * 客户地址英文
+	 */
+	@TableField(exist = false)
+	private String corpAddressEn;
 	/**
 	 * Swift Code
 	 */

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

@@ -1042,5 +1042,17 @@ public class FeeCenter implements Serializable {
 	@ApiModelProperty(value = "代收、付客户英文名称")
 	private String generationCorpEnName;
 
+	/**
+	 * 单据所属公司
+	 */
+	@ApiModelProperty(value = "单据所属公司")
+	private String billBranchId;
+
+	/**
+	 * 单据所属公司
+	 */
+	@ApiModelProperty(value = "单据所属公司")
+	private String billBranchName;
+
 }
 

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

@@ -846,5 +846,17 @@ public class FinAccBills implements Serializable {
 	@ApiModelProperty(value = "税额")
 	private BigDecimal amountTax;
 
+	/**
+	 * 单据所属公司
+	 */
+	@ApiModelProperty(value = "单据所属公司")
+	private String billBranchId;
+
+	/**
+	 * 单据所属公司
+	 */
+	@ApiModelProperty(value = "单据所属公司")
+	private String billBranchName;
+
 
 }

+ 31 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/operatingExpenses/entity/OperatingExpenses.java

@@ -23,6 +23,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springblade.los.business.files.entity.FilesCenter;
+import org.springblade.system.entity.Dept;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -188,6 +189,30 @@ public class OperatingExpenses implements Serializable {
 	@ApiModelProperty(value = "租户")
 	private String tenantId;
 
+	/**
+	 * 打印人
+	 */
+	@ApiModelProperty(value = "打印人")
+	private Long printerId;
+
+	/**
+	 * 打印人
+	 */
+	@ApiModelProperty(value = "打印人")
+	private String printerName;
+
+	/**
+	 * 打印日期
+	 */
+	@ApiModelProperty(value = "打印日期")
+	private Date printDate;
+
+	/**
+	 * 打印次数
+	 */
+	@ApiModelProperty(value = "打印次数")
+	private Integer printFrequency;
+
 	@TableField(exist = false)
 	private List<OperatingExpensesItem> operatingExpensesItemList;
 	@TableField(exist = false)
@@ -203,5 +228,11 @@ public class OperatingExpenses implements Serializable {
 	@TableField(exist = false)
 	private String pageLabel;
 
+	/**
+	 * 报表表头信息
+	 */
+	@TableField(exist = false)
+	private Dept dept;
+
 
 }

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/FeeSummaryQ.java

@@ -64,6 +64,10 @@ public class FeeSummaryQ {
 	 */
 	private String branchId;
 	/**
+	 * 单据所属公司
+	 */
+	private String billBranchId;
+	/**
 	 * 团队id
 	 */
 	private String teamId;

+ 6 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/FinanceProfitDtoList.java

@@ -362,6 +362,12 @@ public class FinanceProfitDtoList {
 	private String branchId;
 
 	/**
+	 * 单据所属公司 Id
+	 */
+	@ExcelIgnore
+	private String billBranchId;
+
+	/**
 	 * 数据角色
 	 */
 	@ExcelIgnore

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

@@ -55,6 +55,8 @@ public class MagicValues {
 	public static final String HYCK = "HYCK";
 	public static final String HYJK = "HYJK";
 	public static final String BJZX = "BJZX";
+
+	public static final String YYFY = "YYFY";
 	public static final String QUOTATION_CENTER = "mkt&slot";
 	public static final String FYSQ = "FYSQ";
 	public static final String AMEND = "AMEND";

+ 21 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsBoxServiceImpl.java

@@ -47,6 +47,10 @@ import org.springblade.los.finance.fee.entity.FeeCenter;
 import org.springblade.los.finance.fee.entity.FeeCenterItems;
 import org.springblade.los.finance.fee.service.IFeeCenterItemsService;
 import org.springblade.los.finance.fee.service.IFeeCenterService;
+import org.springblade.los.finance.operatingExpenses.entity.OperatingExpenses;
+import org.springblade.los.finance.operatingExpenses.entity.OperatingExpensesItem;
+import org.springblade.los.finance.operatingExpenses.service.IOperatingExpensesItemService;
+import org.springblade.los.finance.operatingExpenses.service.IOperatingExpensesService;
 import org.springblade.system.entity.Dept;
 import org.springblade.system.entity.DictBiz;
 import org.springblade.system.feign.IDictBizClient;
@@ -99,6 +103,10 @@ public class ReportsBoxServiceImpl implements IReportsBoxService {
 
 	private final IFeeCenterItemsService feeCenterItemsService;
 
+	private final IOperatingExpensesService operatingExpensesService;
+
+	private final IOperatingExpensesItemService operatingExpensesItemService;
+
 
 	@Override
 	public R getReportData(String billId, String reportCode, String groupCode, String corpIds, String itemIds,
@@ -406,6 +414,19 @@ public class ReportsBoxServiceImpl implements IReportsBoxService {
 			} else {
 				map.put(MagicValues.DATA, null);
 			}
+		} else if (MagicValues.YYFY.equals(reportCode) && MagicValues.YYFY.equals(groupCode) && MagicValues.YYFY.equals(type)) {
+			OperatingExpenses operatingExpenses = operatingExpensesService.getById(billId);
+			if (operatingExpenses != null) {
+				List<OperatingExpensesItem> operatingExpensesItemList = operatingExpensesItemService.list(new LambdaQueryWrapper<OperatingExpensesItem>()
+					.eq(OperatingExpensesItem::getTenantId, AuthUtil.getTenantId())
+					.eq(OperatingExpensesItem::getIsDeleted, 0)
+					.eq(OperatingExpensesItem::getPid, operatingExpenses.getId()));
+				operatingExpenses.setOperatingExpensesItemList(operatingExpensesItemList);
+				operatingExpenses.setDept(dept);
+				map.put(MagicValues.DATA, operatingExpenses);
+			} else {
+				map.put(MagicValues.DATA, null);
+			}
 		} else {
 			map.put(MagicValues.DATA, null);
 		}

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

@@ -288,7 +288,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 							if (MagicValues.PAID_APPLICATION_V1.equals(groupCode)) {
 								List<FinStlBillsItems> reducelList = finStlBillsItems.stream()
 									.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
-										Comparator.comparing(f -> f.getMblno() + f.getHblno()))), ArrayList::new));
+										Comparator.comparing(f -> f.getMblno() + f.getHblno()+f.getCurCode()))), ArrayList::new));
 								List<Bills> billsList = new ArrayList<>();
 								List<FeeCenter> feeCenterListAll = new ArrayList<>();
 								if (!reducelList.isEmpty()) {
@@ -296,7 +296,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 									billsList = billsService.list(new LambdaQueryWrapper<Bills>()
 										.eq(Bills::getTenantId, AuthUtil.getTenantId())
 										.eq(Bills::getIsDeleted, 0)
-										.in(!businessNo.isEmpty(),Bills::getBillNo,businessNo)
+										.in(!businessNo.isEmpty(), Bills::getBillNo, businessNo)
 										.apply("find_in_set(mblno,'" + mblno + "')"));
 
 									if (!billsList.isEmpty()) {
@@ -334,9 +334,9 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 											}
 										}
 										List<String> billCorpNameList = Func.toStrList(billCorpName.toString());
-										if (!billCorpNameList.isEmpty()){
+										if (!billCorpNameList.isEmpty()) {
 											finStlBills.setBillCorpName(billCorpNameList.stream().distinct().collect(Collectors.joining("/")));
-										}else{
+										} else {
 											finStlBills.setBillCorpName(billCorpName.toString());
 										}
 										finStlBills.setBillCorpNameAgreement(billCorpNameAgreement.toString());
@@ -417,7 +417,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 									billsList = billsService.list(new LambdaQueryWrapper<Bills>()
 										.eq(Bills::getTenantId, AuthUtil.getTenantId())
 										.eq(Bills::getIsDeleted, 0)
-										.in(!businessNo.isEmpty(),Bills::getBillNo,businessNo)
+										.in(!businessNo.isEmpty(), Bills::getBillNo, businessNo)
 										.apply("find_in_set(mblno,'" + mblno + "')"));
 
 									if (!billsList.isEmpty()) {
@@ -455,9 +455,9 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 											}
 										}
 										List<String> billCorpNameList = Func.toStrList(billCorpName.toString());
-										if (!billCorpNameList.isEmpty()){
+										if (!billCorpNameList.isEmpty()) {
 											finStlBills.setBillCorpName(billCorpNameList.stream().distinct().collect(Collectors.joining("/")));
-										}else{
+										} else {
 											finStlBills.setBillCorpName(billCorpName.toString());
 										}
 										finStlBills.setBillCorpNameAgreement(billCorpNameAgreement.toString());
@@ -1588,6 +1588,11 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 					bills.setAddress(bCorpsBanks.get(0).getAddress());
 					bills.setSwiftCode(bCorpsBanks.get(0).getSwiftCode());
 				}
+				BCorps bCorps = bCorpsService.getById(bills.getCorpId());
+				if (bCorps != null) {
+					bills.setCorpAddress(bCorps.getCnAddr());
+					bills.setCorpAddressEn(bCorps.getEnAddr());
+				}
 				bills.setDept(dept);
 				map.put(MagicValues.DATA, bills);
 			} else {
@@ -1654,6 +1659,11 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 				feeCenterList = feeCenterService.list(lambdaQueryWrapper);
 				this.assignmentDc(bills, feeCenterList, curCode, exrateType, curExrateList);
 				bills.setDept(dept);
+				BCorps bCorps = bCorpsService.getById(bills.getCorpId());
+				if (bCorps != null) {
+					bills.setCorpAddress(bCorps.getCnAddr());
+					bills.setCorpAddressEn(bCorps.getEnAddr());
+				}
 				map.put(MagicValues.DATA, bills);
 			} else {
 				map.put(MagicValues.DATA, null);

+ 8 - 4
blade-service/blade-los/src/main/java/org/springblade/los/box/controller/RouteCostController.java

@@ -49,6 +49,7 @@ import javax.validation.Valid;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -215,8 +216,11 @@ public class RouteCostController extends BladeController {
 	 */
 	@GetMapping("/batchCopy")
 	@RepeatSubmit
-	public R batchCopy(@RequestParam("ids") String ids) {
-		return routeCostService.batchCopy(ids);
+	public R batchCopy(@RequestParam("ids") String ids, @RequestParam("exrate") BigDecimal exrate,
+					   @RequestParam("effectiveStartDate") Date effectiveStartDate,
+					   @RequestParam("effectiveEndDate") Date effectiveEndDate,@RequestParam("type") String type,
+					   @RequestParam("curCode")String curCode) {
+		return routeCostService.batchCopy(ids, exrate, effectiveStartDate, effectiveEndDate,type,curCode);
 	}
 
 	/**
@@ -357,8 +361,8 @@ public class RouteCostController extends BladeController {
 		lambdaQueryWrapper.eq(RouteCost::getTenantId, AuthUtil.getTenantId())
 			.eq(RouteCost::getIsDeleted, 0)
 			.eq(RouteCost::getStatus, "审核通过")
-			.ge(ObjectUtils.isNotNull(routeCost.getEtd()),RouteCost::getEffectiveEndDate,routeCost.getEtd())
-			.le(ObjectUtils.isNotNull(routeCost.getEtd()),RouteCost::getEffectiveStartDate,routeCost.getEtd())
+			.ge(ObjectUtils.isNotNull(routeCost.getEtd()), RouteCost::getEffectiveEndDate, routeCost.getEtd())
+			.le(ObjectUtils.isNotNull(routeCost.getEtd()), RouteCost::getEffectiveStartDate, routeCost.getEtd())
 			.eq(ObjectUtils.isNotNull(routeCost.getBusinessType()), RouteCost::getBusinessType, routeCost.getBusinessType())
 			.eq(ObjectUtils.isNotNull(routeCost.getPodId()), RouteCost::getPodId, routeCost.getPodId())
 			.eq(ObjectUtils.isNotNull(routeCost.getDestinationId()), RouteCost::getDestinationId, routeCost.getDestinationId())

+ 3 - 1
blade-service/blade-los/src/main/java/org/springblade/los/box/service/IRouteCostService.java

@@ -26,6 +26,8 @@ import org.springblade.los.box.vo.RouteCostVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -79,5 +81,5 @@ public interface IRouteCostService extends IService<RouteCost> {
 
 	List<RTFDProfitExcel> RTFDProfitAll(RTFDProfitExcel profitExcel);
 
-	R batchCopy(String ids);
+	R batchCopy(String ids, BigDecimal exrate, Date effectiveStartDate, Date effectiveEndDate,String type,String curCode);
 }

+ 142 - 104
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/RouteCostServiceImpl.java

@@ -973,10 +973,21 @@ public class RouteCostServiceImpl extends ServiceImpl<RouteCostMapper, RouteCost
 	}
 
 	@Override
-	public R batchCopy(String ids) {
-		if (ObjectUtils.isNull(ids)) {
+	@Transactional(rollbackFor = Exception.class)
+	public R batchCopy(String ids, BigDecimal exrate, Date effectiveStartDate, Date effectiveEndDate,String type,String curCode) {
+		if (ObjectUtils.isNull(ids) || ObjectUtils.isNull(exrate) || ObjectUtils.isNull(effectiveStartDate)
+			|| ObjectUtils.isNull(effectiveEndDate)) {
 			throw new RuntimeException("缺少必要参数");
 		}
+		BusinessType businessType = bBusinessTypeService.getOne(new LambdaQueryWrapper<BusinessType>()
+			.select(BusinessType::getId)
+			.eq(BusinessType::getTenantId, AuthUtil.getTenantId())
+			.eq(BusinessType::getIsDeleted, 0)
+			.eq(BusinessType::getStatus, 0)
+			.eq(BusinessType::getCode, type));
+		if (businessType == null) {
+			throw new RuntimeException("未找到可用业务类型");
+		}
 		List<RouteCost> routeCostList = baseMapper.selectList(new LambdaQueryWrapper<RouteCost>()
 			.eq(RouteCost::getTenantId, AuthUtil.getTenantId())
 			.eq(RouteCost::getIsDeleted, 0)
@@ -984,117 +995,144 @@ public class RouteCostServiceImpl extends ServiceImpl<RouteCostMapper, RouteCost
 		if (routeCostList.isEmpty()) {
 			throw new RuntimeException("未查到数据");
 		}
+		List<RouteCostFee> costFeesList = routeCostFeeService.list(new LambdaQueryWrapper<RouteCostFee>()
+			.eq(RouteCostFee::getTenantId, AuthUtil.getTenantId())
+			.eq(RouteCostFee::getIsDeleted, 0)
+			.in(RouteCostFee::getPid, Func.toLongList(ids)));
+		List<RouteCostItem> costItemList = routeCostItemService.list(new LambdaQueryWrapper<RouteCostItem>()
+			.eq(RouteCostItem::getTenantId, AuthUtil.getTenantId())
+			.eq(RouteCostItem::getIsDeleted, 0)
+			.in(RouteCostItem::getPid, Func.toLongList(ids)));
+		List<RouteCost> routeCostListNew = new ArrayList<>();
 		for (RouteCost item : routeCostList) {
-			Long id = item.getId();
+			item.setCopyId(item.getId());
 			item.setId(null);
-			item.setCreateTime(null);
-			item.setCreateUser(null);
-			item.setCreateUserName(null);
+			BusinessBillNo businessBillNo = new BusinessBillNo();
+			businessBillNo.setBusinessTypeId(businessType.getId());
+			businessBillNo.setCode(type);
+			R clientBillNo = businessBillNoService.getBillNoLos(businessBillNo);
+			if (!clientBillNo.isSuccess()) {
+				TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+				return R.fail(500, "生成订单编号失败");
+			}
+			item.setBusinessNo((String) clientBillNo.getData());
+			item.setBusinessDate(new Date());
+			item.setCreateTime(new Date());
+			item.setCreateUser(AuthUtil.getUserId());
+			item.setCreateUserName(AuthUtil.getUserName());
 			item.setUpdateUser(null);
 			item.setUpdateTime(null);
 			item.setUpdateUserName(null);
 			item.setStatus("录入");
-			item.setBusinessNo(null);
-			item.setExrateDate(new Date());
-
-			String exrateType = currencyUtils.standardCurrency(item.getBelongingCompanyId() + "");
-			List<BCurExrate> curExrateList = currencyUtils.obtainRate(item.getExrateDate(), "1", item.getBelongingCompanyId() + "");
-			List<RouteCostFee> costFeesList = routeCostFeeService.list(new LambdaQueryWrapper<RouteCostFee>()
-				.eq(RouteCostFee::getTenantId, AuthUtil.getTenantId())
-				.eq(RouteCostFee::getIsDeleted, 0)
-				.eq(RouteCostFee::getPid, id));
-			for (RouteCostFee costFeeItem : costFeesList) {
-				costFeeItem.setId(null);
-				costFeeItem.setPid(null);
-				costFeeItem.setCreateTime(null);
-				costFeeItem.setCreateUser(null);
-				costFeeItem.setCreateUserName(null);
-				costFeeItem.setUpdateUser(null);
-				costFeeItem.setUpdateTime(null);
-				costFeeItem.setUpdateUserName(null);
-				costFeeItem.setExrate(currencyUtils.obtainExrate("D", curExrateList, costFeeItem.getCurCode(), "1"));
-			}
-			item.setCostFeeList(costFeesList.isEmpty() ? new ArrayList<>() : costFeesList);
-			List<RouteCostItem> costItemList = routeCostItemService.list(new LambdaQueryWrapper<RouteCostItem>()
-				.eq(RouteCostItem::getTenantId, AuthUtil.getTenantId())
-				.eq(RouteCostItem::getIsDeleted, 0)
-				.eq(RouteCostItem::getPid, id));
-			for (RouteCostItem costItem : costItemList) {
-				costItem.setId(null);
-				costItem.setPid(null);
-				costItem.setCreateTime(null);
-				costItem.setCreateUser(null);
-				costItem.setCreateUserName(null);
-				costItem.setUpdateUser(null);
-				costItem.setUpdateTime(null);
-				costItem.setUpdateUserName(null);
-			}
-			item.setCostItemList(costItemList.isEmpty() ? new ArrayList<>() : costItemList);
-			if (ObjectUtils.isNotNull(item.getCostItemList())) {
-				int days = item.getNavigateDay() + item.getExistStationDay();
-				List<RouteCostFee> costFeeList = item.getCostFeeList();
-				for (RouteCostItem routeCostItem : item.getCostItemList()) {
-					routeCostItem.setExrate(currencyUtils.obtainExrate("D", curExrateList, routeCostItem.getCurCode(), "1"));
-					//一程POL杂费成本
-					routeCostItem.setPolCost(computationalCost(costFeeList, "POL", routeCostItem.getBoxType(), routeCostItem.getExrate(), "0"));
-					//一程POL杂费收入
-					routeCostItem.setPolIncome(computationalIncome(costFeeList, "POL", routeCostItem.getBoxType(), routeCostItem.getExrate(), "0"));
-					//一程POD杂费成本
-					routeCostItem.setPodCost(computationalCost(costFeeList, "POD", routeCostItem.getBoxType(), routeCostItem.getExrate(), "0"));
-					//一程POD杂费收入
-					routeCostItem.setPodIncome(computationalIncome(costFeeList, "POD", routeCostItem.getBoxType(), routeCostItem.getExrate(), "0"));
-					//一程用箱成本
-					if (0 != days && ObjectUtils.isNotNull(routeCostItem.getBoxCost()) &&
-						routeCostItem.getBoxCost().compareTo(new BigDecimal("0.00")) != 0) {
-						BigDecimal boxCost = new BigDecimal(days).multiply(routeCostItem.getBoxCost());
-						routeCostItem.setUseBoxCost(boxCost);
-					} else {
-						routeCostItem.setUseBoxCost(new BigDecimal("0.00"));
+			item.setExrateDate(effectiveStartDate);
+			item.setEffectiveStartDate(effectiveStartDate);
+			item.setEffectiveEndDate(effectiveEndDate);
+			routeCostListNew.add(item);
+		}
+		if (!routeCostListNew.isEmpty()){
+			this.saveBatch(routeCostListNew);
+			List<RouteCostFee> costFeesListNew = new ArrayList<>();
+			List<RouteCostItem> costItemListNew = new ArrayList<>();
+			for (RouteCost item : routeCostListNew){
+				if (!costFeesList.isEmpty()){
+					List<RouteCostFee> costFeesListNews = new ArrayList<>();
+					List<RouteCostFee> costFees = costFeesList.stream().filter(e-> e.getPid().equals(item.getCopyId())).collect(Collectors.toList());
+					for (RouteCostFee costFeeItem : costFees){
+						costFeeItem.setId(null);
+						costFeeItem.setPid(item.getId());
+						costFeeItem.setCreateTime(new Date());
+						costFeeItem.setCreateUser(AuthUtil.getUserId());
+						costFeeItem.setCreateUserName(AuthUtil.getUserName());
+						costFeeItem.setUpdateUser(null);
+						costFeeItem.setUpdateTime(null);
+						costFeeItem.setUpdateUserName(null);
+						costFeeItem.setExrate(exrate);
+						costFeeItem.setCurCode(curCode);
+						costFeesListNew.add(costFeeItem);
+						costFeesListNews.add(costFeeItem);
 					}
-					// 一程成本价 = 一程海运费+一程用箱成本+一程pol杂费+一程pod成本+附加费
-					routeCostItem.setCostPrice(routeCostItem.getOceanFreight().add(routeCostItem.getPodCost()).add(routeCostItem.getPolCost())
-						.add(routeCostItem.getUseBoxCost()).add(routeCostItem.getAdditionalFee()));
-					//一程合计利润
-					routeCostItem.setTotalProfit(routeCostItem.getSalesPrice().add(routeCostItem.getPolIncome())
-						.add(routeCostItem.getPodIncome()).subtract(routeCostItem.getCostPrice()));
-					if ("转船".equals(item.getFlightType()) && "自转".equals(item.getChangeShipType())) {
-						//二程POL杂费成本
-						routeCostItem.setPolCostTwo(computationalCost(costFeeList, "POL", routeCostItem.getBoxType(), routeCostItem.getExrate(), "1"));
-						//二程POL杂费收入
-						routeCostItem.setPolIncomeTwo(computationalIncome(costFeeList, "POL", routeCostItem.getBoxType(), routeCostItem.getExrate(), "1"));
-						//二程POD杂费成本
-						routeCostItem.setPodCostTwo(computationalCost(costFeeList, "POD", routeCostItem.getBoxType(), routeCostItem.getExrate(), "1"));
-						//二程POD杂费收入
-						routeCostItem.setPodIncomeTwo(computationalIncome(costFeeList, "POD", routeCostItem.getBoxType(), routeCostItem.getExrate(), "1"));
-						// 二程成本价 = 二程海运费+二程pol杂费+二程pod成本
-						routeCostItem.setCostPriceTwo(routeCostItem.getOceanFreightTwo().add(routeCostItem.getPodCostTwo()).add(routeCostItem.getPolCostTwo()));
-						//二程合计利润
-						routeCostItem.setTotalProfitTwo(routeCostItem.getSalesPriceTwo().add(routeCostItem.getPolIncomeTwo())
-							.add(routeCostItem.getPodIncomeTwo()).subtract(routeCostItem.getCostPriceTwo()));
+					item.setCostFeeList(costFeesListNews.isEmpty() ? new ArrayList<>() : costFeesListNews);
+				}
+				if (!costItemList.isEmpty()){
+					List<RouteCostItem> costItemListNews = new ArrayList<>();
+					List<RouteCostItem> costItems = costItemList.stream().filter(e-> e.getPid().equals(item.getCopyId())).collect(Collectors.toList());
+					for (RouteCostItem costItem : costItems){
+						costItem.setId(null);
+						costItem.setPid(item.getId());
+						costItem.setCreateTime(new Date());
+						costItem.setCreateUser(AuthUtil.getUserId());
+						costItem.setCreateUserName(AuthUtil.getUserName());
+						costItem.setUpdateUser(null);
+						costItem.setUpdateTime(null);
+						costItem.setUpdateUserName(null);
+						costItem.setExrate(exrate);
+						costItem.setCurCode(curCode);
+						costItemListNews.add(costItem);
 					}
-					routeCostItem.setTotalProfitTwo(routeCostItem.getTotalProfitTwo() != null ? routeCostItem.getTotalProfitTwo() : new BigDecimal("0.00"));
-					//合计利润
-					routeCostItem.setProfit(routeCostItem.getTotalProfit().add(routeCostItem.getTotalProfitTwo()));
-
-					if (routeCostItem.getId() == null) {
-						routeCostItem.setPid(id);
-						routeCostItem.setCreateTime(new Date());
-						routeCostItem.setCreateUser(AuthUtil.getUserId());
-						routeCostItem.setCreateUserName(AuthUtil.getUserName());
-					} else {
-						routeCostItem.setUpdateUser(AuthUtil.getUserId());
-						routeCostItem.setUpdateTime(new Date());
-						routeCostItem.setUpdateUserName(AuthUtil.getUserName());
+					item.setCostItemList(costItemListNews.isEmpty() ? new ArrayList<>() : costItemListNews);
+				}
+				if (ObjectUtils.isNotNull(item.getCostItemList())) {
+					int days = item.getNavigateDay() + item.getExistStationDay();
+					List<RouteCostFee> costFeeList = item.getCostFeeList();
+					for (RouteCostItem routeCostItem : item.getCostItemList()) {
+						routeCostItem.setExrate(exrate);
+						//一程POL杂费成本
+						routeCostItem.setPolCost(computationalCost(costFeeList, "POL", routeCostItem.getBoxType(), routeCostItem.getExrate(), "0"));
+						//一程POL杂费收入
+						routeCostItem.setPolIncome(computationalIncome(costFeeList, "POL", routeCostItem.getBoxType(), routeCostItem.getExrate(), "0"));
+						//一程POD杂费成本
+						routeCostItem.setPodCost(computationalCost(costFeeList, "POD", routeCostItem.getBoxType(), routeCostItem.getExrate(), "0"));
+						//一程POD杂费收入
+						routeCostItem.setPodIncome(computationalIncome(costFeeList, "POD", routeCostItem.getBoxType(), routeCostItem.getExrate(), "0"));
+						//一程用箱成本
+						if (0 != days && ObjectUtils.isNotNull(routeCostItem.getBoxCost()) &&
+							routeCostItem.getBoxCost().compareTo(new BigDecimal("0.00")) != 0) {
+							BigDecimal boxCost = new BigDecimal(days).multiply(routeCostItem.getBoxCost());
+							routeCostItem.setUseBoxCost(boxCost);
+						} else {
+							routeCostItem.setUseBoxCost(new BigDecimal("0.00"));
+						}
+						// 一程成本价 = 一程海运费+一程用箱成本+一程pol杂费+一程pod成本+附加费
+						routeCostItem.setCostPrice(routeCostItem.getOceanFreight().add(routeCostItem.getPodCost()).add(routeCostItem.getPolCost())
+							.add(routeCostItem.getUseBoxCost()).add(routeCostItem.getAdditionalFee()));
+						//一程合计利润
+						routeCostItem.setTotalProfit(routeCostItem.getSalesPrice().add(routeCostItem.getPolIncome())
+							.add(routeCostItem.getPodIncome()).subtract(routeCostItem.getCostPrice()));
+						if ("转船".equals(item.getFlightType()) && "自转".equals(item.getChangeShipType())) {
+							//二程POL杂费成本
+							routeCostItem.setPolCostTwo(computationalCost(costFeeList, "POL", routeCostItem.getBoxType(), routeCostItem.getExrate(), "1"));
+							//二程POL杂费收入
+							routeCostItem.setPolIncomeTwo(computationalIncome(costFeeList, "POL", routeCostItem.getBoxType(), routeCostItem.getExrate(), "1"));
+							//二程POD杂费成本
+							routeCostItem.setPodCostTwo(computationalCost(costFeeList, "POD", routeCostItem.getBoxType(), routeCostItem.getExrate(), "1"));
+							//二程POD杂费收入
+							routeCostItem.setPodIncomeTwo(computationalIncome(costFeeList, "POD", routeCostItem.getBoxType(), routeCostItem.getExrate(), "1"));
+							// 二程成本价 = 二程海运费+二程pol杂费+二程pod成本
+							routeCostItem.setCostPriceTwo(routeCostItem.getOceanFreightTwo().add(routeCostItem.getPodCostTwo()).add(routeCostItem.getPolCostTwo()));
+							//二程合计利润
+							routeCostItem.setTotalProfitTwo(routeCostItem.getSalesPriceTwo().add(routeCostItem.getPolIncomeTwo())
+								.add(routeCostItem.getPodIncomeTwo()).subtract(routeCostItem.getCostPriceTwo()));
+						}
+						routeCostItem.setTotalProfitTwo(routeCostItem.getTotalProfitTwo() != null ? routeCostItem.getTotalProfitTwo() : new BigDecimal("0.00"));
+						//合计利润
+						routeCostItem.setProfit(routeCostItem.getTotalProfit().add(routeCostItem.getTotalProfitTwo()));
+						costItemListNew.add(routeCostItem);
 					}
+					item.setProfit20(totalProfit(item.getCostItemList(), "20"));
+					item.setProfit40(totalProfit(item.getCostItemList(), "40"));
+					item.setProfitHc(totalProfit(item.getCostItemList(), "40HC"));
+					item.setOtherProfit(totalProfit(item.getCostItemList(), "other"));
+					item.setTotalProfit(item.getProfit20().add(item.getProfit40()).add(item.getProfitHc()).add(item.getOtherProfit()));
 				}
-				item.setProfit20(totalProfit(item.getCostItemList(), "20"));
-				item.setProfit40(totalProfit(item.getCostItemList(), "40"));
-				item.setProfitHc(totalProfit(item.getCostItemList(), "40HC"));
-				item.setOtherProfit(totalProfit(item.getCostItemList(), "other"));
-				item.setTotalProfit(item.getProfit20().add(item.getProfit40()).add(item.getProfitHc()).add(item.getOtherProfit()));
+			}
+			if (!costFeesListNew.isEmpty()){
+				routeCostFeeService.saveBatch(costFeesListNew);
+			}
+			if (!costItemListNew.isEmpty()){
+				routeCostItemService.saveBatch(costItemListNew);
 			}
 		}
-		return null;
+		return R.success("操作成功");
 	}
 
 
@@ -1108,7 +1146,7 @@ public class RouteCostServiceImpl extends ServiceImpl<RouteCostMapper, RouteCost
 	 */
 	public BigDecimal computationalCost(List<RouteCostFee> routeCostFeeList, String type, String boxType, BigDecimal exrate, String srcType) {
 		BigDecimal amount = new BigDecimal("0.00");
-		if (!routeCostFeeList.isEmpty()) {
+		if (ObjectUtils.isNotNull(routeCostFeeList)&&!routeCostFeeList.isEmpty()) {
 			amount = routeCostFeeList.stream().filter(e -> boxType.equals(e.getBoxType())
 				&& type.equals(e.getBusType()) && srcType.equals(e.getSrcType())).reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getExrate().multiply(y.getCostPrice())), BigDecimal::add);
 			if (new BigDecimal("0.00").compareTo(amount) != 0) {
@@ -1130,7 +1168,7 @@ public class RouteCostServiceImpl extends ServiceImpl<RouteCostMapper, RouteCost
 	 */
 	public BigDecimal computationalIncome(List<RouteCostFee> routeCostFeeList, String type, String boxType, BigDecimal exrate, String srcType) {
 		BigDecimal amount = new BigDecimal("0.00");
-		if (!routeCostFeeList.isEmpty()) {
+		if (ObjectUtils.isNotNull(routeCostFeeList)&&!routeCostFeeList.isEmpty()) {
 			amount = routeCostFeeList.stream().filter(e -> boxType.equals(e.getBoxType())
 				&& type.equals(e.getBusType()) && srcType.equals(e.getSrcType())).reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getExrate().multiply(y.getSalesPrice())), BigDecimal::add);
 			if (new BigDecimal("0.00").compareTo(amount) != 0) {
@@ -1150,7 +1188,7 @@ public class RouteCostServiceImpl extends ServiceImpl<RouteCostMapper, RouteCost
 	 */
 	public BigDecimal totalProfit(List<RouteCostItem> routeCostItemList, String type) {
 		BigDecimal profit;
-		if (!routeCostItemList.isEmpty()) {
+		if (ObjectUtils.isNotNull(routeCostItemList)&&!routeCostItemList.isEmpty()) {
 			if ("20".equals(type)) {
 				profit = routeCostItemList.stream().filter(e -> ObjectUtils.isNotNull(e.getBoxType()) && e.getBoxType().contains("20"))
 					.map(RouteCostItem::getProfit).reduce(BigDecimal.ZERO, BigDecimal::add);

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

@@ -176,6 +176,8 @@ public class AmendsServiceImpl extends ServiceImpl<AmendsMapper, Amends> impleme
 				item.setSrcEnName(amends.getSrcEnName());
 				item.setSrcCnName(amends.getSrcCnName());
 				item.setPid(amends.getId());
+				item.setBillBranchId(amends.getBranchId());
+				item.setBillBranchName(amends.getBranchName());
 			}
 			feeCenterService.submitList(amends.getFeeCenterList());
 		}

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

@@ -159,7 +159,6 @@ public class BillsController extends BladeController {
 				lambdaQueryWrapper.eq(ObjectUtils.isNotNull(bills.getSrcType()), Bills::getSrcType, bills.getSrcType())
 					.and(ObjectUtils.isNotNull(bills.getSrcCnName()), i -> i.like(Bills::getSrcCnName, bills.getSrcCnName()).or()
 						.like(Bills::getSrcEnName, bills.getSrcCnName()));
-				lambdaQueryWrapper.eq(ObjectUtils.isNotNull(bills.getBranchId()), Bills::getBranchId, bills.getBranchId());
 				lambdaQueryWrapper.eq(ObjectUtils.isNotNull(bills.getOperatorId()), Bills::getOperatorId, bills.getOperatorId());
 			}
 		} else {
@@ -318,7 +317,6 @@ public class BillsController extends BladeController {
 				lambdaQueryWrapper.eq(ObjectUtils.isNotNull(bills.getSrcType()), Bills::getSrcType, bills.getSrcType())
 					.and(ObjectUtils.isNotNull(bills.getSrcCnName()), i -> i.like(Bills::getSrcCnName, bills.getSrcCnName()).or()
 						.like(Bills::getSrcEnName, bills.getSrcCnName()));
-				lambdaQueryWrapper.eq(ObjectUtils.isNotNull(bills.getBranchId()), Bills::getBranchId, bills.getBranchId());
 				lambdaQueryWrapper.eq(ObjectUtils.isNotNull(bills.getOperatorId()), Bills::getOperatorId, bills.getOperatorId());
 			}
 		} else {
@@ -696,7 +694,6 @@ public class BillsController extends BladeController {
 				lambdaQueryWrapper.eq(ObjectUtils.isNotNull(bills.getSrcType()), Bills::getSrcType, bills.getSrcType())
 					.and(ObjectUtils.isNotNull(bills.getSrcCnName()), i -> i.like(Bills::getSrcCnName, bills.getSrcCnName()).or()
 						.like(Bills::getSrcEnName, bills.getSrcCnName()));
-				lambdaQueryWrapper.eq(ObjectUtils.isNotNull(bills.getBranchId()), Bills::getBranchId, bills.getBranchId());
 				lambdaQueryWrapper.eq(ObjectUtils.isNotNull(bills.getOperatorId()), Bills::getOperatorId, bills.getOperatorId());
 			}
 		} else {

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

@@ -458,6 +458,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 						item.setAmountLoc(item.getAmount().multiply(item.getExrate()));
 					}
 				}
+				item.setBillBranchId(bills.getBranchId());
+				item.setBillBranchName(bills.getBranchName());
 				item.setPid(bills.getId());
 				item.setBillNo(bills.getBillNo());
 				item.setBusinessType(bills.getBusinessType());
@@ -528,6 +530,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 						item.setAmountLoc(item.getAmount().multiply(item.getExrate()));
 					}
 				}
+				item.setBillBranchId(bills.getBranchId());
+				item.setBillBranchName(bills.getBranchName());
 				item.setPid(bills.getId());
 				item.setBillNo(bills.getBillNo());
 				item.setBusinessType(bills.getBusinessType());
@@ -4872,12 +4876,12 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			if (!Objects.equals(dataSourceBill.getVersion(), bills.getVersion())) {
 				return R.fail(601, "数据已被其他用户更新,请等待刷新后重试");
 			}
-			if ("1".equals(dataSourceBill.getIssueStatus())) {
+			/*if ("1".equals(dataSourceBill.getIssueStatus())) {
 				throw new RuntimeException("单据已生成订单");
 			}
 			if (0 != dataSourceBill.getStatus()) {
 				throw new RuntimeException("单据状态不是录入,保存失败");
-			}
+			}*/
 			// 每更新一次往上累加一次版本
 			// 旧数据处理
 			int version = StringUtil.isBlank(dataSourceBill.getVersion()) ? 1 : Integer.parseInt(dataSourceBill.getVersion());
@@ -5167,6 +5171,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		BeanUtil.copyProperties(detail, copyBills);
 		copyBills.setId(null);
 		copyBills.setIssueStatus("0");
+		copyBills.setConfirmStatus("0");
+		copyBills.setBillOfLadingStatus("0");
 		copyBills.setBillNo("");
 		copyBills.setMblno("");
 		copyBills.setHblno("");
@@ -5966,6 +5972,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		bills.setIssueStatus(null);
 		bills.setStatus(null);
 		bills.setBillStatus(null);
+		bills.setConfirmStatus("0");
+		bills.setBillOfLadingStatus("0");
 		bills.setWhetherModify(null);
 		bills.setMblno("");
 		bills.setHblno("");
@@ -6217,6 +6225,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		feeCenter.setBillCorpCnName(bills.getCorpCnName());
 		feeCenter.setBillCorpEnName(bills.getCorpEnName());
 		feeCenter.setBillShortName(bills.getShortName());
+		feeCenter.setBillBranchId(bills.getBranchId());
+		feeCenter.setBillBranchName(bills.getBranchName());
 		feeCenter.setLineId(bills.getLineId());
 		feeCenter.setLineCnName(bills.getLineCnName());
 		feeCenter.setLineEnName(bills.getLineEnName());

+ 3 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/update/service/impl/UpdateServiceImpl.java

@@ -357,8 +357,11 @@ public class UpdateServiceImpl extends ServiceImpl<UpdateMapper, Update> impleme
 				lambdaQueryWrapper.eq(Bills::getBillNo, update.getRetrievalValue());
 			} else if ("2".equals(update.getRetrievalType())) {
 				lambdaQueryWrapper.eq(Bills::getMblno, update.getRetrievalValue());
+				lambdaQueryWrapper.eq(Bills::getBillType, "MM");
+				lambdaQueryWrapper.apply("find_in_set(bill_type,'MM,DD')");
 			}else if ("3".equals(update.getRetrievalType())) {
 				lambdaQueryWrapper.eq(Bills::getHblno, update.getRetrievalValue());
+				lambdaQueryWrapper.eq(Bills::getBillType, "MH");
 			}
 			lambdaQueryWrapper.last("limit 1");
 			bills = billsService.getOne(lambdaQueryWrapper);

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

@@ -2285,6 +2285,8 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 				data.setCreateTime(new Date());
 				data.setCreateUser(AuthUtil.getUserId());
 				data.setCreateUserName(AuthUtil.getUserName());
+				data.setBillBranchId(bills.getBranchId());
+				data.setBillBranchName(bills.getBranchName());
 				if (ObjectUtils.isNull(item.getBranchId())){
 					data.setCreateDept(AuthUtil.getDeptId());
 					R<String> res = sysClient.getDeptName(Long.parseLong(AuthUtil.getDeptId()));

+ 20 - 2
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/mapper/FinAccBillsMapper.xml

@@ -604,11 +604,17 @@
             los_fin_acc_bills acc
         WHERE
         acc.is_deleted = '0'
+        <if test='fee.dc != null and fee.dc != "" and fee.dc == "D"'>
+            and (acc.amount_dr_usd-stl_amount_dr_usd != 0 or acc.amount_dr-acc.stl_amount_dr != 0)
+        </if>
+        <if test='fee.dc != null and fee.dc != "" and fee.dc == "C"'>
+            and (acc.amount_cr_usd-stl_amount_cr_usd != 0 or acc.amount_cr-acc.stl_amount_cr != 0)
+        </if>
         <if test='fee.tenantId != null and fee.tenantId != ""'>
             and acc.tenant_id = #{fee.tenantId}
         </if>
         <if test="fee.billNo != null and fee.billNo != ''">
-            and acc.bill_no like concat('%', #{fee.billNo}, '%')
+            and acc.business_bill_no like concat('%', #{fee.billNo}, '%')
         </if>
         <if test="fee.mblNo != null and fee.mblNo != ''">
             and acc.mblno like concat('%', #{fee.mblNo}, '%')
@@ -625,6 +631,9 @@
         <if test='fee.branchId != null and fee.branchId != ""'>
             and acc.branch_id = #{fee.branchId}
         </if>
+        <if test='fee.billBranchId != null and fee.billBranchId != ""'>
+            and acc.bill_branch_id = #{fee.billBranchId}
+        </if>
         <if test='fee.teamId != null and fee.teamId != ""'>
             and acc.team_id = #{fee.teamId}
         </if>
@@ -698,11 +707,17 @@
         los_fin_acc_bills acc
         WHERE
         acc.is_deleted = '0'
+        <if test='fee.dc != null and fee.dc != "" and fee.dc == "D"'>
+            and (acc.amount_dr_usd-stl_amount_dr_usd != 0 or acc.amount_dr-acc.stl_amount_dr != 0)
+        </if>
+        <if test='fee.dc != null and fee.dc != "" and fee.dc == "C"'>
+            and (acc.amount_cr_usd-stl_amount_cr_usd != 0 or acc.amount_cr-acc.stl_amount_cr != 0)
+        </if>
         <if test='fee.tenantId != null and fee.tenantId != ""'>
             and acc.tenant_id = #{fee.tenantId}
         </if>
         <if test="fee.billNo != null and fee.billNo != ''">
-            and acc.bill_no like concat('%', #{fee.billNo}, '%')
+            and acc.business_bill_no like concat('%', #{fee.billNo}, '%')
         </if>
         <if test="fee.mblNo != null and fee.mblNo != ''">
             and acc.mblno like concat('%', #{fee.mblNo}, '%')
@@ -719,6 +734,9 @@
         <if test='fee.branchId != null and fee.branchId != ""'>
             and acc.branch_id = #{fee.branchId}
         </if>
+        <if test='fee.billBranchId != null and fee.billBranchId != ""'>
+            and acc.bill_branch_id = #{fee.billBranchId}
+        </if>
         <if test='fee.teamId != null and fee.teamId != ""'>
             and acc.team_id = #{fee.teamId}
         </if>

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

@@ -162,7 +162,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 		// 金额
 		BigDecimal amount;
 		BigDecimal amountTax;
-		BigDecimal taxRate = feeCenter.getTaxRate().divide(new BigDecimal("100"),2, RoundingMode.HALF_UP);
+		BigDecimal taxRate = feeCenter.getTaxRate().divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
 		BigDecimal price = feeCenter.getPrice().add(feeCenter.getPrice().multiply(taxRate));
 		amount = feeCenter.getQuantity().multiply(price);
 		amountTax = feeCenter.getPrice().multiply(taxRate).multiply(feeCenter.getQuantity());
@@ -265,6 +265,8 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				feeCenter.setBookingAgentCnName(bills.getBookingAgentCnName());
 				feeCenter.setBookingAgentEnName(bills.getBookingAgentEnName());
 				feeCenter.setQuantityCntrDescr(bills.getQuantityCntrDescr());
+				feeCenter.setBillBranchId(bills.getBranchId());
+				feeCenter.setBillBranchName(bills.getBranchName());
 				feeCenter.setTeu(bills.getTeu());
 				feeCenter.setPid(bills.getId());
 				feeCenter.setCntrNo(bills.getQuantityCntrTypesDescr());
@@ -501,7 +503,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				// 金额
 				BigDecimal amount;
 				BigDecimal amountTax;
-				BigDecimal taxRate = feeCenter.getTaxRate().divide(new BigDecimal("100"),2, RoundingMode.HALF_UP);
+				BigDecimal taxRate = feeCenter.getTaxRate().divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
 				BigDecimal price = feeCenter.getPrice().add(feeCenter.getPrice().multiply(taxRate));
 				amount = feeCenter.getQuantity().multiply(price);
 				amountTax = feeCenter.getPrice().multiply(taxRate).multiply(feeCenter.getQuantity());
@@ -780,6 +782,13 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				feeCenter.setBookingAgentEnName(bills.getBookingAgentEnName());
 				feeCenter.setQuantityCntrDescr(bills.getQuantityCntrDescr());
 				feeCenter.setTeu(bills.getTeu());
+				if (ObjectUtils.isNotNull(bills.getBranchId())){
+					feeCenter.setBillBranchId(bills.getBranchId());
+					feeCenter.setBillBranchName(bills.getBranchName());
+				}else{
+					feeCenter.setBillBranchId(deptId);
+					feeCenter.setBillBranchName(deptName);
+				}
 				if (!bCorpsList.isEmpty()) {
 					BCorps bCorps = bCorpsList.stream().filter(e -> e.getId().equals(feeCenter.getCorpId())).findFirst().orElse(null);
 					if (bCorps != null) {
@@ -827,7 +836,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				// 金额
 				BigDecimal amount;
 				BigDecimal amountTax;
-				BigDecimal taxRate = feeCenter.getTaxRate().divide(new BigDecimal("100"),2, RoundingMode.HALF_UP);
+				BigDecimal taxRate = feeCenter.getTaxRate().divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
 				BigDecimal price = feeCenter.getPrice().add(feeCenter.getPrice().multiply(taxRate));
 				amount = feeCenter.getQuantity().multiply(price);
 				amountTax = feeCenter.getPrice().multiply(taxRate).multiply(feeCenter.getQuantity());
@@ -964,7 +973,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				// 金额
 				BigDecimal amount;
 				BigDecimal amountTax;
-				BigDecimal taxRate = feeCenter.getTaxRate().divide(new BigDecimal("100"),2, RoundingMode.HALF_UP);
+				BigDecimal taxRate = feeCenter.getTaxRate().divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
 				BigDecimal price = feeCenter.getPrice().add(feeCenter.getPrice().multiply(taxRate));
 				amount = feeCenter.getQuantity().multiply(price);
 				amountTax = feeCenter.getPrice().multiply(taxRate).multiply(feeCenter.getQuantity());
@@ -1372,6 +1381,8 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				feeCenter.setBookingAgentCnName(bills.getBookingAgentCnName());
 				feeCenter.setBookingAgentEnName(bills.getBookingAgentEnName());
 				feeCenter.setQuantityCntrDescr(bills.getQuantityCntrDescr());
+				feeCenter.setBillBranchId(bills.getBranchId());
+				feeCenter.setBillBranchName(bills.getBranchName());
 				feeCenter.setTeu(bills.getTeu());
 				feeCenter.setPid(bills.getId());
 				feeCenter.setCntrNo(bills.getQuantityCntrTypesDescr());
@@ -1613,7 +1624,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				// 金额
 				BigDecimal amount;
 				BigDecimal amountTax;
-				BigDecimal taxRate = feeCenter.getTaxRate().divide(new BigDecimal("100"),2, RoundingMode.HALF_UP);
+				BigDecimal taxRate = feeCenter.getTaxRate().divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
 				BigDecimal price = feeCenter.getPrice().add(feeCenter.getPrice().multiply(taxRate));
 				amount = feeCenter.getQuantity().multiply(price);
 				amountTax = feeCenter.getPrice().multiply(taxRate).multiply(feeCenter.getQuantity());
@@ -1828,6 +1839,8 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 								feeCenterC.setBookingAgentCnName(item.getBookingAgentCnName());
 								feeCenterC.setBookingAgentEnName(item.getBookingAgentEnName());
 								feeCenterC.setQuantityCntrDescr(item.getQuantityCntrDescr());
+								feeCenterC.setBillBranchId(item.getBranchId());
+								feeCenterC.setBillBranchName(item.getBranchName());
 								feeCenterC.setTeu(item.getTeu());
 								feeCenterC.setPid(item.getId());
 								feeCenterC.setCntrNo(item.getQuantityCntrTypesDescr());
@@ -1925,6 +1938,8 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 							feeCenterD.setBookingAgentCnName(bills.getBookingAgentCnName());
 							feeCenterD.setBookingAgentEnName(bills.getBookingAgentEnName());
 							feeCenterD.setQuantityCntrDescr(bills.getQuantityCntrDescr());
+							feeCenterD.setBillBranchId(bills.getBranchId());
+							feeCenterD.setBillBranchName(bills.getBranchName());
 							feeCenterD.setTeu(bills.getTeu());
 							feeCenterD.setBranchId(bills.getBranchId());
 							feeCenterD.setBranchName(bills.getBranchName());
@@ -2379,6 +2394,8 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 		feeCenter.setBookingAgentId(bills.getBookingAgentId());
 		feeCenter.setBookingAgentCnName(bills.getBookingAgentCnName());
 		feeCenter.setBookingAgentEnName(bills.getBookingAgentEnName());
+		feeCenter.setBillBranchId(bills.getBranchId());
+		feeCenter.setBillBranchName(bills.getBranchName());
 		feeCenter.setPid(bills.getId());
 		feeCenter.setCntrNo(bills.getQuantityCntrTypesDescr());
 		feeCenter.setBillNo(bills.getBillNo());
@@ -2507,6 +2524,8 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 		feeCenter.setBookingAgentCnName(bills.getBookingAgentCnName());
 		feeCenter.setBookingAgentEnName(bills.getBookingAgentEnName());
 		feeCenter.setQuantityCntrDescr(bills.getQuantityCntrDescr());
+		feeCenter.setBillBranchId(bills.getBranchId());
+		feeCenter.setBillBranchName(bills.getBranchName());
 		feeCenter.setTeu(bills.getTeu());
 		feeCenter.setPid(bills.getId());
 		feeCenter.setCntrNo(bills.getQuantityCntrTypesDescr());

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

@@ -189,6 +189,8 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 			data.setBookingAgentEnName(item.getBookingAgentEnName());
 			data.setTaxRate(item.getTaxRate());
 			data.setAmountTax(item.getAmountTax());
+			data.setBillBranchId(item.getBillBranchId());
+			data.setBillBranchName(item.getBillBranchName());
 			BusinessBillNo businessBillNo = new BusinessBillNo();
 			businessBillNo.setBusinessTypeId(businessType.getId());
 			businessBillNo.setCode(finAccBills.getBillNoFormat());

+ 9 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/operatingExpenses/controller/OperatingExpensesController.java

@@ -185,5 +185,14 @@ public class OperatingExpensesController extends BladeController {
 		return operatingExpensesService.revokeConfirmation(operatingExpenses);
 	}
 
+	/**
+	 * 打印
+	 */
+	@GetMapping("/print")
+	@RepeatSubmit
+	public R print(@RequestParam("id") Long id) {
+		return operatingExpensesService.print(id);
+	}
+
 
 }

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/operatingExpenses/service/IOperatingExpensesService.java

@@ -50,4 +50,6 @@ public interface IOperatingExpensesService extends IService<OperatingExpenses> {
 	R confirmation(OperatingExpenses operatingExpenses);
 
 	R revokeConfirmation(OperatingExpenses operatingExpenses);
+
+	R print(Long id);
 }

+ 30 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/operatingExpenses/service/impl/OperatingExpensesServiceImpl.java

@@ -255,6 +255,9 @@ public class OperatingExpensesServiceImpl extends ServiceImpl<OperatingExpensesM
 			}
 		}
 		declare.setStatus("1");
+		declare.setUpdateUser(AuthUtil.getUserId());
+		declare.setUpdateTime(new Date());
+		declare.setUpdateUserName(AuthUtil.getUserName());
 		baseMapper.updateById(declare);
 		return R.data(declare);
 	}
@@ -268,6 +271,9 @@ public class OperatingExpensesServiceImpl extends ServiceImpl<OperatingExpensesM
 			throw new SecurityException("操作失败,请联系管理员");
 		}
 		declare.setStatus("0");
+		declare.setUpdateUser(AuthUtil.getUserId());
+		declare.setUpdateTime(new Date());
+		declare.setUpdateUserName(AuthUtil.getUserName());
 		baseMapper.updateById(declare);
 		return R.data(declare);
 	}
@@ -279,6 +285,9 @@ public class OperatingExpensesServiceImpl extends ServiceImpl<OperatingExpensesM
 		declare.setSettlementDate(new Date());
 		declare.setSettlementPersonId(AuthUtil.getUserId());
 		declare.setSettlementPersonName(AuthUtil.getUserName());
+		declare.setUpdateUser(AuthUtil.getUserId());
+		declare.setUpdateTime(new Date());
+		declare.setUpdateUserName(AuthUtil.getUserName());
 		baseMapper.updateById(declare);
 		return R.data(declare);
 	}
@@ -290,8 +299,29 @@ public class OperatingExpensesServiceImpl extends ServiceImpl<OperatingExpensesM
 		declare.setSettlementDate(null);
 		declare.setSettlementPersonId(null);
 		declare.setSettlementPersonName(null);
+		declare.setUpdateUser(AuthUtil.getUserId());
+		declare.setUpdateTime(new Date());
+		declare.setUpdateUserName(AuthUtil.getUserName());
 		baseMapper.updateById(declare);
 		return R.data(declare);
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public R print(Long id) {
+		if (id == null) {
+			throw new RuntimeException("缺少必要参数");
+		}
+		OperatingExpenses operatingExpenses = baseMapper.selectById(id);
+		operatingExpenses.setPrintDate(new Date());
+		operatingExpenses.setPrintFrequency(operatingExpenses.getPrintFrequency() + 1);
+		operatingExpenses.setPrinterId(AuthUtil.getUserId());
+		operatingExpenses.setPrinterName(AuthUtil.getUserName());
+		operatingExpenses.setUpdateUser(AuthUtil.getUserId());
+		operatingExpenses.setUpdateTime(new Date());
+		operatingExpenses.setUpdateUserName(AuthUtil.getUserName());
+		baseMapper.updateById(operatingExpenses);
+		return R.data(operatingExpenses);
+	}
+
 }

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

@@ -274,7 +274,12 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 						amountCrLoc = amountCrLoc.add(item.getCurrentStlAmount());
 					}
 				} else {
-					BigDecimal loc = item.getCurrentStlAmount().multiply(item.getCurrentStlExrate());
+					BigDecimal loc;
+					if ("1".equals(finStlBills.getIsExchangeToCny()) && ObjectUtils.isNotNull(finStlBills.getExrate())) {
+						loc = item.getCurrentStlAmount().multiply(finStlBills.getExrate());
+					} else {
+						loc = item.getCurrentStlAmount().multiply(item.getCurrentStlExrate());
+					}
 					item.setCurrentStlAmountLoc(loc);
 					if ("D".equals(item.getDc())) {
 						amountDrUSD = amountDrUSD.add(item.getCurrentStlAmount());
@@ -315,11 +320,11 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 				finStlBills.setAmountSubUsd(finStlBills.getAmountCrUsd().subtract(finStlBills.getAmountDrUsd()));
 				finStlBills.setAmountSubLoc(finStlBills.getAmountCrLoc().subtract(finStlBills.getAmountDrLoc()));
 			} else {
-				if ("C".equals(finStlBills.getDc())){
+				if ("C".equals(finStlBills.getDc())) {
 					finStlBills.setAmountSub(finStlBills.getAmountCr().subtract(finStlBills.getAmountDr()));
 					finStlBills.setAmountSubUsd(finStlBills.getAmountCrUsd().subtract(finStlBills.getAmountDrUsd()));
 					finStlBills.setAmountSubLoc(finStlBills.getAmountCrLoc().subtract(finStlBills.getAmountDrLoc()));
-				}else{
+				} else {
 					finStlBills.setAmountSub(finStlBills.getAmountDr().subtract(finStlBills.getAmountCr()));
 					finStlBills.setAmountSubUsd(finStlBills.getAmountDrUsd().subtract(finStlBills.getAmountCrUsd()));
 					finStlBills.setAmountSubLoc(finStlBills.getAmountDrLoc().subtract(finStlBills.getAmountCrLoc()));
@@ -2665,7 +2670,12 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					amountCrLoc = amountCrLoc.add(item.getCurrentStlAmount());
 				}
 			} else {
-				BigDecimal loc = item.getCurrentStlAmount().multiply(item.getCurrentStlExrate());
+				BigDecimal loc;
+				if ("1".equals(reconciliation.getIsExchangeToCny()) && ObjectUtils.isNotNull(reconciliation.getExrate())) {
+					loc = item.getCurrentStlAmount().multiply(reconciliation.getExrate());
+				} else {
+					loc = item.getCurrentStlAmount().multiply(item.getCurrentStlExrate());
+				}
 				item.setCurrentStlAmountLoc(loc);
 				if ("D".equals(item.getDc())) {
 					amountDrUSD = amountDrUSD.add(item.getCurrentStlAmount());
@@ -2682,14 +2692,20 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 		reconciliation.setAmountCrUsd(reconciliation.getAmountCrUsd().add(amountCrUSD));
 		reconciliation.setAmountDrLoc(reconciliation.getAmountDrLoc().add(amountDrLoc));
 		reconciliation.setAmountCrLoc(reconciliation.getAmountCrLoc().add(amountCrLoc));
-		if ("C".equals(reconciliation.getDc())) {
+		if ("FFSQ".equals(reconciliation.getBusinessType())) {
 			reconciliation.setAmountSub(reconciliation.getAmountCr().subtract(reconciliation.getAmountDr()));
 			reconciliation.setAmountSubUsd(reconciliation.getAmountCrUsd().subtract(reconciliation.getAmountDrUsd()));
 			reconciliation.setAmountSubLoc(reconciliation.getAmountCrLoc().subtract(reconciliation.getAmountDrLoc()));
 		} else {
-			reconciliation.setAmountSub(reconciliation.getAmountDr().subtract(reconciliation.getAmountCr()));
-			reconciliation.setAmountSubUsd(reconciliation.getAmountDrUsd().subtract(reconciliation.getAmountCrUsd()));
-			reconciliation.setAmountSubLoc(reconciliation.getAmountDrLoc().subtract(reconciliation.getAmountCrLoc()));
+			if ("C".equals(reconciliation.getDc())) {
+				reconciliation.setAmountSub(reconciliation.getAmountCr().subtract(reconciliation.getAmountDr()));
+				reconciliation.setAmountSubUsd(reconciliation.getAmountCrUsd().subtract(reconciliation.getAmountDrUsd()));
+				reconciliation.setAmountSubLoc(reconciliation.getAmountCrLoc().subtract(reconciliation.getAmountDrLoc()));
+			} else {
+				reconciliation.setAmountSub(reconciliation.getAmountDr().subtract(reconciliation.getAmountCr()));
+				reconciliation.setAmountSubUsd(reconciliation.getAmountDrUsd().subtract(reconciliation.getAmountCrUsd()));
+				reconciliation.setAmountSubLoc(reconciliation.getAmountDrLoc().subtract(reconciliation.getAmountCrLoc()));
+			}
 		}
 	}
 
@@ -2713,7 +2729,12 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					amountCrLoc = amountCrLoc.add(item.getCurrentStlAmount());
 				}
 			} else {
-				BigDecimal loc = item.getCurrentStlAmount().multiply(item.getCurrentStlExrate());
+				BigDecimal loc;
+				if ("1".equals(reconciliation.getIsExchangeToCny()) && ObjectUtils.isNotNull(reconciliation.getExrate())) {
+					loc = item.getCurrentStlAmount().multiply(reconciliation.getExrate());
+				} else {
+					loc = item.getCurrentStlAmount().multiply(item.getCurrentStlExrate());
+				}
 				item.setCurrentStlAmountLoc(loc);
 				if ("D".equals(item.getDc())) {
 					amountDrUSD = amountDrUSD.add(item.getCurrentStlAmount());
@@ -2730,14 +2751,20 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 		reconciliation.setAmountCrUsd(reconciliation.getAmountCrUsd().subtract(amountCrUSD));
 		reconciliation.setAmountDrLoc(reconciliation.getAmountDrLoc().subtract(amountDrLoc));
 		reconciliation.setAmountCrLoc(reconciliation.getAmountCrLoc().subtract(amountCrLoc));
-		if ("C".equals(reconciliation.getDc())) {
+		if ("FFSQ".equals(reconciliation.getBusinessType())) {
 			reconciliation.setAmountSub(reconciliation.getAmountCr().subtract(reconciliation.getAmountDr()));
 			reconciliation.setAmountSubUsd(reconciliation.getAmountCrUsd().subtract(reconciliation.getAmountDrUsd()));
 			reconciliation.setAmountSubLoc(reconciliation.getAmountCrLoc().subtract(reconciliation.getAmountDrLoc()));
 		} else {
-			reconciliation.setAmountSub(reconciliation.getAmountDr().subtract(reconciliation.getAmountCr()));
-			reconciliation.setAmountSubUsd(reconciliation.getAmountDrUsd().subtract(reconciliation.getAmountCrUsd()));
-			reconciliation.setAmountSubLoc(reconciliation.getAmountDrLoc().subtract(reconciliation.getAmountCrLoc()));
+			if ("C".equals(reconciliation.getDc())) {
+				reconciliation.setAmountSub(reconciliation.getAmountCr().subtract(reconciliation.getAmountDr()));
+				reconciliation.setAmountSubUsd(reconciliation.getAmountCrUsd().subtract(reconciliation.getAmountDrUsd()));
+				reconciliation.setAmountSubLoc(reconciliation.getAmountCrLoc().subtract(reconciliation.getAmountDrLoc()));
+			} else {
+				reconciliation.setAmountSub(reconciliation.getAmountDr().subtract(reconciliation.getAmountCr()));
+				reconciliation.setAmountSubUsd(reconciliation.getAmountDrUsd().subtract(reconciliation.getAmountCrUsd()));
+				reconciliation.setAmountSubLoc(reconciliation.getAmountDrLoc().subtract(reconciliation.getAmountCrLoc()));
+			}
 		}
 	}
 
@@ -3278,7 +3305,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			auditProecessDTO.setPayAmount(detail.getAmountCrLoc());
 			auditProecessDTO.setReceivableAmount(detail.getAmountDrLoc());
 			auditProecessDTO.setGrossProfit(detail.getAmountSubLoc());
-			if (ObjectUtils.isNotNull(finStlBills.getFinStlBillsItemsList())){
+			if (ObjectUtils.isNotNull(finStlBills.getFinStlBillsItemsList())) {
 				auditProecessDTO.setMblno(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getMblno).distinct().collect(Collectors.joining(",")));
 				auditProecessDTO.setHblno(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getHblno).distinct().collect(Collectors.joining(",")));
 			}
@@ -3329,7 +3356,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			throw new RuntimeException("缺少必要参数");
 		}
 		FinStlBills detail = baseMapper.selectById(finStlBills.getId());
-		if ("1".equals(detail.getBillStatus())){
+		if ("1".equals(detail.getBillStatus())) {
 			throw new RuntimeException("付费申请已结算,撤销失败");
 		}
 		if (ObjectUtils.isNotNull(detail.getBillDate())) {

+ 18 - 8
blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/service/impl/StatisticAnalysisServiceImpl.java

@@ -97,7 +97,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 				.eq(Amends::getIsDeleted, 0)
 				.apply("find_in_set(mblno,'" + mblno + "')");
 //			if (ObjectUtils.isNotNull(financeProfit.getExamine())) {
-				lambdaQueryWrapper.eq(Amends::getStatus, 3);
+			lambdaQueryWrapper.eq(Amends::getStatus, 3);
 //			}
 			List<Amends> amendsList = amendsMapper.selectList(lambdaQueryWrapper);
 			List<FeeCenter> feeCenterList = new ArrayList<>();
@@ -579,7 +579,12 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 	public R<IPage<FeeSummaryDetailNotRD>> feeSummaryDetailNotList(FeeSummaryQ feeSummaryQ, IPage<FeeSummaryDetailNotRD> page) {
 		feeSummaryQ.setTenantId(AuthUtil.getTenantId());
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
-			feeSummaryQ.setBranchId(AuthUtil.getDeptId());
+			if (AuthUtil.getUserRole().contains("secondaryAdmin")) {
+				feeSummaryQ.setBillBranchId(AuthUtil.getDeptId());
+				feeSummaryQ.setBranchId(null);
+			} else {
+				feeSummaryQ.setBranchId(AuthUtil.getDeptId());
+			}
 			feeSummaryQ.setBillType("MH,DD");
 		}
 		return R.data(page.setRecords(finAccBillsMapper.feeSummaryDetailNotList(page, feeSummaryQ)));
@@ -589,7 +594,12 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 	public List<FeeSummaryDetailNotRD> feeSummaryDetailExportNotList(FeeSummaryQ feeSummaryQ) {
 		feeSummaryQ.setTenantId(AuthUtil.getTenantId());
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
-			feeSummaryQ.setBranchId(AuthUtil.getDeptId());
+			if (AuthUtil.getUserRole().contains("secondaryAdmin")) {
+				feeSummaryQ.setBillBranchId(AuthUtil.getDeptId());
+				feeSummaryQ.setBranchId(null);
+			} else {
+				feeSummaryQ.setBranchId(AuthUtil.getDeptId());
+			}
 			feeSummaryQ.setBillType("MH,DD");
 		}
 		return finAccBillsMapper.feeSummaryDetailExportNotList(feeSummaryQ);
@@ -636,7 +646,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 				.eq(Amends::getIsDeleted, 0)
 				.apply("find_in_set(mblno,'" + mblno + "')");
 //			if (ObjectUtils.isNotNull(financeProfit.getExamine())) {
-				lambdaQueryWrapper.eq(Amends::getStatus, 3);
+			lambdaQueryWrapper.eq(Amends::getStatus, 3);
 //			}
 			List<Amends> amendsList = amendsMapper.selectList(lambdaQueryWrapper);
 			List<FeeCenter> feeCenterList = new ArrayList<>();
@@ -950,7 +960,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 	public R<IPage<BoxNumberProfitExcel>> boxNumberProfitStatistics(IPage<BoxNumberProfitExcel> page, BoxNumberProfitQ boxNumberProfit) {
 		boxNumberProfit.setTenantId(AuthUtil.getTenantId());
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
-			if (ObjectUtils.isNull(boxNumberProfit.getBillType())){
+			if (ObjectUtils.isNull(boxNumberProfit.getBillType())) {
 				throw new RuntimeException("单据类型不能为空");
 			}
 			boxNumberProfit.setBranchId(AuthUtil.getDeptId());
@@ -1015,7 +1025,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 	public R boxNumberProfitStatisticsSum(BoxNumberProfitQ boxNumberProfit) {
 		boxNumberProfit.setTenantId(AuthUtil.getTenantId());
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
-			if (ObjectUtils.isNull(boxNumberProfit.getBillType())){
+			if (ObjectUtils.isNull(boxNumberProfit.getBillType())) {
 				throw new RuntimeException("单据类型不能为空");
 			}
 			boxNumberProfit.setBranchId(AuthUtil.getDeptId());
@@ -1120,7 +1130,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 	public List<BoxNumberProfitExcel> boxNumberProfitStatisticsList(BoxNumberProfitQ boxNumberProfit) {
 		boxNumberProfit.setTenantId(AuthUtil.getTenantId());
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
-			if (ObjectUtils.isNull(boxNumberProfit.getBillType())){
+			if (ObjectUtils.isNull(boxNumberProfit.getBillType())) {
 				throw new RuntimeException("单据类型不能为空");
 			}
 			boxNumberProfit.setBranchId(AuthUtil.getDeptId());
@@ -1185,7 +1195,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 	public R boxNumberProfitStatisticsChart(BoxNumberProfitQ boxNumberProfit) {
 		boxNumberProfit.setTenantId(AuthUtil.getTenantId());
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
-			if (ObjectUtils.isNull(boxNumberProfit.getBillType())){
+			if (ObjectUtils.isNull(boxNumberProfit.getBillType())) {
 				throw new RuntimeException("单据类型不能为空");
 			}
 			boxNumberProfit.setBranchId(AuthUtil.getDeptId());

+ 6 - 0
blade-service/blade-los/src/main/java/org/springblade/los/view/mapper/FinanceProfitMapper.xml

@@ -95,6 +95,9 @@
         <if test="data.branchId != null and data.branchId != ''">
             and seb.branch_id = #{data.branchId}
         </if>
+        <if test="data.billBranchId != null and data.billBranchId != ''">
+            and seb.bill_branch_id = #{data.billBranchId}
+        </if>
         <if test="data.billType != null and data.billType != ''">
             and find_in_set(seb.bill_type,#{data.billType})
         </if>
@@ -219,6 +222,9 @@
         <if test="data.branchId != null and data.branchId != ''">
             and seb.branch_id = #{data.branchId}
         </if>
+        <if test="data.billBranchId != null and data.billBranchId != ''">
+            and seb.bill_branch_id = #{data.billBranchId}
+        </if>
         <if test="data.billType != null and data.billType != ''">
             and find_in_set(seb.bill_type,#{data.billType})
         </if>