资金利息
parent
8746084652
commit
52afb4b44a
|
@ -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("成功");
|
||||||
|
|
|
@ -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());
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新页面收入的数据
|
* 更新页面收入的数据
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue