From 6c43043c2fcc32645c4ba207a73c6ff86b19f307 Mon Sep 17 00:00:00 2001
From: OathK1per <zhangypg@gmail.com>
Date: Mon, 12 Dec 2022 16:33:51 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9F=A5=E7=9C=8B=E4=B8=AD?=
 =?UTF-8?q?=E7=9A=84=E9=A1=B9=E7=9B=AE=E5=9F=BA=E6=9C=AC=E4=BF=A1=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../controller/backend/ProjectController.java |   9 +-
 .../work/service/ProjectBudgetService.java    |  25 +-
 .../work/service/ProjectEstimateService.java  |  55 +++-
 .../static/assets/js/project_budget.js        | 166 +++++++++++-
 .../templates/admin/project_approve.ftl       | 255 +++++++++++++++++-
 .../templates/admin/project_budget_edit.ftl   |   6 +-
 .../templates/admin/project_list.ftl          |   1 +
 7 files changed, 503 insertions(+), 14 deletions(-)

diff --git a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java
index 65efa03..6b7b529 100644
--- a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java
+++ b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java
@@ -424,8 +424,7 @@ public class ProjectController extends BaseController {
     @RequestMapping("/budgetEditSave")
     public String budgetEditSave(Project project, ProjectBudget projectBudget, BindingResult bindingResult, BudgetBean budgetBean, Map<String, Object> model) {
         Project projectInDb = projectService.getProject(project.getId());
-        projectBudgetRepository.save(projectBudget);
-        projectBudgetService.budgetEditSave(project, projectInDb, budgetBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT);
+        projectBudgetService.budgetEditSave(project, projectInDb, budgetBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT, projectBudget);
         return "redirect:/project/list";
     }
 
@@ -435,8 +434,7 @@ public class ProjectController extends BaseController {
     @RequestMapping("/budgetEditSaveAndApprove")
     public String budgetEditSaveAndApprove(Project project, ProjectBudget projectBudget, BudgetBean budgetBean, Map<String, Object> model) throws Exception {
         Project projectInDb = projectService.getProject(project.getId());
-        projectBudgetRepository.save(projectBudget);
-        projectBudgetService.budgetEditSaveAndApprove(project, projectInDb, budgetBean, InterfaceUtil.getAdmin());
+        projectBudgetService.budgetEditSaveAndApprove(project, projectInDb, budgetBean, InterfaceUtil.getAdmin(), projectBudget);
         return "redirect:/project/list";
     }
 
@@ -647,6 +645,9 @@ public class ProjectController extends BaseController {
         model.put("planEndStr", project.getPlanEndStr());
         model.put("planEndDate", project.getPlanEndStr());
 
+        ProjectBudget projectBudget = projectBudgetRepository.findFirstByProjectId(id);
+        model.put("projectBudget", projectBudget);
+
         //概算信息
         EstimateBean estimateBean = projectEstimateService.getEstimate(project);
         model.put("estimateBean", estimateBean);
diff --git a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java
index 851bb39..b8f981e 100644
--- a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java
+++ b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java
@@ -65,6 +65,8 @@ public class ProjectBudgetService {
     private ProjectBudgetService projectBudgetService;
     @Autowired
     private ProjectExtendRepository projectExtendRepository;
+    @Autowired
+    private ProjectBudgetRepository projectBudgetRepository;
 
     @Value("#{'${fourcal.fixedprojectmanagedetails}'.split('\\|')}")
     private String[] fixedProjectManageDetails;
@@ -865,10 +867,10 @@ public class ProjectBudgetService {
      * 编辑预算保存项目并审核
      */
     //@Transactional(rollbackFor = RuntimeException.class)
-    public void budgetEditSaveAndApprove(Project project, Project projectInDb, BudgetBean budgetBean, Admin admin) throws Exception {
+    public void budgetEditSaveAndApprove(Project project, Project projectInDb, BudgetBean budgetBean, Admin admin, ProjectBudget projectBudget) throws Exception {
         Integer approveStatusBudget = projectInDb.getApproveStatusBudget();
 
-        budgetEditSave(project, projectInDb, budgetBean, admin, ApproveStatusEnum.APPROVAL_PENDING);
+        budgetEditSave(project, projectInDb, budgetBean, admin, ApproveStatusEnum.APPROVAL_PENDING, projectBudget);
 
         budgetApprove(approveStatusBudget, projectInDb, admin);
     }
@@ -902,7 +904,7 @@ public class ProjectBudgetService {
      * 编辑预算保存项目
      */
     @Transactional(rollbackFor = RuntimeException.class)
-    public Project budgetEditSave(Project project, Project p, BudgetBean budgetBean, Admin admin, ApproveStatusEnum approveStatusEnum) {
+    public Project budgetEditSave(Project project, Project p, BudgetBean budgetBean, Admin admin, ApproveStatusEnum approveStatusEnum, ProjectBudget projectBudget) {
 //        Project p = projectService.estimateEditProject(project, projectInDb);
         p.setOtherName(project.getOtherName());
 
@@ -915,6 +917,8 @@ public class ProjectBudgetService {
         p.setStatusDesc(StatusEnum.BUDGET_ACCOUNTS.getStatusDesc());
         p.setApproveStatusBudget(approveStatusEnum.getApproveStatus());
         p = projectRepository.saveAndFlush(p);
+
+        saveProjectBudget(p, projectBudget);
         //清空重新保存概算信息
         clearBudget(p);
         saveBudget(p, budgetBean);
@@ -926,6 +930,21 @@ public class ProjectBudgetService {
         return p;
     }
 
+    private void saveProjectBudget(Project p, ProjectBudget projectBudget) {
+        ProjectBudget budget = projectBudgetRepository.findFirstByProjectId(p.getId());
+        projectBudget.setDeptIdBudget(budget.getDeptIdBudget());
+        projectBudget.setDeptNameBudget(budget.getDeptNameBudget());
+        projectBudget.setTypeDescBudget(TypeEnum.parseType(projectBudget.getTypeBudget()).getTypeDesc());
+        projectBudget.setUnderwrittenModeStrBudget(UnderwrittenModeEnum.parseUnderwrittenMode(projectBudget.getUnderwrittenModeBudget()).getUnderwrittenModeStr());
+        projectBudget.setCooperateTypeStrBudget(CooperateTypeEnum.parseCooperateType(projectBudget.getCooperateTypeBudget()).getCooperateTypeStr());
+        projectBudget.setCertaintyStrBudget(CertaintyEnum.parseCertainty(projectBudget.getCertaintyBudget()).getCertaintyStr());
+        projectBudget.setIndustryScenarioBudget(IndustrySceneEnum.parseScene(projectBudget.getIndustrySceneBudget()).getScenario());
+        projectBudget.setIsSecondStrBudget(IsSecondEnum.parseIsSecond(projectBudget.getIsSecondBudget()).getIsSecondStr());
+        projectBudget.setSignTypeStrBudget(SignTypeEnum.parseSignType(projectBudget.getSignTypeBudget()).getSignTypeStr());
+        projectBudget.setResolvePlanStrBudget(ResolvePlanEnum.parseResolvePlan(projectBudget.getResolvePlanBudget()).getResolvePlanStr());
+        projectBudgetRepository.save(projectBudget);
+    }
+
     private void saveProjectExtend(Project p) {
         ProjectExtend extend = projectExtendRepository.findByProjectId(p.getId());
         if (extend == null) {
diff --git a/src/main/java/cn/palmte/work/service/ProjectEstimateService.java b/src/main/java/cn/palmte/work/service/ProjectEstimateService.java
index 2c5e13c..9b1e66a 100644
--- a/src/main/java/cn/palmte/work/service/ProjectEstimateService.java
+++ b/src/main/java/cn/palmte/work/service/ProjectEstimateService.java
@@ -41,6 +41,8 @@ public class ProjectEstimateService {
     private ProjectVisibleRepository projectVisibleRepository;
     @Autowired
     private ProjectExtendRepository projectExtendRepository;
+    @Autowired
+    private ProjectBudgetRepository projectBudgetRepository;
 
     public void clearEstimate(Project project){
         List<ProjectEstimateIncome> incomes = projectEstimateIncomeRepository.findAllByProjectIdEquals(project.getId());
@@ -291,11 +293,62 @@ public class ProjectEstimateService {
 
         Integer approveStatusEstimate = projectInDb.getApproveStatusEstimate();
 
-        estimateEditSave(project, projectInDb, estimateBean, admin, ApproveStatusEnum.APPROVAL_PENDING);
+        Project estimateProject = estimateEditSave(project, projectInDb, estimateBean, admin, ApproveStatusEnum.APPROVAL_PENDING);
+
+        projectBudgetSave(estimateProject);
 
         estimateApprove(approveStatusEstimate, projectInDb, admin);
     }
 
+    private void projectBudgetSave(Project estimateProject) {
+        ProjectBudget projectBudget = new ProjectBudget();
+        projectBudget.setProjectId(estimateProject.getId());
+        projectBudget.setProjectNoBudget(estimateProject.getProjectNo());
+        projectBudget.setNameBudget(estimateProject.getName());
+        projectBudget.setTypeBudget(estimateProject.getType());
+        projectBudget.setTypeDescBudget(estimateProject.getTypeDesc());
+        projectBudget.setDeptIdBudget(estimateProject.getDeptId());
+        projectBudget.setDeptNameBudget(estimateProject.getDeptName());
+        projectBudget.setStartDateBudget(estimateProject.getStartDate());
+        projectBudget.setEndDateBudget(estimateProject.getEndDate());
+        projectBudget.setUnderwrittenModeBudget(estimateProject.getUnderwrittenMode());
+        projectBudget.setUnderwrittenModeStrBudget(estimateProject.getUnderwrittenModeStr());
+        projectBudget.setCooperateTypeBudget(estimateProject.getCooperateType());
+        projectBudget.setCooperateTypeStrBudget(estimateProject.getCooperateTypeStr());
+        projectBudget.setCollaboratorBudget(estimateProject.getCollaborator());
+        projectBudget.setCollaboratorUrlBudget(estimateProject.getCollaboratorUrl());
+        projectBudget.setCertaintyBudget(estimateProject.getCertainty());
+        projectBudget.setCertaintyStrBudget(estimateProject.getCertaintyStr());
+        projectBudget.setCustomerBudget(estimateProject.getCustomer());
+        projectBudget.setTerminalCustomerBudget(estimateProject.getTerminalCustomer());
+        projectBudget.setAdvanceInterestAmountBudget(estimateProject.getAdvanceInterestAmount());
+        projectBudget.setAdvancePeakAmountBudget(estimateProject.getAdvancePeakAmount());
+        projectBudget.setContractAmountBudget(estimateProject.getContractAmount());
+        projectBudget.setIndustryScenarioBudget(estimateProject.getIndustryScenario());
+        projectBudget.setIndustrySceneBudget(estimateProject.getIndustryScene());
+        projectBudget.setGrossProfitBudget(estimateProject.getGrossProfit());
+        projectBudget.setGrossProfitMarginBudget(estimateProject.getGrossProfitMargin());
+        projectBudget.setHuazhiProductAmountBudget(estimateProject.getHuazhiProductAmount());
+        projectBudget.setHuizhiProductAmountBudget(estimateProject.getHuizhiProductAmount());
+        projectBudget.setHuasanProductAmountBudget(estimateProject.getHuasanProductAmount());
+        projectBudget.setZiguangOtherAmountBudget(estimateProject.getZiguangOtherAmount());
+        projectBudget.setMainContractCollectionTermsBudget(estimateProject.getMainContractCollectionTerms());
+        projectBudget.setValueRiskBudget(estimateProject.getValueRisk());
+        projectBudget.setPrincipalBudget(estimateProject.getPrincipal());
+        projectBudget.setContractTimeBudget(estimateProject.getContractTime());
+        projectBudget.setBidsTimeBudget(estimateProject.getBidsTime());
+        projectBudget.setIsSecondBudget(estimateProject.getIsSecond());
+        projectBudget.setIsSecondStrBudget(estimateProject.getIsSecondStr());
+        projectBudget.setSignTypeBudget(estimateProject.getSignType());
+        projectBudget.setSignTypeStrBudget(estimateProject.getSignTypeStr());
+        projectBudget.setResolvePlanBudget(estimateProject.getResolvePlan());
+        projectBudget.setResolvePlanStrBudget(estimateProject.getResolvePlanStr());
+        projectBudget.setMainContractResolvePlanBudget(estimateProject.getMainContractResolvePlan());
+        projectBudget.setCalculationCollectionBudget(estimateProject.getCalculationCollection());
+
+        projectBudgetRepository.save(projectBudget);
+    }
+
     public void estimateApprove(Integer approveStatusEstimate, Project projectInDb, Admin admin) throws Exception {
         projectInstanceService.startEstimateProcessInstance(projectInDb, admin);
         int type = projectInDb.getType();
diff --git a/src/main/resources/static/assets/js/project_budget.js b/src/main/resources/static/assets/js/project_budget.js
index 38d7778..8b3f62f 100644
--- a/src/main/resources/static/assets/js/project_budget.js
+++ b/src/main/resources/static/assets/js/project_budget.js
@@ -201,7 +201,7 @@ $(function () {
         $("#saveApprove").attr('disabled', true);
         $("#collaboratorUrl").val($("#collaboratorUrl_span").text());
 
-        // checkIfFillIn();
+        checkIfFillIn();
 
         var dataIncome = collectData("am-modal-prompt-input-income");
         if (dataIncome.length <= 5) {
@@ -328,6 +328,170 @@ $(function () {
     };
 });
 
+//立项表填写检查
+function checkIfFillIn() {
+    var name = $("#nameBudget").val();
+    var startTime = $("#startDateBudget").val();
+    var endTime = $("#endDateBudget").val();
+    var underwrittenMode = $("#underwrittenModeBudget").val();
+    var collaborator = $("#collaboratorBudget").val();
+    var advanceInterestAmount = $("#advanceInterestAmountBudget").val();
+    var advancePeakAmount = $("#advancePeakAmountBudget").val();
+    var contractAmount = $("#contractAmountBudget").val();
+    var grossProfit = $("#grossProfitBudget").val();
+    var grossProfitMargin = $("#grossProfitMarginBudget").val();
+    var huizhiProductAmount = $("#huizhiProductAmountBudget").val();
+    var huazhiProductAmount = $("#huazhiProductAmountBudget").val();
+    var huasanProductAmount = $("#huasanProductAmountBudget").val();
+    var ziguangOtherAmount = $("#ziguangOtherAmountBudget").val();
+    // var industryScenario = $("#industryScenarioBudget").val();
+    var customer = $("#customerBudget").val();
+    var terminalCustomer = $("#terminalCustomerBudget").val();
+    var valueRisk = $("#valueRiskBudget").val();
+    var principal = $("#principalBudget").val();
+
+    if (name.length <= 0) {
+        window.confirm('项目名称不能为空');
+        check = 1;
+        return;
+    }
+
+    checkName();
+    if (result == 1) {
+        window.confirm('项目名称已存在');
+        check = 1;
+        return;
+    }
+
+    if (startTime.length <= 0) {
+        window.confirm('项目计划开始时间不能为空');
+        check = 1;
+        return;
+    }
+
+    if (endTime.length <= 0) {
+        window.confirm('项目计划结束时间不能为空');
+        check = 1;
+        return;
+    }
+
+    if (startTime > endTime) {
+        window.confirm('开始日期应早于结束日期');
+        check = 1;
+        return;
+    }
+
+    // if (projectNo.length <= 0) {
+    //     window.confirm('项目编号不能为空');
+    //     check = 1;
+    //     return;
+    // }
+    //
+    // checkProjectNo();
+    // if (projectNoResult == 1) {
+    //     window.confirm('项目编号已存在');
+    //     check = 1;
+    //     return;
+    // }
+
+    if (underwrittenMode == 1 && (collaborator == undefined || collaborator.length <= 0)) {
+        window.confirm('合作对象不能为空');
+        check = 1;
+        return;
+    }
+
+
+    if (underwrittenMode > 2 && (advanceInterestAmount == undefined || advanceInterestAmount.length <= 0)) {
+        window.confirm('垫资利息不能为空');
+        check = 1;
+        return;
+    }
+
+    if (underwrittenMode > 2 && (advancePeakAmount == undefined || advancePeakAmount.length <= 0)) {
+        window.confirm('垫资峰值不能为空');
+        check = 1;
+        return;
+    }
+
+    if (contractAmount == undefined || contractAmount.length <= 0) {
+        window.confirm('合同金额不能为空');
+        check = 1;
+        return;
+    }
+
+    if (grossProfit == undefined || grossProfit.length <= 0) {
+        window.confirm('项目毛利不能为空');
+        check = 1;
+        return;
+    }
+
+    if (grossProfitMargin == undefined || grossProfitMargin.length <= 0) {
+        window.confirm('项目毛利率不能为空');
+        check = 1;
+        return;
+    }
+
+    if (huizhiProductAmount == undefined || huizhiProductAmount.length <= 0) {
+        window.confirm('汇智产品金额不能为空');
+        check = 1;
+        return;
+    }
+
+    if (huazhiProductAmount == undefined || huazhiProductAmount.length <= 0) {
+        window.confirm('华智产品金额不能为空');
+        check = 1;
+        return;
+    }
+
+    if (huasanProductAmount == undefined || huasanProductAmount.length <= 0) {
+        window.confirm('华三产品金额不能为空');
+        check = 1;
+        return;
+    }
+
+    if (ziguangOtherAmount == undefined || ziguangOtherAmount.length <= 0) {
+        window.confirm('其他产品金额不能为空');
+        check = 1;
+        return;
+    }
+
+    // if (industryScenario == undefined || industryScenario.length <= 0) {
+    //     window.confirm('行业应用场景不能为空');
+    //     check = 1;
+    //     return;
+    // }
+
+    // if (mainContractCollectionTerms == undefined || mainContractCollectionTerms.length <= 0) {
+    //     window.confirm('主合同收款条款不能为空');
+    //     check = 1;
+    //     return;
+    // }
+
+    if (customer == undefined || customer.length <= 0) {
+        window.confirm('客户名称不能为空');
+        check = 1;
+        return;
+    }
+
+    if (terminalCustomer == undefined || terminalCustomer.length <= 0) {
+        window.confirm('最终用户名称不能为空');
+        check = 1;
+        return;
+    }
+
+    if (valueRisk == undefined || valueRisk.length <= 0) {
+        window.confirm('价值及风险不能为空');
+        check = 1;
+        return;
+    }
+
+    if (principal == undefined || principal.length <= 0) {
+        window.confirm('项目负责人不能为空');
+        check = 1;
+        return;
+    }
+}
+
 /**
  * 判断是否重名
  */
diff --git a/src/main/resources/templates/admin/project_approve.ftl b/src/main/resources/templates/admin/project_approve.ftl
index d3db35a..73fa5d9 100644
--- a/src/main/resources/templates/admin/project_approve.ftl
+++ b/src/main/resources/templates/admin/project_approve.ftl
@@ -442,7 +442,8 @@
                         </#if>
                         <div class="am-tabs palm-tabs inner" data-am-tabs id="subTab">
                             <ul class="am-tabs-nav am-nav am-nav-tabs palm-tabs-nav">
-                                <li class="am-active"><a href="#tab35">预算信息</a></li>
+                                <li class="am-active"><a href="#tab30">项目基本信息</a></li>
+                                <li><a href="#tab35">预算信息</a></li>
                                 <li><a href="#tab31">收入明细表</a></li>
                                 <li><a href="#tab36">收款计划表</a></li>
                                 <li><a href="#tab32">采购成本明细表</a></li>
@@ -451,6 +452,256 @@
                             </ul>
                         </div>
                         <div class="am-tabs-bd palm-tabs-bd">
+                            <div class="am-tab-panel am-fade am-in am-active" id="tab30">
+                                <input name="projectId" id="projectId" type="hidden" value="${projectBudget.projectId}" />
+                                <!--验证表单元素(validate) begin-->
+                                <table id="myTable" class="am-table am-table-bordered">
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="6" style="text-align: center">项目基本信息</th>
+                                    </tr>
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">部门名称:</span></th>
+                                        <td class="table-title" colspan="2" ><input readonly value="${projectBudget.deptNameBudget!}" /></td>
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">项目编号:</span></th>
+                                        <td class="table-title" colspan="2" ><input readonly value="${projectBudget.projectNoBudget!}" /></td>
+                                    </tr>
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">项目名称:</span></th>
+                                        <td class="table-title" colspan="5" >
+                                            <input readonly value="${projectBudget.nameBudget!}"  />
+                                        </td>
+                                    </tr>
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">项目类型:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <#if projectBudget.typeBudget??>
+                                                <#if (projectBudget.typeBudget) =1>
+                                                    <input readonly value="工程集成类"/>
+                                                <#elseif (projectBudget.typeBudget) =2>
+                                                    <input readonly value="设备集成类"/>
+                                                <#elseif (projectBudget.typeBudget) =3>
+                                                    <input readonly value="战略合作类"/>
+                                                </#if>
+                                            <#else>
+                                                <input readonly value=""/>
+                                            </#if>
+                                        </td>
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">项目计划开始时间:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <input readonly value="${(projectBudget.startDateBudget?string("yyyy-MM-dd"))!}">
+                                        </td>
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">项目计划结束时间:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <input readonly value="${(projectBudget.endDateBudget?string("yyyy-MM-dd"))!}">
+                                        </td>
+                                    </tr>
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">垫资模式:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <#if projectBudget.underwrittenModeBudget??>
+                                                <#if (projectBudget.underwrittenModeBudget) =1>
+                                                    <input readonly value="A类-不垫资"/>
+                                                <#elseif (projectBudget.underwrittenModeBudget) =3>
+                                                    <input readonly value="B类-垫资(账期覆盖)"/>
+                                                <#elseif (projectBudget.underwrittenModeBudget) =4>
+                                                    <input readonly value="C类-垫资(账期不覆盖)"/>
+                                                </#if>
+                                            <#else>
+                                                <input readonly value=""/>
+                                            </#if>
+                                        </td>
+
+                                        <th class="table-title" colspan="4" id="noUnder0b" <#if projectBudget.underwrittenModeBudget! gt 2>hidden</#if>></th>
+
+                                        <th class="table-title" colspan="1" id="noUnder1b" <#if projectBudget.underwrittenModeBudget! <= 2>hidden</#if>><span style="font-size: 15px">垫资利息:</span></th>
+                                        <td class="table-title" colspan="1" id="noUnder2b" <#if projectBudget.underwrittenModeBudget! <= 2>hidden</#if>>
+                                            <input readonly value="${Utils.format(projectBudget.advanceInterestAmountBudget)}" />
+                                        </td>
+                                        <th class="table-title" colspan="1" id="noUnder3b" <#if projectBudget.underwrittenModeBudget! <= 2>hidden</#if>><span style="font-size: 15px">垫资峰值:</span></th>
+                                        <td class="table-title" colspan="1" id="noUnder4b" <#if projectBudget.underwrittenModeBudget! <= 2>hidden</#if>>
+                                            <input readonly value="${Utils.format(projectBudget.advancePeakAmountBudget)}" />
+                                        </td>
+
+                                    </tr>
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">合作类型:</span></th>
+                                        <td class="table-title" colspan="1" id="spanMode" >
+                                            <#if projectBudget.cooperateTypeBudget??>
+                                                <#if (projectBudget.cooperateTypeBudget) =1>
+                                                    <input readonly value="战略合作类"/>
+                                                <#elseif (projectBudget.cooperateTypeBudget) =2>
+                                                    <input readonly value="非战略合作类"/>
+                                                </#if>
+                                            <#else>
+                                                <input readonly value=""/>
+                                            </#if>
+                                        </td>
+
+                                        <th class="table-title" colspan="1" id="coop1b" <#if projectBudget.cooperateTypeBudget! != 1>hidden</#if> ><span style="font-size: 15px">合作对象:</span></th>
+                                        <td class="table-title" colspan="3" id="coop2b" <#if projectBudget.cooperateTypeBudget! != 1>hidden</#if> >
+                                            <#if projectBudget.collaboratorUrlBudget?? && projectBudget.collaboratorUrlBudget != "">
+                                                <div class="am-form-file am-text-xs">
+                                                    <a href="${projectBudget.collaboratorUrlBudget!}" download>
+                                                        <i class="am-icon-cloud-upload"></i> 下载附件
+                                                    </a>
+                                                </div>
+                                            <#else>
+                                                <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
+                                            </#if>
+                                        </td>
+
+                                        <th class="table-title" colspan="4" id="coop0b" <#if projectBudget.cooperateTypeBudget! == 1>hidden</#if>></th>
+
+                                    </tr>
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">合同金额:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <input readonly value="${Utils.format(projectBudget.contractAmountBudget)}" />
+                                        </td>
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">项目毛利:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <input readonly value="${Utils.format(projectBudget.grossProfitBudget)}"  />
+                                        </td>
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">项目毛利率:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <input readonly value="${Utils.format(projectBudget.grossProfitMarginBudget)}"  />
+                                        </td>
+                                    </tr>
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">汇智产品金额:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <input readonly value="${Utils.format(projectBudget.huizhiProductAmountBudget, "0.00")}" />
+                                        </td>
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">华智产品金额:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <input readonly value="${Utils.format(projectBudget.huazhiProductAmountBudget, "0.00")}" />
+                                        </td>
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">华三产品金额:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <input readonly value="${Utils.format(projectBudget.huasanProductAmountBudget, "0.00")}" />
+                                        </td>
+                                    </tr>
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">其他产品金额:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <input readonly value="${Utils.format(projectBudget.ziguangOtherAmountBudget, "0.00")}" />
+                                        </td>
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">项目把握度:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <#if projectBudget.certaintyBudget??>
+                                                <#if (projectBudget.certaintyBudget) =1>
+                                                    <input readonly value="A:项目成功率80%-100%"/>
+                                                <#elseif (projectBudget.certaintyBudget) =2>
+                                                    <input readonly value="B:项目成功率60%-80%"/>
+                                                <#elseif (projectBudget.certaintyBudget) =3>
+                                                    <input readonly value="C:项目成功率40%-60%"/>
+                                                </#if>
+                                            <#else>
+                                                <input readonly value=""/>
+                                            </#if>
+                                        </td>
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">行业场景应用:</span></th>
+                                        <td class="table-title" colspan="1" ><input readonly value="${projectBudget.industryScenarioBudget!}"/></td>
+                                        </td>
+                                    </tr>
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">项目解决方案:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <#if projectBudget.resolvePlanBudget??>
+                                                <#if (projectBudget.resolvePlanBudget!) =1>
+                                                    <input readonly value="公共服务(智慧交通、雪亮工程、治安防控体系等)"/>
+                                                <#elseif (projectBudget.resolvePlanBudget!) =2>
+                                                    <input readonly value="泛行业(智慧园区、智慧医疗、智慧工地等)"/>
+                                                <#elseif (projectBudget.resolvePlanBudget!) =3>
+                                                    <input readonly value="其他生态"/>
+                                                </#if>
+                                            <#else>
+                                                <input readonly value=""/>
+                                            </#if>
+                                        </td>
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">客户名称:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <input readonly value="${projectBudget.customerBudget!}"  />
+                                        </td>
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">最终用户名称:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <input readonly value="${projectBudget.terminalCustomerBudget!}"  />
+                                        </td>
+                                    </tr>
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">价值及风险:</span></th>
+                                        <td class="table-title" colspan="5" >
+                                    <textarea rows="5" cols="20" id="valueRiskBudget" name="valueRiskBudget" maxlength="1000"
+                                              class="am-input" style="border-style:none;" data-validate-async data-validation-message="请输入价值及风险"
+                                              placeholder="请输入价值及风险"
+                                    >${projectBudget.valueRiskBudget!}</textarea>
+                                        </td>
+                                    </tr>
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">项目负责人:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <input readonly value="${projectBudget.principalBudget!}" />
+                                        </td>
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">预计合同签订时间:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <input readonly value="${(projectBudget.contractTimeBudget?string("yyyy-MM-dd"))!}">
+                                        </td>
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">项目计划招标时间:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <input readonly value="${(projectBudget.bidsTimeBudget?string("yyyy-MM-dd"))!}">
+                                        </td>
+                                    </tr>
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">是否二次合作:</span></th>
+                                        <td class="table-title" colspan="1" >
+                                            <#if projectBudget.isSecondBudget??>
+                                                <#if (projectBudget.isSecondBudget!) =1>
+                                                    <input readonly value="是"/>
+                                                <#elseif (projectBudget.isSecondBudget!) =2>
+                                                    <input readonly value="否"/>
+                                                <#else >
+                                                    <input readonly value=""/>
+                                                </#if>
+                                            <#else>
+                                                <input readonly value=""/>
+                                            </#if>
+                                        </td>
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">直签:</span></th>
+                                        <td class="table-title" colspan="3" >
+                                            <#if projectBudget.signTypeBudget??>
+                                                <#if (projectBudget.signTypeBudget!) =1>
+                                                    <input readonly value="紫光汇智直接投标"/>
+                                                <#else >
+                                                    <input readonly value=""/>
+                                                </#if>
+                                            <#else>
+                                                <input readonly value=""/>
+                                            </#if>
+                                        </td>
+                                    </tr>
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">主合同收款条款:</span></th>
+                                        <td class="table-title" colspan="5" >
+                                            <textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled"
+                                            >${projectBudget.mainContractCollectionTermsBudget!}</textarea>
+                                        </td>
+                                    </tr>
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">主合同具体解决方案:</span></th>
+                                        <td class="table-title" colspan="5" >
+                                            <textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled"
+                                            >${projectBudget.mainContractResolvePlanBudget!}</textarea>
+                                        </td>
+                                    </tr>
+                                    <tr class="am-text-nowrap">
+                                        <th class="table-title" colspan="1" ><span style="font-size: 15px">计收计划:</span></th>
+                                        <td class="table-title" colspan="5" >
+                                            <textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled"
+                                            >${projectBudget.calculationCollectionBudget!}</textarea>
+                                        </td>
+                                    </tr>
+                                </table>
+                            </div>
                             <div class="am-tab-panel am-fade am-in" id="tab31">
                                 <#--<span class="am-text-lg">收入明细表</span>-->
                                 <div class="fixed-section">
@@ -1084,7 +1335,7 @@
                             <span class="am-text-primary"><a style="cursor: pointer"  id="cost-detail">采购成本明细表</a></span>
                             <span class="am-text-primary"><a style="cursor: pointer"  id="cost-project-manage-detail">项目管理成本表</a></span>
                             <span class="am-text-primary budget-plan-detail"><a style="cursor: pointer">资金计划表</a></span>-->
-                            <div class="am-tab-panel am-fade am-in am-active am-scrollable-horizontal" id="tab35">
+                            <div class="am-tab-panel am-fade am-in am-scrollable-horizontal" id="tab35">
                                 <div class="am-u-sm-12 am-u-md-12" style="padding:0 1.6rem 1.6rem 1rem;margin:0;">
                                     <div class="am-btn-toolbar" style="padding-left:.5rem;">
                                         <div class="am-btn-group am-btn-group-xs">
diff --git a/src/main/resources/templates/admin/project_budget_edit.ftl b/src/main/resources/templates/admin/project_budget_edit.ftl
index 6f7995b..a3318bd 100644
--- a/src/main/resources/templates/admin/project_budget_edit.ftl
+++ b/src/main/resources/templates/admin/project_budget_edit.ftl
@@ -322,10 +322,10 @@
                             <th class="table-title" colspan="6" style="text-align: center">项目基本信息</th>
                         </tr>
                         <tr class="am-text-nowrap">
-                            <th class="table-title" colspan="1" ><span style="color: red;">*</span><span style="font-size: 15px">部门名称:</span></th>
+                            <th class="table-title" colspan="1" ><span style="font-size: 15px">部门名称:</span></th>
                             <td class="table-title" colspan="2" ><input class="table-inline" readonly value="${projectBudget.deptNameBudget!}" /></td>
-                            <th class="table-title" colspan="1" ><span style="color: red;">*</span><span style="font-size: 15px">项目编号:</span></th>
-                            <td class="table-title" colspan="2" ><input class="table-inline" readonly value="${projectBudget.projectNoBudget!}" /></td>
+                            <th class="table-title" colspan="1" ><span style="font-size: 15px">项目编号:</span></th>
+                            <td class="table-title" colspan="2" ><input class="table-inline" id="projectNoBudget" name="projectNoBudget" readonly value="${projectBudget.projectNoBudget!}" /></td>
                         </tr>
                         <tr class="am-text-nowrap">
                             <th class="table-title" colspan="1" ><span style="color: red;">*</span><span style="font-size: 15px">项目名称:</span></th>
diff --git a/src/main/resources/templates/admin/project_list.ftl b/src/main/resources/templates/admin/project_list.ftl
index 4ba05cb..9de391e 100644
--- a/src/main/resources/templates/admin/project_list.ftl
+++ b/src/main/resources/templates/admin/project_list.ftl
@@ -79,6 +79,7 @@
                     <input type="hidden" id="keywords" name="keywords" value='${keywords!""}'/>
                     <input type="hidden" id="pageNumber" name="pageNumber" value='${pageNumber!}'/>
                     <input type="hidden" id="orderTypeStr" name="orderTypeStr" value='${orderTypeStr!""}'/>
+                    <input type="hidden" id="pager" name="pager" value='${pager!}'/>
                     <style>
                         .flex-row {
                             display: -webkit-box;