diff --git a/src/main/java/cn/palmte/work/model/ProjectBudgetCostProjectManageDetail.java b/src/main/java/cn/palmte/work/model/ProjectBudgetCostProjectManageDetail.java index 6a265ab..6a76667 100644 --- a/src/main/java/cn/palmte/work/model/ProjectBudgetCostProjectManageDetail.java +++ b/src/main/java/cn/palmte/work/model/ProjectBudgetCostProjectManageDetail.java @@ -41,6 +41,11 @@ public class ProjectBudgetCostProjectManageDetail { private String predictWhy; private String remark; + /** + * 是否可以被删除,有些项是默认的不可删除,用于页面判断是否显示删除按钮 + */ + private int deletable; + public Integer getId() { return id; } @@ -135,4 +140,12 @@ public class ProjectBudgetCostProjectManageDetail { } return price.multiply(new BigDecimal(amount)); } + + public int getDeletable() { + return deletable; + } + + public void setDeletable(int deletable) { + this.deletable = deletable; + } } \ No newline at end of file diff --git a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java index c0edc64..56dcf7c 100644 --- a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java +++ b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java @@ -3,9 +3,12 @@ package cn.palmte.work.service; import cn.palmte.work.bean.BudgetBean; import cn.palmte.work.model.*; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import top.jfunc.common.utils.CollectionUtil; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -28,6 +31,8 @@ public class ProjectBudgetService { @Autowired private ProjectBudgetCostProjectManageDetailRepository projectBudgetCostProjectManageDetailRepository; + @Value("#{'${fourcal.fixedprojectmanagedetails}'.split('\\|')}") + private String[] fixedProjectManageDetails; public void clearBudget(Project project){ List incomes = projectBudgetIncomeRepository.findAllByProjectIdEquals(project.getId()); @@ -283,6 +288,29 @@ public class ProjectBudgetService { } } public List getBudgetCostProjectManageDetail(Project project){ - return projectBudgetCostProjectManageDetailRepository.findAllByProjectIdEquals(project.getId()); + List projectManageDetails = projectBudgetCostProjectManageDetailRepository.findAllByProjectIdEquals(project.getId()); + + if(CollectionUtil.isNotEmpty(projectManageDetails)){ + return projectManageDetails; + }else { + //默认必填的明细 + return getFixedNotDeletable(); + } + } + + private List getFixedNotDeletable() { + List projectManageDetails = new ArrayList<>(6); + for (String fixedProjectManageDetail : fixedProjectManageDetails) { + String[] split = fixedProjectManageDetail.split(","); + ProjectBudgetCostProjectManageDetail detail = new ProjectBudgetCostProjectManageDetail(); + detail.setType(Integer.parseInt(split[0])); + detail.setName(split[1]); + detail.setPrice(new BigDecimal(0)); + detail.setAmount(0); + detail.setDeletable(0); + projectManageDetails.add(detail); + } + + return projectManageDetails; } } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 604d429..c36438a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -46,4 +46,7 @@ fourcal.excluded.pc.urls= fourcal.log.excluded.urls= -fourcal.slideInterval=1800000 \ No newline at end of file +fourcal.slideInterval=1800000 + + +fourcal.fixedprojectmanagedetails=1,\u4EBA\u5DE5\u8D39|1,\u603B\u90E8\u652F\u6491\u4EBA\u529B\u8D39\u7528|2,\u4EBA\u5458\u5DEE\u65C5\u8D39|2,\u4E1A\u52A1\u8D39\u7528|2,\u5546\u52A1\u53CA\u4E13\u9879\u9A8C\u6536\u8D39\u7528|2,\u529E\u516C\u8D39\u7528 \ No newline at end of file diff --git a/src/main/resources/static/assets/js/project_budget_cost.js b/src/main/resources/static/assets/js/project_budget_cost.js index 09f2f2e..25ca5b2 100644 --- a/src/main/resources/static/assets/js/project_budget_cost.js +++ b/src/main/resources/static/assets/js/project_budget_cost.js @@ -50,7 +50,7 @@ function appendTrCost() { ''+ ''+ ''+ - ''+ + ''+ ''; $("#costTable").append(template); //重新绑定删除事件和input修改事件 diff --git a/src/main/resources/static/assets/js/project_budget_cost_project_manage.js b/src/main/resources/static/assets/js/project_budget_cost_project_manage.js index 5516912..dee45ce 100644 --- a/src/main/resources/static/assets/js/project_budget_cost_project_manage.js +++ b/src/main/resources/static/assets/js/project_budget_cost_project_manage.js @@ -1,7 +1,7 @@ /** * 一个采购成本详情的字段 */ -COST_PROJECT_MANAGE_DETAIL_ARR=["type","name","detail","unit","amount","price","total","predictMethod","predictWhy","remark"]; +COST_PROJECT_MANAGE_DETAIL_ARR=["type","name","detail","unit","amount","price","total","predictMethod","predictWhy","remark","deletable"]; $(function () { $("#cost-project-manage-detail").click(function () { $('#my-prompt-cost-project-manage-detail').modal({ @@ -41,7 +41,8 @@ function appendTrCostProjectManage() { ' \n' + ' \n' + ' \n' + - ' \n' + + ' ' + + ' \n' + ' '; $("#costProjectManageTable").append(template); //重新绑定删除事件和input修改事件 diff --git a/src/main/resources/static/assets/js/project_budget_income.js b/src/main/resources/static/assets/js/project_budget_income.js index 64c850f..7185245 100644 --- a/src/main/resources/static/assets/js/project_budget_income.js +++ b/src/main/resources/static/assets/js/project_budget_income.js @@ -81,7 +81,7 @@ function appendTrIncome() { ' \n' + ' \n' + ' \n' + - ' \n' + + ' \n' + ' '; $("#incomeTable").append(template); //重新绑定删除事件和input修改事件 diff --git a/src/main/resources/templates/admin/project_budget_edit.ftl b/src/main/resources/templates/admin/project_budget_edit.ftl index d5b23fc..86c7105 100644 --- a/src/main/resources/templates/admin/project_budget_edit.ftl +++ b/src/main/resources/templates/admin/project_budget_edit.ftl @@ -442,14 +442,14 @@ - + - +