package com.java110.job.dao.impl;
|
|
import com.java110.dto.msg.BankIncomePo;
|
import com.java110.dto.msg.ReportAmountDetailPo;
|
import com.java110.dto.msg.ReportApprovalRecordPo;
|
import com.java110.dto.msg.ReportMainPo;
|
import com.java110.job.dao.IBankIncomeServiceDao;
|
import com.java110.job.dao.IReportAmountDetailServiceDao;
|
import com.java110.job.dao.IReportApprovalRecordServiceDao;
|
import com.java110.job.dao.IReportMainServiceDao;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.math.BigDecimal;
|
import java.util.Date;
|
|
/**
|
* 签报数据导入Service
|
*/
|
@Service
|
public class ReportImportService {
|
|
@Autowired
|
private IReportMainServiceDao reportMainServiceDao;
|
|
@Autowired
|
private IReportAmountDetailServiceDao reportAmountDetailServiceDao;
|
|
@Autowired
|
private IReportApprovalRecordServiceDao reportApprovalRecordServiceDao;
|
|
@Autowired
|
private IBankIncomeServiceDao bankIncomeServiceDao;
|
|
/**
|
* 保存签报单主表数据
|
* @param reportMainPo 签报单主表实体
|
* @return 主键ID
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public int saveReportMain(ReportMainPo reportMainPo) {
|
Date now = new Date();
|
reportMainPo.setCreateTime(now);
|
reportMainPo.setUpdateTime(now);
|
return reportMainServiceDao.saveReportMain(reportMainPo);
|
}
|
|
/**
|
* 保存签报金额明细
|
* @param reportAmountDetailPo 金额明细实体
|
* @return 影响行数
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public int saveReportAmountDetail(ReportAmountDetailPo reportAmountDetailPo) {
|
Date now = new Date();
|
reportAmountDetailPo.setCreateTime(now);
|
reportAmountDetailPo.setUpdateTime(now);
|
// 自动计算打印合计
|
reportAmountDetailPo.setPrintTotal(
|
reportAmountDetailPo.getFirstPrintAmount().add(reportAmountDetailPo.getSecondPrintAmount())
|
.add(reportAmountDetailPo.getThirdPrintAmount()).add(reportAmountDetailPo.getFourthPrintAmount())
|
.add(reportAmountDetailPo.getFifthPrintAmount())
|
);
|
// 自动计算到账合计
|
reportAmountDetailPo.setReceiptTotal(
|
reportAmountDetailPo.getFirstReceiptAmount().add(reportAmountDetailPo.getSecondReceiptAmount())
|
.add(reportAmountDetailPo.getThirdReceiptAmount()).add(reportAmountDetailPo.getFourthReceiptAmount())
|
.add(reportAmountDetailPo.getFifthReceiptAmount())
|
);
|
// 自动计算尚缺金额
|
reportAmountDetailPo.setRemainingAmount(
|
reportAmountDetailPo.getCommitteeAmount().subtract(reportAmountDetailPo.getReceiptTotal())
|
);
|
// 自动计算到账率(避免除0)
|
if (reportAmountDetailPo.getCommitteeAmount().compareTo(BigDecimal.ZERO) != 0) {
|
reportAmountDetailPo.setFundReceiptRate(
|
reportAmountDetailPo.getReceiptTotal().divide(reportAmountDetailPo.getCommitteeAmount(), 4, BigDecimal.ROUND_HALF_UP)
|
);
|
} else {
|
reportAmountDetailPo.setFundReceiptRate(BigDecimal.ZERO);
|
}
|
return reportAmountDetailServiceDao.saveReportAmountDetail(reportAmountDetailPo);
|
}
|
|
/**
|
* 保存签报审批记录
|
* @param reportApprovalRecordPo 审批记录实体
|
* @return 影响行数
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public int saveReportApprovalRecord(ReportApprovalRecordPo reportApprovalRecordPo) {
|
Date now = new Date();
|
reportApprovalRecordPo.setCreateTime(now);
|
reportApprovalRecordPo.setUpdateTime(now);
|
return reportApprovalRecordServiceDao.saveReportApprovalRecord(reportApprovalRecordPo);
|
}
|
|
/**
|
* 保存银行收入记录
|
* @param bankIncomePo 银行收入实体
|
* @return 影响行数
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public int saveBankIncome(BankIncomePo bankIncomePo) {
|
Date now = new Date();
|
bankIncomePo.setCreateTime(now);
|
bankIncomePo.setUpdateTime(now);
|
return bankIncomeServiceDao.saveBankIncome(bankIncomePo);
|
}
|
}
|