Browse Source

2024年6月18日17:12:24

纪新园 1 year ago
parent
commit
b73e21e6f2

+ 6 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/ActivityItemsCodeExcel.java

@@ -57,4 +57,10 @@ public class ActivityItemsCodeExcel implements Serializable {
 	@ExcelProperty(value = "促销价4")
 	private BigDecimal priceFour;
 
+	/**
+	 * 更新主键
+	 */
+	@ExcelProperty(value = "更新主键")
+	private String id;
+
 }

+ 6 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/ActivityItemsNameExcel.java

@@ -57,4 +57,10 @@ public class ActivityItemsNameExcel implements Serializable {
 	@ExcelProperty(value = "促销价4")
 	private BigDecimal priceFour;
 
+	/**
+	 * 更新主键
+	 */
+	@ExcelProperty(value = "更新主键")
+	private String id;
+
 }

+ 43 - 30
blade-service/blade-los/src/main/java/org/springblade/los/basic/cur/service/impl/BCurrencyServiceImpl.java

@@ -203,6 +203,9 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 			.eq(BCurrency::getCode, curCode));
 		if (ObjectUtils.isNotNull(bCurrency) && ObjectUtils.isNotNull(bCurrency.getExrate()) &&
 			new BigDecimal("0.00").compareTo(bCurrency.getExrate()) != 0) {
+			if (1 == bCurrency.getIsLocal()){
+				return amount;
+			}
 			LambdaQueryWrapper<BCurExrate> lambdaQueryWrapper = new LambdaQueryWrapper<BCurExrate>()
 				.eq(BCurExrate::getCode, curCode)
 				.eq(BCurExrate::getTenantId, AuthUtil.getTenantId())
@@ -350,6 +353,9 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 			.eq(BCurrency::getCode, curCode));
 		if (ObjectUtils.isNotNull(bCurrency) && ObjectUtils.isNotNull(bCurrency.getExrate()) &&
 			new BigDecimal("0.00").compareTo(bCurrency.getExrate()) != 0) {
+			if (1 == bCurrency.getIsLocal()){
+				return amount;
+			}
 			LambdaQueryWrapper<BCurExrate> lambdaQueryWrapper = new LambdaQueryWrapper<BCurExrate>()
 				.eq(BCurExrate::getCode, curCode)
 				.eq(BCurExrate::getTenantId, AuthUtil.getTenantId())
@@ -452,6 +458,9 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 			.eq(BCurrency::getCode, curCode));
 		if (ObjectUtils.isNotNull(bCurrency) && ObjectUtils.isNotNull(bCurrency.getExrate()) &&
 			new BigDecimal("0.00").compareTo(bCurrency.getExrate()) != 0) {
+			if (1 == bCurrency.getIsLocal()){
+				return new BigDecimal("1");
+			}
 			LambdaQueryWrapper<BCurExrate> lambdaQueryWrapper = new LambdaQueryWrapper<BCurExrate>()
 				.eq(BCurExrate::getCode, curCode)
 				.eq(BCurExrate::getTenantId, AuthUtil.getTenantId())
@@ -552,7 +561,7 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 			.eq(BCurrency::getIsDeleted, 0)
 			.eq(BCurrency::getStatus, 0));
 		for (BCurrency details : bCurrencyList) {
-			if ("CNY".equals(details.getCode())) {
+			if (1 == details.getIsLocal()){
 				details.setExrate(details.getExrate());
 			} else {
 				if (ObjectUtils.isNotNull(details) && ObjectUtils.isNotNull(details.getExrate()) &&
@@ -686,22 +695,35 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 			.apply("code != 'CNY'")
 			.eq(BCurrency::getStatus, 0));
 		for (BCurrency details : bCurrencyList) {
-			if (ObjectUtils.isNotNull(details) && ObjectUtils.isNotNull(details.getExrate()) &&
-				new BigDecimal("0.00").compareTo(details.getExrate()) != 0) {
-				LambdaQueryWrapper<BCurExrate> lambdaQueryWrapper = new LambdaQueryWrapper<BCurExrate>()
-					.eq(BCurExrate::getCode, details.getCode())
-					.eq(BCurExrate::getTenantId, AuthUtil.getTenantId())
-					.eq(BCurExrate::getIsDeleted, 0)
-					.eq(BCurExrate::getExrateYear, year);
-				String status = sysClient.getParamService("business.exchange.rate");
-				if (ObjectUtils.isNotNull(status)) {
-					if ("月".equals(status)) {
-						lambdaQueryWrapper.eq(BCurExrate::getExrateMonth, month)
-							.eq(BCurExrate::getType, "月汇率");
-					} else if ("日".equals(status)) {
-						lambdaQueryWrapper.eq(BCurExrate::getExrateMonth, month);
-						lambdaQueryWrapper.eq(BCurExrate::getExrateDay, day)
-							.eq(BCurExrate::getType, "日汇率");
+			if (1 == details.getIsLocal()){
+				details.setExrate(details.getExrate());
+			}else{
+				if (ObjectUtils.isNotNull(details) && ObjectUtils.isNotNull(details.getExrate()) &&
+					new BigDecimal("0.00").compareTo(details.getExrate()) != 0) {
+					LambdaQueryWrapper<BCurExrate> lambdaQueryWrapper = new LambdaQueryWrapper<BCurExrate>()
+						.eq(BCurExrate::getCode, details.getCode())
+						.eq(BCurExrate::getTenantId, AuthUtil.getTenantId())
+						.eq(BCurExrate::getIsDeleted, 0)
+						.eq(BCurExrate::getExrateYear, year);
+					String status = sysClient.getParamService("business.exchange.rate");
+					if (ObjectUtils.isNotNull(status)) {
+						if ("月".equals(status)) {
+							lambdaQueryWrapper.eq(BCurExrate::getExrateMonth, month)
+								.eq(BCurExrate::getType, "月汇率");
+						} else if ("日".equals(status)) {
+							lambdaQueryWrapper.eq(BCurExrate::getExrateMonth, month);
+							lambdaQueryWrapper.eq(BCurExrate::getExrateDay, day)
+								.eq(BCurExrate::getType, "日汇率");
+						} else {
+							if ("月汇率".equals(details.getParitiesType())) {
+								lambdaQueryWrapper.eq(BCurExrate::getExrateMonth, month)
+									.eq(BCurExrate::getType, details.getParitiesType());
+							} else if ("日汇率".equals(details.getParitiesType())) {
+								lambdaQueryWrapper.eq(BCurExrate::getExrateDay, day);
+								lambdaQueryWrapper.eq(BCurExrate::getExrateMonth, month)
+									.eq(BCurExrate::getType, details.getParitiesType());
+							}
+						}
 					} else {
 						if ("月汇率".equals(details.getParitiesType())) {
 							lambdaQueryWrapper.eq(BCurExrate::getExrateMonth, month)
@@ -712,17 +734,7 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 								.eq(BCurExrate::getType, details.getParitiesType());
 						}
 					}
-				} else {
-					if ("月汇率".equals(details.getParitiesType())) {
-						lambdaQueryWrapper.eq(BCurExrate::getExrateMonth, month)
-							.eq(BCurExrate::getType, details.getParitiesType());
-					} else if ("日汇率".equals(details.getParitiesType())) {
-						lambdaQueryWrapper.eq(BCurExrate::getExrateDay, day);
-						lambdaQueryWrapper.eq(BCurExrate::getExrateMonth, month)
-							.eq(BCurExrate::getType, details.getParitiesType());
-					}
-				}
-				BCurExrate bCurExrate = bCurExrateService.getOne(lambdaQueryWrapper);
+					BCurExrate bCurExrate = bCurExrateService.getOne(lambdaQueryWrapper);
 					if (ObjectUtils.isNull(bCurExrate)) {
 						throw new RuntimeException("请维护" + year + "年" + month + "月," + details.getCode() + "汇率");
 					}
@@ -732,8 +744,9 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 					} else {
 						details.setExrate(bCurExrate.getExrateReceipts());
 					}
-			} else {
-				throw new RuntimeException("请维护币别汇率");
+				} else {
+					throw new RuntimeException("请维护币别汇率");
+				}
 			}
 		}
 		List<PeriodExchangeRate> periodExchangeRates = new ArrayList<>();

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

@@ -31,7 +31,12 @@ import org.springblade.los.basic.business.service.IBusinessTypeService;
 import org.springblade.los.basic.cur.service.IBCurrencyService;
 import org.springblade.los.billno.entity.BusinessBillNo;
 import org.springblade.los.billno.service.IBusinessBillNoService;
+import org.springblade.los.business.aea.entity.AeaBills;
+import org.springblade.los.business.aea.mapper.AeaBillsMapper;
+import org.springblade.los.business.customsDeclaration.entity.CustomsDeclaration;
+import org.springblade.los.business.customsDeclaration.mapper.CustomsDeclarationMapper;
 import org.springblade.los.business.sea.entity.Bills;
+import org.springblade.los.business.sea.mapper.BillsMapper;
 import org.springblade.los.finance.fee.entity.FeeCenter;
 import org.springblade.los.finance.fee.entity.FinAccBills;
 import org.springblade.los.finance.fee.service.IFeeCenterService;
@@ -44,6 +49,7 @@ import org.springblade.los.finance.invoices.service.IFinInvoiceItemDetailService
 import org.springblade.los.finance.invoices.service.IFinInvoicesItemsService;
 import org.springblade.los.finance.invoices.service.IFinInvoicesService;
 import org.springblade.los.finance.invoices.vo.FinInvoicesVO;
+import org.springblade.los.finance.stl.entity.FinStlBillsItems;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -85,6 +91,12 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 
 	private final IFinInvoiceItemDetailService finInvoiceItemDetailService;
 
+	private final BillsMapper billsMapper;
+
+	private final AeaBillsMapper aeaBillsMapper;
+
+	private final CustomsDeclarationMapper customsDeclarationMapper;
+
 	@Override
 	public IPage<FinInvoicesVO> selectFinInvoicesPage(IPage<FinInvoicesVO> page, FinInvoicesVO finInvoices) {
 		return page.setRecords(baseMapper.selectFinInvoicesPage(page, finInvoices));
@@ -404,6 +416,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 			}
 			feeCenterService.saveOrUpdateBatch(feeCenterList);
 			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
+			updateBillsStatus(finInvoices.getFinInvoicesItemsList());
 		} else {
 			throw new RuntimeException("请选择明细");
 		}
@@ -421,6 +434,101 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 		return R.data(detail);
 	}
 
+	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)
+			.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(business_type,'" + billNoHYD + "')"));
+			for (Bills item : billsList) {
+					item.setInvoiceDrStatus(9);
+					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(business_type,'" + billNoHYC + "')"));
+			for (Bills item : billsList) {
+				item.setInvoiceCrStatus(9);
+				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(business_type,'" + billNoKYD + "')"));
+			for (AeaBills item : billsList) {
+				item.setInvoiceDrStatus(9);
+				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(business_type,'" + billNoKYC + "')"));
+			for (AeaBills item : billsList) {
+				item.setInvoiceCrStatus(9);
+				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(business_type,'" + billNoBGD + "')"));
+			for (CustomsDeclaration item : billsList) {
+				item.setInvoiceDrStatus(9);
+				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(business_type,'" + billNoBGC + "')"));
+			for (CustomsDeclaration item : billsList) {
+				item.setInvoiceCrStatus(9);
+				item.setInvoiceCrStatusDescr("全开");
+				customsDeclarationMapper.updateById(item);
+			}
+		}
+	}
+
 	private Bills reconciliation(Bills item, BigDecimal countD, BigDecimal divideIdsD, BigDecimal countC, BigDecimal divideIdsC, BigDecimal idsD, BigDecimal idsC, String type) {
 		if ("MH".equals(item.getBillType())) {
 			if ("进项".equals(type)) {

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

@@ -38,7 +38,12 @@ import org.springblade.los.basic.voucher.entity.VoucherTemplate;
 import org.springblade.los.basic.voucher.service.IVoucherTemplateService;
 import org.springblade.los.billno.entity.BusinessBillNo;
 import org.springblade.los.billno.service.IBusinessBillNoService;
+import org.springblade.los.business.aea.entity.AeaBills;
+import org.springblade.los.business.aea.mapper.AeaBillsMapper;
+import org.springblade.los.business.customsDeclaration.entity.CustomsDeclaration;
+import org.springblade.los.business.customsDeclaration.mapper.CustomsDeclarationMapper;
 import org.springblade.los.business.sea.entity.Bills;
+import org.springblade.los.business.sea.mapper.BillsMapper;
 import org.springblade.los.check.dto.LosAuditProecessDTO;
 import org.springblade.los.check.entity.LosAuditPathsActs;
 import org.springblade.los.check.entity.LosAuditPathsLevels;
@@ -139,6 +144,12 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 
 	private final FinPeriodMapper finPeriodMapper;
 
+	private final BillsMapper billsMapper;
+
+	private final AeaBillsMapper aeaBillsMapper;
+
+	private final CustomsDeclarationMapper customsDeclarationMapper;
+
 	@Override
 	public IPage<FinStlBillsVO> selectFinStlBillsPage(IPage<FinStlBillsVO> page, FinStlBillsVO finStlBills) {
 		return page.setRecords(baseMapper.selectFinStlBillsPage(page, finStlBills));
@@ -429,6 +440,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			finStlBillsItemsService.saveOrUpdateBatch(finStlBills.getFinStlBillsItemsList());
 			feeCenterService.saveOrUpdateBatch(feeCenterList);
 			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
+			updateBillsStatus(finStlBills.getFinStlBillsItemsList(), 1);
 		} else {
 			throw new RuntimeException("请选择明细");
 		}
@@ -438,6 +450,131 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 		return R.data(detail);
 	}
 
+	private void updateBillsStatus(List<FinStlBillsItems> finStlBillsItemsList, int count) {
+		String billNoHYD = finStlBillsItemsList.stream()
+			.filter(e -> ("SE".equals(e.getBusinessType()) || "SI".equals(e.getBusinessType()))
+				&& "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(business_type,'" + billNoHYD + "')"));
+			for (Bills item : billsList) {
+				if (1 == count) {
+					item.setCheckDrStatus(9);
+					item.setCheckDrStatusDescr("已对账");
+				} else if (2 == count) {
+					item.setStlDrStatus(9);
+					item.setStlDrStatusDescr("结清");
+				}
+				billsMapper.updateById(item);
+			}
+		}
+		String billNoHYC = finStlBillsItemsList.stream()
+			.filter(e -> ("SE".equals(e.getBusinessType()) || "SI".equals(e.getBusinessType()))
+				&& "C".equals(e.getDc())).map(FinStlBillsItems::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(business_type,'" + billNoHYC + "')"));
+			for (Bills item : billsList) {
+				if (1 == count) {
+					item.setCheckDrStatus(9);
+					item.setCheckDrStatusDescr("已对账");
+				} else if (2 == count) {
+					item.setStlDrStatus(9);
+					item.setStlDrStatusDescr("结清");
+				}
+				billsMapper.updateById(item);
+			}
+		}
+		String billNoKYD = finStlBillsItemsList.stream()
+			.filter(e -> ("AE".equals(e.getBusinessType()) || "AI".equals(e.getBusinessType()))
+			&& "D".equals(e.getDc())).map(FinStlBillsItems::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(business_type,'" + billNoKYD + "')"));
+			for (AeaBills item : billsList) {
+				if (1 == count) {
+					item.setCheckDrStatus(9);
+					item.setCheckDrStatusDescr("已对账");
+				} else if (2 == count) {
+					item.setStlDrStatus(9);
+					item.setStlDrStatusDescr("结清");
+				}
+				aeaBillsMapper.updateById(item);
+			}
+		}
+		String billNoKYC = finStlBillsItemsList.stream()
+			.filter(e -> ("AE".equals(e.getBusinessType()) || "AI".equals(e.getBusinessType()))
+				&& "C".equals(e.getDc())).map(FinStlBillsItems::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(business_type,'" + billNoKYC + "')"));
+			for (AeaBills item : billsList) {
+				if (1 == count) {
+					item.setCheckCrStatus(9);
+					item.setCheckCrStatusDescr("已对账");
+				} else if (2 == count) {
+					item.setStlCrStatus(9);
+					item.setStlCrStatusDescr("结清");
+				}
+				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(FinStlBillsItems::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(business_type,'" + billNoBGD + "')"));
+			for (CustomsDeclaration item : billsList) {
+				if (1 == count) {
+					item.setCheckDrStatus(9);
+					item.setCheckDrStatusDescr("已对账");
+				} else if (2 == count) {
+					item.setStlDrStatus(9);
+					item.setStlDrStatusDescr("结清");
+				}
+				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(FinStlBillsItems::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(business_type,'" + billNoBGC + "')"));
+			for (CustomsDeclaration item : billsList) {
+				if (1 == count) {
+					item.setCheckCrStatus(9);
+					item.setCheckCrStatusDescr("已对账");
+				} else if (2 == count) {
+					item.setStlCrStatus(9);
+					item.setStlCrStatusDescr("结清");
+				}
+				customsDeclarationMapper.updateById(item);
+			}
+		}
+	}
+
 	private List<FeeCenter> reconciliationFeeCenter(FinStlBills detail, List<FeeCenter> feeCenterList, int count, BigDecimal amount) {
 		BigDecimal currentStlAmount = amount;
 		for (FeeCenter item : feeCenterList) {
@@ -915,6 +1052,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
 			detail.setStatus(3);
 			detail.setIsCleared(1);
+			updateBillsStatus(finStlBills.getFinStlBillsItemsList(), 2);
 		} else {
 			throw new RuntimeException("请选择明细");
 		}

+ 23 - 3
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/activity/controller/ActivityItemsController.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.salesPart.activity.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -27,13 +28,16 @@ import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.salesPart.activity.entity.ActivityItems;
 import org.springblade.salesPart.activity.service.IActivityItemsService;
 import org.springblade.salesPart.activity.vo.ActivityItemsVO;
+import org.springblade.salesPart.entity.PjGoodsDesc;
 import org.springblade.salesPart.excel.ActivityItemsCodeExcel;
 import org.springblade.salesPart.excel.ActivityItemsNameExcel;
+import org.springblade.salesPart.goods.service.IGoodsDescService;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -41,6 +45,8 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 轮胎商城活动明细 控制器
@@ -55,6 +61,7 @@ import java.util.List;
 public class ActivityItemsController extends BladeController {
 
 	private final IActivityItemsService activityItemsService;
+	private final IGoodsDescService goodsDescService;
 
 	/**
 	 * 详情
@@ -174,12 +181,13 @@ public class ActivityItemsController extends BladeController {
 		for (ActivityItems items : pages) {
 			ActivityItemsNameExcel activityItemsNameExcel = new ActivityItemsNameExcel();
 			activityItemsNameExcel.setCname(items.getCname());
-			activityItemsNameExcel.setMinQuantity(items.getMaxQuantity());
+			activityItemsNameExcel.setMinQuantity(items.getMinQuantity());
 			activityItemsNameExcel.setMaxQuantity(items.getMaxQuantity());
 			activityItemsNameExcel.setPriceOne(items.getPriceOne());
 			activityItemsNameExcel.setPriceTwo(items.getPriceTwo());
 			activityItemsNameExcel.setPriceThree(items.getPriceThree());
 			activityItemsNameExcel.setPriceFour(items.getPriceFour());
+			activityItemsNameExcel.setId(items.getId()+"");
 			list.add(activityItemsNameExcel);
 		}
 		ExcelUtil.export(response, "活动明细信息-名称", "活动明细信息-名称", list, ActivityItemsNameExcel.class);
@@ -194,16 +202,28 @@ public class ActivityItemsController extends BladeController {
 			throw new RuntimeException("缺少必要参数");
 		}
 		List<ActivityItems> pages = activityItemsService.list(Condition.getQueryWrapper(activityItems));
+		List<String> codesList = pages.stream().map(ActivityItems::getCname).distinct()
+			.filter(Objects::nonNull).collect(Collectors.toList());
+		String codes = String.join(",", codesList);
+		LambdaQueryWrapper<PjGoodsDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
+			.eq(PjGoodsDesc::getIsDeleted, 0)
+			.apply("find_in_set(cname,'" + codes + "')");
+		List<PjGoodsDesc> goodsDescList = goodsDescService.list(lambdaQueryWrapper);
 		List<ActivityItemsCodeExcel> list = new ArrayList<>();
 		for (ActivityItems items : pages) {
 			ActivityItemsCodeExcel activityItemsCodeExcel = new ActivityItemsCodeExcel();
-			activityItemsCodeExcel.setCname(items.getCname());
-			activityItemsCodeExcel.setMinQuantity(items.getMaxQuantity());
+			PjGoodsDesc goodsDesc = goodsDescList.stream().filter(e-> e.getId().equals(items.getGoodsId())).findFirst().orElse(null);
+			if (goodsDesc != null){
+				activityItemsCodeExcel.setCname(goodsDesc.getCode());
+			}
+			activityItemsCodeExcel.setMinQuantity(items.getMinQuantity());
 			activityItemsCodeExcel.setMaxQuantity(items.getMaxQuantity());
 			activityItemsCodeExcel.setPriceOne(items.getPriceOne());
 			activityItemsCodeExcel.setPriceTwo(items.getPriceTwo());
 			activityItemsCodeExcel.setPriceThree(items.getPriceThree());
 			activityItemsCodeExcel.setPriceFour(items.getPriceFour());
+			activityItemsCodeExcel.setId(items.getId()+"");
 			list.add(activityItemsCodeExcel);
 		}
 		ExcelUtil.export(response, "活动明细信息-编码", "活动明细信息-编码", list, ActivityItemsCodeExcel.class);

+ 6 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/activity/service/impl/ActivityItemsServiceImpl.java

@@ -118,6 +118,9 @@ public class ActivityItemsServiceImpl extends ServiceImpl<ActivityItemsMapper, A
 			}
 			ActivityItems item = new ActivityItems();
 			BeanUtil.copy(itemExcel, item);
+			if (ObjectUtils.isNotNull(itemExcel.getId())){
+				item.setId(Long.parseLong(itemExcel.getId()));
+			}
 			//查询商品信息
 			PjGoodsDesc goodsDesc = goodsDescList.stream().filter(e -> e.getCname().equals(itemExcel.getCname())).findFirst().orElse(null);
 			if (goodsDesc != null) {
@@ -285,6 +288,9 @@ public class ActivityItemsServiceImpl extends ServiceImpl<ActivityItemsMapper, A
 			}
 			ActivityItems item = new ActivityItems();
 			BeanUtil.copy(itemExcel, item);
+			if (ObjectUtils.isNotNull(itemExcel.getId())){
+				item.setId(Long.parseLong(itemExcel.getId()));
+			}
 			//查询商品信息
 			PjGoodsDesc goodsDesc = goodsDescList.stream().filter(e -> e.getCode().equals(itemExcel.getCname())).findFirst().orElse(null);
 			if (goodsDesc != null) {

+ 37 - 37
blade-service/blade-sales-part/src/main/resources/log/logback-dev.xml

@@ -58,56 +58,56 @@
     </if>
 
     <!-- 日志输出级别 -->
-    <root level="info">
+    <root level="ERROR">
         <appender-ref ref="STDOUT"/>
         <appender-ref ref="${STDOUT_APPENDER}"/>
     </root>
 
-    <logger name="net.sf.ehcache" level="info"/>
-    <logger name="druid.sql" level="info"/>
+    <logger name="net.sf.ehcache" level="ERROR"/>
+    <logger name="druid.sql" level="ERROR"/>
 
 
     <!-- MyBatis log configure -->
-    <logger name="com.apache.ibatis" level="info"/>
-    <logger name="org.mybatis.spring" level="info"/>
-    <logger name="java.sql.Connection" level="info"/>
-    <logger name="java.sql.Statement" level="info"/>
-    <logger name="java.sql.PreparedStatement" level="info"/>
+    <logger name="com.apache.ibatis" level="ERROR"/>
+    <logger name="org.mybatis.spring" level="ERROR"/>
+    <logger name="java.sql.Connection" level="ERROR"/>
+    <logger name="java.sql.Statement" level="ERROR"/>
+    <logger name="java.sql.PreparedStatement" level="ERROR"/>
 
     <!-- 减少部分debug日志 -->
-    <logger name="druid.sql" level="info"/>
-    <logger name="org.apache.shiro" level="info"/>
-    <logger name="org.mybatis.spring" level="info"/>
-    <logger name="org.springframework" level="info"/>
-    <logger name="org.springframework.context" level="info"/>
-    <logger name="org.springframework.beans" level="info"/>
-    <logger name="com.baomidou.mybatisplus" level="info"/>
-    <logger name="org.apache.ibatis.io" level="info"/>
-    <logger name="org.apache.velocity" level="info"/>
-    <logger name="org.eclipse.jetty" level="info"/>
-    <logger name="io.undertow" level="info"/>
-    <logger name="org.xnio.nio" level="info"/>
-    <logger name="org.thymeleaf" level="info"/>
-    <logger name="springfox.documentation" level="info"/>
-    <logger name="org.hibernate.validator" level="info"/>
-    <logger name="com.netflix.loadbalancer" level="info"/>
-    <logger name="com.netflix.hystrix" level="info"/>
-    <logger name="com.netflix.zuul" level="info"/>
-    <logger name="de.codecentric" level="info"/>
-    <!-- cache info -->
-    <logger name="net.sf.ehcache" level="info"/>
-    <logger name="org.springframework.cache" level="info"/>
+    <logger name="druid.sql" level="ERROR"/>
+    <logger name="org.apache.shiro" level="ERROR"/>
+    <logger name="org.mybatis.spring" level="ERROR"/>
+    <logger name="org.springframework" level="ERROR"/>
+    <logger name="org.springframework.context" level="ERROR"/>
+    <logger name="org.springframework.beans" level="ERROR"/>
+    <logger name="com.baomidou.mybatisplus" level="ERROR"/>
+    <logger name="org.apache.ibatis.io" level="ERROR"/>
+    <logger name="org.apache.velocity" level="ERROR"/>
+    <logger name="org.eclipse.jetty" level="ERROR"/>
+    <logger name="io.undertow" level="ERROR"/>
+    <logger name="org.xnio.nio" level="ERROR"/>
+    <logger name="org.thymeleaf" level="ERROR"/>
+    <logger name="springfox.documentation" level="ERROR"/>
+    <logger name="org.hibernate.validator" level="ERROR"/>
+    <logger name="com.netflix.loadbalancer" level="ERROR"/>
+    <logger name="com.netflix.hystrix" level="ERROR"/>
+    <logger name="com.netflix.zuul" level="ERROR"/>
+    <logger name="de.codecentric" level="ERROR"/>
+    <!-- cache ERROR -->
+    <logger name="net.sf.ehcache" level="ERROR"/>
+    <logger name="org.springframework.cache" level="ERROR"/>
     <!-- cloud -->
-    <logger name="org.apache.http" level="info"/>
-    <logger name="com.netflix.discovery" level="info"/>
-    <logger name="com.netflix.eureka" level="info"/>
+    <logger name="org.apache.http" level="ERROR"/>
+    <logger name="com.netflix.discovery" level="ERROR"/>
+    <logger name="com.netflix.eureka" level="ERROR"/>
     <!-- 业务日志 -->
-    <Logger name="org.springblade" level="info"/>
-    <Logger name="org.springblade.core.tenant" level="info"/>
-    <Logger name="org.springblade.core.version" level="info"/>
+    <Logger name="org.springblade" level="ERROR"/>
+    <Logger name="org.springblade.core.tenant" level="ERROR"/>
+    <Logger name="org.springblade.core.version" level="ERROR"/>
 
     <!-- 减少nacos日志 -->
-    <logger name="com.alibaba.nacos" level="info"/>
+    <logger name="com.alibaba.nacos" level="ERROR"/>
 
 
 </configuration>