纪新园 1 год назад
Родитель
Сommit
7b98ee7ce5

+ 10 - 0
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/Delivery.java

@@ -748,6 +748,16 @@ public class Delivery implements Serializable {
 	 */
 	@ApiModelProperty(value = "工号")
 	private String jobNumber;
+	/**
+	 * 开船日期
+	 */
+	@ApiModelProperty(value = "开船日期")
+	private Date creditDate;
+	/**
+	 * 到港日期
+	 */
+	@ApiModelProperty(value = "到港日期")
+	private Date dateOfArrival;
 
 	/**
 	 * tab类型

+ 4 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -1712,6 +1712,10 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 				selectOrder.setDocumentaryStatus("已出运");
 				selectOrder.setOrderStatus("已出运");
 				selectOrder.setDocumentaryDate(delivery.getShippingDate());
+				selectOrder.setShipName(detail.getShipName());
+				selectOrder.setVoyage(detail.getVoyage());
+				selectOrder.setCreditDate(detail.getCreditDate());
+				selectOrder.setDateOfArrival(detail.getDateOfArrival());
 			} else if (3 == delivery.getDocumentaryStatusType()) {
 				sendMessage.setMessageBody("您的销售订单" + selectOrder.getSysNo() + "已寄单,请查看");
 				selectOrder.setDocumentaryStatus("寄单");

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

@@ -660,6 +660,7 @@ public class AccountsServiceImpl extends ServiceImpl<AccountsMapper, Accounts> i
 			.eq(Accounts::getIsDetail, 1);
 		if (1 == accounts.getType()) {
 			lambdaQueryWrapper.apply("cur_code = 'USD'");
+			lambdaQueryWrapper.apply("find_in_set(property,'0,1')");
 		} else {
 			lambdaQueryWrapper.apply("cur_code != '' and cur_code is not null");
 			lambdaQueryWrapper.apply("find_in_set(property,'2,4')");

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/cur/service/IBCurrencyService.java

@@ -90,5 +90,7 @@ public interface IBCurrencyService extends IService<BCurrency> {
 
 	List<BCurrency> getExrate(BCurrency bCurrency);
 
+	BCurrency getExrateDetails(BCurrency bCurrency);
+
 	List<PeriodExchangeRate> getPeriodExchangeRate();
 }

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

@@ -108,8 +108,8 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 				item.setCode(bCurrency.getCode());
 				BCurExrate bCurExrate = bCurExrateService.getOne(new LambdaQueryWrapper<BCurExrate>()
 					.eq(BCurExrate::getExrateYear, item.getExrateYear())
-					.eq(ObjectUtils.isNotNull(item.getExrateMonth()),BCurExrate::getExrateMonth, item.getExrateMonth())
-					.eq(ObjectUtils.isNotNull(item.getExrateDay()),BCurExrate::getExrateDay, item.getExrateDay())
+					.eq(ObjectUtils.isNotNull(item.getExrateMonth()), BCurExrate::getExrateMonth, item.getExrateMonth())
+					.eq(ObjectUtils.isNotNull(item.getExrateDay()), BCurExrate::getExrateDay, item.getExrateDay())
 					.eq(BCurExrate::getType, bCurrency.getParitiesType())
 					.eq(BCurExrate::getCode, item.getCode())
 				);
@@ -204,7 +204,7 @@ 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()){
+			if (1 == bCurrency.getIsLocal()) {
 				return amount;
 			}
 			LambdaQueryWrapper<BCurExrate> lambdaQueryWrapper = new LambdaQueryWrapper<BCurExrate>()
@@ -354,7 +354,7 @@ 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()){
+			if (1 == bCurrency.getIsLocal()) {
 				return amount;
 			}
 			LambdaQueryWrapper<BCurExrate> lambdaQueryWrapper = new LambdaQueryWrapper<BCurExrate>()
@@ -390,7 +390,7 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 						lambdaQueryWrapper.eq(BCurExrate::getExrateMonth, month);
 						lambdaQueryWrapper.eq(BCurExrate::getExrateDay, day)
 							.eq(BCurExrate::getType, bCurrency.getParitiesType());
-					}else if ("年汇率".equals(bCurrency.getParitiesType())) {
+					} else if ("年汇率".equals(bCurrency.getParitiesType())) {
 						lambdaQueryWrapper.eq(BCurExrate::getType, bCurrency.getParitiesType());
 					}
 				}
@@ -402,7 +402,7 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 					lambdaQueryWrapper.eq(BCurExrate::getExrateMonth, month);
 					lambdaQueryWrapper.eq(BCurExrate::getExrateDay, day)
 						.eq(BCurExrate::getType, bCurrency.getParitiesType());
-				}else if ("年汇率".equals(bCurrency.getParitiesType())) {
+				} else if ("年汇率".equals(bCurrency.getParitiesType())) {
 					lambdaQueryWrapper.eq(BCurExrate::getType, bCurrency.getParitiesType());
 				}
 			}
@@ -459,7 +459,7 @@ 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()){
+			if (1 == bCurrency.getIsLocal()) {
 				return new BigDecimal("1");
 			}
 			LambdaQueryWrapper<BCurExrate> lambdaQueryWrapper = new LambdaQueryWrapper<BCurExrate>()
@@ -562,7 +562,7 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 			.eq(BCurrency::getIsDeleted, 0)
 			.eq(BCurrency::getStatus, 0));
 		for (BCurrency details : bCurrencyList) {
-			if (1 == details.getIsLocal()){
+			if (1 == details.getIsLocal()) {
 				details.setExrate(details.getExrate());
 			} else {
 				if (ObjectUtils.isNotNull(details) && ObjectUtils.isNotNull(details.getExrate()) &&
@@ -679,6 +679,134 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 	}
 
 	@Override
+	public BCurrency getExrateDetails(BCurrency bCurrency) {
+		// 创建 Calendar 对象并设置为当前时间
+		Calendar calendar = Calendar.getInstance();
+		if (ObjectUtils.isNull(bCurrency.getDate())) {
+			bCurrency.setDate(new Date());
+		}
+		calendar.setTime(bCurrency.getDate());
+		int year = calendar.get(Calendar.YEAR); // 获取年份
+		int month = calendar.get(Calendar.MONTH) + 1; // 获取月份(注意需加上1,因为月份从0开始计数)
+		int day = calendar.get(Calendar.DATE) + 1;
+		BCurrency details = baseMapper.selectOne(new LambdaQueryWrapper<BCurrency>()
+			.eq(BCurrency::getTenantId, AuthUtil.getTenantId())
+			.eq(BCurrency::getIsDeleted, 0)
+			.eq(BCurrency::getIsLocal, 0)
+			.eq(BCurrency::getCode, bCurrency.getCode())
+			.eq(BCurrency::getStatus, 0));
+		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)
+						.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);
+			if ("D".equals(bCurrency.getDc())) {
+				if ("1".equals(bCurrency.getType())) {
+					if (ObjectUtils.isNull(bCurExrate)) {
+						throw new RuntimeException("请维护" + year + "年" + month + "月," + details.getCode() + "汇率");
+					}
+					if (ObjectUtils.isNull(bCurExrate.getExrateReceivable()) &&
+						new BigDecimal("0.00").compareTo(bCurExrate.getExrateReceivable()) == 0) {
+						throw new RuntimeException("请维护" + year + "年" + month + "月," + details.getCode() + "实收汇率");
+					} else {
+						details.setExrate(bCurExrate.getExrateReceivable());
+					}
+				} else if ("2".equals(bCurrency.getType())) {
+					if (ObjectUtils.isNull(bCurExrate)) {
+						throw new RuntimeException("请维护" + year + "年" + month + "月," + details.getCode() + "汇率");
+					}
+					if (ObjectUtils.isNull(bCurExrate.getExrateReceipts()) &&
+						new BigDecimal("0.00").compareTo(bCurExrate.getExrateReceipts()) == 0) {
+						throw new RuntimeException("请维护" + year + "年" + month + "月," + details.getCode() + "实收汇率");
+					} else {
+						details.setExrate(bCurExrate.getExrateReceipts());
+					}
+				} else {
+					if (ObjectUtils.isNull(bCurExrate)) {
+						throw new RuntimeException("请维护" + year + "年" + month + "月," + details.getCode() + "汇率");
+					}
+					if (ObjectUtils.isNull(bCurExrate.getExrateReceipts()) &&
+						new BigDecimal("0.00").compareTo(bCurExrate.getExrateReceipts()) == 0) {
+						throw new RuntimeException("请维护" + year + "年" + month + "月," + details.getCode() + "实收汇率");
+					} else {
+						details.setExrate(bCurExrate.getExrateReceipts());
+					}
+				}
+			} else if ("C".equals(bCurrency.getDc())) {
+				if ("1".equals(bCurrency.getType())) {
+					if (ObjectUtils.isNull(bCurExrate)) {
+						throw new RuntimeException("请维护" + year + "年" + month + "月," + details.getCode() + "汇率");
+					}
+					if (ObjectUtils.isNull(bCurExrate.getExratePayable()) &&
+						new BigDecimal("0.00").compareTo(bCurExrate.getExratePayable()) == 0) {
+						throw new RuntimeException("请维护" + year + "年" + month + "月," + details.getCode() + "实付汇率");
+					} else {
+						details.setExrate(bCurExrate.getExratePayable());
+					}
+				} else if ("2".equals(bCurrency.getType())) {
+					if (ObjectUtils.isNull(bCurExrate)) {
+						throw new RuntimeException("请维护" + year + "年" + month + "月," + details.getCode() + "汇率");
+					}
+					if (ObjectUtils.isNull(bCurExrate.getExratePayment()) &&
+						new BigDecimal("0.00").compareTo(bCurExrate.getExratePayment()) == 0) {
+						throw new RuntimeException("请维护" + year + "年" + month + "月," + details.getCode() + "实付汇率");
+					} else {
+						details.setExrate(bCurExrate.getExratePayment());
+					}
+				} else {
+					if (ObjectUtils.isNull(bCurExrate)) {
+						throw new RuntimeException("请维护" + year + "年" + month + "月," + details.getCode() + "汇率");
+					}
+					if (ObjectUtils.isNull(bCurExrate.getExratePayment()) &&
+						new BigDecimal("0.00").compareTo(bCurExrate.getExratePayment()) == 0) {
+						throw new RuntimeException("请维护" + year + "年" + month + "月," + details.getCode() + "实付汇率");
+					} else {
+						details.setExrate(bCurExrate.getExratePayment());
+					}
+				}
+			} else {
+				throw new RuntimeException("请维护" + year + "年" + month + "月," + details.getCode() + "汇率");
+			}
+
+		} else {
+			throw new RuntimeException("请维护币别汇率");
+		}
+		return details;
+	}
+
+	@Override
 	public List<PeriodExchangeRate> getPeriodExchangeRate() {
 		BCurrency bCurrency = new BCurrency();
 		// 创建 Calendar 对象并设置为当前时间
@@ -696,9 +824,9 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 			.apply("code != 'CNY'")
 			.eq(BCurrency::getStatus, 0));
 		for (BCurrency details : bCurrencyList) {
-			if (1 == details.getIsLocal()){
+			if (1 == details.getIsLocal()) {
 				details.setExrate(details.getExrate());
-			}else{
+			} else {
 				if (ObjectUtils.isNotNull(details) && ObjectUtils.isNotNull(details.getExrate()) &&
 					new BigDecimal("0.00").compareTo(details.getExrate()) != 0) {
 					LambdaQueryWrapper<BCurExrate> lambdaQueryWrapper = new LambdaQueryWrapper<BCurExrate>()
@@ -756,7 +884,7 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 			periodExchangeRate.setExrate(details.getExrate());
 			periodExchangeRate.setCurCode(details.getCode());
 			periodExchangeRate.setCurName(details.getCnName());
-			periodExchangeRate.setCurDate(year+"-"+month+"-"+day);
+			periodExchangeRate.setCurDate(year + "-" + month + "-" + day);
 			periodExchangeRates.add(periodExchangeRate);
 		}
 		return periodExchangeRates;

+ 28 - 12
blade-service/blade-los/src/main/java/org/springblade/los/check/service/impl/AuditProecessServiceImpl.java

@@ -35,6 +35,7 @@ import org.springblade.los.basic.business.entity.BusinessType;
 import org.springblade.los.basic.business.service.IBusinessTypeService;
 import org.springblade.los.basic.corps.entity.BCorps;
 import org.springblade.los.basic.corps.service.IBCorpsService;
+import org.springblade.los.basic.cur.entity.BCurrency;
 import org.springblade.los.basic.cur.service.IBCurrencyService;
 import org.springblade.los.basic.voucher.entity.VoucherTemplate;
 import org.springblade.los.basic.voucher.service.IVoucherTemplateService;
@@ -1458,23 +1459,39 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 		//固定借,贷金额数组
 		BigDecimal[] amount = new BigDecimal[]{amountD, amountD, amountC, amountC, amountDUsd, amountDUsd, amountCUsd, amountCUsd};
 		BigDecimal rateC = new BigDecimal("0.00");
-		BigDecimal rateCRmb = new BigDecimal("0.00");
+		BCurrency bCurrencyC = new BCurrency();
+		bCurrencyC.setDc("C");
+		bCurrencyC.setCode("USD");
+		bCurrencyC.setType("1");
+		BCurrency currencyC = bCurrencyService.getExrateDetails(bCurrencyC);
+		if (currencyC != null){
+			rateC = currencyC.getExrate();
+		}
+		/*BigDecimal rateCRmb = new BigDecimal("0.00");
 		List<FeeCenter> rateListC = feeCenterList.stream().filter(e -> "USD".equals(e.getCurCode()) && "C".equals(e.getDc())).collect(Collectors.toList());
 		for (FeeCenter item : rateListC) {
 			rateCRmb = rateCRmb.add(item.getAmount().multiply(item.getExrate()));
 		}
 		if (new BigDecimal("0.00").compareTo(rateCRmb) != 0) {
 			rateC = rateCRmb.divide(amountCUsd, MathContext.DECIMAL32).setScale(4, RoundingMode.HALF_UP);
-		}
+		}*/
 		BigDecimal rateD = new BigDecimal("0.00");
-		BigDecimal rateDRmb = new BigDecimal("0.00");
+		BCurrency bCurrencyD = new BCurrency();
+		bCurrencyD.setDc("D");
+		bCurrencyD.setCode("USD");
+		bCurrencyD.setType("1");
+		BCurrency currencyD = bCurrencyService.getExrateDetails(bCurrencyD);
+		if (currencyD != null){
+			rateD = currencyD.getExrate();
+		}
+		/*BigDecimal rateDRmb = new BigDecimal("0.00");
 		List<FeeCenter> rateListD = feeCenterList.stream().filter(e -> "USD".equals(e.getCurCode()) && "D".equals(e.getDc())).collect(Collectors.toList());
 		for (FeeCenter item : rateListD) {
 			rateDRmb = rateDRmb.add(item.getAmount().multiply(item.getExrate()));
 		}
 		if (new BigDecimal("0.00").compareTo(rateDRmb) != 0) {
 			rateD = rateDRmb.divide(amountDUsd, MathContext.DECIMAL32).setScale(4, RoundingMode.HALF_UP);
-		}
+		}*/
 		List<Long> corpIds = feeCenterList.stream().map(FeeCenter::getCorpId).collect(Collectors.toList());
 		List<BCorps> bCorpsList = bCorpsService.list(new LambdaQueryWrapper<BCorps>()
 			.eq(BCorps::getTenantId, AuthUtil.getTenantId())
@@ -2068,8 +2085,8 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 									}
 								}
 							} else {
+								finVouchersItems.setExrate(rateD);
 								if ("D".equals(item.getAmountDirection())) {
-									finVouchersItems.setExrate(rateD);
 									if ("D".equals(accounts.getDc())) {
 										if (new BigDecimal("0.00").compareTo(map.get(key)) != 0) {
 											finVouchersItems.setAmountDrUsd(map.get(key));
@@ -2082,14 +2099,13 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 										finVouchersItems.setAmountCr(finVouchersItems.getAmountCrUsd().multiply(rateD));
 									}
 								} else {
-									finVouchersItems.setExrate(rateC);
 									if ("D".equals(accounts.getDc())) {
 										finVouchersItems.setAmountDrUsd(new BigDecimal("0.00").subtract(map.get(key)));
-										finVouchersItems.setAmountDr(finVouchersItems.getAmountDrUsd().multiply(rateC));
+										finVouchersItems.setAmountDr(finVouchersItems.getAmountDrUsd().multiply(rateD));
 									} else {
 										if (new BigDecimal("0.00").compareTo(map.get(key)) != 0) {
 											finVouchersItems.setAmountCrUsd(map.get(key));
-											finVouchersItems.setAmountCr(finVouchersItems.getAmountCrUsd().multiply(rateC));
+											finVouchersItems.setAmountCr(finVouchersItems.getAmountCrUsd().multiply(rateD));
 										} else {
 											continue;
 										}
@@ -2277,21 +2293,20 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 									}
 								}
 							} else {
+								finVouchersItems.setExrate(rateC);
 								if ("D".equals(item.getAmountDirection())) {
-									finVouchersItems.setExrate(rateD);
 									if ("D".equals(accounts.getDc())) {
 										if (new BigDecimal("0.00").compareTo(map.get(key)) != 0) {
 											finVouchersItems.setAmountDrUsd(map.get(key));
-											finVouchersItems.setAmountDr(finVouchersItems.getAmountDrUsd().multiply(rateD));
+											finVouchersItems.setAmountDr(finVouchersItems.getAmountDrUsd().multiply(rateC));
 										} else {
 											continue;
 										}
 									} else {
 										finVouchersItems.setAmountCrUsd(new BigDecimal("0.00").subtract(map.get(key)));
-										finVouchersItems.setAmountCr(finVouchersItems.getAmountCrUsd().multiply(rateD));
+										finVouchersItems.setAmountCr(finVouchersItems.getAmountCrUsd().multiply(rateC));
 									}
 								} else {
-									finVouchersItems.setExrate(rateC);
 									if ("D".equals(accounts.getDc())) {
 										finVouchersItems.setAmountDrUsd(new BigDecimal("0.00").subtract(map.get(key)));
 										finVouchersItems.setAmountDr(finVouchersItems.getAmountDrUsd().multiply(rateC));
@@ -2497,6 +2512,7 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 								finVouchersItems.setAmountDrUsd(new BigDecimal("0.00").subtract(amount[count - 1]));
 								finVouchersItems.setAmountDr(finVouchersItems.getAmountDrUsd().multiply(rateC));
 							} else {
+								finVouchersItems.setExrate(rateC);
 								if (new BigDecimal("0.00").compareTo(amount[count - 1]) != 0) {
 									finVouchersItems.setAmountCrUsd(amount[count - 1]);
 									finVouchersItems.setAmountCr(finVouchersItems.getAmountCrUsd().multiply(rateC));

+ 50 - 56
blade-service/blade-los/src/main/java/org/springblade/los/finance/genleg/service/impl/FinPeriodServiceImpl.java

@@ -406,7 +406,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 			.eq(FinStlBills::getTenantId, AuthUtil.getTenantId())
 			.eq(FinStlBills::getIsDeleted, 0)
 			.eq(FinStlBills::getBusinessType, "STL")
-			.eq(FinStlBills::getStatus, 3)
+			.notIn(FinStlBills::getStatus, 3)
 			.eq(FinStlBills::getBranchId, detail.getBranchId())
 			.gt(FinStlBills::getBillDate, beginDate)
 			.lt(FinStlBills::getBillDate, endDate)
@@ -486,8 +486,8 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 		);
 		List<PeriodVouchersTemplate> list = new ArrayList<>();
 		if (detail != null) {
-			PeriodVouchersTemplate exchange = JSONObject.parseObject(detail.getExchange(), PeriodVouchersTemplate.class);
-			list.add(exchange);
+			/*PeriodVouchersTemplate exchange = JSONObject.parseObject(detail.getExchange(), PeriodVouchersTemplate.class);
+			list.add(exchange);*/
 			PeriodVouchersTemplate period = JSONObject.parseObject(detail.getPeriod(), PeriodVouchersTemplate.class);
 			list.add(period);
 		}
@@ -765,19 +765,19 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 			finPeriod.getPeriodVouchersTemplate().setId(finPeriod.getId() + "");
 			finPeriod.getPeriodVouchersTemplate().setStatus(finPeriod.getIsClosed());
 			finPeriod.getPeriodVouchersTemplate().setDate(finPeriod.getPeriodYear() + "-" + finPeriod.getPeriodMonth());
-			if ("FM-CURRENCY-PL-TRANSFER".equals(finPeriod.getPeriodVouchersTemplate().getBsType())) {
+			/*if ("FM-CURRENCY-PL-TRANSFER".equals(finPeriod.getPeriodVouchersTemplate().getBsType())) {
 				finPeriod.setExchange(JSON.toJSONString(finPeriod.getPeriodVouchersTemplate()));
-			} else {
+			} else {*/
 				finPeriod.setPeriod(JSON.toJSONString(finPeriod.getPeriodVouchersTemplate()));
-			}
+//			}
 		}
-		PeriodVouchersTemplate exchange = JSONObject.parseObject(finPeriod.getExchange(), PeriodVouchersTemplate.class);
+		/*PeriodVouchersTemplate exchange = JSONObject.parseObject(finPeriod.getExchange(), PeriodVouchersTemplate.class);
 		if (exchange != null) {
 			exchange.setId(finPeriod.getId() + "");
 			exchange.setDate(finPeriod.getPeriodYear() + "-" + finPeriod.getPeriodMonth());
 			exchange.setStatus(finPeriod.getIsClosed());
 			finPeriod.setExchange(JSON.toJSONString(exchange));
-		}
+		}*/
 		PeriodVouchersTemplate period = JSONObject.parseObject(finPeriod.getPeriod(), PeriodVouchersTemplate.class);
 		if (period != null) {
 			period.setId(finPeriod.getId() + "");
@@ -860,26 +860,26 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 		}
 		this.saveOrUpdate(finPeriod);
 
-		PeriodVouchersTemplate exchange = new PeriodVouchersTemplate();
+		/*PeriodVouchersTemplate exchange = new PeriodVouchersTemplate();
 		exchange.setId(finPeriod.getId() + "");
 		exchange.setStatus(0);
 		exchange.setBsType("FM-CURRENCY-PL-TRANSFER");
 		exchange.setVkno("转");
-		/*Accounts accountsExchange = accountsService.getOne(new LambdaQueryWrapper<Accounts>()
-			.eq(Accounts::getTenantId, AuthUtil.getTenantId())
-			.eq(Accounts::getCode, "550303")
-		);
-		if (null == accountsExchange) {
-			throw new RuntimeException("未找到到科目代码550303信息");
-		}
-		exchange.setPlAccCnm(accountsExchange.getCnName());
-		exchange.setPlAccFnm(accountsExchange.getCode() + "-" + accountsExchange.getFullName());
-		exchange.setPlAccNo(accountsExchange.getCode());
-		exchange.setPlAccID(accountsExchange.getId() + "");
-		exchange.setDescr(accountsExchange.getCnName() + "结转");*/
+//		Accounts accountsExchange = accountsService.getOne(new LambdaQueryWrapper<Accounts>()
+//			.eq(Accounts::getTenantId, AuthUtil.getTenantId())
+//			.eq(Accounts::getCode, "550303")
+//		);
+//		if (null == accountsExchange) {
+//			throw new RuntimeException("未找到到科目代码550303信息");
+//		}
+//		exchange.setPlAccCnm(accountsExchange.getCnName());
+//		exchange.setPlAccFnm(accountsExchange.getCode() + "-" + accountsExchange.getFullName());
+//		exchange.setPlAccNo(accountsExchange.getCode());
+//		exchange.setPlAccID(accountsExchange.getId() + "");
+//		exchange.setDescr(accountsExchange.getCnName() + "结转");
 		exchange.setAccItems(new ArrayList<>());
 		exchange.setDate(finPeriod.getPeriodYear() + "-" + finPeriod.getPeriodMonth());
-		finPeriod.setExchange(JSON.toJSONString(exchange));
+		finPeriod.setExchange(JSON.toJSONString(exchange));*/
 		PeriodVouchersTemplate period = new PeriodVouchersTemplate();
 		period.setId(finPeriod.getId() + "");
 		period.setStatus(0);
@@ -907,13 +907,13 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 	public FinPeriod detail(FinPeriod finPeriod) {
 		FinPeriod detail = baseMapper.selectById(finPeriod.getId());
 		if (detail != null) {
-			if ("FM-CURRENCY-PL-TRANSFER".equals(finPeriod.getType())) {
+			/*if ("FM-CURRENCY-PL-TRANSFER".equals(finPeriod.getType())) {
 				PeriodVouchersTemplate exchange = JSONObject.parseObject(detail.getExchange(), PeriodVouchersTemplate.class);
 				detail.setPeriodVouchersTemplate(exchange);
-			} else {
+			} else {*/
 				PeriodVouchersTemplate period = JSONObject.parseObject(detail.getPeriod(), PeriodVouchersTemplate.class);
 				detail.setPeriodVouchersTemplate(period);
-			}
+//			}
 		}
 		return detail;
 	}
@@ -933,7 +933,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 		if (0 == finPeriod.getLockingStatus()) {
 			throw new RuntimeException("请先将当前期间锁定后再生成凭证");
 		}
-		if (!"FM-CURRENCY-PL-TRANSFER".equals(periodVouchersTemplate.getBsType())) {
+		/*if (!"FM-CURRENCY-PL-TRANSFER".equals(periodVouchersTemplate.getBsType())) {
 			if (finVouchersService.count(new LambdaQueryWrapper<FinVouchers>()
 				.eq(FinVouchers::getTenantId, AuthUtil.getTenantId())
 				.eq(FinVouchers::getIsDeleted, 0)
@@ -943,7 +943,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 				.eq(FinVouchers::getVoucherSource, "FM-CURRENCY-PL-TRANSFER")) == 0) {
 				throw new RuntimeException("请先生成汇兑损益凭证");
 			}
-		}
+		}*/
 		if (finVouchersService.count(new LambdaQueryWrapper<FinVouchers>()
 			.eq(FinVouchers::getTenantId, AuthUtil.getTenantId())
 			.eq(FinVouchers::getIsDeleted, 0)
@@ -997,7 +997,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 		}
 		List<FinVouchersItems> finVouchersItemsList = new ArrayList<>();
 		//获取所需科目列表信息
-		String accountsCode = accItems.stream().map(PeriodVouchersAccItems::getAccNo).collect(Collectors.joining(","));
+		String accountsCode = accItems.stream().map(PeriodVouchersAccItems::getAccNo).distinct().collect(Collectors.joining(","));
 		List<Accounts> accountsList = accountsService.list(new LambdaQueryWrapper<Accounts>()
 			.eq(Accounts::getStatus, 0)
 			.apply("find_in_set(code,'" + accountsCode + "')"));
@@ -1091,14 +1091,14 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 							finVouchersItems.setEmplId(calc.getEmplId());
 							finVouchersItems.setEmplName(calc.getEmplName());
 						}
-						if ("FM-CURRENCY-PL-TRANSFER".equals(periodVouchersTemplate.getBsType())) {
+						/*if ("FM-CURRENCY-PL-TRANSFER".equals(periodVouchersTemplate.getBsType())) {
 							if (!"CNY".equals(item.getCurCode())) {
 								finVouchersItems.setExrate(periodExchangeRate.getExrate());
 								if ("D".equals(item.getDc())) {
 									BigDecimal amountDrUsdNew = periodExchangeRate.getExrate().multiply(calc.getAmountDrUsd()).setScale(2, RoundingMode.HALF_UP);
 									BigDecimal amountDrUsdSubtract = amountDrUsdNew.subtract(calc.getAmountDr());
 									if (new BigDecimal("0.00").compareTo(amountDrUsdSubtract) != 0) {
-										finVouchersItems.setAmountDrUsd(amountDrUsdSubtract.divide(periodExchangeRate.getExrate(), RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP));
+										finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
 										finVouchersItems.setAmountDr(amountDrUsdSubtract);
 										finVouchersItems.setAmountDrLoc(amountDrUsdSubtract);
 										finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
@@ -1111,7 +1111,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 									BigDecimal amountCrUsdNew = periodExchangeRate.getExrate().multiply(calc.getAmountCrUsd()).setScale(2, RoundingMode.HALF_UP);
 									BigDecimal amountCrUsdSubtract = amountCrUsdNew.subtract(calc.getAmountCr());
 									if (new BigDecimal("0.00").compareTo(amountCrUsdSubtract) != 0) {
-										finVouchersItems.setAmountCrUsd(amountCrUsdSubtract.divide(periodExchangeRate.getExrate(), RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP));
+										finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
 										finVouchersItems.setAmountCr(amountCrUsdSubtract);
 										finVouchersItems.setAmountCrLoc(amountCrUsdSubtract);
 										finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
@@ -1123,7 +1123,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 								}
 								finVouchersItemsList.add(finVouchersItems);
 							}
-						} else {
+						} else {*/
 							if (periodVouchersTemplate.getPlAccNo().equals(item.getCode())) {
 								finVouchersItems.setExrate(new BigDecimal("1"));
 								if ("C".equals(item.getDc())) {
@@ -1155,8 +1155,8 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 									if ("D".equals(item.getDc())) {
 										if (new BigDecimal("0.00").compareTo(calc.getAmountDrUsd()) != 0) {
 											finVouchersItems.setAmountCrUsd(calc.getAmountDrUsd());
-											finVouchersItems.setAmountCr(finVouchersItems.getAmountCrUsd().multiply(periodExchangeRate.getExrate()));
-											finVouchersItems.setAmountCrLoc(finVouchersItems.getAmountCrUsd().multiply(periodExchangeRate.getExrate()));
+											finVouchersItems.setAmountCr(calc.getAmountDr());
+											finVouchersItems.setAmountCrLoc(calc.getAmountDr());
 											finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
 											finVouchersItems.setAmountDr(new BigDecimal("0.00"));
 											finVouchersItems.setAmountDrLoc(new BigDecimal("0.00"));
@@ -1166,8 +1166,8 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 									} else {
 										if (new BigDecimal("0.00").compareTo(calc.getAmountCrUsd()) != 0) {
 											finVouchersItems.setAmountDrUsd(calc.getAmountCrUsd());
-											finVouchersItems.setAmountDr(finVouchersItems.getAmountDrUsd().multiply(periodExchangeRate.getExrate()));
-											finVouchersItems.setAmountDrLoc(finVouchersItems.getAmountDrUsd().multiply(periodExchangeRate.getExrate()));
+											finVouchersItems.setAmountDr(calc.getAmountCr());
+											finVouchersItems.setAmountDrLoc(calc.getAmountCr());
 											finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
 											finVouchersItems.setAmountCr(new BigDecimal("0.00"));
 											finVouchersItems.setAmountCrLoc(new BigDecimal("0.00"));
@@ -1203,7 +1203,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 								}
 							}
 							finVouchersItemsList.add(finVouchersItems);
-						}
+//						}
 					}
 				} else {
 					FinVouchersItems finVouchersItems = new FinVouchersItems();
@@ -1235,14 +1235,14 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 					if (finGenleg == null) {
 						throw new RuntimeException("未查到科目:" + item.getCnName() + "总账信息");
 					}
-					if ("FM-CURRENCY-PL-TRANSFER".equals(periodVouchersTemplate.getBsType())) {
+					/*if ("FM-CURRENCY-PL-TRANSFER".equals(periodVouchersTemplate.getBsType())) {
 						if (!"CNY".equals(item.getCurCode())) {
 							finVouchersItems.setExrate(periodExchangeRate.getExrate());
 							if ("D".equals(item.getDc())) {
 								BigDecimal amountDrUsdNew = periodExchangeRate.getExrate().multiply(finGenleg.getAmountDrUsd()).setScale(2, RoundingMode.HALF_UP);
 								BigDecimal amountDrUsdSubtract = amountDrUsdNew.subtract(finGenleg.getAmountDr());
 								if (new BigDecimal("0.00").compareTo(amountDrUsdSubtract) != 0) {
-									finVouchersItems.setAmountDrUsd(amountDrUsdSubtract.divide(periodExchangeRate.getExrate(), RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP));
+									finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
 									finVouchersItems.setAmountDr(amountDrUsdSubtract);
 									finVouchersItems.setAmountDrLoc(amountDrUsdSubtract);
 									finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
@@ -1255,7 +1255,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 								BigDecimal amountCrUsdNew = periodExchangeRate.getExrate().multiply(finGenleg.getAmountCrUsd()).setScale(2, RoundingMode.HALF_UP);
 								BigDecimal amountCrUsdSubtract = amountCrUsdNew.subtract(finGenleg.getAmountCr());
 								if (new BigDecimal("0.00").compareTo(amountCrUsdSubtract) != 0) {
-									finVouchersItems.setAmountCrUsd(amountCrUsdSubtract.divide(periodExchangeRate.getExrate(), RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP));
+									finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
 									finVouchersItems.setAmountCr(amountCrUsdSubtract);
 									finVouchersItems.setAmountCrLoc(amountCrUsdSubtract);
 									finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
@@ -1267,7 +1267,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 							}
 							finVouchersItemsList.add(finVouchersItems);
 						}
-					} else {
+					} else {*/
 						PeriodVouchersTemplate period = JSONObject.parseObject(finPeriod.getPeriod(), PeriodVouchersTemplate.class);
 						if (period == null) {
 							throw new RuntimeException("未找到期间损益配置");
@@ -1303,8 +1303,8 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 								if ("D".equals(item.getDc())) {
 									if (new BigDecimal("0.00").compareTo(finGenleg.getAmountDrUsd()) != 0) {
 										finVouchersItems.setAmountCrUsd(finGenleg.getAmountDrUsd());
-										finVouchersItems.setAmountCr(finVouchersItems.getAmountCrUsd().multiply(periodExchangeRate.getExrate()));
-										finVouchersItems.setAmountCrLoc(finVouchersItems.getAmountCrUsd().multiply(periodExchangeRate.getExrate()));
+										finVouchersItems.setAmountCr(finGenleg.getAmountDr());
+										finVouchersItems.setAmountCrLoc(finGenleg.getAmountDr());
 										finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
 										finVouchersItems.setAmountDr(new BigDecimal("0.00"));
 										finVouchersItems.setAmountDrLoc(new BigDecimal("0.00"));
@@ -1314,8 +1314,8 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 								} else {
 									if (new BigDecimal("0.00").compareTo(finGenleg.getAmountCrUsd()) != 0) {
 										finVouchersItems.setAmountDrUsd(finGenleg.getAmountCrUsd());
-										finVouchersItems.setAmountDr(finVouchersItems.getAmountDrUsd().multiply(periodExchangeRate.getExrate()));
-										finVouchersItems.setAmountDrLoc(finVouchersItems.getAmountDrUsd().multiply(periodExchangeRate.getExrate()));
+										finVouchersItems.setAmountDr(finGenleg.getAmountCr());
+										finVouchersItems.setAmountDrLoc(finGenleg.getAmountCr());
 										finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
 										finVouchersItems.setAmountCr(new BigDecimal("0.00"));
 										finVouchersItems.setAmountCrLoc(new BigDecimal("0.00"));
@@ -1351,7 +1351,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 							}
 						}
 						finVouchersItemsList.add(finVouchersItems);
-					}
+//					}
 				}
 			}
 		} else {
@@ -1404,21 +1404,15 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 		if (!"CNY".equals(accounts.getCurCode())) {
 			throw new RuntimeException("科目:" + periodVouchersTemplate.getPlAccCnm() + "币别不是CNY");
 		}
-		if ("FM-CURRENCY-PL-TRANSFER".equals(periodVouchersTemplate.getBsType())) {
+		/*if ("FM-CURRENCY-PL-TRANSFER".equals(periodVouchersTemplate.getBsType())) {
 			BigDecimal subtract = new BigDecimal("0.00").subtract(amountDrLoc).add(amountCrLoc);
 			finVouchersItems.setAmountDr(subtract);
+			finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
 			finVouchersItems.setAmountDrLoc(subtract);
 			finVouchersItems.setAmountCr(new BigDecimal("0.00"));
-			finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
 			finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
 			finVouchersItems.setAmountCrLoc(new BigDecimal("0.00"));
-			finVouchersItems.setAmountCr(new BigDecimal("0.00"));
-			finVouchersItems.setAmountCrLoc(new BigDecimal("0.00"));
-			finVouchersItems.setAmountCrUsd(new BigDecimal("0.00"));
-			finVouchersItems.setAmountDr(new BigDecimal("0.00"));
-			finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
-			finVouchersItems.setAmountDrLoc(new BigDecimal("0.00"));
-		}else{
+		}else{*/
 			BigDecimal subtract = amountDrLoc.subtract(amountCrLoc);
 			if ("D".equals(accounts.getDc())){
 				finVouchersItems.setAmountDr(subtract);
@@ -1435,7 +1429,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 				finVouchersItems.setAmountDrUsd(new BigDecimal("0.00"));
 				finVouchersItems.setAmountDrLoc(new BigDecimal("0.00"));
 			}
-		}
+//		}
 
 		/*} else {
 			BigDecimal subtract = amountDrLoc.subtract(amountCrLoc);

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

@@ -16,7 +16,6 @@
  */
 package org.springblade.los.finance.vouchers.service.impl;
 
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -38,7 +37,6 @@ import org.springblade.los.finance.fee.entity.FeeCenter;
 import org.springblade.los.finance.fee.entity.FinAccBills;
 import org.springblade.los.finance.fee.service.IFeeCenterService;
 import org.springblade.los.finance.fee.service.IFinAccBillsService;
-import org.springblade.los.finance.genleg.dto.PeriodVouchersTemplate;
 import org.springblade.los.finance.genleg.entity.FinGenleg;
 import org.springblade.los.finance.genleg.entity.FinGenlegCalc;
 import org.springblade.los.finance.genleg.entity.FinPeriod;
@@ -300,6 +298,100 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 		}
 		List<FinGenleg> finGenlegListNew = new ArrayList<>();
 		List<FinGenlegCalc> finGenlegCalcListNew = new ArrayList<>();
+		/*for (FinVouchers detail : finVouchersList) {
+			if (ObjectUtils.isNotNull(finVouchersItemsList)) {
+				List<FinVouchersItems> finVouchersItems = finVouchersItemsList.stream().filter(e -> e.getPid().equals(detail.getId())).collect(Collectors.toList());
+				//对账明细状态修改  已对账
+				for (FinVouchersItems item : finVouchersItems) {
+					Accounts accounts = accountsList.stream().filter(e -> e.getId().equals(item.getAccountId())).findFirst().orElse(null);
+					if (accounts != null) {
+						if (1 == accounts.getIsDept() || 1 == accounts.getIsCorp() || 1 == accounts.getIsEmpl()) {
+							FinGenlegCalc finGenlegCalc = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
+								.eq(FinGenlegCalc::getAccId, item.getAccountId())
+								.eq(FinGenlegCalc::getAccyear, item.getAccountYear())
+								.eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
+								.eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
+								.eq(1 == accounts.getIsCorp(), FinGenlegCalc::getCorpId, item.getCorpId())
+								.eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
+							FinGenlegCalc finGenlegCalcNew = genlegAccountingFinGenlegCalc(accounts, item, finGenlegCalc);
+							if (ObjectUtils.isNotNull(finGenlegCalcNew)) {
+								finGenlegCalcListNew.add(finGenlegCalcNew);
+							}
+							FinGenlegCalc finGenlegP = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
+								.eq(FinGenlegCalc::getAccId, finGenlegCalcNew.getParentId())
+								.eq(FinGenlegCalc::getAccyear, item.getAccountYear())
+								.eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
+								.eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
+								.eq(1 == accounts.getIsCorp(), FinGenlegCalc::getCorpId, item.getCorpId())
+								.eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
+							if (finGenlegP != null) {
+								List<FinGenlegCalc> finGenlegs = new ArrayList<>();
+								genlegCalcAccountingForNew(accounts, item, finGenlegP, finGenlegs);
+								if (!finGenlegs.isEmpty()) {
+									finGenlegCalcListNew.addAll(finGenlegs);
+								}
+							}
+						}
+						FinGenleg finGenleg = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
+							.eq(FinGenleg::getAccId, item.getAccountId())
+							.eq(FinGenleg::getAccyear, item.getAccountYear())
+							.eq(FinGenleg::getAccmonth, item.getAccountMonth()));
+						FinGenleg finGenlegNew = genlegAccountingFinGenleg(accounts, item, finGenleg);
+						if (ObjectUtils.isNotNull(finGenlegNew)) {
+							finGenlegListNew.add(finGenlegNew);
+						}
+						FinGenleg finGenlegP = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
+							.eq(FinGenleg::getAccId, finGenlegNew.getParentId())
+							.eq(FinGenleg::getAccyear, item.getAccountYear())
+							.eq(FinGenleg::getAccmonth, item.getAccountMonth()));
+						if (finGenlegP != null) {
+							List<FinGenleg> finGenlegs = new ArrayList<>();
+							genlegAccountingForNew(item, finGenlegP, finGenlegs);
+							if (!finGenlegs.isEmpty()) {
+								finGenlegListNew.addAll(finGenlegs);
+							}
+						}
+					}
+					item.setStatus(1);
+					item.setVoucherDate(detail.getVoucherDate());
+					item.setUpdateUser(AuthUtil.getUserId());
+					item.setUpdateTime(new Date());
+					item.setUpdateUserName(AuthUtil.getUserName());
+					finVouchersItemsListNew.add(item);
+				}
+				//通过对账明细里账单id查询具体账单数据
+				List<String> billNos = finVouchersItems.stream().map(FinVouchersItems::getBillNo)
+					.filter(Objects::nonNull).collect(Collectors.toList());
+				List<FinAccBills> finAccBillsList = finAccBillsService.list(new LambdaQueryWrapper<FinAccBills>()
+					.eq(FinAccBills::getTenantId, AuthUtil.getTenantId())
+					.eq(FinAccBills::getIsDeleted, 0)
+					.in(FinAccBills::getBillNo, billNos));
+				//修改账单中对账状态
+				for (FinAccBills item : finAccBillsList) {
+					item.setVoucherBillId(detail.getId());
+					item.setVoucherBillNo(detail.getBillNo());
+					item.setVoucherNo(detail.getVoucherNo());
+					item.setVoucherDate(detail.getVoucherDate());
+					item.setUpdateUser(AuthUtil.getUserId());
+					item.setUpdateTime(new Date());
+					item.setUpdateUserName(AuthUtil.getUserName());
+					finAccBillsListNew.add(item);
+				}
+				//通过账单id查询具体费用中心数据
+				List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+					.in(FeeCenter::getAccBillNo, billNos)
+					.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+					.eq(FeeCenter::getIsDeleted, 0));
+				List<FeeCenter> feeCenters = reconciliationFeeCenter(detail, feeCenterList, 1);
+				feeCenterListNew.addAll(feeCenters);
+			}
+			detail.setStatus(3);
+			detail.setVoucherStatus(1);
+			detail.setPostUserId(AuthUtil.getUserId());
+			detail.setPostUserName(AuthUtil.getUserName());
+			detail.setPostTime(new Date());
+			finVouchersListNew.add(detail);
+		}*/
 		for (FinVouchers detail : finVouchersList) {
 			if (ObjectUtils.isNotNull(finVouchersItemsList)) {
 				List<FinVouchersItems> finVouchersItems = finVouchersItemsList.stream().filter(e -> e.getPid().equals(detail.getId())).collect(Collectors.toList());
@@ -326,7 +418,7 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 								e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
 							if (finGenlegP != null) {
 								List<FinGenlegCalc> finGenlegs = new ArrayList<>();
-								finGenlegCalcList = genlegCalcAccountingFor(item, finGenlegP, finGenlegCalcList, finGenlegs);
+								genlegCalcAccountingFor(item, finGenlegP, finGenlegCalcList, finGenlegs);
 								if (!finGenlegs.isEmpty()) {
 									finGenlegCalcListNew.addAll(finGenlegs);
 								}
@@ -341,7 +433,7 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 							e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
 						if (finGenlegP != null) {
 							List<FinGenleg> finGenlegs = new ArrayList<>();
-							finGenlegList = genlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
+							genlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
 							if (!finGenlegs.isEmpty()) {
 								finGenlegListNew.addAll(finGenlegs);
 							}
@@ -400,7 +492,7 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 		return R.data("");
 	}
 
-	private List<FinGenleg> genlegAccountingFor(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> finGenlegList, List<FinGenleg> finGenlegs) {
+	private void genlegAccountingFor(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> finGenlegList, List<FinGenleg> finGenlegs) {
 		//上期本币余额(CNY)
 		BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
 		//本期本币借方金额(CNY)
@@ -531,10 +623,87 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 				}
 			}
 		}
-		return finGenlegList;
 	}
 
-	private List<FinGenlegCalc> genlegCalcAccountingFor(FinVouchersItems item, FinGenlegCalc finGenleg, List<FinGenlegCalc> finGenlegList, List<FinGenlegCalc> finGenlegs) {
+	private void genlegAccountingForNew(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> finGenlegs) {
+		//上期本币余额(CNY)
+		BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
+		//本期本币借方金额(CNY)
+		BigDecimal amountDr = finGenleg.getAmountDr();
+		//本期本币贷方金额(CNY)
+		BigDecimal amountCr = finGenleg.getAmountCr();
+		//本年本币借方金额(CNY)
+		BigDecimal amountYearDr = finGenleg.getAmountYearDr();
+		//本年本币贷方金额(CNY)
+		BigDecimal amountYearCr = finGenleg.getAmountYearCr();
+		//本期本币余额(CNY)
+		BigDecimal amountBlc;
+		//上期外币余额(USD)
+		BigDecimal amountLastBlcUsd = finGenleg.getAmountLastBlcUsd();
+		//本期外币借方金额
+		BigDecimal amountDrUsd = finGenleg.getAmountDrUsd();
+		//本期外币贷方金额
+		BigDecimal amountCrUsd = finGenleg.getAmountCrUsd();
+		//本年外币借方金额(USD)
+		BigDecimal amountYearDrUsd = finGenleg.getAmountYearDrUsd();
+		//本年外币贷方金额(USD)
+		BigDecimal amountYearCrUsd = finGenleg.getAmountYearCrUsd();
+		//本期外币余额
+		BigDecimal amountUsdBlc;
+		//本期本币借方金额(CNY)
+		amountDr = amountDr.add(item.getAmountDr());
+		//本年本币借方金额(CNY)
+		amountYearDr = amountYearDr.add(item.getAmountDr());
+		//本期本币贷方金额(CNY)
+		amountCr = amountCr.add(item.getAmountCr());
+		//本年本币贷方金额(CNY)
+		amountYearCr = amountYearCr.add(item.getAmountCr());
+		//本期本币借方金额(CNY)
+		amountDrUsd = amountDrUsd.add(item.getAmountDrUsd());
+		//本年本币借方金额(CNY)
+		amountYearDrUsd = amountYearDrUsd.add(item.getAmountDrUsd());
+		//本期本币贷方金额(CNY)
+		amountCrUsd = amountCrUsd.add(item.getAmountCrUsd());
+		//本年本币贷方金额(CNY)
+		amountYearCrUsd = amountYearCrUsd.add(item.getAmountCrUsd());
+		if ("D".equals(finGenleg.getDc())) {
+			amountBlc = amountLastBlc.add(amountDr).subtract(amountCr);
+			amountUsdBlc = amountLastBlcUsd.add(amountDrUsd).subtract(amountCrUsd);
+		} else {
+			amountBlc = amountLastBlc.subtract(amountDr).add(amountCr);
+			amountUsdBlc = amountLastBlcUsd.subtract(amountDrUsd).add(amountCrUsd);
+		}
+		//本期本币借方金额(CNY)
+		finGenleg.setAmountDr(amountDr);
+		//本期本币贷方金额(CNY)
+		finGenleg.setAmountCr(amountCr);
+		//本年本币借方金额(CNY)
+		finGenleg.setAmountYearDr(amountYearDr);
+		//本年本币贷方金额(CNY)
+		finGenleg.setAmountYearCr(amountYearCr);
+		//本期本币余额(CNY)
+		finGenleg.setAmountBlc(amountBlc);
+		//本期外币借方金额
+		finGenleg.setAmountDrUsd(amountDrUsd);
+		//本期外币贷方金额
+		finGenleg.setAmountCrUsd(amountCrUsd);
+		//本年外币借方金额(USD)
+		finGenleg.setAmountYearDrUsd(amountYearDrUsd);
+		//本年外币贷方金额(USD)
+		finGenleg.setAmountYearCrUsd(amountYearCrUsd);
+		//本期外币余额
+		finGenleg.setAmountUsdBlc(amountUsdBlc);
+		finGenlegs.add(finGenleg);
+		FinGenleg finGenlegP = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
+			.eq(FinGenleg::getAccId, finGenleg.getParentId())
+			.eq(FinGenleg::getAccyear, item.getAccountYear())
+			.eq(FinGenleg::getAccmonth, item.getAccountMonth()));
+		if (finGenlegP != null) {
+			genlegAccountingForNew(item, finGenlegP, finGenlegs);
+		}
+	}
+
+	private void genlegCalcAccountingFor(FinVouchersItems item, FinGenlegCalc finGenleg, List<FinGenlegCalc> finGenlegList, List<FinGenlegCalc> finGenlegs) {
 		//上期本币余额(CNY)
 		BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
 		//本期本币借方金额(CNY)
@@ -667,10 +836,92 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 				}
 			}
 		}
-		return finGenlegList;
 	}
 
-	private List<FinGenleg> revokeGenlegAccountingFor(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> finGenlegList, List<FinGenleg> finGenlegs) {
+	private void genlegCalcAccountingForNew(Accounts accounts, FinVouchersItems item, FinGenlegCalc finGenleg, List<FinGenlegCalc> finGenlegs) {
+		//上期本币余额(CNY)
+		BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
+		//本期本币借方金额(CNY)
+		BigDecimal amountDr = finGenleg.getAmountDr();
+		//本期本币贷方金额(CNY)
+		BigDecimal amountCr = finGenleg.getAmountCr();
+		//本年本币借方金额(CNY)
+		BigDecimal amountYearDr = finGenleg.getAmountYearDr();
+		//本年本币贷方金额(CNY)
+		BigDecimal amountYearCr = finGenleg.getAmountYearCr();
+		//本期本币余额(CNY)
+		BigDecimal amountBlc;
+		//上期外币余额(USD)
+		BigDecimal amountLastBlcUsd = finGenleg.getAmountLastBlcUsd();
+		//本期外币借方金额
+		BigDecimal amountDrUsd = finGenleg.getAmountDrUsd();
+		//本期外币贷方金额
+		BigDecimal amountCrUsd = finGenleg.getAmountCrUsd();
+		//本年外币借方金额(USD)
+		BigDecimal amountYearDrUsd = finGenleg.getAmountYearDrUsd();
+		//本年外币贷方金额(USD)
+		BigDecimal amountYearCrUsd = finGenleg.getAmountYearCrUsd();
+		//本期外币余额
+		BigDecimal amountUsdBlc;
+
+		//本期本币借方金额(CNY)
+		amountDr = amountDr.add(item.getAmountDr());
+		//本年本币借方金额(CNY)
+		amountYearDr = amountYearDr.add(item.getAmountDr());
+		//本期本币贷方金额(CNY)
+		amountCr = amountCr.add(item.getAmountCr());
+		//本年本币贷方金额(CNY)
+		amountYearCr = amountYearCr.add(item.getAmountCr());
+
+		//本期本币借方金额(CNY)
+		amountDrUsd = amountDrUsd.add(item.getAmountDrUsd());
+		//本年本币借方金额(CNY)
+		amountYearDrUsd = amountYearDrUsd.add(item.getAmountDrUsd());
+		//本期本币贷方金额(CNY)
+		amountCrUsd = amountCrUsd.add(item.getAmountCrUsd());
+		//本年本币贷方金额(CNY)
+		amountYearCrUsd = amountYearCrUsd.add(item.getAmountCrUsd());
+		if ("D".equals(finGenleg.getDc())) {
+			amountBlc = amountLastBlc.add(amountDr).subtract(amountCr);
+			amountUsdBlc = amountLastBlcUsd.add(amountDrUsd).subtract(amountCrUsd);
+		} else {
+			amountBlc = amountLastBlc.subtract(amountDr).add(amountCr);
+			amountUsdBlc = amountLastBlcUsd.subtract(amountDrUsd).add(amountCrUsd);
+		}
+		//本期本币借方金额(CNY)
+		finGenleg.setAmountDr(amountDr);
+		//本期本币贷方金额(CNY)
+		finGenleg.setAmountCr(amountCr);
+		//本年本币借方金额(CNY)
+		finGenleg.setAmountYearDr(amountYearDr);
+		//本年本币贷方金额(CNY)
+		finGenleg.setAmountYearCr(amountYearCr);
+		//本期本币余额(CNY)
+		finGenleg.setAmountBlc(amountBlc);
+		//本期外币借方金额
+		finGenleg.setAmountDrUsd(amountDrUsd);
+		//本期外币贷方金额
+		finGenleg.setAmountCrUsd(amountCrUsd);
+		//本年外币借方金额(USD)
+		finGenleg.setAmountYearDrUsd(amountYearDrUsd);
+		//本年外币贷方金额(USD)
+		finGenleg.setAmountYearCrUsd(amountYearCrUsd);
+		//本期外币余额
+		finGenleg.setAmountUsdBlc(amountUsdBlc);
+		finGenlegs.add(finGenleg);
+		FinGenlegCalc finGenlegP = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
+			.eq(FinGenlegCalc::getAccId, finGenleg.getParentId())
+			.eq(FinGenlegCalc::getAccyear, item.getAccountYear())
+			.eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
+			.eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
+			.eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getCorpId, item.getCorpId())
+			.eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
+		if (finGenlegP != null) {
+			genlegCalcAccountingForNew(accounts, item, finGenlegP, finGenlegs);
+		}
+	}
+
+	private void revokeGenlegAccountingFor(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> finGenlegList, List<FinGenleg> finGenlegs) {
 		//上期本币余额(CNY)
 		BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
 		//本期本币借方金额(CNY)
@@ -744,37 +995,6 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 		FinGenleg finGenlegP = finGenlegList.stream().filter(e -> e.getAccId().equals(finGenleg.getParentId()) &&
 			e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
 		if (finGenlegP != null) {
-			/*for (FinGenleg genleg : finGenlegList) {
-				if (finGenlegP.getId().equals(genleg.getId())) {
-					//本期本币借方金额(CNY)
-					genleg.setAmountDr(genleg.getAmountDr().subtract(item.getAmountDr()));
-					//本期本币贷方金额(CNY)
-					genleg.setAmountCr(genleg.getAmountCr().subtract(item.getAmountCr()));
-					//本年本币借方金额(CNY)
-					genleg.setAmountYearDr(genleg.getAmountYearDr().subtract(item.getAmountDr()));
-					//本年本币贷方金额(CNY)
-					genleg.setAmountYearCr(genleg.getAmountYearCr().subtract(item.getAmountCr()));
-					//本期外币借方金额
-					genleg.setAmountDrUsd(genleg.getAmountDrUsd().subtract(item.getAmountDrUsd()));
-					//本期外币贷方金额
-					genleg.setAmountCrUsd(genleg.getAmountCrUsd().subtract(item.getAmountCrUsd()));
-					//本年外币借方金额(USD)
-					genleg.setAmountYearDrUsd(genleg.getAmountYearDrUsd().subtract(item.getAmountDrUsd()));
-					//本年外币贷方金额(USD)
-					genleg.setAmountYearCrUsd(genleg.getAmountYearCrUsd().subtract(item.getAmountCrUsd()));
-					if ("D".equals(finGenleg.getDc())) {
-						//本期本币余额(CNY)
-						genleg.setAmountBlc(genleg.getAmountBlc().subtract(item.getAmountDr()).add(item.getAmountCr()));
-						//本期外币余额
-						genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().subtract(item.getAmountDrUsd()).add(item.getAmountCrUsd()));
-					} else {
-						//本期本币余额(CNY)
-						genleg.setAmountBlc(genleg.getAmountBlc().add(item.getAmountDr()).subtract(item.getAmountCr()));
-						//本期外币余额
-						genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().add(item.getAmountDrUsd()).subtract(item.getAmountCrUsd()));
-					}
-				}
-			}*/
 			revokeGenlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
 		} else {
 			for (FinGenleg genleg : finGenlegList) {
@@ -803,10 +1023,88 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 				}
 			}
 		}
-		return finGenlegList;
+	}
+	private void revokeGenlegAccountingForNew(FinVouchersItems item, FinGenleg finGenleg, List<FinGenleg> finGenlegs) {
+		//上期本币余额(CNY)
+		BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
+		//本期本币借方金额(CNY)
+		BigDecimal amountDr = finGenleg.getAmountDr();
+		//本期本币贷方金额(CNY)
+		BigDecimal amountCr = finGenleg.getAmountCr();
+		//本年本币借方金额(CNY)
+		BigDecimal amountYearDr = finGenleg.getAmountYearDr();
+		//本年本币贷方金额(CNY)
+		BigDecimal amountYearCr = finGenleg.getAmountYearCr();
+		//本期本币余额(CNY)
+		BigDecimal amountBlc;
+		//上期外币余额(USD)
+		BigDecimal amountLastBlcUsd = finGenleg.getAmountLastBlcUsd();
+		//本期外币借方金额
+		BigDecimal amountDrUsd = finGenleg.getAmountDrUsd();
+		//本期外币贷方金额
+		BigDecimal amountCrUsd = finGenleg.getAmountCrUsd();
+		//本年外币借方金额(USD)
+		BigDecimal amountYearDrUsd = finGenleg.getAmountYearDrUsd();
+		//本年外币贷方金额(USD)
+		BigDecimal amountYearCrUsd = finGenleg.getAmountYearCrUsd();
+		//本期外币余额
+		BigDecimal amountUsdBlc;
+
+		//本期本币借方金额(CNY)
+		amountDr = amountDr.subtract(item.getAmountDr());
+		//本年本币借方金额(CNY)
+		amountYearDr = amountYearDr.subtract(item.getAmountDr());
+		//本期本币贷方金额(CNY)
+		amountCr = amountCr.subtract(item.getAmountCr());
+		//本年本币贷方金额(CNY)
+		amountYearCr = amountYearCr.subtract(item.getAmountCr());
+
+		//本期本币借方金额(CNY)
+		amountDrUsd = amountDrUsd.subtract(item.getAmountDrUsd());
+		//本年本币借方金额(CNY)
+		amountYearDrUsd = amountYearDrUsd.subtract(item.getAmountDrUsd());
+		//本期本币贷方金额(CNY)
+		amountCrUsd = amountCrUsd.subtract(item.getAmountCrUsd());
+		//本年本币贷方金额(CNY)
+		amountYearCrUsd = amountYearCrUsd.subtract(item.getAmountCrUsd());
+		if ("D".equals(finGenleg.getDc())) {
+			amountBlc = amountLastBlc.subtract(amountDr).add(amountCr);
+			amountUsdBlc = amountLastBlcUsd.subtract(amountDrUsd).add(amountCrUsd);
+		} else {
+			amountBlc = amountLastBlc.add(amountDr).subtract(amountCr);
+			amountUsdBlc = amountLastBlcUsd.add(amountDrUsd).subtract(amountCrUsd);
+		}
+		//本期本币借方金额(CNY)
+		finGenleg.setAmountDr(amountDr);
+		//本期本币贷方金额(CNY)
+		finGenleg.setAmountCr(amountCr);
+		//本年本币借方金额(CNY)
+		finGenleg.setAmountYearDr(amountYearDr);
+		//本年本币贷方金额(CNY)
+		finGenleg.setAmountYearCr(amountYearCr);
+		//本期本币余额(CNY)
+		finGenleg.setAmountBlc(amountBlc);
+		//本期外币借方金额
+		finGenleg.setAmountDrUsd(amountDrUsd);
+		//本期外币贷方金额
+		finGenleg.setAmountCrUsd(amountCrUsd);
+		//本年外币借方金额(USD)
+		finGenleg.setAmountYearDrUsd(amountYearDrUsd);
+		//本年外币贷方金额(USD)
+		finGenleg.setAmountYearCrUsd(amountYearCrUsd);
+		//本期外币余额
+		finGenleg.setAmountUsdBlc(amountUsdBlc);
+		finGenlegs.add(finGenleg);
+		FinGenleg finGenlegP = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
+			.eq(FinGenleg::getAccId, finGenleg.getParentId())
+			.eq(FinGenleg::getAccyear, item.getAccountYear())
+			.eq(FinGenleg::getAccmonth, item.getAccountMonth()));
+		if (finGenlegP != null) {
+			revokeGenlegAccountingForNew(item, finGenlegP, finGenlegs);
+		}
 	}
 
-	private List<FinGenlegCalc> revokeGenlegCalcAccountingFor(FinVouchersItems item, FinGenlegCalc finGenleg, List<FinGenlegCalc> finGenlegList, List<FinGenlegCalc> finGenlegs) {
+	private void revokeGenlegCalcAccountingFor(FinVouchersItems item, FinGenlegCalc finGenleg, List<FinGenlegCalc> finGenlegList, List<FinGenlegCalc> finGenlegs) {
 		//上期本币余额(CNY)
 		BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
 		//本期本币借方金额(CNY)
@@ -881,37 +1179,6 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 		FinGenlegCalc finGenlegP = finGenlegList.stream().filter(e -> e.getAccId().equals(finGenleg.getParentId()) &&
 			e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
 		if (finGenlegP != null) {
-			/*for (FinGenlegCalc genleg : finGenlegList) {
-				if (finGenlegP.getId().equals(genleg.getId())) {
-					//本期本币借方金额(CNY)
-					genleg.setAmountDr(genleg.getAmountDr().subtract(item.getAmountDr()));
-					//本期本币贷方金额(CNY)
-					genleg.setAmountCr(genleg.getAmountCr().subtract(item.getAmountCr()));
-					//本年本币借方金额(CNY)
-					genleg.setAmountYearDr(genleg.getAmountYearDr().subtract(item.getAmountDr()));
-					//本年本币贷方金额(CNY)
-					genleg.setAmountYearCr(genleg.getAmountYearCr().subtract(item.getAmountCr()));
-					//本期外币借方金额
-					genleg.setAmountDrUsd(genleg.getAmountDrUsd().subtract(item.getAmountDrUsd()));
-					//本期外币贷方金额
-					genleg.setAmountCrUsd(genleg.getAmountCrUsd().subtract(item.getAmountCrUsd()));
-					//本年外币借方金额(USD)
-					genleg.setAmountYearDrUsd(genleg.getAmountYearDrUsd().subtract(item.getAmountDrUsd()));
-					//本年外币贷方金额(USD)
-					genleg.setAmountYearCrUsd(genleg.getAmountYearCrUsd().subtract(item.getAmountCrUsd()));
-					if ("D".equals(finGenleg.getDc())) {
-						//本期本币余额(CNY)
-						genleg.setAmountBlc(genleg.getAmountBlc().subtract(item.getAmountDr()).add(item.getAmountCr()));
-						//本期外币余额
-						genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().subtract(item.getAmountDrUsd()).add(item.getAmountCrUsd()));
-					} else {
-						//本期本币余额(CNY)
-						genleg.setAmountBlc(genleg.getAmountBlc().add(item.getAmountDr()).subtract(item.getAmountCr()));
-						//本期外币余额
-						genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().add(item.getAmountDrUsd()).subtract(item.getAmountCrUsd()));
-					}
-				}
-			}*/
 			revokeGenlegCalcAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
 		} else {
 			for (FinGenlegCalc genleg : finGenlegList) {
@@ -940,7 +1207,89 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 				}
 			}
 		}
-		return finGenlegList;
+	}
+	private void revokeGenlegCalcAccountingForNew(Accounts accounts, FinVouchersItems item, FinGenlegCalc finGenleg, List<FinGenlegCalc> finGenlegs) {
+		//上期本币余额(CNY)
+		BigDecimal amountLastBlc = finGenleg.getAmountLastBlc();
+		//本期本币借方金额(CNY)
+		BigDecimal amountDr = finGenleg.getAmountDr();
+		//本期本币贷方金额(CNY)
+		BigDecimal amountCr = finGenleg.getAmountCr();
+		//本年本币借方金额(CNY)
+		BigDecimal amountYearDr = finGenleg.getAmountYearDr();
+		//本年本币贷方金额(CNY)
+		BigDecimal amountYearCr = finGenleg.getAmountYearCr();
+		//本期本币余额(CNY)
+		BigDecimal amountBlc;
+		//上期外币余额(USD)
+		BigDecimal amountLastBlcUsd = finGenleg.getAmountLastBlcUsd();
+		//本期外币借方金额
+		BigDecimal amountDrUsd = finGenleg.getAmountDrUsd();
+		//本期外币贷方金额
+		BigDecimal amountCrUsd = finGenleg.getAmountCrUsd();
+		//本年外币借方金额(USD)
+		BigDecimal amountYearDrUsd = finGenleg.getAmountYearDrUsd();
+		//本年外币贷方金额(USD)
+		BigDecimal amountYearCrUsd = finGenleg.getAmountYearCrUsd();
+		//本期外币余额
+		BigDecimal amountUsdBlc;
+
+		//本期本币借方金额(CNY)
+		amountDr = amountDr.subtract(item.getAmountDr());
+		//本年本币借方金额(CNY)
+		amountYearDr = amountYearDr.subtract(item.getAmountDr());
+
+		//本期本币贷方金额(CNY)
+		amountCr = amountCr.subtract(item.getAmountCr());
+		//本年本币贷方金额(CNY)
+		amountYearCr = amountYearCr.subtract(item.getAmountCr());
+
+		//本期本币借方金额(CNY)
+		amountDrUsd = amountDrUsd.subtract(item.getAmountDrUsd());
+		//本年本币借方金额(CNY)
+		amountYearDrUsd = amountYearDrUsd.subtract(item.getAmountDrUsd());
+		//本期本币贷方金额(CNY)
+		amountCrUsd = amountCrUsd.subtract(item.getAmountCrUsd());
+		//本年本币贷方金额(CNY)
+		amountYearCrUsd = amountYearCrUsd.subtract(item.getAmountCrUsd());
+		if ("D".equals(finGenleg.getDc())) {
+			amountBlc = amountLastBlc.subtract(amountDr).add(amountCr);
+			amountUsdBlc = amountLastBlcUsd.subtract(amountDrUsd).add(amountCrUsd);
+		} else {
+			amountBlc = amountLastBlc.add(amountDr).subtract(amountCr);
+			amountUsdBlc = amountLastBlcUsd.add(amountDrUsd).subtract(amountCrUsd);
+		}
+		//本期本币借方金额(CNY)
+		finGenleg.setAmountDr(amountDr);
+		//本期本币贷方金额(CNY)
+		finGenleg.setAmountCr(amountCr);
+		//本年本币借方金额(CNY)
+		finGenleg.setAmountYearDr(amountYearDr);
+		//本年本币贷方金额(CNY)
+		finGenleg.setAmountYearCr(amountYearCr);
+		//本期本币余额(CNY)
+		finGenleg.setAmountBlc(amountBlc);
+		//本期外币借方金额
+		finGenleg.setAmountDrUsd(amountDrUsd);
+		//本期外币贷方金额
+		finGenleg.setAmountCrUsd(amountCrUsd);
+		//本年外币借方金额(USD)
+		finGenleg.setAmountYearDrUsd(amountYearDrUsd);
+		//本年外币贷方金额(USD)
+		finGenleg.setAmountYearCrUsd(amountYearCrUsd);
+		//本期外币余额
+		finGenleg.setAmountUsdBlc(amountUsdBlc);
+		finGenlegs.add(finGenleg);
+		FinGenlegCalc finGenlegP = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
+			.eq(FinGenlegCalc::getAccId, finGenleg.getParentId())
+			.eq(FinGenlegCalc::getAccyear, item.getAccountYear())
+			.eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
+			.eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
+			.eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getCorpId, item.getCorpId())
+			.eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
+		if (finGenlegP != null) {
+			revokeGenlegCalcAccountingForNew(accounts,item, finGenlegP, finGenlegs);
+		}
 	}
 
 	private FinGenleg genlegAccountingFinGenleg(Accounts accounts, FinVouchersItems item, FinGenleg finGenleg) {
@@ -1493,6 +1842,97 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 		}
 		List<FinGenleg> finGenlegListNew = new ArrayList<>();
 		List<FinGenlegCalc> finGenlegCalcListNew = new ArrayList<>();
+		/*for (FinVouchers detail : finVouchersList) {
+			if (ObjectUtils.isNotNull(finVouchersItemsList)) {
+				List<FinVouchersItems> finVouchersItems = finVouchersItemsList.stream().filter(e -> e.getPid().equals(detail.getId())).collect(Collectors.toList());
+				//对账明细状态修改  已对账
+				for (FinVouchersItems item : finVouchersItems) {
+					Accounts accounts = accountsList.stream().filter(e -> e.getId().equals(item.getAccountId())).findFirst().orElse(null);
+					if (accounts != null) {
+						if (1 == accounts.getIsDept() || 1 == accounts.getIsCorp() || 1 == accounts.getIsEmpl()) {
+							FinGenlegCalc finGenlegCalc = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
+								.eq(FinGenlegCalc::getAccId, item.getAccountId())
+								.eq(FinGenlegCalc::getAccyear, item.getAccountYear())
+								.eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
+								.eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
+								.eq(1 == accounts.getIsCorp(), FinGenlegCalc::getCorpId, item.getCorpId())
+								.eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
+							FinGenlegCalc finGenlegCalcNew = revokeGenlegAccountingFinGenlegCalc(accounts, item, finGenlegCalc);
+							if (ObjectUtils.isNotNull(finGenlegCalcNew)) {
+								finGenlegCalcListNew.add(finGenlegCalcNew);
+							}
+							FinGenlegCalc finGenlegP = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
+								.eq(FinGenlegCalc::getAccId, finGenlegCalcNew.getParentId())
+								.eq(FinGenlegCalc::getAccyear, item.getAccountYear())
+								.eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
+								.eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
+								.eq(1 == accounts.getIsCorp(), FinGenlegCalc::getCorpId, item.getCorpId())
+								.eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
+							if (finGenlegP != null) {
+								List<FinGenlegCalc> finGenlegs = new ArrayList<>();
+								revokeGenlegCalcAccountingForNew(accounts,item, finGenlegP, finGenlegs);
+								if (!finGenlegs.isEmpty()) {
+									finGenlegCalcListNew.addAll(finGenlegs);
+								}
+							}
+						}
+						FinGenleg finGenleg = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
+							.eq(FinGenleg::getAccId, item.getAccountId())
+							.eq(FinGenleg::getAccyear, item.getAccountYear())
+							.eq(FinGenleg::getAccmonth, item.getAccountMonth()));
+						FinGenleg finGenlegNew = revokeGenlegAccountingFinGenleg(accounts, item, finGenleg);
+						if (ObjectUtils.isNotNull(finGenlegNew)) {
+							finGenlegListNew.add(finGenlegNew);
+						}
+						FinGenleg finGenlegP = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
+							.eq(FinGenleg::getAccId, finGenlegNew.getParentId())
+							.eq(FinGenleg::getAccyear, item.getAccountYear())
+							.eq(FinGenleg::getAccmonth, item.getAccountMonth()));
+						if (finGenlegP != null) {
+							List<FinGenleg> finGenlegs = new ArrayList<>();
+							revokeGenlegAccountingForNew(item, finGenlegP, finGenlegs);
+							if (!finGenlegs.isEmpty()) {
+								finGenlegListNew.addAll(finGenlegs);
+							}
+						}
+					}
+					item.setStatus(0);
+					item.setVoucherDate(detail.getVoucherDate());
+					item.setUpdateUser(AuthUtil.getUserId());
+					item.setUpdateTime(new Date());
+					item.setUpdateUserName(AuthUtil.getUserName());
+					finVouchersItemsListNew.add(item);
+				}
+				//通过对账明细里账单id查询具体账单数据
+				List<String> billNos = finVouchersItems.stream().map(FinVouchersItems::getBillNo)
+					.filter(Objects::nonNull).collect(Collectors.toList());
+				List<FinAccBills> finAccBillsList = finAccBillsService.list(new LambdaQueryWrapper<FinAccBills>()
+					.eq(FinAccBills::getTenantId, AuthUtil.getTenantId())
+					.eq(FinAccBills::getIsDeleted, 0)
+					.in(FinAccBills::getBillNo, billNos));
+				//修改账单中对账状态
+				for (FinAccBills item : finAccBillsList) {
+					item.setVoucherBillId(0L);
+					item.setVoucherBillNo("");
+					item.setVoucherNo("");
+					item.setVoucherDate(null);
+					item.setUpdateUser(AuthUtil.getUserId());
+					item.setUpdateTime(new Date());
+					item.setUpdateUserName(AuthUtil.getUserName());
+					finAccBillsListNew.add(item);
+				}
+				//通过账单id查询具体费用中心数据
+				List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+					.in(FeeCenter::getAccBillNo, billNos)
+					.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+					.eq(FeeCenter::getIsDeleted, 0));
+				List<FeeCenter> feeCenters = reconciliationFeeCenter(detail, feeCenterList, 2);
+				feeCenterListNew.addAll(feeCenters);
+			}
+			detail.setStatus(0);
+			detail.setVoucherStatus(0);
+			finVouchersListNew.add(detail);
+		}*/
 		for (FinVouchers detail : finVouchersList) {
 			if (ObjectUtils.isNotNull(finVouchersItemsList)) {
 				List<FinVouchersItems> finVouchersItems = finVouchersItemsList.stream().filter(e -> e.getPid().equals(detail.getId())).collect(Collectors.toList());
@@ -1518,39 +1958,8 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 							FinGenlegCalc finGenlegP = finGenlegCalcList.stream().filter(e -> e.getAccId().equals(finalFinGenlegCalc.getParentId()) &&
 								e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
 							if (finGenlegP != null) {
-								/*for (FinGenlegCalc genleg : finGenlegCalcList) {
-									if (finGenlegP.getId().equals(genleg.getId())) {
-										//本期本币借方金额(CNY)
-										genleg.setAmountDr(genleg.getAmountDr().subtract(item.getAmountDr()));
-										//本期本币贷方金额(CNY)
-										genleg.setAmountCr(genleg.getAmountCr().subtract(item.getAmountCr()));
-										//本年本币借方金额(CNY)
-										genleg.setAmountYearDr(genleg.getAmountYearDr().subtract(item.getAmountDr()));
-										//本年本币贷方金额(CNY)
-										genleg.setAmountYearCr(genleg.getAmountYearCr().subtract(item.getAmountCr()));
-										//本期外币借方金额
-										genleg.setAmountDrUsd(genleg.getAmountDrUsd().subtract(item.getAmountDrUsd()));
-										//本期外币贷方金额
-										genleg.setAmountCrUsd(genleg.getAmountCrUsd().subtract(item.getAmountCrUsd()));
-										//本年外币借方金额(USD)
-										genleg.setAmountYearDrUsd(genleg.getAmountYearDrUsd().subtract(item.getAmountDrUsd()));
-										//本年外币贷方金额(USD)
-										genleg.setAmountYearCrUsd(genleg.getAmountYearCrUsd().subtract(item.getAmountCrUsd()));
-										if ("D".equals(finalFinGenlegCalc.getDc())) {
-											//本期本币余额(CNY)
-											genleg.setAmountBlc(genleg.getAmountBlc().subtract(item.getAmountDr()).add(item.getAmountCr()));
-											//本期外币余额
-											genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().subtract(item.getAmountDrUsd()).add(item.getAmountCrUsd()));
-										} else {
-											//本期本币余额(CNY)
-											genleg.setAmountBlc(genleg.getAmountBlc().add(item.getAmountDr()).subtract(item.getAmountCr()));
-											//本期外币余额
-											genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().add(item.getAmountDrUsd()).subtract(item.getAmountCrUsd()));
-										}
-									}
-								}*/
 								List<FinGenlegCalc> finGenlegs = new ArrayList<>();
-								finGenlegCalcList = revokeGenlegCalcAccountingFor(item, finGenlegP, finGenlegCalcList, finGenlegs);
+								revokeGenlegCalcAccountingFor(item, finGenlegP, finGenlegCalcList, finGenlegs);
 								if (!finGenlegs.isEmpty()) {
 									finGenlegCalcListNew.addAll(finGenlegs);
 								}
@@ -1564,39 +1973,8 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 						FinGenleg finGenlegP = finGenlegList.stream().filter(e -> e.getAccId().equals(finalFinGenleg.getParentId()) &&
 							e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
 						if (finGenlegP != null) {
-							/*for (FinGenleg genleg : finGenlegList) {
-								if (finGenlegP.getId().equals(genleg.getId())) {
-									//本期本币借方金额(CNY)
-									genleg.setAmountDr(genleg.getAmountDr().subtract(item.getAmountDr()));
-									//本期本币贷方金额(CNY)
-									genleg.setAmountCr(genleg.getAmountCr().subtract(item.getAmountCr()));
-									//本年本币借方金额(CNY)
-									genleg.setAmountYearDr(genleg.getAmountYearDr().subtract(item.getAmountDr()));
-									//本年本币贷方金额(CNY)
-									genleg.setAmountYearCr(genleg.getAmountYearCr().subtract(item.getAmountCr()));
-									//本期外币借方金额
-									genleg.setAmountDrUsd(genleg.getAmountDrUsd().subtract(item.getAmountDrUsd()));
-									//本期外币贷方金额
-									genleg.setAmountCrUsd(genleg.getAmountCrUsd().subtract(item.getAmountCrUsd()));
-									//本年外币借方金额(USD)
-									genleg.setAmountYearDrUsd(genleg.getAmountYearDrUsd().subtract(item.getAmountDrUsd()));
-									//本年外币贷方金额(USD)
-									genleg.setAmountYearCrUsd(genleg.getAmountYearCrUsd().subtract(item.getAmountCrUsd()));
-									if ("D".equals(finGenleg.getDc())) {
-										//本期本币余额(CNY)
-										genleg.setAmountBlc(genleg.getAmountBlc().subtract(item.getAmountDr()).add(item.getAmountCr()));
-										//本期外币余额
-										genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().subtract(item.getAmountDrUsd()).add(item.getAmountCrUsd()));
-									} else {
-										//本期本币余额(CNY)
-										genleg.setAmountBlc(genleg.getAmountBlc().add(item.getAmountDr()).subtract(item.getAmountCr()));
-										//本期外币余额
-										genleg.setAmountUsdBlc(genleg.getAmountUsdBlc().add(item.getAmountDrUsd()).subtract(item.getAmountCrUsd()));
-									}
-								}
-							}*/
 							List<FinGenleg> finGenlegs = new ArrayList<>();
-							finGenlegList = revokeGenlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
+							revokeGenlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
 							if (!finGenlegs.isEmpty()) {
 								finGenlegListNew.addAll(finGenlegs);
 							}
@@ -1711,16 +2089,16 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 		this.saveOrUpdate(finVouchers);
 		if (ObjectUtils.isNotNull(finVouchers.getFinVouchersItemsList())) {
 			FinPeriod detail = finPeriodMapper.selectOne(new LambdaQueryWrapper<FinPeriod>()
-				.eq(FinPeriod::getTenantId,AuthUtil.getTenantId())
-				.eq(FinPeriod::getIsDeleted,0)
-				.eq(FinPeriod::getPeriodYear,finVouchers.getAccountYear())
-				.eq(FinPeriod::getPeriodMonth,finVouchers.getAccountMonth())
+				.eq(FinPeriod::getTenantId, AuthUtil.getTenantId())
+				.eq(FinPeriod::getIsDeleted, 0)
+				.eq(FinPeriod::getPeriodYear, finVouchers.getAccountYear())
+				.eq(FinPeriod::getPeriodMonth, finVouchers.getAccountMonth())
 			);
 			if (detail == null) {
-				throw new RuntimeException("未找到"+finVouchers.getAccountYear()+"年"+finVouchers.getAccountMonth()+"月期间管理信息");
+				throw new RuntimeException("未找到" + finVouchers.getAccountYear() + "年" + finVouchers.getAccountMonth() + "月期间管理信息");
 			}
-			PeriodVouchersTemplate exchange = JSONObject.parseObject(detail.getExchange(), PeriodVouchersTemplate.class);
-			detail.setPeriodVouchersTemplate(exchange);
+			/*PeriodVouchersTemplate exchange = JSONObject.parseObject(detail.getExchange(), PeriodVouchersTemplate.class);
+			detail.setPeriodVouchersTemplate(exchange);*/
 			List<Accounts> accountsList = new ArrayList<>();
 			List<FinGenleg> finGenlegList = finGenlegService.list(new LambdaQueryWrapper<>());
 			List<FinGenlegCalc> finGenlegCalcList = finGenlegCalcService.list(new LambdaQueryWrapper<>());
@@ -1734,13 +2112,75 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 			}
 			List<FinGenleg> finGenlegListNew = new ArrayList<>();
 			List<FinGenlegCalc> finGenlegCalcListNew = new ArrayList<>();
+			/*for (FinVouchersItems item : finVouchers.getFinVouchersItemsList()) {
+				item.setPid(finVouchers.getId());
+				item.setVoucherNo(finVouchers.getVoucherNo());
+//				item.setBillNo(finVouchers.getBillNo());
+				Accounts accounts = accountsList.stream().filter(e -> e.getId().equals(item.getAccountId())).findFirst().orElse(null);
+				if (accounts != null) {
+//					accounts.setPlAccNo(exchange.getPlAccNo());
+					item.setAccountFullName(accounts.getFullName());
+					if (1 == accounts.getIsDept() || 1 == accounts.getIsCorp() || 1 == accounts.getIsEmpl()) {
+						FinGenlegCalc finGenlegCalc = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
+							.eq(FinGenlegCalc::getAccId, item.getAccountId())
+							.eq(FinGenlegCalc::getAccyear, item.getAccountYear())
+							.eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
+							.eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
+							.eq(1 == accounts.getIsCorp(), FinGenlegCalc::getCorpId, item.getCorpId())
+							.eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
+						FinGenlegCalc finGenlegCalcNew = genlegAccountingFinGenlegCalc(accounts, item, finGenlegCalc);
+						if (ObjectUtils.isNotNull(finGenlegCalcNew)) {
+							finGenlegCalcListNew.add(finGenlegCalcNew);
+						}
+						FinGenlegCalc finGenlegP = finGenlegCalcService.getOne(new LambdaQueryWrapper<FinGenlegCalc>()
+							.eq(FinGenlegCalc::getAccId, finGenlegCalcNew.getParentId())
+							.eq(FinGenlegCalc::getAccyear, item.getAccountYear())
+							.eq(FinGenlegCalc::getAccmonth, item.getAccountMonth())
+							.eq(1 == accounts.getIsDept(), FinGenlegCalc::getDeptId, item.getDeptId())
+							.eq(1 == accounts.getIsCorp(), FinGenlegCalc::getCorpId, item.getCorpId())
+							.eq(1 == accounts.getIsEmpl(), FinGenlegCalc::getEmplId, item.getEmplId()));
+						if (finGenlegP != null) {
+							List<FinGenlegCalc> finGenlegs = new ArrayList<>();
+							genlegCalcAccountingForNew(accounts,item, finGenlegP, finGenlegs);
+							if (!finGenlegs.isEmpty()) {
+								finGenlegCalcListNew.addAll(finGenlegs);
+							}
+						}
+					}
+					FinGenleg finGenleg = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
+						.eq(FinGenleg::getAccId, item.getAccountId())
+						.eq(FinGenleg::getAccyear, item.getAccountYear())
+						.eq(FinGenleg::getAccmonth, item.getAccountMonth()));
+					FinGenleg finGenlegNew = genlegAccountingFinGenleg(accounts, item, finGenleg);
+					if (ObjectUtils.isNotNull(finGenlegNew)) {
+						finGenlegListNew.add(finGenlegNew);
+					}
+					FinGenleg finGenlegP = finGenlegService.getOne(new LambdaQueryWrapper<FinGenleg>()
+						.eq(FinGenleg::getAccId, finGenlegNew.getParentId())
+						.eq(FinGenleg::getAccyear, item.getAccountYear())
+						.eq(FinGenleg::getAccmonth, item.getAccountMonth()));
+					if (finGenlegP != null) {
+						List<FinGenleg> finGenlegs = new ArrayList<>();
+						genlegAccountingForNew(item, finGenlegP, finGenlegs);
+						if (!finGenlegs.isEmpty()) {
+							finGenlegListNew.addAll(finGenlegs);
+						}
+					}
+				}
+				item.setStatus(1);
+				item.setVoucherDate(finVouchers.getVoucherDate());
+				item.setUpdateUser(AuthUtil.getUserId());
+				item.setUpdateTime(new Date());
+				item.setUpdateUserName(AuthUtil.getUserName());
+				finVouchersItemsListNew.add(item);
+			}*/
 			for (FinVouchersItems item : finVouchers.getFinVouchersItemsList()) {
 				item.setPid(finVouchers.getId());
 				item.setVoucherNo(finVouchers.getVoucherNo());
-				item.setBillNo(finVouchers.getBillNo());
+//				item.setBillNo(finVouchers.getBillNo());
 				Accounts accounts = accountsList.stream().filter(e -> e.getId().equals(item.getAccountId())).findFirst().orElse(null);
 				if (accounts != null) {
-					accounts.setPlAccNo(exchange.getPlAccNo());
+//					accounts.setPlAccNo(exchange.getPlAccNo());
 					item.setAccountFullName(accounts.getFullName());
 					FinGenleg finGenleg = finGenlegList.stream().filter(e -> e.getAccId().equals(item.getAccountId()) &&
 						e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
@@ -1761,7 +2201,7 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 							e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
 						if (finGenlegP != null) {
 							List<FinGenlegCalc> finGenlegs = new ArrayList<>();
-							finGenlegCalcList = genlegCalcAccountingFor(item, finGenlegP, finGenlegCalcList, finGenlegs);
+							genlegCalcAccountingFor(item, finGenlegP, finGenlegCalcList, finGenlegs);
 							if (!finGenlegs.isEmpty()) {
 								finGenlegCalcListNew.addAll(finGenlegs);
 							}
@@ -1776,7 +2216,7 @@ public class FinVouchersServiceImpl extends ServiceImpl<FinVouchersMapper, FinVo
 						e.getAccyear().equals(item.getAccountYear()) && e.getAccmonth().equals(item.getAccountMonth())).findFirst().orElse(null);
 					if (finGenlegP != null) {
 						List<FinGenleg> finGenlegs = new ArrayList<>();
-						finGenlegList = genlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
+						genlegAccountingFor(item, finGenlegP, finGenlegList, finGenlegs);
 						if (!finGenlegs.isEmpty()) {
 							finGenlegListNew.addAll(finGenlegs);
 						}

+ 2 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java

@@ -148,11 +148,11 @@ public class ExportOrderController extends BladeController {
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPlannedDeliveryStart()), Order::getPlannedDeliveryDate, order.getPlannedDeliveryStart());//计划交货开始
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPlannedDeliveryEnd()), Order::getPlannedDeliveryDate, order.getPlannedDeliveryEnd());//计划交货结束
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderRemark()), Order::getOrderRemark, order.getOrderRemark());//备注
-		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderStatus()), Order::getOrderStatus, order.getOrderStatus());
 		if ("1".equals(order.getTabType())) {
 			lambdaQueryWrapper.eq(Order::getOrderStatus, "已完成");
 		} else if ("2".equals(order.getTabType())) {
-			lambdaQueryWrapper.apply("(documentary_status is null or documentary_status != '寄单'  ) and order_status != '已取消' and order_status != '录入'");
+//			lambdaQueryWrapper.apply("(documentary_status is null or documentary_status != '寄单'  ) and order_status != '已取消' and order_status != '录入'");
+			lambdaQueryWrapper.apply("order_status != '已取消' and order_status != '录入'");
 		} else if ("3".equals(order.getTabType())) {
 			lambdaQueryWrapper.eq(Order::getOrderStatus, "已取消");
 		}else if ("4".equals(order.getTabType())) {

+ 4 - 9
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -276,7 +276,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						} else {
 							substring = substring + corpMessage.getData().getCode();
 						}
-						Date date1 = new Date();
+						/*Date date1 = new Date();
 						String yyyyMM = DateFormatUtils.format(date1, "yy");
 						List<DocumentRecovery> documentRecovery = documentRecoveryService.list(new LambdaQueryWrapper<DocumentRecovery>()
 							.eq(DocumentRecovery::getTenantId, AuthUtil.getTenantId())
@@ -285,7 +285,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 							.eq(DocumentRecovery::getBillPrefix, yyyyMM)
 							.eq(DocumentRecovery::getCorpCode, corpMessage.getData().getCode())
 							.orderByDesc(DocumentRecovery::getCreateTime));
-						if (documentRecovery.size() > 0) {
+						if (!documentRecovery.isEmpty()) {
 							String billno = documentRecovery.get(0).getBillNo().substring(0, documentRecovery.get(0).getBillNo().indexOf("-") + 1);
 							Date busDate = order.getBusinesDate();
 							String dateString = DateFormatUtils.format(busDate, "yyMMdd");
@@ -295,16 +295,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 								order.setOrgOrderNo(billno + dateString);
 							}
 							documentRecoveryService.removeById(documentRecovery.get(0).getId());
-						} else {
+						} else {*/
 							R clientBillNo;
 							DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
 							String date2 = dateFormat.format(order.getBusinesDate());
 							clientBillNo = serialClient.getBillNoByDate(substring, order.getTradeType(), order.getBillType(), date2);
-							/*if (order.getBillType().equals(OrderTypeEnum.ENQUIRY.getType())) {
-
-							} else {
-								clientBillNo = serialClient.getBillNo(substring, order.getTradeType(), order.getBillType());
-							}*/
 							if (!clientBillNo.isSuccess()) {
 								TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 								return R.fail(500, "生成订单编号失败");
@@ -314,7 +309,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 							if (!order.getBillType().equals(OrderTypeEnum.IMPORT.getType())) {
 								order.setOrgOrderNo((String) clientBillNo.getData());
 							}
-						}
+//						}
 					}
 					if ("CG".equals(order.getBillType()) && ObjectUtils.isNotNull(order.getSrcIds())) {
 						String[] arrs = order.getSrcIds().split(",");