资金利息

master
xxssyyyyssxx 2021-11-04 18:45:11 +08:00
parent 8746084652
commit 52afb4b44a
3 changed files with 157 additions and 4 deletions

View File

@ -188,7 +188,6 @@ public class ProjectController extends BaseController{
Project project = projectService.getProject(jsonObject.getInteger("projectId")); Project project = projectService.getProject(jsonObject.getInteger("projectId"));
projectBudgetService.clearBudgetIncomeDetail(project);
projectBudgetService.saveBudgetIncomeDetail(project, detailList); projectBudgetService.saveBudgetIncomeDetail(project, detailList);
return ResponseMsg.buildSuccessMsg("成功"); return ResponseMsg.buildSuccessMsg("成功");
@ -209,7 +208,6 @@ public class ProjectController extends BaseController{
Project project = projectService.getProject(jsonObject.getInteger("projectId")); Project project = projectService.getProject(jsonObject.getInteger("projectId"));
projectBudgetService.clearBudgetCostDetail(project);
projectBudgetService.saveBudgetCostDetail(project, detailList); projectBudgetService.saveBudgetCostDetail(project, detailList);
return ResponseMsg.buildSuccessMsg("成功"); return ResponseMsg.buildSuccessMsg("成功");
@ -230,7 +228,6 @@ public class ProjectController extends BaseController{
Project project = projectService.getProject(jsonObject.getInteger("projectId")); Project project = projectService.getProject(jsonObject.getInteger("projectId"));
projectBudgetService.clearBudgetCostProjectManageDetail(project);
projectBudgetService.saveBudgetCostProjectManageDetail(project, detailList); projectBudgetService.saveBudgetCostProjectManageDetail(project, detailList);
return ResponseMsg.buildSuccessMsg("成功"); return ResponseMsg.buildSuccessMsg("成功");
@ -251,7 +248,6 @@ public class ProjectController extends BaseController{
Project project = projectService.getProject(jsonObject.getInteger("projectId")); Project project = projectService.getProject(jsonObject.getInteger("projectId"));
projectBudgetService.clearBudgetPlanDetail(project);
projectBudgetService.saveBudgetPlanDetail(project, detailList); projectBudgetService.saveBudgetPlanDetail(project, detailList);
return ResponseMsg.buildSuccessMsg("成功"); return ResponseMsg.buildSuccessMsg("成功");

View File

@ -5,6 +5,7 @@ import cn.palmte.work.model.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import top.jfunc.common.utils.CollectionUtil; import top.jfunc.common.utils.CollectionUtil;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -225,7 +226,9 @@ public class ProjectBudgetService {
/** /**
* *
*/ */
@Transactional(rollbackFor = RuntimeException.class)
public void saveBudgetIncomeDetail(Project project, List<ProjectBudgetIncomeDetail> detailList){ public void saveBudgetIncomeDetail(Project project, List<ProjectBudgetIncomeDetail> detailList){
clearBudgetIncomeDetail(project);
if(CollectionUtil.isNotEmpty(detailList)){ if(CollectionUtil.isNotEmpty(detailList)){
for (ProjectBudgetIncomeDetail projectBudgetIncomeDetail : detailList) { for (ProjectBudgetIncomeDetail projectBudgetIncomeDetail : detailList) {
projectBudgetIncomeDetail.setProjectId(project.getId()); projectBudgetIncomeDetail.setProjectId(project.getId());
@ -253,7 +256,10 @@ public class ProjectBudgetService {
/** /**
* *
*/ */
@Transactional(rollbackFor = RuntimeException.class)
public void saveBudgetCostDetail(Project project, List<ProjectBudgetCostDetail> detailList){ public void saveBudgetCostDetail(Project project, List<ProjectBudgetCostDetail> detailList){
clearBudgetCostDetail(project);
if(CollectionUtil.isNotEmpty(detailList)){ if(CollectionUtil.isNotEmpty(detailList)){
for (ProjectBudgetCostDetail projectBudgetCostDetail : detailList) { for (ProjectBudgetCostDetail projectBudgetCostDetail : detailList) {
projectBudgetCostDetail.setProjectId(project.getId()); projectBudgetCostDetail.setProjectId(project.getId());
@ -281,7 +287,9 @@ public class ProjectBudgetService {
/** /**
* *
*/ */
@Transactional(rollbackFor = RuntimeException.class)
public void saveBudgetCostProjectManageDetail(Project project, List<ProjectBudgetCostProjectManageDetail> detailList){ public void saveBudgetCostProjectManageDetail(Project project, List<ProjectBudgetCostProjectManageDetail> detailList){
clearBudgetCostProjectManageDetail(project);
if(CollectionUtil.isNotEmpty(detailList)){ if(CollectionUtil.isNotEmpty(detailList)){
for (ProjectBudgetCostProjectManageDetail projectBudgetCostProjectManageDetail : detailList) { for (ProjectBudgetCostProjectManageDetail projectBudgetCostProjectManageDetail : detailList) {
projectBudgetCostProjectManageDetail.setProjectId(project.getId()); projectBudgetCostProjectManageDetail.setProjectId(project.getId());
@ -332,7 +340,9 @@ public class ProjectBudgetService {
/** /**
* *
*/ */
@Transactional(rollbackFor = RuntimeException.class)
public void saveBudgetPlanDetail(Project project, List<ProjectBudgetPlanDetail> detailList){ public void saveBudgetPlanDetail(Project project, List<ProjectBudgetPlanDetail> detailList){
clearBudgetPlanDetail(project);
if(CollectionUtil.isNotEmpty(detailList)){ if(CollectionUtil.isNotEmpty(detailList)){
for (ProjectBudgetPlanDetail projectBudgetPlanDetail : detailList) { for (ProjectBudgetPlanDetail projectBudgetPlanDetail : detailList) {
projectBudgetPlanDetail.setProjectId(project.getId()); projectBudgetPlanDetail.setProjectId(project.getId());

View File

@ -69,6 +69,12 @@ function bindBudgetPlanDeleteBtn() {
//更新余额 //更新余额
updateEachFundBalance(); updateEachFundBalance();
//更新垫资计划
updateEachUnderwrittenPlan();
//更新回款计划
updateEachRepaymentPlan();
//更新资金利息
updateEachCapitalInterest();
}); });
} }
@ -91,6 +97,12 @@ function bindChangeableInputBudgetPlanDetail() {
updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-total-cost-budget-plan"); updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-total-cost-budget-plan");
//更新余额 //更新余额
updateEachFundBalance(); updateEachFundBalance();
//更新垫资计划
updateEachUnderwrittenPlan();
//更新回款计划
updateEachRepaymentPlan();
//更新资金利息
updateEachCapitalInterest();
}); });
//工程支出改变 //工程支出改变
$(".input-changeable-engineer-cost-budget-plan").change(function () { $(".input-changeable-engineer-cost-budget-plan").change(function () {
@ -109,6 +121,12 @@ function bindChangeableInputBudgetPlanDetail() {
updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-total-cost-budget-plan"); updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-total-cost-budget-plan");
//更新余额 //更新余额
updateEachFundBalance(); updateEachFundBalance();
//更新垫资计划
updateEachUnderwrittenPlan();
//更新回款计划
updateEachRepaymentPlan();
//更新资金利息
updateEachCapitalInterest();
}); });
//经营性支出改变 //经营性支出改变
$(".input-changeable-project-manage-cost-budget-plan").change(function () { $(".input-changeable-project-manage-cost-budget-plan").change(function () {
@ -127,6 +145,12 @@ function bindChangeableInputBudgetPlanDetail() {
updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-total-cost-budget-plan"); updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-total-cost-budget-plan");
//更新余额 //更新余额
updateEachFundBalance(); updateEachFundBalance();
//更新垫资计划
updateEachUnderwrittenPlan();
//更新回款计划
updateEachRepaymentPlan();
//更新资金利息
updateEachCapitalInterest();
}); });
//保证金改变 //保证金改变
$(".input-changeable-earnest-money-cost-budget-plan").change(function () { $(".input-changeable-earnest-money-cost-budget-plan").change(function () {
@ -145,6 +169,12 @@ function bindChangeableInputBudgetPlanDetail() {
updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-total-cost-budget-plan"); updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-total-cost-budget-plan");
//更新余额 //更新余额
updateEachFundBalance(); updateEachFundBalance();
//更新垫资计划
updateEachUnderwrittenPlan();
//更新回款计划
updateEachRepaymentPlan();
//更新资金利息
updateEachCapitalInterest();
}); });
//销售收款改变 //销售收款改变
@ -162,6 +192,12 @@ function bindChangeableInputBudgetPlanDetail() {
updateBudgetPlanTotal("input-changeable-total-income-budget-plan","input-total-total-income-budget-plan"); updateBudgetPlanTotal("input-changeable-total-income-budget-plan","input-total-total-income-budget-plan");
//更新余额 //更新余额
updateEachFundBalance(); updateEachFundBalance();
//更新垫资计划
updateEachUnderwrittenPlan();
//更新回款计划
updateEachRepaymentPlan();
//更新资金利息
updateEachCapitalInterest();
}); });
//保证金收款改变 //保证金收款改变
$(".input-changeable-earnest-money-income-budget-plan").change(function () { $(".input-changeable-earnest-money-income-budget-plan").change(function () {
@ -178,6 +214,12 @@ function bindChangeableInputBudgetPlanDetail() {
updateBudgetPlanTotal("input-changeable-total-income-budget-plan","input-total-total-income-budget-plan"); updateBudgetPlanTotal("input-changeable-total-income-budget-plan","input-total-total-income-budget-plan");
//更新余额 //更新余额
updateEachFundBalance(); updateEachFundBalance();
//更新垫资计划
updateEachUnderwrittenPlan();
//更新回款计划
updateEachRepaymentPlan();
//更新资金利息
updateEachCapitalInterest();
}); });
@ -238,6 +280,111 @@ function updateEachFundBalance() {
} }
/**
* 更新每一行即每个月的垫资计划
*/
function updateEachUnderwrittenPlan() {
var total = 0;
//找到每个月的垫资计划输入框
$(".input-changeable-underwritten-plan-budget-plan").each(function (t) {
//找到当前月的收入和支出
var income = parseFloat($(this).parent().parent().find(".input-changeable-total-income-budget-plan").val());
var cost = parseFloat($(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val());
//我的上月余额
var prevFundBalance = parseFloat($(this).parent().parent().prev("tr").find(".input-changeable-fund-balance-budget-plan").val());
if(!prevFundBalance){
//第一个月的话上月余额就为0
prevFundBalance = 0;
}
var underwrittenPlan = 0;
if(income - cost >= 0){
underwrittenPlan = 0;
}else {
if(prevFundBalance<0){
underwrittenPlan = cost - income;
}else {
if(prevFundBalance <= cost - income){
underwrittenPlan = cost - income - prevFundBalance;
}else {
underwrittenPlan = 0;
}
}
}
total += underwrittenPlan;
$(this).val(underwrittenPlan);
});
//总垫资计划=所有月累加
$(".input-total-underwritten-plan-budget-plan").val(total);
}
/**
* 更新每一行即每个月的还款计划
*/
function updateEachRepaymentPlan() {
var total = 0;
//找到每个月的回款计划输入框
$(".input-changeable-repayment-plan-budget-plan").each(function (t) {
//找到当前月的收入和支出
var income = parseFloat($(this).parent().parent().find(".input-changeable-total-income-budget-plan").val());
var cost = parseFloat($(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val());
//我的上月余额
var prevFundBalance = parseFloat($(this).parent().parent().prev("tr").find(".input-changeable-fund-balance-budget-plan").val());
if(!prevFundBalance){
//第一个月的话上月余额就为0
prevFundBalance = 0;
}
var repaymentPlan = 0;
if(income - cost <= 0){
repaymentPlan = 0;
}else {
if(prevFundBalance >= 0){
repaymentPlan = 0;
}else {
if(income - cost <= -prevFundBalance){
repaymentPlan = income - cost;
}else {
repaymentPlan = -prevFundBalance;
}
}
}
total += repaymentPlan;
$(this).val(repaymentPlan);
});
//总回款计划=所有月累加
$(".input-total-repayment-plan-budget-plan").val(total);
}
/**
* 更新每一行即每个月的资金利息
*/
function updateEachCapitalInterest() {
var total = 0;
//找到每个月的资金利息输入框
$(".input-changeable-capital-interest-budget-plan").each(function (t) {
//找到当前月的垫资计划
var underwrittenPlan = parseFloat($(this).parent().parent().find(".input-changeable-underwritten-plan-budget-plan").val());
var capitalInterest = underwrittenPlan*0.0566/12;
total += capitalInterest;
$(this).val(capitalInterest);
});
//总资金利息=所有月累加
$(".input-total-capital-interest-budget-plan").val(total);
}
/** /**
* 更新页面收入的数据 * 更新页面收入的数据
*/ */