Merge remote-tracking branch 'origin/master'

master
xxssyyyyssxx 2021-11-30 13:28:01 +08:00
commit 0956883c35
11 changed files with 146 additions and 104 deletions

View File

@ -1,12 +1,13 @@
package cn.palmte.work.bean; package cn.palmte.work.bean;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
/** /**
* @author Yuanping Zhang * @author Yuanping Zhang
* @date 2021/11/15 * @date 2021/11/15
*/ */
public class FormerBean extends IncomeCostBean{ public class FormerBean extends IncomeCostBean {
/** /**
* *
@ -42,11 +43,11 @@ public class FormerBean extends IncomeCostBean{
private BigDecimal netProfitMargin; private BigDecimal netProfitMargin;
/** /**
* a * a
* */ */
private BigDecimal saleIncomeCash; private BigDecimal saleIncomeCash;
/** /**
* b * b
* */ */
private BigDecimal taxReturn; private BigDecimal taxReturn;
/** /**
* c * c
@ -61,7 +62,7 @@ public class FormerBean extends IncomeCostBean{
*/ */
private BigDecimal taxCost; private BigDecimal taxCost;
/** /**
*f * f
*/ */
private BigDecimal earnestMoneyCost; private BigDecimal earnestMoneyCost;
/** /**
@ -89,7 +90,7 @@ public class FormerBean extends IncomeCostBean{
*/ */
private BigDecimal financingCapitalOutflow; private BigDecimal financingCapitalOutflow;
/** /**
*m * m
*/ */
private BigDecimal financingCapitalCashflow; private BigDecimal financingCapitalCashflow;
/** /**
@ -114,7 +115,10 @@ public class FormerBean extends IncomeCostBean{
if (null == grossProfit || null == incomeTotalTaxExclude) { if (null == grossProfit || null == incomeTotalTaxExclude) {
return handleSpecial(null); return handleSpecial(null);
} }
return grossProfit.divide(incomeTotalTaxExclude).multiply(new BigDecimal(100)); if (incomeTotalTaxExclude.compareTo(BigDecimal.ZERO) == 0) {
return BigDecimal.ZERO;
}
return grossProfit.divide(incomeTotalTaxExclude,4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
} }
public void setGrossProfitProfitMargin(BigDecimal grossProfitProfitMargin) { public void setGrossProfitProfitMargin(BigDecimal grossProfitProfitMargin) {
@ -122,7 +126,7 @@ public class FormerBean extends IncomeCostBean{
} }
/** /**
* *
*/ */
private BigDecimal contributionProfitProfitMargin; private BigDecimal contributionProfitProfitMargin;
@ -134,8 +138,10 @@ public class FormerBean extends IncomeCostBean{
if (null == contributionProfit || null == incomeTotalTaxExclude) { if (null == contributionProfit || null == incomeTotalTaxExclude) {
return handleSpecial(null); return handleSpecial(null);
} }
return contributionProfit.divide(incomeTotalTaxExclude).multiply(new BigDecimal(100)); if (incomeTotalTaxExclude.compareTo(BigDecimal.ZERO) == 0) {
return BigDecimal.ZERO;
}
return contributionProfit.divide(incomeTotalTaxExclude,4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
} }
public void setContributionProfitProfitMargin(BigDecimal contributionProfitProfitMargin) { public void setContributionProfitProfitMargin(BigDecimal contributionProfitProfitMargin) {
@ -155,7 +161,10 @@ public class FormerBean extends IncomeCostBean{
if (null == netProfit || null == incomeTotalTaxExclude) { if (null == netProfit || null == incomeTotalTaxExclude) {
return handleSpecial(null); return handleSpecial(null);
} }
return netProfit.divide(incomeTotalTaxExclude).multiply(new BigDecimal(100)); if (incomeTotalTaxExclude.compareTo(BigDecimal.ZERO) == 0) {
return BigDecimal.ZERO;
}
return netProfit.divide(incomeTotalTaxExclude,4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
} }
public void setNetProfitProfitMargin(BigDecimal netProfitProfitMargin) { public void setNetProfitProfitMargin(BigDecimal netProfitProfitMargin) {

View File

@ -60,12 +60,12 @@ public class HumanCostController extends BaseController{
Admin admin = getAdmin(); Admin admin = getAdmin();
int roleLevel = admin.getRoleLevel(); int roleLevel = admin.getRoleLevel();
List<Project> selfProjects = projectRepository.findByCreator(admin.getId(), new Date()); List<Project> selfProjects = projectRepository.findByCreator(admin.getId(), new Date());
if (roleLevel <= 2 || roleLevel == 4) { if (roleLevel <= 3 || roleLevel == 6) {
model.put("deptVary", 1); model.put("deptVary", 1);
model.put("deptList", deptRepository.findAll()); model.put("deptList", deptRepository.findAll());
model.put("projectList", projectRepository.findAll()); model.put("projectList", projectRepository.findAll());
model.put("showSalary", 1); model.put("showSalary", 1);
} else if (roleLevel == 3) { } else if (roleLevel == 4 || roleLevel == 5) {
model.put("deptVary", -1); model.put("deptVary", -1);
model.put("deptList", new ArrayList<>()); model.put("deptList", new ArrayList<>());
model.put("projectList", projectRepository.findByDeptId(admin.getDeptId())); model.put("projectList", projectRepository.findByDeptId(admin.getDeptId()));

View File

@ -80,6 +80,7 @@ public class ProjectController extends BaseController {
//当前登录人的角色类型 //当前登录人的角色类型
model.put("keywords", keywords); model.put("keywords", keywords);
model.put("adminId", InterfaceUtil.getAdminId()); model.put("adminId", InterfaceUtil.getAdminId());
model.put("admin", InterfaceUtil.getAdmin());
model.put("deptList", deptService.findAll()); model.put("deptList", deptService.findAll());
ConcurrentHashMap<String, String> searchInfo = getSearchInfo(keywords, model); ConcurrentHashMap<String, String> searchInfo = getSearchInfo(keywords, model);
model.put("pager", projectService.list(searchInfo, pageNumber, pageSize)); model.put("pager", projectService.list(searchInfo, pageNumber, pageSize));

View File

@ -122,8 +122,8 @@ public class HumanCostService {
Project project = projectRepository.findByProjectName(projectName); Project project = projectRepository.findByProjectName(projectName);
if (project == null) { if (project == null) {
throw new Exception(projectName + "不存在"); throw new Exception(projectName + "不存在");
} else if (project.getStatus() != Project.STATUS_SETTLE || project.getApproveStatusSettle() == 1 || project.getApproveStatusSettle() == 2) { } else if (project.getStatus() == Project.STATUS_ESTIMATE || (project.getStatus() == Project.STATUS_ESTIMATE && project.getApproveStatusEstimate() != 2) || (project.getStatus() == Project.STATUS_FINAL && project.getApproveStatusFinal() == 2)) {
throw new Exception(projectName + "不在项目结算的可编辑状态"); throw new Exception(projectName + "不在项目人力成本的可导入状态");
} }
if (projectSet.contains(projectName)) { if (projectSet.contains(projectName)) {
throw new Exception("项目名称存在重复!"); throw new Exception("项目名称存在重复!");
@ -180,6 +180,11 @@ public class HumanCostService {
errorList.add(e.getMessage()); errorList.add(e.getMessage());
} }
} }
if (errorCount > 0) {
final ResponseMsg msg = ResponseMsg.buildSuccessMsg(String.format("失败:%d", errorCount));
msg.setData(errorList);
return msg;
}
for (String key : staffCost.keySet()) { for (String key : staffCost.keySet()) {
try { try {
if (staffCost.getOrDefault(key, BigDecimal.valueOf(0)).compareTo(BigDecimal.valueOf(1)) != 0) { if (staffCost.getOrDefault(key, BigDecimal.valueOf(0)).compareTo(BigDecimal.valueOf(1)) != 0) {
@ -195,10 +200,14 @@ public class HumanCostService {
int row = projectUserTimeRepository.deleteByTime(date); int row = projectUserTimeRepository.deleteByTime(date);
logger.info("删除重复条目:" + row + "条"); logger.info("删除重复条目:" + row + "条");
projectUserTimeRepository.save(saveList); projectUserTimeRepository.save(saveList);
final ResponseMsg msg = ResponseMsg.buildSuccessMsg(String.format("成功:%d, 失败:%d", successCount, errorCount));
msg.setData(errorList);
return msg;
} else {
final ResponseMsg msg = ResponseMsg.buildSuccessMsg(String.format("失败:%d", errorCount));
msg.setData(errorList);
return msg;
} }
final ResponseMsg msg = ResponseMsg.buildSuccessMsg(String.format("成功:%d, 失败:%d", successCount, errorCount));
msg.setData(errorList);
return msg;
} }
public String[] getHeaders(List<ProjectUserTime> staff) { public String[] getHeaders(List<ProjectUserTime> staff) {
@ -241,11 +250,11 @@ public class HumanCostService {
} }
Admin admin = InterfaceUtil.getAdmin(); Admin admin = InterfaceUtil.getAdmin();
List<Project> projectList = null; List<Project> projectList = null;
if (admin.getRoleLevel() <= 2 || admin.getRoleLevel() == 4) { if (admin.getRoleLevel() <= 3 || admin.getRoleLevel() == 6) {
String sql = "select proj.id, proj.name from project proj where (proj.status = ? or (proj.status = ? and proj.approve_status_budget = ?)) order by proj.id asc"; String sql = "select proj.id, proj.name from project proj where (proj.status = ? or (proj.status = ? and proj.approve_status_budget = ?) or (proj.status = ? and proj.approve_status_final <> ?)) order by proj.id asc";
projectList = pagination.find(sql, Project.class, Project.STATUS_SETTLE, Project.STATUS_BUDGET, 2); projectList = pagination.find(sql, Project.class, Project.STATUS_SETTLE, Project.STATUS_BUDGET, 2, Project.STATUS_FINAL, 2);
} else { } else {
String sql = "select proj.id, proj.name from project proj where (proj.status = ? or (proj.status = ? and proj.approve_status_budget = ?)) and " + String sql = "select proj.id, proj.name from project proj where (proj.status = ? or (proj.status = ? and proj.approve_status_budget = ?) or (proj.status = ? and proj.approve_status_final <> ?)) and " +
" (proj.creator_id=? OR proj.id in (SELECT pv1.project_id FROM project_visible pv1 WHERE pv1.type=1 AND pv1.tid=? UNION SELECT pv2.project_id FROM project_visible pv2 WHERE pv2.type=2 AND pv2.tid=?)) order by proj.id asc"; " (proj.creator_id=? OR proj.id in (SELECT pv1.project_id FROM project_visible pv1 WHERE pv1.type=1 AND pv1.tid=? UNION SELECT pv2.project_id FROM project_visible pv2 WHERE pv2.type=2 AND pv2.tid=?)) order by proj.id asc";
//项目可见性根据角色和人员id //项目可见性根据角色和人员id
int roleId = admin.getRoleId(); int roleId = admin.getRoleId();

View File

@ -2,32 +2,50 @@ function calculateFinal() {
$("input[name='incomeDeviceFinalTotal']").change(function () { $("input[name='incomeDeviceFinalTotal']").change(function () {
calIncomeFinalTotal(); calIncomeFinalTotal();
calNetMarginFinalTotal();
calNetMarginProfitMargin();
}); });
$("input[name='incomeEngineerFinalTotal']").change(function () { $("input[name='incomeEngineerFinalTotal']").change(function () {
calIncomeFinalTotal(); calIncomeFinalTotal();
calNetMarginFinalTotal();
calNetMarginProfitMargin();
}); });
$("input[name='incomeServiceFinalTotal']").change(function () { $("input[name='incomeServiceFinalTotal']").change(function () {
calIncomeFinalTotal(); calIncomeFinalTotal();
calNetMarginFinalTotal();
calNetMarginProfitMargin();
}); });
$("input[name='costPurchaseDeviceFinalTotal']").change(function () { $("input[name='costPurchaseDeviceFinalTotal']").change(function () {
calCostFinalTotal(); calCostFinalTotal();
calNetMarginFinalTotal();
calNetMarginProfitMargin();
}); });
$("input[name='costPurchaseBuildFinalTotal']").change(function () { $("input[name='costPurchaseBuildFinalTotal']").change(function () {
calCostFinalTotal(); calCostFinalTotal();
calNetMarginFinalTotal();
calNetMarginProfitMargin();
}); });
$("input[name='costPurchaseServiceFinalTotal']").change(function () { $("input[name='costPurchaseServiceFinalTotal']").change(function () {
calCostFinalTotal(); calCostFinalTotal();
calNetMarginFinalTotal();
calNetMarginProfitMargin();
}); });
$("input[name='costPurchaseOtherFinalTotal']").change(function () { $("input[name='costPurchaseOtherFinalTotal']").change(function () {
calCostFinalTotal(); calCostFinalTotal();
calNetMarginFinalTotal();
calNetMarginProfitMargin();
}); });
$("input[name='costProjectManageFinalTotal']").change(function () { $("input[name='costProjectManageFinalTotal']").change(function () {
calCostFinalTotal(); calCostFinalTotal();
calNetMarginFinalTotal();
calNetMarginProfitMargin();
}); });
$("input[name='costOtherFinalTotal']").change(function () { $("input[name='costOtherFinalTotal']").change(function () {
calCostFinalTotal(); calCostFinalTotal();
calNetMarginFinalTotal();
calNetMarginProfitMargin();
}); });
@ -69,7 +87,7 @@ function calculateFinal() {
calNetIncreaseMonetaryFunds(); calNetIncreaseMonetaryFunds();
}); });
$("input[name='taxCost']").change(function () { $("input[name='taxCost']").change(function () {
// calCashFluxFinalTotal(); // calCashFluxFinalTotal();
calNetCashFlow(); calNetCashFlow();
calNetIncreaseMonetaryFunds(); calNetIncreaseMonetaryFunds();
}); });
@ -79,10 +97,10 @@ function calculateFinal() {
calNetIncreaseMonetaryFunds(); calNetIncreaseMonetaryFunds();
}); });
$("input[name='netCashFlow']").change(function () { $("input[name='netCashFlow']").change(function () {
// calCashFluxFinalTotal(); // calCashFluxFinalTotal();
}); });
$("input[name='cashInflowFromInvestingActivities']").change(function () { $("input[name='cashInflowFromInvestingActivities']").change(function () {
// calCashFluxFinalTotal(); // calCashFluxFinalTotal();
calNetCashFromInvestingActivities(); calNetCashFromInvestingActivities();
calNetIncreaseMonetaryFunds(); calNetIncreaseMonetaryFunds();
}) })
@ -92,7 +110,7 @@ function calculateFinal() {
calNetIncreaseMonetaryFunds(); calNetIncreaseMonetaryFunds();
}); });
$("input[name='netCashFromInvestingActivities']").change(function () { $("input[name='netCashFromInvestingActivities']").change(function () {
// calCashFluxFinalTotal(); // calCashFluxFinalTotal();
}); });
$("input[name='financingCapitalInflow']").change(function () { $("input[name='financingCapitalInflow']").change(function () {
//calCashFluxFinalTotal(); //calCashFluxFinalTotal();
@ -128,11 +146,11 @@ function calNetCashFlow() {
var netCashFlow = $("input[name='netCashFlow']"); var netCashFlow = $("input[name='netCashFlow']");
if(saleIncomeCash && taxReturn && earnestMoneyIncome if (saleIncomeCash && taxReturn && earnestMoneyIncome
&& purchaseCost && taxCost && earnestMoneyCost){ && purchaseCost && taxCost && earnestMoneyCost) {
netCashFlow.val(parseFloat(saleIncomeCash)+parseFloat(taxReturn)+parseFloat(earnestMoneyIncome) netCashFlow.val(parseFloat(saleIncomeCash) + parseFloat(taxReturn) + parseFloat(earnestMoneyIncome)
-parseFloat(purchaseCost)-parseFloat(taxCost)-parseFloat(earnestMoneyCost)); - parseFloat(purchaseCost) - parseFloat(taxCost) - parseFloat(earnestMoneyCost));
}else { } else {
netCashFlow.val(""); netCashFlow.val("");
} }
} }
@ -146,9 +164,9 @@ function calNetCashFromInvestingActivities() {
var netCashFromInvestingActivities = $("input[name='netCashFromInvestingActivities']"); var netCashFromInvestingActivities = $("input[name='netCashFromInvestingActivities']");
if(cashInflowFromInvestingActivities && cashOutflowFromInvestingActivities ){ if (cashInflowFromInvestingActivities && cashOutflowFromInvestingActivities) {
netCashFromInvestingActivities.val(parseFloat(cashInflowFromInvestingActivities)-parseFloat(cashOutflowFromInvestingActivities)); netCashFromInvestingActivities.val(parseFloat(cashInflowFromInvestingActivities) - parseFloat(cashOutflowFromInvestingActivities));
}else { } else {
netCashFromInvestingActivities.val(""); netCashFromInvestingActivities.val("");
} }
} }
@ -162,9 +180,9 @@ function calFinancingCapitalCashflow() {
var financingCapitalCashflow = $("input[name='financingCapitalCashflow']"); var financingCapitalCashflow = $("input[name='financingCapitalCashflow']");
if(financingCapitalInflow && financingCapitalOutflow ){ if (financingCapitalInflow && financingCapitalOutflow) {
financingCapitalCashflow.val(parseFloat(financingCapitalInflow)-parseFloat(financingCapitalOutflow)); financingCapitalCashflow.val(parseFloat(financingCapitalInflow) - parseFloat(financingCapitalOutflow));
}else { } else {
financingCapitalCashflow.val(""); financingCapitalCashflow.val("");
} }
} }
@ -176,9 +194,9 @@ function calNetIncreaseMonetaryFunds() {
var netIncreaseMonetaryFunds = $("input[name='netIncreaseMonetaryFunds']"); var netIncreaseMonetaryFunds = $("input[name='netIncreaseMonetaryFunds']");
if(netCashFlow && netCashFromInvestingActivities && financingCapitalCashflow){ if (netCashFlow && netCashFromInvestingActivities && financingCapitalCashflow) {
netIncreaseMonetaryFunds.val(parseFloat(netCashFlow)+parseFloat(netCashFromInvestingActivities)+parseFloat(financingCapitalCashflow)); netIncreaseMonetaryFunds.val(parseFloat(netCashFlow) + parseFloat(netCashFromInvestingActivities) + parseFloat(financingCapitalCashflow));
}else { } else {
netIncreaseMonetaryFunds.val(""); netIncreaseMonetaryFunds.val("");
} }
} }
@ -193,9 +211,9 @@ function calIncomeFinalTotal() {
var incomeFinalTotal = $("input[name='incomeFinalTotal']"); var incomeFinalTotal = $("input[name='incomeFinalTotal']");
if(incomeDeviceFinalTotal && incomeEngineerFinalTotal && incomeServiceFinalTotal){ if (incomeDeviceFinalTotal && incomeEngineerFinalTotal && incomeServiceFinalTotal) {
incomeFinalTotal.val(parseFloat(incomeDeviceFinalTotal)+parseFloat(incomeEngineerFinalTotal)+parseFloat(incomeServiceFinalTotal)); incomeFinalTotal.val(parseFloat(incomeDeviceFinalTotal) + parseFloat(incomeEngineerFinalTotal) + parseFloat(incomeServiceFinalTotal));
}else { } else {
incomeFinalTotal.val(""); incomeFinalTotal.val("");
} }
} }
@ -213,11 +231,11 @@ function calCostFinalTotal() {
var costFinalTotal = $("input[name='costFinalTotal']"); var costFinalTotal = $("input[name='costFinalTotal']");
if(costPurchaseDeviceFinalTotal && costPurchaseBuildFinalTotal && costPurchaseServiceFinalTotal && if (costPurchaseDeviceFinalTotal && costPurchaseBuildFinalTotal && costPurchaseServiceFinalTotal &&
costPurchaseOtherFinalTotal && costProjectManageFinalTotal && costOtherFinalTotal){ costPurchaseOtherFinalTotal && costProjectManageFinalTotal && costOtherFinalTotal) {
costFinalTotal.val(parseFloat(costPurchaseDeviceFinalTotal)+parseFloat(costPurchaseBuildFinalTotal)+parseFloat(costPurchaseServiceFinalTotal)+ costFinalTotal.val(parseFloat(costPurchaseDeviceFinalTotal) + parseFloat(costPurchaseBuildFinalTotal) + parseFloat(costPurchaseServiceFinalTotal) +
parseFloat(costPurchaseOtherFinalTotal)+parseFloat(costProjectManageFinalTotal)+parseFloat(costOtherFinalTotal)); parseFloat(costPurchaseOtherFinalTotal) + parseFloat(costProjectManageFinalTotal) + parseFloat(costOtherFinalTotal));
}else { } else {
costFinalTotal.val(""); costFinalTotal.val("");
} }
} }
@ -233,9 +251,9 @@ function calManageFinalTotal() {
var manageFinalTotal = $("input[name='manageFinalTotal']"); var manageFinalTotal = $("input[name='manageFinalTotal']");
if(costExpropriationFinalTotal && costCompanyManageFinalTotal && costIncomeTaxFinalTotal){ if (costExpropriationFinalTotal && costCompanyManageFinalTotal && costIncomeTaxFinalTotal) {
manageFinalTotal.val(parseFloat(costExpropriationFinalTotal)+parseFloat(costCompanyManageFinalTotal)+parseFloat(costIncomeTaxFinalTotal)); manageFinalTotal.val(parseFloat(costExpropriationFinalTotal) + parseFloat(costCompanyManageFinalTotal) + parseFloat(costIncomeTaxFinalTotal));
}else { } else {
manageFinalTotal.val(""); manageFinalTotal.val("");
} }
} }
@ -261,17 +279,17 @@ function calCashFluxFinalTotal() {
var cashFluxFinalTotal = $("input[name='cashFluxFinalTotal']"); var cashFluxFinalTotal = $("input[name='cashFluxFinalTotal']");
if(saleIncomeCash && taxReturn && earnestMoneyIncome && if (saleIncomeCash && taxReturn && earnestMoneyIncome &&
purchaseCost && taxCost && earnestMoneyCost&& purchaseCost && taxCost && earnestMoneyCost &&
netCashFlow && cashInflowFromInvestingActivities && cashOutflowFromInvestingActivities && netCashFlow && cashInflowFromInvestingActivities && cashOutflowFromInvestingActivities &&
netCashFromInvestingActivities && financingCapitalInflow && financingCapitalOutflow netCashFromInvestingActivities && financingCapitalInflow && financingCapitalOutflow
&& financingCapitalCashflow && netIncreaseMonetaryFunds){ && financingCapitalCashflow && netIncreaseMonetaryFunds) {
cashFluxFinalTotal.val(parseFloat(saleIncomeCash)+parseFloat(taxReturn)+parseFloat(earnestMoneyIncome)+ cashFluxFinalTotal.val(parseFloat(saleIncomeCash) + parseFloat(taxReturn) + parseFloat(earnestMoneyIncome) +
parseFloat(purchaseCost)+parseFloat(taxCost)+parseFloat(earnestMoneyCost)+ parseFloat(purchaseCost) + parseFloat(taxCost) + parseFloat(earnestMoneyCost) +
parseFloat(netCashFlow)+parseFloat(cashInflowFromInvestingActivities)+parseFloat(cashOutflowFromInvestingActivities)+ parseFloat(netCashFlow) + parseFloat(cashInflowFromInvestingActivities) + parseFloat(cashOutflowFromInvestingActivities) +
parseFloat(netCashFromInvestingActivities)+parseFloat(financingCapitalInflow)+parseFloat(financingCapitalOutflow)+ parseFloat(netCashFromInvestingActivities) + parseFloat(financingCapitalInflow) + parseFloat(financingCapitalOutflow) +
parseFloat(financingCapitalCashflow)+parseFloat(netIncreaseMonetaryFunds)); parseFloat(financingCapitalCashflow) + parseFloat(netIncreaseMonetaryFunds));
}else { } else {
cashFluxFinalTotal.val(""); cashFluxFinalTotal.val("");
} }
} }
@ -286,9 +304,9 @@ function calGrossProfitFinalTotal() {
var grossProfitFinalTotal = $("input[name='grossProfitFinalTotal']"); var grossProfitFinalTotal = $("input[name='grossProfitFinalTotal']");
if(incomeFinalTotal && costFinalTotal && costExpropriationFinalTotal){ if (incomeFinalTotal && costFinalTotal && costExpropriationFinalTotal) {
grossProfitFinalTotal.val(parseFloat(incomeFinalTotal)-parseFloat(costFinalTotal)-parseFloat(costExpropriationFinalTotal)); grossProfitFinalTotal.val(parseFloat(incomeFinalTotal) - parseFloat(costFinalTotal) - parseFloat(costExpropriationFinalTotal));
}else { } else {
grossProfitFinalTotal.val(""); grossProfitFinalTotal.val("");
} }
} }
@ -301,9 +319,9 @@ function calGrossProfitProfitMargin() {
var incomeFinalTotal = $("input[name='incomeFinalTotal']").val(); var incomeFinalTotal = $("input[name='incomeFinalTotal']").val();
var grossProfitProfitMargin = $("input[name='grossProfitProfitMargin']"); var grossProfitProfitMargin = $("input[name='grossProfitProfitMargin']");
if(grossProfitFinalTotal && incomeFinalTotal){ if (grossProfitFinalTotal && incomeFinalTotal) {
grossProfitProfitMargin.val(f2(grossProfitFinalTotal) / f2(incomeFinalTotal)); grossProfitProfitMargin.val(100 * grossProfitFinalTotal / incomeFinalTotal);
}else { } else {
grossProfitProfitMargin.val(""); grossProfitProfitMargin.val("");
} }
} }
@ -318,9 +336,9 @@ function calContributionMarginFinalTotal() {
var contributionMarginFinalTotal = $("input[name='contributionMarginFinalTotal']"); var contributionMarginFinalTotal = $("input[name='contributionMarginFinalTotal']");
if(grossProfitFinalTotal && costCompanyManageFinalTotal ){ if (grossProfitFinalTotal && costCompanyManageFinalTotal) {
contributionMarginFinalTotal.val(parseFloat(grossProfitFinalTotal)-parseFloat(costCompanyManageFinalTotal)); contributionMarginFinalTotal.val(parseFloat(grossProfitFinalTotal) - parseFloat(costCompanyManageFinalTotal));
}else { } else {
contributionMarginFinalTotal.val(""); contributionMarginFinalTotal.val("");
} }
} }
@ -333,9 +351,9 @@ function calContributionMarginProfitMargin() {
var incomeFinalTotal = $("input[name='incomeFinalTotal']").val(); var incomeFinalTotal = $("input[name='incomeFinalTotal']").val();
var contributionMarginProfitMargin = $("input[name='contributionMarginProfitMargin']"); var contributionMarginProfitMargin = $("input[name='contributionMarginProfitMargin']");
if(contributionMarginFinalTotal && incomeFinalTotal){ if (contributionMarginFinalTotal && incomeFinalTotal) {
contributionMarginProfitMargin.val(f2(contributionMarginFinalTotal) / f2(incomeFinalTotal)); contributionMarginProfitMargin.val(100 * contributionMarginFinalTotal / incomeFinalTotal);
}else { } else {
contributionMarginProfitMargin.val(""); contributionMarginProfitMargin.val("");
} }
} }
@ -350,9 +368,9 @@ function calNetMarginFinalTotal() {
var netMarginFinalTotal = $("input[name='netMarginFinalTotal']"); var netMarginFinalTotal = $("input[name='netMarginFinalTotal']");
if(contributionMarginFinalTotal && costIncomeTaxFinalTotal ){ if (contributionMarginFinalTotal && costIncomeTaxFinalTotal) {
netMarginFinalTotal.val(parseFloat(contributionMarginFinalTotal)-parseFloat(costIncomeTaxFinalTotal)); netMarginFinalTotal.val(parseFloat(contributionMarginFinalTotal) - parseFloat(costIncomeTaxFinalTotal));
}else { } else {
netMarginFinalTotal.val(""); netMarginFinalTotal.val("");
} }
} }
@ -365,9 +383,9 @@ function calNetMarginProfitMargin() {
var incomeFinalTotal = $("input[name='incomeFinalTotal']").val(); var incomeFinalTotal = $("input[name='incomeFinalTotal']").val();
var netMarginProfitMargin = $("input[name='netMarginProfitMargin']"); var netMarginProfitMargin = $("input[name='netMarginProfitMargin']");
if(netMarginFinalTotal && incomeFinalTotal){ if (netMarginFinalTotal && incomeFinalTotal) {
netMarginProfitMargin.val(f2(netMarginFinalTotal) / f2(incomeFinalTotal)); netMarginProfitMargin.val(100 * netMarginFinalTotal / incomeFinalTotal);
}else { } else {
netMarginProfitMargin.val(""); netMarginProfitMargin.val("");
} }
} }

View File

@ -201,21 +201,21 @@
<div class="am-g am-form-group am-margin-top"> <div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资利息</div> <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资利息</div>
<div class="am-u-sm-6 am-u-md-6"> <div class="am-u-sm-6 am-u-md-6">
<span>${project.advanceInterestAmount}</span>元 <span>${Utils.format(project.advanceInterestAmount)}</span>元
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
<div class="am-g am-form-group am-margin-top"> <div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资峰值</div> <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资峰值</div>
<div class="am-u-sm-6 am-u-md-6"> <div class="am-u-sm-6 am-u-md-6">
<span>${project.advancePeakAmount}</span>元 <span>${Utils.format(project.advancePeakAmount)}</span>元
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
<div class="am-g am-form-group am-margin-top"> <div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>合同金额</div> <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>合同金额</div>
<div class="am-u-sm-6 am-u-md-6"> <div class="am-u-sm-6 am-u-md-6">
<span>${project.contractAmount}</span>元 <span>${Utils.format(project.contractAmount)}</span>元
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
@ -229,14 +229,14 @@
<div class="am-g am-form-group am-margin-top"> <div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>华智产品金额</div> <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>华智产品金额</div>
<div class="am-u-sm-6 am-u-md-6"> <div class="am-u-sm-6 am-u-md-6">
<span>${project.huazhiProductAmount!}</span>元 <span>${Utils.format(project.huazhiProductAmount)}</span>元
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
<div class="am-g am-form-group am-margin-top"> <div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>紫光其他产品金额</div> <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>紫光其他产品金额</div>
<div class="am-u-sm-6 am-u-md-6"> <div class="am-u-sm-6 am-u-md-6">
<span>${project.ziguangOtherAmount!}</span>元 <span>${Utils.format(project.ziguangOtherAmount)}</span>元
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
@ -643,7 +643,7 @@
<div class="am-u-sm-10"> <div class="am-u-sm-10">
<div class="am-form am-form-inline"> <div class="am-form am-form-inline">
<div class="am-form-group am-form-icon"> <div class="am-form-group am-form-icon">
<input type="text" id="time" name="time" autocomplete="off" readonly value="${time!}"> <input type="text" id="time" name="time" autocomplete="off" data-am-datepicker readonly value="${time!}">
</div> </div>
</div> </div>
</div> </div>
@ -1883,12 +1883,12 @@
<script> <script>
var base = "${base}"; var base = "${base}";
</script> </script>
<#-- <script src="${base}/assets/js/project_common.js"></script> <script src="${base}/assets/js/project_common.js"></script>
<script src="${base}/assets/js/project_budget.js"></script> <script src="${base}/assets/js/project_budget.js"></script>
<script src="${base}/assets/js/project_budget_income.js"></script> <script src="${base}/assets/js/project_budget_income.js"></script>
<script src="${base}/assets/js/project_budget_cost.js"></script> <script src="${base}/assets/js/project_budget_cost.js"></script>
<script src="${base}/assets/js/project_budget_cost_project_manage.js"></script> <script src="${base}/assets/js/project_budget_cost_project_manage.js"></script>
<script src="${base}/assets/js/project_budget_plan.js"></script>--> <script src="${base}/assets/js/project_budget_plan.js"></script>
</@defaultLayout.layout> </@defaultLayout.layout>
<script> <script>
@ -1911,7 +1911,6 @@
}); });
}); });
var completeTask = function (projectId) { var completeTask = function (projectId) {
var message = $("#doc-vld-ta-2").val(); var message = $("#doc-vld-ta-2").val();
var type = $("input[name='docVlGender']:checked").val(); var type = $("input[name='docVlGender']:checked").val();

View File

@ -238,7 +238,7 @@
<#-- </@shiro.hasPermission>--> <#-- </@shiro.hasPermission>-->
<#-- 项目等于预算状态、预算审核等于通过状态 --> <#-- 项目等于预算状态、预算审核等于通过状态 -->
<#if (list.status==5 && list.approveStatusBudget=2) || (list.status=10 && list.approveStatusSettle=2) > <#if admin.getRoleLevel() == 6 && ((list.status==5 && list.approveStatusBudget=2) || (list.status=10 && list.approveStatusSettle=2)) >
<button type="button" <button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary" class="am-btn am-btn-default am-btn-xs am-text-secondary"
onclick="location.href='${base}/project/settle/add?id=${list.id}'"><span onclick="location.href='${base}/project/settle/add?id=${list.id}'"><span
@ -247,7 +247,7 @@
</#if> </#if>
<#-- 项目等于结算状态、结算审核不等于待审核状态--> <#-- 项目等于结算状态、结算审核不等于待审核状态-->
<#if list.status==10 && list.approveStatusSettle!=1> <#if admin.getRoleLevel() = 6 && list.status==10 && list.approveStatusSettle!=1>
<button type="button" <button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary" class="am-btn am-btn-default am-btn-xs am-text-secondary"
onclick="location.href='${base}/project/settle/edit?id=${list.id}'"><span onclick="location.href='${base}/project/settle/edit?id=${list.id}'"><span
@ -256,7 +256,7 @@
</#if> </#if>
<#-- 项目等于结算状态、结算审核等于通过状态 --> <#-- 项目等于结算状态、结算审核等于通过状态 -->
<#if list.status== 10 && list.approveStatusSettle==2 > <#if (admin.getRoleLevel() = 2 || admin.getRoleLevel() = 6) && (list.status== 10 && list.approveStatusSettle==2) >
<button type="button" <button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary" class="am-btn am-btn-default am-btn-xs am-text-secondary"
onclick="location.href='${base}/project/final/add?id=${list.id}'"><span onclick="location.href='${base}/project/final/add?id=${list.id}'"><span
@ -265,7 +265,7 @@
</#if> </#if>
<#-- 项目等于决算状态、决算审核不等于待审核状态、 决算审核不等于通过状态--> <#-- 项目等于决算状态、决算审核不等于待审核状态、 决算审核不等于通过状态-->
<#if list.status== 15 && list.approveStatusFinal!=1 && list.approveStatusFinal!=2 > <#if (admin.getRoleLevel() = 2 || admin.getRoleLevel() = 6) && list.status== 15 && list.approveStatusFinal!=1 && list.approveStatusFinal!=2 >
<button type="button" <button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary" class="am-btn am-btn-default am-btn-xs am-text-secondary"
onclick="location.href='${base}/project/final/edit?id=${list.id}'"><span onclick="location.href='${base}/project/final/edit?id=${list.id}'"><span

View File

@ -25,7 +25,7 @@
<div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目结算表</strong> / <small>${project.name}</small></div> <div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目结算表</strong> / <small>${project.name}</small></div>
</div> </div>
<form method="post" class="am-form" id="pmsForm" action="${base}/project/settleAdd"> <form method="post" class="am-form" id="pmsForm" action="${base}/project/settleAdd" data-am-validator>
<!--选项卡tabsbegin--> <!--选项卡tabsbegin-->
<div class="am-tabs am-margin" data-am-tabs> <div class="am-tabs am-margin" data-am-tabs>
<ul class="am-tabs-nav am-nav am-nav-tabs"> <ul class="am-tabs-nav am-nav am-nav-tabs">

View File

@ -25,7 +25,7 @@
<div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目结算表</strong> / <small>${project.name}</small></div> <div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目结算表</strong> / <small>${project.name}</small></div>
</div> </div>
<form method="post" class="am-form" id="pmsForm"> <form method="post" class="am-form" id="pmsForm" data-am-validator>
<!--选项卡tabsbegin--> <!--选项卡tabsbegin-->
<div class="am-tabs am-margin" data-am-tabs> <div class="am-tabs am-margin" data-am-tabs>
<ul class="am-tabs-nav am-nav am-nav-tabs"> <ul class="am-tabs-nav am-nav am-nav-tabs">

View File

@ -36,14 +36,16 @@
<div class="am-g am-form-group am-margin-top" style="display: flex;"> <div class="am-g am-form-group am-margin-top" style="display: flex;">
<div class="am-u-sm-4 am-u-md-2 am-text-right"> <div class="am-u-sm-4 am-u-md-2 am-text-right">
<span style="color: red;">*</span>角色等级</div> <span style="color: red;">*</span>角色类型</div>
<div class="am-u-sm-6 am-u-md-6"> <div class="am-u-sm-6 am-u-md-6">
<select data-am-selected="{btnWidth: '40%', btnSize: 'sm'" id="level" name="level"> <select data-am-selected="{btnWidth: '40%', btnSize: 'sm'" id="level" name="level">
<option value="1" <#if role.level! ==1>selected</#if> >一级</option> <option value="1" <#if role.level! ==1>selected</#if> >执行董事</option>
<option value="2" <#if role.level! ==2>selected</#if> >二级</option> <option value="2" <#if role.level! ==2>selected</#if> >财务总监</option>
<option value="3" <#if role.level! ==3>selected</#if> >三级</option> <option value="3" <#if role.level! ==3>selected</#if> >总经理</option>
<option value="4" <#if role.level! ==4>selected</#if> >四级</option> <option value="4" <#if role.level! ==4>selected</#if> >工程部主管</option>
<option value="5" <#if role.level! ==5>selected</#if> >五级</option> <option value="5" <#if role.level! ==5>selected</#if> >集成部主管(管理员)</option>
<option value="6" <#if role.level! ==6>selected</#if> >财务人员</option>
<option value="7" <#if role.level! ==7>selected</#if> >普通员工</option>
</select> </select>
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>

View File

@ -51,7 +51,7 @@
<th class="table-check"> <th class="table-check">
<input type="checkbox" id="allCheck"></th> <input type="checkbox" id="allCheck"></th>
<th class="table-title">角色名称</th> <th class="table-title">角色名称</th>
<th class="table-title">角色等级</th> <th class="table-title">角色类型</th>
<th class="table-title">是否启用</th> <th class="table-title">是否启用</th>
<th class="table-date">创建日期</th> <th class="table-date">创建日期</th>
<th class="table-date">最后更新日期</th> <th class="table-date">最后更新日期</th>
@ -68,15 +68,19 @@
<td>${list.name!}</td> <td>${list.name!}</td>
<td> <td>
<#if list.level ==1 > <#if list.level ==1 >
一级 执行董事
<#elseif list.level ==2> <#elseif list.level ==2>
二级 财务总监
<#elseif list.level ==3> <#elseif list.level ==3>
三级 总经理
<#elseif list.level ==4> <#elseif list.level ==4>
四级 工程部主管
<#elseif list.level ==5> <#elseif list.level ==5>
五级 集成部主管(管理员)
<#elseif list.level ==6>
财务人员
<#elseif list.level ==7>
普通员工
</#if> </#if>
</td> </td>
<td> <td>