Bläddra i källkod

2024年11月21日17:22:07

纪新园 1 år sedan
förälder
incheckning
6730de6ed9

+ 5 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjOrderItems.java

@@ -307,6 +307,11 @@ public class PjOrderItems implements Serializable {
 	 */
 	@ApiModelProperty(value = "原数量")
 	private BigDecimal primaryGoodsTotalNum;
+	/**
+	 * 原金额
+	 */
+	@ApiModelProperty(value = "原金额")
+	private BigDecimal primaryGoodsTotalAmount;
 
 	/**
 	 * 返利后单价

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

@@ -20,7 +20,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -49,7 +48,6 @@ 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.los.finance.stl.entity.FinStlBillsItems;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -161,7 +159,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 					item.setCurrentAmountLoc(item.getCurrentAmount());
 					item.setCurrentAmountEx(item.getCurrentAmount());
 				} else {
-					item.setCurrentAmountLoc(bCurrencyService.converterCny(item.getCurrentCurCode(), item.getCurrentAmount(), "","2"));
+					item.setCurrentAmountLoc(bCurrencyService.converterCny(item.getCurrentCurCode(), item.getCurrentAmount(), "", "2"));
 					if (1 == finInvoices.getIsExchangeToCny()) {
 						item.setCurrentAmountEx(item.getCurrentAmount().multiply(finInvoices.getExrate()));
 					} else {
@@ -179,7 +177,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 				item.setCurrentAmountTax(amountTax);
 				item.setCurrentAmountNet(amountNet);
 				item.setPid(finInvoices.getId());
-				if (ObjectUtils.isNull(item.getBusinessType())){
+				if (ObjectUtils.isNull(item.getBusinessType())) {
 					item.setBusinessType(finInvoices.getBusinessTypes());
 				}
 				if (item.getId() == null) {
@@ -229,7 +227,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 			finInvoices.setAmountUsd(amountUsdD.subtract(amountUsdC));
 			finInvoices.setAmountTax(amountTaxD.subtract(amountTaxC).abs());
 			finInvoices.setAmountSub(amountCnyD.subtract(amountCnyC));
-			finInvoices.setAmountLoc(finInvoices.getAmountCny().add(bCurrencyService.converterCny("USD", finInvoices.getAmountUsd(), "","2")));
+			finInvoices.setAmountLoc(finInvoices.getAmountCny().add(bCurrencyService.converterCny("USD", finInvoices.getAmountUsd(), "", "2")));
 			finInvoices.setAmountSubLocNet(finInvoices.getAmountLoc());
 			finInvoices.setAmountSubUsd(amountUsdD.subtract(amountUsdC));
 		} else {
@@ -378,7 +376,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 						}
 						feeCenter.setUninvoicedAmount(feeCenter.getUninvoicedAmount().add(currentStlAmount));
 						currentStlAmount = new BigDecimal("0.00");
-					} else if (feeCenter.getAmount().subtract(feeCenter.getStlTtlAmount()).compareTo(currentStlAmount) == 0) {
+					} else if (feeCenter.getAmount().subtract(feeCenter.getUninvoicedAmount()).compareTo(currentStlAmount) == 0) {
 						if (ObjectUtils.isNotNull(item.getApplySrcId())) {
 							feeCenter.setAppliedInvoiceAmountStl(feeCenter.getAmount());
 						}
@@ -420,7 +418,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 			}
 			feeCenterService.saveOrUpdateBatch(feeCenterList);
 			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
-			updateBillsStatus(finInvoices.getFinInvoicesItemsList());
+			updateBillsStatus(finInvoices.getFinInvoicesItemsList(),feeCenterList);
 		} else {
 			throw new RuntimeException("请选择明细");
 		}
@@ -438,7 +436,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 		return R.data(detail);
 	}
 
-	private void updateBillsStatus(List<FinInvoicesItems> finStlBillsItemsList) {
+	/*private void updateBillsStatus(List<FinInvoicesItems> finStlBillsItemsList) {
 		String billNoHYD = finStlBillsItemsList.stream()
 			.filter(e -> ("SE".equals(e.getBusinessType()) || "SI".equals(e.getBusinessType()))
 				&& "D".equals(e.getDc())).map(FinInvoicesItems::getBillNo)
@@ -449,8 +447,8 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 				.eq(Bills::getIsDeleted, 0)
 				.apply("find_in_set(business_type,'" + billNoHYD + "')"));
 			for (Bills item : billsList) {
-					item.setInvoiceDrStatus(9);
-					item.setInvoiceDrStatusDescr("全开");
+				item.setInvoiceDrStatus(9);
+				item.setInvoiceDrStatusDescr("全开");
 				billsMapper.updateById(item);
 			}
 		}
@@ -531,6 +529,179 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 				customsDeclarationMapper.updateById(item);
 			}
 		}
+	}*/
+
+	private void updateBillsStatus(List<FinInvoicesItems> finStlBillsItemsList,  List<FeeCenter> feeCenters) {
+		String billNoHYD = finStlBillsItemsList.stream()
+			.filter(e -> ("SE".equals(e.getBusinessType()) || "SI".equals(e.getBusinessType()))
+				&& "D".equals(e.getDc())).map(FinInvoicesItems::getBillNo)
+			.distinct().collect(Collectors.joining(","));
+		if (ObjectUtils.isNotNull(billNoHYD)) {
+			List<Bills> billsList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
+				.eq(Bills::getTenantId, AuthUtil.getTenantId())
+				.eq(Bills::getIsDeleted, 0)
+				.apply("find_in_set(bill_no,'" + billNoHYD + "')"));
+			for (Bills item : billsList) {
+				if (!feeCenters.isEmpty()) {
+					List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> e.getPid().equals(item.getId())
+						&& "D".equals(e.getDc())).collect(Collectors.toList());
+					BigDecimal amount = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+					BigDecimal amountStl = feeCenterList.stream().map(FeeCenter::getUninvoicedAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+					if (amountStl.compareTo(amount) == 0) {
+						item.setInvoiceDrStatus(9);
+						item.setInvoiceDrStatusDescr("全开");
+					} else if (amountStl.compareTo(amount) < 0 && amountStl.compareTo(new BigDecimal("0.00")) > 0) {
+						item.setInvoiceDrStatus(3);
+						item.setInvoiceDrStatusDescr("部分");
+					} else {
+						item.setInvoiceDrStatus(0);
+						item.setInvoiceDrStatusDescr("未开");
+					}
+				}
+				billsMapper.updateById(item);
+			}
+		}
+		String billNoHYC = finStlBillsItemsList.stream()
+			.filter(e -> ("SE".equals(e.getBusinessType()) || "SI".equals(e.getBusinessType()))
+				&& "C".equals(e.getDc())).map(FinInvoicesItems::getBillNo)
+			.distinct().collect(Collectors.joining(","));
+		if (ObjectUtils.isNotNull(billNoHYC)) {
+			List<Bills> billsList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
+				.eq(Bills::getTenantId, AuthUtil.getTenantId())
+				.eq(Bills::getIsDeleted, 0)
+				.apply("find_in_set(bill_no,'" + billNoHYC + "')"));
+			for (Bills item : billsList) {
+				List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> e.getPid().equals(item.getId())
+					&& "C".equals(e.getDc())).collect(Collectors.toList());
+				BigDecimal amount = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+				BigDecimal amountStl = feeCenterList.stream().map(FeeCenter::getUninvoicedAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+				if (amountStl.compareTo(amount) == 0) {
+					item.setInvoiceCrStatus(9);
+					item.setInvoiceCrStatusDescr("全开");
+				} else if (amountStl.compareTo(amount) < 0 && amountStl.compareTo(new BigDecimal("0.00")) > 0) {
+					item.setInvoiceCrStatus(3);
+					item.setInvoiceCrStatusDescr("部分");
+				} else {
+					item.setInvoiceCrStatus(0);
+					item.setInvoiceCrStatusDescr("未开");
+				}
+				billsMapper.updateById(item);
+			}
+		}
+		String billNoKYD = finStlBillsItemsList.stream()
+			.filter(e -> ("AE".equals(e.getBusinessType()) || "AI".equals(e.getBusinessType()))
+				&& "D".equals(e.getDc())).map(FinInvoicesItems::getBillNo)
+			.distinct().collect(Collectors.joining(","));
+		if (ObjectUtils.isNotNull(billNoKYD)) {
+			List<AeaBills> billsList = aeaBillsMapper.selectList(new LambdaQueryWrapper<AeaBills>()
+				.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
+				.eq(AeaBills::getIsDeleted, 0)
+				.apply("find_in_set(bill_no,'" + billNoKYD + "')"));
+			for (AeaBills item : billsList) {
+				if (!feeCenters.isEmpty()) {
+					List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> e.getPid().equals(item.getId())
+						&& "D".equals(e.getDc())).collect(Collectors.toList());
+					BigDecimal amount = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+					BigDecimal amountStl = feeCenterList.stream().map(FeeCenter::getUninvoicedAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+					if (amountStl.compareTo(amount) == 0) {
+						item.setInvoiceDrStatus(9);
+						item.setInvoiceDrStatusDescr("全开");
+					} else if (amountStl.compareTo(amount) < 0 && amountStl.compareTo(new BigDecimal("0.00")) > 0) {
+						item.setInvoiceDrStatus(3);
+						item.setInvoiceDrStatusDescr("部分");
+					} else {
+						item.setInvoiceDrStatus(0);
+						item.setInvoiceDrStatusDescr("未开");
+					}
+				}
+				aeaBillsMapper.updateById(item);
+			}
+		}
+		String billNoKYC = finStlBillsItemsList.stream()
+			.filter(e -> ("AE".equals(e.getBusinessType()) || "AI".equals(e.getBusinessType()))
+				&& "C".equals(e.getDc())).map(FinInvoicesItems::getBillNo)
+			.distinct().collect(Collectors.joining(","));
+		if (ObjectUtils.isNotNull(billNoKYC)) {
+			List<AeaBills> billsList = aeaBillsMapper.selectList(new LambdaQueryWrapper<AeaBills>()
+				.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
+				.eq(AeaBills::getIsDeleted, 0)
+				.apply("find_in_set(bill_no,'" + billNoKYC + "')"));
+			for (AeaBills item : billsList) {
+				List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> e.getPid().equals(item.getId())
+					&& "C".equals(e.getDc())).collect(Collectors.toList());
+				BigDecimal amount = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+				BigDecimal amountStl = feeCenterList.stream().map(FeeCenter::getUninvoicedAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+				if (amountStl.compareTo(amount) == 0) {
+					item.setInvoiceCrStatus(9);
+					item.setInvoiceCrStatusDescr("全开");
+				} else if (amountStl.compareTo(amount) < 0 && amountStl.compareTo(new BigDecimal("0.00")) > 0) {
+					item.setInvoiceCrStatus(3);
+					item.setInvoiceCrStatusDescr("部分");
+				} else {
+					item.setInvoiceCrStatus(0);
+					item.setInvoiceCrStatusDescr("未开");
+				}
+				aeaBillsMapper.updateById(item);
+			}
+		}
+		String billNoBGD = finStlBillsItemsList.stream()
+			.filter(e -> ("BGSE".equals(e.getBusinessType()) || "BGAE".equals(e.getBusinessType())
+				|| "BGAI".equals(e.getBusinessType()) || "BGSI".equals(e.getBusinessType()))
+				&& "D".equals(e.getDc())).map(FinInvoicesItems::getBillNo)
+			.distinct().collect(Collectors.joining(","));
+		if (ObjectUtils.isNotNull(billNoBGD)) {
+			List<CustomsDeclaration> billsList = customsDeclarationMapper.selectList(new LambdaQueryWrapper<CustomsDeclaration>()
+				.eq(CustomsDeclaration::getTenantId, AuthUtil.getTenantId())
+				.eq(CustomsDeclaration::getIsDeleted, 0)
+				.apply("find_in_set(bill_no,'" + billNoBGD + "')"));
+			for (CustomsDeclaration item : billsList) {
+				if (!feeCenters.isEmpty()) {
+					List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> e.getPid().equals(item.getId())
+						&& "D".equals(e.getDc())).collect(Collectors.toList());
+					BigDecimal amount = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+					BigDecimal amountStl = feeCenterList.stream().map(FeeCenter::getUninvoicedAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+					if (amountStl.compareTo(amount) == 0) {
+						item.setInvoiceDrStatus(9);
+						item.setInvoiceDrStatusDescr("全开");
+					} else if (amountStl.compareTo(amount) < 0 && amountStl.compareTo(new BigDecimal("0.00")) > 0) {
+						item.setInvoiceDrStatus(3);
+						item.setInvoiceDrStatusDescr("部分");
+					} else {
+						item.setInvoiceDrStatus(0);
+						item.setInvoiceDrStatusDescr("未开");
+					}
+				}
+				customsDeclarationMapper.updateById(item);
+			}
+		}
+		String billNoBGC = finStlBillsItemsList.stream()
+			.filter(e -> ("BGSE".equals(e.getBusinessType()) || "BGAE".equals(e.getBusinessType())
+				|| "BGAI".equals(e.getBusinessType()) || "BGSI".equals(e.getBusinessType()))
+				&& "C".equals(e.getDc())).map(FinInvoicesItems::getBillNo)
+			.distinct().collect(Collectors.joining(","));
+		if (ObjectUtils.isNotNull(billNoBGC)) {
+			List<CustomsDeclaration> billsList = customsDeclarationMapper.selectList(new LambdaQueryWrapper<CustomsDeclaration>()
+				.eq(CustomsDeclaration::getTenantId, AuthUtil.getTenantId())
+				.eq(CustomsDeclaration::getIsDeleted, 0)
+				.apply("find_in_set(bill_no,'" + billNoBGC + "')"));
+			for (CustomsDeclaration item : billsList) {
+				List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> e.getPid().equals(item.getId())
+					&& "C".equals(e.getDc())).collect(Collectors.toList());
+				BigDecimal amount = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+				BigDecimal amountStl = feeCenterList.stream().map(FeeCenter::getUninvoicedAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+				if (amountStl.compareTo(amount) == 0) {
+					item.setInvoiceCrStatus(9);
+					item.setInvoiceCrStatusDescr("全开");
+				} else if (amountStl.compareTo(amount) < 0 && amountStl.compareTo(new BigDecimal("0.00")) > 0) {
+					item.setInvoiceCrStatus(3);
+					item.setInvoiceCrStatusDescr("部分");
+				} else {
+					item.setInvoiceCrStatus(0);
+					item.setInvoiceCrStatusDescr("未开");
+				}
+				customsDeclarationMapper.updateById(item);
+			}
+		}
 	}
 
 	private Bills reconciliation(Bills item, BigDecimal countD, BigDecimal divideIdsD, BigDecimal countC, BigDecimal divideIdsC, BigDecimal idsD, BigDecimal idsC, String type) {
@@ -641,31 +812,30 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 					.eq(FeeCenter::getAccStatus, 1)
 					.apply("uninvoiced_amount != 0")
 					.eq(FeeCenter::getIsDeleted, 0));
-				BigDecimal currentStlAmount = detail.getAmountLoc();
+				BigDecimal currentStlAmount = item.getCurrentAmount();
 				for (FeeCenter feeCenter : feeCenters) {
-					feeCenter.setInvoiceBillId(detail.getId() + "");
-					feeCenter.setInvoiceBillNo(detail.getBillNo());
-					feeCenter.setInvoiceNo(detail.getInvoiceNo());
-					feeCenter.setInvoiceDate(feeCenter.getBillDate());
-					feeCenter.setInvoiceStatus(2);
-					feeCenter.setInvoiceCurCode(detail.getCurCode());
-					feeCenter.setInvoiceExrate(detail.getExrate());
+					feeCenter.setInvoiceBillId("");
+					feeCenter.setInvoiceBillNo("");
+					feeCenter.setInvoiceNo("");
+					feeCenter.setInvoiceDate(null);
+					feeCenter.setInvoiceStatus(0);
+					feeCenter.setInvoiceCurCode("");
+					feeCenter.setInvoiceExrate(new BigDecimal("0.00"));
 					if ("CNY".equals(detail.getCurCode())) {
-						feeCenter.setInvoiceAmount(detail.getAmountCny());
+						feeCenter.setInvoiceAmount(new BigDecimal("0.00"));
 					} else {
-						feeCenter.setInvoiceAmount(detail.getAmountUsd());
+						feeCenter.setInvoiceAmount(new BigDecimal("0.00"));
 					}
-					feeCenter.setInvoiceAmountLoc(detail.getAmountLoc());
-					feeCenter.setUninvoicedAmount(feeCenter.getUninvoicedAmount().add(new BigDecimal("0.00").subtract(detail.getAmountLoc())));
-					feeCenter.setInvoiceById(detail.getCreateUser());
-					feeCenter.setInvoiceByName(detail.getCreateUserName());
+					feeCenter.setInvoiceAmountLoc(new BigDecimal("0.00"));
+					feeCenter.setInvoiceById(0L);
+					feeCenter.setInvoiceByName("");
 					if (feeCenter.getUninvoicedAmount().compareTo(currentStlAmount) > 0) {
 						if (ObjectUtils.isNotNull(item.getApplySrcId())) {
 							feeCenter.setAppliedInvoiceAmountStl(feeCenter.getAppliedInvoiceAmountStl().subtract(currentStlAmount));
 						}
 						feeCenter.setUninvoicedAmount(feeCenter.getUninvoicedAmount().subtract(currentStlAmount));
 						currentStlAmount = new BigDecimal("0.00");
-					} else if (feeCenter.getStlTtlAmount().compareTo(currentStlAmount) == 0) {
+					} else if (feeCenter.getUninvoicedAmount().compareTo(currentStlAmount) == 0) {
 						if (ObjectUtils.isNotNull(item.getApplySrcId())) {
 							feeCenter.setAppliedInvoiceAmountStl(feeCenter.getAppliedInvoiceAmountStl().subtract(currentStlAmount));
 						}
@@ -700,6 +870,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 			}
 			feeCenterService.saveOrUpdateBatch(feeCenterList);
 			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
+			updateBillsStatus(finInvoices.getFinInvoicesItemsList(),feeCenterList);
 		} else {
 			throw new RuntimeException("请选择明细");
 		}

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

@@ -271,7 +271,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 				amountNet = amountNet.add(item.getCurrentStlAmount().subtract(amountTax));
 				item.setCurrentStlAmountTax(amountTax);
 				item.setCurrentStlAmountNet(amountNet);
-				if (ObjectUtils.isNull(item.getBusinessType())){
+				if (ObjectUtils.isNull(item.getBusinessType())) {
 					item.setBusinessType(finStlBills.getBusinessTypes());
 				}
 				if (item.getId() == null) {
@@ -462,24 +462,29 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 	private void updateBillsStatus(List<FinStlBillsItems> finStlBillsItemsList, int count, List<FeeCenter> feeCenters) {
 		String billNoHYD = finStlBillsItemsList.stream()
 			.filter(e -> ("SE".equals(e.getBusinessType()) || "SI".equals(e.getBusinessType()))
-				&& "D".equals(e.getDc())).map(FinStlBillsItems::getMblno)
+				&& "D".equals(e.getDc())).map(FinStlBillsItems::getBillNo)
 			.distinct().collect(Collectors.joining(","));
 		if (ObjectUtils.isNotNull(billNoHYD)) {
 			List<Bills> billsList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
 				.eq(Bills::getTenantId, AuthUtil.getTenantId())
 				.eq(Bills::getIsDeleted, 0)
-				.apply("find_in_set(mblno,'" + billNoHYD + "')"));
+				.apply("find_in_set(bill_no,'" + billNoHYD + "')"));
 			for (Bills item : billsList) {
 				if (1 == count) {
 					item.setCheckDrStatus(9);
 					item.setCheckDrStatusDescr("已对账");
 				} else if (2 == count || 3 == count) {
 					if (!feeCenters.isEmpty()) {
-						long status = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
-							0 == e.getStlStatus() && "D".equals(e.getDc())).count();
-						if (status == 0) {
+						List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> e.getPid().equals(item.getId())
+							&& "D".equals(e.getDc())).collect(Collectors.toList());
+						BigDecimal amount = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						BigDecimal amountStl = feeCenterList.stream().map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						if (amountStl.compareTo(amount) == 0) {
 							item.setStlDrStatus(9);
 							item.setStlDrStatusDescr("结清");
+						} else if (amountStl.compareTo(amount) < 0 && amountStl.compareTo(new BigDecimal("0.00")) > 0) {
+							item.setStlDrStatus(3);
+							item.setStlDrStatusDescr("部分");
 						} else {
 							item.setStlDrStatus(0);
 							item.setStlDrStatusDescr("未结");
@@ -497,23 +502,45 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			List<Bills> billsList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
 				.eq(Bills::getTenantId, AuthUtil.getTenantId())
 				.eq(Bills::getIsDeleted, 0)
-				.apply("find_in_set(mblno,'" + billNoHYC + "')"));
+				.apply("find_in_set(bill_no,'" + billNoHYC + "')"));
 			for (Bills item : billsList) {
 				if (1 == count) {
 					item.setCheckCrStatus(9);
 					item.setCheckCrStatusDescr("已对账");
 				} else if (2 == count || 3 == count) {
 					if (!feeCenters.isEmpty()) {
-						long status = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
-							0 == e.getStlStatus() && "C".equals(e.getDc())).count();
-						if (status == 0) {
+						List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
+							 "C".equals(e.getDc())).collect(Collectors.toList());
+						BigDecimal amount = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						BigDecimal amountStl = feeCenterList.stream().map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						if (amountStl.compareTo(amount) == 0) {
 							item.setStlCrStatus(9);
 							item.setStlCrStatusDescr("结清");
+						} else if (amountStl.compareTo(amount) < 0 && amountStl.compareTo(new BigDecimal("0.00")) > 0) {
+							item.setStlCrStatus(3);
+							item.setStlCrStatusDescr("部分");
 						} else {
 							item.setStlCrStatus(0);
 							item.setStlCrStatusDescr("未结");
 						}
 					}
+				}else if (4 == count) {
+					if (!feeCenters.isEmpty()) {
+						List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
+							"C".equals(e.getDc())).collect(Collectors.toList());
+						BigDecimal amount = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						BigDecimal amountStl = feeCenterList.stream().map(FeeCenter::getAppliedAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						if (amountStl.compareTo(amount) == 0) {
+							item.setCheckCrStatus(9);
+							item.setCheckCrStatusDescr("已申请");
+						} else if (amountStl.compareTo(amount) < 0 && amountStl.compareTo(new BigDecimal("0.00")) > 0) {
+							item.setCheckCrStatus(3);
+							item.setCheckCrStatusDescr("部分申请");
+						} else {
+							item.setCheckCrStatus(0);
+							item.setCheckCrStatusDescr("未申请");
+						}
+					}
 				}
 				billsMapper.updateById(item);
 			}
@@ -526,18 +553,23 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			List<AeaBills> billsList = aeaBillsMapper.selectList(new LambdaQueryWrapper<AeaBills>()
 				.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
 				.eq(AeaBills::getIsDeleted, 0)
-				.apply("find_in_set(mblno,'" + billNoKYD + "')"));
+				.apply("find_in_set(bill_no,'" + billNoKYD + "')"));
 			for (AeaBills item : billsList) {
 				if (1 == count) {
 					item.setCheckDrStatus(9);
 					item.setCheckDrStatusDescr("已对账");
 				} else if (2 == count || 3 == count) {
 					if (!feeCenters.isEmpty()) {
-						long status = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
-							0 == e.getStlStatus() && "D".equals(e.getDc())).count();
-						if (status == 0) {
+						List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
+							 "D".equals(e.getDc())).collect(Collectors.toList());
+						BigDecimal amount = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						BigDecimal amountStl = feeCenterList.stream().map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						if (amountStl.compareTo(amount) == 0) {
 							item.setStlDrStatus(9);
 							item.setStlDrStatusDescr("结清");
+						} else if (amountStl.compareTo(amount) < 0 && amountStl.compareTo(new BigDecimal("0.00")) > 0) {
+							item.setStlDrStatus(3);
+							item.setStlDrStatusDescr("部分");
 						} else {
 							item.setStlDrStatus(0);
 							item.setStlDrStatusDescr("未结");
@@ -555,23 +587,43 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			List<AeaBills> billsList = aeaBillsMapper.selectList(new LambdaQueryWrapper<AeaBills>()
 				.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
 				.eq(AeaBills::getIsDeleted, 0)
-				.apply("find_in_set(mblno,'" + billNoKYC + "')"));
+				.apply("find_in_set(bill_no,'" + billNoKYC + "')"));
 			for (AeaBills item : billsList) {
 				if (1 == count) {
 					item.setCheckCrStatus(9);
 					item.setCheckCrStatusDescr("已对账");
 				} else if (2 == count || 3 == count) {
 					if (!feeCenters.isEmpty()) {
-						long status = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
-							0 == e.getStlStatus() && "C".equals(e.getDc())).count();
-						if (status == 0) {
+						List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
+						 "C".equals(e.getDc())).collect(Collectors.toList());
+						BigDecimal amount = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						BigDecimal amountStl = feeCenterList.stream().map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						if (amountStl.compareTo(amount) == 0) {
 							item.setStlCrStatus(9);
 							item.setStlCrStatusDescr("结清");
+						} else if (amountStl.compareTo(amount) < 0 && amountStl.compareTo(new BigDecimal("0.00")) > 0) {
+							item.setStlCrStatus(3);
+							item.setStlCrStatusDescr("部分");
 						} else {
 							item.setStlCrStatus(0);
 							item.setStlCrStatusDescr("未结");
 						}
 					}
+				}if (!feeCenters.isEmpty()) {
+					List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
+						"C".equals(e.getDc())).collect(Collectors.toList());
+					BigDecimal amount = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+					BigDecimal amountStl = feeCenterList.stream().map(FeeCenter::getAppliedAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+					if (amountStl.compareTo(amount) == 0) {
+						item.setCheckCrStatus(9);
+						item.setCheckCrStatusDescr("已申请");
+					} else if (amountStl.compareTo(amount) < 0 && amountStl.compareTo(new BigDecimal("0.00")) > 0) {
+						item.setCheckCrStatus(3);
+						item.setCheckCrStatusDescr("部分申请");
+					} else {
+						item.setCheckCrStatus(0);
+						item.setCheckCrStatusDescr("未申请");
+					}
 				}
 				aeaBillsMapper.updateById(item);
 			}
@@ -585,18 +637,23 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			List<CustomsDeclaration> billsList = customsDeclarationMapper.selectList(new LambdaQueryWrapper<CustomsDeclaration>()
 				.eq(CustomsDeclaration::getTenantId, AuthUtil.getTenantId())
 				.eq(CustomsDeclaration::getIsDeleted, 0)
-				.apply("find_in_set(mblno,'" + billNoBGD + "')"));
+				.apply("find_in_set(bill_no,'" + billNoBGD + "')"));
 			for (CustomsDeclaration item : billsList) {
 				if (1 == count) {
 					item.setCheckDrStatus(9);
 					item.setCheckDrStatusDescr("已对账");
 				} else if (2 == count || 3 == count) {
 					if (!feeCenters.isEmpty()) {
-						long status = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
-							0 == e.getStlStatus() && "D".equals(e.getDc())).count();
-						if (status == 0) {
+						List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
+							 "D".equals(e.getDc())).collect(Collectors.toList());
+						BigDecimal amount = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						BigDecimal amountStl = feeCenterList.stream().map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						if (amountStl.compareTo(amount) == 0) {
 							item.setStlDrStatus(9);
 							item.setStlDrStatusDescr("结清");
+						} else if (amountStl.compareTo(amount) < 0 && amountStl.compareTo(new BigDecimal("0.00")) > 0) {
+							item.setStlDrStatus(3);
+							item.setStlDrStatusDescr("部分");
 						} else {
 							item.setStlDrStatus(0);
 							item.setStlDrStatusDescr("未结");
@@ -615,23 +672,43 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			List<CustomsDeclaration> billsList = customsDeclarationMapper.selectList(new LambdaQueryWrapper<CustomsDeclaration>()
 				.eq(CustomsDeclaration::getTenantId, AuthUtil.getTenantId())
 				.eq(CustomsDeclaration::getIsDeleted, 0)
-				.apply("find_in_set(mblno,'" + billNoBGC + "')"));
+				.apply("find_in_set(bill_no,'" + billNoBGC + "')"));
 			for (CustomsDeclaration item : billsList) {
 				if (1 == count) {
 					item.setCheckCrStatus(9);
 					item.setCheckCrStatusDescr("已对账");
 				} else if (2 == count || 3 == count) {
 					if (!feeCenters.isEmpty()) {
-						long status = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
-							0 == e.getStlStatus() && "C".equals(e.getDc())).count();
-						if (status == 0) {
+						List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
+							 "C".equals(e.getDc())).collect(Collectors.toList());
+						BigDecimal amount = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						BigDecimal amountStl = feeCenterList.stream().map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+						if (amountStl.compareTo(amount) == 0) {
 							item.setStlCrStatus(9);
 							item.setStlCrStatusDescr("结清");
+						} else if (amountStl.compareTo(amount) < 0 && amountStl.compareTo(new BigDecimal("0.00")) > 0) {
+							item.setStlCrStatus(3);
+							item.setStlCrStatusDescr("部分");
 						} else {
 							item.setStlCrStatus(0);
 							item.setStlCrStatusDescr("未结");
 						}
 					}
+				}if (!feeCenters.isEmpty()) {
+					List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
+						"C".equals(e.getDc())).collect(Collectors.toList());
+					BigDecimal amount = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+					BigDecimal amountStl = feeCenterList.stream().map(FeeCenter::getAppliedAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+					if (amountStl.compareTo(amount) == 0) {
+						item.setCheckCrStatus(9);
+						item.setCheckCrStatusDescr("全部申请");
+					} else if (amountStl.compareTo(amount) < 0 && amountStl.compareTo(new BigDecimal("0.00")) > 0) {
+						item.setCheckCrStatus(3);
+						item.setCheckCrStatusDescr("部分申请");
+					} else {
+						item.setCheckCrStatus(0);
+						item.setCheckCrStatusDescr("未申请");
+					}
 				}
 				customsDeclarationMapper.updateById(item);
 			}
@@ -973,8 +1050,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 						finAccBills.getAmountDrUsd().compareTo(finAccBills.getStlAmountDrUsd()) == 0) {
 						status = true;
 					}
-				}
-				else if ("C".equals(item.getDc())) {
+				} else if ("C".equals(item.getDc())) {
 					if (finAccBills.getStlAmountCr().compareTo(finAccBills.getAmountCr()) > 0 ||
 						finAccBills.getStlAmountCrUsd().compareTo(finAccBills.getAmountCrUsd()) > 0
 					) {
@@ -1783,6 +1859,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			}
 			feeCenterService.saveOrUpdateBatch(feeCenterList);
 			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
+			updateBillsStatus(finStlBills.getFinStlBillsItemsList(), 4, feeCenterList);
 		} else {
 			throw new RuntimeException("请选择明细");
 		}
@@ -1868,6 +1945,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			}
 			feeCenterService.saveOrUpdateBatch(feeCenterList);
 			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
+			updateBillsStatus(finStlBills.getFinStlBillsItemsList(), 4, feeCenterList);
 		} else {
 			throw new RuntimeException("请选择明细");
 		}

+ 2 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderController.java

@@ -112,7 +112,8 @@ public class OrderController extends BladeController {
 				PjOrder::getConfirmWarehouse, PjOrder::getWhetherRedeem, PjOrder::getFundingPartyId, PjOrder::getFundingPartyName,
 				PjOrder::getInterest, PjOrder::getFundingAmount, PjOrder::getBondAmount, PjOrder::getProportion,
 				PjOrder::getGoodsTotalShipAmount, PjOrder::getOutGoodsTotalShipNum, PjOrder::getOutGoodsTotalShipAmount,
-				PjOrder::getGoodsTotalShipNum,PjOrder::getSalesAmount,PjOrder::getRefno,PjOrder::getPrimaryGoodsTotalNum,PjOrder::getPrimaryFundingAmount)
+				PjOrder::getGoodsTotalShipNum,PjOrder::getSalesAmount,PjOrder::getRefno,PjOrder::getPrimaryGoodsTotalNum,
+				PjOrder::getPrimaryFundingAmount)
 			.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
 			.eq(PjOrder::getIsDeleted, 0)
 			.eq(PjOrder::getBsType, order.getBsType())

+ 4 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderItemsMapper.xml

@@ -178,6 +178,8 @@
         IF
         ( poi.out_goods_total_ship_amount, poi.out_goods_total_ship_amount, 0 ) AS outGoodsTotalShipAmount,
         IF
+        ( poi.primary_goods_total_amount, poi.primary_goods_total_amount, 0 ) AS primaryGoodsTotalMoney,
+        IF
         ( poi.primary_goods_total_num, poi.primary_goods_total_num, 0 ) AS primary_goods_total_num
         FROM
         `pjpf_order_items` poi
@@ -389,6 +391,8 @@
         IF
         ( poi.out_goods_total_ship_amount, poi.out_goods_total_ship_amount, 0 ) AS outGoodsTotalShipAmount,
         IF
+        ( poi.primary_goods_total_amount, poi.primary_goods_total_amount, 0 ) AS primaryGoodsTotalMoney,
+        IF
         ( poi.primary_goods_total_num, poi.primary_goods_total_num, 0 ) AS primary_goods_total_num
         FROM
         `pjpf_order_items` poi

+ 14 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.xml

@@ -636,6 +636,12 @@
         <if test="sale.businesDateEnd !=null and sale.businesDateEnd !=''">
             and DATE_FORMAT(po.busines_date,'%Y-%m-%d') &lt;= #{sale.businesDateEnd}
         </if>
+        <if test="sale.dateStart !=null and sale.dateStart !=''">
+            and DATE_FORMAT(po.delivery_busines_date,'%Y-%m-%d') &gt;= #{sale.dateStart}
+        </if>
+        <if test="sale.dateEnd !=null and sale.dateEnd !=''">
+            and DATE_FORMAT(po.delivery_busines_date,'%Y-%m-%d') &lt;= #{sale.dateEnd}
+        </if>
         <if test='sale.bsType!=null and sale.bsType != "" and sale.bsType == "1"'>
             and po.customer_id is not NULL
             GROUP BY
@@ -701,6 +707,12 @@
         <if test="sale.businesDateEnd !=null and sale.businesDateEnd !=''">
             and DATE_FORMAT(po.busines_date,'%Y-%m-%d') &lt;= #{sale.businesDateEnd}
         </if>
+        <if test="sale.dateStart !=null and sale.dateStart !=''">
+            and DATE_FORMAT(po.delivery_busines_date,'%Y-%m-%d') &gt;= #{sale.dateStart}
+        </if>
+        <if test="sale.dateEnd !=null and sale.dateEnd !=''">
+            and DATE_FORMAT(po.delivery_busines_date,'%Y-%m-%d') &lt;= #{sale.dateEnd}
+        </if>
         <if test='sale.bsType!=null and sale.bsType != "" and sale.bsType == "1"'>
             and po.customer_id is not NULL
             GROUP BY
@@ -728,9 +740,9 @@
     </select>
     <select id="columnarRz" resultType="java.util.Map">
         SELECT
-        IF(sum(po.goods_total_ship_num),sum(po.goods_total_ship_num),0.00) AS goodsTotalNum,
+        IF(sum(po.primary_goods_total_num),sum(po.primary_goods_total_num),0.00) AS goodsTotalNum,
         IF(sum(po.funding_amount),sum(po.funding_amount),0.00) AS primaryFundingAmount,
-        IF(sum(po.goods_total_ship_amount),sum(po.goods_total_ship_amount),0.00) AS totalMoney
+        IF(sum(po.total_money),sum(po.total_money),0.00) AS totalMoney
         FROM
         pjpf_order po
         WHERE

+ 20 - 5
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java

@@ -2988,6 +2988,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		for (PjOrderItems items : orderItemsList) {
 			if (items.getPrimaryGoodsTotalNum().compareTo(items.getSendNum()) != 0) {
 				items.setGoodsNum(items.getSendNum());
+				items.setSubTotalMoney(items.getGoodsNum().multiply(items.getPrice()));
+				items.setTotalAmount(items.getGoodsNum().multiply(items.getPrice()));
+				items.setCostprie(items.getGoodsNum().multiply(items.getCostpriePrice()));
+				items.setRebateCostprie(items.getGoodsNum().multiply(items.getRebatePrice()));
+				items.setRebateProfit(items.getCostprie().subtract(items.getRebateCostprie()));
 			}
 		}
 		orderItemsService.updateBatchById(orderItemsList);
@@ -3112,6 +3117,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		for (PjOrderItems items : orderItemsList) {
 			if (items.getPrimaryGoodsTotalNum().compareTo(items.getSendNum()) != 0) {
 				items.setGoodsNum(items.getPrimaryGoodsTotalNum());
+				items.setSubTotalMoney(items.getGoodsNum().multiply(items.getPrice()));
+				items.setTotalAmount(items.getGoodsNum().multiply(items.getPrice()));
+				items.setCostprie(items.getGoodsNum().multiply(items.getCostpriePrice()));
+				items.setRebateCostprie(items.getGoodsNum().multiply(items.getRebatePrice()));
+				items.setRebateProfit(items.getCostprie().subtract(items.getRebateCostprie()));
 			}
 		}
 		orderItemsService.updateBatchById(orderItemsList);
@@ -3196,8 +3206,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					}
 					BigDecimal amount = itemsList.stream().filter(e -> ObjectUtils.isNotNull(financingBrand) && financingBrand.contains(e.getBrandName()))
 						.map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-					if (pjpfFunding.getAvailableAmount().compareTo(amount) < 0) {
-						throw new RuntimeException("可用资金:" + pjpfFunding.getAvailableAmount() + ";   出库资金:" + amount + ";    请充值后,在生成任务");
+					if (pjpfFunding.getAvailableAmount().subtract(pjpfFunding.getInterest()).compareTo(amount) < 0) {
+						throw new RuntimeException("可用资金:" + pjpfFunding.getAvailableAmount() + ";资金占用:" + pjpfFunding.getInterest() + ";   出库资金:" + amount + ";    请充值后,在生成任务");
 					}
 				}
 				return R.data("该订单明细商品存在融资货物,是否提交出库任务审批?");
@@ -4122,6 +4132,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					}*/
 					//计算小计
 					item.setSubTotalMoney(item.getGoodsNum().multiply(item.getPrice()));
+					item.setTotalAmount(item.getGoodsNum().multiply(item.getPrice()));
 					item.setGoodsTotalShipAmount((ObjectUtils.isNotNull(item.getSendNum()) ? item.getSendNum() : new BigDecimal("0")).multiply(item.getPrice()));
 					if (ObjectUtils.isNotNull(item.getRebatePrice()) && new BigDecimal("0.00").compareTo(item.getRebatePrice()) != 0) {
 						item.setRebateCostprie(item.getGoodsNum().multiply(item.getRebatePrice()));
@@ -4133,6 +4144,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					}
 					if (ObjectUtils.isNull(order.getStatus()) || "录入".equals(order.getStatus())) {
 						item.setPrimaryGoodsTotalNum(item.getGoodsNum());
+						item.setPrimaryGoodsTotalAmount(item.getTotalAmount());
 					}
 					item.setCostprie(item.getSubTotalMoney());
 					item.setCostpriePrice(item.getPrice());
@@ -4154,13 +4166,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				order.setNumberRows(order.getOrderItemsList().size());//行数
 				//明细总数量
 				order.setGoodsTotalNum(order.getOrderItemsList().stream().map(PjOrderItems::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-				if (ObjectUtils.isNull(order.getStatus()) || "录入".equals(order.getStatus())) {
-					order.setPrimaryGoodsTotalNum(order.getGoodsTotalNum());
-				}
 				//明细总金额
 				totalMoney = order.getOrderItemsList().stream().reduce(BigDecimal.ZERO, (x, y) -> {
 					return x.add(y.getGoodsNum().multiply(y.getPrice()));
 				}, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
+				if (ObjectUtils.isNull(order.getStatus()) || "录入".equals(order.getStatus())) {
+					order.setPrimaryGoodsTotalNum(order.getGoodsTotalNum());
+				}
 				//实际金额
 				order.setGoodsTotalShipAmount(order.getOrderItemsList().stream().map(PjOrderItems::getGoodsTotalShipAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 				//已出实际数量
@@ -4193,6 +4205,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				BigDecimal b = new BigDecimal(arr[1]).divide(new BigDecimal("10"), MathContext.DECIMAL32);
 				BigDecimal fundingAmount = order.getSalesAmount().multiply(b)
 					.setScale(2, RoundingMode.HALF_UP);
+				if (order.getUseAdvanceChargeAmount().compareTo(fundingAmount) > 0) {
+					throw new RuntimeException("使用预付款金额:" + order.getUseAdvanceChargeAmount() + "不能大于订单融资金额:" + fundingAmount);
+				}
 				order.setBondAmount(bondAmount);
 				order.setFundingAmount(fundingAmount);
 				order.setPrimaryFundingAmount(fundingAmount);

+ 8 - 8
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java

@@ -1259,8 +1259,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 					}
 					BigDecimal amount = shipItemsList.stream().filter(e -> ObjectUtils.isNotNull(financingBrand) && financingBrand.contains(e.getBrandName()))
 						.map(PjShipItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-					if (pjpfFunding.getAvailableAmount().compareTo(amount) < 0) {
-						throw new RuntimeException("剩余可用资金:" + pjpfFunding.getAvailableAmount() + "小于本次出库金额:" + amount + ",出库失败");
+					if (pjpfFunding.getAvailableAmount().subtract(pjpfFunding.getInterest()).compareTo(amount) < 0) {
+						throw new RuntimeException("剩余可用资金:" + pjpfFunding.getAvailableAmount().subtract(pjpfFunding.getInterest()) + "小于本次出库金额:" + amount + ",出库失败");
 					}
 					amountSum = amount;
 					pjpfFunding.setAvailableAmount(pjpfFunding.getAvailableAmount().subtract(amount));
@@ -3203,8 +3203,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 					}
 					BigDecimal amount = shipItemsList.stream().filter(e -> ObjectUtils.isNotNull(financingBrand) && financingBrand.contains(e.getBrandName()))
 						.map(PjShipItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-					if (pjpfFunding.getAvailableAmount().compareTo(amount) < 0) {
-						throw new RuntimeException("剩余可用资金:" + pjpfFunding.getAvailableAmount() + "小于本次出库金额:" + amount + ",出库失败");
+					if (pjpfFunding.getAvailableAmount().subtract(pjpfFunding.getInterest()).compareTo(amount) < 0) {
+						throw new RuntimeException("剩余可用资金:" + pjpfFunding.getAvailableAmount().subtract(pjpfFunding.getInterest()) + "小于本次出库金额:" + amount + ",出库失败");
 					}
 					amountSum = amount;
 					pjpfFunding.setAvailableAmount(pjpfFunding.getAvailableAmount().subtract(amount));
@@ -4238,8 +4238,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 						throw new RuntimeException("已缴保证金不足,出库失败");
 					}
 					BigDecimal amount = shipItemsList.stream().map(PjShipItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-					if (pjpfFunding.getAvailableAmount().compareTo(amount) < 0) {
-						throw new RuntimeException("剩余可用资金:" + pjpfFunding.getAvailableAmount() + "小于本次出库金额:" + amount + ",出库失败");
+					if (pjpfFunding.getAvailableAmount().subtract(pjpfFunding.getInterest()).compareTo(amount) < 0) {
+						throw new RuntimeException("剩余可用资金:" + pjpfFunding.getAvailableAmount().subtract(pjpfFunding.getInterest()) + "小于本次出库金额:" + amount + ",出库失败");
 					}
 					amountSum = amount;
 					pjpfFunding.setAvailableAmount(pjpfFunding.getAvailableAmount().subtract(amount));
@@ -5537,8 +5537,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 						throw new RuntimeException("已缴保证金不足,出库失败");
 					}
 					BigDecimal amount = shipItemsList.stream().map(PjShipItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-					if (pjpfFunding.getAvailableAmount().compareTo(amount) < 0) {
-						throw new RuntimeException("剩余可用资金:" + pjpfFunding.getAvailableAmount() + "小于本次出库金额:" + amount + ",出库失败");
+					if (pjpfFunding.getAvailableAmount().subtract(pjpfFunding.getInterest()).compareTo(amount) < 0) {
+						throw new RuntimeException("剩余可用资金:" + pjpfFunding.getAvailableAmount().subtract(pjpfFunding.getInterest()) + "小于本次出库金额:" + amount + ",出库失败");
 					}
 					amountSum = amount;
 					pjpfFunding.setAvailableAmount(pjpfFunding.getAvailableAmount().subtract(amount));

+ 2 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/controller/StatisticsController.java

@@ -152,8 +152,8 @@ public class StatisticsController {
 	 * 实时总览
 	 */
 	@GetMapping("/realTimeOverview")
-	public R<Map<String, Object>> realTimeOverview() {
-		return statisticsService.realTimeOverview();
+	public R<Map<String, Object>> realTimeOverview(@RequestParam(value = "date",required = false) String date ) {
+		return statisticsService.realTimeOverview(date);
 	}
 
 	/**

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/IStatisticsService.java

@@ -98,7 +98,7 @@ public interface IStatisticsService {
 
 	List<SalespersonCustomer> salespersonCustomerExport(SaleDetail saleDetailDto);
 
-	R<Map<String, Object>> realTimeOverview();
+	R<Map<String, Object>> realTimeOverview(String date);
 
 	R<IPage<FinancingProcurement>> financingProcurement(FinancingProcurement financingProcurement, IPage<FinancingProcurement> page);
 

+ 48 - 6
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/impl/StatisticsServiceImpl.java

@@ -31,7 +31,9 @@ import org.springblade.salesPart.entity.PjCorpsDesc;
 import org.springblade.salesPart.entity.PjOrder;
 import org.springblade.salesPart.entity.PjOrderItems;
 import org.springblade.salesPart.entity.PjShip;
+import org.springblade.salesPart.funding.entity.PjpfBalanceReset;
 import org.springblade.salesPart.funding.entity.PjpfFunding;
+import org.springblade.salesPart.funding.service.IPjpfBalanceResetService;
 import org.springblade.salesPart.funding.service.IPjpfFundingService;
 import org.springblade.salesPart.order.service.IOrderItemsService;
 import org.springblade.salesPart.order.service.IOrderService;
@@ -65,6 +67,8 @@ public class StatisticsServiceImpl implements IStatisticsService {
 
 	private final IPjpfFundingService pjpfFundingService;
 
+	private final IPjpfBalanceResetService pjpfBalanceResetService;
+
 	@Override
 	public R<Map<String, Object>> amountStatistics() {
 		Map<String, Object> map = new HashMap<>();
@@ -604,7 +608,6 @@ public class StatisticsServiceImpl implements IStatisticsService {
 								}
 							}
 						}
-						items.setPrimaryGoodsTotalMoney(items.getPrimaryGoodsTotalNum().multiply(items.getPrice()));
 						items.setSurplusNum(items.getGoodsNum().subtract(items.getOutGoodsTotalShipNum()));
 						items.setSurplusAmount(items.getSubTotalMoney().subtract(items.getOutGoodsTotalShipAmount()));
 					}
@@ -819,7 +822,6 @@ public class StatisticsServiceImpl implements IStatisticsService {
 								}
 							}
 						}
-						items.setPrimaryGoodsTotalMoney(items.getPrimaryGoodsTotalNum().multiply(items.getPrice()));
 						items.setSurplusNum(items.getGoodsNum().subtract(items.getOutGoodsTotalShipNum()));
 						items.setSurplusAmount(items.getSubTotalMoney().subtract(items.getOutGoodsTotalShipAmount()));
 					}
@@ -1302,11 +1304,51 @@ public class StatisticsServiceImpl implements IStatisticsService {
 	}
 
 	@Override
-	public R<Map<String, Object>> realTimeOverview() {
-		List<PjpfFunding> fundingList = pjpfFundingService.list(new LambdaQueryWrapper<PjpfFunding>()
+	public R<Map<String, Object>> realTimeOverview(String date) {
+		Map<String, Object> map = new HashMap<>();
+		List<PjOrder> orderList = orderService.list(new LambdaQueryWrapper<PjOrder>().eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+			.eq(PjOrder::getIsDeleted, 0).eq(PjOrder::getBsType, "RZCG").eq(PjOrder::getWhetherRedeem, 0)
+			.apply("status != '录入' and DATE_FORMAT(busines_date,'%Y') = '" + date + "'"));
+		if (!orderList.isEmpty()) {
+			BigDecimal totalMoney = orderList.stream().map(PjOrder::getTotalMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+			BigDecimal fundingAmount = orderList.stream().map(PjOrder::getPrimaryFundingAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+			map.put("totalMoney", totalMoney);
+			map.put("fundingAmount", fundingAmount);
+			map.put("bondAmount", totalMoney.subtract(fundingAmount));
+			PjpfFunding funding = pjpfFundingService.getOne(new LambdaQueryWrapper<PjpfFunding>()
+				.eq(PjpfFunding::getIsDeleted, 0)
+				.eq(PjpfFunding::getTenantId, AuthUtil.getTenantId())
+				.eq(PjpfFunding::getFundingPartyId, orderList.get(0).getFundingPartyId()));
+			if (funding != null) {
+				map.put("amount", funding.getAmount());
+				map.put("interest", funding.getInterest());
+			} else {
+				map.put("amount", "0.00");
+				map.put("interest", "0.00");
+			}
+			List<PjpfBalanceReset> balanceResetList = pjpfBalanceResetService.list(new LambdaQueryWrapper<PjpfBalanceReset>()
+				.eq(PjpfBalanceReset::getIsDeleted, 0)
+				.eq(PjpfBalanceReset::getTenantId, AuthUtil.getTenantId())
+				.eq(PjpfBalanceReset::getStatus, 1)
+				.apply("DATE_FORMAT(confirming_person_date,'%Y') = '" + date + "'")
+			);
+			if (!balanceResetList.isEmpty()) {
+				map.put("repayment", balanceResetList.stream().map(PjpfBalanceReset::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
+			} else {
+				map.put("repayment", "0.00");
+			}
+		} else {
+			map.put("totalMoney", "0.00");
+			map.put("fundingAmount", "0.00");
+			map.put("bondAmount", "0.00");
+			map.put("amount", "0.00");
+			map.put("interest", "0.00");
+			map.put("repayment", "0.00");
+		}
+
+		/*List<PjpfFunding> fundingList = pjpfFundingService.list(new LambdaQueryWrapper<PjpfFunding>()
 			.eq(PjpfFunding::getTenantId, AuthUtil.getTenantId())
 			.eq(PjpfFunding::getIsDeleted, 0));
-		Map<String, Object> map = new HashMap<>();
 		if (!fundingList.isEmpty()) {
 			map.put("corpName", fundingList.get(0).getFundingPartyName());
 //			map.put("surplusFundingAmount", fundingList.stream().map(PjpfFunding::getSurplusFundingAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
@@ -1333,7 +1375,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			map.put("availableAmount", "0.00");
 			map.put("sumAmount", "0.00");
 			map.put("primaryFundingAmount", "0.00");
-		}
+		}*/
 		return R.data(map);
 	}
 

+ 0 - 1
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java

@@ -692,7 +692,6 @@ public class AccController extends BladeController {
 	@ApiOperation(value = "收付款余额", notes = "传入acc")
 	public R<IPage<Acc>> selBillBalance(Acc acc, Query query) {
 		acc.setTenantId(AuthUtil.getTenantId());
-		acc.setUserId(AuthUtil.getUserId());
 		IPage<Acc> page = accService.selBillBalance(Condition.getPage(query), acc);
 		return R.data(page);
 	}