|
|
@@ -22,7 +22,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import io.seata.spring.annotation.GlobalTransactional;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springblade.core.excel.util.ExcelUtil;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
@@ -125,6 +124,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
.ge(FinPeriod::getPeriodYear, periodYear)
|
|
|
.ge(FinPeriod::getPeriodMonth, periodMonth)
|
|
|
);
|
|
|
+ String status = sysClient.getParamService("whether.open");
|
|
|
if (!finPeriodList.isEmpty()) {
|
|
|
FinPeriod detail = baseMapper.selectOne(new LambdaQueryWrapper<FinPeriod>()
|
|
|
.eq(FinPeriod::getTenantId, AuthUtil.getTenantId())
|
|
|
@@ -145,79 +145,81 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
detail.setUpdateTime(new Date());
|
|
|
baseMapper.updateById(detail);
|
|
|
}
|
|
|
- List<FinVouchers> finVouchersList = finVouchersService.list(new LambdaQueryWrapper<FinVouchers>()
|
|
|
- .eq(FinVouchers::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FinVouchers::getIsDeleted, 0)
|
|
|
- .eq(FinVouchers::getBranchId, deptUtils.getDeptPid())
|
|
|
- .ge(FinVouchers::getAccountYear, periodYear)
|
|
|
- .ge(FinVouchers::getAccountMonth, periodMonth));
|
|
|
- if (!finVouchersList.isEmpty()) {
|
|
|
- for (FinVouchers item : finVouchersList) {
|
|
|
- item.setVoucherStatus(0);
|
|
|
- item.setUpdateUser(AuthUtil.getUserId());
|
|
|
- item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
- item.setUpdateTime(new Date());
|
|
|
- }
|
|
|
- finVouchersService.updateBatchById(finVouchersList);
|
|
|
- }
|
|
|
- List<FinGenlegCalc> finGenlegCalcList = finGenlegCalcService.list(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
- .eq(FinGenlegCalc::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FinGenlegCalc::getBranchId, deptUtils.getDeptPid())
|
|
|
- .ge(FinGenlegCalc::getAccyear, periodYear)
|
|
|
- .ge(FinGenlegCalc::getAccmonth, periodMonth)
|
|
|
- );
|
|
|
- if (!finGenlegCalcList.isEmpty()) {
|
|
|
- List<FinGenlegCalc> finGenlegCalcs = finGenlegCalcList.stream().filter(e -> e.getAccyear().equals(periodYear) &&
|
|
|
- e.getAccmonth().equals(periodMonth)).collect(Collectors.toList());
|
|
|
- if (!finGenlegCalcs.isEmpty()) {
|
|
|
- List<Long> idArr = finGenlegCalcs.stream().map(FinGenlegCalc::getId).distinct().collect(Collectors.toList());
|
|
|
- List<Long> ids = finGenlegCalcList.stream().map(FinGenlegCalc::getId).filter(id -> !idArr.contains(id)).distinct().collect(Collectors.toList());
|
|
|
- if (!ids.isEmpty()) {
|
|
|
- finGenlegCalcService.removeByIds(ids);
|
|
|
- }
|
|
|
- for (FinGenlegCalc finGenlegCalc : finGenlegCalcs) {
|
|
|
- finGenlegCalc.setAmountYearDr(finGenlegCalc.getAmountYearDr().subtract(finGenlegCalc.getAmountDr()));
|
|
|
- finGenlegCalc.setAmountYearCr(finGenlegCalc.getAmountYearCr().subtract(finGenlegCalc.getAmountCr()));
|
|
|
- finGenlegCalc.setAmountDr(new BigDecimal("0.00"));
|
|
|
- finGenlegCalc.setAmountCr(new BigDecimal("0.00"));
|
|
|
- finGenlegCalc.setAmountBlc(finGenlegCalc.getAmountLastBlc());
|
|
|
- finGenlegCalc.setAmountYearDrUsd(finGenlegCalc.getAmountYearDrUsd().subtract(finGenlegCalc.getAmountDrUsd()));
|
|
|
- finGenlegCalc.setAmountYearCrUsd(finGenlegCalc.getAmountYearCrUsd().subtract(finGenlegCalc.getAmountCrUsd()));
|
|
|
- finGenlegCalc.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
- finGenlegCalc.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
- finGenlegCalc.setAmountUsdBlc(finGenlegCalc.getAmountLastBlcUsd());
|
|
|
+ if (ObjectUtils.isNull(status) || !"0".equals(status)) {
|
|
|
+ List<FinVouchers> finVouchersList = finVouchersService.list(new LambdaQueryWrapper<FinVouchers>()
|
|
|
+ .eq(FinVouchers::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinVouchers::getIsDeleted, 0)
|
|
|
+ .eq(FinVouchers::getBranchId, deptUtils.getDeptPid())
|
|
|
+ .ge(FinVouchers::getAccountYear, periodYear)
|
|
|
+ .ge(FinVouchers::getAccountMonth, periodMonth));
|
|
|
+ if (!finVouchersList.isEmpty()) {
|
|
|
+ for (FinVouchers item : finVouchersList) {
|
|
|
+ item.setVoucherStatus(0);
|
|
|
+ item.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
}
|
|
|
- finGenlegCalcService.updateBatchById(finGenlegCalcs);
|
|
|
+ finVouchersService.updateBatchById(finVouchersList);
|
|
|
}
|
|
|
- }
|
|
|
- List<FinGenleg> finGenlegList = finGenlegService.list(new LambdaQueryWrapper<FinGenleg>()
|
|
|
- .eq(FinGenleg::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FinGenleg::getBranchId, deptUtils.getDeptPid())
|
|
|
- .ge(FinGenleg::getAccyear, periodYear)
|
|
|
- .ge(FinGenleg::getAccmonth, periodMonth)
|
|
|
- );
|
|
|
- if (!finGenlegList.isEmpty()) {
|
|
|
- List<FinGenleg> finGenlegs = finGenlegList.stream().filter(e -> e.getAccyear().equals(periodYear) &&
|
|
|
- e.getAccmonth().equals(periodMonth)).collect(Collectors.toList());
|
|
|
- if (!finGenlegs.isEmpty()) {
|
|
|
- List<Long> idArr = finGenlegs.stream().map(FinGenleg::getId).distinct().collect(Collectors.toList());
|
|
|
- List<Long> ids = finGenlegList.stream().map(FinGenleg::getId).filter(id -> !idArr.contains(id)).distinct().collect(Collectors.toList());
|
|
|
- if (!ids.isEmpty()) {
|
|
|
- finGenlegService.removeByIds(ids);
|
|
|
+ List<FinGenlegCalc> finGenlegCalcList = finGenlegCalcService.list(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
+ .eq(FinGenlegCalc::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinGenlegCalc::getBranchId, deptUtils.getDeptPid())
|
|
|
+ .ge(FinGenlegCalc::getAccyear, periodYear)
|
|
|
+ .ge(FinGenlegCalc::getAccmonth, periodMonth)
|
|
|
+ );
|
|
|
+ if (!finGenlegCalcList.isEmpty()) {
|
|
|
+ List<FinGenlegCalc> finGenlegCalcs = finGenlegCalcList.stream().filter(e -> e.getAccyear().equals(periodYear) &&
|
|
|
+ e.getAccmonth().equals(periodMonth)).collect(Collectors.toList());
|
|
|
+ if (!finGenlegCalcs.isEmpty()) {
|
|
|
+ List<Long> idArr = finGenlegCalcs.stream().map(FinGenlegCalc::getId).distinct().collect(Collectors.toList());
|
|
|
+ List<Long> ids = finGenlegCalcList.stream().map(FinGenlegCalc::getId).filter(id -> !idArr.contains(id)).distinct().collect(Collectors.toList());
|
|
|
+ if (!ids.isEmpty()) {
|
|
|
+ finGenlegCalcService.removeByIds(ids);
|
|
|
+ }
|
|
|
+ for (FinGenlegCalc finGenlegCalc : finGenlegCalcs) {
|
|
|
+ finGenlegCalc.setAmountYearDr(finGenlegCalc.getAmountYearDr().subtract(finGenlegCalc.getAmountDr()));
|
|
|
+ finGenlegCalc.setAmountYearCr(finGenlegCalc.getAmountYearCr().subtract(finGenlegCalc.getAmountCr()));
|
|
|
+ finGenlegCalc.setAmountDr(new BigDecimal("0.00"));
|
|
|
+ finGenlegCalc.setAmountCr(new BigDecimal("0.00"));
|
|
|
+ finGenlegCalc.setAmountBlc(finGenlegCalc.getAmountLastBlc());
|
|
|
+ finGenlegCalc.setAmountYearDrUsd(finGenlegCalc.getAmountYearDrUsd().subtract(finGenlegCalc.getAmountDrUsd()));
|
|
|
+ finGenlegCalc.setAmountYearCrUsd(finGenlegCalc.getAmountYearCrUsd().subtract(finGenlegCalc.getAmountCrUsd()));
|
|
|
+ finGenlegCalc.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ finGenlegCalc.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finGenlegCalc.setAmountUsdBlc(finGenlegCalc.getAmountLastBlcUsd());
|
|
|
+ }
|
|
|
+ finGenlegCalcService.updateBatchById(finGenlegCalcs);
|
|
|
}
|
|
|
- for (FinGenleg finGenleg : finGenlegs) {
|
|
|
- finGenleg.setAmountYearDr(finGenleg.getAmountYearDr().subtract(finGenleg.getAmountDr()));
|
|
|
- finGenleg.setAmountYearCr(finGenleg.getAmountYearCr().subtract(finGenleg.getAmountCr()));
|
|
|
- finGenleg.setAmountDr(new BigDecimal("0.00"));
|
|
|
- finGenleg.setAmountCr(new BigDecimal("0.00"));
|
|
|
- finGenleg.setAmountBlc(finGenleg.getAmountLastBlc());
|
|
|
- finGenleg.setAmountYearDrUsd(finGenleg.getAmountYearDrUsd().subtract(finGenleg.getAmountDrUsd()));
|
|
|
- finGenleg.setAmountYearCrUsd(finGenleg.getAmountYearCrUsd().subtract(finGenleg.getAmountCrUsd()));
|
|
|
- finGenleg.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
- finGenleg.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
- finGenleg.setAmountUsdBlc(finGenleg.getAmountLastBlcUsd());
|
|
|
+ }
|
|
|
+ List<FinGenleg> finGenlegList = finGenlegService.list(new LambdaQueryWrapper<FinGenleg>()
|
|
|
+ .eq(FinGenleg::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinGenleg::getBranchId, deptUtils.getDeptPid())
|
|
|
+ .ge(FinGenleg::getAccyear, periodYear)
|
|
|
+ .ge(FinGenleg::getAccmonth, periodMonth)
|
|
|
+ );
|
|
|
+ if (!finGenlegList.isEmpty()) {
|
|
|
+ List<FinGenleg> finGenlegs = finGenlegList.stream().filter(e -> e.getAccyear().equals(periodYear) &&
|
|
|
+ e.getAccmonth().equals(periodMonth)).collect(Collectors.toList());
|
|
|
+ if (!finGenlegs.isEmpty()) {
|
|
|
+ List<Long> idArr = finGenlegs.stream().map(FinGenleg::getId).distinct().collect(Collectors.toList());
|
|
|
+ List<Long> ids = finGenlegList.stream().map(FinGenleg::getId).filter(id -> !idArr.contains(id)).distinct().collect(Collectors.toList());
|
|
|
+ if (!ids.isEmpty()) {
|
|
|
+ finGenlegService.removeByIds(ids);
|
|
|
+ }
|
|
|
+ for (FinGenleg finGenleg : finGenlegs) {
|
|
|
+ finGenleg.setAmountYearDr(finGenleg.getAmountYearDr().subtract(finGenleg.getAmountDr()));
|
|
|
+ finGenleg.setAmountYearCr(finGenleg.getAmountYearCr().subtract(finGenleg.getAmountCr()));
|
|
|
+ finGenleg.setAmountDr(new BigDecimal("0.00"));
|
|
|
+ finGenleg.setAmountCr(new BigDecimal("0.00"));
|
|
|
+ finGenleg.setAmountBlc(finGenleg.getAmountLastBlc());
|
|
|
+ finGenleg.setAmountYearDrUsd(finGenleg.getAmountYearDrUsd().subtract(finGenleg.getAmountDrUsd()));
|
|
|
+ finGenleg.setAmountYearCrUsd(finGenleg.getAmountYearCrUsd().subtract(finGenleg.getAmountCrUsd()));
|
|
|
+ finGenleg.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ finGenleg.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finGenleg.setAmountUsdBlc(finGenleg.getAmountLastBlcUsd());
|
|
|
+ }
|
|
|
+ finGenlegService.updateBatchById(finGenlegs);
|
|
|
}
|
|
|
- finGenlegService.updateBatchById(finGenlegs);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -444,21 +446,24 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- List<FinVouchers> finVouchersList = finVouchersService.list(new LambdaQueryWrapper<FinVouchers>()
|
|
|
- .eq(FinVouchers::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FinVouchers::getIsDeleted, 0)
|
|
|
- .eq(FinVouchers::getBranchId, detail.getBranchId())
|
|
|
- .gt(FinVouchers::getVoucherDate, beginDate)
|
|
|
- .lt(FinVouchers::getVoucherDate, endDate));
|
|
|
- for (FinVouchers item : finVouchersList) {
|
|
|
- if (3 != item.getStatus()) {
|
|
|
- UnbookkeptExcel unbookkeptExcel = new UnbookkeptExcel();
|
|
|
- unbookkeptExcel.setYear(item.getAccountYear() + "");
|
|
|
- unbookkeptExcel.setMonth(item.getAccountMonth() + "");
|
|
|
- unbookkeptExcel.setVoucherNumber(item.getVoucherNo());
|
|
|
- unbookkeptExcel.setVoucherDate(item.getVoucherDate());
|
|
|
- unbookkeptExcel.setOperator(item.getCreateUserName());
|
|
|
- unbookkeptExcelList.add(unbookkeptExcel);
|
|
|
+ String status = sysClient.getParamService("whether.open");
|
|
|
+ if (ObjectUtils.isNull(status) || !"0".equals(status)) {
|
|
|
+ List<FinVouchers> finVouchersList = finVouchersService.list(new LambdaQueryWrapper<FinVouchers>()
|
|
|
+ .eq(FinVouchers::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinVouchers::getIsDeleted, 0)
|
|
|
+ .eq(FinVouchers::getBranchId, detail.getBranchId())
|
|
|
+ .gt(FinVouchers::getVoucherDate, beginDate)
|
|
|
+ .lt(FinVouchers::getVoucherDate, endDate));
|
|
|
+ for (FinVouchers item : finVouchersList) {
|
|
|
+ if (3 != item.getStatus()) {
|
|
|
+ UnbookkeptExcel unbookkeptExcel = new UnbookkeptExcel();
|
|
|
+ unbookkeptExcel.setYear(item.getAccountYear() + "");
|
|
|
+ unbookkeptExcel.setMonth(item.getAccountMonth() + "");
|
|
|
+ unbookkeptExcel.setVoucherNumber(item.getVoucherNo());
|
|
|
+ unbookkeptExcel.setVoucherDate(item.getVoucherDate());
|
|
|
+ unbookkeptExcel.setOperator(item.getCreateUserName());
|
|
|
+ unbookkeptExcelList.add(unbookkeptExcel);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if (!reviewFailedExcelList.isEmpty()) {
|
|
|
@@ -483,11 +488,14 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
.eq(FinPeriod::getIsClosed, 0)
|
|
|
);
|
|
|
List<PeriodVouchersTemplate> list = new ArrayList<>();
|
|
|
- if (detail != null) {
|
|
|
+ String status = sysClient.getParamService("whether.open");
|
|
|
+ if (ObjectUtils.isNull(status) || !"0".equals(status)) {
|
|
|
+ if (detail != null) {
|
|
|
/*PeriodVouchersTemplate exchange = JSONObject.parseObject(detail.getExchange(), PeriodVouchersTemplate.class);
|
|
|
list.add(exchange);*/
|
|
|
- PeriodVouchersTemplate period = JSONObject.parseObject(detail.getPeriod(), PeriodVouchersTemplate.class);
|
|
|
- list.add(period);
|
|
|
+ PeriodVouchersTemplate period = JSONObject.parseObject(detail.getPeriod(), PeriodVouchersTemplate.class);
|
|
|
+ list.add(period);
|
|
|
+ }
|
|
|
}
|
|
|
return R.data(list);
|
|
|
}
|
|
|
@@ -505,6 +513,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
if (1 == detail.getIsClosed()) {
|
|
|
throw new RuntimeException("该期间已结转,请勿重复结转!");
|
|
|
}
|
|
|
+ String status = sysClient.getParamService("whether.open");
|
|
|
PeriodVouchersTemplate period = JSONObject.parseObject(detail.getPeriod(), PeriodVouchersTemplate.class);
|
|
|
if (period != null) {
|
|
|
period.setStatus(1);
|
|
|
@@ -524,19 +533,20 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
}
|
|
|
}*/
|
|
|
baseMapper.updateById(detail);
|
|
|
-
|
|
|
- List<FinVouchers> finVouchersList = finVouchersService.list(new LambdaQueryWrapper<FinVouchers>()
|
|
|
- .eq(FinVouchers::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FinVouchers::getIsDeleted, 0)
|
|
|
- .eq(FinVouchers::getBranchId, detail.getBranchId())
|
|
|
- .and(e -> e.eq(FinVouchers::getVoucherSource, "FM-PERIOD-PL-TRANSFER")
|
|
|
- .or().eq(FinVouchers::getVoucherSource, "FM-CURRENCY-PL-TRANSFER"))
|
|
|
- .eq(FinVouchers::getAccountYear, detail.getPeriodYear())
|
|
|
- .eq(FinVouchers::getAccountMonth, detail.getPeriodMonth())
|
|
|
- .gt(FinVouchers::getVoucherDate, detail.getBeginDate())
|
|
|
- .lt(FinVouchers::getVoucherDate, detail.getEndDate()));
|
|
|
- if (finVouchersList.size() != 2) {
|
|
|
- throw new RuntimeException("请先生成本期汇兑损益,期间损益凭证在进行结转");
|
|
|
+ if (ObjectUtils.isNull(status) || !"0".equals(status)) {
|
|
|
+ List<FinVouchers> finVouchersList = finVouchersService.list(new LambdaQueryWrapper<FinVouchers>()
|
|
|
+ .eq(FinVouchers::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinVouchers::getIsDeleted, 0)
|
|
|
+ .eq(FinVouchers::getBranchId, detail.getBranchId())
|
|
|
+ .and(e -> e.eq(FinVouchers::getVoucherSource, "FM-PERIOD-PL-TRANSFER")
|
|
|
+ .or().eq(FinVouchers::getVoucherSource, "FM-CURRENCY-PL-TRANSFER"))
|
|
|
+ .eq(FinVouchers::getAccountYear, detail.getPeriodYear())
|
|
|
+ .eq(FinVouchers::getAccountMonth, detail.getPeriodMonth())
|
|
|
+ .gt(FinVouchers::getVoucherDate, detail.getBeginDate())
|
|
|
+ .lt(FinVouchers::getVoucherDate, detail.getEndDate()));
|
|
|
+ if (finVouchersList.size() != 2) {
|
|
|
+ throw new RuntimeException("请先生成本期汇兑损益,期间损益凭证在进行结转");
|
|
|
+ }
|
|
|
}
|
|
|
FinPeriod finPeriodNew = new FinPeriod();
|
|
|
if (ObjectUtils.isNotNull(finPeriod.getBeginDate())) {
|
|
|
@@ -567,84 +577,85 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
finPeriodNew.setExchange(detail.getExchange());
|
|
|
finPeriodNew.setPeriod(detail.getPeriod());
|
|
|
this.submit(finPeriodNew);
|
|
|
+ if (ObjectUtils.isNull(status) || !"0".equals(status)) {
|
|
|
+ List<FinGenlegCalc> finGenlegCalcList = finGenlegCalcService.list(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
+ .eq(FinGenlegCalc::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinGenlegCalc::getAccyear, detail.getPeriodYear())
|
|
|
+ .eq(FinGenlegCalc::getAccmonth, detail.getPeriodMonth()));
|
|
|
+ List<FinGenlegCalc> finGenlegCalcNewList = new ArrayList<>();
|
|
|
+ for (FinGenlegCalc item : finGenlegCalcList) {
|
|
|
+ FinGenlegCalc finGenlegCalc = new FinGenlegCalc();
|
|
|
+ BeanUtil.copyProperties(item, finGenlegCalc);
|
|
|
+ finGenlegCalc.setId(null);
|
|
|
+ finGenlegCalc.setAccmonth(finPeriodNew.getPeriodMonth());
|
|
|
+ finGenlegCalc.setAccyear(finPeriodNew.getPeriodYear());
|
|
|
+ //本期上期余额等于上期余额
|
|
|
+ finGenlegCalc.setAmountLastBlc(item.getAmountBlc());
|
|
|
+ finGenlegCalc.setAmountLastBlcUsd(item.getAmountUsdBlc());
|
|
|
+ //本期借,贷金额清零
|
|
|
+ finGenlegCalc.setAmountDr(new BigDecimal("0.00"));
|
|
|
+ finGenlegCalc.setAmountYearDr(new BigDecimal("0.00"));
|
|
|
+ finGenlegCalc.setAmountCr(new BigDecimal("0.00"));
|
|
|
+ finGenlegCalc.setAmountYearCr(new BigDecimal("0.00"));
|
|
|
+ finGenlegCalc.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ finGenlegCalc.setAmountYearDrUsd(new BigDecimal("0.00"));
|
|
|
+ finGenlegCalc.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finGenlegCalc.setAmountYearCrUsd(new BigDecimal("0.00"));
|
|
|
+ //本期余额 = 上期余额+借-贷
|
|
|
+ finGenlegCalc.setAmountBlc(item.getAmountBlc());
|
|
|
+ finGenlegCalc.setAmountUsdBlc(item.getAmountUsdBlc());
|
|
|
|
|
|
- List<FinGenlegCalc> finGenlegCalcList = finGenlegCalcService.list(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
- .eq(FinGenlegCalc::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FinGenlegCalc::getAccyear, detail.getPeriodYear())
|
|
|
- .eq(FinGenlegCalc::getAccmonth, detail.getPeriodMonth()));
|
|
|
- List<FinGenlegCalc> finGenlegCalcNewList = new ArrayList<>();
|
|
|
- for (FinGenlegCalc item : finGenlegCalcList) {
|
|
|
- FinGenlegCalc finGenlegCalc = new FinGenlegCalc();
|
|
|
- BeanUtil.copyProperties(item, finGenlegCalc);
|
|
|
- finGenlegCalc.setId(null);
|
|
|
- finGenlegCalc.setAccmonth(finPeriodNew.getPeriodMonth());
|
|
|
- finGenlegCalc.setAccyear(finPeriodNew.getPeriodYear());
|
|
|
- //本期上期余额等于上期余额
|
|
|
- finGenlegCalc.setAmountLastBlc(item.getAmountBlc());
|
|
|
- finGenlegCalc.setAmountLastBlcUsd(item.getAmountUsdBlc());
|
|
|
- //本期借,贷金额清零
|
|
|
- finGenlegCalc.setAmountDr(new BigDecimal("0.00"));
|
|
|
- finGenlegCalc.setAmountYearDr(new BigDecimal("0.00"));
|
|
|
- finGenlegCalc.setAmountCr(new BigDecimal("0.00"));
|
|
|
- finGenlegCalc.setAmountYearCr(new BigDecimal("0.00"));
|
|
|
- finGenlegCalc.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
- finGenlegCalc.setAmountYearDrUsd(new BigDecimal("0.00"));
|
|
|
- finGenlegCalc.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
- finGenlegCalc.setAmountYearCrUsd(new BigDecimal("0.00"));
|
|
|
- //本期余额 = 上期余额+借-贷
|
|
|
- finGenlegCalc.setAmountBlc(item.getAmountBlc());
|
|
|
- finGenlegCalc.setAmountUsdBlc(item.getAmountUsdBlc());
|
|
|
-
|
|
|
- //本期上期数量等于上期余额数量
|
|
|
- finGenlegCalc.setQuantityLastBlc(item.getQuantityBlc());
|
|
|
- //本期借,贷数量清零
|
|
|
- finGenlegCalc.setQuantityDr(new BigDecimal("0.00"));
|
|
|
- finGenlegCalc.setQuantityCr(new BigDecimal("0.00"));
|
|
|
- //本期余额数量 = 上期余额数量+借-贷
|
|
|
- finGenlegCalc.setQuantityBlc(item.getQuantityBlc());
|
|
|
- finGenlegCalcNewList.add(finGenlegCalc);
|
|
|
- }
|
|
|
- if (!finGenlegCalcNewList.isEmpty()) {
|
|
|
- finGenlegCalcService.saveOrUpdateBatch(finGenlegCalcNewList);
|
|
|
- }
|
|
|
- List<FinGenleg> finGenlegList = finGenlegService.list(new LambdaQueryWrapper<FinGenleg>()
|
|
|
- .eq(FinGenleg::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FinGenleg::getAccyear, detail.getPeriodYear())
|
|
|
- .eq(FinGenleg::getAccmonth, detail.getPeriodMonth()));
|
|
|
- List<FinGenleg> finGenlegNewList = new ArrayList<>();
|
|
|
- for (FinGenleg item : finGenlegList) {
|
|
|
- FinGenleg finGenleg = new FinGenleg();
|
|
|
- BeanUtil.copyProperties(item, finGenleg);
|
|
|
- finGenleg.setId(null);
|
|
|
- finGenleg.setAccmonth(finPeriodNew.getPeriodMonth());
|
|
|
- finGenleg.setAccyear(finPeriodNew.getPeriodYear());
|
|
|
- //本期上期余额等于上期余额
|
|
|
- finGenleg.setAmountLastBlc(item.getAmountBlc());
|
|
|
- finGenleg.setAmountLastBlcUsd(item.getAmountUsdBlc());
|
|
|
- //本期借,贷金额清零
|
|
|
- finGenleg.setAmountDr(new BigDecimal("0.00"));
|
|
|
- finGenleg.setAmountYearDr(new BigDecimal("0.00"));
|
|
|
- finGenleg.setAmountCr(new BigDecimal("0.00"));
|
|
|
- finGenleg.setAmountYearCr(new BigDecimal("0.00"));
|
|
|
- finGenleg.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
- finGenleg.setAmountYearDrUsd(new BigDecimal("0.00"));
|
|
|
- finGenleg.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
- finGenleg.setAmountYearCrUsd(new BigDecimal("0.00"));
|
|
|
- //本期余额 = 上期余额+借-贷
|
|
|
- finGenleg.setAmountBlc(item.getAmountBlc());
|
|
|
- finGenleg.setAmountUsdBlc(item.getAmountUsdBlc());
|
|
|
+ //本期上期数量等于上期余额数量
|
|
|
+ finGenlegCalc.setQuantityLastBlc(item.getQuantityBlc());
|
|
|
+ //本期借,贷数量清零
|
|
|
+ finGenlegCalc.setQuantityDr(new BigDecimal("0.00"));
|
|
|
+ finGenlegCalc.setQuantityCr(new BigDecimal("0.00"));
|
|
|
+ //本期余额数量 = 上期余额数量+借-贷
|
|
|
+ finGenlegCalc.setQuantityBlc(item.getQuantityBlc());
|
|
|
+ finGenlegCalcNewList.add(finGenlegCalc);
|
|
|
+ }
|
|
|
+ if (!finGenlegCalcNewList.isEmpty()) {
|
|
|
+ finGenlegCalcService.saveOrUpdateBatch(finGenlegCalcNewList);
|
|
|
+ }
|
|
|
+ List<FinGenleg> finGenlegList = finGenlegService.list(new LambdaQueryWrapper<FinGenleg>()
|
|
|
+ .eq(FinGenleg::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinGenleg::getAccyear, detail.getPeriodYear())
|
|
|
+ .eq(FinGenleg::getAccmonth, detail.getPeriodMonth()));
|
|
|
+ List<FinGenleg> finGenlegNewList = new ArrayList<>();
|
|
|
+ for (FinGenleg item : finGenlegList) {
|
|
|
+ FinGenleg finGenleg = new FinGenleg();
|
|
|
+ BeanUtil.copyProperties(item, finGenleg);
|
|
|
+ finGenleg.setId(null);
|
|
|
+ finGenleg.setAccmonth(finPeriodNew.getPeriodMonth());
|
|
|
+ finGenleg.setAccyear(finPeriodNew.getPeriodYear());
|
|
|
+ //本期上期余额等于上期余额
|
|
|
+ finGenleg.setAmountLastBlc(item.getAmountBlc());
|
|
|
+ finGenleg.setAmountLastBlcUsd(item.getAmountUsdBlc());
|
|
|
+ //本期借,贷金额清零
|
|
|
+ finGenleg.setAmountDr(new BigDecimal("0.00"));
|
|
|
+ finGenleg.setAmountYearDr(new BigDecimal("0.00"));
|
|
|
+ finGenleg.setAmountCr(new BigDecimal("0.00"));
|
|
|
+ finGenleg.setAmountYearCr(new BigDecimal("0.00"));
|
|
|
+ finGenleg.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
+ finGenleg.setAmountYearDrUsd(new BigDecimal("0.00"));
|
|
|
+ finGenleg.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
+ finGenleg.setAmountYearCrUsd(new BigDecimal("0.00"));
|
|
|
+ //本期余额 = 上期余额+借-贷
|
|
|
+ finGenleg.setAmountBlc(item.getAmountBlc());
|
|
|
+ finGenleg.setAmountUsdBlc(item.getAmountUsdBlc());
|
|
|
|
|
|
- //本期上期数量等于上期余额数量
|
|
|
- finGenleg.setQuantityLastBlc(item.getQuantityBlc());
|
|
|
- //本期借,贷数量清零
|
|
|
- finGenleg.setQuantityDr(new BigDecimal("0.00"));
|
|
|
- finGenleg.setQuantityCr(new BigDecimal("0.00"));
|
|
|
- //本期余额数量 = 上期余额数量+借-贷
|
|
|
- finGenleg.setQuantityBlc(item.getQuantityBlc());
|
|
|
- finGenlegNewList.add(finGenleg);
|
|
|
- }
|
|
|
- if (!finGenlegNewList.isEmpty()) {
|
|
|
- finGenlegService.saveOrUpdateBatch(finGenlegNewList);
|
|
|
+ //本期上期数量等于上期余额数量
|
|
|
+ finGenleg.setQuantityLastBlc(item.getQuantityBlc());
|
|
|
+ //本期借,贷数量清零
|
|
|
+ finGenleg.setQuantityDr(new BigDecimal("0.00"));
|
|
|
+ finGenleg.setQuantityCr(new BigDecimal("0.00"));
|
|
|
+ //本期余额数量 = 上期余额数量+借-贷
|
|
|
+ finGenleg.setQuantityBlc(item.getQuantityBlc());
|
|
|
+ finGenlegNewList.add(finGenleg);
|
|
|
+ }
|
|
|
+ if (!finGenlegNewList.isEmpty()) {
|
|
|
+ finGenlegService.saveOrUpdateBatch(finGenlegNewList);
|
|
|
+ }
|
|
|
}
|
|
|
return R.data(detail);
|
|
|
}
|
|
|
@@ -695,21 +706,24 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
throw new RuntimeException("未查到下期数据,操作失败!");
|
|
|
}
|
|
|
}
|
|
|
- List<FinGenlegCalc> finGenlegCalcList = finGenlegCalcService.list(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
- .eq(FinGenlegCalc::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FinGenlegCalc::getAccyear, detail.getPeriodYear())
|
|
|
- .eq(FinGenlegCalc::getAccmonth, detail.getPeriodMonth()));
|
|
|
- if (!finGenlegCalcList.isEmpty()) {
|
|
|
- List<Long> ids = finGenlegCalcList.stream().map(FinGenlegCalc::getId).collect(Collectors.toList());
|
|
|
- finGenlegCalcService.removeByIds(ids);
|
|
|
- }
|
|
|
- List<FinGenleg> finGenlegList = finGenlegService.list(new LambdaQueryWrapper<FinGenleg>()
|
|
|
- .eq(FinGenleg::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FinGenleg::getAccyear, detail.getPeriodYear())
|
|
|
- .eq(FinGenleg::getAccmonth, detail.getPeriodMonth()));
|
|
|
- if (!finGenlegList.isEmpty()) {
|
|
|
- List<Long> ids = finGenlegList.stream().map(FinGenleg::getId).collect(Collectors.toList());
|
|
|
- finGenlegService.removeByIds(ids);
|
|
|
+ String status = sysClient.getParamService("whether.open");
|
|
|
+ if (ObjectUtils.isNull(status) || !"0".equals(status)) {
|
|
|
+ List<FinGenlegCalc> finGenlegCalcList = finGenlegCalcService.list(new LambdaQueryWrapper<FinGenlegCalc>()
|
|
|
+ .eq(FinGenlegCalc::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinGenlegCalc::getAccyear, detail.getPeriodYear())
|
|
|
+ .eq(FinGenlegCalc::getAccmonth, detail.getPeriodMonth()));
|
|
|
+ if (!finGenlegCalcList.isEmpty()) {
|
|
|
+ List<Long> ids = finGenlegCalcList.stream().map(FinGenlegCalc::getId).collect(Collectors.toList());
|
|
|
+ finGenlegCalcService.removeByIds(ids);
|
|
|
+ }
|
|
|
+ List<FinGenleg> finGenlegList = finGenlegService.list(new LambdaQueryWrapper<FinGenleg>()
|
|
|
+ .eq(FinGenleg::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinGenleg::getAccyear, detail.getPeriodYear())
|
|
|
+ .eq(FinGenleg::getAccmonth, detail.getPeriodMonth()));
|
|
|
+ if (!finGenlegList.isEmpty()) {
|
|
|
+ List<Long> ids = finGenlegList.stream().map(FinGenleg::getId).collect(Collectors.toList());
|
|
|
+ finGenlegService.removeByIds(ids);
|
|
|
+ }
|
|
|
}
|
|
|
return R.data(detail);
|
|
|
}
|
|
|
@@ -728,6 +742,7 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
deptName = String.join(",", res.getData());
|
|
|
}
|
|
|
}
|
|
|
+ String status = sysClient.getParamService("whether.open");
|
|
|
if (finPeriod.getId() == null) {
|
|
|
if (ObjectUtils.isNotNull(finPeriod.getBeginDate())) {
|
|
|
LocalDate date = finPeriod.getBeginDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
|
|
@@ -761,16 +776,17 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
finPeriod.setUpdateUserName(AuthUtil.getUserName());
|
|
|
}
|
|
|
this.saveOrUpdate(finPeriod);
|
|
|
- if (ObjectUtils.isNotNull(finPeriod.getPeriodVouchersTemplate())) {
|
|
|
- finPeriod.getPeriodVouchersTemplate().setId(finPeriod.getId() + "");
|
|
|
- finPeriod.getPeriodVouchersTemplate().setStatus(finPeriod.getIsClosed());
|
|
|
- finPeriod.getPeriodVouchersTemplate().setDate(finPeriod.getPeriodYear() + "-" + finPeriod.getPeriodMonth());
|
|
|
+ if (ObjectUtils.isNull(status) || !"0".equals(status)) {
|
|
|
+ if (ObjectUtils.isNotNull(finPeriod.getPeriodVouchersTemplate())) {
|
|
|
+ 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())) {
|
|
|
finPeriod.setExchange(JSON.toJSONString(finPeriod.getPeriodVouchersTemplate()));
|
|
|
} else {*/
|
|
|
- finPeriod.setPeriod(JSON.toJSONString(finPeriod.getPeriodVouchersTemplate()));
|
|
|
+ finPeriod.setPeriod(JSON.toJSONString(finPeriod.getPeriodVouchersTemplate()));
|
|
|
// }
|
|
|
- }
|
|
|
+ }
|
|
|
/*PeriodVouchersTemplate exchange = JSONObject.parseObject(finPeriod.getExchange(), PeriodVouchersTemplate.class);
|
|
|
if (exchange != null) {
|
|
|
exchange.setId(finPeriod.getId() + "");
|
|
|
@@ -778,14 +794,15 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
exchange.setStatus(finPeriod.getIsClosed());
|
|
|
finPeriod.setExchange(JSON.toJSONString(exchange));
|
|
|
}*/
|
|
|
- PeriodVouchersTemplate period = JSONObject.parseObject(finPeriod.getPeriod(), PeriodVouchersTemplate.class);
|
|
|
- if (period != null) {
|
|
|
- period.setId(finPeriod.getId() + "");
|
|
|
- period.setDate(finPeriod.getPeriodYear() + "-" + finPeriod.getPeriodMonth());
|
|
|
- period.setStatus(finPeriod.getIsClosed());
|
|
|
- finPeriod.setPeriod(JSON.toJSONString(period));
|
|
|
+ PeriodVouchersTemplate period = JSONObject.parseObject(finPeriod.getPeriod(), PeriodVouchersTemplate.class);
|
|
|
+ if (period != null) {
|
|
|
+ period.setId(finPeriod.getId() + "");
|
|
|
+ period.setDate(finPeriod.getPeriodYear() + "-" + finPeriod.getPeriodMonth());
|
|
|
+ period.setStatus(finPeriod.getIsClosed());
|
|
|
+ finPeriod.setPeriod(JSON.toJSONString(period));
|
|
|
+ }
|
|
|
+ this.updateById(finPeriod);
|
|
|
}
|
|
|
- this.updateById(finPeriod);
|
|
|
return R.data(finPeriod);
|
|
|
}
|
|
|
|
|
|
@@ -826,9 +843,12 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
.eq(FinPeriod::getBranchId, branchId)) > 0) {
|
|
|
throw new RuntimeException("已有账期,请勿重复开账");
|
|
|
}
|
|
|
+ String status = sysClient.getParamService("whether.open");
|
|
|
if (ObjectUtils.isNotNull(finPeriod.getBeginDate())) {
|
|
|
- finGenlegService.initialization(finPeriod.getBeginDate());
|
|
|
- finGenlegCalcService.initialization(finPeriod.getBeginDate());
|
|
|
+ if (ObjectUtils.isNull(status) || !"0".equals(status)) {
|
|
|
+ finGenlegService.initialization(finPeriod.getBeginDate());
|
|
|
+ finGenlegCalcService.initialization(finPeriod.getBeginDate());
|
|
|
+ }
|
|
|
LocalDate date = finPeriod.getBeginDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
|
|
finPeriod.setPeriodYear(date.getYear());
|
|
|
finPeriod.setPeriodMonth(date.getMonthValue());
|
|
|
@@ -836,8 +856,10 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
|
|
|
finPeriod.setEndDate(Date.from(lastDayOfMonth.atStartOfDay(ZoneId.systemDefault()).toInstant()));
|
|
|
} else {
|
|
|
- finGenlegService.initialization(new Date());
|
|
|
- finGenlegCalcService.initialization(new Date());
|
|
|
+ if (ObjectUtils.isNull(status) || !"0".equals(status)) {
|
|
|
+ finGenlegService.initialization(new Date());
|
|
|
+ finGenlegCalcService.initialization(new Date());
|
|
|
+ }
|
|
|
LocalDate date = LocalDate.now();
|
|
|
finPeriod.setPeriodYear(date.getYear());
|
|
|
finPeriod.setPeriodMonth(date.getMonthValue());
|
|
|
@@ -879,11 +901,12 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
exchange.setAccItems(new ArrayList<>());
|
|
|
exchange.setDate(finPeriod.getPeriodYear() + "-" + finPeriod.getPeriodMonth());
|
|
|
finPeriod.setExchange(JSON.toJSONString(exchange));*/
|
|
|
- PeriodVouchersTemplate period = new PeriodVouchersTemplate();
|
|
|
- period.setId(finPeriod.getId() + "");
|
|
|
- period.setStatus(0);
|
|
|
- period.setBsType("FM-PERIOD-PL-TRANSFER");
|
|
|
- period.setVkno("转");
|
|
|
+ if (ObjectUtils.isNull(status) || !"0".equals(status)) {
|
|
|
+ PeriodVouchersTemplate period = new PeriodVouchersTemplate();
|
|
|
+ period.setId(finPeriod.getId() + "");
|
|
|
+ period.setStatus(0);
|
|
|
+ period.setBsType("FM-PERIOD-PL-TRANSFER");
|
|
|
+ period.setVkno("转");
|
|
|
/*Accounts accountsPeriod = accountsService.getOne(new LambdaQueryWrapper<Accounts>()
|
|
|
.eq(Accounts::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Accounts::getCode, "550304")
|
|
|
@@ -896,10 +919,11 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
|
|
|
period.setPlAccNo(accountsPeriod.getCode());
|
|
|
period.setPlAccID(accountsPeriod.getId() + "");
|
|
|
period.setDescr(accountsPeriod.getCnName() + "结转");*/
|
|
|
- period.setAccItems(new ArrayList<>());
|
|
|
- period.setDate(finPeriod.getPeriodYear() + "-" + finPeriod.getPeriodMonth());
|
|
|
- finPeriod.setPeriod(JSON.toJSONString(period));
|
|
|
- this.updateById(finPeriod);
|
|
|
+ period.setAccItems(new ArrayList<>());
|
|
|
+ period.setDate(finPeriod.getPeriodYear() + "-" + finPeriod.getPeriodMonth());
|
|
|
+ finPeriod.setPeriod(JSON.toJSONString(period));
|
|
|
+ this.updateById(finPeriod);
|
|
|
+ }
|
|
|
return R.data(finPeriod);
|
|
|
}
|
|
|
|