Explorar o código

储备管理(新)内容修改

wangqiang %!s(int64=2) %!d(string=hai) anos
pai
achega
32d570b980
Modificáronse 61 ficheiros con 6287 adicións e 1651 borrados
  1. 495 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/entity/PreliminaryPrepartion.java
  2. 38 8
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/entity/ReserveProcessProject.java
  3. 50 64
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/entity/ReserveSummary.java
  4. 85 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/PreliminaryPrepartionMapper.java
  5. 2 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/ReserveProcessProjectMapper.java
  6. 319 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/xml/PreliminaryPrepartionMapper.xml
  7. 44 9
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/xml/ReserveProcessProjectMapper.xml
  8. 12 6
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/xml/SummaryStatisticMapper.xml
  9. 115 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/service/PreliminaryPrepartionService.java
  10. 4 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/service/ReserveProcessProjectService.java
  11. 192 86
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/utils/ReserveProcessProjectExportUtil.java
  12. 95 32
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/utils/ReserveProcessProjectProUtil.java
  13. 326 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/web/PreliminaryPrepartionController.java
  14. 10 1
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/web/ProcessController.java
  15. 17 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/web/ReserveProcessProjectController.java
  16. 96 27
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/web/SummaryStatisticController.java
  17. 0 107
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/entity/BudgetStats.java
  18. 272 27
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/entity/Cable.java
  19. 3 19
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/entity/ConstructeScale.java
  20. 135 17
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/entity/ProgressStats.java
  21. 16 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/CableMapper.java
  22. 18 19
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/xml/BudgetStatsMapper.xml
  23. 44 7
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/xml/CableMapper.xml
  24. 1 2
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/xml/ConstructeScaleMapper.xml
  25. 17 5
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/xml/ProgressStatsMapper.xml
  26. 24 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/service/CableService.java
  27. 286 255
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/util/ExcelExportUtil.java
  28. 64 63
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/util/ExcelImportUtil.java
  29. 0 26
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/web/BudgetStatsController.java
  30. 226 65
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/web/CableController.java
  31. 6 6
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/web/ConstructeScaleController.java
  32. 157 84
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/web/ProgressStatsController.java
  33. 34 5
      src/main/java/com/jeeplus/modules/sg/raiseCapital/web/RaiseCapitalController.java
  34. BIN=BIN
      src/main/resources/freemarker/excelmodel/budgetStats.xlsx
  35. BIN=BIN
      src/main/resources/freemarker/excelmodel/cable.xlsx
  36. BIN=BIN
      src/main/resources/freemarker/excelmodel/constructeScale.xlsx
  37. BIN=BIN
      src/main/resources/freemarker/excelmodel/preliminaryPrepartion.xlsx
  38. BIN=BIN
      src/main/resources/freemarker/excelmodel/progressStats.xlsx
  39. BIN=BIN
      src/main/resources/freemarker/excelmodel/projectReserveManagement.xlsx
  40. BIN=BIN
      src/main/resources/freemarker/excelmodel/summaryStatistics.xlsx
  41. 244 0
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/raiseCapital/aerialConductorForm.jsp
  42. 592 0
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/raiseCapital/cableSectionForm.jsp
  43. 386 333
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/raiseCapital/raiseCapital.js
  44. 82 84
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/raiseCapital/raiseCapital.jsp
  45. 346 0
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/preliminaryPrepartion/reserveManagementForm.jsp
  46. 338 0
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/preliminaryPrepartion/reserveManagementInformation.js
  47. 107 0
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/preliminaryPrepartion/reserveManagementInformation.jsp
  48. 349 0
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/preliminaryPrepartion/reserveManagementModifyByzz.jsp
  49. 325 0
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/preliminaryPrepartion/reserveManagementView.jsp
  50. 34 8
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/reserveManage/reserveManagementForm.jsp
  51. 5 2
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/reserveManage/reserveManagementInformation.js
  52. 31 8
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/reserveManage/reserveManagementModifyByzz.jsp
  53. 24 1
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/reserveManage/reserveManagementView.jsp
  54. 22 1
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/designUnit.jsp
  55. 32 32
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/reserveManagementInformation.js
  56. 45 38
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/reserveManagementModifyByzz.jsp
  57. 33 138
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/reserveManagementView.jsp
  58. 11 26
      src/main/webapp/webpage/modules/cg/statisticalTable/budgetStats/budgetStats.js
  59. 38 9
      src/main/webapp/webpage/modules/cg/statisticalTable/cable/cable.js
  60. 4 4
      src/main/webapp/webpage/modules/cg/statisticalTable/constructeScale/constructeScale.js
  61. 36 27
      src/main/webapp/webpage/modules/cg/statisticalTable/progressStats/progressStats.js

+ 495 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/entity/PreliminaryPrepartion.java

@@ -0,0 +1,495 @@
+package com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity;
+
+import com.jeeplus.core.persistence.DataEntity;
+
+/**
+ * 储备项目前期准备工作
+ * @author: 王强
+ * @create: 2023-03-27 16:31
+ **/
+public class PreliminaryPrepartion extends DataEntity<PreliminaryPrepartion> {
+
+    private String projectYear;             //项目年份
+    private String projectNature;           //项目性质
+    private String demandUnit;              //需求单位
+    private String district;                //区域
+    private String projectGroup;            //项目分组
+    private String projectManager;          //项目经理
+    private String reserveBatches;          //储备批次
+    private String blockSupply;             //供电区域
+    private String gridNumber;              //网格编号
+    private String cellNumber;              //单元格编号
+    private String projectReserveId;        //项目储备编号
+    private String projectName;             //项目名称
+    private String constructionNecessityAndContent;           //建设必要性及内容
+    private String substationName;           //变电站名称
+    private String circuitName;              //线路名称
+    private String netRackProjectDivide;     //网架项目划分
+    private String requirementType;          //需求类型
+    private String projectType;              //项目类型
+    private String costEstimate;             //费用估算
+    private String basicRemarks;             //备注
+
+
+    private String comprehensiveProject;     //项目综合可实施性
+    private String officeDifficulty;         //政处难度
+    private String officeProgress;           //政处描述
+    private String powerFailureDifficulty;   //停电难度
+    private String powerFailureDescribe;     //停电描述
+    private String otherProblemDifficulty;   //其他问题难度
+    private String otherProblemDescribe;     //其他问题描述
+    private String runPlanRequire;           //是否需重跑方案
+    private String programChangeDescription; //方案变更说明
+    private String discloseRemarks;          //储备项目交底信息-备注
+
+
+    private String reserveProgress;          //储备进度
+    private String civilEngineeringWorkload; //是否含土建工作量
+    private String engineeringWorkloadStatistic; //土建工作量统计
+    private String poleWorkload;             //是否含立杆工作量
+    private String poleWorkloadStatistic;    //立杆工作量统计
+    private String budgetIncludesTax;        //预算含税
+    private String budgetNotIncludesTax;     //预算不含税
+    private String constructCostExcludeTax;  //施工费(不含税)
+    private String quantityRemarks;  //储备项目工程量统计备注
+
+    private String reserveProjectPromotyPlan;  //储备项目推进计划(项目管理中心)
+    private String unitCompleteProgress;  //项目管理单位完成进度
+    private String demandUnitReserveProjectPromotyPlan;  //储备项目推进计划(需求单位)
+    private String demandUnitCompleteProgress;  //需求单位完成进度
+    private String fireAdministrativeDepartment;  //是否启动政处
+    private String administrativeProgress;           //政处进度
+    private String preliminaryPreparationRemarks;  //前期准备工作备注
+
+    private String demandUnitPriority;  //需求单位优先级
+    private String implementPlan;  //是否纳入实施计划
+    private String implementBatch;  //初定实施批次
+    private String constructionUnit;  //初定施工单位
+    private String planAndApprovalDraw;  //是否出规划报批图
+    private String drawOfficeDrawn;  //是否出正式图
+    private String projectApprovalRemarks;  //立项安排备注
+
+    public String getProjectYear() {
+        return projectYear;
+    }
+
+    public void setProjectYear(String projectYear) {
+        this.projectYear = projectYear;
+    }
+
+    public String getProjectNature() {
+        return projectNature;
+    }
+
+    public void setProjectNature(String projectNature) {
+        this.projectNature = projectNature;
+    }
+
+    public String getDemandUnit() {
+        return demandUnit;
+    }
+
+    public void setDemandUnit(String demandUnit) {
+        this.demandUnit = demandUnit;
+    }
+
+    public String getDistrict() {
+        return district;
+    }
+
+    public void setDistrict(String district) {
+        this.district = district;
+    }
+
+    public String getProjectGroup() {
+        return projectGroup;
+    }
+
+    public void setProjectGroup(String projectGroup) {
+        this.projectGroup = projectGroup;
+    }
+
+    public String getProjectManager() {
+        return projectManager;
+    }
+
+    public void setProjectManager(String projectManager) {
+        this.projectManager = projectManager;
+    }
+
+    public String getReserveBatches() {
+        return reserveBatches;
+    }
+
+    public void setReserveBatches(String reserveBatches) {
+        this.reserveBatches = reserveBatches;
+    }
+
+    public String getBlockSupply() {
+        return blockSupply;
+    }
+
+    public void setBlockSupply(String blockSupply) {
+        this.blockSupply = blockSupply;
+    }
+
+    public String getGridNumber() {
+        return gridNumber;
+    }
+
+    public void setGridNumber(String gridNumber) {
+        this.gridNumber = gridNumber;
+    }
+
+    public String getCellNumber() {
+        return cellNumber;
+    }
+
+    public void setCellNumber(String cellNumber) {
+        this.cellNumber = cellNumber;
+    }
+
+    public String getProjectReserveId() {
+        return projectReserveId;
+    }
+
+    public void setProjectReserveId(String projectReserveId) {
+        this.projectReserveId = projectReserveId;
+    }
+
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
+    public String getConstructionNecessityAndContent() {
+        return constructionNecessityAndContent;
+    }
+
+    public void setConstructionNecessityAndContent(String constructionNecessityAndContent) {
+        this.constructionNecessityAndContent = constructionNecessityAndContent;
+    }
+
+    public String getSubstationName() {
+        return substationName;
+    }
+
+    public void setSubstationName(String substationName) {
+        this.substationName = substationName;
+    }
+
+    public String getCircuitName() {
+        return circuitName;
+    }
+
+    public void setCircuitName(String circuitName) {
+        this.circuitName = circuitName;
+    }
+
+    public String getNetRackProjectDivide() {
+        return netRackProjectDivide;
+    }
+
+    public void setNetRackProjectDivide(String netRackProjectDivide) {
+        this.netRackProjectDivide = netRackProjectDivide;
+    }
+
+    public String getRequirementType() {
+        return requirementType;
+    }
+
+    public void setRequirementType(String requirementType) {
+        this.requirementType = requirementType;
+    }
+
+    public String getProjectType() {
+        return projectType;
+    }
+
+    public void setProjectType(String projectType) {
+        this.projectType = projectType;
+    }
+
+    public String getCostEstimate() {
+        return costEstimate;
+    }
+
+    public void setCostEstimate(String costEstimate) {
+        this.costEstimate = costEstimate;
+    }
+
+    public String getBasicRemarks() {
+        return basicRemarks;
+    }
+
+    public void setBasicRemarks(String basicRemarks) {
+        this.basicRemarks = basicRemarks;
+    }
+
+    public String getComprehensiveProject() {
+        return comprehensiveProject;
+    }
+
+    public void setComprehensiveProject(String comprehensiveProject) {
+        this.comprehensiveProject = comprehensiveProject;
+    }
+
+    public String getOfficeDifficulty() {
+        return officeDifficulty;
+    }
+
+    public void setOfficeDifficulty(String officeDifficulty) {
+        this.officeDifficulty = officeDifficulty;
+    }
+
+    public String getOfficeProgress() {
+        return officeProgress;
+    }
+
+    public void setOfficeProgress(String officeProgress) {
+        this.officeProgress = officeProgress;
+    }
+
+    public String getPowerFailureDifficulty() {
+        return powerFailureDifficulty;
+    }
+
+    public void setPowerFailureDifficulty(String powerFailureDifficulty) {
+        this.powerFailureDifficulty = powerFailureDifficulty;
+    }
+
+    public String getPowerFailureDescribe() {
+        return powerFailureDescribe;
+    }
+
+    public void setPowerFailureDescribe(String powerFailureDescribe) {
+        this.powerFailureDescribe = powerFailureDescribe;
+    }
+
+    public String getOtherProblemDifficulty() {
+        return otherProblemDifficulty;
+    }
+
+    public void setOtherProblemDifficulty(String otherProblemDifficulty) {
+        this.otherProblemDifficulty = otherProblemDifficulty;
+    }
+
+    public String getOtherProblemDescribe() {
+        return otherProblemDescribe;
+    }
+
+    public void setOtherProblemDescribe(String otherProblemDescribe) {
+        this.otherProblemDescribe = otherProblemDescribe;
+    }
+
+    public String getRunPlanRequire() {
+        return runPlanRequire;
+    }
+
+    public void setRunPlanRequire(String runPlanRequire) {
+        this.runPlanRequire = runPlanRequire;
+    }
+
+    public String getProgramChangeDescription() {
+        return programChangeDescription;
+    }
+
+    public void setProgramChangeDescription(String programChangeDescription) {
+        this.programChangeDescription = programChangeDescription;
+    }
+
+    public String getDiscloseRemarks() {
+        return discloseRemarks;
+    }
+
+    public void setDiscloseRemarks(String discloseRemarks) {
+        this.discloseRemarks = discloseRemarks;
+    }
+
+    public String getReserveProgress() {
+        return reserveProgress;
+    }
+
+    public void setReserveProgress(String reserveProgress) {
+        this.reserveProgress = reserveProgress;
+    }
+
+    public String getCivilEngineeringWorkload() {
+        return civilEngineeringWorkload;
+    }
+
+    public void setCivilEngineeringWorkload(String civilEngineeringWorkload) {
+        this.civilEngineeringWorkload = civilEngineeringWorkload;
+    }
+
+    public String getEngineeringWorkloadStatistic() {
+        return engineeringWorkloadStatistic;
+    }
+
+    public void setEngineeringWorkloadStatistic(String engineeringWorkloadStatistic) {
+        this.engineeringWorkloadStatistic = engineeringWorkloadStatistic;
+    }
+
+    public String getPoleWorkload() {
+        return poleWorkload;
+    }
+
+    public void setPoleWorkload(String poleWorkload) {
+        this.poleWorkload = poleWorkload;
+    }
+
+    public String getPoleWorkloadStatistic() {
+        return poleWorkloadStatistic;
+    }
+
+    public void setPoleWorkloadStatistic(String poleWorkloadStatistic) {
+        this.poleWorkloadStatistic = poleWorkloadStatistic;
+    }
+
+    public String getBudgetIncludesTax() {
+        return budgetIncludesTax;
+    }
+
+    public void setBudgetIncludesTax(String budgetIncludesTax) {
+        this.budgetIncludesTax = budgetIncludesTax;
+    }
+
+    public String getBudgetNotIncludesTax() {
+        return budgetNotIncludesTax;
+    }
+
+    public void setBudgetNotIncludesTax(String budgetNotIncludesTax) {
+        this.budgetNotIncludesTax = budgetNotIncludesTax;
+    }
+
+    public String getConstructCostExcludeTax() {
+        return constructCostExcludeTax;
+    }
+
+    public void setConstructCostExcludeTax(String constructCostExcludeTax) {
+        this.constructCostExcludeTax = constructCostExcludeTax;
+    }
+
+    public String getQuantityRemarks() {
+        return quantityRemarks;
+    }
+
+    public void setQuantityRemarks(String quantityRemarks) {
+        this.quantityRemarks = quantityRemarks;
+    }
+
+    public String getReserveProjectPromotyPlan() {
+        return reserveProjectPromotyPlan;
+    }
+
+    public void setReserveProjectPromotyPlan(String reserveProjectPromotyPlan) {
+        this.reserveProjectPromotyPlan = reserveProjectPromotyPlan;
+    }
+
+    public String getUnitCompleteProgress() {
+        return unitCompleteProgress;
+    }
+
+    public void setUnitCompleteProgress(String unitCompleteProgress) {
+        this.unitCompleteProgress = unitCompleteProgress;
+    }
+
+    public String getDemandUnitReserveProjectPromotyPlan() {
+        return demandUnitReserveProjectPromotyPlan;
+    }
+
+    public void setDemandUnitReserveProjectPromotyPlan(String demandUnitReserveProjectPromotyPlan) {
+        this.demandUnitReserveProjectPromotyPlan = demandUnitReserveProjectPromotyPlan;
+    }
+
+    public String getDemandUnitCompleteProgress() {
+        return demandUnitCompleteProgress;
+    }
+
+    public void setDemandUnitCompleteProgress(String demandUnitCompleteProgress) {
+        this.demandUnitCompleteProgress = demandUnitCompleteProgress;
+    }
+
+    public String getFireAdministrativeDepartment() {
+        return fireAdministrativeDepartment;
+    }
+
+    public void setFireAdministrativeDepartment(String fireAdministrativeDepartment) {
+        this.fireAdministrativeDepartment = fireAdministrativeDepartment;
+    }
+
+    public String getAdministrativeProgress() {
+        return administrativeProgress;
+    }
+
+    public void setAdministrativeProgress(String administrativeProgress) {
+        this.administrativeProgress = administrativeProgress;
+    }
+
+    public String getPreliminaryPreparationRemarks() {
+        return preliminaryPreparationRemarks;
+    }
+
+    public void setPreliminaryPreparationRemarks(String preliminaryPreparationRemarks) {
+        this.preliminaryPreparationRemarks = preliminaryPreparationRemarks;
+    }
+
+    public String getDemandUnitPriority() {
+        return demandUnitPriority;
+    }
+
+    public void setDemandUnitPriority(String demandUnitPriority) {
+        this.demandUnitPriority = demandUnitPriority;
+    }
+
+    public String getImplementPlan() {
+        return implementPlan;
+    }
+
+    public void setImplementPlan(String implementPlan) {
+        this.implementPlan = implementPlan;
+    }
+
+    public String getImplementBatch() {
+        return implementBatch;
+    }
+
+    public void setImplementBatch(String implementBatch) {
+        this.implementBatch = implementBatch;
+    }
+
+    public String getConstructionUnit() {
+        return constructionUnit;
+    }
+
+    public void setConstructionUnit(String constructionUnit) {
+        this.constructionUnit = constructionUnit;
+    }
+
+    public String getPlanAndApprovalDraw() {
+        return planAndApprovalDraw;
+    }
+
+    public void setPlanAndApprovalDraw(String planAndApprovalDraw) {
+        this.planAndApprovalDraw = planAndApprovalDraw;
+    }
+
+    public String getDrawOfficeDrawn() {
+        return drawOfficeDrawn;
+    }
+
+    public void setDrawOfficeDrawn(String drawOfficeDrawn) {
+        this.drawOfficeDrawn = drawOfficeDrawn;
+    }
+
+    public String getProjectApprovalRemarks() {
+        return projectApprovalRemarks;
+    }
+
+    public void setProjectApprovalRemarks(String projectApprovalRemarks) {
+        this.projectApprovalRemarks = projectApprovalRemarks;
+    }
+}

+ 38 - 8
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/entity/ReserveProcessProject.java

@@ -32,14 +32,17 @@ public class ReserveProcessProject extends DataEntity<ReserveProcessProject> {
     private String requester;                //需求提报人
     private String ownerReserveFullTime;     //业主储备专职
     private String ownerDistributionNerworkFullTime;           //业主配网专职
+    private String ownerReserveProjectManagre; //业主储备项目经理
     private String ownerProjectManager;      //业主项目经理
     private String materialSoleDuty;         //业主物资专职
-    private String technicalStaff;           //技经人员
+    private String technicalStaff;           //业主技经人员
     private String operationAndMaintenancePersonnel;           //运维人员
     private String designer;                 //设计人员
     private String budgetPreparer;           //概算编制人员
     private int processStatus;           //流程状态 (0:未开始,1:进行中,2:完成,3:取消,4:待定 )
     private String uninterruptedWorkSurveyPersonnel;           //不停电作业查勘人员
+    private String clearOrNot;           //是否取消
+    private String noStartTheDesign;     //否启动设计交底流程
 
     @ExcelField(title="项目年份", align=2, sort=1)
     public String getProjectYear() {
@@ -209,10 +212,19 @@ public class ReserveProcessProject extends DataEntity<ReserveProcessProject> {
         return ownerDistributionNerworkFullTime;
     }
 
+    @ExcelField(title="业主储备项目经理", align=2, sort=22)
+    public String getOwnerReserveProjectManagre() {
+        return ownerReserveProjectManagre;
+    }
+
+    public void setOwnerReserveProjectManagre(String ownerReserveProjectManagre) {
+        this.ownerReserveProjectManagre = ownerReserveProjectManagre;
+    }
+
     public void setOwnerDistributionNerworkFullTime(String ownerDistributionNerworkFullTime) {
         this.ownerDistributionNerworkFullTime = ownerDistributionNerworkFullTime;
     }
-    @ExcelField(title="业主项目经理", align=2, sort=22)
+    @ExcelField(title="业主项目经理", align=2, sort=23)
     public String getOwnerProjectManager() {
         return ownerProjectManager;
     }
@@ -220,7 +232,7 @@ public class ReserveProcessProject extends DataEntity<ReserveProcessProject> {
     public void setOwnerProjectManager(String ownerProjectManager) {
         this.ownerProjectManager = ownerProjectManager;
     }
-    @ExcelField(title="业主物资专职", align=2, sort=23)
+    @ExcelField(title="业主物资专职", align=2, sort=24)
     public String getMaterialSoleDuty() {
         return materialSoleDuty;
     }
@@ -229,7 +241,7 @@ public class ReserveProcessProject extends DataEntity<ReserveProcessProject> {
         this.materialSoleDuty = materialSoleDuty;
     }
 
-    @ExcelField(title="技经人员", align=2, sort=24)
+    @ExcelField(title="业主技经人员", align=2, sort=25)
     public String getTechnicalStaff() {
         return technicalStaff;
     }
@@ -237,7 +249,7 @@ public class ReserveProcessProject extends DataEntity<ReserveProcessProject> {
     public void setTechnicalStaff(String technicalStaff) {
         this.technicalStaff = technicalStaff;
     }
-    @ExcelField(title="运维人员", align=2, sort=25)
+    @ExcelField(title="运维人员", align=2, sort=26)
     public String getOperationAndMaintenancePersonnel() {
         return operationAndMaintenancePersonnel;
     }
@@ -245,7 +257,7 @@ public class ReserveProcessProject extends DataEntity<ReserveProcessProject> {
     public void setOperationAndMaintenancePersonnel(String operationAndMaintenancePersonnel) {
         this.operationAndMaintenancePersonnel = operationAndMaintenancePersonnel;
     }
-    @ExcelField(title="设计人员", align=2, sort=26)
+    @ExcelField(title="设计人员", align=2, sort=27)
     public String getDesigner() {
         return designer;
     }
@@ -253,7 +265,7 @@ public class ReserveProcessProject extends DataEntity<ReserveProcessProject> {
     public void setDesigner(String designer) {
         this.designer = designer;
     }
-    @ExcelField(title="概算编制人员", align=2, sort=27)
+    @ExcelField(title="概算编制人员", align=2, sort=28)
     public String getBudgetPreparer() {
         return budgetPreparer;
     }
@@ -270,7 +282,7 @@ public class ReserveProcessProject extends DataEntity<ReserveProcessProject> {
         this.processStatus = processStatus;
     }
 
-    @ExcelField(title="不停电作业查勘人", align=2, sort=28)
+    @ExcelField(title="不停电作业查勘人", align=2, sort=29)
     public String getUninterruptedWorkSurveyPersonnel() {
         return uninterruptedWorkSurveyPersonnel;
     }
@@ -278,4 +290,22 @@ public class ReserveProcessProject extends DataEntity<ReserveProcessProject> {
     public void setUninterruptedWorkSurveyPersonnel(String uninterruptedWorkSurveyPersonnel) {
         this.uninterruptedWorkSurveyPersonnel = uninterruptedWorkSurveyPersonnel;
     }
+
+    @ExcelField(title="是否取消", align=2, sort=30)
+    public String getClearOrNot() {
+        return clearOrNot;
+    }
+
+    public void setClearOrNot(String clearOrNot) {
+        this.clearOrNot = clearOrNot;
+    }
+
+    @ExcelField(title="否启动设计交底流程", align=2, sort=31)
+    public String getNoStartTheDesign() {
+        return noStartTheDesign;
+    }
+
+    public void setNoStartTheDesign(String noStartTheDesign) {
+        this.noStartTheDesign = noStartTheDesign;
+    }
 }

+ 50 - 64
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/entity/ReserveSummary.java

@@ -28,9 +28,9 @@ public class ReserveSummary extends DataEntity<ReserveSummary> {
     private String requirementType;          //需求类型
     private String projectType;              //项目类型
     private String costEstimate;             //费用估算
-    private String budgetPreparationStatus;  //预算编制状态
-    private String budgetIncludesTax;        //预算含税
-    private String budgetNotIncludesTax;     //预算不含税
+//    private String budgetPreparationStatus;  //预算编制状态
+//    private String budgetIncludesTax;        //预算含税
+//    private String budgetNotIncludesTax;     //预算不含税
     private String basicRemarks;             //储备项目基本信息-备注
     private String reserveProgress;          //储备进度
     private String includeReserve;           //是否纳入储备
@@ -38,7 +38,7 @@ public class ReserveSummary extends DataEntity<ReserveSummary> {
     private String reasonForCancel;          //取消原因说明
     private String comprehensiveProject;     //项目综合可实施性
     private String officeDifficulty;         //政处难度
-    private String officeProgress;           //政处进度
+    private String officeProgress;           //政处描述
     private String powerFailureDifficulty;   //停电难度
     private String powerFailureDescribe;     //停电描述
     private String otherProblemDifficulty;   //其他问题难度
@@ -46,6 +46,7 @@ public class ReserveSummary extends DataEntity<ReserveSummary> {
     private String runPlanRequire;           //是否需重跑方案
     private String programChangeDescription; //方案变更说明
     private String discloseRemarks;          //储备项目交底信息-备注
+
     private String demandUnitPriority;       //需求单位优先级
     private String preliminaryArrangement;   //立项初安排
     private String initialImplementBatch;    //初定实施批次
@@ -63,6 +64,7 @@ public class ReserveSummary extends DataEntity<ReserveSummary> {
     private String constructionUnit;         //施工单位
     private String drawOfficeDrawn;          //是否出正式图
     private String projectInitiateRemarks;   //立项筛选-备注
+    private String startDesignOrNot;            //是否启动设计
 
     private String pretrialEstimateAmount;  //概算信息(审前)- 总概算金额(含税)
     private String pretrialEstimateAmountExcludeTax;  //概算信息(审前)- 总概算金额(不含税)
@@ -74,6 +76,14 @@ public class ReserveSummary extends DataEntity<ReserveSummary> {
     public ReserveSummary() {
     }
 
+    public String getBasicRemarks() {
+        return basicRemarks;
+    }
+
+    public void setBasicRemarks(String basicRemarks) {
+        this.basicRemarks = basicRemarks;
+    }
+
     public String getProcessStatus() {
         return processStatus;
     }
@@ -234,38 +244,6 @@ public class ReserveSummary extends DataEntity<ReserveSummary> {
         this.costEstimate = costEstimate;
     }
 
-    public String getBudgetPreparationStatus() {
-        return budgetPreparationStatus;
-    }
-
-    public void setBudgetPreparationStatus(String budgetPreparationStatus) {
-        this.budgetPreparationStatus = budgetPreparationStatus;
-    }
-
-    public String getBudgetIncludesTax() {
-        return budgetIncludesTax;
-    }
-
-    public void setBudgetIncludesTax(String budgetIncludesTax) {
-        this.budgetIncludesTax = budgetIncludesTax;
-    }
-
-    public String getBudgetNotIncludesTax() {
-        return budgetNotIncludesTax;
-    }
-
-    public void setBudgetNotIncludesTax(String budgetNotIncludesTax) {
-        this.budgetNotIncludesTax = budgetNotIncludesTax;
-    }
-
-    public String getBasicRemarks() {
-        return basicRemarks;
-    }
-
-    public void setBasicRemarks(String basicRemarks) {
-        this.basicRemarks = basicRemarks;
-    }
-
     public String getReserveProgress() {
         return reserveProgress;
     }
@@ -370,6 +348,38 @@ public class ReserveSummary extends DataEntity<ReserveSummary> {
         this.discloseRemarks = discloseRemarks;
     }
 
+    public String getPretrialEstimateAmount() {
+        return pretrialEstimateAmount;
+    }
+
+    public void setPretrialEstimateAmount(String pretrialEstimateAmount) {
+        this.pretrialEstimateAmount = pretrialEstimateAmount;
+    }
+
+    public String getPretrialEstimateAmountExcludeTax() {
+        return pretrialEstimateAmountExcludeTax;
+    }
+
+    public void setPretrialEstimateAmountExcludeTax(String pretrialEstimateAmountExcludeTax) {
+        this.pretrialEstimateAmountExcludeTax = pretrialEstimateAmountExcludeTax;
+    }
+
+    public String getAfterTrialEstimateAmount() {
+        return afterTrialEstimateAmount;
+    }
+
+    public void setAfterTrialEstimateAmount(String afterTrialEstimateAmount) {
+        this.afterTrialEstimateAmount = afterTrialEstimateAmount;
+    }
+
+    public String getAfterTrialEstimateAmountExcludeTax() {
+        return afterTrialEstimateAmountExcludeTax;
+    }
+
+    public void setAfterTrialEstimateAmountExcludeTax(String afterTrialEstimateAmountExcludeTax) {
+        this.afterTrialEstimateAmountExcludeTax = afterTrialEstimateAmountExcludeTax;
+    }
+
     public String getDemandUnitPriority() {
         return demandUnitPriority;
     }
@@ -506,35 +516,11 @@ public class ReserveSummary extends DataEntity<ReserveSummary> {
         this.projectInitiateRemarks = projectInitiateRemarks;
     }
 
-    public String getPretrialEstimateAmount() {
-        return pretrialEstimateAmount;
-    }
-
-    public void setPretrialEstimateAmount(String pretrialEstimateAmount) {
-        this.pretrialEstimateAmount = pretrialEstimateAmount;
-    }
-
-    public String getPretrialEstimateAmountExcludeTax() {
-        return pretrialEstimateAmountExcludeTax;
-    }
-
-    public void setPretrialEstimateAmountExcludeTax(String pretrialEstimateAmountExcludeTax) {
-        this.pretrialEstimateAmountExcludeTax = pretrialEstimateAmountExcludeTax;
-    }
-
-    public String getAfterTrialEstimateAmount() {
-        return afterTrialEstimateAmount;
-    }
-
-    public void setAfterTrialEstimateAmount(String afterTrialEstimateAmount) {
-        this.afterTrialEstimateAmount = afterTrialEstimateAmount;
+    public String getStartDesignOrNot() {
+        return startDesignOrNot;
     }
 
-    public String getAfterTrialEstimateAmountExcludeTax() {
-        return afterTrialEstimateAmountExcludeTax;
-    }
-
-    public void setAfterTrialEstimateAmountExcludeTax(String afterTrialEstimateAmountExcludeTax) {
-        this.afterTrialEstimateAmountExcludeTax = afterTrialEstimateAmountExcludeTax;
+    public void setStartDesignOrNot(String startDesignOrNot) {
+        this.startDesignOrNot = startDesignOrNot;
     }
 }

+ 85 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/PreliminaryPrepartionMapper.java

@@ -0,0 +1,85 @@
+package com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.mapper;
+
+import com.jeeplus.core.persistence.BaseMapper;
+import com.jeeplus.core.persistence.annotation.MyBatisMapper;
+import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.PreliminaryPrepartion;
+import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.History;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 储备项目前期准备工作 mapper
+ * @author: 王强
+ * @create: 2023-03-27 16:30
+ **/
+@MyBatisMapper
+public interface PreliminaryPrepartionMapper extends BaseMapper<PreliminaryPrepartion> {
+
+    /**
+     * 批量添加储备项目前期准备工作信息
+     * @param list
+     * @return
+     */
+    void insertList(@Param("list") List<PreliminaryPrepartion> list);
+
+    /**
+     * 根据项目储备编号删除储备项目前期准备工作信息
+     * @param projectReserveId
+     */
+    void deleteByProjectReserveId(String projectReserveId);
+
+    /**
+     * 根据项目储备id查数据
+     * @param proId
+     * @return
+     */
+    PreliminaryPrepartion getByProId(String proId);
+
+    /**
+     * 导出数据查询
+     * @param reserveManagement
+     * @return
+     */
+    List<PreliminaryPrepartion> exportFindList(PreliminaryPrepartion reserveManagement);
+
+    /**
+     * 根据projectReserveId查出proc_ins_id
+     * @param projectReserveId
+     * @return
+     */
+    String getByProjectReserveId(String projectReserveId);
+
+    /**
+     * 根据executeId查出历史节点信息
+     * @param executeId
+     * @return
+     */
+    List<History> getHistoryByExecuteId(String executeId);
+
+    /**
+     * 根据executeId查出当前节点的名称
+     * @param executeId
+     * @return
+     */
+    String getByExecuteId(String executeId);
+
+    /**
+     * 获取所有的  项目储备编号
+     * @return
+     */
+    List<String> getAllProId();
+
+    /**
+     * 从基本数据表中获取所有的  项目储备编号
+     * @return
+     */
+    List<String> getAllProId2();
+
+    /**
+     * 根据项目储备id查询项目信息
+     * @param reserveManagement
+     * @return
+     */
+    PreliminaryPrepartion queryByProjectReserveId(PreliminaryPrepartion reserveManagement);
+}

+ 2 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/ReserveProcessProjectMapper.java

@@ -153,4 +153,6 @@ public interface ReserveProcessProjectMapper extends BaseMapper<ReserveProcessPr
      * @param procInsId 流程实例id
      * */
     ReserveProcessProject findCgUser(String procInsId);
+
+    List<ReserveProcessProject> getAllName2();
 }

+ 319 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/xml/PreliminaryPrepartionMapper.xml

@@ -0,0 +1,319 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.mapper.PreliminaryPrepartionMapper">
+
+    <sql id="reserveManagementColumn">
+        a.id as "id",
+        a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.del_flag AS "delFlag",
+		a.civilEngineeringWorkload,
+		a.quantityRemarks,
+		a.reserveProjectPromotyPlan,
+		a.unitCompleteProgress,
+		a.demandUnitReserveProjectPromotyPlan,
+		a.demandUnitCompleteProgress,
+		a.preliminaryPreparationRemarks,
+		a.demandUnitPriority,
+		a.implementPlan,
+		a.implementBatch,
+		a.constructionUnit,
+		a.planAndApprovalDraw,
+		a.drawOfficeDrawn,
+		a.projectApprovalRemarks
+    </sql>
+
+    <sql id="reserveManagementColumns">
+        a.id as "id",
+        a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.del_flag AS "delFlag",
+		a.projectYear,
+		a.projectNature,
+		a.demandUnit,
+		a.district,
+		a.projectGroup,
+		a.reserveBatches,
+		a.blockSupply,
+		a.gridNumber,
+		a.cellNumber,
+		a.projectReserveId,
+		a.projectName,
+		a.constructionNecessityAndContent,
+		a.substationName,
+		a.circuitName,
+		a.netRackProjectDivide,
+		a.requirementType,
+		a.costEstimate,
+		a.basicRemarks,
+		IFNULL(b.civilEngineeringWorkload,"") as civilEngineeringWorkload,
+		IFNULL(b.quantityRemarks,"") as quantityRemarks,
+		IFNULL(b.reserveProjectPromotyPlan,"") as reserveProjectPromotyPlan,
+		IFNULL(b.unitCompleteProgress,"") as unitCompleteProgress,
+		IFNULL(b.demandUnitReserveProjectPromotyPlan,"") as demandUnitReserveProjectPromotyPlan,
+		IFNULL(b.demandUnitCompleteProgress,"") as demandUnitCompleteProgress,
+		IFNULL(b.preliminaryPreparationRemarks,"") as preliminaryPreparationRemarks,
+		IFNULL(b.demandUnitPriority,"") as demandUnitPriority,
+		IFNULL(b.implementPlan,"") as implementPlan,
+		IFNULL(b.implementBatch,"") as implementBatch,
+		IFNULL(b.constructionUnit,"") as constructionUnit,
+		IFNULL(b.planAndApprovalDraw,"") as planAndApprovalDraw,
+		IFNULL(b.drawOfficeDrawn,"") as drawOfficeDrawn,
+		IFNULL(b.projectApprovalRemarks,"") as projectApprovalRemarks,
+		IFNULL(cg.afterTrialEstimateAmount,"") as budgetIncludesTax,
+		IFNULL(cg.afterTrialEstimateAmountExcludeTax,"") as budgetNotIncludesTax,
+		IFNULL(cg.afterTrialConstructeConsts,"") as constructCostExcludeTax,
+		IFNULL(c.comprehensiveProject,"") as comprehensiveProject,
+		IFNULL(c.powerFailureDifficulty,"") as powerFailureDifficulty,
+		IFNULL(c.powerFailureDescribe,"") as powerFailureDescribe,
+		IFNULL(c.otherProblemDifficulty,"") as otherProblemDifficulty,
+		IFNULL(c.otherProblemDescribe,"") as otherProblemDescribe,
+		IFNULL(c.runPlanRequire,"") as runPlanRequire,
+		IFNULL(c.programChangeDescription,"") as programChangeDescription,
+		IFNULL(c.discloseRemarks,"") as discloseRemarks,
+		IFNULL(d.administrativeDifficulty,"") as officeDifficulty,
+        IFNULL(d.officeProgress,"") as officeProgress
+
+    </sql>
+
+    <insert id="insert">
+        insert into cg_reserve_preliminary_preparations (
+        id,
+        create_by,
+		create_date,
+		update_by,
+		update_date,
+		del_flag,
+		projectReserveId,
+		civilEngineeringWorkload,
+		quantityRemarks,
+		reserveProjectPromotyPlan,
+		unitCompleteProgress,
+		demandUnitReserveProjectPromotyPlan,
+		demandUnitCompleteProgress,
+		preliminaryPreparationRemarks,
+		demandUnitPriority,
+		implementPlan,
+		implementBatch,
+		constructionUnit,
+		planAndApprovalDraw,
+		drawOfficeDrawn,
+		projectApprovalRemarks
+        )
+        values
+            (
+            #{id},
+            #{createBy.id},
+            #{createDate},
+            #{updateBy.id},
+            #{updateDate},
+            #{delFlag},
+            #{projectReserveId},
+            #{civilEngineeringWorkload},
+            #{quantityRemarks},
+            #{reserveProjectPromotyPlan},
+            #{unitCompleteProgress},
+            #{demandUnitReserveProjectPromotyPlan},
+            #{demandUnitCompleteProgress},
+            #{preliminaryPreparationRemarks},
+            #{demandUnitPriority},
+            #{implementPlan},
+            #{implementBatch},
+            #{constructionUnit},
+            #{planAndApprovalDraw},
+            #{drawOfficeDrawn},
+            #{projectApprovalRemarks}
+            )
+    </insert>
+
+    <insert id="insertList">
+        insert into cg_reserve_preliminary_preparations (
+        id,
+        create_by,
+        create_date,
+        update_by,
+        update_date,
+        del_flag,
+        projectReserveId,
+        civilEngineeringWorkload,
+        quantityRemarks,
+        reserveProjectPromotyPlan,
+        unitCompleteProgress,
+        demandUnitReserveProjectPromotyPlan,
+        demandUnitCompleteProgress,
+        preliminaryPreparationRemarks,
+        demandUnitPriority,
+        implementPlan,
+        implementBatch,
+        constructionUnit,
+        planAndApprovalDraw,
+        drawOfficeDrawn,
+        projectApprovalRemarks
+        )
+        values
+        <foreach collection="list" item="item" index="index" separator="," >
+            (
+            #{item.id},
+            #{item.createBy.id},
+            #{item.createDate},
+            #{item.updateBy.id},
+            #{item.updateDate},
+            #{item.delFlag},
+            #{item.projectReserveId},
+            #{item.civilEngineeringWorkload},
+            #{item.quantityRemarks},
+            #{item.reserveProjectPromotyPlan},
+            #{item.unitCompleteProgress},
+            #{item.demandUnitReserveProjectPromotyPlan},
+            #{item.demandUnitCompleteProgress},
+            #{item.preliminaryPreparationRemarks},
+            #{item.demandUnitPriority},
+            #{item.implementPlan},
+            #{item.implementBatch},
+            #{item.constructionUnit},
+            #{item.planAndApprovalDraw},
+            #{item.drawOfficeDrawn},
+            #{item.projectApprovalRemarks}
+            )
+        </foreach>
+    </insert>
+
+    <update id="update">
+		update
+        cg_reserve_preliminary_preparations
+        set
+        update_by = #{updateBy.id},
+        update_date = #{updateDate},
+        projectReserveId = #{projectReserveId},
+		civilEngineeringWorkload = #{civilEngineeringWorkload},
+		quantityRemarks = #{quantityRemarks},
+		reserveProjectPromotyPlan = #{reserveProjectPromotyPlan},
+		unitCompleteProgress = #{unitCompleteProgress},
+		demandUnitReserveProjectPromotyPlan = #{demandUnitReserveProjectPromotyPlan},
+		demandUnitCompleteProgress = #{demandUnitCompleteProgress},
+		preliminaryPreparationRemarks = #{preliminaryPreparationRemarks},
+		demandUnitPriority = #{demandUnitPriority},
+		implementPlan = #{implementPlan},
+		implementBatch = #{implementBatch},
+		constructionUnit = #{constructionUnit},
+		planAndApprovalDraw = #{planAndApprovalDraw},
+		drawOfficeDrawn = #{drawOfficeDrawn},
+		projectApprovalRemarks = #{projectApprovalRemarks}
+        where id = #{id}
+	</update>
+
+    <delete id="deleteByProjectReserveId">
+        delete from cg_reserve_preliminary_preparations where projectReserveId = #{projectReserveId}
+    </delete>
+
+
+    <select id="get" resultType="com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.PreliminaryPrepartion">
+        select
+        <include refid="reserveManagementColumns"/>
+        from cg_reserve_process a
+        left join cg_reserve_preliminary_preparations b
+        on a.projectReserveId = b.projectReserveId
+        left join cg_budget_stats cg
+        on cg.projectReserveId = a.projectReserveId
+        left join cg_reserve_summary_statistics c
+        on a.projectReserveId = c.projectReserveId
+        left join cg_reserve_policy_handing_information d
+        on a.projectReserveId = d.projectReserveId
+        where a.id = #{id}
+    </select>
+
+    <select id="findList" resultType="com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.PreliminaryPrepartion">
+        select
+        <include refid="reserveManagementColumns"/>
+        from cg_reserve_process a
+        left join cg_reserve_preliminary_preparations b
+        on a.projectReserveId = b.projectReserveId
+        left join cg_budget_stats cg
+        on cg.projectReserveId = a.projectReserveId
+        left join cg_reserve_summary_statistics c
+        on a.projectReserveId = c.projectReserveId
+        left join cg_reserve_policy_handing_information d
+        on a.projectReserveId = d.projectReserveId
+        <where>
+            a.del_flag = 0
+            <if test="projectReserveId!=null and projectReserveId!=''">
+                and a.projectReserveId like concat('%', #{projectReserveId}, '%')
+            </if>
+            <if test="projectName!=null and projectName!=''">
+                and a.projectName like concat('%', #{projectName}, '%')
+            </if>
+            <if test="dataScope != null and dataScope != ''">
+                ${dataScope}
+            </if>
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+                ORDER BY a.update_date DESC
+            </otherwise>
+        </choose>
+    </select>
+    <select id="exportFindList"
+            resultType="com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.PreliminaryPrepartion">
+        select
+        <include refid="reserveManagementColumns"/>
+        from cg_reserve_process a
+        left join cg_reserve_preliminary_preparations b
+        on a.projectReserveId = b.projectReserveId
+        left join cg_budget_stats cg
+        on cg.projectReserveId = a.projectReserveId
+        left join cg_reserve_summary_statistics c
+        on a.projectReserveId = c.projectReserveId
+        left join cg_reserve_policy_handing_information d
+        on a.projectReserveId = d.projectReserveId
+        <where>
+            a.del_flag = 0
+            <if test="projectReserveId!=null and projectReserveId!=''">
+                and a.projectReserveId like concat('%', #{projectReserveId}, '%')
+            </if>
+            <if test="projectName!=null and projectName!=''">
+                and a.projectName like concat('%', #{projectName}, '%')
+            </if>
+            <if test="dataScope != null and dataScope != ''">
+                ${dataScope}
+            </if>
+        </where>
+        ORDER BY a.update_date DESC
+    </select>
+    <select id="getByProjectReserveId" resultType="java.lang.String">
+        SELECT proc_ins_id from cg_personnel_activiti where projectReserveId = #{projectReserveId}
+    </select>
+    <select id="getHistoryByExecuteId"
+            resultType="com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.History">
+        select ACT_NAME_ as name,START_TIME_ as startTime,END_TIME_ as endTime from act_hi_actinst
+        WHERE EXECUTION_ID_ = #{executeId} and ACT_NAME_ is not null ORDER BY startTime desc
+    </select>
+    <select id="getByExecuteId" resultType="java.lang.String">
+        SELECT NAME_ FROM `act_ru_task` WHERE EXECUTION_ID_ = #{executeId}
+    </select>
+    <select id="getByProId"
+            resultType="com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.PreliminaryPrepartion">
+        select <include refid="reserveManagementColumn"/>
+        from cg_reserve_preliminary_preparations a where a.projectReserveId = #{proId}
+    </select>
+    <select id="getAllProId" resultType="java.lang.String">
+        select projectReserveId from cg_reserve_preliminary_preparations
+    </select>
+    <select id="getAllProId2" resultType="java.lang.String">
+        select projectReserveId from cg_reserve_process
+    </select>
+    <select id="queryByProjectReserveId"
+            resultType="com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.PreliminaryPrepartion">
+        select
+        <include refid="reserveManagementColumn"/>
+        from cg_reserve_preliminary_preparations a
+        where a.projectReserveId = #{projectReserveId}
+    </select>
+
+</mapper>

+ 44 - 9
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/xml/ReserveProcessProjectMapper.xml

@@ -29,6 +29,7 @@
 		a.basicRemarks,
 		a.requester,
 		a.ownerReserveFullTime,
+		a.ownerReserveProjectManagre,
 		a.ownerDistributionNerworkFullTime,
 		a.ownerProjectManager,
 		a.materialSoleDuty,
@@ -36,7 +37,9 @@
 		a.operationAndMaintenancePersonnel,
 		a.designer,
 		a.budgetPreparer,
-		a.processStatus
+		a.processStatus,
+		a.clearOrNot,
+        a.noStartTheDesign
     </sql>
 
     <insert id="insert">
@@ -67,6 +70,7 @@
         basicRemarks,
         requester,
         ownerReserveFullTime,
+        ownerReserveProjectManagre,
         ownerDistributionNerworkFullTime,
         ownerProjectManager,
         materialSoleDuty,
@@ -74,7 +78,9 @@
         operationAndMaintenancePersonnel,
         designer,
         budgetPreparer,
-        processStatus
+        processStatus,
+        clearOrNot,
+        noStartTheDesign
         )
         values
             (
@@ -104,6 +110,7 @@
             #{basicRemarks},
             #{requester},
             #{ownerReserveFullTime},
+            #{ownerReserveProjectManagre},
             #{ownerDistributionNerworkFullTime},
             #{ownerProjectManager},
             #{materialSoleDuty},
@@ -111,7 +118,9 @@
             #{operationAndMaintenancePersonnel},
             #{designer},
             #{budgetPreparer},
-            #{processStatus}
+            #{processStatus},
+            #{clearOrNot},
+            #{noStartTheDesign}
             )
     </insert>
     <insert id="insertList">
@@ -142,6 +151,7 @@
         basicRemarks,
         requester,
         ownerReserveFullTime,
+        ownerReserveProjectManagre,
         ownerDistributionNerworkFullTime,
         ownerProjectManager,
         materialSoleDuty,
@@ -149,7 +159,9 @@
         operationAndMaintenancePersonnel,
         designer,
         budgetPreparer,
-        processStatus
+        processStatus,
+        clearOrNot,
+        noStartTheDesign
         )
         values
         <foreach collection="list" item="item" index="index" separator="," >
@@ -180,6 +192,7 @@
             #{item.basicRemarks},
             #{item.requester},
             #{item.ownerReserveFullTime},
+            #{item.ownerReserveProjectManagre},
             #{item.ownerDistributionNerworkFullTime},
             #{item.ownerProjectManager},
             #{item.materialSoleDuty},
@@ -187,7 +200,9 @@
             #{item.operationAndMaintenancePersonnel},
             #{item.designer},
             #{item.budgetPreparer},
-            #{item.processStatus}
+            #{item.processStatus},
+            #{item.clearOrNot},
+            #{item.noStartTheDesign}
             )
         </foreach>
     </insert>
@@ -215,6 +230,7 @@
         basicRemarks = #{basicRemarks},
         requester = #{requester},
         ownerReserveFullTime = #{ownerReserveFullTime},
+        ownerReserveProjectManagre = #{ownerReserveProjectManagre},
         ownerDistributionNerworkFullTime = #{ownerDistributionNerworkFullTime},
         ownerProjectManager = #{ownerProjectManager},
         materialSoleDuty = #{materialSoleDuty},
@@ -222,7 +238,9 @@
         operationAndMaintenancePersonnel = #{operationAndMaintenancePersonnel},
         designer = #{designer},
         budgetPreparer = #{budgetPreparer},
-        processStatus = #{processStatus}
+        processStatus = #{processStatus},
+        clearOrNot = #{clearOrNot},
+        noStartTheDesign = #{noStartTheDesign}
         where id = #{id}
 	</update>
 
@@ -251,6 +269,9 @@
         <if test="ownerReserveFullTime != null and ownerReserveFullTime != ''">
             ownerReserveFullTime = #{ownerReserveFullTime},
         </if>
+        <if test="ownerReserveProjectManagre != null and ownerReserveProjectManagre != ''">
+            ownerReserveProjectManagre = #{ownerReserveProjectManagre},
+        </if>
         <if test="ownerDistributionNerworkFullTime != null and ownerDistributionNerworkFullTime != ''">
             ownerDistributionNerworkFullTime = #{ownerDistributionNerworkFullTime},
         </if>
@@ -270,7 +291,9 @@
             designer = #{designer},
         </if>
         budgetPreparer = #{budgetPreparer},
-        processStatus = #{processStatus}
+        processStatus = #{processStatus},
+        clearOrNot = #{clearOrNot},
+        noStartTheDesign = #{noStartTheDesign}
 --         uninterruptedWorkSurveyPersonnel = #{uninterruptedWorkSurveyPersonnel}
         where id = #{id}
     </update>
@@ -299,6 +322,9 @@
         <if test="ownerReserveFullTime != null and ownerReserveFullTime != ''">
             ownerReserveFullTime = #{ownerReserveFullTime},
         </if>
+        <if test="ownerReserveProjectManagre != null and ownerReserveProjectManagre != ''">
+            ownerReserveProjectManagre = #{ownerReserveProjectManagre},
+        </if>
         <if test="ownerDistributionNerworkFullTime != null and ownerDistributionNerworkFullTime != ''">
             ownerDistributionNerworkFullTime = #{ownerDistributionNerworkFullTime},
         </if>
@@ -340,7 +366,7 @@
             resultType="com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.ReserveProcessProject">
         select
         <include refid="reserveManagementColumns"/>
-        ,siteSurveyor as 'uninterruptedWorkSurveyPersonnel'
+        ,b.siteSurveyor as 'uninterruptedWorkSurveyPersonnel'
         from cg_reserve_process a
         left join cg_reserve_electricity_work_information b
         on a.projectReserveId = b.projectReserveId
@@ -437,6 +463,7 @@
 		basicRemarks,
 		requester,
 		ownerReserveFullTime,
+		ownerReserveProjectManagre,
 		ownerDistributionNerworkFullTime,
 		ownerProjectManager,
 		materialSoleDuty,
@@ -445,6 +472,8 @@
 		designer,
 		budgetPreparer,
 		processStatus,
+		clearOrNot,
+        noStartTheDesign
 -- 		uninterruptedWorkSurveyPersonnel
         from cg_reserve_process
         where projectReserveId = (select projectReserveId from cb_personnel_activiti where proc_ins_id = #{procInsId})
@@ -453,14 +482,17 @@
     <select id="get" resultType="com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.ReserveProcessProject">
         select
         <include refid="reserveManagementColumns"/>
+        ,b.siteSurveyor as 'uninterruptedWorkSurveyPersonnel'
         from cg_reserve_process a
+        left join cg_reserve_electricity_work_information b
+        on a.projectReserveId = b.projectReserveId
         where a.id = #{id}
     </select>
 
     <select id="findList" resultType="com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.ReserveProcessProject">
         select
         <include refid="reserveManagementColumns"/>
-        ,siteSurveyor as 'uninterruptedWorkSurveyPersonnel'
+        ,b.siteSurveyor as 'uninterruptedWorkSurveyPersonnel'
         from cg_reserve_process a
         left join cg_reserve_electricity_work_information b
         on a.projectReserveId = b.projectReserveId
@@ -552,4 +584,7 @@
             </if>
         </where>
     </select>
+    <select id="getAllName2" resultType="com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.ReserveProcessProject">
+        SELECT projectName,constructionNecessityAndContent FROM cg_reserve_process
+    </select>
 </mapper>

+ 12 - 6
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/xml/SummaryStatisticMapper.xml

@@ -27,6 +27,7 @@
 		a.requirementType,
 		a.costEstimate,
 		a.basicRemarks,
+		b.startDesignOrNot as startDesignOrNot,
 		IFNULL(b.includeReserve,"") as includeReserve,
 		IFNULL(b.reasonForCancel,"") as reasonForCancel,
 		IFNULL(b.comprehensiveProject,"") as comprehensiveProject,
@@ -54,7 +55,7 @@
 		IFNULL(b.drawOfficeDrawn,"") as drawOfficeDrawn,
 		IFNULL(b.projectInitiateRemarks,"") as projectInitiateRemarks,
         a.ownerProjectManager as 'projectManager',
-        IFNULL(c.administrativeDifficulty,"") as administrativeDifficulty,
+        IFNULL(c.administrativeDifficulty,"") as officeDifficulty,
         IFNULL(c.officeProgress,"") as officeProgress,
         IFNULL(cg.pretrialEstimateAmount,"") as pretrialEstimateAmount,
         IFNULL(cg.pretrialEstimateAmountExcludeTax,"") as pretrialEstimateAmountExcludeTax,
@@ -97,7 +98,8 @@
 		implementationBatch,
 		constructionUnit,
 		drawOfficeDrawn,
-		projectInitiateRemarks
+		projectInitiateRemarks,
+		startDesignOrNot
         )
         values
             (
@@ -133,7 +135,8 @@
             #{implementationBatch},
             #{constructionUnit},
             #{drawOfficeDrawn},
-            #{projectInitiateRemarks}
+            #{projectInitiateRemarks},
+            #{startDesignOrNot}
             )
     </insert>
 
@@ -171,7 +174,8 @@
         implementationBatch,
         constructionUnit,
         drawOfficeDrawn,
-        projectInitiateRemarks
+        projectInitiateRemarks,
+        startDesignOrNot
         )
         values
         <foreach collection="list" item="item" index="index" separator="," >
@@ -208,7 +212,8 @@
             #{item.implementationBatch},
             #{item.constructionUnit},
             #{item.drawOfficeDrawn},
-            #{item.projectInitiateRemarks}
+            #{item.projectInitiateRemarks},
+            #{item.startDesignOrNot}
             )
         </foreach>
     </insert>
@@ -244,7 +249,8 @@
         implementationBatch = #{implementationBatch},
         constructionUnit = #{constructionUnit},
         drawOfficeDrawn = #{drawOfficeDrawn},
-        projectInitiateRemarks = #{projectInitiateRemarks}
+        projectInitiateRemarks = #{projectInitiateRemarks},
+        startDesignOrNot = #{startDesignOrNot}
 
         where id = #{id}
 	</update>

+ 115 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/service/PreliminaryPrepartionService.java

@@ -0,0 +1,115 @@
+package com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.service;
+
+import com.jeeplus.core.persistence.Page;
+import com.jeeplus.core.service.CrudService;
+import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.PreliminaryPrepartion;
+import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.mapper.PreliminaryPrepartionMapper;
+import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.History;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+
+/**
+ * 储备项目前期准备工作 service
+ * @author: 王强
+ * @create: 2023-03-27 16:30
+ **/
+@Service
+@Transactional(readOnly = true)
+public class PreliminaryPrepartionService extends CrudService<PreliminaryPrepartionMapper, PreliminaryPrepartion> {
+
+    @Autowired
+    private PreliminaryPrepartionMapper dao;
+
+    public Page<PreliminaryPrepartion> findPage(Page<PreliminaryPrepartion> page, PreliminaryPrepartion reserveManagement) {
+        Page<PreliminaryPrepartion> pageList = super.findPage(page, reserveManagement);
+        return pageList;
+    }
+
+    public String getByProjectReserveId(String projectReserveId){
+        return dao.getByProjectReserveId(projectReserveId);
+    }
+
+    public List<History> getHistoryByExecuteId(String executeId){
+        return dao.getHistoryByExecuteId(executeId);
+    }
+
+    public String getByExecuteId(String executeId){
+        return dao.getByExecuteId(executeId);
+    }
+
+    /**
+     * 专职修改方法
+     * @param reserveManagement
+     */
+    @Transactional(readOnly = false)
+    public void update(PreliminaryPrepartion reserveManagement) {
+
+        super.save(reserveManagement);
+    }
+
+    public PreliminaryPrepartion getByProId(String proId){
+        return dao.getByProId(proId);
+    }
+
+    public List<PreliminaryPrepartion> exportFindList( PreliminaryPrepartion reserveManagement) {
+        List<PreliminaryPrepartion> pageList = dao.exportFindList(reserveManagement);
+        return pageList;
+    }
+
+    /**
+     * 获取所有的  项目储备编号
+     * @return
+     */
+    public List<String> getAllProId(){
+        return dao.getAllProId();
+    }
+
+    /**
+     * 获取所有的  项目储备编号
+     * @return
+     */
+    public List<String> getAllProId2(){
+        return dao.getAllProId2();
+    }
+
+    /**
+     * 查询已有的参数数据 并分类返回已存在数据和未存在数据
+     * @param reserveManagement
+     * @return
+     */
+    public Map<String, List<PreliminaryPrepartion>> getExistProjectList(List<PreliminaryPrepartion> reserveManagement){
+        Map<String,List<PreliminaryPrepartion>> map = new HashMap();
+        List<PreliminaryPrepartion> existReserveManagementList = new ArrayList<>();
+        Iterator<PreliminaryPrepartion> iterator = reserveManagement.iterator();
+        while (iterator.hasNext()) {
+            PreliminaryPrepartion rm = iterator.next();
+            //对数据进行处理
+            rm.preInsert();
+            PreliminaryPrepartion reserveManag = dao.queryByProjectReserveId(rm);
+
+            //数据库中已含有的数据在list中删除并创建一个list加入 区分为已存在数据
+            if (null != reserveManag) {
+                rm.setId(reserveManag.getId());
+                existReserveManagementList.add(rm);
+                iterator.remove();//使用迭代器删除已存在的数据
+            }
+
+        }
+        map.put("without",reserveManagement);
+        map.put("exist",existReserveManagementList);
+        return map;
+    }
+
+    /**
+     * 批量添加数据
+     * @param reserveManagementList
+     */
+    @Transactional(readOnly = false)
+    public void insertList(List<PreliminaryPrepartion> reserveManagementList){
+
+        dao.insertList(reserveManagementList);
+    }
+}

+ 4 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/service/ReserveProcessProjectService.java

@@ -60,6 +60,10 @@ public class ReserveProcessProjectService extends CrudService<ReserveProcessProj
         return dao.getAllName();
     }
 
+    public List<ReserveProcessProject> getAllName2(){
+        return dao.getAllName2();
+    }
+
     public List<String> getAllContentList(){
         return dao.getAllContentList();
     }

+ 192 - 86
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/utils/ReserveProcessProjectExportUtil.java

@@ -130,7 +130,7 @@ public class ReserveProcessProjectExportUtil {
 
             }
 
-            String str = URLEncoder.encode("储备项目带电作业信息.xlsx", "UTF8");
+            String str = URLEncoder.encode("储备项目带电作业统计表.xlsx", "UTF8");
             response.setHeader("Content-Disposition", "attachment;filename="+str);
             response.setContentType("application/vnd.ms-excel;charset=UTF-8");
             OutputStream outputStream = response.getOutputStream();
@@ -178,14 +178,17 @@ public class ReserveProcessProjectExportUtil {
                 Cell cell19 = crateCell(workbook,row,19); //需求提报人
                 Cell cell20 = crateCell(workbook,row,20); //业主储备专职
                 Cell cell21 = crateCell(workbook,row,21); //业主配网专职
-                Cell cell22 = crateCell(workbook,row,22); //业主项目经理
-                Cell cell23 = crateCell(workbook,row,23); //业主物资专职
-                Cell cell24 = crateCell(workbook,row,24); //技经人员
-                Cell cell25 = crateCell(workbook,row,25); //运维人员
-
-                Cell cell26 = crateCell(workbook,row,26); //设计人员
-                Cell cell27 = crateCell(workbook,row,27); //概算编制人员
-                Cell cell28 = crateCell(workbook,row,28); //不停电作业查勘人
+                Cell cell22 = crateCell(workbook,row,22); //业主储备项目经理
+                Cell cell23 = crateCell(workbook,row,23); //业主项目经理
+                Cell cell24 = crateCell(workbook,row,24); //业主物资专职
+                Cell cell25 = crateCell(workbook,row,25); //技经人员
+                Cell cell26 = crateCell(workbook,row,26); //运维人员
+
+                Cell cell27 = crateCell(workbook,row,27); //设计人员
+                Cell cell28 = crateCell(workbook,row,28); //概算编制人员
+                Cell cell29 = crateCell(workbook,row,29); //不停电作业查勘人
+                Cell cell30 = crateCell(workbook,row,30); //是否取消
+                Cell cell31 = crateCell(workbook,row,31); //否启动设计交底流程
 
                 ReserveProcessProject reserveManagement = list.get(i);
 
@@ -216,14 +219,16 @@ public class ReserveProcessProjectExportUtil {
                 cell19.setCellValue(reserveManagement.getRequester());
                 cell20.setCellValue(reserveManagement.getOwnerReserveFullTime());
                 cell21.setCellValue(reserveManagement.getOwnerDistributionNerworkFullTime());
-                cell22.setCellValue(reserveManagement.getOwnerProjectManager());
-                cell23.setCellValue(reserveManagement.getMaterialSoleDuty());
-                cell24.setCellValue(reserveManagement.getTechnicalStaff());
-                cell25.setCellValue(reserveManagement.getOperationAndMaintenancePersonnel());
-                cell26.setCellValue(reserveManagement.getDesigner());
-                cell27.setCellValue(reserveManagement.getBudgetPreparer());
-                cell28.setCellValue(reserveManagement.getUninterruptedWorkSurveyPersonnel());
-
+                cell22.setCellValue(reserveManagement.getOwnerReserveProjectManagre());
+                cell23.setCellValue(reserveManagement.getOwnerProjectManager());
+                cell24.setCellValue(reserveManagement.getMaterialSoleDuty());
+                cell25.setCellValue(reserveManagement.getTechnicalStaff());
+                cell26.setCellValue(reserveManagement.getOperationAndMaintenancePersonnel());
+                cell27.setCellValue(reserveManagement.getDesigner());
+                cell28.setCellValue(reserveManagement.getBudgetPreparer());
+                cell29.setCellValue(reserveManagement.getUninterruptedWorkSurveyPersonnel());
+                cell30.setCellValue(reserveManagement.getClearOrNot());
+                cell31.setCellValue(reserveManagement.getNoStartTheDesign());
             }
 
             String str = URLEncoder.encode("储备项目基本信息.xlsx", "UTF8");
@@ -720,40 +725,20 @@ public class ReserveProcessProjectExportUtil {
                 Cell cell17 = crateCell(workbook,row,17); //需求类型
                 Cell cell18 = crateCell(workbook,row,18); //项目类型
                 Cell cell19 = crateCell(workbook,row,19); //费用估算
-                Cell cell20 = crateCell(workbook,row,20); //预算编制状态
-                Cell cell21 = crateCell(workbook,row,21); //预算含税
-                Cell cell22 = crateCell(workbook,row,22); //预算不含税
-                Cell cell23 = crateCell(workbook,row,23); //备注
-                Cell cell24 = crateCell(workbook,row,24); //储备进度
-                Cell cell25 = crateCell(workbook,row,25); //是否纳入储备
-                Cell cell26 = crateCell(workbook,row,26); //取消原因说明
-                Cell cell27 = crateCell(workbook,row,27); //项目综合可实施性
-                Cell cell28 = crateCell(workbook,row,28); //政处难度
-                Cell cell29 = crateCell(workbook,row,29); //政处进度
-                Cell cell30 = crateCell(workbook,row,30); //停电难度
-                Cell cell31 = crateCell(workbook,row,31); //停电描述
-                Cell cell32 = crateCell(workbook,row,32); //其他问题难度
-                Cell cell33 = crateCell(workbook,row,33); //其他问题描述
-                Cell cell34 = crateCell(workbook,row,34); //是否需重跑方案
-                Cell cell35 = crateCell(workbook,row,35); //方案变更说明
-                Cell cell36 = crateCell(workbook,row,36); //储备项目交底信息-备注
-                Cell cell37 = crateCell(workbook,row,37); //需求单位优先级
-                Cell cell38 = crateCell(workbook,row,38); //立项初安排
-                Cell cell39 = crateCell(workbook,row,39); //初定实施批次
-                Cell cell40 = crateCell(workbook,row,40); //初定实施单位
-                Cell cell41 = crateCell(workbook,row,41); //储备项目推进计划(项目管理中心)
-                Cell cell42 = crateCell(workbook,row,42); //项目管理单位完成进度
-                Cell cell43 = crateCell(workbook,row,43); //储备项目推进计划(需求单位)
-                Cell cell44 = crateCell(workbook,row,44); //需求单位完成进度
-                Cell cell45 = crateCell(workbook,row,45); //政处计划(政处单位)
-                Cell cell46 = crateCell(workbook,row,46); //政处进度
-                Cell cell47 = crateCell(workbook,row,47); //是否出路径图
-                Cell cell48 = crateCell(workbook,row,48); //储备项目推进计划-备注
-                Cell cell49 = crateCell(workbook,row,49); //立项安排
-                Cell cell50 = crateCell(workbook,row,50); //实施批次
-                Cell cell51 = crateCell(workbook,row,51); //施工单位
-                Cell cell52 = crateCell(workbook,row,52); //是否出正式图
-                Cell cell53 = crateCell(workbook,row,53); //备注
+                Cell cell20 = crateCell(workbook,row,20); //项目综合可实施性
+                Cell cell21 = crateCell(workbook,row,21); //政处难度
+                Cell cell22 = crateCell(workbook,row,22); //政处描述
+                Cell cell23 = crateCell(workbook,row,23); //停电难度
+                Cell cell24 = crateCell(workbook,row,24); //停电描述
+                Cell cell25 = crateCell(workbook,row,25); //其他问题难度
+                Cell cell26 = crateCell(workbook,row,26); //其他问题描述
+                Cell cell27 = crateCell(workbook,row,27); //是否需重跑方案
+                Cell cell28 = crateCell(workbook,row,28); //方案变更说明
+                Cell cell29 = crateCell(workbook,row,29); //储备项目交底信息-备注
+                Cell cell30 = crateCell(workbook,row,30); //储备进度
+                Cell cell31 = crateCell(workbook,row,31); //是否纳入储备
+                Cell cell32 = crateCell(workbook,row,32); //取消原因说明
+                Cell cell33 = crateCell(workbook,row,33); //是否启动设计
 
                 ReserveSummary reserveManagement = list.get(i);
 
@@ -781,41 +766,20 @@ public class ReserveProcessProjectExportUtil {
                 if(StringUtils.isNotBlank(costEstimateStr)){
                     cell19.setCellValue(Double.parseDouble(costEstimateStr));
                 }
-                cell20.setCellValue(reserveManagement.getBudgetPreparationStatus());
-                cell21.setCellValue(reserveManagement.getBudgetIncludesTax());
-                cell22.setCellValue(reserveManagement.getBudgetNotIncludesTax());
-                cell23.setCellValue(reserveManagement.getBasicRemarks());
-                cell24.setCellValue(reserveManagement.getReserveProgress());
-                cell25.setCellValue(reserveManagement.getIncludeReserve());
-
-                cell26.setCellValue(reserveManagement.getReasonForCancel());
-                cell27.setCellValue(reserveManagement.getComprehensiveProject());
-                cell28.setCellValue(reserveManagement.getOfficeDifficulty());
-                cell29.setCellValue(reserveManagement.getOfficeProgress());
-                cell30.setCellValue(reserveManagement.getPowerFailureDifficulty());
-                cell31.setCellValue(reserveManagement.getPowerFailureDescribe());
-                cell32.setCellValue(reserveManagement.getOtherProblemDifficulty());
-                cell33.setCellValue(reserveManagement.getOtherProblemDescribe());
-                cell34.setCellValue(reserveManagement.getRunPlanRequire());
-                cell35.setCellValue(reserveManagement.getProgramChangeDescription());
-                cell36.setCellValue(reserveManagement.getDiscloseRemarks());
-                cell37.setCellValue(reserveManagement.getDemandUnitPriority());
-                cell38.setCellValue(reserveManagement.getPreliminaryArrangement());
-                cell39.setCellValue(reserveManagement.getInitialImplementBatch());
-                cell40.setCellValue(reserveManagement.getInitialImplementUnit());
-                cell41.setCellValue(reserveManagement.getProjectManagementCenter());
-                cell42.setCellValue(reserveManagement.getCompleteProgressUnit());
-                cell43.setCellValue(reserveManagement.getProjectReservePlan());
-                cell44.setCellValue(reserveManagement.getDemandUnitProgress());
-                cell45.setCellValue(reserveManagement.getDepartmentPlan());
-                cell46.setCellValue(reserveManagement.getAdministrativeProgress());
-                cell47.setCellValue(reserveManagement.getDrawMapPath());
-                cell48.setCellValue(reserveManagement.getPlanRemarks());
-                cell49.setCellValue(reserveManagement.getArrangementProject());
-                cell50.setCellValue(reserveManagement.getImplementationBatch());
-                cell51.setCellValue(reserveManagement.getConstructionUnit());
-                cell52.setCellValue(reserveManagement.getDrawOfficeDrawn());
-                cell53.setCellValue(reserveManagement.getProjectInitiateRemarks());
+                cell20.setCellValue(reserveManagement.getComprehensiveProject());
+                cell21.setCellValue(reserveManagement.getOfficeDifficulty());
+                cell22.setCellValue(reserveManagement.getOfficeProgress());
+                cell23.setCellValue(reserveManagement.getPowerFailureDifficulty());
+                cell24.setCellValue(reserveManagement.getPowerFailureDescribe());
+                cell25.setCellValue(reserveManagement.getOtherProblemDifficulty());
+                cell26.setCellValue(reserveManagement.getOtherProblemDescribe());
+                cell27.setCellValue(reserveManagement.getRunPlanRequire());
+                cell28.setCellValue(reserveManagement.getProgramChangeDescription());
+                cell29.setCellValue(reserveManagement.getDiscloseRemarks());
+                cell30.setCellValue(reserveManagement.getReserveProgress());
+                cell31.setCellValue(reserveManagement.getIncludeReserve());
+                cell32.setCellValue(reserveManagement.getReasonForCancel());
+                cell33.setCellValue(reserveManagement.getStartDesignOrNot());
             }
 
             String str = URLEncoder.encode("储备项目交底信息汇总统计.xlsx", "UTF8");
@@ -916,6 +880,148 @@ public class ReserveProcessProjectExportUtil {
     }
 
     /**
+     * 导出前期工作准备
+     * @param response
+     * @param workbook
+     * @param list
+     */
+    public void exportProcess(HttpServletResponse response, XSSFWorkbook workbook, List<PreliminaryPrepartion> list){
+        try {
+            int index = 1;//第一列序号
+            int rowNum = 2;//数据起始列
+            Sheet sheet = workbook.getSheetAt(0);
+            for(int i=0;i<list.size();i++){
+                Row row = sheet.createRow(rowNum+i);
+                Cell cell0 = crateCell(workbook,row,0); //序号
+                Cell cell1 = crateCell(workbook,row,1); //项目年份
+                Cell cell2 = crateCell(workbook,row,2); //项目性质
+                Cell cell3 = crateCell(workbook,row,3); //需求单位
+                Cell cell4 = crateCell(workbook,row,4); //区域
+                Cell cell5 = crateCell(workbook,row,5); //项目分组
+                Cell cell6 = crateCell(workbook,row,6); //项目经理
+                Cell cell7 = crateCell(workbook,row,7); //储备批次
+                Cell cell8 = crateCell(workbook,row,8); //供电区域
+                Cell cell9 = crateCell(workbook,row,9); //网格编号
+                Cell cell10 = crateCell(workbook,row,10); //单元格编号
+                Cell cell11 = crateCell(workbook,row,11); //项目储备编号
+                Cell cell12 = crateCell(workbook,row,12); //项目名称
+                Cell cell13 = crateCell(workbook,row,13); //建设必要性及内容
+                Cell cell14 = crateCell(workbook,row,14); //变电站名称
+                Cell cell15 = crateCell(workbook,row,15); //线路名称
+                Cell cell16 = crateCell(workbook,row,16); //网架项目划分
+                Cell cell17 = crateCell(workbook,row,17); //需求类型
+                Cell cell18 = crateCell(workbook,row,18); //项目类型
+                Cell cell19 = crateCell(workbook,row,19); //费用估算
+                Cell cell20 = crateCell(workbook,row,20); //备注
+                Cell cell21 = crateCell(workbook,row,21); //项目综合可实施性
+                Cell cell22 = crateCell(workbook,row,22); //政处难度
+                Cell cell23 = crateCell(workbook,row,23); //政处描述
+                Cell cell24 = crateCell(workbook,row,24); //停电难度
+                Cell cell25 = crateCell(workbook,row,25); //停电描述
+                Cell cell26 = crateCell(workbook,row,26); //其他问题难度
+                Cell cell27 = crateCell(workbook,row,27); //其他问题描述
+                Cell cell28 = crateCell(workbook,row,28); //是否需重跑方案
+                Cell cell29 = crateCell(workbook,row,29); //方案变更说明
+                Cell cell30 = crateCell(workbook,row,30); //储备项目交底信息-备注
+                Cell cell31 = crateCell(workbook,row,31); //储备进度
+                Cell cell32 = crateCell(workbook,row,32); //是否含土建工作量
+                Cell cell33 = crateCell(workbook,row,33); //土建工作量统计
+                Cell cell34 = crateCell(workbook,row,34); //是否含立杆工作量
+                Cell cell35 = crateCell(workbook,row,35); //立杆工作量统计
+                Cell cell36 = crateCell(workbook,row,36); //预算(含税)
+                Cell cell37 = crateCell(workbook,row,37); //预算(不含税)
+                Cell cell38 = crateCell(workbook,row,38); //施工费(不含税)
+                Cell cell39 = crateCell(workbook,row,39); //备注
+                Cell cell40 = crateCell(workbook,row,40); //储备项目推进计划(项目管理中心)
+                Cell cell41 = crateCell(workbook,row,41); //项目管理单位完成进度
+                Cell cell42 = crateCell(workbook,row,42); //储备项目推进计划(需求单位)
+                Cell cell43 = crateCell(workbook,row,43); //需求单位完成进度
+                Cell cell44 = crateCell(workbook,row,44); //是否启动政处
+                Cell cell45 = crateCell(workbook,row,45); //政处进度
+                Cell cell46 = crateCell(workbook,row,46); //备注
+                Cell cell47 = crateCell(workbook,row,47); //需求单位优先级
+                Cell cell48 = crateCell(workbook,row,48); //是否纳入实施计划
+                Cell cell49 = crateCell(workbook,row,49); //初定实施批次
+                Cell cell50 = crateCell(workbook,row,50); //初定施工单位
+                Cell cell51 = crateCell(workbook,row,51); //是否出规划报批图
+                Cell cell52 = crateCell(workbook,row,52); //是否出正式图
+                Cell cell53 = crateCell(workbook,row,53); //备注
+
+                PreliminaryPrepartion reserveManagement = list.get(i);
+
+                cell0.setCellValue(String.valueOf(index++));
+                cell1.setCellValue(reserveManagement.getProjectYear());
+                cell2.setCellValue(reserveManagement.getProjectNature());
+                cell3.setCellValue(reserveManagement.getDemandUnit());
+                cell4.setCellValue(reserveManagement.getDistrict());
+                cell5.setCellValue(reserveManagement.getProjectGroup());
+                cell6.setCellValue(reserveManagement.getProjectManager());
+                cell7.setCellValue(reserveManagement.getReserveBatches());
+                cell8.setCellValue(reserveManagement.getBlockSupply());
+                cell9.setCellValue(reserveManagement.getGridNumber());
+                cell10.setCellValue(reserveManagement.getCellNumber());
+                cell11.setCellValue(reserveManagement.getProjectReserveId());
+                cell12.setCellValue(reserveManagement.getProjectName());
+                cell13.setCellValue(reserveManagement.getConstructionNecessityAndContent());
+                cell14.setCellValue(reserveManagement.getSubstationName());
+                cell15.setCellValue(reserveManagement.getCircuitName());
+                cell16.setCellValue(reserveManagement.getNetRackProjectDivide());
+                cell17.setCellValue(reserveManagement.getRequirementType());
+                cell18.setCellValue(reserveManagement.getProjectType());
+
+                String costEstimateStr= reserveManagement.getCostEstimate().toString();
+                if(StringUtils.isNotBlank(costEstimateStr)){
+                    cell19.setCellValue(Double.parseDouble(costEstimateStr));
+                }
+                cell20.setCellValue(reserveManagement.getBasicRemarks());
+                cell21.setCellValue(reserveManagement.getComprehensiveProject());
+                cell22.setCellValue(reserveManagement.getOfficeDifficulty());
+                cell23.setCellValue(reserveManagement.getOfficeProgress());
+                cell24.setCellValue(reserveManagement.getPowerFailureDifficulty());
+                cell25.setCellValue(reserveManagement.getPowerFailureDescribe());
+                cell26.setCellValue(reserveManagement.getOtherProblemDifficulty());
+                cell27.setCellValue(reserveManagement.getOtherProblemDescribe());
+                cell28.setCellValue(reserveManagement.getRunPlanRequire());
+                cell29.setCellValue(reserveManagement.getProgramChangeDescription());
+                cell30.setCellValue(reserveManagement.getDiscloseRemarks());
+                cell31.setCellValue(reserveManagement.getReserveProgress());
+                cell32.setCellValue(reserveManagement.getCivilEngineeringWorkload());
+                cell33.setCellValue(reserveManagement.getEngineeringWorkloadStatistic());
+                cell34.setCellValue(reserveManagement.getPoleWorkload());
+                cell35.setCellValue(reserveManagement.getPoleWorkloadStatistic());
+                cell36.setCellValue(reserveManagement.getBudgetIncludesTax());
+                cell37.setCellValue(reserveManagement.getBudgetNotIncludesTax());
+                cell38.setCellValue(reserveManagement.getConstructCostExcludeTax());
+                cell39.setCellValue(reserveManagement.getQuantityRemarks());
+                cell40.setCellValue(reserveManagement.getReserveProjectPromotyPlan());
+                cell41.setCellValue(reserveManagement.getUnitCompleteProgress());
+                cell42.setCellValue(reserveManagement.getDemandUnitReserveProjectPromotyPlan());
+                cell43.setCellValue(reserveManagement.getDemandUnitCompleteProgress());
+                cell44.setCellValue(reserveManagement.getFireAdministrativeDepartment());
+                cell45.setCellValue(reserveManagement.getAdministrativeProgress());
+                cell46.setCellValue(reserveManagement.getPreliminaryPreparationRemarks());
+                cell47.setCellValue(reserveManagement.getDemandUnitPriority());
+                cell48.setCellValue(reserveManagement.getImplementPlan());
+                cell49.setCellValue(reserveManagement.getImplementBatch());
+                cell50.setCellValue(reserveManagement.getConstructionUnit());
+                cell51.setCellValue(reserveManagement.getPlanAndApprovalDraw());
+                cell52.setCellValue(reserveManagement.getDrawOfficeDrawn());
+                cell53.setCellValue(reserveManagement.getProjectApprovalRemarks());
+            }
+
+            String str = URLEncoder.encode("前期工作准备信息.xlsx", "UTF8");
+            response.setHeader("Content-Disposition", "attachment;filename="+str);
+            response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+            OutputStream outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+            outputStream.flush();
+            outputStream.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
      * 创建Cell对象 同时设置style
      * @param workbook
      * @param row

+ 95 - 32
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/utils/ReserveProcessProjectProUtil.java

@@ -77,14 +77,17 @@ public class ReserveProcessProjectProUtil {
                     reserveManagement.setRequester((String) importUtil.getCellValue(row,19));
                     reserveManagement.setOwnerReserveFullTime((String) importUtil.getCellValue(row,20));
                     reserveManagement.setOwnerDistributionNerworkFullTime((String) importUtil.getCellValue(row,21));
-                    reserveManagement.setOwnerProjectManager((String) importUtil.getCellValue(row,22));
-                    reserveManagement.setMaterialSoleDuty((String) importUtil.getCellValue(row,23));
-                    reserveManagement.setTechnicalStaff((String) importUtil.getCellValue(row,24));
-                    reserveManagement.setOperationAndMaintenancePersonnel((String) importUtil.getCellValue(row,25));
-                    reserveManagement.setDesigner((String) importUtil.getCellValue(row,26));
-                    reserveManagement.setBudgetPreparer((String) importUtil.getCellValue(row,27));
+                    reserveManagement.setOwnerReserveProjectManagre((String) importUtil.getCellValue(row,22));
+                    reserveManagement.setOwnerProjectManager((String) importUtil.getCellValue(row,23));
+                    reserveManagement.setMaterialSoleDuty((String) importUtil.getCellValue(row,24));
+                    reserveManagement.setTechnicalStaff((String) importUtil.getCellValue(row,25));
+                    reserveManagement.setOperationAndMaintenancePersonnel((String) importUtil.getCellValue(row,26));
+                    reserveManagement.setDesigner((String) importUtil.getCellValue(row,27));
+                    reserveManagement.setBudgetPreparer((String) importUtil.getCellValue(row,28));
 //                    reserveManagement.setUninterruptedWorkSurveyPersonnel((String) importUtil.getCellValue(row,28));
                     reserveManagement.setProcessStatus(0);
+                    reserveManagement.setClearOrNot((String) importUtil.getCellValue(row,30));
+                    reserveManagement.setNoStartTheDesign((String) importUtil.getCellValue(row,31));
 //                    reserveManagement.setUninterruptedWorkSurveyPersonnel((String) importUtil.getCellValue(row,27));
 
 
@@ -183,6 +186,65 @@ public class ReserveProcessProjectProUtil {
     }
 
     /**
+     * 获取前期工作准备表格数据
+     * @param importUtil
+     * @return List<ReserveManagementMapper> 导入表格数据
+     */
+    public static List<PreliminaryPrepartion> getPreLiminUtil(ImportUtil importUtil,List<String> proIdList,List<String> proIdList2) throws Exception {
+        int lastRow = importUtil.getLastDataRowNum();
+        List<PreliminaryPrepartion> list = new ArrayList<PreliminaryPrepartion>();
+        //项目储备编号唯一性判断
+        List<String> cbbhList = new ArrayList<>();
+        //项目名称唯一性判断
+        List<String> nameList = new ArrayList<>();
+        //建设必要性及内容
+        List<String> jsList = new ArrayList<>();
+        PreliminaryPrepartion reserveManagement = null;
+        for(int i=2; i<=lastRow;i++){
+            reserveManagement = new PreliminaryPrepartion();
+            Row row = importUtil.getRow(i);
+            //储备人员流转信息
+            //获取项目储备编号
+            String projectReserveId = (String) importUtil.getCellValue(row, 11);
+            if(StringUtils.isNotBlank(projectReserveId)){
+
+                reserveManagement.setProjectReserveId((String) importUtil.getCellValue(row,11));
+
+                //和基本信息表比对,是否有对应的数据
+                getBmList2(proIdList2,reserveManagement.getProjectReserveId());
+
+                reserveManagement.setCivilEngineeringWorkload((String) importUtil.getCellValue(row,32));
+                reserveManagement.setQuantityRemarks((String) importUtil.getCellValue(row,39));
+                reserveManagement.setReserveProjectPromotyPlan((String) importUtil.getCellValue(row,40));
+                reserveManagement.setUnitCompleteProgress((String) importUtil.getCellValue(row,41));
+                reserveManagement.setDemandUnitReserveProjectPromotyPlan((String) importUtil.getCellValue(row,42));
+                reserveManagement.setDemandUnitCompleteProgress((String) importUtil.getCellValue(row,43));
+                reserveManagement.setPreliminaryPreparationRemarks((String) importUtil.getCellValue(row,46));
+                reserveManagement.setDemandUnitPriority((String) importUtil.getCellValue(row,47));
+                reserveManagement.setImplementPlan((String) importUtil.getCellValue(row,48));
+                reserveManagement.setImplementBatch((String) importUtil.getCellValue(row,49));
+                reserveManagement.setConstructionUnit((String) importUtil.getCellValue(row,50));
+                reserveManagement.setPlanAndApprovalDraw((String) importUtil.getCellValue(row,51));
+                reserveManagement.setDrawOfficeDrawn((String) importUtil.getCellValue(row,52));
+                reserveManagement.setProjectApprovalRemarks((String) importUtil.getCellValue(row,53));
+
+                if (list.size() == 0){
+                    list.add(reserveManagement);
+
+                    cbbhList.add(reserveManagement.getProjectReserveId());
+                }else {
+                    if (!cbbhList.contains(reserveManagement.getProjectReserveId())){
+                        list.add(reserveManagement);
+                        cbbhList.add(reserveManagement.getProjectReserveId());
+                    }
+                }
+
+            }
+        }
+        return list;
+    }
+
+    /**
      * 获取储备项目安全交底信息表格数据
      * @param importUtil
      * @return List<ReserveManagementMapper> 导入表格数据
@@ -393,32 +455,33 @@ public class ReserveProcessProjectProUtil {
                 //和基本信息表对比      是否无对应数据
                 getBmList2(proIdList2,reserveManagement.getProjectReserveId());
 
-                reserveManagement.setIncludeReserve((String) importUtil.getCellValue(row,25));
-                reserveManagement.setReasonForCancel((String) importUtil.getCellValue(row,26));
-                reserveManagement.setComprehensiveProject((String) importUtil.getCellValue(row,27));
-                reserveManagement.setPowerFailureDifficulty((String) importUtil.getCellValue(row,30));
-                reserveManagement.setPowerFailureDescribe((String) importUtil.getCellValue(row,31));
-                reserveManagement.setOtherProblemDifficulty((String) importUtil.getCellValue(row,32));
-                reserveManagement.setOtherProblemDescribe((String) importUtil.getCellValue(row,33));
-                reserveManagement.setRunPlanRequire((String) importUtil.getCellValue(row,34));
-                reserveManagement.setProgramChangeDescription((String) importUtil.getCellValue(row,35));
-                reserveManagement.setDiscloseRemarks((String) importUtil.getCellValue(row,36));
-                reserveManagement.setDemandUnitPriority((String) importUtil.getCellValue(row,37));
-                reserveManagement.setPreliminaryArrangement((String) importUtil.getCellValue(row,38));
-                reserveManagement.setInitialImplementBatch((String) importUtil.getCellValue(row,39));
-                reserveManagement.setInitialImplementUnit((String) importUtil.getCellValue(row,40));
-                reserveManagement.setProjectManagementCenter((String) importUtil.getCellValue(row,41));
-                reserveManagement.setCompleteProgressUnit((String) importUtil.getCellValue(row,42));
-                reserveManagement.setProjectReservePlan((String) importUtil.getCellValue(row,43));
-                reserveManagement.setDemandUnitProgress((String) importUtil.getCellValue(row,44));
-                reserveManagement.setDepartmentPlan((String) importUtil.getCellValue(row,45));
-                reserveManagement.setDrawMapPath((String) importUtil.getCellValue(row,47));
-                reserveManagement.setPlanRemarks((String) importUtil.getCellValue(row,48));
-                reserveManagement.setArrangementProject((String) importUtil.getCellValue(row,49));
-                reserveManagement.setImplementationBatch((String) importUtil.getCellValue(row,50));
-                reserveManagement.setConstructionUnit((String) importUtil.getCellValue(row,51));
-                reserveManagement.setDrawOfficeDrawn((String) importUtil.getCellValue(row,52));
-                reserveManagement.setProjectInitiateRemarks((String) importUtil.getCellValue(row,53));
+                reserveManagement.setIncludeReserve((String) importUtil.getCellValue(row,31));
+                reserveManagement.setReasonForCancel((String) importUtil.getCellValue(row,32));
+                reserveManagement.setComprehensiveProject((String) importUtil.getCellValue(row,20));
+                reserveManagement.setPowerFailureDifficulty((String) importUtil.getCellValue(row,23));
+                reserveManagement.setPowerFailureDescribe((String) importUtil.getCellValue(row,24));
+                reserveManagement.setOtherProblemDifficulty((String) importUtil.getCellValue(row,25));
+                reserveManagement.setOtherProblemDescribe((String) importUtil.getCellValue(row,26));
+                reserveManagement.setRunPlanRequire((String) importUtil.getCellValue(row,27));
+                reserveManagement.setProgramChangeDescription((String) importUtil.getCellValue(row,28));
+                reserveManagement.setDiscloseRemarks((String) importUtil.getCellValue(row,29));
+                reserveManagement.setStartDesignOrNot((String) importUtil.getCellValue(row,33));
+//                reserveManagement.setDemandUnitPriority((String) importUtil.getCellValue(row,37));
+//                reserveManagement.setPreliminaryArrangement((String) importUtil.getCellValue(row,38));
+//                reserveManagement.setInitialImplementBatch((String) importUtil.getCellValue(row,39));
+//                reserveManagement.setInitialImplementUnit((String) importUtil.getCellValue(row,40));
+//                reserveManagement.setProjectManagementCenter((String) importUtil.getCellValue(row,41));
+//                reserveManagement.setCompleteProgressUnit((String) importUtil.getCellValue(row,42));
+//                reserveManagement.setProjectReservePlan((String) importUtil.getCellValue(row,43));
+//                reserveManagement.setDemandUnitProgress((String) importUtil.getCellValue(row,44));
+//                reserveManagement.setDepartmentPlan((String) importUtil.getCellValue(row,45));
+//                reserveManagement.setDrawMapPath((String) importUtil.getCellValue(row,47));
+//                reserveManagement.setPlanRemarks((String) importUtil.getCellValue(row,48));
+//                reserveManagement.setArrangementProject((String) importUtil.getCellValue(row,49));
+//                reserveManagement.setImplementationBatch((String) importUtil.getCellValue(row,50));
+//                reserveManagement.setConstructionUnit((String) importUtil.getCellValue(row,51));
+//                reserveManagement.setDrawOfficeDrawn((String) importUtil.getCellValue(row,52));
+//                reserveManagement.setProjectInitiateRemarks((String) importUtil.getCellValue(row,53));
 
 
                 if (list.size() == 0){

+ 326 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/web/PreliminaryPrepartionController.java

@@ -0,0 +1,326 @@
+package com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.web;
+
+import com.jeeplus.common.json.AjaxJson;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.core.persistence.Page;
+import com.jeeplus.core.web.BaseController;
+import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.PreliminaryPrepartion;
+import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.service.PreliminaryPrepartionService;
+import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.utils.ReserveProcessProjectExportUtil;
+import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.utils.ReserveProcessProjectProUtil;
+import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.History;
+import com.jeeplus.modules.sg.managementcenter.materialproject.util.ImportUtil;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.apache.shiro.authz.annotation.Logical;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 储备项目前期准备工作 controller
+ * @author: 王强
+ * @create: 2023-03-27 16:28
+ **/
+@Controller
+@RequestMapping(value = "${adminPath}/cg/reservemanagementcenter/preliminaryPrepartion")
+public class PreliminaryPrepartionController extends BaseController {
+
+    @Autowired
+    private PreliminaryPrepartionService prepartionService;
+
+    @ModelAttribute
+    public PreliminaryPrepartion get(@RequestParam(required = false) String id) {
+        PreliminaryPrepartion entity = null;
+        if (StringUtils.isNotBlank(id)) {
+            entity = prepartionService.get(id);
+        }
+        if (entity == null) {
+            entity = new PreliminaryPrepartion();
+        }
+        return entity;
+    }
+
+    /**
+     * 储备项目前期准备工作列表页面
+     * @param reserveManagement
+     * @param model
+     * @return
+     */
+    @RequiresPermissions("cg:reservemanagementcenter:preliminaryPrepartion:list")
+    @RequestMapping(value = "skipList")
+    public String skipList(PreliminaryPrepartion reserveManagement, Model model) {
+        model.addAttribute("reserveManagement", reserveManagement);
+        return "modules/cg/reservemanagementcenter/reserveManage/preliminaryPrepartion/reserveManagementInformation";
+    }
+
+    /**
+     * 储备项目前期准备工作数据列表
+     * @param reserveManagement
+     * @param request
+     * @param response
+     * @param model
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("cg:reservemanagementcenter:preliminaryPrepartion:list")
+    @RequestMapping(value = "list")
+    public Map<String, Object> basicData(PreliminaryPrepartion reserveManagement, HttpServletRequest request, HttpServletResponse response, Model model) {
+
+        Page<PreliminaryPrepartion> page = prepartionService.findPage(new Page<PreliminaryPrepartion>(request, response), reserveManagement);
+        List<PreliminaryPrepartion> list = page.getList();
+        List<PreliminaryPrepartion> summaryList = new ArrayList<>();
+        for (PreliminaryPrepartion summary : list) {
+
+            //根据projectReserveId查出流程表的proc_ins_id
+            String procInsId = prepartionService.getByProjectReserveId(summary.getProjectReserveId());
+            //根据procInsId查出历史流程名称和时间
+            List<History> histories = prepartionService.getHistoryByExecuteId(procInsId);
+            //当size>0时待办有历史流程,
+            if (histories.size()>0){
+                //根据proc_ins_id去运行时任务节点表(act_ru_task)中查出当前流程名称
+                String name = prepartionService.getByExecuteId(procInsId);
+                //设置项目进度
+                summary.setReserveProgress(name);
+            }else {
+                summary.setReserveProgress("");
+            }
+
+            summaryList.add(summary);
+        }
+
+        return getBootstrapData(page);
+    }
+
+    /**
+     * 查看表单页面
+     */
+    @RequiresPermissions(value={"cg:reservemanagementcenter:preliminaryPrepartion:view"},logical= Logical.OR)
+    @RequestMapping(value = "view")
+    public String view(PreliminaryPrepartion reserveManagement, Model model) {
+        model.addAttribute("reserveManagement", reserveManagement);
+        return "modules/cg/reservemanagementcenter/reserveManage/preliminaryPrepartion/reserveManagementView";
+    }
+
+    /**
+     * 专职人员增加,编辑表单页面
+     * @param reserveManagement
+     * @param model
+     * @return
+     */
+    @RequiresPermissions(value={"cg:reservemanagementcenter:preliminaryPrepartion:add","cg:reservemanagementcenter:preliminaryPrepartion:edit"},logical= Logical.OR)
+    @RequestMapping(value = "form")
+    public String form(PreliminaryPrepartion reserveManagement, Model model) {
+
+        //根据projectReserveId查出流程表的proc_ins_id
+        String procInsId = prepartionService.getByProjectReserveId(reserveManagement.getProjectReserveId());
+        //根据procInsId查出历史流程名称和时间
+        List<History> histories = prepartionService.getHistoryByExecuteId(procInsId);
+        //当size>0时待办有历史流程,
+        if (histories.size()>0){
+            //根据proc_ins_id去运行时任务节点表(act_ru_task)中查出当前流程名称
+            String name = prepartionService.getByExecuteId(procInsId);
+            //设置项目进度
+            reserveManagement.setReserveProgress(name);
+        }else {
+            reserveManagement.setReserveProgress("");
+        }
+        model.addAttribute("reserveManagement", reserveManagement);
+        //判断id是否为空 如果未空则为新增 否则为修改
+        if(StringUtils.isBlank(reserveManagement.getId())){
+            return "modules/cg/reservemanagementcenter/reserveManage/preliminaryPrepartion/reserveManagementForm";
+        }
+        return "modules/cg/reservemanagementcenter/reserveManage/preliminaryPrepartion/reserveManagementModifyByzz";
+    }
+
+    /**
+     * 专职人员保存表单
+     * @param reserveManagement
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions(value={"cg:reservemanagementcenter:preliminaryPrepartion:add"},logical=Logical.OR)
+    @RequestMapping(value = "save")
+    public AjaxJson save(PreliminaryPrepartion reserveManagement){
+        AjaxJson j = new AjaxJson();
+        /**
+         * 后台hibernate-validation插件校验
+         */
+        String errMsg = beanValidator(reserveManagement);
+        if (StringUtils.isNotBlank(errMsg)){
+            j.setSuccess(false);
+            j.setMsg(errMsg);
+            return j;
+        }
+        //新增或编辑表单保存
+        prepartionService.save(reserveManagement);//保存
+        j.setSuccess(true);
+        j.setMsg("保存储备项目基本信息成功");
+        return j;
+    }
+
+    /**
+     * 专职人员修改表单
+     * @param reserveManagement
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions(value={"cg:reservemanagementcenter:preliminaryPrepartion:edit"},logical=Logical.OR)
+    @RequestMapping(value = "update")
+    public AjaxJson update(PreliminaryPrepartion reserveManagement){
+        AjaxJson j = new AjaxJson();
+
+        /**
+         * 后台hibernate-validation插件校验
+         */
+        String errMsg = beanValidator(reserveManagement);
+        if (StringUtils.isNotBlank(errMsg)){
+            j.setSuccess(false);
+            j.setMsg(errMsg);
+            return j;
+        }
+
+        //根据id去表中查是否有这个数据
+        PreliminaryPrepartion cityWork = prepartionService.getByProId(reserveManagement.getProjectReserveId());
+        if (null == cityWork){
+            //进行保存操作
+            cityWork = new PreliminaryPrepartion();
+            cityWork.setProjectReserveId(reserveManagement.getProjectReserveId());
+            cityWork.setCivilEngineeringWorkload(reserveManagement.getCivilEngineeringWorkload());
+            cityWork.setQuantityRemarks(reserveManagement.getQuantityRemarks());
+            cityWork.setReserveProjectPromotyPlan(reserveManagement.getReserveProjectPromotyPlan());
+            cityWork.setUnitCompleteProgress(reserveManagement.getUnitCompleteProgress());
+            cityWork.setDemandUnitReserveProjectPromotyPlan(reserveManagement.getDemandUnitReserveProjectPromotyPlan());
+            cityWork.setDemandUnitCompleteProgress(reserveManagement.getDemandUnitCompleteProgress());
+            cityWork.setPreliminaryPreparationRemarks(reserveManagement.getPreliminaryPreparationRemarks());
+            cityWork.setDemandUnitPriority(reserveManagement.getDemandUnitPriority());
+            cityWork.setImplementPlan(reserveManagement.getImplementPlan());
+            cityWork.setImplementBatch(reserveManagement.getImplementBatch());
+            cityWork.setConstructionUnit(reserveManagement.getConstructionUnit());
+            cityWork.setPlanAndApprovalDraw(reserveManagement.getPlanAndApprovalDraw());
+            cityWork.setDrawOfficeDrawn(reserveManagement.getDrawOfficeDrawn());
+            cityWork.setProjectApprovalRemarks(reserveManagement.getProjectApprovalRemarks());
+            prepartionService.save(cityWork);
+        }else {
+            cityWork.setProjectReserveId(reserveManagement.getProjectReserveId());
+            cityWork.setCivilEngineeringWorkload(reserveManagement.getCivilEngineeringWorkload());
+            cityWork.setQuantityRemarks(reserveManagement.getQuantityRemarks());
+            cityWork.setReserveProjectPromotyPlan(reserveManagement.getReserveProjectPromotyPlan());
+            cityWork.setUnitCompleteProgress(reserveManagement.getUnitCompleteProgress());
+            cityWork.setDemandUnitReserveProjectPromotyPlan(reserveManagement.getDemandUnitReserveProjectPromotyPlan());
+            cityWork.setDemandUnitCompleteProgress(reserveManagement.getDemandUnitCompleteProgress());
+            cityWork.setPreliminaryPreparationRemarks(reserveManagement.getPreliminaryPreparationRemarks());
+            cityWork.setDemandUnitPriority(reserveManagement.getDemandUnitPriority());
+            cityWork.setImplementPlan(reserveManagement.getImplementPlan());
+            cityWork.setImplementBatch(reserveManagement.getImplementBatch());
+            cityWork.setConstructionUnit(reserveManagement.getConstructionUnit());
+            cityWork.setPlanAndApprovalDraw(reserveManagement.getPlanAndApprovalDraw());
+            cityWork.setDrawOfficeDrawn(reserveManagement.getDrawOfficeDrawn());
+            cityWork.setProjectApprovalRemarks(reserveManagement.getProjectApprovalRemarks());
+            //新增或编辑表单保存
+            prepartionService.update(cityWork);
+        }
+        j.setSuccess(true);
+        j.setMsg("修改储备项目基本信息成功");
+        return j;
+    }
+    //导出excel
+    @ResponseBody
+    @RequiresPermissions("cg:reservemanagementcenter:preliminaryPrepartion:export")
+    @RequestMapping(value = "export")
+    public void exportExcel(PreliminaryPrepartion reserveManagement, HttpServletRequest request, HttpServletResponse response) {
+        List<PreliminaryPrepartion> list = prepartionService.exportFindList(reserveManagement);
+
+        List<PreliminaryPrepartion> processList = new ArrayList<>();
+        for (PreliminaryPrepartion summary : list) {
+
+            //根据projectReserveId查出流程表的proc_ins_id
+            String procInsId = prepartionService.getByProjectReserveId(summary.getProjectReserveId());
+            //根据procInsId查出历史流程名称和时间
+            List<History> histories = prepartionService.getHistoryByExecuteId(procInsId);
+            //当size>0时待办有历史流程,
+            if (histories.size()>0){
+                //根据proc_ins_id去运行时任务节点表(act_ru_task)中查出当前流程名称
+                String name = prepartionService.getByExecuteId(procInsId);
+                //设置项目进度
+                summary.setReserveProgress(name);
+            }else {
+                summary.setReserveProgress("");
+            }
+
+            processList.add(summary);
+        }
+
+        //生成序列号
+        int i = 1;
+        for (PreliminaryPrepartion s : processList) {
+            s.setId(String.valueOf(i));
+            i++;
+        }
+
+        ReserveProcessProjectExportUtil util = ReserveProcessProjectExportUtil.getOne();
+        XSSFWorkbook workbook = util.getWorkbook("preliminaryPrepartion");
+        util.exportProcess(response,workbook,processList);
+    }
+
+    /**
+     * 导入Excel数据
+     * @param file
+     * @param response
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("cg:reservemanagementcenter:reserveElectricityWork:import")
+    @RequestMapping(value = "import")
+    public AjaxJson importBasic(@RequestParam("file") MultipartFile file, HttpServletResponse response, HttpServletRequest request) {
+        AjaxJson j = new AjaxJson();
+        try {
+            ImportUtil importUtil = new ImportUtil(file, 0, 0);
+            //从数据库中查出所有的 项目储备编号
+            List<String> proIdList = prepartionService.getAllProId();
+
+            //从基本数据表中查出所有的 项目储备编号
+            List<String> proIdList2 = prepartionService.getAllProId2();
+
+            //获取导入表格所有数据
+            List<PreliminaryPrepartion> reserveManagementList = ReserveProcessProjectProUtil.getPreLiminUtil(importUtil,proIdList,proIdList2);
+            //查询已有的参数数据 并分类返回已存在数据和未存在数据
+            Map map = prepartionService.getExistProjectList(reserveManagementList);
+            //未存在数据
+            List<PreliminaryPrepartion> withoutList = (List<PreliminaryPrepartion>) map.get("without");
+            //已存在数据
+            List<PreliminaryPrepartion> existList = (List<PreliminaryPrepartion>) map.get("exist");
+
+            //对未存在的数据进行批量导入
+            if(withoutList.size()>0){
+                prepartionService.insertList(withoutList);
+            }
+
+            //对已存在的数据进行修改
+            if(existList.size()>0){
+                for (PreliminaryPrepartion reserveManagement : existList) {
+                    prepartionService.update(reserveManagement);
+                }
+            }
+            int i = withoutList.size() + existList.size();
+            j.setMsg("已成功导入" + i + "条项目储备信息记录");
+
+        } catch (Exception e) {
+            j.setSuccess(false);
+            j.setMsg("导入项目储备信息失败!失败信息:" + e.getMessage());
+        }
+        return j;
+    }
+}

+ 10 - 1
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/web/ProcessController.java

@@ -16,6 +16,7 @@ import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.Reser
 import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.service.*;
 import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.utils.DataList;
 import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.utils.ReserveProcessProjectProUtil;
+import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.service.CableService;
 import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.service.EnginnerQueryService;
 import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo;
 import com.jeeplus.modules.sg.managementcenter.materialproject.util.ImportUtil;
@@ -78,6 +79,9 @@ public class ProcessController extends BaseController {
     @Autowired
     private DocumentInfoService infoService;
 
+    @Autowired
+    private CableService cableService;
+
     @ModelAttribute
     public ReserveSummaryProcess get(@RequestParam(required = false) String id) {
         ReserveSummaryProcess entity = null;
@@ -191,7 +195,7 @@ public class ProcessController extends BaseController {
      * */
     @ResponseBody
     @RequestMapping(value = "actDesignUnitNew")
-    public AjaxJson actDesignUnitNew(Act act, ReserveSummaryProcess reserveProcess,String material,String drjgc) throws Exception {
+    public AjaxJson actDesignUnitNew(Act act, ReserveSummaryProcess reserveProcess,String material,String drjgc,String uid) throws Exception {
         AjaxJson j = new AjaxJson();
 
         if (material != null || drjgc != null){
@@ -269,6 +273,11 @@ public class ProcessController extends BaseController {
                         }
                         //保存甲供材信息
                         reserveProcessService.saveList(infoList);
+                        //保存项目储备编号及电缆分段存入redis的id
+                        //保存前先根据项目储备编号去删除
+                        cableService.deleteCableRedis(reserveProcess.getProjectReserveId());
+                        cableService.insertIntoCableRedis(reserveProcess.getProjectReserveId(),uid);
+
                         //修改项目设计单位上传文件部分
 //                        reserveProcessService.updateDesign(reserveProcess);
                         reserveProcessService.actDesignUnit(act, reserveProcess);

+ 17 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/web/ReserveProcessProjectController.java

@@ -340,6 +340,7 @@ public class ReserveProcessProjectController extends BaseController {
             List<String> proIdList = projectService.getAllProId();
             //获取库中已有的项目名称数据
             List<String> nameList = projectService.getAllName();
+
             //获取库中建设及必要性内容数据
             List<String> contentList = projectService.getAllContentList();
             //获取导入表格所有数据
@@ -352,7 +353,23 @@ public class ReserveProcessProjectController extends BaseController {
             List<ReserveProcessProject> existList = (List<ReserveProcessProject>) map.get("exist");
 
             //对未存在的数据进行批量导入
+            List<ReserveProcessProject> nameList2 = projectService.getAllName2();
             if(withoutList.size()>0){
+                //项目名称叛重
+                for (int i=0;i<nameList2.size();i++){
+                    for (int z=0;z<withoutList.size();z++){
+                        if (withoutList.get(z).getProjectName().equals(nameList2.get(i).getProjectName())){
+                            j.setSuccess(false);
+                            j.setMsg("导入项目储备信息失败!失败信息:项目名称为:" + withoutList.get(z).getProjectName() + "的项目已存在");
+                            return j;
+                        }
+                        if (withoutList.get(z).getConstructionNecessityAndContent().equals(nameList2.get(i).getConstructionNecessityAndContent())){
+                            j.setSuccess(false);
+                            j.setMsg("导入项目储备信息失败!失败信息:建设必要性及内容为:" + withoutList.get(z).getProjectName() + "的项目已存在");
+                            return j;
+                        }
+                    }
+                }
                 projectService.insertList(withoutList);
             }
 

+ 96 - 27
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/web/SummaryStatisticController.java

@@ -22,6 +22,11 @@ import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.Hi
 import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.service.BudgetStatsService;
 import com.jeeplus.modules.sg.managementcenter.materialproject.util.ImportUtil;
 import com.jeeplus.modules.sg.managementcenter.reserveManagement.service.PersonnelTurnoverService;
+import com.jeeplus.modules.sg.raiseCapitalDesign.entity.CableSectionData;
+import com.jeeplus.modules.sg.raiseCapitalDesign.entity.CableSectionInfo;
+import com.jeeplus.modules.sg.raiseCapitalDesign.entity.VoltageInfo;
+import com.jeeplus.modules.sg.raiseCapitalDesign.service.RaiseCapitalDesignService;
+import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import org.activiti.engine.repository.ProcessDefinition;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -75,6 +80,9 @@ public class SummaryStatisticController extends BaseController {
     @Autowired
     private BudgetStatsService statsService;
 
+    @Autowired
+    private RaiseCapitalDesignService raiseCapitalDesignService;
+
 
     @ModelAttribute
     public ReserveSummary get(@RequestParam(required = false) String id) {
@@ -120,21 +128,21 @@ public class SummaryStatisticController extends BaseController {
         for (ReserveSummary summary : list) {
 
             //设置  预算(含税)    预算(不含税)
-            if (StringUtils.isNotEmpty(summary.getAfterTrialEstimateAmount())){
-                summary.setBudgetIncludesTax(summary.getAfterTrialEstimateAmount());
-            }else if (StringUtils.isNotEmpty(summary.getPretrialEstimateAmount())){
-                summary.setBudgetIncludesTax(summary.getPretrialEstimateAmount());
-            }else {
-                summary.setBudgetIncludesTax("");
-            }
-
-            if (StringUtils.isNotEmpty(summary.getAfterTrialEstimateAmountExcludeTax())){
-                summary.setBudgetNotIncludesTax(summary.getAfterTrialEstimateAmountExcludeTax());
-            }else if (StringUtils.isNotEmpty(summary.getPretrialEstimateAmountExcludeTax())){
-                summary.setBudgetNotIncludesTax(summary.getPretrialEstimateAmountExcludeTax());
-            }else {
-                summary.setBudgetNotIncludesTax("");
-            }
+//            if (StringUtils.isNotEmpty(summary.getAfterTrialEstimateAmount())){
+//                summary.setBudgetIncludesTax(summary.getAfterTrialEstimateAmount());
+//            }else if (StringUtils.isNotEmpty(summary.getPretrialEstimateAmount())){
+//                summary.setBudgetIncludesTax(summary.getPretrialEstimateAmount());
+//            }else {
+//                summary.setBudgetIncludesTax("");
+//            }
+//
+//            if (StringUtils.isNotEmpty(summary.getAfterTrialEstimateAmountExcludeTax())){
+//                summary.setBudgetNotIncludesTax(summary.getAfterTrialEstimateAmountExcludeTax());
+//            }else if (StringUtils.isNotEmpty(summary.getPretrialEstimateAmountExcludeTax())){
+//                summary.setBudgetNotIncludesTax(summary.getPretrialEstimateAmountExcludeTax());
+//            }else {
+//                summary.setBudgetNotIncludesTax("");
+//            }
 
             //根据projectReserveId查出流程表的proc_ins_id
             String procInsId = statisticService.getByProjectReserveId(summary.getProjectReserveId());
@@ -220,6 +228,7 @@ public class SummaryStatisticController extends BaseController {
         ReserveSummary proId = statisticService.getByProId(reserveManagement.getProjectReserveId());
         if (null == proId){
             proId = new ReserveSummary();
+//            BeanUtils.copyProperties(reserveManagement,proId);
             proId.setProjectReserveId(reserveManagement.getProjectReserveId());
             proId.setIncludeReserve(reserveManagement.getIncludeReserve());
             proId.setReasonForCancel(reserveManagement.getReasonForCancel());
@@ -232,6 +241,7 @@ public class SummaryStatisticController extends BaseController {
             proId.setRunPlanRequire(reserveManagement.getRunPlanRequire());
             proId.setProgramChangeDescription(reserveManagement.getProgramChangeDescription());
             proId.setDiscloseRemarks(reserveManagement.getDiscloseRemarks());
+            proId.setStartDesignOrNot(reserveManagement.getStartDesignOrNot());
             proId.setDemandUnitPriority(reserveManagement.getDemandUnitPriority());
             proId.setPreliminaryArrangement(reserveManagement.getPreliminaryArrangement());
             proId.setInitialImplementBatch(reserveManagement.getInitialImplementBatch());
@@ -250,6 +260,7 @@ public class SummaryStatisticController extends BaseController {
             proId.setProjectInitiateRemarks(reserveManagement.getProjectInitiateRemarks());
             statisticService.save(proId);
         }else {
+//            BeanUtils.copyProperties(reserveManagement,proId);
             proId.setIncludeReserve(reserveManagement.getIncludeReserve());
             proId.setReasonForCancel(reserveManagement.getReasonForCancel());
             proId.setComprehensiveProject(reserveManagement.getComprehensiveProject());
@@ -261,6 +272,7 @@ public class SummaryStatisticController extends BaseController {
             proId.setRunPlanRequire(reserveManagement.getRunPlanRequire());
             proId.setProgramChangeDescription(reserveManagement.getProgramChangeDescription());
             proId.setDiscloseRemarks(reserveManagement.getDiscloseRemarks());
+            proId.setStartDesignOrNot(reserveManagement.getStartDesignOrNot());
             proId.setDemandUnitPriority(reserveManagement.getDemandUnitPriority());
             proId.setPreliminaryArrangement(reserveManagement.getPreliminaryArrangement());
             proId.setInitialImplementBatch(reserveManagement.getInitialImplementBatch());
@@ -277,6 +289,7 @@ public class SummaryStatisticController extends BaseController {
             proId.setConstructionUnit(reserveManagement.getConstructionUnit());
             proId.setDrawOfficeDrawn(reserveManagement.getDrawOfficeDrawn());
             proId.setProjectInitiateRemarks(reserveManagement.getProjectInitiateRemarks());
+            proId.setProjectInitiateRemarks(reserveManagement.getProjectInitiateRemarks());
             //修改时需要从  省公司评审表中查看是否可以发起流程
             CompanyReview review = new CompanyReview();
             review.setProjectReserveId(reserveManagement.getProjectReserveId());
@@ -357,7 +370,7 @@ public class SummaryStatisticController extends BaseController {
                 }
             }
             //新增或编辑表单保存
-            statisticService.update(reserveManagement);
+            statisticService.update(proId);
         }
         j.setSuccess(true);
         j.setMsg("修改储备项目基本信息成功");
@@ -510,17 +523,17 @@ public class SummaryStatisticController extends BaseController {
         for (ReserveSummary summary : list) {
 
             //设置  预算(含税)    预算(不含税)
-            if (StringUtils.isNotEmpty(summary.getAfterTrialEstimateAmount())){
-                summary.setBudgetIncludesTax(summary.getAfterTrialEstimateAmount());
-            }else {
-                summary.setBudgetIncludesTax(summary.getPretrialEstimateAmount());
-            }
-
-            if (StringUtils.isNotEmpty(summary.getAfterTrialEstimateAmountExcludeTax())){
-                summary.setBudgetIncludesTax(summary.getAfterTrialEstimateAmountExcludeTax());
-            }else {
-                summary.setBudgetIncludesTax(summary.getPretrialEstimateAmountExcludeTax());
-            }
+//            if (StringUtils.isNotEmpty(summary.getAfterTrialEstimateAmount())){
+//                summary.setBudgetIncludesTax(summary.getAfterTrialEstimateAmount());
+//            }else {
+//                summary.setBudgetIncludesTax(summary.getPretrialEstimateAmount());
+//            }
+//
+//            if (StringUtils.isNotEmpty(summary.getAfterTrialEstimateAmountExcludeTax())){
+//                summary.setBudgetIncludesTax(summary.getAfterTrialEstimateAmountExcludeTax());
+//            }else {
+//                summary.setBudgetIncludesTax(summary.getPretrialEstimateAmountExcludeTax());
+//            }
 
             //根据projectReserveId查出流程表的proc_ins_id
             String procInsId = statisticService.getByProjectReserveId(summary.getProjectReserveId());
@@ -583,4 +596,60 @@ public class SummaryStatisticController extends BaseController {
         return "modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/reserveManagementModifyByzz";
     }
 
+    /**
+     * 电缆分段
+     * 查看,增加,编辑提资表单表单页面
+     */
+    @RequestMapping(value = "cableSectionForm")
+    public String cableSectionForm(String uuid, Model model,String projectName,String projectReserveId) {
+        List<CableSectionData> cableSectionData = raiseCapitalDesignService.getCableSectionData();
+        List<CableSectionInfo> cableFourHundredList = raiseCapitalDesignService.getCableSection(uuid + "cableFourHundred","cableFourHundred");
+        List<CableSectionInfo> cableHundredAndTwentyList = raiseCapitalDesignService.getCableSection(uuid + "cableHundredAndTwenty","cableHundredAndTwenty");
+        List<CableSectionInfo> cableThreeHundredList = raiseCapitalDesignService.getCableSection(uuid + "cableThreeHundred","cableThreeHundred");
+        List<CableSectionInfo> cableTwoHundredFortyList = raiseCapitalDesignService.getCableSection(uuid + "cableTwoHundredForty","cableTwoHundredForty");
+        List<CableSectionInfo> cableSeventyList = raiseCapitalDesignService.getCableSection(uuid + "cableSeventy","cableSeventy");
+        //获取电缆分段的系数
+        String cableFactor = DictUtils.getDictLabel("cableFactor", "designCalculateCoefficient", "");
+        model.addAttribute("cableFactor", cableFactor);
+        model.addAttribute("cableSectionData", cableSectionData);
+        model.addAttribute("cableFourHundredList", cableFourHundredList);
+        model.addAttribute("cableHundredAndTwentyList", cableHundredAndTwentyList);
+        model.addAttribute("cableThreeHundredList", cableThreeHundredList);
+        model.addAttribute("cableTwoHundredFortyList", cableTwoHundredFortyList);
+        model.addAttribute("cableSeventyList", cableSeventyList);
+        model.addAttribute("uuid", uuid);
+        model.addAttribute("projectName", projectName);
+        model.addAttribute("projectReserveId", projectReserveId);
+        return "modules/cg/reservemanagementcenter/raiseCapital/cableSectionForm";
+    }
+
+    /**
+     * 跳转架空导线处理页面
+     */
+    //@RequiresPermissions(value={"test:raiseCapitalDesign:view","test:raiseCapitalDesign:add","test:raiseCapitalDesign:edit"},logical=Logical.OR)
+    @RequestMapping(value = "aerialConductorForm")
+    public String aerialConductorForm(String uuid,String item, Model model,String projectName,String projectReserveId) {
+        //将新增页数据保存到redis中(item)
+        //raiseCapitalDesignService.disposeFormData(uuid,item);
+        //查询10KV计算系数
+        String highSingleVoltageCoefficient = DictUtils.getDictLabel("highSingleVoltageCoefficient", "designCalculateCoefficient", "");
+        String highDoubleVoltageCoefficient = DictUtils.getDictLabel("highDoubleVoltageCoefficient", "designCalculateCoefficient", "");
+        //查询0.4KV计算系数
+        String lowSingleVoltageCoefficient = DictUtils.getDictLabel("lowSingleVoltageCoefficient", "designCalculateCoefficient", "");
+        String lowDoubleVoltageCoefficient = DictUtils.getDictLabel("lowDoubleVoltageCoefficient", "designCalculateCoefficient", "");
+        //查询10KV数据
+        List<VoltageInfo> highVoltageList = raiseCapitalDesignService.getAerialConductor(uuid + "highVoltage","highVoltage");
+        //查询0.4KV数据
+        List<VoltageInfo> lowVoltageList = raiseCapitalDesignService.getAerialConductor(uuid + "lowVoltage","lowVoltage");
+        model.addAttribute("highSingleVoltageCoefficient", highSingleVoltageCoefficient);
+        model.addAttribute("highDoubleVoltageCoefficient", highDoubleVoltageCoefficient);
+        model.addAttribute("lowSingleVoltageCoefficient", lowSingleVoltageCoefficient);
+        model.addAttribute("lowDoubleVoltageCoefficient", lowDoubleVoltageCoefficient);
+        model.addAttribute("highVoltageList", highVoltageList);
+        model.addAttribute("lowVoltageList", lowVoltageList);
+        model.addAttribute("projectName", projectName);
+        model.addAttribute("projectReserveId", projectReserveId);
+        model.addAttribute("uuid", uuid);
+        return "modules/cg/reservemanagementcenter/raiseCapital/aerialConductorForm";
+    }
 }

+ 0 - 107
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/entity/BudgetStats.java

@@ -33,8 +33,6 @@ public class BudgetStats extends DataEntity<BudgetStats> {
     private String afterTrialSupervisionFee;            //概算信息(审后)- 监理费(含税)
     private String budgetRevision;                      //是否完成概算修改
     private String completeTime;                        //概算修改完成时间
-    private String designChange;                        //是否有设计变更
-    private String designChangeStatus;                  //设计变更状态
 
     //储备项目基本信息
     private String projectYear;             //项目年份
@@ -58,16 +56,6 @@ public class BudgetStats extends DataEntity<BudgetStats> {
     private String reserveProgress;          //储备进度
     private String implementPlan;            //是否纳入实施计划
     private String implementBatch;           //初定实施批次
-    private String projectReleaseBatch;      //项目下达批次
-    private String ownerProjectManager;      //业主项目经理
-    private String siteManagementUnit;       //现场施工管理单位
-    private String electricalProjectManager; //施工项目经理(电气)
-    private String civilEngineerProjectManager; //施工项目经理(土建)
-    private String electricalSubcontractor;  //电气分包单位
-    private String electricalContact;        //电气联系人、联系电话
-    private String civilEngineerSubcontractor; //土建分包单位
-    private String civilEngineerContact;     //土建联系人、联系电话
-    private String subcontractInfoRemark;     //分包信息-备注
 
 
     public String getProjectReserveId() {
@@ -254,22 +242,6 @@ public class BudgetStats extends DataEntity<BudgetStats> {
         this.completeTime = completeTime;
     }
 
-    public String getDesignChange() {
-        return designChange;
-    }
-
-    public void setDesignChange(String designChange) {
-        this.designChange = designChange;
-    }
-
-    public String getDesignChangeStatus() {
-        return designChangeStatus;
-    }
-
-    public void setDesignChangeStatus(String designChangeStatus) {
-        this.designChangeStatus = designChangeStatus;
-    }
-
     public String getProjectYear() {
         return projectYear;
     }
@@ -430,83 +402,4 @@ public class BudgetStats extends DataEntity<BudgetStats> {
         this.implementBatch = implementBatch;
     }
 
-    public String getProjectReleaseBatch() {
-        return projectReleaseBatch;
-    }
-
-    public void setProjectReleaseBatch(String projectReleaseBatch) {
-        this.projectReleaseBatch = projectReleaseBatch;
-    }
-
-    public String getOwnerProjectManager() {
-        return ownerProjectManager;
-    }
-
-    public void setOwnerProjectManager(String ownerProjectManager) {
-        this.ownerProjectManager = ownerProjectManager;
-    }
-
-    public String getSiteManagementUnit() {
-        return siteManagementUnit;
-    }
-
-    public void setSiteManagementUnit(String siteManagementUnit) {
-        this.siteManagementUnit = siteManagementUnit;
-    }
-
-    public String getElectricalProjectManager() {
-        return electricalProjectManager;
-    }
-
-    public void setElectricalProjectManager(String electricalProjectManager) {
-        this.electricalProjectManager = electricalProjectManager;
-    }
-
-    public String getCivilEngineerProjectManager() {
-        return civilEngineerProjectManager;
-    }
-
-    public void setCivilEngineerProjectManager(String civilEngineerProjectManager) {
-        this.civilEngineerProjectManager = civilEngineerProjectManager;
-    }
-
-    public String getElectricalSubcontractor() {
-        return electricalSubcontractor;
-    }
-
-    public void setElectricalSubcontractor(String electricalSubcontractor) {
-        this.electricalSubcontractor = electricalSubcontractor;
-    }
-
-    public String getElectricalContact() {
-        return electricalContact;
-    }
-
-    public void setElectricalContact(String electricalContact) {
-        this.electricalContact = electricalContact;
-    }
-
-    public String getCivilEngineerSubcontractor() {
-        return civilEngineerSubcontractor;
-    }
-
-    public void setCivilEngineerSubcontractor(String civilEngineerSubcontractor) {
-        this.civilEngineerSubcontractor = civilEngineerSubcontractor;
-    }
-
-    public String getCivilEngineerContact() {
-        return civilEngineerContact;
-    }
-
-    public void setCivilEngineerContact(String civilEngineerContact) {
-        this.civilEngineerContact = civilEngineerContact;
-    }
-
-    public String getSubcontractInfoRemark() {
-        return subcontractInfoRemark;
-    }
-
-    public void setSubcontractInfoRemark(String subcontractInfoRemark) {
-        this.subcontractInfoRemark = subcontractInfoRemark;
-    }
 }

+ 272 - 27
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/entity/Cable.java

@@ -9,19 +9,121 @@ import com.jeeplus.core.persistence.DataEntity;
  **/
 public class Cable extends DataEntity<Cable> {
 
+    //储备项目基本信息
+    private String projectYear;             //项目年份
+    private String projectNature;           //项目性质
+    private String demandUnit;              //需求单位
+    private String district;                //区域
+    private String projectGroup;            //项目分组
+    private String reserveBatches;          //储备批次
+    private String blockSupply;             //供电区域
+    private String gridNumber;              //网格编号
+    private String cellNumber;              //单元格编号
     private String projectReserveId;        //项目储备编号
     private String projectName;             //项目名称
+    private String constructionNecessityAndContent;           //建设必要性及内容
+    private String substationName;           //变电站名称
+    private String circuitName;              //线路名称
+    private String netRackProjectDivide;     //网架项目划分
+    private String requirementType;          //需求类型
+    private String costEstimate;             //费用估算
+    private String basicRemarks;             //备注
+
+    private String reserveProgress;          //储备进度
+    private String implementPlan;            //是否纳入实施计划
+    private String implementBatch;           //初定实施批次
+
     private String specifications;          //电缆规格型号
-    private String civilEngineer;           //是否含土建
+    private String destination;             //起讫点
+    private String pathLength;              //路径长(m)
+    private String upperRod;                //上杆(m)
+    private String arrival;                 //进站(m)
+    private String incomingEquipment;       //进设备(m)
+    private String coefficient;             //系数
+    private String electricalChief;         //电气长(m)
+    private String cableTrenchBuild;        //是否新建电缆管沟
     private String pipeLayeCable;           //是否在现有管道施放电缆
     private String completePipe;            //是否完成通管
+    private String segmentLengthClassinication; //段长分类
+    private String remarks;                 //备注
+
+    private String civilEngineer;           //是否含土建
     private String completeMeasurement;     //是否完成实测
     private String measureLength;           //实测长度
-    private String designCableLength;           //设计电缆段长
-    private String segmentLengthClassinication; //段长分类
+    private String designCableLength;       //设计电缆段长
     private String projectManager;          //项目经理
-    private String remarks;                 //备注
 
+    public String getProjectYear() {
+        return projectYear;
+    }
+
+    public void setProjectYear(String projectYear) {
+        this.projectYear = projectYear;
+    }
+
+    public String getProjectNature() {
+        return projectNature;
+    }
+
+    public void setProjectNature(String projectNature) {
+        this.projectNature = projectNature;
+    }
+
+    public String getDemandUnit() {
+        return demandUnit;
+    }
+
+    public void setDemandUnit(String demandUnit) {
+        this.demandUnit = demandUnit;
+    }
+
+    public String getDistrict() {
+        return district;
+    }
+
+    public void setDistrict(String district) {
+        this.district = district;
+    }
+
+    public String getProjectGroup() {
+        return projectGroup;
+    }
+
+    public void setProjectGroup(String projectGroup) {
+        this.projectGroup = projectGroup;
+    }
+
+    public String getReserveBatches() {
+        return reserveBatches;
+    }
+
+    public void setReserveBatches(String reserveBatches) {
+        this.reserveBatches = reserveBatches;
+    }
+
+    public String getBlockSupply() {
+        return blockSupply;
+    }
+
+    public void setBlockSupply(String blockSupply) {
+        this.blockSupply = blockSupply;
+    }
+
+    public String getGridNumber() {
+        return gridNumber;
+    }
+
+    public void setGridNumber(String gridNumber) {
+        this.gridNumber = gridNumber;
+    }
+
+    public String getCellNumber() {
+        return cellNumber;
+    }
+
+    public void setCellNumber(String cellNumber) {
+        this.cellNumber = cellNumber;
+    }
 
     public String getProjectReserveId() {
         return projectReserveId;
@@ -39,6 +141,86 @@ public class Cable extends DataEntity<Cable> {
         this.projectName = projectName;
     }
 
+    public String getConstructionNecessityAndContent() {
+        return constructionNecessityAndContent;
+    }
+
+    public void setConstructionNecessityAndContent(String constructionNecessityAndContent) {
+        this.constructionNecessityAndContent = constructionNecessityAndContent;
+    }
+
+    public String getSubstationName() {
+        return substationName;
+    }
+
+    public void setSubstationName(String substationName) {
+        this.substationName = substationName;
+    }
+
+    public String getCircuitName() {
+        return circuitName;
+    }
+
+    public void setCircuitName(String circuitName) {
+        this.circuitName = circuitName;
+    }
+
+    public String getNetRackProjectDivide() {
+        return netRackProjectDivide;
+    }
+
+    public void setNetRackProjectDivide(String netRackProjectDivide) {
+        this.netRackProjectDivide = netRackProjectDivide;
+    }
+
+    public String getRequirementType() {
+        return requirementType;
+    }
+
+    public void setRequirementType(String requirementType) {
+        this.requirementType = requirementType;
+    }
+
+    public String getCostEstimate() {
+        return costEstimate;
+    }
+
+    public void setCostEstimate(String costEstimate) {
+        this.costEstimate = costEstimate;
+    }
+
+    public String getBasicRemarks() {
+        return basicRemarks;
+    }
+
+    public void setBasicRemarks(String basicRemarks) {
+        this.basicRemarks = basicRemarks;
+    }
+
+    public String getReserveProgress() {
+        return reserveProgress;
+    }
+
+    public void setReserveProgress(String reserveProgress) {
+        this.reserveProgress = reserveProgress;
+    }
+
+    public String getImplementPlan() {
+        return implementPlan;
+    }
+
+    public void setImplementPlan(String implementPlan) {
+        this.implementPlan = implementPlan;
+    }
+
+    public String getImplementBatch() {
+        return implementBatch;
+    }
+
+    public void setImplementBatch(String implementBatch) {
+        this.implementBatch = implementBatch;
+    }
+
     public String getSpecifications() {
         return specifications;
     }
@@ -47,12 +229,68 @@ public class Cable extends DataEntity<Cable> {
         this.specifications = specifications;
     }
 
-    public String getCivilEngineer() {
-        return civilEngineer;
+    public String getDestination() {
+        return destination;
     }
 
-    public void setCivilEngineer(String civilEngineer) {
-        this.civilEngineer = civilEngineer;
+    public void setDestination(String destination) {
+        this.destination = destination;
+    }
+
+    public String getPathLength() {
+        return pathLength;
+    }
+
+    public void setPathLength(String pathLength) {
+        this.pathLength = pathLength;
+    }
+
+    public String getUpperRod() {
+        return upperRod;
+    }
+
+    public void setUpperRod(String upperRod) {
+        this.upperRod = upperRod;
+    }
+
+    public String getArrival() {
+        return arrival;
+    }
+
+    public void setArrival(String arrival) {
+        this.arrival = arrival;
+    }
+
+    public String getIncomingEquipment() {
+        return incomingEquipment;
+    }
+
+    public void setIncomingEquipment(String incomingEquipment) {
+        this.incomingEquipment = incomingEquipment;
+    }
+
+    public String getCoefficient() {
+        return coefficient;
+    }
+
+    public void setCoefficient(String coefficient) {
+        this.coefficient = coefficient;
+    }
+
+    public String getElectricalChief() {
+        return electricalChief;
+    }
+
+    public void setElectricalChief(String electricalChief) {
+        this.electricalChief = electricalChief;
+    }
+
+    public String getCableTrenchBuild() {
+        return cableTrenchBuild;
+    }
+
+    public void setCableTrenchBuild(String cableTrenchBuild) {
+        this.cableTrenchBuild = cableTrenchBuild;
     }
 
     public String getPipeLayeCable() {
@@ -71,6 +309,32 @@ public class Cable extends DataEntity<Cable> {
         this.completePipe = completePipe;
     }
 
+    public String getSegmentLengthClassinication() {
+        return segmentLengthClassinication;
+    }
+
+    public void setSegmentLengthClassinication(String segmentLengthClassinication) {
+        this.segmentLengthClassinication = segmentLengthClassinication;
+    }
+
+    @Override
+    public String getRemarks() {
+        return remarks;
+    }
+
+    @Override
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+
+    public String getCivilEngineer() {
+        return civilEngineer;
+    }
+
+    public void setCivilEngineer(String civilEngineer) {
+        this.civilEngineer = civilEngineer;
+    }
+
     public String getCompleteMeasurement() {
         return completeMeasurement;
     }
@@ -95,14 +359,6 @@ public class Cable extends DataEntity<Cable> {
         this.designCableLength = designCableLength;
     }
 
-    public String getSegmentLengthClassinication() {
-        return segmentLengthClassinication;
-    }
-
-    public void setSegmentLengthClassinication(String segmentLengthClassinication) {
-        this.segmentLengthClassinication = segmentLengthClassinication;
-    }
-
     public String getProjectManager() {
         return projectManager;
     }
@@ -110,15 +366,4 @@ public class Cable extends DataEntity<Cable> {
     public void setProjectManager(String projectManager) {
         this.projectManager = projectManager;
     }
-
-    @Override
-    public String getRemarks() {
-        return remarks;
-    }
-
-    @Override
-    public void setRemarks(String remarks) {
-        this.remarks = remarks;
-    }
-
 }

+ 3 - 19
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/entity/ConstructeScale.java

@@ -29,11 +29,11 @@ public class ConstructeScale extends DataEntity<ConstructeScale> {
     private String costEstimate;            //费用估算
 
     //统计表-:概预算统计表
-    private String afterTrialEstimateAmount;        //概算金额(含税)
-    private String afterTrialEstimateAmountExcludeTax;        //总概算金额(不含税)
+    private String afterTrialEstimateAmount;        //概算
+//    private String afterTrialEstimateAmountExcludeTax;        //总概算金额(不含税)
 
     //从其字段
-    private String reserveProgress;            //项目进度
+//    private String reserveProgress;            //项目进度
     private String switchCabinet;              //开关柜
     private String overheadLine;               //架空线路
     private String powerCable;                 //电力电缆
@@ -208,22 +208,6 @@ public class ConstructeScale extends DataEntity<ConstructeScale> {
         this.afterTrialEstimateAmount = afterTrialEstimateAmount;
     }
 
-    public String getAfterTrialEstimateAmountExcludeTax() {
-        return afterTrialEstimateAmountExcludeTax;
-    }
-
-    public void setAfterTrialEstimateAmountExcludeTax(String afterTrialEstimateAmountExcludeTax) {
-        this.afterTrialEstimateAmountExcludeTax = afterTrialEstimateAmountExcludeTax;
-    }
-
-    public String getReserveProgress() {
-        return reserveProgress;
-    }
-
-    public void setReserveProgress(String reserveProgress) {
-        this.reserveProgress = reserveProgress;
-    }
-
     public String getSwitchCabinet() {
         return switchCabinet;
     }

+ 135 - 17
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/entity/ProgressStats.java

@@ -9,12 +9,24 @@ import com.jeeplus.core.persistence.DataEntity;
  **/
 public class ProgressStats extends DataEntity<ProgressStats> {
 
-    private String projectReserveId;        //项目储备编号
-    private String projectName;             //储备项目名称
-    private String requirementType;         //储备项目类型
-    private String demandUnit;              //需求提出单位
+    private String projectYear;             //项目年份
+    private String projectNature;           //项目性质
+    private String demandUnit;              //需求单位
+    private String district;                //区域
+    private String projectGroup;            //项目分组
     private String reserveBatches;          //储备批次
-    private String basicRemarks;            //备注
+    private String blockSupply;             //供电区域
+    private String gridNumber;              //网格编号
+    private String cellNumber;              //单元格编号
+    private String projectReserveId;        //项目储备编号
+    private String projectName;             //项目名称
+    private String constructionNecessityAndContent;           //建设必要性及内容
+    private String substationName;           //变电站名称
+    private String circuitName;              //线路名称
+    private String netRackProjectDivide;     //网架项目划分
+    private String requirementType;          //需求类型
+    private String costEstimate;             //费用估算
+    private String basicRemarks;             //备注
 
     private String reserveProgress;         //储备进度
     private String implementPlan;           //是否纳入实施计划
@@ -72,6 +84,80 @@ public class ProgressStats extends DataEntity<ProgressStats> {
     private String transferProjectCenterDate;       //正式图纸移交项目中心日期
     private String transferToConstructionUnitDate;  //正式图纸移交施工单位日期
 
+    private String completeReserve;   //是否完成储备
+
+    public String getProjectYear() {
+        return projectYear;
+    }
+
+    public void setProjectYear(String projectYear) {
+        this.projectYear = projectYear;
+    }
+
+    public String getProjectNature() {
+        return projectNature;
+    }
+
+    public void setProjectNature(String projectNature) {
+        this.projectNature = projectNature;
+    }
+
+    public String getDemandUnit() {
+        return demandUnit;
+    }
+
+    public void setDemandUnit(String demandUnit) {
+        this.demandUnit = demandUnit;
+    }
+
+    public String getDistrict() {
+        return district;
+    }
+
+    public void setDistrict(String district) {
+        this.district = district;
+    }
+
+    public String getProjectGroup() {
+        return projectGroup;
+    }
+
+    public void setProjectGroup(String projectGroup) {
+        this.projectGroup = projectGroup;
+    }
+
+    public String getReserveBatches() {
+        return reserveBatches;
+    }
+
+    public void setReserveBatches(String reserveBatches) {
+        this.reserveBatches = reserveBatches;
+    }
+
+    public String getBlockSupply() {
+        return blockSupply;
+    }
+
+    public void setBlockSupply(String blockSupply) {
+        this.blockSupply = blockSupply;
+    }
+
+    public String getGridNumber() {
+        return gridNumber;
+    }
+
+    public void setGridNumber(String gridNumber) {
+        this.gridNumber = gridNumber;
+    }
+
+    public String getCellNumber() {
+        return cellNumber;
+    }
+
+    public void setCellNumber(String cellNumber) {
+        this.cellNumber = cellNumber;
+    }
+
     public String getProjectReserveId() {
         return projectReserveId;
     }
@@ -88,28 +174,52 @@ public class ProgressStats extends DataEntity<ProgressStats> {
         this.projectName = projectName;
     }
 
-    public String getRequirementType() {
-        return requirementType;
+    public String getConstructionNecessityAndContent() {
+        return constructionNecessityAndContent;
     }
 
-    public void setRequirementType(String requirementType) {
-        this.requirementType = requirementType;
+    public void setConstructionNecessityAndContent(String constructionNecessityAndContent) {
+        this.constructionNecessityAndContent = constructionNecessityAndContent;
     }
 
-    public String getDemandUnit() {
-        return demandUnit;
+    public String getSubstationName() {
+        return substationName;
     }
 
-    public void setDemandUnit(String demandUnit) {
-        this.demandUnit = demandUnit;
+    public void setSubstationName(String substationName) {
+        this.substationName = substationName;
     }
 
-    public String getReserveBatches() {
-        return reserveBatches;
+    public String getCircuitName() {
+        return circuitName;
     }
 
-    public void setReserveBatches(String reserveBatches) {
-        this.reserveBatches = reserveBatches;
+    public void setCircuitName(String circuitName) {
+        this.circuitName = circuitName;
+    }
+
+    public String getNetRackProjectDivide() {
+        return netRackProjectDivide;
+    }
+
+    public void setNetRackProjectDivide(String netRackProjectDivide) {
+        this.netRackProjectDivide = netRackProjectDivide;
+    }
+
+    public String getRequirementType() {
+        return requirementType;
+    }
+
+    public void setRequirementType(String requirementType) {
+        this.requirementType = requirementType;
+    }
+
+    public String getCostEstimate() {
+        return costEstimate;
+    }
+
+    public void setCostEstimate(String costEstimate) {
+        this.costEstimate = costEstimate;
     }
 
     public String getBasicRemarks() {
@@ -495,4 +605,12 @@ public class ProgressStats extends DataEntity<ProgressStats> {
     public void setTransferToConstructionUnitDate(String transferToConstructionUnitDate) {
         this.transferToConstructionUnitDate = transferToConstructionUnitDate;
     }
+
+    public String getCompleteReserve() {
+        return completeReserve;
+    }
+
+    public void setCompleteReserve(String completeReserve) {
+        this.completeReserve = completeReserve;
+    }
 }

+ 16 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/CableMapper.java

@@ -47,4 +47,20 @@ public interface CableMapper extends BaseMapper<Cable> {
      * @return
      */
     List<Cable> exportFindList(Cable cable);
+
+    /**
+     * 将项目储备编号与存入redis的id存起来
+     * @param projectReserveId
+     * @param redisId
+     */
+    void insertIntoCableRedis(@Param("projectReserveId")String projectReserveId,
+                              @Param("redisId")String redisId);
+
+    /**
+     * 根据项目储备编号删除
+     * @param projectReserveId
+     */
+    void deleteCableRedis(String projectReserveId);
+
+    String getRedisIdByProjectReserveId(String reserveId);
 }

+ 18 - 19
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/xml/BudgetStatsMapper.xml

@@ -9,7 +9,24 @@
 		a.update_by AS "updateBy.id",
 		a.update_date AS "updateDate",
 		a.del_flag AS "delFlag",
+		a.projectYear,
+		a.projectNature,
+		a.demandUnit,
+		a.district,
+		a.projectGroup,
+		a.reserveBatches,
+		a.blockSupply,
+		a.gridNumber,
+		a.cellNumber,
 		a.projectReserveId,
+		a.projectName,
+		a.constructionNecessityAndContent,
+		a.substationName,
+		a.circuitName,
+		a.netRackProjectDivide,
+		a.requirementType,
+		a.costEstimate,
+		a.basicRemarks,
 		IFNULL(b.pretrialEstimateAmount,"") as pretrialEstimateAmount,
 		IFNULL(b.pretrialEstimateAmountExcludeTax,"") as pretrialEstimateAmountExcludeTax,
 		IFNULL(b.pretrialDeductibleAmount,"") as pretrialDeductibleAmount,
@@ -30,26 +47,8 @@
 		IFNULL(b.afterTrialSurveyFee,"") as afterTrialSurveyFee,
 		IFNULL(b.afterTrialDesignFee,"") as afterTrialDesignFee,
 		IFNULL(b.afterTrialSupervisionFee,"") as afterTrialSupervisionFee,
-        a.projectYear,
-		a.projectNature,
-		a.demandUnit,
-		a.district,
-		a.projectGroup,
-		a.reserveBatches,
-		a.blockSupply,
-		a.gridNumber,
-		a.cellNumber,
-		a.projectName,
-		a.constructionNecessityAndContent,
-		a.substationName,
-		a.circuitName,
-		a.netRackProjectDivide,
-		a.requirementType,
-		a.costEstimate,
-		a.basicRemarks,
 		IFNULL(c.includeReserve,"") as implementPlan,
-		IFNULL(c.initialImplementBatch,"") as implementBatch,
-		IFNULL(c.implementationBatch,"") as projectReleaseBatch
+		IFNULL(c.initialImplementBatch,"") as implementBatch
     </sql>
 
     <insert id="insert">

+ 44 - 7
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/xml/CableMapper.xml

@@ -9,8 +9,24 @@
 		a.update_by AS "updateBy.id",
 		a.update_date AS "updateDate",
 		a.del_flag AS "delFlag",
-        a.projectReserveId,
-        a.projectName,
+		a.projectYear,
+		a.projectNature,
+		a.demandUnit,
+		a.district,
+		a.projectGroup,
+		a.reserveBatches,
+		a.blockSupply,
+		a.gridNumber,
+		a.cellNumber,
+		a.projectReserveId,
+		a.projectName,
+		a.constructionNecessityAndContent,
+		a.substationName,
+		a.circuitName,
+		a.netRackProjectDivide,
+		a.requirementType,
+		a.costEstimate,
+		a.basicRemarks,
         IFNULL(b.civilEngineer,"") as civilEngineer,
         IFNULL(b.pipeLayeCable,"") as pipeLayeCable,
         IFNULL(b.completePipe,"") as completePipe,
@@ -18,7 +34,9 @@
         IFNULL(b.measureLength,"") as measureLength,
         IFNULL(b.segmentLengthClassinication,"") as segmentLengthClassinication,
         IFNULL(b.remarks,"") as remarks,
-        a.ownerProjectManager as projectManager
+        IFNULL(b.cableTrenchBuild,"") as cableTrenchBuild,
+        IFNULL(cgp.implementPlan,"") as implementPlan,
+        IFNULL(cgp.implementBatch,"") as implementBatch
 
     </sql>
 
@@ -37,7 +55,8 @@
         completeMeasurement,
         measureLength,
         segmentLengthClassinication,
-        remarks
+        remarks,
+        cableTrenchBuild
         )
         values
             (
@@ -54,7 +73,8 @@
             #{completeMeasurement},
             #{measureLength},
             #{segmentLengthClassinication},
-            #{remarks}
+            #{remarks},
+            #{cableTrenchBuild}
             )
     </insert>
     <insert id="insertList">
@@ -72,7 +92,8 @@
         completeMeasurement,
         measureLength,
         segmentLengthClassinication,
-        remarks
+        remarks,
+        cableTrenchBuild
         )
         values
         <foreach collection="list" item="item" index="index" separator="," >
@@ -90,15 +111,22 @@
             #{item.completeMeasurement},
             #{item.measureLength},
             #{item.segmentLengthClassinication},
-            #{item.remarks}
+            #{item.remarks},
+            #{item.cableTrenchBuild}
             )
         </foreach>
     </insert>
+    <insert id="insertIntoCableRedis">
+        insert into cg_cable_redis values (#{projectReserveId},#{redisId})
+    </insert>
     <delete id="deleteByProId">
         delete from
         cg_cable
         where projectReserveId = #{proId}
     </delete>
+    <delete id="deleteCableRedis">
+        delete from cg_cable_redis where projectReserveId = #{projectReserveId}
+    </delete>
 
     <select id="findList" resultType="com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.Cable">
         select
@@ -106,6 +134,8 @@
         from cg_reserve_process a
         left join cg_cable b
         on a.projectReserveId = b.projectReserveId
+        left join cg_reserve_preliminary_preparations cgp
+        on a.projectReserveId = cgp.projectReserveId
         <where>
             a.del_flag = 0
             <if test="projectReserveId!=null and projectReserveId!=''">
@@ -140,6 +170,8 @@
         from cg_reserve_process a
         left join cg_cable b
         on a.projectReserveId = b.projectReserveId
+        left join cg_reserve_preliminary_preparations cgp
+        on a.projectReserveId = cgp.projectReserveId
         where a.id = #{id}
     </select>
     <select id="exportFindList"
@@ -149,6 +181,8 @@
         from cg_reserve_process a
         left join cg_cable b
         on a.projectReserveId = b.projectReserveId
+        left join cg_reserve_preliminary_preparations cgp
+        on a.projectReserveId = cgp.projectReserveId
         <where>
             a.del_flag = 0
             <if test="projectReserveId!=null and projectReserveId!=''">
@@ -177,4 +211,7 @@
     <select id="getAllProId" resultType="java.lang.String">
         select projectReserveId from cg_reserve_process
     </select>
+    <select id="getRedisIdByProjectReserveId" resultType="java.lang.String">
+        select redisId from cg_cable_redis where projectReserveId = #{reserveId}
+    </select>
 </mapper>

+ 1 - 2
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/xml/ConstructeScaleMapper.xml

@@ -24,8 +24,7 @@
 		a.cellNumber,
 		a.projectName,
 		a.constructionNecessityAndContent,
-		IFNULL(c.afterTrialEstimateAmount,"") as afterTrialEstimateAmount,
-		IFNULL(c.afterTrialEstimateAmountExcludeTax,"") as afterTrialEstimateAmountExcludeTax
+		IFNULL(c.afterTrialEstimateAmount,"") as afterTrialEstimateAmount
 
     </sql>
 

+ 17 - 5
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/xml/ProgressStatsMapper.xml

@@ -9,7 +9,24 @@
 		a.update_by AS "updateBy.id",
 		a.update_date AS "updateDate",
 		a.del_flag AS "delFlag",
+		a.projectYear,
+		a.projectNature,
+		a.demandUnit,
+		a.district,
+		a.projectGroup,
+		a.reserveBatches,
+		a.blockSupply,
+		a.gridNumber,
+		a.cellNumber,
 		a.projectReserveId,
+		a.projectName,
+		a.constructionNecessityAndContent,
+		a.substationName,
+		a.circuitName,
+		a.netRackProjectDivide,
+		a.requirementType,
+		a.costEstimate,
+		a.basicRemarks,
 		IFNULL(b.inspectDepartmentReview,"") as inspectDepartmentReview,
 		IFNULL(b.inspectDepartmentReviewTime,"") as inspectDepartmentReviewTime,
 		IFNULL(b.releaseReserveTime,"") as releaseReserveTime,
@@ -20,11 +37,6 @@
 		IFNULL(b.budgetRemarks,"") as budgetRemarks,
 		IFNULL(b.drawingUnionRemarks,"") as drawingUnionRemarks,
 		IFNULL(b.drawingDate,"") as drawingDate,
-        a.projectName,
-        a.requirementType,
-        a.demandUnit,
-        a.reserveBatches,
-        a.basicRemarks,
         IFNULL(c.includeReserve,"") as implementPlan,
         IFNULL(c.initialImplementBatch,"") as initialImplementBatch,
         IFNULL(c.includeReserve,"") as includeReserve,

+ 24 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/service/CableService.java

@@ -24,6 +24,30 @@ public class CableService extends CrudService<CableMapper, Cable> {
     private CableMapper dao;
 
     /**
+     * 根据项目储备id将redis的id查出来
+     * @param reserveId
+     * @return
+     */
+    public String getRedisIdByProjectReserveId(String reserveId){
+        return dao.getRedisIdByProjectReserveId(reserveId);
+    }
+
+    @Transactional(readOnly = false)
+    public void insertIntoCableRedis(String projectReserveId,String redisId){
+        dao.insertIntoCableRedis(projectReserveId, redisId);
+    }
+
+    /**
+     * 根据项目储备编号删除
+     * @param projectReserveId
+     */
+    @Transactional(readOnly = false)
+    public void deleteCableRedis(String projectReserveId){
+        dao.deleteCableRedis(projectReserveId);
+    }
+
+
+    /**
      * 获取所有的  项目储备编号
      * @return
      */

+ 286 - 255
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/util/ExcelExportUtil.java

@@ -71,39 +71,87 @@ public class ExcelExportUtil {
     public void exportCable(HttpServletResponse response, XSSFWorkbook workbook, List<Cable> list){
         try {
             int index = 1;//第一列序号
-            int rowNum = 2;//数据起始列
+            int rowNum = 3;//数据起始列
             Sheet sheet = workbook.getSheetAt(0);
             for(int i=0;i<list.size();i++){
                 Row row = sheet.createRow(rowNum+i);
                 Cell cell0 = crateCell(workbook,row,0); //序号
-                Cell cell1 = crateCell(workbook,row,3); //项目储备编号
-                Cell cell2 = crateCell(workbook,row,4); //项目名称
-                Cell cell3 = crateCell(workbook,row,5); //电缆规格型号
-                Cell cell4 = crateCell(workbook,row,6); //是否含土建
-                Cell cell5 = crateCell(workbook,row,7); //是否在现有管道施放电缆
-                Cell cell6 = crateCell(workbook,row,8); //是否完成通管
-                Cell cell7 = crateCell(workbook,row,9); //是否完成实测
-                Cell cell8 = crateCell(workbook,row,10); //实测长度
-                Cell cell9 = crateCell(workbook,row,11); //设计电缆段长
-                Cell cell10 = crateCell(workbook,row,12); //段长分类
-                Cell cell11 = crateCell(workbook,row,13); //项目经理
-                Cell cell12 = crateCell(workbook,row,14); //备注
+                Cell cell1 = crateCell(workbook,row,1); //项目年份
+                Cell cell2 = crateCell(workbook,row,2); //项目性质
+                Cell cell3 = crateCell(workbook,row,3); //需求单位
+                Cell cell4 = crateCell(workbook,row,4); //区域
+                Cell cell5 = crateCell(workbook,row,5); //项目分组
+                Cell cell6 = crateCell(workbook,row,6); //储备批次
+                Cell cell7 = crateCell(workbook,row,7); //供电区域
+                Cell cell8 = crateCell(workbook,row,8); //网格编号
+                Cell cell9 = crateCell(workbook,row,9); //单元格编号
+                Cell cell10 = crateCell(workbook,row,10); //项目储备编号
+                Cell cell11 = crateCell(workbook,row,11); //项目名称
+                Cell cell12 = crateCell(workbook,row,12); //建设必要性及内容
+                Cell cell13 = crateCell(workbook,row,13); //变电站名称
+                Cell cell14 = crateCell(workbook,row,14); //线路名称
+                Cell cell15 = crateCell(workbook,row,15); //网架项目划分
+                Cell cell16 = crateCell(workbook,row,16); //需求类型
+                Cell cell17 = crateCell(workbook,row,17); //费用估算
+                Cell cell18 = crateCell(workbook,row,18); //备注
+                Cell cell19 = crateCell(workbook,row,19); //储备进度
+                Cell cell20 = crateCell(workbook,row,20); //是否纳入实施计划
+                Cell cell21 = crateCell(workbook,row,21); //初定实施批次
+                Cell cell22 = crateCell(workbook,row,22); //电缆规格型号
+                Cell cell23 = crateCell(workbook,row,23); //起讫点
+                Cell cell24 = crateCell(workbook,row,24); //路径长(m)
+                Cell cell25 = crateCell(workbook,row,25); //上杆(m)
+                Cell cell26 = crateCell(workbook,row,26); //进站(m)
+                Cell cell27 = crateCell(workbook,row,27); //进设备(m)
+                Cell cell28 = crateCell(workbook,row,28); //系数
+                Cell cell29 = crateCell(workbook,row,29); //电气长(m)
+                Cell cell30 = crateCell(workbook,row,30); //是否新建电缆管沟
+                Cell cell31 = crateCell(workbook,row,31); //是否在现有管道施放电缆
+                Cell cell32 = crateCell(workbook,row,32); //是否完成通管
+                Cell cell33 = crateCell(workbook,row,33); //段长分类
+                Cell cell34 = crateCell(workbook,row,34); //备注
 
                 Cable cable = list.get(i);
 
                 cell0.setCellValue(String.valueOf(index++));
-                cell1.setCellValue(cable.getProjectReserveId());
-                cell2.setCellValue(cable.getProjectName());
-                cell3.setCellValue(cable.getSpecifications());
-                cell4.setCellValue(cable.getCivilEngineer());
-                cell5.setCellValue(cable.getPipeLayeCable());
-                cell6.setCellValue(cable.getCompletePipe());
-                cell7.setCellValue(cable.getCompleteMeasurement());
-                cell8.setCellValue(cable.getMeasureLength());
-                cell9.setCellValue(cable.getDesignCableLength());
-                cell10.setCellValue(cable.getSegmentLengthClassinication());
-                cell11.setCellValue(cable.getProjectManager());
-                cell12.setCellValue(cable.getRemarks());
+                cell1.setCellValue(cable.getProjectYear());
+                cell2.setCellValue(cable.getProjectNature());
+                cell3.setCellValue(cable.getDemandUnit());
+                cell4.setCellValue(cable.getDistrict());
+                cell5.setCellValue(cable.getProjectGroup());
+                cell6.setCellValue(cable.getReserveBatches());
+                cell7.setCellValue(cable.getBlockSupply());
+                cell8.setCellValue(cable.getGridNumber());
+                cell9.setCellValue(cable.getCellNumber());
+                cell10.setCellValue(cable.getProjectReserveId());
+                cell11.setCellValue(cable.getProjectName());
+                cell12.setCellValue(cable.getConstructionNecessityAndContent());
+                cell13.setCellValue(cable.getSubstationName());
+                cell14.setCellValue(cable.getCircuitName());
+                cell15.setCellValue(cable.getNetRackProjectDivide());
+                cell16.setCellValue(cable.getRequirementType());
+
+                String costEstimateStr= cable.getCostEstimate();
+                if(StringUtils.isNotEmpty(costEstimateStr)){
+                    cell17.setCellValue(Double.parseDouble(costEstimateStr));
+                }
+                cell18.setCellValue(cable.getBasicRemarks());
+                cell19.setCellValue(cable.getReserveProgress());
+                cell20.setCellValue(cable.getImplementPlan());
+                cell21.setCellValue(cable.getImplementBatch());
+                cell22.setCellValue(cable.getSpecifications());
+                cell23.setCellValue(cable.getDestination());
+                cell24.setCellValue(cable.getPathLength());
+                cell25.setCellValue(cable.getUpperRod());
+                cell26.setCellValue(cable.getArrival());
+                cell27.setCellValue(cable.getIncomingEquipment());
+                cell28.setCellValue(cable.getCoefficient());
+                cell29.setCellValue(cable.getElectricalChief());
+                cell30.setCellValue(cable.getCableTrenchBuild());
+                cell31.setCellValue(cable.getPipeLayeCable());
+                cell32.setCellValue(cable.getCompletePipe());
+                cell33.setCellValue(cable.getSegmentLengthClassinication());
+                cell34.setCellValue(cable.getRemarks());
 
             }
 
@@ -155,16 +203,16 @@ public class ExcelExportUtil {
                 Cell cell20 = crateCell(workbook,row,20); //是否纳入实施计划
                 Cell cell21 = crateCell(workbook,row,21); //初定实施批次
 
-                Cell cell22 = crateCell(workbook,row,22); //项目下达批次
-                Cell cell23 = crateCell(workbook,row,23); //业主项目经理
-                Cell cell24 = crateCell(workbook,row,24); //现场施工管理单位
-                Cell cell25 = crateCell(workbook,row,25); //施工项目经理(电气
-                Cell cell26 = crateCell(workbook,row,26); //施工项目经理(土建
-                Cell cell27 = crateCell(workbook,row,27); //电气分包单位
-                Cell cell28 = crateCell(workbook,row,28); //电气联系人、联系电话
-                Cell cell29 = crateCell(workbook,row,29); //土建分包单位
-                Cell cell30 = crateCell(workbook,row,30); //土建联系人、联系电话
-                Cell cell31 = crateCell(workbook,row,31); //备注
+                Cell cell22 = crateCell(workbook,row,22); //总概算金额(含税)
+                Cell cell23 = crateCell(workbook,row,23); //总概算金额(不含税)
+                Cell cell24 = crateCell(workbook,row,24); //可抵扣金额(税金)
+                Cell cell25 = crateCell(workbook,row,25); //施工费(含税
+                Cell cell26 = crateCell(workbook,row,26); //甲供物资金额(含税
+                Cell cell27 = crateCell(workbook,row,27); //其他费用(含税)
+                Cell cell28 = crateCell(workbook,row,28); //前期工程费(含税)
+                Cell cell29 = crateCell(workbook,row,29); //勘察费(含税)
+                Cell cell30 = crateCell(workbook,row,30); //设计费(含税)
+                Cell cell31 = crateCell(workbook,row,31); //监理费(含税)
                 Cell cell32 = crateCell(workbook,row,32); //总概算金额(含税)
                 Cell cell33 = crateCell(workbook,row,33); //总概算金额(不含税)
                 Cell cell34 = crateCell(workbook,row,34); //可抵扣金额(税金)
@@ -175,20 +223,8 @@ public class ExcelExportUtil {
                 Cell cell39 = crateCell(workbook,row,39); //勘察费(含税)
                 Cell cell40 = crateCell(workbook,row,40); //设计费(含税)
                 Cell cell41 = crateCell(workbook,row,41); //监理费(含税)
-                Cell cell42 = crateCell(workbook,row,42); //总概算金额(含税)
-                Cell cell43 = crateCell(workbook,row,43); //总概算金额(不含税)
-                Cell cell44 = crateCell(workbook,row,44); //可抵扣金额(税金)
-                Cell cell45 = crateCell(workbook,row,45); //施工费(含税)
-                Cell cell46 = crateCell(workbook,row,46); //甲供物资金额(含税)
-                Cell cell47 = crateCell(workbook,row,47); //其他费用(含税)
-                Cell cell48 = crateCell(workbook,row,48); //前期工程费(含税)
-                Cell cell49 = crateCell(workbook,row,49); //勘察费(含税)
-                Cell cell50 = crateCell(workbook,row,50); //设计费(含税)
-                Cell cell51 = crateCell(workbook,row,51); //监理费(含税)
-                Cell cell52 = crateCell(workbook,row,52); //是否完成概算修改
-                Cell cell53 = crateCell(workbook,row,53); //概算修改完成时间
-                Cell cell54 = crateCell(workbook,row,54); //是否有设计变更
-                Cell cell55 = crateCell(workbook,row,55); //设计变更状态
+                Cell cell42 = crateCell(workbook,row,42); //是否完成概算修改
+                Cell cell43 = crateCell(workbook,row,43); //概算修改完成时间
 
                 BudgetStats budgetStats = list.get(i);
 
@@ -218,40 +254,28 @@ public class ExcelExportUtil {
                 cell19.setCellValue(budgetStats.getReserveProgress());
                 cell20.setCellValue(budgetStats.getImplementPlan());
                 cell21.setCellValue(budgetStats.getImplementBatch());
-                cell22.setCellValue(budgetStats.getProjectReleaseBatch());
-                cell23.setCellValue(budgetStats.getOwnerProjectManager());
-                cell24.setCellValue(budgetStats.getSiteManagementUnit());
-                cell25.setCellValue(budgetStats.getElectricalProjectManager());
-                cell26.setCellValue(budgetStats.getCivilEngineerProjectManager());
-                cell27.setCellValue(budgetStats.getElectricalSubcontractor());
-                cell28.setCellValue(budgetStats.getElectricalContact());
-                cell29.setCellValue(budgetStats.getCivilEngineerSubcontractor());
-                cell30.setCellValue(budgetStats.getCivilEngineerContact());
-                cell31.setCellValue(budgetStats.getSubcontractInfoRemark());
-                cell32.setCellValue(budgetStats.getPretrialEstimateAmount());
-                cell33.setCellValue(budgetStats.getPretrialEstimateAmountExcludeTax());
-                cell34.setCellValue(budgetStats.getPretrialDeductibleAmount());
-                cell35.setCellValue(budgetStats.getPretrialConstructeConsts());
-                cell36.setCellValue(budgetStats.getPretrialMaterialAmount());
-                cell37.setCellValue(budgetStats.getPretrialOtherExpanses());
-                cell38.setCellValue(budgetStats.getPretrialPreliminaryConstructeFee());
-                cell39.setCellValue(budgetStats.getPretrialSurveyFee());
-                cell40.setCellValue(budgetStats.getPretrialDesignFee());
-                cell41.setCellValue(budgetStats.getPretrialSupervisionFee());
-                cell42.setCellValue(budgetStats.getAfterTrialEstimateAmount());
-                cell43.setCellValue(budgetStats.getAfterTrialEstimateAmountExcludeTax());
-                cell44.setCellValue(budgetStats.getAfterTrialDeductibleAmount());
-                cell45.setCellValue(budgetStats.getAfterTrialConstructeConsts());
-                cell46.setCellValue(budgetStats.getAfterTrialMaterialAmount());
-                cell47.setCellValue(budgetStats.getAfterTrialOtherExpanses());
-                cell48.setCellValue(budgetStats.getAfterTrialPreliminaryConstructeFee());
-                cell49.setCellValue(budgetStats.getAfterTrialSurveyFee());
-                cell50.setCellValue(budgetStats.getAfterTrialDesignFee());
-                cell51.setCellValue(budgetStats.getAfterTrialSupervisionFee());
-                cell52.setCellValue(budgetStats.getBudgetRevision());
-                cell53.setCellValue(budgetStats.getCompleteTime());
-                cell54.setCellValue(budgetStats.getDesignChange());
-                cell55.setCellValue(budgetStats.getDesignChangeStatus());
+                cell22.setCellValue(budgetStats.getPretrialEstimateAmount());
+                cell23.setCellValue(budgetStats.getPretrialEstimateAmountExcludeTax());
+                cell24.setCellValue(budgetStats.getPretrialDeductibleAmount());
+                cell25.setCellValue(budgetStats.getPretrialConstructeConsts());
+                cell26.setCellValue(budgetStats.getPretrialMaterialAmount());
+                cell27.setCellValue(budgetStats.getPretrialOtherExpanses());
+                cell28.setCellValue(budgetStats.getPretrialPreliminaryConstructeFee());
+                cell29.setCellValue(budgetStats.getPretrialSurveyFee());
+                cell30.setCellValue(budgetStats.getPretrialDesignFee());
+                cell31.setCellValue(budgetStats.getPretrialSupervisionFee());
+                cell32.setCellValue(budgetStats.getAfterTrialEstimateAmount());
+                cell33.setCellValue(budgetStats.getAfterTrialEstimateAmountExcludeTax());
+                cell34.setCellValue(budgetStats.getAfterTrialDeductibleAmount());
+                cell35.setCellValue(budgetStats.getAfterTrialConstructeConsts());
+                cell36.setCellValue(budgetStats.getAfterTrialMaterialAmount());
+                cell37.setCellValue(budgetStats.getAfterTrialOtherExpanses());
+                cell38.setCellValue(budgetStats.getAfterTrialPreliminaryConstructeFee());
+                cell39.setCellValue(budgetStats.getAfterTrialSurveyFee());
+                cell40.setCellValue(budgetStats.getAfterTrialDesignFee());
+                cell41.setCellValue(budgetStats.getAfterTrialSupervisionFee());
+                cell42.setCellValue(budgetStats.getBudgetRevision());
+                cell43.setCellValue(budgetStats.getCompleteTime());
 
             }
 
@@ -281,118 +305,129 @@ public class ExcelExportUtil {
             for(int i=0;i<list.size();i++){
                 Row row = sheet.createRow(rowNum+i);
 
-                Cell cell0 = crateCell(workbook,row,0); //储备项目编号
-                Cell cell1 = crateCell(workbook,row,1); //储备项目名称
-                Cell cell2 = crateCell(workbook,row,2); //储备项目类型
-                Cell cell3 = crateCell(workbook,row,3); //需求提出单位
-                Cell cell4 = crateCell(workbook,row,4); //储备批次
-                Cell cell5 = crateCell(workbook,row,5); //备注
-                Cell cell6 = crateCell(workbook,row,6); //储备进度
-                Cell cell7 = crateCell(workbook,row,7); //是否纳入实施计划
-                Cell cell8 = crateCell(workbook,row,8); //初定实施批次
-                Cell cell9 = crateCell(workbook,row,9); //是否通过运检部评审
-                Cell cell10 = crateCell(workbook,row,10); //通过运检部评审时间
-                Cell cell11 = crateCell(workbook,row,11); //运检部下达储备时间
-                Cell cell12 = crateCell(workbook,row,12); //是否发出设计委托
-                Cell cell13 = crateCell(workbook,row,13); //设计委托发出时间
-                Cell cell14 = crateCell(workbook,row,14); //初设提交限定日期
-                Cell cell15 = crateCell(workbook,row,15); //是否进行现场交底
-                Cell cell16 = crateCell(workbook,row,16); //交底完成时间
-                Cell cell17 = crateCell(workbook,row,17); //是否进行储备
-                Cell cell18 = crateCell(workbook,row,18); //是否完成初设
-                Cell cell19 = crateCell(workbook,row,19); //初设提交时间
-                Cell cell20 = crateCell(workbook,row,20); //是否进行审图
-                Cell cell21 = crateCell(workbook,row,21); //审图日期
-                Cell cell22 = crateCell(workbook,row,22); //是否通过图纸审核
-                Cell cell23 = crateCell(workbook,row,23); //通过审核日期
-                Cell cell24 = crateCell(workbook,row,24); //未通过原因分析
-                Cell cell25 = crateCell(workbook,row,25); //是否需设计变更
-                Cell cell26 = crateCell(workbook,row,26); //项目经理审图-备注
-
-                Cell cell27 = crateCell(workbook,row,27); //概预算-是否进行审核
-                Cell cell28 = crateCell(workbook,row,28); //概预算-审核日期
-                Cell cell29 = crateCell(workbook,row,29); //概预算-是否通过专家审核
-                Cell cell30 = crateCell(workbook,row,30); //概预算-通过审核日期
-                Cell cell31 = crateCell(workbook,row,31); //概预算-未通过原因分析
-                Cell cell32 = crateCell(workbook,row,32); //概预算-是否需设计变更
-                Cell cell33 = crateCell(workbook,row,33); //概预算审核-备注
-                Cell cell34 = crateCell(workbook,row,34); //是否参加省公司评审
-                Cell cell35 = crateCell(workbook,row,35); //省公司评审批次/日期
-                Cell cell36 = crateCell(workbook,row,36); //是否通过省公司评审
-                Cell cell37 = crateCell(workbook,row,37); //评审意见
-                Cell cell38 = crateCell(workbook,row,38); //是否需设计变更
-                Cell cell39 = crateCell(workbook,row,39); //省公司评审-备注
-
-                Cell cell40 = crateCell(workbook,row,40); //图纸联合审查-是否进行图纸审查
-                Cell cell41 = crateCell(workbook,row,41); //图纸联合审查-联合审图日期
-                Cell cell42 = crateCell(workbook,row,42); //图纸联合审查-是否通过图纸审查
-                Cell cell43 = crateCell(workbook,row,43); //图纸联合审查-通过联合审图日期
-                Cell cell44 = crateCell(workbook,row,44); //图纸联合审查-审图意见
-                Cell cell45 = crateCell(workbook,row,45); //图纸联合审查-是否需设计变更
-                Cell cell46 = crateCell(workbook,row,46); //图纸联合审查-备注
-
-                Cell cell47 = crateCell(workbook,row,47); //图纸是否定稿
-                Cell cell48 = crateCell(workbook,row,48); //定稿日期
-                Cell cell49 = crateCell(workbook,row,49); //是否打印正式图纸
-                Cell cell50 = crateCell(workbook,row,50); //通知出图日期
-                Cell cell51 = crateCell(workbook,row,51); //正式图纸移交项目中心日期
-                Cell cell52 = crateCell(workbook,row,52); //正式图纸移交施工单位日期
+                Cell cell0 = crateCell(workbook,row,0); //序号
+                Cell cell1 = crateCell(workbook,row,1); //项目年份
+                Cell cell2 = crateCell(workbook,row,2); //项目性质
+                Cell cell3 = crateCell(workbook,row,3); //需求单位
+                Cell cell4 = crateCell(workbook,row,4); //区域
+                Cell cell5 = crateCell(workbook,row,5); //项目分组
+                Cell cell6 = crateCell(workbook,row,6); //储备批次
+                Cell cell7 = crateCell(workbook,row,7); //供电区域
+                Cell cell8 = crateCell(workbook,row,8); //网格编号
+                Cell cell9 = crateCell(workbook,row,9); //单元格编号
+                Cell cell10 = crateCell(workbook,row,10); //项目储备编号
+                Cell cell11 = crateCell(workbook,row,11); //项目名称
+                Cell cell12 = crateCell(workbook,row,12); //建设必要性及内容
+                Cell cell13 = crateCell(workbook,row,13); //变电站名称
+                Cell cell14 = crateCell(workbook,row,14); //线路名称
+                Cell cell15 = crateCell(workbook,row,15); //网架项目划分
+                Cell cell16 = crateCell(workbook,row,16); //需求类型
+                Cell cell17 = crateCell(workbook,row,17); //费用估算
+                Cell cell18 = crateCell(workbook,row,18); //备注
+                Cell cell19 = crateCell(workbook,row,19); //储备进度
+                Cell cell20 = crateCell(workbook,row,20); //是否纳入实施计划
+                Cell cell21 = crateCell(workbook,row,21); //初定实施批次
+                Cell cell22 = crateCell(workbook,row,22); //是否通过运检部评审
+                Cell cell23 = crateCell(workbook,row,23); //通过运检部评审时间
+                Cell cell24 = crateCell(workbook,row,24); //运检部下达储备时间
+                Cell cell25 = crateCell(workbook,row,25); //是否发出设计委托
+                Cell cell26 = crateCell(workbook,row,26); //设计委托发出时间
+                Cell cell27 = crateCell(workbook,row,27); //初设提交限定日期
+                Cell cell28 = crateCell(workbook,row,28); //是否进行现场交底
+                Cell cell29 = crateCell(workbook,row,29); //交底完成时间
+                Cell cell30 = crateCell(workbook,row,30); //是否完成初设
+                Cell cell31 = crateCell(workbook,row,31); //初设提交时间
+                Cell cell32 = crateCell(workbook,row,32); //是否完成审图
+                Cell cell33 = crateCell(workbook,row,33); //是否通过图纸审核
+                Cell cell34 = crateCell(workbook,row,34); //未通过原因分析
+                Cell cell35 = crateCell(workbook,row,35); //通过审核日期
+                Cell cell36 = crateCell(workbook,row,36); //是否需设计变更
+                Cell cell37 = crateCell(workbook,row,37); //项目经理审图-备注
+
+                Cell cell38 = crateCell(workbook,row,38); //概预算-是否完成审核
+                Cell cell39 = crateCell(workbook,row,39); //概预算-是否通过专家审核
+                Cell cell40 = crateCell(workbook,row,40); //概预算-未通过原因分析
+                Cell cell41 = crateCell(workbook,row,41); //概预算-通过审核日期
+                Cell cell42 = crateCell(workbook,row,42); //概预算-是否需设计变更
+                Cell cell43 = crateCell(workbook,row,43); //概预算审核-备注
+                Cell cell44 = crateCell(workbook,row,44); //是否参加省公司评审
+                Cell cell45 = crateCell(workbook,row,45); //省公司评审批次/日期
+                Cell cell46 = crateCell(workbook,row,46); //是否通过省公司评审
+                Cell cell47 = crateCell(workbook,row,47); //评审意见
+                Cell cell48 = crateCell(workbook,row,48); //是否需设计变更
+                Cell cell49 = crateCell(workbook,row,49); //省公司评审-备注
+
+                Cell cell50 = crateCell(workbook,row,50); //图纸联合审查-是否进行图纸审查
+                Cell cell51 = crateCell(workbook,row,51); //图纸联合审查-联合审图日期
+                Cell cell52 = crateCell(workbook,row,52); //图纸联合审查-是否通过图纸审查
+                Cell cell53 = crateCell(workbook,row,53); //图纸联合审查-审图意见
+                Cell cell54 = crateCell(workbook,row,54); //图纸联合审查-是否需设计变更
+                Cell cell55 = crateCell(workbook,row,55); //图纸联合审查-备注
+                Cell cell56 = crateCell(workbook,row,56); //是否完成储备
 
                 ProgressStats progressStats = list.get(i);
 
-                cell0.setCellValue(progressStats.getProjectReserveId());
-                cell1.setCellValue(progressStats.getProjectName());
-                cell2.setCellValue(progressStats.getRequirementType());
+                cell0.setCellValue(String.valueOf(index++));
+                cell1.setCellValue(progressStats.getProjectYear());
+                cell2.setCellValue(progressStats.getProjectNature());
                 cell3.setCellValue(progressStats.getDemandUnit());
-                cell4.setCellValue(progressStats.getReserveBatches());
-                cell5.setCellValue(progressStats.getBasicRemarks());
-                cell6.setCellValue(progressStats.getReserveProgress());
-                cell7.setCellValue(progressStats.getImplementPlan());
-                cell8.setCellValue(progressStats.getInitialImplementBatch());
-                cell9.setCellValue(progressStats.getInspectDepartmentReview());
-                cell10.setCellValue(progressStats.getInspectDepartmentReviewTime());
-                cell11.setCellValue(progressStats.getReleaseReserveTime());
-                cell12.setCellValue(progressStats.getDesignCommission());
-                cell13.setCellValue(progressStats.getDesignCommissionIssueTime());
-                cell14.setCellValue(progressStats.getLimitDate());
-                cell15.setCellValue(progressStats.getOnSiteConfess());
-                cell16.setCellValue(progressStats.getConfessCompleteTime());
-                cell17.setCellValue(progressStats.getIncludeReserve());
-                cell18.setCellValue(progressStats.getCompleteDesign());
-                cell19.setCellValue(progressStats.getSubmitTime());
-                cell20.setCellValue(progressStats.getCompleteDraw());
-                cell21.setCellValue(progressStats.getCompleteDrawDate());
-                cell22.setCellValue(progressStats.getDrawAudit());
-                cell23.setCellValue(progressStats.getPassAuditDate());
-                cell24.setCellValue(progressStats.getReasonForFailure());
-                cell25.setCellValue(progressStats.getChangeDesign());
-                cell26.setCellValue(progressStats.getDrawRemarks());
-                cell27.setCellValue(progressStats.getWhetherToAudit());
-                cell28.setCellValue(progressStats.getAuditDate());
-                cell29.setCellValue(progressStats.getExpertReview());
-                cell30.setCellValue(progressStats.getEstimatePassAuditDate());
-                cell31.setCellValue(progressStats.getEstimateReasonForFailure());
-                cell32.setCellValue(progressStats.getEstimateChangeDesign());
-                cell33.setCellValue(progressStats.getBudgetRemarks());
-                cell34.setCellValue(progressStats.getProvincialCompanyReview());
-                cell35.setCellValue(progressStats.getProvincialCompanyReviewBatch());
-                cell36.setCellValue(progressStats.getPassProvincialCompanyReview());
-                cell37.setCellValue(progressStats.getCauseAnalysis());
-                cell38.setCellValue(progressStats.getDesignChange());
-                cell39.setCellValue(progressStats.getProvincialCompanyRemarks());
-                cell40.setCellValue(progressStats.getDrawingReview());
-                cell41.setCellValue(progressStats.getReviewDate());
-                cell42.setCellValue(progressStats.getPassDrawingReview());
-                cell43.setCellValue(progressStats.getApprovedDate());
-                cell44.setCellValue(progressStats.getReviewComment());
-                cell45.setCellValue(progressStats.getJointReviewDesignChange());
-                cell46.setCellValue(progressStats.getDrawingUnionRemarks());
-                cell47.setCellValue(progressStats.getDrawingFinalize());
-                cell48.setCellValue(progressStats.getFinalDate());
-                cell49.setCellValue(progressStats.getFormalDrawing());
-                cell50.setCellValue(progressStats.getDrawingDate());
-                cell51.setCellValue(progressStats.getTransferProjectCenterDate());
-                cell52.setCellValue(progressStats.getTransferToConstructionUnitDate());
+                cell4.setCellValue(progressStats.getDistrict());
+                cell5.setCellValue(progressStats.getProjectGroup());
+                cell6.setCellValue(progressStats.getReserveBatches());
+                cell7.setCellValue(progressStats.getBlockSupply());
+                cell8.setCellValue(progressStats.getGridNumber());
+                cell9.setCellValue(progressStats.getCellNumber());
+                cell10.setCellValue(progressStats.getProjectReserveId());
+                cell11.setCellValue(progressStats.getProjectName());
+                cell12.setCellValue(progressStats.getConstructionNecessityAndContent());
+                cell13.setCellValue(progressStats.getSubstationName());
+                cell14.setCellValue(progressStats.getCircuitName());
+                cell15.setCellValue(progressStats.getNetRackProjectDivide());
+                cell16.setCellValue(progressStats.getRequirementType());
+
+                String costEstimateStr= progressStats.getCostEstimate();
+                if(StringUtils.isNotBlank(costEstimateStr)){
+                    cell17.setCellValue(Double.parseDouble(costEstimateStr));
+                }
+                cell18.setCellValue(progressStats.getBasicRemarks());
+                cell19.setCellValue(progressStats.getReserveProgress());
+                cell20.setCellValue(progressStats.getImplementPlan());
+                cell21.setCellValue(progressStats.getInitialImplementBatch());
+                cell22.setCellValue(progressStats.getInspectDepartmentReview());
+                cell23.setCellValue(progressStats.getInspectDepartmentReviewTime());
+                cell24.setCellValue(progressStats.getReleaseReserveTime());
+                cell25.setCellValue(progressStats.getDesignCommission());
+                cell26.setCellValue(progressStats.getDesignCommissionIssueTime());
+                cell27.setCellValue(progressStats.getLimitDate());
+                cell28.setCellValue(progressStats.getOnSiteConfess());
+                cell29.setCellValue(progressStats.getConfessCompleteTime());
+                cell30.setCellValue(progressStats.getCompleteDesign());
+                cell31.setCellValue(progressStats.getSubmitTime());
+                cell32.setCellValue(progressStats.getCompleteDraw());
+                cell33.setCellValue(progressStats.getDrawAudit());
+                cell34.setCellValue(progressStats.getReasonForFailure());
+                cell35.setCellValue(progressStats.getPassAuditDate());
+                cell36.setCellValue(progressStats.getChangeDesign());
+                cell37.setCellValue(progressStats.getDrawRemarks());
+                cell38.setCellValue(progressStats.getWhetherToAudit());
+                cell39.setCellValue(progressStats.getExpertReview());
+                cell40.setCellValue(progressStats.getEstimateReasonForFailure());
+                cell41.setCellValue(progressStats.getEstimatePassAuditDate());
+                cell42.setCellValue(progressStats.getEstimateChangeDesign());
+                cell43.setCellValue(progressStats.getBudgetRemarks());
+                cell44.setCellValue(progressStats.getProvincialCompanyReview());
+                cell45.setCellValue(progressStats.getProvincialCompanyReviewBatch());
+                cell46.setCellValue(progressStats.getPassProvincialCompanyReview());
+                cell47.setCellValue(progressStats.getCauseAnalysis());
+                cell48.setCellValue(progressStats.getDesignChange());
+                cell49.setCellValue(progressStats.getProvincialCompanyRemarks());
+                cell50.setCellValue(progressStats.getDrawingReview());
+                cell51.setCellValue(progressStats.getReviewDate());
+                cell52.setCellValue(progressStats.getPassDrawingReview());
+                cell53.setCellValue(progressStats.getReviewComment());
+                cell54.setCellValue(progressStats.getJointReviewDesignChange());
+                cell55.setCellValue(progressStats.getDrawingUnionRemarks());
+                cell56.setCellValue(progressStats.getCompleteReserve());
 
             }
 
@@ -431,38 +466,36 @@ public class ExcelExportUtil {
                 Cell cell7 = crateCell(workbook,row,7); //项目名称
                 Cell cell8 = crateCell(workbook,row,8); //建设必要性及内容
                 Cell cell9 = crateCell(workbook,row,9); //建设目的
-                Cell cell10 = crateCell(workbook,row,10); //项目进度
-                Cell cell11 = crateCell(workbook,row,11); //开关柜
-                Cell cell12 = crateCell(workbook,row,12); //架空线路
-                Cell cell13 = crateCell(workbook,row,13); //电力电缆
-                Cell cell14 = crateCell(workbook,row,14); //电缆分支箱
-                Cell cell15 = crateCell(workbook,row,15); //户外环网箱
-                Cell cell16 = crateCell(workbook,row,16); //环网室(开关站)
-                Cell cell17 = crateCell(workbook,row,17); //柱上开关
-                Cell cell18 = crateCell(workbook,row,18); //配电室kva
-                Cell cell19 = crateCell(workbook,row,19); //配电室
-                Cell cell20 = crateCell(workbook,row,20); //箱变kva
-                Cell cell21 = crateCell(workbook,row,21); //箱变
-                Cell cell22 = crateCell(workbook,row,22); //配电变压器kva
-                Cell cell23 = crateCell(workbook,row,23); //配电变压器
-                Cell cell24 = crateCell(workbook,row,24); //低压线路
-                Cell cell25 = crateCell(workbook,row,25); //低压电缆
-                Cell cell26 = crateCell(workbook,row,26); //低压电缆分支箱
-                Cell cell27 = crateCell(workbook,row,27); //低压配电柜
-                Cell cell28 = crateCell(workbook,row,28); //配电自动化终端(FTU)
-                Cell cell29 = crateCell(workbook,row,29); //配电自动化终端(DTU)
-                Cell cell30 = crateCell(workbook,row,30); //光缆
-                Cell cell31 = crateCell(workbook,row,31); //电缆通道
-                Cell cell32 = crateCell(workbook,row,32); //土建工厂化预制
-                Cell cell33 = crateCell(workbook,row,33); //附属设施
-                Cell cell34 = crateCell(workbook,row,34); //施工作业方式(完全不停电作业、部分不停电作业、停电作业)
-                Cell cell35 = crateCell(workbook,row,35); //不停电作业
-                Cell cell36 = crateCell(workbook,row,36); //停电时户数
-                Cell cell37 = crateCell(workbook,row,37); //费用估算
-                Cell cell38 = crateCell(workbook,row,38); //是否迎峰度夏项目
-                Cell cell39 = crateCell(workbook,row,39); //通过第几批项目评审
-                Cell cell40 = crateCell(workbook,row,40); //概算(含税)
-                Cell cell41 = crateCell(workbook,row,41); //概算(不含税)
+                Cell cell10 = crateCell(workbook,row,10); //开关柜
+                Cell cell11 = crateCell(workbook,row,11); //架空线路
+                Cell cell12 = crateCell(workbook,row,12); //电力电缆
+                Cell cell13 = crateCell(workbook,row,13); //电缆分支箱
+                Cell cell14 = crateCell(workbook,row,14); //户外环网箱
+                Cell cell15 = crateCell(workbook,row,15); //环网室(开关站)
+                Cell cell16 = crateCell(workbook,row,16); //柱上开关
+                Cell cell17 = crateCell(workbook,row,17); //配电室kva
+                Cell cell18 = crateCell(workbook,row,18); //配电室
+                Cell cell19 = crateCell(workbook,row,19); //箱变kva
+                Cell cell20 = crateCell(workbook,row,20); //箱变
+                Cell cell21 = crateCell(workbook,row,21); //配电变压器kva
+                Cell cell22 = crateCell(workbook,row,22); //配电变压器
+                Cell cell23 = crateCell(workbook,row,23); //低压线路
+                Cell cell24 = crateCell(workbook,row,24); //低压电缆
+                Cell cell25 = crateCell(workbook,row,25); //低压电缆分支箱
+                Cell cell26 = crateCell(workbook,row,26); //低压配电柜
+                Cell cell27 = crateCell(workbook,row,27); //配电自动化终端(FTU)
+                Cell cell28 = crateCell(workbook,row,28); //配电自动化终端(DTU)
+                Cell cell29 = crateCell(workbook,row,29); //光缆
+                Cell cell30 = crateCell(workbook,row,30); //电缆通道
+                Cell cell31 = crateCell(workbook,row,31); //土建工厂化预制
+                Cell cell32 = crateCell(workbook,row,32); //附属设施
+                Cell cell33 = crateCell(workbook,row,33); //施工作业方式(完全不停电作业、部分不停电作业、停电作业)
+                Cell cell34 = crateCell(workbook,row,34); //不停电作业
+                Cell cell35 = crateCell(workbook,row,35); //停电时户数
+                Cell cell36 = crateCell(workbook,row,36); //费用估算
+                Cell cell37 = crateCell(workbook,row,37); //是否迎峰度夏项目
+                Cell cell38 = crateCell(workbook,row,38); //通过第几批项目评审
+                Cell cell39 = crateCell(workbook,row,39); //概算(含税)
 
 
                 ConstructeScale constructeScale = list.get(i);
@@ -477,38 +510,36 @@ public class ExcelExportUtil {
                 cell7.setCellValue(constructeScale.getProjectName());
                 cell8.setCellValue(constructeScale.getConstructionNecessityAndContent());
                 cell9.setCellValue(constructeScale.getConstructePurpose());
-                cell10.setCellValue(constructeScale.getReserveProgress());
-                cell11.setCellValue(constructeScale.getSwitchCabinet());
-                cell12.setCellValue(constructeScale.getOverheadLine());
-                cell13.setCellValue(constructeScale.getPowerCable());
-                cell14.setCellValue(constructeScale.getCableBranchBox());
-                cell15.setCellValue(constructeScale.getOutdoorRingCage());
-                cell16.setCellValue(constructeScale.getRingRoom());
-                cell17.setCellValue(constructeScale.getOnColumnSwitch());
-                cell18.setCellValue(constructeScale.getSwitchRoomKVA());
-                cell19.setCellValue(constructeScale.getSwitchRoom());
-                cell20.setCellValue(constructeScale.getBoxChangeKVA());
-                cell21.setCellValue(constructeScale.getBoxChange());
-                cell22.setCellValue(constructeScale.getDistributionTransformerKVA());
-                cell23.setCellValue(constructeScale.getDistributionTransformer());
-                cell24.setCellValue(constructeScale.getLowVoltageLine());
-                cell25.setCellValue(constructeScale.getLowVoltageCable());
-                cell26.setCellValue(constructeScale.getLowVoltageCableBox());
-                cell27.setCellValue(constructeScale.getLowVoltageCabinet());
-                cell28.setCellValue(constructeScale.getDistributeAutoMateTerminalFTU());
-                cell29.setCellValue(constructeScale.getDistributeAutoMateTerminalDTU());
-                cell30.setCellValue(constructeScale.getOpticalCable());
-                cell31.setCellValue(constructeScale.getCablePassage());
-                cell32.setCellValue(constructeScale.getFactoryPrefab());
-                cell33.setCellValue(constructeScale.getAncillaryFacility());
-                cell34.setCellValue(constructeScale.getConstructionWorkMethod());
-                cell35.setCellValue(constructeScale.getWorkWithoutInterruption());
-                cell36.setCellValue(constructeScale.getPowerFailureHouseNum());
-                cell37.setCellValue(constructeScale.getCostEstimate());
-                cell38.setCellValue(constructeScale.getPeakSummerProject());
-                cell39.setCellValue(constructeScale.getProjectReview());
-                cell40.setCellValue(constructeScale.getAfterTrialEstimateAmount());
-                cell41.setCellValue(constructeScale.getAfterTrialEstimateAmountExcludeTax());
+                cell10.setCellValue(constructeScale.getSwitchCabinet());
+                cell11.setCellValue(constructeScale.getOverheadLine());
+                cell12.setCellValue(constructeScale.getPowerCable());
+                cell13.setCellValue(constructeScale.getCableBranchBox());
+                cell14.setCellValue(constructeScale.getOutdoorRingCage());
+                cell15.setCellValue(constructeScale.getRingRoom());
+                cell16.setCellValue(constructeScale.getOnColumnSwitch());
+                cell17.setCellValue(constructeScale.getSwitchRoomKVA());
+                cell18.setCellValue(constructeScale.getSwitchRoom());
+                cell19.setCellValue(constructeScale.getBoxChangeKVA());
+                cell20.setCellValue(constructeScale.getBoxChange());
+                cell21.setCellValue(constructeScale.getDistributionTransformerKVA());
+                cell22.setCellValue(constructeScale.getDistributionTransformer());
+                cell23.setCellValue(constructeScale.getLowVoltageLine());
+                cell24.setCellValue(constructeScale.getLowVoltageCable());
+                cell25.setCellValue(constructeScale.getLowVoltageCableBox());
+                cell26.setCellValue(constructeScale.getLowVoltageCabinet());
+                cell27.setCellValue(constructeScale.getDistributeAutoMateTerminalFTU());
+                cell28.setCellValue(constructeScale.getDistributeAutoMateTerminalDTU());
+                cell29.setCellValue(constructeScale.getOpticalCable());
+                cell30.setCellValue(constructeScale.getCablePassage());
+                cell31.setCellValue(constructeScale.getFactoryPrefab());
+                cell32.setCellValue(constructeScale.getAncillaryFacility());
+                cell33.setCellValue(constructeScale.getConstructionWorkMethod());
+                cell34.setCellValue(constructeScale.getWorkWithoutInterruption());
+                cell35.setCellValue(constructeScale.getPowerFailureHouseNum());
+                cell36.setCellValue(constructeScale.getCostEstimate());
+                cell37.setCellValue(constructeScale.getPeakSummerProject());
+                cell38.setCellValue(constructeScale.getProjectReview());
+                cell39.setCellValue(constructeScale.getAfterTrialEstimateAmount());
 
             }
 

+ 64 - 63
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/util/ExcelImportUtil.java

@@ -28,27 +28,28 @@ public class ExcelImportUtil {
         List<Cable> list = new ArrayList<Cable>();
         Cable cable = null;
 
-        for(int i=2; i<=lastRow;i++) {
+        for(int i=3; i<=lastRow;i++) {
             cable = new Cable();
             Row row = importUtil.getRow(i);
 
 //            String reserveProjectName = (String) importUtil.getCellValue(row, 1);
             //获取项目储备编号
-            String projectReserveId = (String) importUtil.getCellValue(row, 3);
+            String projectReserveId = (String) importUtil.getCellValue(row, 10);
             if (StringUtils.isNotBlank(projectReserveId)) {
 
-                cable.setProjectReserveId((String) importUtil.getCellValue(row, 3));
+                cable.setProjectReserveId((String) importUtil.getCellValue(row, 10));
 
                 //和基本信息表比对,是否有对应的数据
                 getBmList2(proIdList,cable.getProjectReserveId());
 
-                cable.setCivilEngineer((String) importUtil.getCellValue(row, 6));
-                cable.setPipeLayeCable((String) importUtil.getCellValue(row, 7));
-                cable.setCompletePipe((String) importUtil.getCellValue(row, 8));
-                cable.setCompleteMeasurement((String) importUtil.getCellValue(row, 9));
-                cable.setMeasureLength((String) importUtil.getCellValue(row, 10));
-                cable.setSegmentLengthClassinication((String) importUtil.getCellValue(row, 12));
-                cable.setRemarks((String) importUtil.getCellValue(row, 14));
+                cable.setCivilEngineer(null);
+                cable.setCableTrenchBuild((String) importUtil.getCellValue(row, 30));
+                cable.setPipeLayeCable((String) importUtil.getCellValue(row, 31));
+                cable.setCompletePipe((String) importUtil.getCellValue(row, 32));
+                cable.setCompleteMeasurement(null);
+                cable.setMeasureLength(null);
+                cable.setSegmentLengthClassinication((String) importUtil.getCellValue(row, 33));
+                cable.setRemarks((String) importUtil.getCellValue(row, 34));
 
                 list.add(cable);
             }
@@ -80,26 +81,26 @@ public class ExcelImportUtil {
                 //和基本信息表比对,是否有对应的数据
                 getBmList2(proIdList,budgetStats.getProjectReserveId());
 
-                budgetStats.setPretrialEstimateAmount((String) importUtil.getCellValue(row, 32));
-                budgetStats.setPretrialEstimateAmountExcludeTax((String) importUtil.getCellValue(row, 33));
-                budgetStats.setPretrialDeductibleAmount((String) importUtil.getCellValue(row, 34));
-                budgetStats.setPretrialConstructeConsts((String) importUtil.getCellValue(row, 35));
-                budgetStats.setPretrialMaterialAmount((String) importUtil.getCellValue(row, 36));
-                budgetStats.setPretrialOtherExpanses((String) importUtil.getCellValue(row, 37));
-                budgetStats.setPretrialPreliminaryConstructeFee((String) importUtil.getCellValue(row, 38));
-                budgetStats.setPretrialSurveyFee((String) importUtil.getCellValue(row, 39));
-                budgetStats.setPretrialDesignFee((String) importUtil.getCellValue(row, 40));
-                budgetStats.setPretrialSupervisionFee((String) importUtil.getCellValue(row, 41));
-                budgetStats.setAfterTrialEstimateAmount((String) importUtil.getCellValue(row, 42));
-                budgetStats.setAfterTrialEstimateAmountExcludeTax((String) importUtil.getCellValue(row, 43));
-                budgetStats.setAfterTrialDeductibleAmount((String) importUtil.getCellValue(row, 44));
-                budgetStats.setAfterTrialConstructeConsts((String) importUtil.getCellValue(row, 45));
-                budgetStats.setAfterTrialMaterialAmount((String) importUtil.getCellValue(row, 46));
-                budgetStats.setAfterTrialOtherExpanses((String) importUtil.getCellValue(row, 47));
-                budgetStats.setAfterTrialPreliminaryConstructeFee((String) importUtil.getCellValue(row, 48));
-                budgetStats.setAfterTrialSurveyFee((String) importUtil.getCellValue(row, 49));
-                budgetStats.setAfterTrialDesignFee((String) importUtil.getCellValue(row, 50));
-                budgetStats.setAfterTrialSupervisionFee((String) importUtil.getCellValue(row, 51));
+                budgetStats.setPretrialEstimateAmount((String) importUtil.getCellValue(row, 22));
+                budgetStats.setPretrialEstimateAmountExcludeTax((String) importUtil.getCellValue(row, 23));
+                budgetStats.setPretrialDeductibleAmount((String) importUtil.getCellValue(row, 24));
+                budgetStats.setPretrialConstructeConsts((String) importUtil.getCellValue(row, 25));
+                budgetStats.setPretrialMaterialAmount((String) importUtil.getCellValue(row, 26));
+                budgetStats.setPretrialOtherExpanses((String) importUtil.getCellValue(row, 27));
+                budgetStats.setPretrialPreliminaryConstructeFee((String) importUtil.getCellValue(row, 28));
+                budgetStats.setPretrialSurveyFee((String) importUtil.getCellValue(row, 29));
+                budgetStats.setPretrialDesignFee((String) importUtil.getCellValue(row, 30));
+                budgetStats.setPretrialSupervisionFee((String) importUtil.getCellValue(row, 31));
+                budgetStats.setAfterTrialEstimateAmount((String) importUtil.getCellValue(row, 32));
+                budgetStats.setAfterTrialEstimateAmountExcludeTax((String) importUtil.getCellValue(row, 33));
+                budgetStats.setAfterTrialDeductibleAmount((String) importUtil.getCellValue(row, 34));
+                budgetStats.setAfterTrialConstructeConsts((String) importUtil.getCellValue(row, 35));
+                budgetStats.setAfterTrialMaterialAmount((String) importUtil.getCellValue(row, 36));
+                budgetStats.setAfterTrialOtherExpanses((String) importUtil.getCellValue(row, 37));
+                budgetStats.setAfterTrialPreliminaryConstructeFee((String) importUtil.getCellValue(row, 38));
+                budgetStats.setAfterTrialSurveyFee((String) importUtil.getCellValue(row, 39));
+                budgetStats.setAfterTrialDesignFee((String) importUtil.getCellValue(row, 40));
+                budgetStats.setAfterTrialSupervisionFee((String) importUtil.getCellValue(row, 41));
 
                 list.add(budgetStats);
             }
@@ -163,19 +164,19 @@ public class ExcelImportUtil {
 
             String reserveProjectName = (String) importUtil.getCellValue(row, 1);
             //获取项目储备编号
-            String projectReserveId = (String) importUtil.getCellValue(row, 0);
+            String projectReserveId = (String) importUtil.getCellValue(row, 10);
             if (StringUtils.isNotBlank(reserveProjectName)) {
                 if (StringUtils.isNotBlank(projectReserveId)) {
-                    progressStats.setProjectReserveId((String) importUtil.getCellValue(row, 0));//项目储备编号
+                    progressStats.setProjectReserveId((String) importUtil.getCellValue(row, 10));//项目储备编号
 
                     //和基本信息表比对,是否有对应的数据
                     getBmList2(proIdList,progressStats.getProjectReserveId());
 
-                    progressStats.setInspectDepartmentReview((String) importUtil.getCellValue(row, 9));//是否通过运检部评审
+                    progressStats.setInspectDepartmentReview((String) importUtil.getCellValue(row, 22));//是否通过运检部评审
 
-                    if (StringUtils.isNotEmpty((String) importUtil.getCellValue(row, 10))){
+                    if (StringUtils.isNotEmpty((String) importUtil.getCellValue(row, 23))){
                         try {
-                            Date parse = format.parse((String) importUtil.getCellValue(row, 10));
+                            Date parse = format.parse((String) importUtil.getCellValue(row, 23));
                             progressStats.setInspectDepartmentReviewTime(format.format(parse));//通过运检部评审时间
                         }catch (Exception e){
                             progressStats.setInspectDepartmentReviewTime(null);//通过运检部评审时间
@@ -184,9 +185,9 @@ public class ExcelImportUtil {
                         progressStats.setInspectDepartmentReviewTime(null);//通过运检部评审时间
                     }
 
-                    if (StringUtils.isNotEmpty((String) importUtil.getCellValue(row, 11))){
+                    if (StringUtils.isNotEmpty((String) importUtil.getCellValue(row, 24))){
                         try {
-                            Date parse = format.parse((String) importUtil.getCellValue(row, 11));
+                            Date parse = format.parse((String) importUtil.getCellValue(row, 24));
                             progressStats.setReleaseReserveTime(format.format(parse));//运检部下达储备时间
                         }catch (Exception e){
                             progressStats.setReleaseReserveTime(null);//运检部下达储备时间
@@ -195,9 +196,9 @@ public class ExcelImportUtil {
                         progressStats.setReleaseReserveTime(null);//运检部下达储备时间
                     }
 
-                    if (StringUtils.isNotEmpty((String) importUtil.getCellValue(row, 14))){
+                    if (StringUtils.isNotEmpty((String) importUtil.getCellValue(row, 27))){
                         try {
-                            Date parse = format.parse((String) importUtil.getCellValue(row, 14));
+                            Date parse = format.parse((String) importUtil.getCellValue(row, 27));
                             progressStats.setLimitDate(format.format(parse));//初设提交限定日期
                         }catch (Exception e){
                             progressStats.setLimitDate(null);//初设提交限定日期
@@ -206,11 +207,11 @@ public class ExcelImportUtil {
                         progressStats.setLimitDate(null);//初设提交限定日期
                     }
 
-                    progressStats.setOnSiteConfess((String) importUtil.getCellValue(row, 15));//是否进行现场交底
+                    progressStats.setOnSiteConfess((String) importUtil.getCellValue(row, 28));//是否进行现场交底
 
-                    if (StringUtils.isNotEmpty((String) importUtil.getCellValue(row, 16))){
+                    if (StringUtils.isNotEmpty((String) importUtil.getCellValue(row, 29))){
                         try {
-                            Date parse = format.parse((String) importUtil.getCellValue(row, 16));
+                            Date parse = format.parse((String) importUtil.getCellValue(row, 29));
                             progressStats.setConfessCompleteTime(format.format(parse));//交底完成时间
                         }catch (Exception e){
                             progressStats.setConfessCompleteTime(null);//交底完成时间
@@ -219,20 +220,20 @@ public class ExcelImportUtil {
                         progressStats.setConfessCompleteTime(null);//交底完成时间
                     }
 
-                    progressStats.setDrawRemarks((String) importUtil.getCellValue(row, 26));//项目经理审图-备注
-                    progressStats.setBudgetRemarks((String) importUtil.getCellValue(row, 33));//概预算审核-备注
-                    progressStats.setDrawingUnionRemarks((String) importUtil.getCellValue(row, 46));//图纸联合审查-备注
-
-                    if (StringUtils.isNotEmpty((String) importUtil.getCellValue(row, 50))){
-                        try {
-                            Date parse = format.parse((String) importUtil.getCellValue(row, 50));
-                            progressStats.setDrawingDate(format.format(parse));//通知出图日期
-                        }catch (Exception e){
-                            progressStats.setDrawingDate(null);//通知出图日期
-                        }
-                    }else {
-                        progressStats.setDrawingDate(null);//通知出图日期
-                    }
+                    progressStats.setDrawRemarks((String) importUtil.getCellValue(row, 37));//项目经理审图-备注
+                    progressStats.setBudgetRemarks((String) importUtil.getCellValue(row, 43));//概预算审核-备注
+                    progressStats.setDrawingUnionRemarks((String) importUtil.getCellValue(row, 55));//图纸联合审查-备注
+                    progressStats.setDrawingDate(null);//通知出图日期
+//                    if (StringUtils.isNotEmpty((String) importUtil.getCellValue(row, 50))){
+//                        try {
+//                            Date parse = format.parse((String) importUtil.getCellValue(row, 50));
+//                            progressStats.setDrawingDate(format.format(parse));//通知出图日期
+//                        }catch (Exception e){
+//                            progressStats.setDrawingDate(null);//通知出图日期
+//                        }
+//                    }else {
+//                        progressStats.setDrawingDate(null);//通知出图日期
+//                    }
 
 
                     list.add(progressStats);
@@ -268,15 +269,15 @@ public class ExcelImportUtil {
                     getBmList2(proIdList,constructeScale.getProjectReserveId());
 
                     constructeScale.setConstructePurpose((String) importUtil.getCellValue(row, 9));//建设目的
-                    constructeScale.setFactoryPrefab((String) importUtil.getCellValue(row, 32));//土建工厂化预制
-                    constructeScale.setAncillaryFacility((String) importUtil.getCellValue(row, 33));//附属设施
-                    constructeScale.setConstructionWorkMethod((String) importUtil.getCellValue(row, 34));//施工作业方式
-                    constructeScale.setWorkWithoutInterruption((String) importUtil.getCellValue(row, 35));//不停电作业
-                    String number = (String)importUtil.getCellValue(row, 36) == ""? "0" : (String)importUtil.getCellValue(row, 36);
+                    constructeScale.setFactoryPrefab((String) importUtil.getCellValue(row, 31));//土建工厂化预制
+                    constructeScale.setAncillaryFacility((String) importUtil.getCellValue(row, 32));//附属设施
+                    constructeScale.setConstructionWorkMethod((String) importUtil.getCellValue(row, 33));//施工作业方式
+                    constructeScale.setWorkWithoutInterruption((String) importUtil.getCellValue(row, 34));//不停电作业
+                    String number = (String)importUtil.getCellValue(row, 35) == ""? "0" : (String)importUtil.getCellValue(row, 35);
                     int num = Integer.parseInt(number);
                     constructeScale.setPowerFailureHouseNum(num);//停电时户数
-                    constructeScale.setPeakSummerProject((String) importUtil.getCellValue(row, 38));//是否迎峰度夏项目
-                    constructeScale.setProjectReview((String) importUtil.getCellValue(row, 39));//通过第几批项目评审
+                    constructeScale.setPeakSummerProject((String) importUtil.getCellValue(row, 37));//是否迎峰度夏项目
+                    constructeScale.setProjectReview((String) importUtil.getCellValue(row, 38));//通过第几批项目评审
 
                     list.add(constructeScale);
                 }

+ 0 - 26
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/web/BudgetStatsController.java

@@ -127,18 +127,6 @@ public class BudgetStatsController extends BaseController {
                 stats.setBudgetRevision("");
                 stats.setCompleteTime("");
             }
-            stats.setOwnerProjectManager("");
-            stats.setSiteManagementUnit("");
-            stats.setElectricalProjectManager("");
-            stats.setCivilEngineerProjectManager("");
-            stats.setElectricalSubcontractor("");
-            stats.setElectricalContact("");
-            stats.setCivilEngineerSubcontractor("");
-            stats.setCivilEngineerContact("");
-            stats.setSubcontractInfoRemark("");
-
-            stats.setDesignChange("");
-            stats.setDesignChangeStatus("");
 
 
 
@@ -234,20 +222,6 @@ public class BudgetStatsController extends BaseController {
                 stats.setBudgetRevision("");
                 stats.setCompleteTime("");
             }
-            stats.setOwnerProjectManager("");
-            stats.setSiteManagementUnit("");
-            stats.setElectricalProjectManager("");
-            stats.setCivilEngineerProjectManager("");
-            stats.setElectricalSubcontractor("");
-            stats.setElectricalContact("");
-            stats.setCivilEngineerSubcontractor("");
-            stats.setCivilEngineerContact("");
-            stats.setSubcontractInfoRemark("");
-
-            stats.setDesignChange("");
-            stats.setDesignChangeStatus("");
-
-
 
             statsList.add(stats);
         }

+ 226 - 65
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/web/CableController.java

@@ -5,14 +5,17 @@ import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.web.BaseController;
 import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.Cable;
-import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.MaterialData;
+import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.service.BudgetStatsService;
 import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.service.CableService;
 import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.util.ExcelExportUtil;
 import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.util.ExcelImportUtil;
 import com.jeeplus.modules.sg.managementcenter.materialproject.util.ImportUtil;
+import com.jeeplus.modules.sg.raiseCapitalDesign.entity.CableSectionInfo;
+import com.jeeplus.modules.sg.raiseCapitalDesign.service.RaiseCapitalDesignService;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -41,6 +44,12 @@ public class CableController extends BaseController {
     @Autowired
     private CableService cableService;
 
+    @Autowired
+    private BudgetStatsService statsService;
+
+    @Autowired
+    private RaiseCapitalDesignService raiseCapitalDesignService;
+
     @ModelAttribute
     public Cable get(@RequestParam(required = false) String id) {
         Cable entity = null;
@@ -86,45 +95,122 @@ public class CableController extends BaseController {
         Cable ca = null;
         for (int i=0;i<list.size();i++){
             ca = list.get(i);
+            String uuid = cableService.getRedisIdByProjectReserveId(ca.getProjectReserveId());
+            List<CableSectionInfo> cableFourHundredList = raiseCapitalDesignService.getCableSection(uuid + "cableFourHundred","cableFourHundred");
+            List<CableSectionInfo> cableHundredAndTwentyList = raiseCapitalDesignService.getCableSection(uuid + "cableHundredAndTwenty","cableHundredAndTwenty");
+            List<CableSectionInfo> cableThreeHundredList = raiseCapitalDesignService.getCableSection(uuid + "cableThreeHundred","cableThreeHundred");
+            List<CableSectionInfo> cableTwoHundredFortyList = raiseCapitalDesignService.getCableSection(uuid + "cableTwoHundredForty","cableTwoHundredForty");
+            List<CableSectionInfo> cableSeventyList = raiseCapitalDesignService.getCableSection(uuid + "cableSeventy","cableSeventy");
+            ca.setReserveProgress(statsService.getReserveProgress(ca.getProjectReserveId()));
+
+            ca.setDestination("");
+            ca.setPathLength("");
+            ca.setUpperRod("");
+            ca.setArrival("");
+            ca.setIncomingEquipment("");
+            ca.setCoefficient("");
+            ca.setElectricalChief("");
             //进行赋值操作
-            //根据物料编码 和 物料描述从cg_material_data表中获取相应的数据
-            List<MaterialData> dataList = cableService.getByProjectName(ca.getProjectName());
-            Double sum1 = 0.0;
-            Double sum2 = 0.0;
-            Double sum3 = 0.0;
-            cableList.add(ca);
-            if (dataList.size()>0){
-                for (int j=0;j<dataList.size();j++){
-                    if (dataList.get(j).getMaterialCode().equals("500108108") &
-                            dataList.get(j).getMaterialName().equals("电力电缆,AC10kV,YJV,400,3,22,ZC,无阻水")){
-                        sum1 += Double.parseDouble(dataList.get(j).getTotalCount());
-                        ca.setSpecifications("电力电缆,AC10kV,YJV,400,3,22,ZC,无阻水");
-                        ca.setDesignCableLength(sum1 + "");
-                        cableList.add(ca);
-                    }else if (dataList.get(j).getMaterialCode().equals("500108302") &
-                            dataList.get(j).getMaterialName().equals("电力电缆,AC10kV,YJV,240,3,22,ZC,无阻水")){
-                        sum2 += Double.parseDouble(dataList.get(j).getTotalCount());
-                        ca.setSpecifications("电力电缆,AC10kV,YJV,240,3,22,ZC,无阻水");
-                        ca.setDesignCableLength(sum2 + "");
-                        cableList.add(ca);
-                    }else if (dataList.get(j).getMaterialCode().equals("500108478") &
-                            dataList.get(j).getMaterialName().equals("电力电缆,AC10kV,YJV,70,3,22,ZC,无阻水")){
-                        sum3 += Double.parseDouble(dataList.get(j).getTotalCount());
-                        ca.setSpecifications("电力电缆,AC10kV,YJV,70,3,22,ZC,无阻水");
-                        ca.setDesignCableLength(sum3 + "");
-                        cableList.add(ca);
-                    } else {
-                        ca.setSpecifications("");
-                        ca.setDesignCableLength("");
+            ca.setReserveProgress(statsService.getReserveProgress(ca.getProjectReserveId()));
+            ca.setSpecifications("");
+            //给起讫点-电气长赋值
+            if ((null!=cableFourHundredList && cableFourHundredList.size()>0)
+                    || (null !=cableHundredAndTwentyList && cableHundredAndTwentyList.size()>0)
+                    || (null != cableThreeHundredList && cableThreeHundredList.size()>0)
+                    || (null != cableTwoHundredFortyList && cableTwoHundredFortyList.size()>0)
+                    || (null != cableSeventyList && cableSeventyList.size()>0)) {
+                if (null != cableFourHundredList && cableFourHundredList.size()>0){
+                    for (int j=0;j<cableFourHundredList.size();j++){
+                        Cable te = new Cable();
+                        BeanUtils.copyProperties(ca,te);
+                        te.setDestination(cableFourHundredList.get(j).getDestination());
+                        te.setPathLength(cableFourHundredList.get(j).getPathLength());
+                        te.setUpperRod(cableFourHundredList.get(j).getUpperRod());
+                        te.setArrival(cableFourHundredList.get(j).getArrival());
+                        te.setIncomingEquipment(cableFourHundredList.get(j).getIncomingEquipment());
+                        te.setCoefficient(cableFourHundredList.get(j).getCoefficient());
+                        te.setElectricalChief(cableFourHundredList.get(j).getElectricalChief());
+                        te.setSpecifications("YJV22-3×400mm²");
+                        //进行赋值操作
+                        te.setReserveProgress(ca.getReserveProgress());
+                        cableList.add(te);
+                    }
+                }
+                if (null != cableHundredAndTwentyList){
+                    for (int j=0;j<cableHundredAndTwentyList.size();j++){
+                        Cable te = new Cable();
+                        BeanUtils.copyProperties(ca,te);
+                        te.setDestination(cableHundredAndTwentyList.get(j).getDestination());
+                        te.setPathLength(cableHundredAndTwentyList.get(j).getPathLength());
+                        te.setUpperRod(cableHundredAndTwentyList.get(j).getUpperRod());
+                        te.setArrival(cableHundredAndTwentyList.get(j).getArrival());
+                        te.setIncomingEquipment(cableHundredAndTwentyList.get(j).getIncomingEquipment());
+                        te.setCoefficient(cableHundredAndTwentyList.get(j).getCoefficient());
+                        te.setElectricalChief(cableHundredAndTwentyList.get(j).getElectricalChief());
+                        te.setSpecifications("YJV22-3×120mm²");
+                        //进行赋值操作
+                        te.setReserveProgress(statsService.getReserveProgress(ca.getProjectReserveId()));
+                        cableList.add(te);
+                    }
+                }
+                if (null != cableThreeHundredList){
+                    for (int j=0;j<cableThreeHundredList.size();j++){
+                        Cable te = new Cable();
+                        BeanUtils.copyProperties(ca,te);
+                        te.setDestination(cableThreeHundredList.get(j).getDestination());
+                        te.setPathLength(cableThreeHundredList.get(j).getPathLength());
+                        te.setUpperRod(cableThreeHundredList.get(j).getUpperRod());
+                        te.setArrival(cableThreeHundredList.get(j).getArrival());
+                        te.setIncomingEquipment(cableThreeHundredList.get(j).getIncomingEquipment());
+                        te.setCoefficient(cableThreeHundredList.get(j).getCoefficient());
+                        te.setElectricalChief(cableThreeHundredList.get(j).getElectricalChief());
+                        te.setSpecifications("YJV22-3×300mm²");
+                        //进行赋值操作
+                        te.setReserveProgress(statsService.getReserveProgress(ca.getProjectReserveId()));
+                        cableList.add(te);
+                    }
+                }
+                if (null != cableTwoHundredFortyList){
+                    for (int j=0;j<cableTwoHundredFortyList.size();j++){
+                        Cable te = new Cable();
+                        BeanUtils.copyProperties(ca,te);
+                        te.setDestination(cableTwoHundredFortyList.get(j).getDestination());
+                        te.setPathLength(cableTwoHundredFortyList.get(j).getPathLength());
+                        te.setUpperRod(cableTwoHundredFortyList.get(j).getUpperRod());
+                        te.setArrival(cableTwoHundredFortyList.get(j).getArrival());
+                        te.setIncomingEquipment(cableTwoHundredFortyList.get(j).getIncomingEquipment());
+                        te.setCoefficient(cableTwoHundredFortyList.get(j).getCoefficient());
+                        te.setElectricalChief(cableTwoHundredFortyList.get(j).getElectricalChief());
+                        te.setSpecifications("YJV22-3×240mm²");
+                        //进行赋值操作
+                        te.setReserveProgress(statsService.getReserveProgress(ca.getProjectReserveId()));
+                        cableList.add(te);
+                    }
+                }
+                if (null != cableSeventyList){
+                    for (int j=0;j<cableSeventyList.size();j++){
+                        Cable te = new Cable();
+                        BeanUtils.copyProperties(ca,te);
+                        te.setDestination(cableSeventyList.get(j).getDestination());
+                        te.setPathLength(cableSeventyList.get(j).getPathLength());
+                        te.setUpperRod(cableSeventyList.get(j).getUpperRod());
+                        te.setArrival(cableSeventyList.get(j).getArrival());
+                        te.setIncomingEquipment(cableSeventyList.get(j).getIncomingEquipment());
+                        te.setCoefficient(cableSeventyList.get(j).getCoefficient());
+                        te.setElectricalChief(cableSeventyList.get(j).getElectricalChief());
+                        te.setSpecifications("YJV22-3×70mm²");
+                        //进行赋值操作
+                        te.setReserveProgress(statsService.getReserveProgress(ca.getProjectReserveId()));
+                        cableList.add(te);
                     }
                 }
             } else {
-                ca.setSpecifications("");
-                ca.setDesignCableLength("");
+                cableList.add(ca);
             }
 
-        }
 
+        }
+        page.setList(cableList);
         return getBootstrapData(page);
     }
 
@@ -177,43 +263,118 @@ public class CableController extends BaseController {
         Cable ca = null;
         for (int i=0;i<list.size();i++){
             ca = list.get(i);
+            String uuid = cableService.getRedisIdByProjectReserveId(ca.getProjectReserveId());
+            List<CableSectionInfo> cableFourHundredList = raiseCapitalDesignService.getCableSection(uuid + "cableFourHundred","cableFourHundred");
+            List<CableSectionInfo> cableHundredAndTwentyList = raiseCapitalDesignService.getCableSection(uuid + "cableHundredAndTwenty","cableHundredAndTwenty");
+            List<CableSectionInfo> cableThreeHundredList = raiseCapitalDesignService.getCableSection(uuid + "cableThreeHundred","cableThreeHundred");
+            List<CableSectionInfo> cableTwoHundredFortyList = raiseCapitalDesignService.getCableSection(uuid + "cableTwoHundredForty","cableTwoHundredForty");
+            List<CableSectionInfo> cableSeventyList = raiseCapitalDesignService.getCableSection(uuid + "cableSeventy","cableSeventy");
+
+            ca.setDestination("");
+            ca.setPathLength("");
+            ca.setUpperRod("");
+            ca.setArrival("");
+            ca.setIncomingEquipment("");
+            ca.setCoefficient("");
+            ca.setElectricalChief("");
             //进行赋值操作
-            //根据物料编码 和 物料描述从cg_material_data表中获取相应的数据
-            List<MaterialData> dataList = cableService.getByProjectName(ca.getProjectName());
-            Double sum1 = 0.0;
-            Double sum2 = 0.0;
-            Double sum3 = 0.0;
-            cableList.add(ca);
-            if (dataList.size()>0){
-                for (int j=0;j<dataList.size();j++){
-                    if (dataList.get(j).getMaterialCode().equals("500108108") &
-                            dataList.get(j).getMaterialName().equals("电力电缆,AC10kV,YJV,400,3,22,ZC,无阻水")){
-                        sum1 += Double.parseDouble(dataList.get(j).getTotalCount());
-                        ca.setSpecifications("电力电缆,AC10kV,YJV,400,3,22,ZC,无阻水");
-                        ca.setDesignCableLength(sum1 + "");
-                        cableList.add(ca);
-                    }else if (dataList.get(j).getMaterialCode().equals("500108302") &
-                            dataList.get(j).getMaterialName().equals("电力电缆,AC10kV,YJV,240,3,22,ZC,无阻水")){
-                        sum2 += Double.parseDouble(dataList.get(j).getTotalCount());
-                        ca.setSpecifications("电力电缆,AC10kV,YJV,240,3,22,ZC,无阻水");
-                        ca.setDesignCableLength(sum2 + "");
-                        cableList.add(ca);
-                    }else if (dataList.get(j).getMaterialCode().equals("500108478") &
-                            dataList.get(j).getMaterialName().equals("电力电缆,AC10kV,YJV,70,3,22,ZC,无阻水")){
-                        sum3 += Double.parseDouble(dataList.get(j).getTotalCount());
-                        ca.setSpecifications("电力电缆,AC10kV,YJV,70,3,22,ZC,无阻水");
-                        ca.setDesignCableLength(sum3 + "");
-                        cableList.add(ca);
-                    } else {
-                        ca.setSpecifications("");
-                        ca.setDesignCableLength("");
+            ca.setReserveProgress(statsService.getReserveProgress(ca.getProjectReserveId()));
+            ca.setSpecifications("");
+
+            //给起讫点-电气长赋值
+            if ((null!=cableFourHundredList && cableFourHundredList.size()>0)
+                    || (null !=cableHundredAndTwentyList && cableHundredAndTwentyList.size()>0)
+                    || (null != cableThreeHundredList && cableThreeHundredList.size()>0)
+                    || (null != cableTwoHundredFortyList && cableTwoHundredFortyList.size()>0)
+                    || (null != cableSeventyList && cableSeventyList.size()>0)) {
+                if (null != cableFourHundredList && cableFourHundredList.size()>0){
+                    for (int j=0;j<cableFourHundredList.size();j++){
+                        Cable te = new Cable();
+                        BeanUtils.copyProperties(ca,te);
+                        te.setDestination(cableFourHundredList.get(j).getDestination());
+                        te.setPathLength(cableFourHundredList.get(j).getPathLength());
+                        te.setUpperRod(cableFourHundredList.get(j).getUpperRod());
+                        te.setArrival(cableFourHundredList.get(j).getArrival());
+                        te.setIncomingEquipment(cableFourHundredList.get(j).getIncomingEquipment());
+                        te.setCoefficient(cableFourHundredList.get(j).getCoefficient());
+                        te.setElectricalChief(cableFourHundredList.get(j).getElectricalChief());
+                        te.setSpecifications("YJV22-3×400mm²");
+                        //进行赋值操作
+                        te.setReserveProgress(ca.getReserveProgress());
+                        cableList.add(te);
+                    }
+                }
+                if (null != cableHundredAndTwentyList){
+                    for (int j=0;j<cableHundredAndTwentyList.size();j++){
+                        Cable te = new Cable();
+                        BeanUtils.copyProperties(ca,te);
+                        te.setDestination(cableHundredAndTwentyList.get(j).getDestination());
+                        te.setPathLength(cableHundredAndTwentyList.get(j).getPathLength());
+                        te.setUpperRod(cableHundredAndTwentyList.get(j).getUpperRod());
+                        te.setArrival(cableHundredAndTwentyList.get(j).getArrival());
+                        te.setIncomingEquipment(cableHundredAndTwentyList.get(j).getIncomingEquipment());
+                        te.setCoefficient(cableHundredAndTwentyList.get(j).getCoefficient());
+                        te.setElectricalChief(cableHundredAndTwentyList.get(j).getElectricalChief());
+                        te.setSpecifications("YJV22-3×120mm²");
+                        //进行赋值操作
+                        te.setReserveProgress(statsService.getReserveProgress(ca.getProjectReserveId()));
+                        cableList.add(te);
+                    }
+                }
+                if (null != cableThreeHundredList){
+                    for (int j=0;j<cableThreeHundredList.size();j++){
+                        Cable te = new Cable();
+                        BeanUtils.copyProperties(ca,te);
+                        te.setDestination(cableThreeHundredList.get(j).getDestination());
+                        te.setPathLength(cableThreeHundredList.get(j).getPathLength());
+                        te.setUpperRod(cableThreeHundredList.get(j).getUpperRod());
+                        te.setArrival(cableThreeHundredList.get(j).getArrival());
+                        te.setIncomingEquipment(cableThreeHundredList.get(j).getIncomingEquipment());
+                        te.setCoefficient(cableThreeHundredList.get(j).getCoefficient());
+                        te.setElectricalChief(cableThreeHundredList.get(j).getElectricalChief());
+                        te.setSpecifications("YJV22-3×300mm²");
+                        //进行赋值操作
+                        te.setReserveProgress(statsService.getReserveProgress(ca.getProjectReserveId()));
+                        cableList.add(te);
+                    }
+                }
+                if (null != cableTwoHundredFortyList){
+                    for (int j=0;j<cableTwoHundredFortyList.size();j++){
+                        Cable te = new Cable();
+                        BeanUtils.copyProperties(ca,te);
+                        te.setDestination(cableTwoHundredFortyList.get(j).getDestination());
+                        te.setPathLength(cableTwoHundredFortyList.get(j).getPathLength());
+                        te.setUpperRod(cableTwoHundredFortyList.get(j).getUpperRod());
+                        te.setArrival(cableTwoHundredFortyList.get(j).getArrival());
+                        te.setIncomingEquipment(cableTwoHundredFortyList.get(j).getIncomingEquipment());
+                        te.setCoefficient(cableTwoHundredFortyList.get(j).getCoefficient());
+                        te.setElectricalChief(cableTwoHundredFortyList.get(j).getElectricalChief());
+                        te.setSpecifications("YJV22-3×240mm²");
+                        //进行赋值操作
+                        te.setReserveProgress(statsService.getReserveProgress(ca.getProjectReserveId()));
+                        cableList.add(te);
+                    }
+                }
+                if (null != cableSeventyList){
+                    for (int j=0;j<cableSeventyList.size();j++){
+                        Cable te = new Cable();
+                        BeanUtils.copyProperties(ca,te);
+                        te.setDestination(cableSeventyList.get(j).getDestination());
+                        te.setPathLength(cableSeventyList.get(j).getPathLength());
+                        te.setUpperRod(cableSeventyList.get(j).getUpperRod());
+                        te.setArrival(cableSeventyList.get(j).getArrival());
+                        te.setIncomingEquipment(cableSeventyList.get(j).getIncomingEquipment());
+                        te.setCoefficient(cableSeventyList.get(j).getCoefficient());
+                        te.setElectricalChief(cableSeventyList.get(j).getElectricalChief());
+                        te.setSpecifications("YJV22-3×70mm²");
+                        //进行赋值操作
+                        te.setReserveProgress(statsService.getReserveProgress(ca.getProjectReserveId()));
+                        cableList.add(te);
                     }
                 }
             } else {
-                ca.setSpecifications("");
-                ca.setDesignCableLength("");
+                cableList.add(ca);
             }
-
         }
 
         ExcelExportUtil util = ExcelExportUtil.getOne();

+ 6 - 6
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/web/ConstructeScaleController.java

@@ -114,10 +114,10 @@ public class ConstructeScaleController extends BaseController {
             String procInsId = scaleService.getByProjectReserveId(scale.getProjectReserveId());
             //根据proc_ins_id去运行时任务节点表(act_ru_task)中查出当前流程名称
             //设置储备进度
-            scale.setReserveProgress(budgetStatsService.getReserveProgress(scale.getProjectReserveId()));
+//            scale.setReserveProgress(budgetStatsService.getReserveProgress(scale.getProjectReserveId()));
             //设置费用估算
-            if (StringUtils.isNotEmpty(scale.getAfterTrialEstimateAmountExcludeTax())){
-                Double num = Double.valueOf(scale.getAfterTrialEstimateAmountExcludeTax());
+            if (StringUtils.isNotEmpty(scale.getAfterTrialEstimateAmount())){
+                Double num = Double.valueOf(scale.getAfterTrialEstimateAmount());
                 DecimalFormat decimalFormat = new DecimalFormat("#.00");
                 String format = decimalFormat.format(num / 10000);
                 scale.setCostEstimate(format);
@@ -321,10 +321,10 @@ public class ConstructeScaleController extends BaseController {
             String procInsId = scaleService.getByProjectReserveId(scale.getProjectReserveId());
             //根据proc_ins_id去运行时任务节点表(act_ru_task)中查出当前流程名称
             //设置储备进度
-            scale.setReserveProgress(budgetStatsService.getReserveProgress(scale.getProjectReserveId()));
+//            scale.setReserveProgress(budgetStatsService.getReserveProgress(scale.getProjectReserveId()));
             //设置费用估算
-            if (StringUtils.isNotEmpty(scale.getAfterTrialEstimateAmountExcludeTax())){
-                Double num = Double.valueOf(scale.getAfterTrialEstimateAmountExcludeTax());
+            if (StringUtils.isNotEmpty(scale.getAfterTrialEstimateAmount())){
+                Double num = Double.valueOf(scale.getAfterTrialEstimateAmount());
                 DecimalFormat decimalFormat = new DecimalFormat("#.00");
                 String format = decimalFormat.format(num / 10000);
                 scale.setCostEstimate(format);

+ 157 - 84
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/web/ProgressStatsController.java

@@ -29,9 +29,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -125,10 +123,10 @@ public class ProgressStatsController extends BaseController {
                 //设置是否进行审图
                 if (StringUtils.isNotEmpty(history.get(0).getEndTime())){
                     stats.setCompleteDraw("是");
-                    stats.setCompleteDrawDate(history.get(0).getEndTime());
+//                    stats.setCompleteDrawDate(history.get(0).getEndTime());
                 }else {
                     stats.setCompleteDraw("否");
-                    stats.setCompleteDrawDate("");
+//                    stats.setCompleteDrawDate("");
                 }
                 //设置是否通过图纸审核  查出最近的项目经理审图节点数据,根据他的结束时间查是否有下一个节点
                 List<History> jlHis = statsService.getHistoryByProInsId(procInsId, "项目经理审图");
@@ -136,6 +134,7 @@ public class ProgressStatsController extends BaseController {
                 List<History> gysHis = statsService.getHistoryByProInsId(procInsId, "技经人员审预算");
                 int status = projectService.getProcessStatus(stats.getProjectReserveId());
 
+                int biaoJi = 0;
                 //从反馈表中查
                 FeedBackBudget feBook = statsService.getByProId(stats.getProjectReserveId());
                 if (jlHis.size()>0){
@@ -146,7 +145,6 @@ public class ProgressStatsController extends BaseController {
                             //设置通过审核日期
                             stats.setPassAuditDate(jlHis.get(0).getEndTime());
                             //设置未通过原因分析
-
                             String info = "";
                             if (StringUtils.isNotEmpty(feBook.getDrawingAndSiteProblem())){
                                 info = feBook.getDrawingAndSiteProblem();
@@ -181,13 +179,15 @@ public class ProgressStatsController extends BaseController {
                             }
                             if (StringUtils.isNotEmpty(info)){
                                 stats.setReasonForFailure(info);
+                            }else {
+                                stats.setReasonForFailure("");
                             }
-                            stats.setReasonForFailure("");
                             //设置是否需设计变更
                             stats.setChangeDesign("是");
                         }else if (gysHis.get(0).getStartTime().equals(jlHis.get(0).getEndTime())){
                             //说明是通过
                             stats.setDrawAudit("通过");
+                            biaoJi += 1;
                             //设置通过审核日期
                             stats.setPassAuditDate(jlHis.get(0).getEndTime());
                             //设置是否需设计变更
@@ -213,6 +213,14 @@ public class ProgressStatsController extends BaseController {
                             stats.setReasonForFailure("");
                         }
                     }
+                } else {
+                    stats.setDrawAudit("");
+                    //设置通过审核日期
+                    stats.setPassAuditDate("");
+                    //设置是否需设计变更
+                    stats.setChangeDesign("");
+                    //设置未通过原因分析
+                    stats.setReasonForFailure("");
                 }
                 //设置概预算审核是否进行审核
                 if (gysHis.size()>0){
@@ -220,7 +228,7 @@ public class ProgressStatsController extends BaseController {
                         if (gysHis.get(0).getStartTime().equals(jlHis.get(0).getEndTime())){
                             stats.setWhetherToAudit("是");
                             //设置概预算审核日期
-                            stats.setAuditDate(gysHis.get(0).getStartTime());
+//                            stats.setAuditDate(gysHis.get(0).getStartTime());
                             //设置是否通过专家审核
                             if (StringUtils.isNotEmpty(gysHis.get(0).getEndTime())){
                                 if (gysHis.get(0).getEndTime().equals(history.get(0).getStartTime())){
@@ -314,6 +322,7 @@ public class ProgressStatsController extends BaseController {
                                 }else {
                                     //说明是通过
                                     stats.setExpertReview("通过");
+                                    biaoJi += 1;
                                     //设置通过审核日期
                                     stats.setEstimatePassAuditDate(gysHis.get(0).getEndTime());
                                     //设置是否需设计变更
@@ -324,6 +333,14 @@ public class ProgressStatsController extends BaseController {
                             stats.setWhetherToAudit("否");
                         }
                     }
+                } else {
+                    stats.setEstimateReasonForFailure("");
+                    stats.setExpertReview("");
+                    //设置通过审核日期
+                    stats.setEstimatePassAuditDate("");
+                    //设置是否需设计变更
+                    stats.setEstimateChangeDesign("");
+                    stats.setWhetherToAudit("否");
                 }
 
                 //设置是否进行图纸审查
@@ -365,6 +382,7 @@ public class ProgressStatsController extends BaseController {
                                 }else {
                                     //通过
                                     stats.setPassDrawingReview("通过");
+                                    biaoJi += 1;
                                     //设置通过联合审图日期
                                     stats.setApprovedDate(lhHis.get(0).getEndTime());
                                     //设置是否需设计变更
@@ -373,7 +391,7 @@ public class ProgressStatsController extends BaseController {
                             }
                         } else {
                             //设置是否进行图纸审查
-                            stats.setDrawingReview("");
+                            stats.setDrawingReview("");
                             //设置联合审图日期
                             stats.setReviewDate("");
                             //设置是否通过图纸审查
@@ -386,42 +404,59 @@ public class ProgressStatsController extends BaseController {
                             stats.setJointReviewDesignChange("");
                         }
                     }
+                } else {
+                    //设置是否进行图纸审查
+                    stats.setDrawingReview("否");
+                    //设置联合审图日期
+                    stats.setReviewDate("");
+                    //设置是否通过图纸审查
+                    stats.setPassDrawingReview("");
+                    //设置通过联合审图日期
+                    stats.setApprovedDate("");
+                    //设置审图意见
+                    stats.setReviewComment("");
+                    //设置是否需设计变更
+                    stats.setJointReviewDesignChange("");
                 }
                 //设置定稿日期
-                if (StringUtils.isNotEmpty(stats.getPassAuditDate()) &
-                        StringUtils.isNotEmpty(stats.getPassProvincialCompanyReview()) &
-                        StringUtils.isNotEmpty(stats.getApprovedDate())){
-                    Date timeByProID = budgetStatsService.getTimeByProID(stats.getProjectReserveId());
-                    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                    Date date1 = format.parse(stats.getPassAuditDate());
-                    Date date2 = format.parse(stats.getApprovedDate());
-                    if (timeByProID.before(date1)){
-                        if (date1.before(date2)) {
-                            stats.setFinalDate(format.format(date2));
-                        }else {
-                            stats.setFinalDate(format.format(date1));
-                        }
-                    }else {
-                        if (timeByProID.before(date2)){
-                            stats.setFinalDate(format.format(date2));
-                        }else {
-                            stats.setFinalDate(format.format(timeByProID));
-                        }
-                    }
-                    //设置图纸是否定稿
-                    if (StringUtils.isNotEmpty(stats.getFinalDate())){
-                        stats.setDrawingFinalize("是");
-                    }else {
-                        stats.setDrawingFinalize("否");
-                    }
+//                if (StringUtils.isNotEmpty(stats.getPassAuditDate()) &
+//                        StringUtils.isNotEmpty(stats.getPassProvincialCompanyReview()) &
+//                        StringUtils.isNotEmpty(stats.getApprovedDate())){
+//                    Date timeByProID = budgetStatsService.getTimeByProID(stats.getProjectReserveId());
+//                    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//                    Date date1 = format.parse(stats.getPassAuditDate());
+//                    Date date2 = format.parse(stats.getApprovedDate());
+//                    if (timeByProID.before(date1)){
+//                        if (date1.before(date2)) {
+//                            stats.setFinalDate(format.format(date2));
+//                        }else {
+//                            stats.setFinalDate(format.format(date1));
+//                        }
+//                    }else {
+//                        if (timeByProID.before(date2)){
+//                            stats.setFinalDate(format.format(date2));
+//                        }else {
+//                            stats.setFinalDate(format.format(timeByProID));
+//                        }
+//                    }
+//                    //设置图纸是否定稿
+//                    if (StringUtils.isNotEmpty(stats.getFinalDate())){
+//                        stats.setDrawingFinalize("是");
+//                    }else {
+//                        stats.setDrawingFinalize("否");
+//                    }
+//                } else {
+//                    //设置图纸是否定稿
+//                    stats.setDrawingFinalize("");
+//                    stats.setFinalDate("");
+//                    stats.setTransferProjectCenterDate("");
+//                    stats.setTransferToConstructionUnitDate("");
+//                }
+                if (stats.getPassProvincialCompanyReview().equals("通过") && biaoJi == 3){
+                    stats.setCompleteReserve(stats.getExpertReview());
                 } else {
-                    //设置图纸是否定稿
-                    stats.setDrawingFinalize("");
-                    stats.setFinalDate("");
-                    stats.setTransferProjectCenterDate("");
-                    stats.setTransferToConstructionUnitDate("");
+                    stats.setCompleteReserve("");
                 }
-
             } else {
                 stats = setStatsValue(stats);
             }
@@ -509,10 +544,10 @@ public class ProgressStatsController extends BaseController {
                 //设置是否进行审图
                 if (StringUtils.isNotEmpty(history.get(0).getEndTime())){
                     stats.setCompleteDraw("是");
-                    stats.setCompleteDrawDate(history.get(0).getEndTime());
+//                    stats.setCompleteDrawDate(history.get(0).getEndTime());
                 }else {
                     stats.setCompleteDraw("否");
-                    stats.setCompleteDrawDate("");
+//                    stats.setCompleteDrawDate("");
                 }
                 //设置是否通过图纸审核  查出最近的项目经理审图节点数据,根据他的结束时间查是否有下一个节点
                 List<History> jlHis = statsService.getHistoryByProInsId(procInsId, "项目经理审图");
@@ -520,6 +555,7 @@ public class ProgressStatsController extends BaseController {
                 List<History> gysHis = statsService.getHistoryByProInsId(procInsId, "技经人员审预算");
                 int status = projectService.getProcessStatus(stats.getProjectReserveId());
 
+                int biaoJi = 0;
                 //从反馈表中查
                 FeedBackBudget feBook = statsService.getByProId(stats.getProjectReserveId());
                 if (jlHis.size()>0){
@@ -530,7 +566,6 @@ public class ProgressStatsController extends BaseController {
                             //设置通过审核日期
                             stats.setPassAuditDate(jlHis.get(0).getEndTime());
                             //设置未通过原因分析
-
                             String info = "";
                             if (StringUtils.isNotEmpty(feBook.getDrawingAndSiteProblem())){
                                 info = feBook.getDrawingAndSiteProblem();
@@ -565,13 +600,15 @@ public class ProgressStatsController extends BaseController {
                             }
                             if (StringUtils.isNotEmpty(info)){
                                 stats.setReasonForFailure(info);
+                            }else {
+                                stats.setReasonForFailure("");
                             }
-                            stats.setReasonForFailure("");
                             //设置是否需设计变更
                             stats.setChangeDesign("是");
                         }else if (gysHis.get(0).getStartTime().equals(jlHis.get(0).getEndTime())){
                             //说明是通过
                             stats.setDrawAudit("通过");
+                            biaoJi += 1;
                             //设置通过审核日期
                             stats.setPassAuditDate(jlHis.get(0).getEndTime());
                             //设置是否需设计变更
@@ -597,6 +634,14 @@ public class ProgressStatsController extends BaseController {
                             stats.setReasonForFailure("");
                         }
                     }
+                } else {
+                    stats.setDrawAudit("");
+                    //设置通过审核日期
+                    stats.setPassAuditDate("");
+                    //设置是否需设计变更
+                    stats.setChangeDesign("");
+                    //设置未通过原因分析
+                    stats.setReasonForFailure("");
                 }
                 //设置概预算审核是否进行审核
                 if (gysHis.size()>0){
@@ -604,7 +649,7 @@ public class ProgressStatsController extends BaseController {
                         if (gysHis.get(0).getStartTime().equals(jlHis.get(0).getEndTime())){
                             stats.setWhetherToAudit("是");
                             //设置概预算审核日期
-                            stats.setAuditDate(gysHis.get(0).getStartTime());
+//                            stats.setAuditDate(gysHis.get(0).getStartTime());
                             //设置是否通过专家审核
                             if (StringUtils.isNotEmpty(gysHis.get(0).getEndTime())){
                                 if (gysHis.get(0).getEndTime().equals(history.get(0).getStartTime())){
@@ -698,6 +743,7 @@ public class ProgressStatsController extends BaseController {
                                 }else {
                                     //说明是通过
                                     stats.setExpertReview("通过");
+                                    biaoJi += 1;
                                     //设置通过审核日期
                                     stats.setEstimatePassAuditDate(gysHis.get(0).getEndTime());
                                     //设置是否需设计变更
@@ -708,6 +754,14 @@ public class ProgressStatsController extends BaseController {
                             stats.setWhetherToAudit("否");
                         }
                     }
+                } else {
+                    stats.setEstimateReasonForFailure("");
+                    stats.setExpertReview("");
+                    //设置通过审核日期
+                    stats.setEstimatePassAuditDate("");
+                    //设置是否需设计变更
+                    stats.setEstimateChangeDesign("");
+                    stats.setWhetherToAudit("否");
                 }
 
                 //设置是否进行图纸审查
@@ -749,6 +803,7 @@ public class ProgressStatsController extends BaseController {
                                 }else {
                                     //通过
                                     stats.setPassDrawingReview("通过");
+                                    biaoJi += 1;
                                     //设置通过联合审图日期
                                     stats.setApprovedDate(lhHis.get(0).getEndTime());
                                     //设置是否需设计变更
@@ -757,7 +812,7 @@ public class ProgressStatsController extends BaseController {
                             }
                         } else {
                             //设置是否进行图纸审查
-                            stats.setDrawingReview("");
+                            stats.setDrawingReview("");
                             //设置联合审图日期
                             stats.setReviewDate("");
                             //设置是否通过图纸审查
@@ -770,42 +825,59 @@ public class ProgressStatsController extends BaseController {
                             stats.setJointReviewDesignChange("");
                         }
                     }
+                } else {
+                    //设置是否进行图纸审查
+                    stats.setDrawingReview("否");
+                    //设置联合审图日期
+                    stats.setReviewDate("");
+                    //设置是否通过图纸审查
+                    stats.setPassDrawingReview("");
+                    //设置通过联合审图日期
+                    stats.setApprovedDate("");
+                    //设置审图意见
+                    stats.setReviewComment("");
+                    //设置是否需设计变更
+                    stats.setJointReviewDesignChange("");
                 }
                 //设置定稿日期
-                if (StringUtils.isNotEmpty(stats.getPassAuditDate()) &
-                        StringUtils.isNotEmpty(stats.getPassProvincialCompanyReview()) &
-                        StringUtils.isNotEmpty(stats.getApprovedDate())){
-                    Date timeByProID = budgetStatsService.getTimeByProID(stats.getProjectReserveId());
-                    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                    Date date1 = format.parse(stats.getPassAuditDate());
-                    Date date2 = format.parse(stats.getApprovedDate());
-                    if (timeByProID.before(date1)){
-                        if (date1.before(date2)) {
-                            stats.setFinalDate(format.format(date2));
-                        }else {
-                            stats.setFinalDate(format.format(date1));
-                        }
-                    }else {
-                        if (timeByProID.before(date2)){
-                            stats.setFinalDate(format.format(date2));
-                        }else {
-                            stats.setFinalDate(format.format(timeByProID));
-                        }
-                    }
-                    //设置图纸是否定稿
-                    if (StringUtils.isNotEmpty(stats.getFinalDate())){
-                        stats.setDrawingFinalize("是");
-                    }else {
-                        stats.setDrawingFinalize("否");
-                    }
+//                if (StringUtils.isNotEmpty(stats.getPassAuditDate()) &
+//                        StringUtils.isNotEmpty(stats.getPassProvincialCompanyReview()) &
+//                        StringUtils.isNotEmpty(stats.getApprovedDate())){
+//                    Date timeByProID = budgetStatsService.getTimeByProID(stats.getProjectReserveId());
+//                    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//                    Date date1 = format.parse(stats.getPassAuditDate());
+//                    Date date2 = format.parse(stats.getApprovedDate());
+//                    if (timeByProID.before(date1)){
+//                        if (date1.before(date2)) {
+//                            stats.setFinalDate(format.format(date2));
+//                        }else {
+//                            stats.setFinalDate(format.format(date1));
+//                        }
+//                    }else {
+//                        if (timeByProID.before(date2)){
+//                            stats.setFinalDate(format.format(date2));
+//                        }else {
+//                            stats.setFinalDate(format.format(timeByProID));
+//                        }
+//                    }
+//                    //设置图纸是否定稿
+//                    if (StringUtils.isNotEmpty(stats.getFinalDate())){
+//                        stats.setDrawingFinalize("是");
+//                    }else {
+//                        stats.setDrawingFinalize("否");
+//                    }
+//                } else {
+//                    //设置图纸是否定稿
+//                    stats.setDrawingFinalize("");
+//                    stats.setFinalDate("");
+//                    stats.setTransferProjectCenterDate("");
+//                    stats.setTransferToConstructionUnitDate("");
+//                }
+                if (stats.getPassProvincialCompanyReview().equals("通过") && biaoJi == 3){
+                    stats.setCompleteReserve(stats.getExpertReview());
                 } else {
-                    //设置图纸是否定稿
-                    stats.setDrawingFinalize("");
-                    stats.setFinalDate("");
-                    stats.setTransferProjectCenterDate("");
-                    stats.setTransferToConstructionUnitDate("");
+                    stats.setCompleteReserve("");
                 }
-
             } else {
                 stats = setStatsValue(stats);
             }
@@ -832,7 +904,7 @@ public class ProgressStatsController extends BaseController {
         //设置是否进行审图
         stats.setCompleteDraw("");
         //设置审图日期
-        stats.setCompleteDrawDate("");
+//        stats.setCompleteDrawDate("");
         //设置设计委托发出时间
         stats.setDesignCommissionIssueTime("");
         //设置未通过原因分析
@@ -846,7 +918,7 @@ public class ProgressStatsController extends BaseController {
         //设置概预算是否进行审核
         stats.setWhetherToAudit("");
         //设置概预算审核日期
-        stats.setAuditDate("");
+//        stats.setAuditDate("");
         //设置概预算是否通过专家审核
         stats.setExpertReview("");
         //设置通过审核日期
@@ -866,10 +938,11 @@ public class ProgressStatsController extends BaseController {
         //设置是否需设计变更
         stats.setJointReviewDesignChange("");
         //设置图纸是否定稿
-        stats.setDrawingFinalize("");
-        stats.setFinalDate("");
-        stats.setTransferProjectCenterDate("");
-        stats.setTransferToConstructionUnitDate("");
+//        stats.setDrawingFinalize("");
+//        stats.setFinalDate("");
+//        stats.setTransferProjectCenterDate("");
+//        stats.setTransferToConstructionUnitDate("");
+        stats.setCompleteReserve("");
         return stats;
     }
 }

+ 34 - 5
src/main/java/com/jeeplus/modules/sg/raiseCapital/web/RaiseCapitalController.java

@@ -12,12 +12,16 @@ import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.web.BaseController;
 import com.jeeplus.modules.sg.financial.erpcredit.util.Result;
 import com.jeeplus.modules.sg.financial.erpcredit.util.SerializeUtil;
+import com.jeeplus.modules.sg.picking.activiti.entity.MdSmallClass;
+import com.jeeplus.modules.sg.picking.activiti.entity.MdTheClass;
 import com.jeeplus.modules.sg.picking.activiti.entity.PickList;
 import com.jeeplus.modules.sg.picking.activiti.entity.ShowList;
 import com.jeeplus.modules.sg.picking.activiti.service.PickIngService;
 import com.jeeplus.modules.sg.picking.activiti.service.ShowListService;
 import com.jeeplus.modules.sg.raiseCapital.entity.RaiseCapital;
 import com.jeeplus.modules.sg.raiseCapital.service.RaiseCapitalService;
+import com.jeeplus.modules.sg.raiseCapitalDesign.entity.DisposeCableData;
+import com.jeeplus.modules.sg.raiseCapitalDesign.service.RaiseCapitalDesignService;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import net.oschina.j2cache.CacheChannel;
 import net.oschina.j2cache.J2Cache;
@@ -37,10 +41,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.ConstraintViolationException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 提资模块Controller
@@ -60,6 +61,9 @@ public class RaiseCapitalController extends BaseController {
 	@Autowired
 	private ShowListService showListService;
 
+	@Autowired
+	private RaiseCapitalDesignService raiseCapitalDesignService;
+
 	@ModelAttribute
 	public RaiseCapital get(@RequestParam(required=false) String id) {
 		RaiseCapital entity = null;
@@ -89,9 +93,34 @@ public class RaiseCapitalController extends BaseController {
 	 */
 //	@RequiresPermissions("test:raiseCapital:jgcList")
 	@RequestMapping(value = {"jgcList", ""})
-	public String jgcList(RaiseCapital raiseCapital, Model model,String projectName,String projectReserveId) {
+	public String jgcList(RaiseCapital raiseCapital, Model model,String projectName,String projectReserveId,String uid) {
+		//创建一个临时UUID信息
+		UUID uuid = UUID.randomUUID();
 		List<PickList> pickListList = raiseCapitalService.newAllList();
+		//将新增页数据保存到redis中(item)
+		if (StringUtils.isNotBlank(uid)){
+			List<DisposeCableData> voltageDisposeDataList = raiseCapitalDesignService.disposeFormCableDataList(uid);
+			Map<String,String> map = new HashMap<>();
+			voltageDisposeDataList.forEach(vo->{
+				map.put(vo.getId(),vo.getNumber());
+			});
+			for (int i=0;i<pickListList.size();i++){
+				List<MdTheClass> mdList = pickListList.get(i).getMdTheClassList();
+				for (int j=0;j<mdList.size();j++){
+					List<MdSmallClass> smallList = mdList.get(j).getMdSmallClassList();
+					smallList.forEach(sm->{
+						if (StringUtils.isNotBlank(map.get(sm.getId()))){
+							sm.setNumber(map.get(sm.getId()));
+						}
+					});
+					mdList.get(j).setMdSmallClassList(smallList);
+				}
+				pickListList.get(i).setMdTheClassList(mdList);
+			}
+		}
 //		raiseCapital.setProjectName(projectName);
+		model.addAttribute("pickUuid", uuid);
+		model.addAttribute("uid", uid);
 		model.addAttribute("pickListList", pickListList);
 		model.addAttribute("raiseCapital", raiseCapital);
 		model.addAttribute("projectName", projectName);

BIN=BIN
src/main/resources/freemarker/excelmodel/budgetStats.xlsx


BIN=BIN
src/main/resources/freemarker/excelmodel/cable.xlsx


BIN=BIN
src/main/resources/freemarker/excelmodel/constructeScale.xlsx


BIN=BIN
src/main/resources/freemarker/excelmodel/preliminaryPrepartion.xlsx


BIN=BIN
src/main/resources/freemarker/excelmodel/progressStats.xlsx


BIN=BIN
src/main/resources/freemarker/excelmodel/projectReserveManagement.xlsx


BIN=BIN
src/main/resources/freemarker/excelmodel/summaryStatistics.xlsx


+ 244 - 0
src/main/webapp/webpage/modules/cg/reservemanagementcenter/raiseCapital/aerialConductorForm.jsp

@@ -0,0 +1,244 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>核准阶段管理</title>
+	<meta name="decorator" content="ani"/>
+	<script type="text/javascript">
+
+		$(document).ready(function() {
+	        $('#inDate').datetimepicker({
+				 format: "YYYY-MM-DD HH:mm:ss"
+		    });
+		});
+
+		function save() {
+            var isValidate = jp.validateForm('#inputForm');//校验表单
+            if(!isValidate){
+                return false;
+			}else{
+            	var uuid = $("#uuid").val();
+                jp.loading();
+                jp.post("${ctx}/raiseCapitalDesign/saveVlatage",$('#inputForm').serialize(),function(data){
+                    if(data.success){
+                        jp.getParent().refresh();
+						jp.getParent().testSay2(uuid);
+                        var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
+                        parent.layer.close(dialogIndex);
+                        jp.success(data.msg)
+						// jp.getParent().refreshCharts(uuid);
+                    }else{
+                        jp.error(data.msg);
+                    }
+                })
+			}
+
+        }
+		function addRow(list, idx, tpl, row){
+			$(list).append(Mustache.render(tpl, {
+				idx: idx, delBtn: true, row: row
+			}));
+			$(list+idx).find("select").each(function(){
+				$(this).val($(this).attr("data-value"));
+			});
+			$(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
+				var ss = $(this).attr("data-value").split(',');
+				for (var i=0; i<ss.length; i++){
+					if($(this).val() == ss[i]){
+						$(this).attr("checked","checked");
+					}
+				}
+			});
+			$(list+idx).find(".form_datetime").each(function(){
+				 $(this).datetimepicker({
+					 format: "YYYY-MM-DD HH:mm:ss"
+			    });
+			});
+		}
+		function delRow(obj, prefix){
+			var id = $(prefix+"_id");
+			var delFlag = $(prefix+"_delFlag");
+			if (id.val() == ""){
+				$(obj).parent().parent().remove();
+			}else if(delFlag.val() == "0"){
+				delFlag.val("1");
+				$(obj).html("&divide;").attr("title", "撤销删除");
+				$(obj).parent().parent().addClass("error");
+			}else if(delFlag.val() == "1"){
+				delFlag.val("0");
+				$(obj).html("&times;").attr("title", "删除");
+				$(obj).parent().parent().removeClass("error");
+			}
+		}
+
+		function highVoltageCalculate(obj,prefix) {
+			var tr=$(obj).parent().parent();
+			var singleCircuitPath =document.getElementById(prefix+"_singleCircuitPath").value;//单回路路径
+			var doubleCircuitPath =document.getElementById(prefix+"_doubleCircuitPath").value;//双回路路径
+			var highSingleVoltageCoefficient = $("#highSingleVoltageCoefficient").val();//10KV单回路路径系数
+			var highDoubleVoltageCoefficient = $("#highDoubleVoltageCoefficient").val();//10KV双回路路径系数
+
+			if (singleCircuitPath==undefined || singleCircuitPath==null || singleCircuitPath==''){
+				singleCircuitPath=0;
+			}
+			if (doubleCircuitPath==undefined || doubleCircuitPath==null || doubleCircuitPath==''){
+				doubleCircuitPath=0;
+			}
+			if (highSingleVoltageCoefficient==undefined || highSingleVoltageCoefficient==null || highSingleVoltageCoefficient==''){
+				highSingleVoltageCoefficient=1;
+			}
+			if (highDoubleVoltageCoefficient==undefined || highDoubleVoltageCoefficient==null || highDoubleVoltageCoefficient==''){
+				highDoubleVoltageCoefficient=1;
+			}
+			var total=parseFloat(singleCircuitPath)*parseFloat(highSingleVoltageCoefficient)+parseFloat(doubleCircuitPath)*parseFloat(highDoubleVoltageCoefficient);
+			document.getElementById(prefix+"_singleLong").value=total.toFixed(2);
+		}
+
+		function lowVoltageCalculate(obj,prefix) {
+			var tr=$(obj).parent().parent();
+			var singleCircuitPath =document.getElementById(prefix+"_singleCircuitPath").value;//单回路路径
+			var doubleCircuitPath =document.getElementById(prefix+"_doubleCircuitPath").value;//双回路路径
+			var lowSingleVoltageCoefficient = $("#lowSingleVoltageCoefficient").val();//0.4KV单回路路径系数
+			var lowDoubleVoltageCoefficient = $("#lowDoubleVoltageCoefficient").val();//0.4KV双回路路径系数
+
+			if (singleCircuitPath==undefined || singleCircuitPath==null || singleCircuitPath==''){
+				singleCircuitPath=0;
+			}
+			if (doubleCircuitPath==undefined || doubleCircuitPath==null || doubleCircuitPath==''){
+				doubleCircuitPath=0;
+			}
+			if (lowSingleVoltageCoefficient==undefined || lowSingleVoltageCoefficient==null || lowSingleVoltageCoefficient==''){
+				lowSingleVoltageCoefficient=1;
+			}
+			if (lowDoubleVoltageCoefficient==undefined || lowDoubleVoltageCoefficient==null || lowDoubleVoltageCoefficient==''){
+				lowDoubleVoltageCoefficient=1;
+			}
+			var total=parseFloat(singleCircuitPath)*parseFloat(lowSingleVoltageCoefficient)+parseFloat(doubleCircuitPath)*parseFloat(lowDoubleVoltageCoefficient);
+			document.getElementById(prefix+"_singleLong").value=total.toFixed(2);
+		}
+	</script>
+</head>
+<body class="bg-white">
+<div>
+	<ul class="nav nav-tabs list-tabs">
+		<li class="active" role="presentation" id="click1"><a id="dq" href="javascript:void(0)">10kV部分</a></li>
+	</ul>
+</div>
+		<form:form id="inputForm" modelAttribute="voltageData" action="${ctx}/filing/basicInformation/save" method="post" class="form-horizontal">
+			<input type="hidden" id="uuid" name="uuid" value="${uuid}">
+			<input type="hidden" id="highSingleVoltageCoefficient" value="${highSingleVoltageCoefficient}">
+			<input type="hidden" id="highDoubleVoltageCoefficient" value="${highDoubleVoltageCoefficient}">
+			<input type="hidden" id="lowSingleVoltageCoefficient" value="${lowSingleVoltageCoefficient}">
+			<input type="hidden" id="lowDoubleVoltageCoefficient" value="${lowDoubleVoltageCoefficient}">
+			<div class="tabs-container">
+				<div class="tab-content">
+					<div id="tab-1" class="tab-pane fade in  active">
+				<table class="table table-striped table-bordered table-condensed">
+					<thead>
+						<tr>
+							<th class="hide"></th>
+							<th>导线型号</th>
+							<th>单回路路径(km)</th>
+							<th>双回路路径(km)</th>
+							<th>单线长(km)</th>
+						</tr>
+					</thead>
+					<tbody id="highVoltageList">
+					</tbody>
+				</table>
+				<script type="text/template" id="basicInformationTpl">//<!--
+					<tr id="highVoltageList{{idx}}">
+						<td class="hide">
+							<input id="highVoltageList{{idx}}_id" name="highVoltageList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+							<input id="highVoltageList{{idx}}_delFlag" name="highVoltageList[{{idx}}].delFlag" type="hidden" value="0"/>
+						</td>
+
+						<td  class="max-width-250">
+						<input type='text' id="highVoltageList[{{idx}}]_voltageName"  name="highVoltageList[{{idx}}].voltageName" readonly= "true" class="form-control"  value="{{row.voltageName}}"/>
+						</td>
+
+						<td  class="max-width-250">
+							<input type='text' id="highVoltageList[{{idx}}]_singleCircuitPath" name="highVoltageList[{{idx}}].singleCircuitPath" placeholder="请输入数字"  onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10" class="form-control number"  value="{{row.singleCircuitPath}}" onchange="highVoltageCalculate(this,'highVoltageList[{{idx}}]')"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="highVoltageList[{{idx}}]_doubleCircuitPath" name="highVoltageList[{{idx}}].doubleCircuitPath" placeholder="请输入数字"  onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10" class="form-control number"  value="{{row.doubleCircuitPath}}" onchange="highVoltageCalculate(this,'highVoltageList[{{idx}}]')"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="highVoltageList[{{idx}}]_singleLong" name="highVoltageList[{{idx}}].singleLong" readonly= "true" class="form-control number"  value="{{row.singleLong}}"/>
+						</td>
+					</tr>//-->
+				</script>
+				<script type="text/javascript">
+					var basicInformationRowIdx = 0, basicInformationTpl = $("#basicInformationTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+					$(document).ready(function() {
+						var data = ${fns:toJson(highVoltageList)};
+						for (var i=0; i<data.length; i++){
+							addRow('#highVoltageList', basicInformationRowIdx, basicInformationTpl, data[i]);
+							basicInformationRowIdx = basicInformationRowIdx + 1;
+						}
+					});
+				</script>
+				</div>
+			</div>
+		</div>
+
+			<div>
+				<ul class="nav nav-tabs list-tabs">
+					<li class="active" role="presentation" id="click2" ><a id="qd" href="javascript:void(0)">0.4kV部分</a></li>
+				</ul>
+			</div>
+
+			<div class="tabs-container">
+				<div class="tab-content">
+					<div id="tab-2" class="tab-pane fade in  active">
+						<table class="table table-striped table-bordered table-condensed">
+							<thead>
+							<tr>
+								<th class="hide"></th>
+								<th>导线型号</th>
+								<th>单回路路径(km)</th>
+								<th>双回路路径(km)</th>
+								<th>单线长(km)</th>
+							</tr>
+							</thead>
+							<tbody id="lowVoltageList">
+							</tbody>
+						</table>
+						<script type="text/template" id="lowVoltageTpl">//<!--
+				<tr id="lowVoltageList{{idx}}">
+					<td class="hide">
+						<input id="lowVoltageList{{idx}}_id" name="lowVoltageList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+						<input id="lowVoltageList{{idx}}_delFlag" name="lowVoltageList[{{idx}}].delFlag" type="hidden" value="0"/>
+					</td>
+
+					<td  class="max-width-250">
+					<input type='text' id="lowVoltageList[{{idx}}]_voltageName" name="lowVoltageList[{{idx}}].voltageName"  readonly= "true" class="form-control"  value="{{row.voltageName}}"/>
+					</td>
+
+					<td  class="max-width-250">
+						<input type='text' id="lowVoltageList[{{idx}}]_singleCircuitPath" name="lowVoltageList[{{idx}}].singleCircuitPath" placeholder="请输入数字"  onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10" class="form-control number"  value="{{row.singleCircuitPath}}" onchange="lowVoltageCalculate(this,'lowVoltageList[{{idx}}]')"/>
+					</td>
+					<td class="max-width-250">
+						<input type='text' id="lowVoltageList[{{idx}}]_doubleCircuitPath" name="lowVoltageList[{{idx}}].doubleCircuitPath" placeholder="请输入数字"  onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10" class="form-control number"  value="{{row.doubleCircuitPath}}" onchange="lowVoltageCalculate(this,'lowVoltageList[{{idx}}]')"/>
+					</td>
+					<td class="max-width-250">
+						<input type='text' id="lowVoltageList[{{idx}}]_singleLong" name="lowVoltageList[{{idx}}].singleLong" readonly= "true" class="form-control number"  value="{{row.singleLong}}"/>
+					</td>
+				</tr>//-->
+						</script>
+						<script type="text/javascript">
+							var lowVoltageRowIdx = 0, lowVoltageTpl = $("#lowVoltageTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+							$(document).ready(function() {
+								var data = ${fns:toJson(lowVoltageList)};
+								for (var i=0; i<data.length; i++){
+									addRow('#lowVoltageList', lowVoltageRowIdx, lowVoltageTpl, data[i]);
+									lowVoltageRowIdx = lowVoltageRowIdx + 1;
+								}
+							});
+						</script>
+					</div>
+				</div>
+			</div>
+		</form:form>
+</body>
+</html>

+ 592 - 0
src/main/webapp/webpage/modules/cg/reservemanagementcenter/raiseCapital/cableSectionForm.jsp

@@ -0,0 +1,592 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>核准阶段管理</title>
+	<meta name="decorator" content="ani"/>
+	<script type="text/javascript">
+
+		$(document).ready(function() {
+	        $('#inDate').datetimepicker({
+				 format: "YYYY-MM-DD HH:mm:ss"
+		    });
+
+			$(".list-tabs li").click(function(){
+				$(".list-tabs li").each(function(){
+					$(this).removeAttr("class","active");
+					var id='#'+$(this).find("span").html();
+					$(id).attr("class","hide");
+				})
+				$(this).attr("class","active");
+				var id='#'+$(this).find("span").html();
+				$(id).removeAttr("class","hide");
+			})
+
+			$(".list-tabs li").each(function(){
+				var data = ${fns:toJson(cableSectionData)};
+				var name=$(this).find("span").eq(1).html();
+				for (var i=0;i<data.length;i++){
+					if (name==data[i].voltageName){
+						$(this).find("input").val(data[i].id);
+					}
+				}
+			})
+			//400mm
+			var cableFourHundredList = ${fns:toJson(cableFourHundredList)};
+			if (null != cableFourHundredList){
+				var cableFourHundredListTotal=0;
+				for (var i=0;i<cableFourHundredList.length;i++){
+					var electricalChief=cableFourHundredList[i].electricalChief;
+					cableFourHundredListTotal=cableFourHundredListTotal+parseFloat(electricalChief);
+				}
+				document.getElementById("cableFourHundredListTotal").value=(cableFourHundredListTotal/1000).toFixed(4);
+			}
+			//300mm
+			var cableThreeHundredList = ${fns:toJson(cableThreeHundredList)};
+			if (null != cableThreeHundredList){
+				var cableThreeHundredListTotal=0;
+				for (var i=0;i<cableThreeHundredList.length;i++){
+					var electricalChief=cableThreeHundredList[i].electricalChief;
+					cableThreeHundredListTotal=cableThreeHundredListTotal+parseFloat(electricalChief);
+				}
+				document.getElementById("cableThreeHundredListTotal").value=(cableThreeHundredListTotal/1000).toFixed(4);
+			}
+			//240mm
+			var cableTwoHundredFortyList = ${fns:toJson(cableTwoHundredFortyList)};
+			if (null != cableTwoHundredFortyList){
+				var cableTwoHundredFortyListTotal=0;
+				for (var i=0;i<cableTwoHundredFortyList.length;i++){
+					var electricalChief=cableTwoHundredFortyList[i].electricalChief;
+					cableTwoHundredFortyListTotal=cableTwoHundredFortyListTotal+parseFloat(electricalChief);
+				}
+				document.getElementById("cableTwoHundredFortyListTotal").value=(cableTwoHundredFortyListTotal/1000).toFixed(4);
+			}
+			//120mm
+			var cableHundredAndTwentyList = ${fns:toJson(cableHundredAndTwentyList)};
+			if (null != cableHundredAndTwentyList){
+				var cableHundredAndTwentyListTotal=0;
+				for (var i=0;i<cableHundredAndTwentyList.length;i++){
+					var electricalChief=cableHundredAndTwentyList[i].electricalChief;
+					cableHundredAndTwentyListTotal=cableHundredAndTwentyListTotal+parseFloat(electricalChief);
+				}
+				document.getElementById("cableHundredAndTwentyListTotal").value=(cableHundredAndTwentyListTotal/1000).toFixed(4);
+			}
+			//70mm
+			var cableSeventyList = ${fns:toJson(cableSeventyList)};
+			if (null != cableSeventyList){
+				var cableSeventyListTotal=0;
+				for (var i=0;i<cableSeventyList.length;i++){
+					var electricalChief=cableSeventyList[i].electricalChief;
+					cableSeventyListTotal=cableSeventyListTotal+parseFloat(electricalChief);
+				}
+				document.getElementById("cableSeventyListTotal").value=(cableSeventyListTotal/1000).toFixed(4);
+			}
+
+		});
+
+		function save() {
+			var isValidate = jp.validateForm('#inputForm');//校验表单
+			if(!isValidate){
+				return false;
+			}else{
+				var uuid = $("#uuid").val();
+				jp.loading();
+				jp.post("${ctx}/raiseCapitalDesign/saveCable",$('#inputForm').serialize(),function(data){
+					if(data.success){
+						jp.getParent().refresh();
+						jp.getParent().testSay(uuid);
+						var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
+						parent.layer.close(dialogIndex);
+						jp.success(data.msg)
+					}else{
+						jp.error(data.msg);
+					}
+				})
+			}
+
+		}
+
+		function addRow(list, idx, tpl, row){
+			$(list).prepend(Mustache.render(tpl, {
+				idx: idx, delBtn: true, row: row
+			}));
+			$(list+idx).find("select").each(function(){
+				$(this).val($(this).attr("data-value"));
+			});
+			$(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
+				var ss = $(this).attr("data-value").split(',');
+				for (var i=0; i<ss.length; i++){
+					if($(this).val() == ss[i]){
+						$(this).attr("checked","checked");
+					}
+				}
+			});
+			$(list+idx).find(".form_datetime").each(function(){
+				 $(this).datetimepicker({
+					 format: "YYYY-MM-DD HH:mm:ss"
+			    });
+			});
+		}
+		function delRow(obj, prefix,tbody,idx){
+			var id = $(prefix+"_id");
+			var delFlag = $(prefix+"_delFlag");
+			if (id.val() == ""){
+				$(obj).parent().parent().remove();
+				if (idx=='cableFourHundredRowIdx'){
+					cableFourHundredRowIdx=cableFourHundredRowIdx-1;
+					cableFourHundredTotal(tbody,cableFourHundredRowIdx);
+				}else if (idx=='cableThreeHundredRowIdx'){
+					cableThreeHundredRowIdx=cableThreeHundredRowIdx-1;
+					cableFourHundredTotal(tbody,cableThreeHundredRowIdx);
+				}else if (idx=='cableTwoHundredFortyRowIdx'){
+					cableTwoHundredFortyRowIdx=cableTwoHundredFortyRowIdx-1;
+					cableFourHundredTotal(tbody,cableTwoHundredFortyRowIdx);
+				}else if (idx=='cableHundredAndTwentyRowIdx'){
+					cableHundredAndTwentyRowIdx=cableHundredAndTwentyRowIdx-1;
+					cableFourHundredTotal(tbody,cableHundredAndTwentyRowIdx);
+				}else if (idx=='cableSeventyRowIdx'){
+					cableSeventyRowIdx=cableSeventyRowIdx-1;
+					cableFourHundredTotal(tbody,cableSeventyRowIdx);
+				}
+			}else if(delFlag.val() == "0"){
+				delFlag.val("1");
+				$(obj).html("&divide;").attr("title", "撤销删除");
+				$(obj).parent().parent().addClass("error");
+			}else if(delFlag.val() == "1"){
+				delFlag.val("0");
+				$(obj).html("&times;").attr("title", "删除");
+				$(obj).parent().parent().removeClass("error");
+			}
+		}
+		function cableJiSuan(obj,prefix,tbody,idx) {
+			var tr=$(obj).parent().parent();
+			// var pathLength =$(tr).find("td").eq(2).val();//路径长(m)
+			var pathLength =document.getElementById(prefix+"_pathLength").value;//路径长(m)
+			var upperRod =document.getElementById(prefix+"_upperRod").value;//上杆(m)
+			var arrival =document.getElementById(prefix+"_arrival").value;//进站(m)
+			var incomingEquipment =document.getElementById(prefix+"_incomingEquipment").value;//进设备(m)
+			var coefficient =document.getElementById(prefix+"_coefficient").value;//系数
+			if (pathLength==undefined || pathLength=='' ){
+				pathLength=0;
+			}if (upperRod==undefined || upperRod==''){
+				upperRod=0;
+			}if ( arrival==undefined || arrival==''){
+				arrival=0;
+			}if (incomingEquipment==undefined || incomingEquipment==''){
+				incomingEquipment=0;
+			}
+			var total=(parseFloat(pathLength)+parseFloat(upperRod)+parseFloat(arrival)+parseFloat(incomingEquipment))*parseFloat(coefficient);
+			document.getElementById(prefix+"_electricalChief").value=total.toFixed(2);
+			cableFourHundredTotal(tbody,idx);
+		}
+		function cableFourHundredTotal(tbody,idx) {
+			var length=idx;
+			var totalLength=0
+			for (var i=0;i<length;i++){
+				var ss=$("#"+tbody).find('tr').eq(i).attr("id");
+				var id=ss+"_electricalChief";
+				var electricalChief =document.getElementById(id).value;//电气长(m)
+				if (electricalChief==''){
+					electricalChief=0;
+				}
+				totalLength+=parseFloat(electricalChief)
+			}
+			var totalName=tbody+"Total"
+			document.getElementById(totalName).value=(totalLength/1000).toFixed(4);
+		}
+	</script>
+</head>
+<body class="bg-white">
+
+		<form:form id="inputForm" modelAttribute="cableSectionData" action="${ctx}/filing/basicInformation/save" method="post" class="form-horizontal">
+			<input type="hidden" id="uuid" name="uuid" value="${uuid}">
+			<input type="hidden" id="projectName" value="${projectName}">
+			<input type="hidden" id="projectReserveId" value="${projectReserveId}">
+			<div>
+				<ul class="nav nav-tabs list-tabs">
+					<li class="active" role="presentation" id="click1"><a id="dq" href="javascript:void(0)"><span class="hide">cableFourHundred</span><span>YJV22-3×400mm²</span></a><input type="hidden" name="cableFourHundredId"/></li>
+					<li role="presentation"><a href="javascript:void(0)"><span class="hide">cableThreeHundred</span><span>YJV22-3×300mm²</span></a><input type="hidden" name="cableThreeHundredId"/></li>
+					<li role="presentation"><a href="javascript:void(0)"><span class="hide">cableTwoHundredForty</span><span>YJV22-3×240mm²</span></a><input type="hidden" name="cableTwoHundredFortyId"/></li>
+					<li role="presentation"><a href="javascript:void(0)"><span class="hide">cableHundredAndTwenty</span><span>YJV22-3×120mm²</span></a><input type="hidden" name="cableHundredAndTwentyId"/></li>
+					<li role="presentation"><a href="javascript:void(0)"><span class="hide">cableSeventy</span><span>YJV22-3×70mm²</span></a><input type="hidden" name="cableSeventyId"/></li>
+				</ul>
+			</div>
+			<div class="tabs-container" id="cableFourHundred">
+				<div class="tab-content">
+					<div id="tab-1" class="tab-pane fade in  active">
+					<a class="btn btn-white btn-sm" onclick="addRow('#cableFourHundredList', cableFourHundredRowIdx, cableFourHundredTpl);cableFourHundredRowIdx = cableFourHundredRowIdx + 1;" title="新增">	<i class="glyphicon glyphicon-plus"></i> 新建</a>
+					<table class="table table-striped table-bordered table-condensed">
+					<thead>
+						<tr>
+							<th class="hide"></th>
+							<th>起讫点</th>
+							<th>路径长(m)</th>
+							<th>上杆(m)</th>
+							<th>进站(m)</th>
+							<th>进设备(m)</th>
+							<th>系数</th>
+							<th>电气长(m)</th>
+							<th width="10">&nbsp;</th>
+						</tr>
+					</thead>
+					<tbody id="cableFourHundredList">
+						<tr>
+							<td colspan="6">总长(km):</td>
+							<td width="200px">
+								<input type='text' id="cableFourHundredListTotal"  name="cableFourHundredListTotal" readonly= "true" class="form-control"  value=""/>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+				<script type="text/template" id="cableFourHundredTpl">//<!--
+					<tr id="cableFourHundredList[{{idx}}]">
+						<td class="hide">
+							<input id="cableFourHundredList{{idx}}_id" name="cableFourHundredList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+							<input id="cableFourHundredList{{idx}}_delFlag" name="cableFourHundredList[{{idx}}].delFlag" type="hidden" value="0"/>
+						</td>
+
+						<td  class="max-width-250">
+						<input type='text' id="cableFourHundredList[{{idx}}]_destination" name="cableFourHundredList[{{idx}}].destination" class="form-control"  value="{{row.destination}}" />
+						</td>
+
+						<td  class="max-width-250">
+							<input type='text' id="cableFourHundredList[{{idx}}]_pathLength" name="cableFourHundredList[{{idx}}].pathLength" class="form-control" onchange="cableJiSuan(this,'cableFourHundredList[{{idx}}]','cableFourHundredList',cableFourHundredRowIdx)"  value="{{row.pathLength}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableFourHundredList[{{idx}}]_upperRod" name="cableFourHundredList[{{idx}}].upperRod" class="form-control" onchange="cableJiSuan(this,'cableFourHundredList[{{idx}}]','cableFourHundredList',cableFourHundredRowIdx)"  value="{{row.upperRod}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableFourHundredList[{{idx}}]_arrival" name="cableFourHundredList[{{idx}}].arrival" class="form-control" onchange="cableJiSuan(this,'cableFourHundredList[{{idx}}]','cableFourHundredList',cableFourHundredRowIdx)"  value="{{row.arrival}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableFourHundredList[{{idx}}]_incomingEquipment" name="cableFourHundredList[{{idx}}].incomingEquipment" onchange="cableJiSuan(this,'cableFourHundredList[{{idx}}]','cableFourHundredList',cableFourHundredRowIdx)" class="form-control"  value="{{row.incomingEquipment}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableFourHundredList[{{idx}}]_coefficient"  name="cableFourHundredList[{{idx}}].coefficient" readonly= "true" class="form-control"  value="${cableFactor}"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableFourHundredList[{{idx}}]_electricalChief"  name="cableFourHundredList[{{idx}}].electricalChief" readonly= "true" class="form-control"  value="{{row.electricalChief}}"/>
+						</td>
+						<td class="text-center" width="10">
+							{{#delBtn}}<span class="close" onclick="delRow(this, '#cableFourHundredList{{idx}}','cableFourHundredList','cableFourHundredRowIdx')" title="删除">&times;</span>{{/delBtn}}
+						</td>
+					</tr>//-->
+				</script>
+				<script type="text/javascript">
+					var cableFourHundredRowIdx = 0, cableFourHundredTpl = $("#cableFourHundredTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+					$(document).ready(function() {
+						var data = ${fns:toJson(cableFourHundredList)};
+						for (var i=0; i<data.length; i++){
+							console.log(data[i])
+							addRow('#cableFourHundredList', cableFourHundredRowIdx, cableFourHundredTpl, data[i]);
+							cableFourHundredRowIdx = cableFourHundredRowIdx + 1;
+						}
+					});
+				</script>
+				</div>
+			</div>
+		</div>
+			<div class="tabs-container hide" id="cableThreeHundred">
+				<div class="tab-content">
+					<div id="tab-2" class="tab-pane fade in  active">
+					<a class="btn btn-white btn-sm" onclick="addRow('#cableThreeHundredList', cableThreeHundredRowIdx, cableThreeHundredTpl);cableThreeHundredRowIdx = cableThreeHundredRowIdx + 1;" title="新增">	<i class="glyphicon glyphicon-plus"></i> 新建</a>
+					<table class="table table-striped table-bordered table-condensed">
+					<thead>
+						<tr>
+							<th class="hide"></th>
+							<th>起讫点</th>
+							<th>路径长(m)</th>
+							<th>上杆(m)</th>
+							<th>进站(m)</th>
+							<th>进设备(m)</th>
+							<th>系数</th>
+							<th>电气长(m)</th>
+							<th width="10">&nbsp;</th>
+						</tr>
+					</thead>
+					<tbody id="cableThreeHundredList">
+						<tr>
+							<td colspan="6">总长(km):</td>
+							<td width="200px">
+								<input type='text' id="cableThreeHundredListTotal"  name="cableThreeHundredListTotal" readonly= "true" class="form-control"  value=""/>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+				<script type="text/template" id="cableThreeHundredTpl">//<!--
+				<tr id="cableThreeHundredList[{{idx}}]">
+						<td class="hide">
+							<input id="cableThreeHundredList{{idx}}_id" name="cableThreeHundredList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+							<input id="cableThreeHundredList{{idx}}_delFlag" name="cableThreeHundredList[{{idx}}].delFlag" type="hidden" value="0"/>
+						</td>
+
+						<td  class="max-width-250">
+						<input type='text' id="cableThreeHundredList[{{idx}}]_destination" name="cableThreeHundredList[{{idx}}].destination" class="form-control"  value="{{row.destination}}"/>
+						</td>
+
+						<td  class="max-width-250">
+							<input type='text' id="cableThreeHundredList[{{idx}}]_pathLength" name="cableThreeHundredList[{{idx}}].pathLength" class="form-control" onchange="cableJiSuan(this,'cableThreeHundredList[{{idx}}]','cableThreeHundredList',cableThreeHundredRowIdx)"  value="{{row.pathLength}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableThreeHundredList[{{idx}}]_upperRod" name="cableThreeHundredList[{{idx}}].upperRod" class="form-control" onchange="cableJiSuan(this,'cableThreeHundredList[{{idx}}]','cableThreeHundredList',cableThreeHundredRowIdx)"  value="{{row.upperRod}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableThreeHundredList[{{idx}}]_arrival" name="cableThreeHundredList[{{idx}}].arrival" class="form-control" onchange="cableJiSuan(this,'cableThreeHundredList[{{idx}}]','cableThreeHundredList',cableThreeHundredRowIdx)"  value="{{row.arrival}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableThreeHundredList[{{idx}}]_incomingEquipment" name="cableThreeHundredList[{{idx}}].incomingEquipment" onchange="cableJiSuan(this,'cableThreeHundredList[{{idx}}]','cableThreeHundredList',cableThreeHundredRowIdx)" class="form-control"  value="{{row.incomingEquipment}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableThreeHundredList[{{idx}}]_coefficient"  name="cableThreeHundredList[{{idx}}].coefficient" readonly= "true" class="form-control"  value="${cableFactor}"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableThreeHundredList[{{idx}}]_electricalChief"  name="cableThreeHundredList[{{idx}}].electricalChief" readonly= "true" class="form-control"  value="{{row.electricalChief}}"/>
+						</td>
+						<td class="text-center" width="10">
+							{{#delBtn}}<span class="close" onclick="delRow(this, '#cableThreeHundredList{{idx}}','cableThreeHundredList','cableThreeHundredRowIdx')" title="删除">&times;</span>{{/delBtn}}
+						</td>
+					</tr>//-->
+				</script>
+				<script type="text/javascript">
+					var cableThreeHundredRowIdx = 0, cableThreeHundredTpl = $("#cableThreeHundredTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+					$(document).ready(function() {
+						var data = ${fns:toJson(cableThreeHundredList)};
+						for (var i=0; i<data.length; i++){
+							console.log(data[i])
+							addRow('#cableThreeHundredList', cableThreeHundredRowIdx, cableThreeHundredTpl, data[i]);
+							cableThreeHundredRowIdx = cableThreeHundredRowIdx + 1;
+						}
+					});
+				</script>
+				</div>
+			</div>
+		</div>
+			<div class="tabs-container hide" id="cableTwoHundredForty">
+				<div class="tab-content">
+					<div id="tab-3" class="tab-pane fade in  active">
+					<a class="btn btn-white btn-sm" onclick="addRow('#cableTwoHundredFortyList', cableTwoHundredFortyRowIdx, cableTwoHundredFortyTpl);cableTwoHundredFortyRowIdx = cableTwoHundredFortyRowIdx + 1;" title="新增">	<i class="glyphicon glyphicon-plus"></i> 新建</a>
+					<table class="table table-striped table-bordered table-condensed">
+					<thead>
+						<tr>
+							<th class="hide"></th>
+							<th>起讫点</th>
+							<th>路径长(m)</th>
+							<th>上杆(m)</th>
+							<th>进站(m)</th>
+							<th>进设备(m)</th>
+							<th>系数</th>
+							<th>电气长(m)</th>
+							<th width="10">&nbsp;</th>
+
+						</tr>
+					</thead>
+					<tbody id="cableTwoHundredFortyList">
+						<tr>
+							<td colspan="6">总长(km):</td>
+							<td width="200px">
+								<input type='text' id="cableTwoHundredFortyListTotal"  name="cableTwoHundredFortyListTotal" readonly= "true" class="form-control"  value=""/>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+				<script type="text/template" id="cableTwoHundredFortyTpl">//<!--
+				<tr id="cableTwoHundredFortyList[{{idx}}]">
+						<td class="hide">
+							<input id="cableTwoHundredFortyList{{idx}}_id" name="cableTwoHundredFortyList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+							<input id="cableTwoHundredFortyList{{idx}}_delFlag" name="cableTwoHundredFortyList[{{idx}}].delFlag" type="hidden" value="0"/>
+						</td>
+
+						<td  class="max-width-250">
+						<input type='text' id="cableTwoHundredFortyList[{{idx}}]_destination" name="cableTwoHundredFortyList[{{idx}}].destination" class="form-control"  value="{{row.destination}}"/>
+						</td>
+
+						<td  class="max-width-250">
+							<input type='text' id="cableTwoHundredFortyList[{{idx}}]_pathLength" name="cableTwoHundredFortyList[{{idx}}].pathLength" class="form-control" onchange="cableJiSuan(this,'cableTwoHundredFortyList[{{idx}}]','cableTwoHundredFortyList',cableTwoHundredFortyRowIdx)"  value="{{row.pathLength}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableTwoHundredFortyList[{{idx}}]_upperRod" name="cableTwoHundredFortyList[{{idx}}].upperRod" class="form-control" onchange="cableJiSuan(this,'cableTwoHundredFortyList[{{idx}}]','cableTwoHundredFortyList',cableTwoHundredFortyRowIdx)"  value="{{row.upperRod}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableTwoHundredFortyList[{{idx}}]_arrival" name="cableTwoHundredFortyList[{{idx}}].arrival" class="form-control" onchange="cableJiSuan(this,'cableTwoHundredFortyList[{{idx}}]','cableTwoHundredFortyList',cableTwoHundredFortyRowIdx)"  value="{{row.arrival}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableTwoHundredFortyList[{{idx}}]_incomingEquipment" name="cableTwoHundredFortyList[{{idx}}].incomingEquipment" onchange="cableJiSuan(this,'cableTwoHundredFortyList[{{idx}}]','cableTwoHundredFortyList',cableTwoHundredFortyRowIdx)" class="form-control"  value="{{row.incomingEquipment}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableTwoHundredFortyList[{{idx}}]_coefficient"  name="cableTwoHundredFortyList[{{idx}}].coefficient" readonly= "true" class="form-control"  value="${cableFactor}"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableTwoHundredFortyList[{{idx}}]_electricalChief"  name="cableTwoHundredFortyList[{{idx}}].electricalChief" readonly= "true" class="form-control"  value="{{row.electricalChief}}"/>
+						</td>
+						<td class="text-center" width="10">
+							{{#delBtn}}<span class="close" onclick="delRow(this, '#cableTwoHundredFortyList{{idx}}','cableTwoHundredFortyList','cableTwoHundredFortyRowIdx')" title="删除">&times;</span>{{/delBtn}}
+						</td>
+					</tr>//-->
+				</script>
+				<script type="text/javascript">
+					var cableTwoHundredFortyRowIdx = 0, cableTwoHundredFortyTpl = $("#cableTwoHundredFortyTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+					$(document).ready(function() {
+						var data = ${fns:toJson(cableTwoHundredFortyList)};
+						for (var i=0; i<data.length; i++){
+							console.log(data[i])
+							addRow('#cableTwoHundredFortyList', cableTwoHundredFortyRowIdx, cableTwoHundredFortyTpl, data[i]);
+							cableTwoHundredFortyRowIdx = cableTwoHundredFortyRowIdx + 1;
+						}
+					});
+				</script>
+				</div>
+			</div>
+		</div>
+			<div class="tabs-container hide" id="cableHundredAndTwenty">
+				<div class="tab-content">
+					<div id="tab-4" class="tab-pane fade in  active">
+					<a class="btn btn-white btn-sm" onclick="addRow('#cableHundredAndTwentyList', cableHundredAndTwentyRowIdx, cableHundredAndTwentyTpl);cableHundredAndTwentyRowIdx = cableHundredAndTwentyRowIdx + 1;" title="新增">	<i class="glyphicon glyphicon-plus"></i> 新建</a>
+					<table class="table table-striped table-bordered table-condensed">
+					<thead>
+						<tr>
+							<th class="hide"></th>
+							<th>起讫点</th>
+							<th>路径长(m)</th>
+							<th>上杆(m)</th>
+							<th>进站(m)</th>
+							<th>进设备(m)</th>
+							<th>系数</th>
+							<th>电气长(m)</th>
+							<th width="10">&nbsp;</th>
+						</tr>
+					</thead>
+					<tbody id="cableHundredAndTwentyList">
+						<tr>
+							<td colspan="6">总长(km):</td>
+							<td width="200px">
+								<input type='text' id="cableHundredAndTwentyListTotal"  name="cableHundredAndTwentyListTotal" readonly= "true" class="form-control"  value=""/>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+				<script type="text/template" id="cableHundredAndTwentyTpl">//<!--
+				<tr id="cableHundredAndTwentyList[{{idx}}]">
+						<td class="hide">
+							<input id="cableHundredAndTwentyList{{idx}}_id" name="cableHundredAndTwentyList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+							<input id="cableHundredAndTwentyList{{idx}}_delFlag" name="cableHundredAndTwentyList[{{idx}}].delFlag" type="hidden" value="0"/>
+						</td>
+
+						<td  class="max-width-250">
+						<input type='text' id="cableHundredAndTwentyList[{{idx}}]_destination" name="cableHundredAndTwentyList[{{idx}}].destination" class="form-control"  value="{{row.destination}}"/>
+						</td>
+
+						<td  class="max-width-250">
+							<input type='text' id="cableHundredAndTwentyList[{{idx}}]_pathLength" name="cableHundredAndTwentyList[{{idx}}].pathLength" class="form-control" onchange="cableJiSuan(this,'cableHundredAndTwentyList[{{idx}}]','cableHundredAndTwentyList',cableHundredAndTwentyRowIdx)"  value="{{row.pathLength}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableHundredAndTwentyList[{{idx}}]_upperRod" name="cableHundredAndTwentyList[{{idx}}].upperRod" class="form-control" onchange="cableJiSuan(this,'cableHundredAndTwentyList[{{idx}}]','cableHundredAndTwentyList',cableHundredAndTwentyRowIdx)"  value="{{row.upperRod}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableHundredAndTwentyList[{{idx}}]_arrival" name="cableHundredAndTwentyList[{{idx}}].arrival" class="form-control" onchange="cableJiSuan(this,'cableHundredAndTwentyList[{{idx}}]','cableHundredAndTwentyList',cableHundredAndTwentyRowIdx)"  value="{{row.arrival}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableHundredAndTwentyList[{{idx}}]_incomingEquipment" name="cableHundredAndTwentyList[{{idx}}].incomingEquipment" onchange="cableJiSuan(this,'cableHundredAndTwentyList[{{idx}}]','cableHundredAndTwentyList',cableHundredAndTwentyRowIdx)" class="form-control"  value="{{row.incomingEquipment}}" onkeyup="this.value=this.value.replace(/^(\d*\.?\d{0,2}).*/,'$1')" maxlength="10"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableHundredAndTwentyList[{{idx}}]_coefficient"  name="cableHundredAndTwentyList[{{idx}}].coefficient" readonly= "true" class="form-control"  value="${cableFactor}"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableHundredAndTwentyList[{{idx}}]_electricalChief"  name="cableHundredAndTwentyList[{{idx}}].electricalChief" readonly= "true" class="form-control"  value="{{row.electricalChief}}"/>
+						</td>
+						<td class="text-center" width="10">
+							{{#delBtn}}<span class="close" onclick="delRow(this, '#cableHundredAndTwentyList{{idx}}','cableHundredAndTwentyList','cableHundredAndTwentyRowIdx')" title="删除">&times;</span>{{/delBtn}}
+						</td>
+					</tr>//-->
+				</script>
+				<script type="text/javascript">
+					var cableHundredAndTwentyRowIdx = 0, cableHundredAndTwentyTpl = $("#cableHundredAndTwentyTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+					$(document).ready(function() {
+						var data = ${fns:toJson(cableHundredAndTwentyList)};
+						for (var i=0; i<data.length; i++){
+							console.log(data[i])
+							addRow('#cableHundredAndTwentyList', cableHundredAndTwentyRowIdx, cableHundredAndTwentyTpl, data[i]);
+							cableHundredAndTwentyRowIdx = cableHundredAndTwentyRowIdx + 1;
+						}
+					});
+				</script>
+				</div>
+			</div>
+		</div>
+			<div class="tabs-container hide" id="cableSeventy">
+				<div class="tab-content">
+					<div id="tab-5" class="tab-pane fade in  active">
+					<a class="btn btn-white btn-sm" onclick="addRow('#cableSeventyList', cableSeventyRowIdx, cableSeventyTpl);cableSeventyRowIdx = cableSeventyRowIdx + 1;" title="新增">	<i class="glyphicon glyphicon-plus"></i> 新建</a>
+					<table class="table table-striped table-bordered table-condensed">
+					<thead>
+						<tr>
+							<th class="hide"></th>
+							<th>起讫点</th>
+							<th>路径长(m)</th>
+							<th>上杆(m)</th>
+							<th>进站(m)</th>
+							<th>进设备(m)</th>
+							<th>系数</th>
+							<th>电气长(m)</th>
+							<th width="10">&nbsp;</th>
+						</tr>
+					</thead>
+					<tbody id="cableSeventyList">
+						<tr>
+							<td colspan="6">总长(km):</td>
+							<td width="200px">
+								<input type='text' id="cableSeventyListTotal"  name="cableSeventyListTotal" readonly= "true" class="form-control"  value=""/>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+				<script type="text/template" id="cableSeventyTpl">//<!--
+				<tr id="cableSeventyList[{{idx}}]">
+						<td class="hide">
+							<input id="cableSeventyList{{idx}}_id" name="cableSeventyList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+							<input id="cableSeventyList{{idx}}_delFlag" name="cableSeventyList[{{idx}}].delFlag" type="hidden" value="0"/>
+						</td>
+
+						<td  class="max-width-250">
+						<input type='text' id="cableSeventyList[{{idx}}]_destination" name="cableSeventyList[{{idx}}].destination" class="form-control"  value="{{row.destination}}"/>
+						</td>
+
+						<td  class="max-width-250">
+							<input type='text' id="cableSeventyList[{{idx}}]_pathLength" name="cableSeventyList[{{idx}}].pathLength" class="form-control" onchange="cableJiSuan(this,'cableSeventyList[{{idx}}]','cableSeventyList',cableSeventyRowIdx)"  value="{{row.pathLength}}"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableSeventyList[{{idx}}]_upperRod" name="cableSeventyList[{{idx}}].upperRod" class="form-control" onchange="cableJiSuan(this,'cableSeventyList[{{idx}}]','cableSeventyList',cableSeventyRowIdx)"  value="{{row.upperRod}}"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableSeventyList[{{idx}}]_arrival" name="cableSeventyList[{{idx}}].arrival" class="form-control" onchange="cableJiSuan(this,'cableSeventyList[{{idx}}]','cableSeventyList',cableSeventyRowIdx)"  value="{{row.arrival}}"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableSeventyList[{{idx}}]_incomingEquipment" name="cableSeventyList[{{idx}}].incomingEquipment" onchange="cableJiSuan(this,'cableSeventyList[{{idx}}]','cableSeventyList',cableSeventyRowIdx)" class="form-control"  value="{{row.incomingEquipment}}"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableSeventyList[{{idx}}]_coefficient"  name="cableSeventyList[{{idx}}].coefficient" readonly= "true" class="form-control"  value="${cableFactor}"/>
+						</td>
+						<td class="max-width-250">
+							<input type='text' id="cableSeventyList[{{idx}}]_electricalChief"  name="cableSeventyList[{{idx}}].electricalChief" readonly= "true" class="form-control"  value="{{row.electricalChief}}"/>
+						</td>
+						<td class="text-center" width="10">
+							{{#delBtn}}<span class="close" onclick="delRow(this, '#cableSeventyList{{idx}}','cableSeventyList','cableSeventyRowIdx')" title="删除">&times;</span>{{/delBtn}}
+						</td>
+					</tr>//-->
+				</script>
+				<script type="text/javascript">
+					var cableSeventyRowIdx = 0, cableSeventyTpl = $("#cableSeventyTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+					$(document).ready(function() {
+						var data = ${fns:toJson(cableSeventyList)};
+						for (var i=0; i<data.length; i++){
+							console.log(data[i])
+							addRow('#cableSeventyList', cableSeventyRowIdx, cableSeventyTpl, data[i]);
+							cableSeventyRowIdx = cableSeventyRowIdx + 1;
+						}
+					});
+				</script>
+				</div>
+			</div>
+		</div>
+		</form:form>
+</body>
+</html>

+ 386 - 333
src/main/webapp/webpage/modules/cg/reservemanagementcenter/raiseCapital/raiseCapital.js

@@ -1,361 +1,394 @@
 <%@ page contentType = "text/html;charset=UTF-8" %>
     <script>
-    $(document).ready(function () {
-        window.operateEvents = {
-            'change input': function (e, value, row, index) {
-                var ss = $('#' + row.id).val();
-                jp.confirm('确认要修改?', function () {
-                    jp.get("${ctx}/picking/activiti/raiseUpdate?id=" + row.id + "&mdTotalAmount=" + ss, function (data) {
-                        jp.success(data.msg);
-                        refresh();
-                    })
-                }, function () {
-                    $('#informationTable').bootstrapTable('refresh');
-                })
-            }
-        };
-        var item = "";
-        //bootstrapTable加载数据
-        $('#informationTable').bootstrapTable({
-            //请求方法
-            method: 'post',
-            //类型json
-            dataType: "json",
-            contentType: "application/x-www-form-urlencoded",
-            //显示检索按钮
-            showSearch: false,
-            //显示刷新按钮
-            showRefresh: false,
-            //显示切换手机试图按钮
-            showToggle: false,
-            //显示 内容列下拉框
-            showColumns: false,
-            //显示到处按钮
-            showExport: false,
-            //显示切换分页按钮
-            showPaginationSwitch: false,
-            //最低显示2行
-            minimumCountColumns: 2,
-            //是否显示行间隔色
-            striped: true,
-            //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
-            cache: false,
-            //是否显示分页(*)
-            pagination: false,
-            //排序方式
-            sortOrder: "asc",
-            //初始化加载第一页,默认第一页
-            pageNumber: 1,
-            //每页的记录行数(*)
-            pageSize: 10,
-            //可供选择的每页的行数(*)
-            pageList: [10, 25, 50, 100],
-            //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
-            url: "${ctx}/picking/showlist/raiseData",
-            //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
-            ////查询参数,每次调用是会带上这个参数,可自定义
-            queryParams: function (params) {
-                var searchParam = $("#searchForm").serializeJSON();
-                searchParam.pageNo = params.limit === undefined ? "1" : params.offset / params.limit + 1;
-                searchParam.pageSize = params.limit === undefined ? -1 : params.limit;
-                searchParam.orderBy = params.sort === undefined ? "" : params.sort + " " + params.order;
-                return searchParam;
-            },
-            //分页方式:client客户端分页,server服务端分页(*)
-            sidePagination: "server",
-            contextMenuTrigger: "right",//pc端 按右键弹出菜单
-            contextMenuTriggerMobile: "press",//手机端 弹出菜单,click:单击, press:长按。
-            contextMenu: '#context-menu',
-            onClickRow: function (row, $el) {
-            },
-            onShowSearch: function () {
-                $("#search-collapse").slideToggle();
-            },
-            formatNoMatches: function () {
-                return "你的自定义文字说明";
+    /*4.1、4.3数据回填方法*/
+    function refreshCharts(uuid){
+        jp.post("${ctx}/raiseCapitalDesign/disposeFormDataOnList",
+            {
+                "uuid":uuid
             },
-            columns: [
-                {
-                    checkbox: true
-                },
-                {
-                    field: 'materialCode',
-                    title: '物料编码',
-                }, {
-                    field: 'materialDescription',
-                    title: '物料名称',
-                }, {
-                    field: 'extensionDescription',
-                    title: '扩展描述',
-                }, {
-                    field: 'mdUnits',
-                    title: '单位',
-                }, {
-                    field: 'mdTotalAmount',
-                    title: '总量',
-                    events: operateEvents,
-                    formatter: getTime
-                }, {
-                    field: 'mdSingleWeight',
-                    title: '单重/kg',
-                }, {
-                    field: 'mdTotalWeight',
-                    title: '总重/吨',
-                }, {
-                    field: 'mdTheParty',
-                    title: '甲乙供',
-                }, {
-                    field: 'mdText',
-                    title: '备注',
-                }
-            ]
-        });
+            function (data) {
 
-        $('#informationTable2').bootstrapTable({
-            //请求方法
-            method: 'post',
-            //类型json
-            dataType: "json",
-            contentType: "application/x-www-form-urlencoded",
-            //显示检索按钮
-            showSearch: false,
-            //显示刷新按钮
-            showRefresh: false,
-            //显示切换手机试图按钮
-            showToggle: false,
-            //显示 内容列下拉框
-            showColumns: false,
-            //显示到处按钮
-            showExport: false,
-            //显示切换分页按钮
-            showPaginationSwitch: false,
-            //最低显示2行
-            minimumCountColumns: 2,
-            //是否显示行间隔色
-            striped: true,
-            //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
-            cache: false,
-            //是否显示分页(*)
-            pagination: false,
-            //排序方式
-            sortOrder: "asc",
-            //初始化加载第一页,默认第一页
-            pageNumber: 1,
-            //每页的记录行数(*)
-            pageSize: 10,
-            //可供选择的每页的行数(*)
-            pageList: [10, 25, 50, 100],
-            //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
-            url: "${ctx}/picking/showlist/mkData",
-            //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
-            ////查询参数,每次调用是会带上这个参数,可自定义
-            queryParams: function (params) {
-                var searchParam = $("#searchForm").serializeJSON();
-                searchParam.pageNo = params.limit === undefined ? "1" : params.offset / params.limit + 1;
-                searchParam.pageSize = params.limit === undefined ? -1 : params.limit;
-                searchParam.orderBy = params.sort === undefined ? "" : params.sort + " " + params.order;
-                return searchParam;
+                if(data.success){
+                    for (var i = 0; i < data.data.length; i++) {
+                        $("#"+data.data[i].id).val(data.data[i].number)
+                    }
+                }
+            })
+    }
+/*4.2数据回填方法*/
+function refreshCables(uuid){
+    console.log("九零六零")
+    let projectName = this.$("#projectName").val();
+    console.log('projectName', projectName)
+    jp.post("${ctx}/raiseCapitalDesign/disposeFormCableDataList",
+        {
+            "uuid":uuid
+        },
+        function (data) {
+            console.log('data', data)
+            if(data.success){
+                for (var i = 0; i < data.data.length; i++) {
+                    $("#"+data.data[i].id).val(data.data[i].number)
+                }
+            }
+        })
+}
+$(document).ready(function () {
+    window.operateEvents = {
+        'change input': function (e, value, row, index) {
+            var ss = $('#' + row.id).val();
+            jp.confirm('确认要修改?', function () {
+                jp.get("${ctx}/picking/activiti/raiseUpdate?id=" + row.id + "&mdTotalAmount=" + ss, function (data) {
+                    jp.success(data.msg);
+                    refresh();
+                })
+            }, function () {
+                $('#informationTable').bootstrapTable('refresh');
+            })
+        }
+    };
+    var item = "";
+    //bootstrapTable加载数据
+    $('#informationTable').bootstrapTable({
+        //请求方法
+        method: 'post',
+        //类型json
+        dataType: "json",
+        contentType: "application/x-www-form-urlencoded",
+        //显示检索按钮
+        showSearch: false,
+        //显示刷新按钮
+        showRefresh: false,
+        //显示切换手机试图按钮
+        showToggle: false,
+        //显示 内容列下拉框
+        showColumns: false,
+        //显示到处按钮
+        showExport: false,
+        //显示切换分页按钮
+        showPaginationSwitch: false,
+        //最低显示2行
+        minimumCountColumns: 2,
+        //是否显示行间隔色
+        striped: true,
+        //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+        cache: false,
+        //是否显示分页(*)
+        pagination: false,
+        //排序方式
+        sortOrder: "asc",
+        //初始化加载第一页,默认第一页
+        pageNumber: 1,
+        //每页的记录行数(*)
+        pageSize: 10,
+        //可供选择的每页的行数(*)
+        pageList: [10, 25, 50, 100],
+        //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+        url: "${ctx}/picking/showlist/raiseData",
+        //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+        ////查询参数,每次调用是会带上这个参数,可自定义
+        queryParams: function (params) {
+            var searchParam = $("#searchForm").serializeJSON();
+            searchParam.pageNo = params.limit === undefined ? "1" : params.offset / params.limit + 1;
+            searchParam.pageSize = params.limit === undefined ? -1 : params.limit;
+            searchParam.orderBy = params.sort === undefined ? "" : params.sort + " " + params.order;
+            return searchParam;
+        },
+        //分页方式:client客户端分页,server服务端分页(*)
+        sidePagination: "server",
+        contextMenuTrigger: "right",//pc端 按右键弹出菜单
+        contextMenuTriggerMobile: "press",//手机端 弹出菜单,click:单击, press:长按。
+        contextMenu: '#context-menu',
+        onClickRow: function (row, $el) {
+        },
+        onShowSearch: function () {
+            $("#search-collapse").slideToggle();
+        },
+        formatNoMatches: function () {
+            return "你的自定义文字说明";
+        },
+        columns: [
+            {
+                checkbox: true
             },
-            //分页方式:client客户端分页,server服务端分页(*)
-            sidePagination: "server",
-            contextMenuTrigger: "right",//pc端 按右键弹出菜单
-            contextMenuTriggerMobile: "press",//手机端 弹出菜单,click:单击, press:长按。
-            contextMenu: '#context-menu',
-            onClickRow: function (row, $el) {
+            {
+                field: 'materialCode',
+                title: '物料编码',
+            }, {
+                field: 'materialDescription',
+                title: '物料名称',
+            }, {
+                field: 'extensionDescription',
+                title: '扩展描述',
+            }, {
+                field: 'mdUnits',
+                title: '单位',
+            }, {
+                field: 'mdTotalAmount',
+                title: '总量',
+                events: operateEvents,
+                formatter: getTime
+            }, {
+                field: 'mdSingleWeight',
+                title: '单重/kg',
+            }, {
+                field: 'mdTotalWeight',
+                title: '总重/吨',
+            }, {
+                field: 'mdTheParty',
+                title: '甲乙供',
+            }, {
+                field: 'mdText',
+                title: '备注',
+            }
+        ]
+    });
+
+    $('#informationTable2').bootstrapTable({
+        //请求方法
+        method: 'post',
+        //类型json
+        dataType: "json",
+        contentType: "application/x-www-form-urlencoded",
+        //显示检索按钮
+        showSearch: false,
+        //显示刷新按钮
+        showRefresh: false,
+        //显示切换手机试图按钮
+        showToggle: false,
+        //显示 内容列下拉框
+        showColumns: false,
+        //显示到处按钮
+        showExport: false,
+        //显示切换分页按钮
+        showPaginationSwitch: false,
+        //最低显示2行
+        minimumCountColumns: 2,
+        //是否显示行间隔色
+        striped: true,
+        //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+        cache: false,
+        //是否显示分页(*)
+        pagination: false,
+        //排序方式
+        sortOrder: "asc",
+        //初始化加载第一页,默认第一页
+        pageNumber: 1,
+        //每页的记录行数(*)
+        pageSize: 10,
+        //可供选择的每页的行数(*)
+        pageList: [10, 25, 50, 100],
+        //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+        url: "${ctx}/picking/showlist/mkData",
+        //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+        ////查询参数,每次调用是会带上这个参数,可自定义
+        queryParams: function (params) {
+            var searchParam = $("#searchForm").serializeJSON();
+            searchParam.pageNo = params.limit === undefined ? "1" : params.offset / params.limit + 1;
+            searchParam.pageSize = params.limit === undefined ? -1 : params.limit;
+            searchParam.orderBy = params.sort === undefined ? "" : params.sort + " " + params.order;
+            return searchParam;
+        },
+        //分页方式:client客户端分页,server服务端分页(*)
+        sidePagination: "server",
+        contextMenuTrigger: "right",//pc端 按右键弹出菜单
+        contextMenuTriggerMobile: "press",//手机端 弹出菜单,click:单击, press:长按。
+        contextMenu: '#context-menu',
+        onClickRow: function (row, $el) {
+        },
+        onShowSearch: function () {
+            $("#search-collapse").slideToggle();
+        },
+        formatNoMatches: function () {
+            return "你的自定义文字说明";
+        },
+        columns: [
+            {
+                field: 'mdBigClass',
+                title: '模块大类',
             },
-            onShowSearch: function () {
-                $("#search-collapse").slideToggle();
+            {
+                field: 'mdTheClass',
+                title: '模块中类',
             },
-            formatNoMatches: function () {
-                return "你的自定义文字说明";
+            {
+                field: 'mdName',
+                title: '模块名称',
             },
-            columns: [
-                {
-                    field: 'mdBigClass',
-                    title: '模块大类',
-                },
-                {
-                    field: 'mdTheClass',
-                    title: '模块中类',
-                },
-                {
-                    field: 'mdName',
-                    title: '模块名称',
-                },
-                {
-                    field: 'materialCode',
-                    title: '物料编码',
-                }, {
-                    field: 'materialDescription',
-                    title: '物料名称',
-                }, {
-                    field: 'extensionDescription',
-                    title: '扩展描述',
-                }, {
-                    field: 'mdUnits',
-                    title: '单位',
-                }, {
-                    field: 'mdTotalAmount',
-                    title: '总量',
-                }, {
-                    field: 'mdSingleWeight',
-                    title: '单重/kg',
-                }, {
-                    field: 'mdTotalWeight',
-                    title: '总重/吨',
-                }, {
-                    field: 'mdTheParty',
-                    title: '甲乙供',
-                }, {
-                    field: 'mdText',
-                    title: '备注',
-                }
-            ]
-        });
+            {
+                field: 'materialCode',
+                title: '物料编码',
+            }, {
+                field: 'materialDescription',
+                title: '物料名称',
+            }, {
+                field: 'extensionDescription',
+                title: '扩展描述',
+            }, {
+                field: 'mdUnits',
+                title: '单位',
+            }, {
+                field: 'mdTotalAmount',
+                title: '总量',
+            }, {
+                field: 'mdSingleWeight',
+                title: '单重/kg',
+            }, {
+                field: 'mdTotalWeight',
+                title: '总重/吨',
+            }, {
+                field: 'mdTheParty',
+                title: '甲乙供',
+            }, {
+                field: 'mdText',
+                title: '备注',
+            }
+        ]
+    });
 
-        function getTime(value, row, index) {
-            return [
-                "<input  id=" + row.id + " type='number' name='changeAmount' class='form-control required deal'  value=" + row.mdTotalAmount + ">",
-            ].join('');
-        }
+    function getTime(value, row, index) {
+        return [
+            "<input  id=" + row.id + " type='number' name='changeAmount' class='form-control required deal'  value=" + row.mdTotalAmount + ">",
+        ].join('');
+    }
 
-        if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端
-            $('#informationTable').bootstrapTable("toggleView");
-        }
+    if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端
+        $('#informationTable').bootstrapTable("toggleView");
+    }
 
-        $('#informationTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
-            'check-all.bs.table uncheck-all.bs.table', function () {
-            $('#remove').prop('disabled', !$('#informationTable').bootstrapTable('getSelections').length);
-        });
+    $('#informationTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+        'check-all.bs.table uncheck-all.bs.table', function () {
+        $('#remove').prop('disabled', !$('#informationTable').bootstrapTable('getSelections').length);
+    });
 
-        function getTime(value, row, index) {
-            return [
-                "<input  id=" + row.id + " type='number' name='changeAmount' class='form-control required deal'  value=" + row.mdTotalAmount + ">",
-            ].join('');
-        }
+    function getTime(value, row, index) {
+        return [
+            "<input  id=" + row.id + " type='number' name='changeAmount' class='form-control required deal'  value=" + row.mdTotalAmount + ">",
+        ].join('');
+    }
 
-        // 绑定查询按扭
-        $("#search").click("click", function () {
-            $('#informationTable').bootstrapTable('refresh');
-        });
-        $("#click1").click("click", function () {
-            // alert("1");
-            $("#click2").attr("style", "");
-            $("#click3").attr("style", "");
-            $("#click1").attr("style", "border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
-        });
-        $("#click2").click("click", function () {
-            $("#click1").attr("style", "");
-            $("#click3").attr("style", "");
-            $("#click2").attr("style", "border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
-        });
-        $("#click2").click("click", function () {
-            $("#click1").attr("style", "");
-            $("#click2").attr("style", "");
-            $("#click3").attr("style", "border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
-        });
-        // 绑定查询重置按扭
-        $("#reset").click("click", function () {
-            $("#searchForm  input").val("");
-            $("#searchForm  select").val("");
-            $('#informationTable').bootstrapTable('refresh');
-        });
+    // 绑定查询按扭
+    $("#search").click("click", function () {
+        $('#informationTable').bootstrapTable('refresh');
+    });
+    $("#click1").click("click", function () {
+        // alert("1");
+        $("#click2").attr("style", "");
+        $("#click3").attr("style", "");
+        $("#click1").attr("style", "border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
+    });
+    $("#click2").click("click", function () {
+        $("#click1").attr("style", "");
+        $("#click3").attr("style", "");
+        $("#click2").attr("style", "border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
+    });
+    $("#click2").click("click", function () {
+        $("#click1").attr("style", "");
+        $("#click2").attr("style", "");
+        $("#click3").attr("style", "border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)");
+    });
+    // 绑定查询重置按扭
+    $("#reset").click("click", function () {
+        $("#searchForm  input").val("");
+        $("#searchForm  select").val("");
+        $('#informationTable').bootstrapTable('refresh');
+    });
 
-        $("#dq").click("click", function () {
-            $("#div1").attr("style", "display:block;");
-            $("#div2").attr("style", "display:none;");
-            $("#div3").attr("style", "display:none;");
-        });
-        $("#qd").click("click", function () {
-            let projectName = $("#projectName").val();
-            let projectReserveId = $("#projectReserveId").val();
+    $("#dq").click("click", function () {
+        $("#div1").attr("style", "display:block;");
+        $("#div2").attr("style", "display:none;");
+        $("#div3").attr("style", "display:none;");
+    });
+    $("#qd").click("click", function () {
+        let projectName = $("#projectName").val();
+        let projectReserveId = $("#projectReserveId").val();
 
-            var item = "";
-            $('input[name="need"]').each(function () {
-                var val = $(this).val();
-                if (val != null && val != "" && val > 0) {
-                    item += $(this).attr("id") + ":" + val + ";"
-                }
-            })
-            //将item提交,遍历后保存数据
-            if (projectName == null || projectName == "") {
-                jp.error("项目名称不能为空!");
-            } else if (item == null || item == "") {
-                jp.error("请填写模块表");
-            } else {
-                $("#div1").attr("style", "display:none;");
-                $("#div2").attr("style", "display:block;");
-                $("#div3").attr("style", "display:none;");
-                jp.post("${ctx}/picking/showlist/saveJgcData",
-                    {
-                        "item": item,
-                        "projectName": projectName,
-                        "projectReserveId": projectReserveId,
-                    },
-                    function (data) {
-                        // console.log(projectName);
-                        $('#informationTable').bootstrapTable('refresh', {
-                            query:
-                                {
-                                    projectName: projectName
-                                }
-                        });
-                    })
+        var item = "";
+        $('input[name="need"]').each(function () {
+            var val = $(this).val();
+            if (val != null && val != "" && val > 0) {
+                item += $(this).attr("id") + ":" + val + ";"
             }
-        });
-        $("#mkqd").click("click", function () {
+        })
+        //将item提交,遍历后保存数据
+        if (projectName == null || projectName == "") {
+            jp.error("项目名称不能为空!");
+        } else if (item == null || item == "") {
+            jp.error("请填写模块表");
+        } else {
             $("#div1").attr("style", "display:none;");
-            $("#div2").attr("style", "display:none;");
-            $("#div3").attr("style", "display:block;");
-            var item = "";
-            $('input[name="need"]').each(function () {
-                var val = $(this).val();
-                if (val != null && val != "" && val > 0) {
-                    item += $(this).attr("id") + ":" + val + ";"
-                    // console.log(item + "\t");
-                }
-            })
-            $('#informationTable2').bootstrapTable('refresh', {
-                query:
-                    {
-                        item: item
-                    }
-            });
-        });
-        /*$("#agree").click(function () {
-            var item = "";
-            $('input[name="need"]').each(function () {
-                var val = $(this).val();
-                if (val != null && val != "" && val > 0) {
-                    item += $(this).attr("id") + ":" + val + ";"
-                    console.log(item + "\t");
-                }
-            })
-
-            jp.post("${ctx}/raiseCapital/exportCache",
+            $("#div2").attr("style", "display:block;");
+            $("#div3").attr("style", "display:none;");
+            jp.post("${ctx}/picking/showlist/saveJgcData",
                 {
+                    "item": item,
+                    "projectName": projectName,
+                    "projectReserveId": projectReserveId,
                 },
                 function (data) {
-                    if (data.success) {
-                        jp.downloadFile('${ctx}/raiseCapital/export?projectName=' + projectName, 'raiseCapital');//给个name是为了能够在某些条件下下载两个文件
-                        jp.success("下载成功")
-                        refreshWindows();
-                    }
+                    // console.log(projectName);
+                    $('#informationTable').bootstrapTable('refresh', {
+                        query:
+                            {
+                                projectName: projectName
+                            }
+                    });
                 })
+        }
+    });
+    $("#mkqd").click("click", function () {
+        $("#div1").attr("style", "display:none;");
+        $("#div2").attr("style", "display:none;");
+        $("#div3").attr("style", "display:block;");
+        var item = "";
+        $('input[name="need"]').each(function () {
+            var val = $(this).val();
+            if (val != null && val != "" && val > 0) {
+                item += $(this).attr("id") + ":" + val + ";"
+                // console.log(item + "\t");
+            }
+        })
+        $('#informationTable2').bootstrapTable('refresh', {
+            query:
+                {
+                    item: item
+                }
+        });
+    });
+    /*$("#agree").click(function () {
+        var item = "";
+        $('input[name="need"]').each(function () {
+            var val = $(this).val();
+            if (val != null && val != "" && val > 0) {
+                item += $(this).attr("id") + ":" + val + ";"
+                console.log(item + "\t");
+            }
+        })
 
-        });*/
+        jp.post("${ctx}/raiseCapital/exportCache",
+            {
+            },
+            function (data) {
+                if (data.success) {
+                    jp.downloadFile('${ctx}/raiseCapital/export?projectName=' + projectName, 'raiseCapital');//给个name是为了能够在某些条件下下载两个文件
+                    jp.success("下载成功")
+                    refreshWindows();
+                }
+            })
 
+    });*/
 
-        function refreshWindows() {
-            location.reload();
-        }
 
-        function addRow(list, idx, tpl, row) {
-            $(list).append(Mustache.render(tpl, {
-                idx: idx, delBtn: true, row: row
-            }));
-        }
-    })
+    function refreshWindows() {
+        location.reload();
+    }
+
+    function addRow(list, idx, tpl, row) {
+        $(list).append(Mustache.render(tpl, {
+            idx: idx, delBtn: true, row: row
+        }));
+    }
+})
 
 //刷新列表
 function refresh() {
@@ -389,5 +422,25 @@ function add() {
     jp.openSaveDialog('新增领料信息', "${ctx}/picking/activiti/netRaise?projectName=" + projectName, '800px', '500px');
 }
 
+function aerialConductor(){
+    var item = "";
+    $('input[name="need"]').each(function(){
+        var val = $(this).val();
+        if (val!=null&&val!=""&&val>0) {
+            item += $(this).attr("id")+":"+val+";"
+        }
+    })
+    var pickUuid = $("#pickUuid").val();
+    console.log(pickUuid);
+    jp.openSaveDialog('架空导线计算表', "${ctx}/cg/reservemanagementcenter/summaryStatistics/aerialConductorForm?uuid="+pickUuid+"&item="+item, '800px', '500px');
+
+}
+
+function cableSection(){
+    var pickUuid = $("#pickUuid").val();
+    console.log(pickUuid);
+    jp.openSaveDialog('新增领料信息', "${ctx}/cg/reservemanagementcenter/summaryStatistics/cableSectionForm?uuid="+pickUuid, '80%', '80%');
+}
+
 
 </script>

+ 82 - 84
src/main/webapp/webpage/modules/cg/reservemanagementcenter/raiseCapital/raiseCapital.jsp

@@ -7,6 +7,45 @@
 	<meta name="decorator" content="ani"/>
 	<%@ include file="/webpage/include/bootstraptable.jsp"%>
 	<%@include file="raiseCapital.js" %>
+	<script>
+		function testSay() {
+			var uuid = $("#uid").val();
+			let projectName = this.$("#projectName").val();
+			console.log('projectName', projectName)
+			jp.post("${ctx}/raiseCapitalDesign/disposeFormCableDataList",
+					{
+						"uuid":uuid
+					},
+					function (data) {
+						console.log('data', data)
+						if(data.success){
+							for (var i = 0; i < data.data.length; i++) {
+								$("#"+data.data[i].id).val(data.data[i].number)
+								console.log('val',$("#"+data.data[i].id).val())
+							}
+						}
+					})
+		}
+		function testSay2() {
+			var uuid = $("#uid").val();
+			console.log('uuid', uuid)
+			let projectName = this.$("#projectName").val();
+			console.log('projectName', projectName)
+			jp.post("${ctx}/raiseCapitalDesign/disposeFormDataOnList",
+					{
+						"uuid":uuid
+					},
+					function (data) {
+						console.log('data', data)
+						if(data.success){
+							for (var i = 0; i < data.data.length; i++) {
+								$("#"+data.data[i].id).val(data.data[i].number)
+								console.log('val',$("#"+data.data[i].id).val())
+							}
+						}
+					})
+		}
+	</script>
 	<style type="text/css">
 		#div1{
 			margin-top: 10px;
@@ -32,16 +71,19 @@
 	</style>
 </head>
 <body>
-	<div class="wrapper wrapper-content">
+<div class="wrapper wrapper-content">
 	<div class="panel panel-primary">
-	<div class="panel-heading">
-		<h3 class="panel-title">提资管理</h3>
-	</div>
+		<div class="panel-heading">
+			<h3 class="panel-title">提资管理</h3>
+		</div>
 		<div class="panel-body">
+			<input type="hidden" id="pickUuid" name="pickUuid" value="${pickUuid}">
+			<input type="hidden" id="uid" name="pickUuid" value="${uid}">
+			<input type="hidden" id="test" name="pickUuid" onclick="testSay()">
+			<input type="hidden" id="test2" name="pickUuid" onclick="testSay2()">
 			<div>
 				<ul class="nav nav-tabs">
 					<li role="presentation" id="click1" style="border-bottom: 0px;border-left: 1px solid rgb(221,221,221);border-right: 1px solid rgb(221,221,221);border-top: 1px solid rgb(221,221,221)"><a id="dq" href="javascript:void(0)">填写需要材料</a></li>
-					<%--<li role="presentation" id="click3" ><a id="mkqd" href="javascript:void(0)">查看模块清单</a></li>--%>
 					<li role="presentation" id="click2" ><a id="qd" href="javascript:void(0)">查看领料清单</a></li>
 				</ul>
 			</div>
@@ -49,66 +91,23 @@
 			<div id="div1">
 				<input type="hidden" id="projectName" value="${projectName}">
 				<input type="hidden" id="projectReserveId" value="${projectReserveId}">
-
-				<%--<table class="table table-bordered">
-					<tbody>
-					<tr>
-						<td class="width-15 active"><label class="pull-right">项目编号:</label></td>
-						<td class="width-35">
-							<input id="projectNo" cssClass="form-control" placeholder="项目编号"/>
-						</td>
-						<td class="width-15 active"><label class="pull-right">批准人:</label></td>
-						<td class="width-35">
-							<input id="approver" cssClass="form-control" placeholder="批准人"/>
-						</td>
-					</tr>
-					<tr>
-						<td class="width-15 active"><label class="pull-right">erp编码:</label></td>
-						<td class="width-35">
-							<input id="erpCode" cssClass="form-control" placeholder="erp编码"/>
-						</td>
-						<td class="width-15 active"><label class="pull-right">审核人:</label></td>
-						<td class="width-35">
-							<input id="reviewer" cssClass="form-control" placeholder="审核人"/>
-						</td>
-					</tr>
-					<tr>
-						<td class="width-15 active"><label class="pull-right">项目名称:<font color='red'>*</font></label></td>
-						<td class="width-35">
-							<input id="projectName" cssClass="form-control required" placeholder="必填"/>
-						</td>
-						<td class="width-15 active"><label class="pull-right">制单人:</label></td>
-						<td class="width-35">
-							<input id="preparedBy" cssClass="form-control required" placeholder="制单人"/>
-						</td>
-					</tr>
-					<tr>
-						<td class="width-15 active"><label class="pull-right">甲方项目经理确认:</label></td>
-						<td class="width-35">
-							<input id="manager" cssClass="form-control required" placeholder="甲方项目经理确认"/>
-						</td>
-						<td class="width-15 active"><label class="pull-right">领用单位:</label></td>
-						<td class="width-35">
-							<input id="reqUnit" cssClass="form-control required" placeholder="领用单位"/>
-						</td>
-					</tr>
-					<tr>
-						<td class="width-15 active"><label class="pull-right">制单时间:</label></td>
-						<td class="width-35">
-							<input id="preTime" cssClass="form-control" placeholder="制单时间"/>
-						</td>
-					</tr>
-					</tbody>
-				</table>--%>
+				<div>
+					<button id="aerialConductor" class="btn btn-primary" onclick="aerialConductor()">
+						架空导线
+					</button>
+					<button id="cableSection" class="btn btn-primary" onclick="cableSection()">
+						电缆分段
+					</button>
+				</div>
 				<table class="table table-view">
 					<tbody>
 					<c:forEach items="${pickListList}" var="items" varStatus="status">
 						<c:if test="${status.count eq 1 || (status.count-1) % 1 eq 0}">
-						<tr>
+							<tr>
 						</c:if>
-							<td colspan="4" class="list-lig-one">${items.name}</td>
+						<td colspan="4" class="list-lig-one">${items.name}</td>
 						<c:if test="${status.count % 1 eq 0 || status.count eq 1}">
-						</tr>
+							</tr>
 						</c:if>
 
 						<c:forEach items="${items.mdTheClassList}" var="items" varStatus="status">
@@ -125,18 +124,18 @@
 									<tr>
 								</c:if>
 								<td style="text-align: center;vertical-align: middle">
-										<div class="well-class-body" style="float: left;">
-											<a href="javascript:jp.openViewDialog('模块清单','${ctx}/managementcenter/moduleacquisition/moduleListing/list?blockId=${itemss.id}', '800px', '500px');">
+									<div class="well-class-body" style="float: left;">
+										<a href="javascript:jp.openViewDialog('模块清单','${ctx}/managementcenter/moduleacquisition/moduleListing/list?blockId=${itemss.id}', '800px', '500px');">
 												${itemss.name}
-											</a>
-										</div>
-										<div style="float: left;margin-left: 5px;margin: auto">
-											<input style="width:40px;" placeholder="0" type="number" min="0" name="need" id="${itemss.id}"/><span>&nbsp;${itemss.mdUnit}</span>
-<%--											<span><img onclick="jp.showPic('${itemss.mdImg}')" src="${itemss.mdImg}" height="50px"></span>--%>
-											<c:if test="${not empty itemss.mdImg}">
-												<a id="imgButton" class="btn btn-success btn-xs waves-effect m-r-5" href="javascript:jp.openViewDialog('查看附件','${ctx}/picking/activiti/pickPic?id=${itemss.id}', '800px', '500px')">显示附件</a>
-											</c:if>
-										</div>
+										</a>
+									</div>
+									<div style="float: left;margin-left: 5px;margin: auto">
+										<input style="width:70px;" placeholder="0" type="number" min="0" name="need" id="${itemss.id}"/><span>&nbsp;${itemss.mdUnit}</span>
+											<%--                                 <span><img onclick="jp.showPic('${itemss.mdImg}')" src="${itemss.mdImg}" height="50px"></span>--%>
+										<c:if test="${not empty itemss.mdImg}">
+											<a id="imgButton" class="btn btn-success btn-xs waves-effect m-r-5" href="javascript:jp.openViewDialog('查看附件','${ctx}/picking/activiti/pickPic?id=${itemss.id}', '800px', '500px')">显示附件</a>
+										</c:if>
+									</div>
 								</td>
 								<c:if test="${status.count % 4 eq 0 || status.count eq 4}">
 									</tr>
@@ -148,7 +147,7 @@
 					</tbody>
 				</table>
 			</div>
-<%--			//领料--%>
+			<%--         //领料--%>
 			<div id="div2" style="display: none">
 				<!-- 工具栏 -->
 				<div style="margin-top: 10px;">
@@ -161,23 +160,22 @@
 				</div>
 				<table id="informationTable"   data-toolbar="#toolbar" class="table"></table>
 				<%--<div class="row">
-					<div class="col-sm-3"></div>
-					<div class="col-sm-6">
-						<div class="form-group text-center">
-							<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="导出文档" />&nbsp;
-						</div>
-					</div>
-				</div>--%>
+                   <div class="col-sm-3"></div>
+                   <div class="col-sm-6">
+                      <div class="form-group text-center">
+                         <input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="导出文档" />&nbsp;
+                      </div>
+                   </div>
+                </div>--%>
 			</div>
-<%--			//模块清单
-			<div id="div3" style="display: none">
-				<table id="informationTable2"   data-toolbar="#toolbar" class="table"></table>
-			</div>--%>
+			<%--         //模块清单
+                     <div id="div3" style="display: none">
+                        <table id="informationTable2"   data-toolbar="#toolbar" class="table"></table>
+                     </div>--%>
 
 		</div>
 
 	</div>
-	</div>
+</div>
 </body>
 </html>
-

+ 346 - 0
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/preliminaryPrepartion/reserveManagementForm.jsp

@@ -0,0 +1,346 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>新增交底汇总信息</title>
+	<meta name="decorator" content="ani"/>
+	<script type="text/javascript">
+
+		$(document).ready(function() {
+
+	        $('#beginDate').datetimepicker({
+				 format: "YYYY-MM-DD HH:mm:ss"
+		    });
+	        $('#endDate').datetimepicker({
+				 format: "YYYY-MM-DD HH:mm:ss"
+		    });
+		});
+		function save() {
+		    var projectReserveId = $("#projectReserveId").val();
+		    var projectName = $("#projectName").val();
+		    var construct = $("#constructionNecessityAndContent").val();
+
+
+		    if (null==projectReserveId||""==projectReserveId){
+                jp.error("请填写项目储备编号!");
+			}else if(null==projectName||""==projectName){
+				jp.error("请填写项目名称!");
+			}else if (null==construct||""==construct){
+		    	jp.error("请填写建设必要性及内容!")
+			}
+
+
+		    else {
+                var isValidate = jp.validateForm('#inputForm');//校验表单
+                if(!isValidate){
+                    return false;
+                }else{
+                    jp.loading();
+                    jp.post("${ctx}/cg/reservemanagementcenter/preliminaryPrepartion/save",$('#inputForm').serialize(),function(data){
+                        if(data.success){
+                            jp.getParent().refresh();
+                            var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
+                            parent.layer.close(dialogIndex);
+                            jp.success(data.msg)
+
+                        }else{
+                            jp.error(data.msg);
+                        }
+                    })
+                }
+			}
+        }
+	</script>
+</head>
+<body class="bg-white">
+<form:form id="inputForm" modelAttribute="reserveManagement" class="form-horizontal">
+	<form:hidden path="id"/>
+	<table class="table table-bordered">
+		<tbody>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">储备项目基本信息:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">项目年份:</label></td>
+			<td class="width-35">
+				<form:input path="projectYear" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">项目性质:</label></td>
+			<td class="width-35">
+				<form:input path="projectNature" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">需求单位:</label></td>
+			<td class="width-35">
+				<form:input path="demandUnit" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">区域:</label></td>
+			<td class="width-35">
+				<form:input path="district" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">项目分组:</label></td>
+			<td class="width-35">
+				<form:input path="projectGroup" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">项目经理:</label></td>
+			<td class="width-35">
+				<form:input path="projectManager" readonly="true" htmlEscape="false"    class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">储备批次:</label></td>
+			<td class="width-35">
+				<form:input path="reserveBatches" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">供电区域:</label></td>
+			<td class="width-35">
+				<form:input path="blockSupply" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>网格编号:</label></td>
+			<td class="width-35">
+				<form:input path="gridNumber" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class=""><font color="red">*</font>单元格编号:</label></td>
+			<td class="width-35">
+				<form:input path="cellNumber" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>项目储备编号:</label></td>
+			<td class="width-35">
+				<form:input path="projectReserveId" htmlEscape="false"  readonly="true"  class="form-control required"/>
+			</td>
+		</tr>
+
+		<tr>
+			<td class="width-15 active"><label class=""><font color="red">*</font>项目名称:</label></td>
+			<td class="width-35">
+				<form:input path="projectName" htmlEscape="false"    class="form-control required" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>建设必要性及内容:</label></td>
+			<td class="width-35">
+				<form:input path="constructionNecessityAndContent" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">变电站名称:</label></td>
+			<td class="width-35">
+				<form:input path="substationName" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">线路名称:</label></td>
+			<td class="width-35">
+				<form:input path="circuitName" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">网架项目划分:</label></td>
+			<td class="width-35">
+				<form:input path="netRackProjectDivide" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">需求类型:</label></td>
+			<td class="width-35">
+				<form:input path="requirementType" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">项目类型:</label></td>
+			<td class="width-35">
+				<form:input path="projectType" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">费用估算:</label></td>
+			<td class="width-35">
+				<form:input path="costEstimate" htmlEscape="false" class="form-control number money" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="basicRemarks" htmlEscape="false" readonly="true" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">储备项目交底信息统计:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">项目综合可实施性:</label></td>
+			<td class="width-35">
+				<form:input path="comprehensiveProject" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">政处难度:</label></td>
+			<td class="width-35">
+				<form:input path="officeDifficulty" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">政处描述:</label></td>
+			<td class="width-35">
+				<form:input path="officeProgress" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">停电难度:</label></td>
+			<td class="width-35">
+				<form:input path="powerFailureDifficulty" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">停电描述:</label></td>
+			<td class="width-35">
+				<form:input path="powerFailureDescribe" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">其他问题难度:</label></td>
+			<td class="width-35">
+				<form:input path="otherProblemDifficulty" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">其他问题描述:</label></td>
+			<td class="width-35">
+				<form:input path="otherProblemDescribe" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">是否需重跑方案:</label></td>
+			<td class="width-35">
+				<form:input path="runPlanRequire" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">方案变更说明:</label></td>
+			<td class="width-35">
+				<form:input path="programChangeDescription" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="discloseRemarks" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">储备项目工程量统计:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">储备进度:</label></td>
+			<td class="width-35">
+				<form:input path="reserveProgress" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">是否含土建工作量:</label></td>
+			<td class="width-35">
+				<form:input path="civilEngineeringWorkload" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">土建工作量统计:</label></td>
+			<td class="width-35">
+				<form:input path="engineeringWorkloadStatistic" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">是否含立杆工作量:</label></td>
+			<td class="width-35">
+				<form:input path="poleWorkload" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">预算(含税):</label></td>
+			<td class="width-35">
+				<form:input path="budgetIncludesTax" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">预算(含不税):</label></td>
+			<td class="width-35">
+				<form:input path="budgetNotIncludesTax" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">施工费(不含税):</label></td>
+			<td class="width-35">
+				<form:input path="constructCostExcludeTax" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="quantityRemarks" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">储备项目前期准备工作:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">储备项目推进计划(项目管理中心):</label></td>
+			<td class="width-35">
+				<form:input path="reserveProjectPromotyPlan" htmlEscape="false" class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">项目管理单位完成进度:</label></td>
+			<td class="width-35">
+				<form:input path="unitCompleteProgress" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">储备项目推进计划(需求单位):</label></td>
+			<td class="width-35">
+				<form:input path="demandUnitReserveProjectPromotyPlan" htmlEscape="false" class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">需求单位完成进度:</label></td>
+			<td class="width-35">
+				<form:input path="demandUnitCompleteProgress" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">是否启动政处:</label></td>
+			<td class="width-35">
+				<form:input path="fireAdministrativeDepartment" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">政处进度:</label></td>
+			<td class="width-35">
+				<form:input path="administrativeProgress" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="preliminaryPreparationRemarks" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">立项安排:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">需求单位优先级:</label></td>
+			<td class="width-35">
+				<form:input path="demandUnitPriority" htmlEscape="false" class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">是否纳入实施计划:</label></td>
+			<td class="width-35">
+				<form:input path="implementPlan" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">初定实施批次:</label></td>
+			<td class="width-35">
+				<form:input path="implementBatch" htmlEscape="false" class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">初定施工单位:</label></td>
+			<td class="width-35">
+				<form:input path="constructionUnit" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">是否出规划报批图:</label></td>
+			<td class="width-35">
+				<form:input path="planAndApprovalDraw" htmlEscape="false" class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">是否出正式图:</label></td>
+			<td class="width-35">
+				<form:input path="drawOfficeDrawn" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="projectApprovalRemarks" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+
+		</tbody>
+	</table>
+</form:form>
+</body>
+</html>

+ 338 - 0
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/preliminaryPrepartion/reserveManagementInformation.js

@@ -0,0 +1,338 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script >
+$(document).ready(function () {
+    $('#projectTable').bootstrapTable({
+        //请求方法
+        method: 'post',
+        //类型json
+        dataType: "json",
+        contentType: "application/x-www-form-urlencoded",
+        //显示检索按钮
+        showSearch: true,
+        //显示刷新按钮
+        showRefresh: true,
+        //显示切换手机试图按钮
+        showToggle: true,
+        //显示 内容列下拉框
+        showColumns: true,
+        //显示到处按钮
+        showExport: true,
+        //显示切换分页按钮
+        showPaginationSwitch: true,
+        //最低显示2行
+        minimumCountColumns: 2,
+        //是否显示行间隔色
+        striped: true,
+        //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+        cache: false,
+        //是否显示分页(*)
+        pagination: true,
+        //排序方式
+        sortOrder: "asc",
+        //初始化加载第一页,默认第一页
+        pageNumber: 1,
+        //每页的记录行数(*)
+        pageSize: 25,
+        //可供选择的每页的行数(*)
+        pageList: [5, 10, 25, 50, 100],
+        //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+        url: "${ctx}/cg/reservemanagementcenter/preliminaryPrepartion/list",
+        //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+        //queryParamsType:'',
+        ////查询参数,每次调用是会带上这个参数,可自定义
+        queryParams: function (params) {
+            var searchParam = $("#searchForm").serializeJSON();
+            searchParam.pageNo = params.limit === undefined ? "1" : params.offset / params.limit + 1;
+            searchParam.pageSize = params.limit === undefined ? -1 : params.limit;
+            searchParam.orderBy = params.sort === undefined ? "" : params.sort + " " + params.order;
+            return searchParam;
+        },
+        //分页方式:client客户端分页,server服务端分页(*)
+        sidePagination: "server",
+        contextMenuTrigger: "right",//pc端 按右键弹出菜单
+        contextMenuTriggerMobile: "press",//手机端 弹出菜单,click:单击, press:长按。
+        contextMenu: '#context-menu',
+        onContextMenuItem: function (row, $el) {
+            if ($el.data("item") == "edit") {
+                edit(row.id);
+            } else if ($el.data("item") == "view") {
+                view(row.id);
+            } else if ($el.data("item") == "delete") {
+                jp.confirm('确认要删除该表单记录吗?', function () {
+                    jp.loading();
+                    jp.get("${ctx}/cg/reservemanagementcenter/project/delete?id=" + row.id, function (data) {
+                        if (data.success) {
+                            $('#projectTable').bootstrapTable('refresh');
+                            jp.success(data.msg);
+                        } else {
+                            jp.error(data.msg);
+                        }
+                    })
+                });
+            }
+        },
+
+        onClickRow: function (row, $el) {
+        },
+        onShowSearch: function () {
+            $("#search-collapse").slideToggle();
+        },
+        columns:
+            [
+                [
+                    {checkbox:true,width: 36},
+                    {"title":"储备项目基本信息","colspan":20,"halign":"center","align": "center",width: "4000px"},
+                    {"title":"储备项目交底信息统计","colspan":10,"halign":"center","align": "center",width: "2600px"},
+                    {"title":"储备项目工程量统计","colspan":9,"halign":"center","align": "center",width: "1800px"},
+                    {"title":"储备项目前期准备工作","colspan":7,"halign":"center","align": "center",width: "1400px"},
+                    {"title":"立项安排","colspan":7,"halign":"center","align": "center",width: "1400px"},
+                ],
+                    [
+                    {checkbox:true,width: 36},
+                        { field: 'projectYear', title: "项目年份", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'projectNature', title: "项目性质", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'demandUnit', title: "需求单位", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'district', title: "区域", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'projectGroup', title: "项目分组", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'projectManager', title: "项目经理", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'reserveBatches', title: "储备批次", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'blockSupply', title: "供电区域", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'gridNumber', title: "网格编号", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'cellNumber', title: "单元格编号", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'projectReserveId', title: "项目储备编号", valign:"middle", align:"center", colspan: 1,
+                            formatter:function(value, row , index){
+
+                                if(value == null || value ==""){
+                                    value = "-";
+                                }
+                            <c:choose>
+                                <c:when test="${fns:hasPermission('cg:reservemanagementcenter:reserveManage:view')}">
+                                return "<a href='javascript:view(\""+row.id+"\")'>"+value+"</a>";
+                            </c:when>
+                                <c:otherwise>
+                                return value;
+                            </c:otherwise>
+                                </c:choose>
+                            }},
+                        { field: 'projectName', title: "项目名称", valign:"middle", align:"center", colspan: 1,formatter:paramsMatter},
+                        { field: 'constructionNecessityAndContent', title: "建设必要性及内容", valign:"middle", align:"center", colspan: 1,formatter:paramsMatter},
+                        { field: 'substationName', title: "变电站名称", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'circuitName', title: "线路名称", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'netRackProjectDivide', title: "网架项目划分", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'requirementType', title: "需求类型", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'projectType', title: "项目类型", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'costEstimate', title: "费用估算", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'basicRemarks', title: "备注", valign:"middle", align:"center", colspan: 1 },
+
+                        { field: 'comprehensiveProject', title: "项目综合可实施性", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'officeDifficulty', title: "政处难度", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'officeProgress', title: "政处描述", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'powerFailureDifficulty', title: "停电难度", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'powerFailureDescribe', title: "停电描述", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+                        { field: 'otherProblemDifficulty', title: "其他问题难度", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'otherProblemDescribe', title: "其他问题描述", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+                        { field: 'runPlanRequire', title: "是否需重跑方案", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'programChangeDescription', title: "方案变更说明", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+                        { field: 'discloseRemarks', title: "备注", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+
+                        { field: 'reserveProgress', title: "储备进度", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'civilEngineeringWorkload', title: "是否含土建工作量", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'engineeringWorkloadStatistic', title: "土建工作量统计", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'poleWorkload', title: "是否含立杆工作量", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'poleWorkloadStatistic', title: "立杆工作量统计", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'budgetIncludesTax', title: "预算(含税)", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'budgetNotIncludesTax', title: "预算(不含税)", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'constructCostExcludeTax', title: "施工费(不含税)", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'quantityRemarks', title: "备注)", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+
+                        { field: 'reserveProjectPromotyPlan', title: "储备项目推进计划(项目管理中心)", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'unitCompleteProgress', title: "项目管理单位完成进度", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'demandUnitReserveProjectPromotyPlan', title: "储备项目推进计划(需求单位)", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'demandUnitCompleteProgress', title: "需求单位完成进度", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'fireAdministrativeDepartment', title: "是否启动政处", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'administrativeProgress', title: "政处进度", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'preliminaryPreparationRemarks', title: "备注", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+
+                        { field: 'demandUnitPriority', title: "需求单位优先级", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'implementPlan', title: "是否纳入实施计划", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'implementBatch', title: "初定实施批次", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'constructionUnit', title: "初定施工单位", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'planAndApprovalDraw', title: "是否出规划报批图", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'drawOfficeDrawn', title: "是否出正式图", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'projectApprovalRemarks', title: "备注", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+                    ],
+        ]
+    });
+
+
+    if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端
+        $('#projectTable').bootstrapTable("toggleView");
+    }
+
+    $('#projectTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+        'check-all.bs.table uncheck-all.bs.table', function () {
+        $('#remove').prop('disabled', !$('#projectTable').bootstrapTable('getSelections').length);
+        $('#view,#edit,#jlEdit').prop('disabled', $('#projectTable').bootstrapTable('getSelections').length != 1);
+    });
+
+    $("#btnImport").click(function () {
+        jp.open({
+            type: 2,
+            area: [500, 200],
+            auto: true,
+            title: "导入数据",
+            content: "${ctx}/tag/importExcel",
+            btn: ['确定', '关闭'],
+            btn1: function (index, layero) {
+                var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                iframeWin.contentWindow.importExcel('${ctx}/cg/reservemanagementcenter/preliminaryPrepartion/import', function (data) {
+                    if (data.success) {
+                        jp.success(data.msg);
+                        refresh();
+                    } else {
+                        jp.error(data.msg);
+                    }
+                    jp.close(index);
+                });//调用保存事件
+                return false;
+            },
+            btn2: function (index) {
+                //  jp.close(index);
+            }
+        });
+    });
+
+    $("#jlImport").click(function () {
+        jp.open({
+            type: 2,
+            area: [500, 200],
+            auto: true,
+            title: "导入数据",
+            content: "${ctx}/tag/importExcel",
+            btn: ['确定', '关闭'],
+            btn1: function (index, layero) {
+                var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                iframeWin.contentWindow.importExcel('${ctx}/cg/reservemanagementcenter/preliminaryPrepartion/jlImport', function (data) {
+                    if (data.success) {
+                        jp.success(data.msg);
+                        refresh();
+                    } else {
+                        jp.error(data.msg);
+                    }
+                    jp.close(index);
+                });//调用保存事件
+                return false;
+            },
+
+            btn2: function (index) {
+                //  jp.close(index);
+            }
+        });
+    });
+
+    $("#btnExport").click(function () {
+        var projectReserveId = $("#projectReserveId").val();
+        var projectName = $("#projectName").val();
+        jp.downloadFile('${ctx}/cg/reservemanagementcenter/preliminaryPrepartion/export?projectReserveId=' + projectReserveId + '&projectName=' + projectName);
+    });
+
+    $("#search").click("click", function () {// 绑定查询按扭
+        $('#projectTable').bootstrapTable('refresh');
+    });
+
+    $("#reset").click("click", function () {// 绑定查询按扭
+        $("#searchForm  input").val("");
+        $("#searchForm  select").val("");
+        $("#searchForm  .select-item").html("");
+        $('#projectTable').bootstrapTable('refresh');
+    });
+
+    $('#beginBeginDate').datetimepicker({
+        format: "YYYY-MM-DD HH:mm:ss"
+    });
+    $('#endBeginDate').datetimepicker({
+        format: "YYYY-MM-DD HH:mm:ss"
+    });
+    $('#endDate').datetimepicker({
+        format: "YYYY-MM-DD HH:mm:ss"
+    });
+});
+
+//表格超出宽度鼠标悬停显示td内容
+function paramsMatter(value,row,index,field) {
+    var span = document.createElement('span');
+    span.setAttribute('title',value);
+    span.innerHTML = value;
+    return span.outerHTML;
+}
+
+function getIdSelections() {
+    return $.map($("#projectTable").bootstrapTable('getSelections'), function (row) {
+        return row.id
+    });
+}
+
+
+//刷新列表
+function refresh() {
+    $('#projectTable').bootstrapTable('refresh');
+}
+
+function add() {
+    jp.openSaveDialog('新增储备项目基本信息', "${ctx}/cg/reservemanagementcenter/preliminaryPrepartion/form", '800px', '500px');
+}
+
+
+function edit(id) {//没有权限时,不显示确定按钮
+    if (id == undefined) {
+        id = getIdSelections();
+    }
+    jp.openSaveDialog('编辑储备项目基本信息', "${ctx}/cg/reservemanagementcenter/preliminaryPrepartion/form?id=" + id, '800px', '500px');
+}
+
+function jlEdit(id) {//没有权限时,不显示确定按钮
+    if (id == undefined) {
+        id = getIdSelections();
+    }
+    jp.openSaveDialog('编辑储备项目基本信息', "${ctx}/cg/reservemanagementcenter/preliminaryPrepartion/jlEdit?id=" + id, '800px', '500px');
+}
+
+function view(id) {//没有权限时,不显示确定按钮
+    if (id == undefined) {
+        id = getIdSelections();
+    }
+    jp.openViewDialog('查看储备项目基本信息', "${ctx}/cg/reservemanagementcenter/preliminaryPrepartion/view?id=" + id, '800px', '500px');
+}
+
+function deleteAll(){
+
+    jp.confirm('确认要删除该储备项目基本信息吗?', function(){
+        jp.loading();
+        jp.get("${ctx}/cg/reservemanagementcenter/preliminaryPrepartion/deleteAll?ids=" + getIdSelections(), function(data){
+            if(data.success){
+                $('#projectTable').bootstrapTable('refresh');
+                jp.success(data.msg);
+            }else{
+                jp.error(data.msg);
+            }
+        })
+
+    })
+}
+//转换日期格式(时间戳转换为datetime格式)
+function changeDateFormat(cellval) {
+    var dateVal = cellval + "";
+    if (cellval != null) {
+        var date = new Date(parseInt(dateVal.replace("/Date(", "").replace(")/", ""), 10));
+        var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
+        var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+
+        /*var hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
+        var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
+        var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();*/
+
+        return date.getFullYear() + "-" + month + "-" + currentDate /*+ " " + hours + ":" + minutes + ":" + seconds*/;
+    }
+}
+
+</script>

+ 107 - 0
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/preliminaryPrepartion/reserveManagementInformation.jsp

@@ -0,0 +1,107 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目储备信息</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="reserveManagementInformation.js"%>
+	<style type="text/css">
+		.table {
+			table-layout: fixed;
+			word-break: break-all;
+			word-wrap: break-word;
+			text-align: center;
+		}
+		.table th, .table td {
+			text-align: center;
+			vertical-align: middle !important;
+			white-space: nowrap;
+			overflow: hidden;
+			text-overflow: ellipsis;
+			word-wrap:break-word;
+		}
+		.bootstrap-table .table thead>tr>th {
+			padding: 0;
+			margin: 0;
+			width: 3000px;
+		}
+	</style>
+</head>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<div class="panel-heading">
+		<h3 class="panel-title">项目储备信息</h3>
+	</div>
+	<div class="panel-body">
+		<!-- 搜索 -->
+		<div id="search-collapse" class="collapse">
+			<div class="accordion-inner">
+				<form:form id="searchForm" modelAttribute="reserveManagement" class="form form-horizontal well clearfix">
+					<div class="col-xs-12 col-sm-6 col-md-4">
+						<label class="label-item single-overflow pull-left" title="储备编码:">储备编码:</label>
+						<form:input path="projectReserveId" htmlEscape="false" maxlength="100"  class=" form-control"/>
+					</div>
+					<div class="col-xs-12 col-sm-6 col-md-4">
+						<label class="label-item single-overflow pull-left" title="项目名称:">项目名称:</label>
+						<form:input path="projectName" htmlEscape="false" maxlength="100"  class=" form-control"/>
+					</div>
+					<div class="col-xs-12 col-sm-6 col-md-4">
+						<div style="margin-top:26px">
+							<a  id="search" class="btn btn-primary btn-rounded  btn-bordered btn-sm"><i class="fa fa-search"></i> 查询</a>
+							<a  id="reset" class="btn btn-primary btn-rounded  btn-bordered btn-sm" ><i class="fa fa-refresh"></i> 重置</a>
+						</div>
+					</div>
+				</form:form>
+			</div>
+		</div>
+
+	<!-- 工具栏 -->
+	<div id="toolbar">
+			<shiro:hasPermission name="cg:reservemanagementcenter:preliminaryPrepartion:add">
+				<button id="add" class="btn btn-primary" onclick="add()">
+					<i class="glyphicon glyphicon-plus"></i> 新增
+				</button>
+			</shiro:hasPermission>
+			<shiro:hasPermission name="cg:reservemanagementcenter:preliminaryPrepartion:edit">
+				<button id="edit" class="btn btn-primary" onclick="edit()">
+					<i class="glyphicon glyphicon-edit"></i> 修改 <!--专职修改-->
+				</button>
+			</shiro:hasPermission>
+<%--			<shiro:hasPermission name="sg:managementcenter:reserveManagement:jlEdit">
+				<button id="jlEdit" class="btn btn-primary" onclick="jlEdit()">
+					<i class="glyphicon glyphicon-edit"></i> 修改 <!--经理修改-->
+				</button>
+			</shiro:hasPermission>--%>
+			<shiro:hasPermission name="cg:reservemanagementcenter:preliminaryPrepartion:del">
+				<button id="remove" class="btn btn-danger" onclick="deleteAll()">
+					<i class="glyphicon glyphicon-remove"></i> 删除
+				</button>
+			</shiro:hasPermission>
+			<shiro:hasPermission name="cg:reservemanagementcenter:preliminaryPrepartion:import">
+				<button id="btnImport" class="btn btn-info">
+					<i class="fa fa-folder-open-o"></i> 导入  <!--专职导入-->
+				</button>
+			</shiro:hasPermission>
+<%--			<shiro:hasPermission name="sg:managementcenter:reserveManagement:jlImport">
+				<button id="jlImport" class="btn btn-info">
+					<i class="fa fa-folder-open-o"></i> 导入  <!--经理导入-->
+				</button>
+			</shiro:hasPermission>--%>
+			<shiro:hasPermission name="cg:reservemanagementcenter:preliminaryPrepartion:export">
+				<button id="btnExport" class="btn btn-warning">
+					<i class="fa fa-file-excel-o"></i> 导出
+				</button>
+			</shiro:hasPermission>
+		    </div>
+	<!-- 表格 -->
+	<table id="projectTable" style="table-layout:fixed" class="table" data-toolbar="#toolbar"></table>
+
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 349 - 0
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/preliminaryPrepartion/reserveManagementModifyByzz.jsp

@@ -0,0 +1,349 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>修改交底汇总信息</title>
+	<meta name="decorator" content="ani"/>
+	<script type="text/javascript">
+
+		$(document).ready(function() {
+
+	        $('#beginDate').datetimepicker({
+				 format: "YYYY-MM-DD HH:mm:ss"
+		    });
+	        $('#endDate').datetimepicker({
+				 format: "YYYY-MM-DD HH:mm:ss"
+		    });
+		});
+		function save() {
+			var projectReserveId = $("#projectReserveId").val();
+			var projectName = $("#projectName").val();
+			var construct = $("#constructionNecessityAndContent").val();
+			var faPlan = $("#changePlan").val();
+			var faChange = $("#programChangeDescription").val();
+
+			if (null==projectReserveId||""==projectReserveId){
+				jp.error("请填写项目储备编号!");
+			}else if(null==projectName||""==projectName){
+				jp.error("请填写项目名称!");
+			}else if (null==construct||""==construct){
+				jp.error("请填写建设必要性及内容!")
+			}else if (faPlan=='是'&(faChange==null||faChange=='')){
+				jp.error("请填写方案变更说明!")
+			}
+
+
+		    else {
+                var isValidate = jp.validateForm('#inputForm');//校验表单
+                if(!isValidate){
+                    return false;
+                }else{
+                    jp.loading();
+                    jp.post("${ctx}/cg/reservemanagementcenter/preliminaryPrepartion/update",$('#inputForm').serialize(),function(data){
+                        if(data.success){
+                            jp.getParent().refresh();
+                            var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
+                            parent.layer.close(dialogIndex);
+                            jp.success(data.msg)
+
+                        }else{
+                            jp.error(data.msg);
+                        }
+                    })
+                }
+			}
+        }
+	</script>
+</head>
+<body class="bg-white">
+<form:form id="inputForm" modelAttribute="reserveManagement" class="form-horizontal">
+	<form:hidden path="id"/>
+	<table class="table table-bordered">
+		<tbody>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">储备项目基本信息:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">项目年份:</label></td>
+			<td class="width-35">
+				<form:input path="projectYear" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">项目性质:</label></td>
+			<td class="width-35">
+				<form:input path="projectNature" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">需求单位:</label></td>
+			<td class="width-35">
+				<form:input path="demandUnit" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">区域:</label></td>
+			<td class="width-35">
+				<form:input path="district" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">项目分组:</label></td>
+			<td class="width-35">
+				<form:input path="projectGroup" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">项目经理:</label></td>
+			<td class="width-35">
+				<form:input path="projectManager" readonly="true" htmlEscape="false"    class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">储备批次:</label></td>
+			<td class="width-35">
+				<form:input path="reserveBatches" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">供电区域:</label></td>
+			<td class="width-35">
+				<form:input path="blockSupply" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>网格编号:</label></td>
+			<td class="width-35">
+				<form:input path="gridNumber" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class=""><font color="red">*</font>单元格编号:</label></td>
+			<td class="width-35">
+				<form:input path="cellNumber" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>项目储备编号:</label></td>
+			<td class="width-35">
+				<form:input path="projectReserveId" htmlEscape="false"  readonly="true"  class="form-control required"/>
+			</td>
+		</tr>
+
+		<tr>
+			<td class="width-15 active"><label class=""><font color="red">*</font>项目名称:</label></td>
+			<td class="width-35">
+				<form:input path="projectName" htmlEscape="false"    class="form-control required" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>建设必要性及内容:</label></td>
+			<td class="width-35">
+				<form:input path="constructionNecessityAndContent" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">变电站名称:</label></td>
+			<td class="width-35">
+				<form:input path="substationName" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">线路名称:</label></td>
+			<td class="width-35">
+				<form:input path="circuitName" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">网架项目划分:</label></td>
+			<td class="width-35">
+				<form:input path="netRackProjectDivide" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">需求类型:</label></td>
+			<td class="width-35">
+				<form:input path="requirementType" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">项目类型:</label></td>
+			<td class="width-35">
+				<form:input path="projectType" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">费用估算:</label></td>
+			<td class="width-35">
+				<form:input path="costEstimate" htmlEscape="false" class="form-control number money" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="basicRemarks" htmlEscape="false" readonly="true" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">储备项目交底信息统计:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">项目综合可实施性:</label></td>
+			<td class="width-35">
+				<form:input path="comprehensiveProject" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">政处难度:</label></td>
+			<td class="width-35">
+				<form:input path="officeDifficulty" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">政处描述:</label></td>
+			<td class="width-35">
+				<form:input path="officeProgress" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">停电难度:</label></td>
+			<td class="width-35">
+				<form:input path="powerFailureDifficulty" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">停电描述:</label></td>
+			<td class="width-35">
+				<form:input path="powerFailureDescribe" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">其他问题难度:</label></td>
+			<td class="width-35">
+				<form:input path="otherProblemDifficulty" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">其他问题描述:</label></td>
+			<td class="width-35">
+				<form:input path="otherProblemDescribe" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">是否需重跑方案:</label></td>
+			<td class="width-35">
+				<form:input path="runPlanRequire" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">方案变更说明:</label></td>
+			<td class="width-35">
+				<form:input path="programChangeDescription" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="discloseRemarks" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">储备项目工程量统计:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">储备进度:</label></td>
+			<td class="width-35">
+				<form:input path="reserveProgress" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">是否含土建工作量:</label></td>
+			<td class="width-35">
+				<form:input path="civilEngineeringWorkload" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">土建工作量统计:</label></td>
+			<td class="width-35">
+				<form:input path="engineeringWorkloadStatistic" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">是否含立杆工作量:</label></td>
+			<td class="width-35">
+				<form:input path="poleWorkload" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">预算(含税):</label></td>
+			<td class="width-35">
+				<form:input path="budgetIncludesTax" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">预算(含不税):</label></td>
+			<td class="width-35">
+				<form:input path="budgetNotIncludesTax" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">施工费(不含税):</label></td>
+			<td class="width-35">
+				<form:input path="constructCostExcludeTax" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="quantityRemarks" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">储备项目前期准备工作:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">储备项目推进计划(项目管理中心):</label></td>
+			<td class="width-35">
+				<form:input path="reserveProjectPromotyPlan" htmlEscape="false" class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">项目管理单位完成进度:</label></td>
+			<td class="width-35">
+				<form:input path="unitCompleteProgress" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">储备项目推进计划(需求单位):</label></td>
+			<td class="width-35">
+				<form:input path="demandUnitReserveProjectPromotyPlan" htmlEscape="false" class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">需求单位完成进度:</label></td>
+			<td class="width-35">
+				<form:input path="demandUnitCompleteProgress" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">是否启动政处:</label></td>
+			<td class="width-35">
+				<form:input path="fireAdministrativeDepartment" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">政处进度:</label></td>
+			<td class="width-35">
+				<form:input path="administrativeProgress" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="preliminaryPreparationRemarks" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">立项安排:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">需求单位优先级:</label></td>
+			<td class="width-35">
+				<form:input path="demandUnitPriority" htmlEscape="false" class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">是否纳入实施计划:</label></td>
+			<td class="width-35">
+				<form:input path="implementPlan" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">初定实施批次:</label></td>
+			<td class="width-35">
+				<form:input path="implementBatch" htmlEscape="false" class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">初定施工单位:</label></td>
+			<td class="width-35">
+				<form:input path="constructionUnit" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">是否出规划报批图:</label></td>
+			<td class="width-35">
+				<form:input path="planAndApprovalDraw" htmlEscape="false" class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">是否出正式图:</label></td>
+			<td class="width-35">
+				<form:input path="drawOfficeDrawn" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="projectApprovalRemarks" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+
+		</tbody>
+	</table>
+</form:form>
+</body>
+</html>

+ 325 - 0
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/preliminaryPrepartion/reserveManagementView.jsp

@@ -0,0 +1,325 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>交底信息汇总</title>
+	<meta name="decorator" content="ani"/>
+	<script type="text/javascript">
+
+		$(document).ready(function() {
+			$('#disclosureFinishDate').datetimepicker({
+				format: "YYYY-MM-DD"
+			});
+		});
+		function save() {
+			var isValidate = jp.validateForm('#inputForm');//校验表单
+			if(!isValidate){
+				return false;
+			}else{
+				/*jp.loading();
+				jp.post("${ctx}/sg/managementCenter/reserveManagement/update",$('#inputForm').serialize(),function(data){
+					if(data.success){
+						jp.getParent().refresh();
+						var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
+						parent.layer.close(dialogIndex);
+						jp.success(data.msg)
+
+					}else{
+						jp.error(data.msg);
+					}
+				})*/
+			}
+		}
+	</script>
+</head>
+<body class="bg-white">
+<form:form id="inputForm" modelAttribute="reserveManagement" class="form-horizontal">
+	<form:hidden path="id"/>
+	<table class="table table-bordered">
+		<tbody>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">储备项目基本信息:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">项目年份:</label></td>
+			<td class="width-35">
+				<form:input path="projectYear" htmlEscape="false" readonly="true" class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">项目性质:</label></td>
+			<td class="width-35">
+				<form:input path="projectNature" htmlEscape="false" readonly="true" class="form-control"/>
+			</td>
+
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">需求单位:</label></td>
+			<td class="width-35">
+				<form:input path="demandUnit" htmlEscape="false"  readonly="true"  class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">区域:</label></td>
+			<td class="width-35">
+				<form:input path="district" htmlEscape="false"  readonly="true"  class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">项目分组:</label></td>
+			<td class="width-35">
+				<form:input path="projectGroup" htmlEscape="false"  readonly="true"  class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">项目经理:</label></td>
+			<td class="width-35">
+				<form:input path="projectManager" readonly="true" htmlEscape="false"    class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">储备批次:</label></td>
+			<td class="width-35">
+				<form:input path="reserveBatches" htmlEscape="false"  readonly="true"  class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">供电区域:</label></td>
+			<td class="width-35">
+				<form:input path="blockSupply" htmlEscape="false"  readonly="true"  class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>网格编号:</label></td>
+			<td class="width-35">
+				<form:input path="gridNumber" htmlEscape="false"  readonly="true"  class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class=""><font color="red">*</font>单元格编号:</label></td>
+			<td class="width-35">
+				<form:input path="cellNumber" htmlEscape="false"  readonly="true"  class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>项目储备编号:</label></td>
+			<td class="width-35">
+				<form:input path="projectReserveId" htmlEscape="false"  readonly="true"  class="form-control required"/>
+			</td>
+		</tr>
+
+		<tr>
+			<td class="width-15 active"><label class=""><font color="red">*</font>项目名称:</label></td>
+			<td class="width-35">
+				<form:input path="projectName" htmlEscape="false"  readonly="true"  class="form-control required"/>
+			</td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>建设必要性及内容:</label></td>
+			<td class="width-35">
+				<form:input path="constructionNecessityAndContent" htmlEscape="false"  readonly="true"  class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">变电站名称:</label></td>
+			<td class="width-35">
+				<form:input path="substationName" htmlEscape="false"  readonly="true"  class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">线路名称:</label></td>
+			<td class="width-35">
+				<form:input path="circuitName" htmlEscape="false" readonly="true" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">网架项目划分:</label></td>
+			<td class="width-35">
+				<form:input path="netRackProjectDivide" htmlEscape="false"  readonly="true"  class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">需求类型:</label></td>
+			<td class="width-35">
+				<form:input path="requirementType" htmlEscape="false" readonly="true" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">项目类型:</label></td>
+			<td class="width-35">
+				<form:input path="projectType" htmlEscape="false" readonly="true" class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">费用估算:</label></td>
+			<td class="width-35">
+				<form:input path="costEstimate" htmlEscape="false" readonly="true" class="form-control number money"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="basicRemarks" htmlEscape="false" readonly="true" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">储备项目交底信息统计:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">项目综合可实施性:</label></td>
+			<td class="width-35">
+				<form:input path="comprehensiveProject" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">政处难度:</label></td>
+			<td class="width-35">
+				<form:input path="officeDifficulty" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">政处描述:</label></td>
+			<td class="width-35">
+				<form:input path="officeProgress" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">停电难度:</label></td>
+			<td class="width-35">
+				<form:input path="powerFailureDifficulty" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">停电描述:</label></td>
+			<td class="width-35">
+				<form:input path="powerFailureDescribe" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">其他问题难度:</label></td>
+			<td class="width-35">
+				<form:input path="otherProblemDifficulty" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">其他问题描述:</label></td>
+			<td class="width-35">
+				<form:input path="otherProblemDescribe" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">是否需重跑方案:</label></td>
+			<td class="width-35">
+				<form:input path="runPlanRequire" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">方案变更说明:</label></td>
+			<td class="width-35">
+				<form:input path="programChangeDescription" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="discloseRemarks" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">储备项目工程量统计:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">储备进度:</label></td>
+			<td class="width-35">
+				<form:input path="reserveProgress" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">是否含土建工作量:</label></td>
+			<td class="width-35">
+				<form:input path="civilEngineeringWorkload" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">土建工作量统计:</label></td>
+			<td class="width-35">
+				<form:input path="engineeringWorkloadStatistic" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">是否含立杆工作量:</label></td>
+			<td class="width-35">
+				<form:input path="poleWorkload" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">预算(含税):</label></td>
+			<td class="width-35">
+				<form:input path="budgetIncludesTax" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">预算(含不税):</label></td>
+			<td class="width-35">
+				<form:input path="budgetNotIncludesTax" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">施工费(不含税):</label></td>
+			<td class="width-35">
+				<form:input path="constructCostExcludeTax" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="quantityRemarks" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">储备项目前期准备工作:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">储备项目推进计划(项目管理中心):</label></td>
+			<td class="width-35">
+				<form:input path="reserveProjectPromotyPlan" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">项目管理单位完成进度:</label></td>
+			<td class="width-35">
+				<form:input path="unitCompleteProgress" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">储备项目推进计划(需求单位):</label></td>
+			<td class="width-35">
+				<form:input path="demandUnitReserveProjectPromotyPlan" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">需求单位完成进度:</label></td>
+			<td class="width-35">
+				<form:input path="demandUnitCompleteProgress" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">是否启动政处:</label></td>
+			<td class="width-35">
+				<form:input path="fireAdministrativeDepartment" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">政处进度:</label></td>
+			<td class="width-35">
+				<form:input path="administrativeProgress" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="preliminaryPreparationRemarks" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">立项安排:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">需求单位优先级:</label></td>
+			<td class="width-35">
+				<form:input path="demandUnitPriority" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">是否纳入实施计划:</label></td>
+			<td class="width-35">
+				<form:input path="implementPlan" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">初定实施批次:</label></td>
+			<td class="width-35">
+				<form:input path="implementBatch" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">初定施工单位:</label></td>
+			<td class="width-35">
+				<form:input path="constructionUnit" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">是否出规划报批图:</label></td>
+			<td class="width-35">
+				<form:input path="planAndApprovalDraw" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">是否出正式图:</label></td>
+			<td class="width-35">
+				<form:input path="drawOfficeDrawn" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="projectApprovalRemarks" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		</tbody>
+	</table>
+</form:form>
+</body>
+</html>

+ 34 - 8
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/reserveManage/reserveManagementForm.jsp

@@ -22,6 +22,7 @@
 		    var requester = $("#requester").val();
 		    var owner = $("#ownerReserveFullTime").val();
 		    var ownerDistribut = $("#ownerDistributionNerworkFullTime").val();
+		    var ownerResReoManager = $("#ownerReserveProjectManagre").val();
 		    var ownerProjectManager = $("#ownerProjectManager").val();
 			var materialSoleDuty = $("#materialSoleDuty").val();
 		    var technicalStaff = $("#technicalStaff").val();
@@ -40,10 +41,12 @@
 				jp.error("请填写业主储备专职")
 			}else if (null==ownerDistribut||""==ownerDistribut){
 				jp.error("请填写业主配网专职")
+			}else if (null==ownerResReoManager||""==ownerResReoManager){
+				jp.error("请填写业主储备项目经理")
 			}else if (null==ownerProjectManager||""==ownerProjectManager){
 				jp.error("请填写业主项目经理")
 			}else if (null==technicalStaff||""==technicalStaff){
-				jp.error("请填写技经人员")
+				jp.error("请填写业主技经人员")
 			}else if (null==operation||""==operation){
 				jp.error("请填写运维人员")
 			}else if (null==designer||""==designer){
@@ -195,37 +198,60 @@
 				<td class="width-35">
 					<form:input path="ownerDistributionNerworkFullTime" htmlEscape="false" class="form-control"/>
 				</td>
-				<td class="width-15 active"><label class=""><font color="red">*</font>业主项目经理:</label></td>
+				<td class="width-15 active"><label class=""><font color="red">*</font>业主储备项目经理:</label></td>
 				<td class="width-35">
-					<form:input path="ownerProjectManager" htmlEscape="false" class="form-control"/>
+					<form:input path="ownerReserveProjectManagre" htmlEscape="false" class="form-control"/>
 				</td>
 			</tr>
 			<tr>
+				<td class="width-15 active"><label class=""><font color="red">*</font>业主项目经理:</label></td>
+				<td class="width-35">
+					<form:input path="ownerProjectManager" htmlEscape="false" class="form-control"/>
+				</td>
 				<td class="width-15 active"><label class=""><font color="red">*</font>业主物资专职:</label></td>
 				<td class="width-35">
 					<form:input path="materialSoleDuty" htmlEscape="false" class="form-control"/>
 				</td>
-				<td class="width-15 active"><label class=""><font color="red">*</font>技经人员:</label></td>
+			</tr>
+			<tr>
+				<td class="width-15 active"><label class=""><font color="red">*</font>业主技经人员:</label></td>
 				<td class="width-35">
 					<form:input path="technicalStaff" htmlEscape="false" class="form-control"/>
 				</td>
-			</tr>
-			<tr>
 				<td class="width-15 active"><label class=""><font color="red">*</font>运维人员:</label></td>
 				<td class="width-35">
 					<form:input path="operationAndMaintenancePersonnel" htmlEscape="false" class="form-control"/>
 				</td>
+			</tr>
+			<tr>
 				<td class="width-15 active"><label class=""><font color="red">*</font>设计人员:</label></td>
 				<td class="width-35">
 					<form:input path="designer" htmlEscape="false" class="form-control"/>
 				</td>
-			</tr>
-			<tr>
 				<td class="width-15 active"><label class="">概算编制人员:</label></td>
 				<td class="width-35">
 					<form:input path="budgetPreparer" htmlEscape="false" class="form-control"/>
 				</td>
 			</tr>
+			<tr>
+				<td class="width-15 active"><label class="">不停电作业查勘人员:</label></td>
+				<td class="width-35">
+					<form:input path="uninterruptedWorkSurveyPersonnel" readonly="true" htmlEscape="false" class="form-control"/>
+				</td>
+			</tr>
+			<tr>
+				<td colspan="4" class="width-15 active"><label class="">其他:</label></td>
+			</tr>
+			<tr>
+				<td class="width-15 active"><label class="">是否取消:</label></td>
+				<td class="width-35">
+					<form:input path="clearOrNot" htmlEscape="false" class="form-control"/>
+				</td>
+				<td class="width-15 active"><label class="">是否启动设计交底流程:</label></td>
+				<td class="width-35">
+					<form:input path="noStartTheDesign" htmlEscape="false" class="form-control"/>
+				</td>
+			</tr>
 			</tbody>
 		</table>
 	</form:form>

+ 5 - 2
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/reserveManage/reserveManagementInformation.js

@@ -82,7 +82,10 @@ $(document).ready(function () {
                 [
                     {checkbox:true,width: 36},
                     {"title":"储备项目基本信息","colspan":18,width: "3600px"},
-                    {"title":"储备人员流转信息","colspan":10,width: "2000px"}],
+                    {"title":"储备人员流转信息","colspan":10,width: "2000px"},
+                    {field:'clearOrNot',title: '是否取消',valign:"middle",align: "center", colspan: 1,rowspan: 2,width: "200px"},
+                    {field:'noStartTheDesign',title: '否启动设计交底流程',valign:"middle",align: "center", colspan: 1,rowspan: 2,width: "200px"}
+                ],
                 [
                     {checkbox:true,width: 36},
                     {field:'projectYear',title: '项目年份',valign:"middle",align: "center"},
@@ -123,7 +126,7 @@ $(document).ready(function () {
                     {field:'ownerDistributionNerworkFullTime',title: '业主配网专职',valign:"middle",align: "center"},
                     {field:'ownerProjectManager',title: '业主项目经理',valign:"middle",align: "center"},
                     {field:'materialSoleDuty',title: '业主物资专职',valign:"middle",align: "center"},
-                    {field:'technicalStaff',title: '技经人员',valign:"middle",align: "center"},
+                    {field:'technicalStaff',title: '业主技经人员',valign:"middle",align: "center"},
                     {field:'operationAndMaintenancePersonnel',title: '运维人员',valign:"middle",align: "center"},
                     {field:'designer',title: '设计人员',valign:"middle",align: "center"},
                     {field:'budgetPreparer',title: '概算编制人员',valign:"middle",align: "center"},

+ 31 - 8
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/reserveManage/reserveManagementModifyByzz.jsp

@@ -43,7 +43,7 @@
 			}else if (null==ownerProjectManager||""==ownerProjectManager){
 				jp.error("请填写业主项目经理")
 			}else if (null==technicalStaff||""==technicalStaff){
-				jp.error("请填写技经人员")
+				jp.error("请填写业主技经人员")
 			}else if (null==operation||""==operation){
 				jp.error("请填写运维人员")
 			}else if (null==designer||""==designer){
@@ -195,37 +195,60 @@
 			<td class="width-35">
 				<form:input path="ownerDistributionNerworkFullTime" htmlEscape="false" class="form-control"/>
 			</td>
-			<td class="width-15 active"><label class=""><font color="red">*</font>业主项目经理:</label></td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>业主储备项目经理:</label></td>
 			<td class="width-35">
-				<form:input path="ownerProjectManager" htmlEscape="false" class="form-control"/>
+				<form:input path="ownerReserveProjectManagre" htmlEscape="false" class="form-control"/>
 			</td>
 		</tr>
 		<tr>
+			<td class="width-15 active"><label class=""><font color="red">*</font>业主项目经理:</label></td>
+			<td class="width-35">
+				<form:input path="ownerProjectManager" htmlEscape="false" class="form-control"/>
+			</td>
 			<td class="width-15 active"><label class=""><font color="red">*</font>业主物资专职:</label></td>
 			<td class="width-35">
 				<form:input path="materialSoleDuty" htmlEscape="false" class="form-control"/>
 			</td>
-			<td class="width-15 active"><label class=""><font color="red">*</font>技经人员:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class=""><font color="red">*</font>业主技经人员:</label></td>
 			<td class="width-35">
 				<form:input path="technicalStaff" htmlEscape="false" class="form-control"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class=""><font color="red">*</font>运维人员:</label></td>
 			<td class="width-35">
 				<form:input path="operationAndMaintenancePersonnel" htmlEscape="false" class="form-control"/>
 			</td>
+		</tr>
+		<tr>
 			<td class="width-15 active"><label class=""><font color="red">*</font>设计人员:</label></td>
 			<td class="width-35">
 				<form:input path="designer" htmlEscape="false" class="form-control"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class="">概算编制人员:</label></td>
 			<td class="width-35">
 				<form:input path="budgetPreparer" htmlEscape="false" class="form-control"/>
 			</td>
 		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">不停电作业查勘人员:</label></td>
+			<td class="width-35">
+				<form:input path="uninterruptedWorkSurveyPersonnel" readonly="true" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">其他:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">是否取消:</label></td>
+			<td class="width-35">
+				<form:input path="clearOrNot" htmlEscape="false" class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">是否启动设计交底流程:</label></td>
+			<td class="width-35">
+				<form:input path="noStartTheDesign" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
 		</tbody>
 	</table>
 </form:form>

+ 24 - 1
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/reserveManage/reserveManagementView.jsp

@@ -152,13 +152,23 @@
 			<td class="width-35">
 				<form:input path="ownerDistributionNerworkFullTime" readonly="true" htmlEscape="false" class="form-control"/>
 			</td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>业主储备项目经理:</label></td>
+			<td class="width-35">
+				<form:input path="ownerReserveProjectManagre" readonly="true" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
+		<tr>
 			<td class="width-15 active"><label class=""><font color="red">*</font>业主项目经理:</label></td>
 			<td class="width-35">
 				<form:input path="ownerProjectManager" readonly="true" htmlEscape="false" class="form-control"/>
 			</td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>业主物资专职:</label></td>
+			<td class="width-35">
+				<form:input path="materialSoleDuty" htmlEscape="false" readonly="true" class="form-control"/>
+			</td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class=""><font color="red">*</font>技经人员:</label></td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>业主技经人员:</label></td>
 			<td class="width-35">
 				<form:input path="technicalStaff" htmlEscape="false" readonly="true" class="form-control"/>
 			</td>
@@ -183,6 +193,19 @@
 				<form:input path="uninterruptedWorkSurveyPersonnel" readonly="true" htmlEscape="false" class="form-control"/>
 			</td>
 		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">其他:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">是否取消:</label></td>
+			<td class="width-35">
+				<form:input path="clearOrNot" readonly="true" htmlEscape="false" class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">是否启动设计交底流程:</label></td>
+			<td class="width-35">
+				<form:input path="noStartTheDesign" readonly="true" htmlEscape="false" class="form-control"/>
+			</td>
+		</tr>
 		</tbody>
 	</table>
 </form:form>

+ 22 - 1
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/designUnit.jsp

@@ -9,6 +9,24 @@
 	<%@ include file="/webpage/include/treeview.jsp" %>
 	<%@ include file="budgetReview.js"%>
 	<script type="text/javascript">
+		function testSay(uuid) {
+
+			document.getElementById("uid").value = uuid
+			var body = top.layer.getChildFrame('body', 0);
+			var pickUuid = body.find('#test');
+			body.find('#uid').val(uuid);
+
+			pickUuid.click()
+		}
+		function testSay2(uuid) {
+			console.log('say2')
+			document.getElementById("uid").value = uuid
+			var body = top.layer.getChildFrame('body', 0);
+			var pickUuid = body.find('#test2');
+			body.find('#uid').val(uuid);
+
+			pickUuid.click()
+		}
 	var subVar;
 		$(document).ready(function() {
 
@@ -75,6 +93,7 @@
 
 					var material = $("#material").val()
 					var drjgc = $("#drjgc").val()
+					var uid = $("#uid").val()
 
 
 					if (budgetStatement == ""
@@ -111,6 +130,7 @@
 									"taskDefKey": "${reserveProcess.act.taskDefKey}",
 									"procInsId": "${reserveProcess.act.procInsId}",
 									"procDefId": "${reserveProcess.act.procDefId}",
+									"uid": uid,
 									"flag": "yes",
 									"projectReserveId":projectReserveId,
 									"projectName":projectName,
@@ -171,7 +191,7 @@
 				var projectReserveId = $("#projectReserveId").val();
 				jp.open({
 					type: 2,
-					area: [1000, 600],
+					area: [2000, 1000],
 					auto: true,
 					title:"在线开甲供材",
 					content: "${ctx}/raiseCapital/jgcList?projectReserveId=" + projectReserveId +"&projectName=" + projectName ,
@@ -199,6 +219,7 @@
 <body class="bg-white">
 	<input id="material" type="hidden" value="${material}">
 	<input id="drjgc" type="hidden" value="${drjgc}">
+	<input id="uid" type="hidden">
 	<div class="wrapper wrapper-content">
 		<div class="row">
 			<div class="col-md-12">

+ 32 - 32
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/reserveManagementInformation.js

@@ -81,10 +81,11 @@ $(document).ready(function () {
             [
                 [
                     {checkbox:true,width: 36},
-                    {"title":"储备项目基本信息","colspan":23,"halign":"center","align": "center",width: "4600px"},
-                    {"title":"储备项目交底信息","colspan":13,"halign":"center","align": "center",width: "2600px"},
-                    {"title":"储备项目推进计划","colspan":12,"halign":"center","align": "center",width: "2400px"},
-                    {"title":"立项筛选","colspan":5,"halign":"center","align": "center",width: "1000px"}
+                    {"title":"储备项目基本信息","colspan":19,"halign":"center","align": "center",width: "3800px"},
+                    {"title":"储备项目交底信息统计","colspan":10,"halign":"center","align": "center",width: "2600px"},
+                    {"title":"储备项目初步筛选","colspan":4,"halign":"center","align": "center",width: "800px"},
+                    // {"title":"储备项目推进计划","colspan":12,"halign":"center","align": "center",width: "2400px"},
+                    // {"title":"立项筛选","colspan":5,"halign":"center","align": "center",width: "1000px"}
                 ],
                     [
                     {checkbox:true,width: 36},
@@ -121,17 +122,13 @@ $(document).ready(function () {
                         { field: 'requirementType', title: "需求类型", valign:"middle", align:"center", colspan: 1 },
                         { field: 'projectType', title: "项目类型", valign:"middle", align:"center", colspan: 1 },
                         { field: 'costEstimate', title: "费用估算", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'budgetPreparationStatus', title: "预算编制状态", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'budgetIncludesTax', title: "预算(含税)", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'budgetNotIncludesTax', title: "预算(不含税)", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'basicRemarks', title: "备注", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
-
-                        { field: 'reserveProgress', title: "储备进度", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'includeReserve', title: "是否纳入储备", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'reasonForCancel', title: "取消原因说明", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+                        // { field: 'budgetPreparationStatus', title: "预算编制状态", valign:"middle", align:"center", colspan: 1 },
+                        // { field: 'budgetIncludesTax', title: "预算(含税)", valign:"middle", align:"center", colspan: 1 },
+                        // { field: 'budgetNotIncludesTax', title: "预算(不含税)", valign:"middle", align:"center", colspan: 1 },
+                        // { field: 'basicRemarks', title: "备注", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
                         { field: 'comprehensiveProject', title: "项目综合可实施性", valign:"middle", align:"center", colspan: 1 },
                         { field: 'officeDifficulty', title: "政处难度", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'officeProgress', title: "政处进度", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'officeProgress', title: "政处描述", valign:"middle", align:"center", colspan: 1 },
                         { field: 'powerFailureDifficulty', title: "停电难度", valign:"middle", align:"center", colspan: 1 },
                         { field: 'powerFailureDescribe', title: "停电描述", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
                         { field: 'otherProblemDifficulty', title: "其他问题难度", valign:"middle", align:"center", colspan: 1 },
@@ -139,25 +136,28 @@ $(document).ready(function () {
                         { field: 'runPlanRequire', title: "是否需重跑方案", valign:"middle", align:"center", colspan: 1 },
                         { field: 'programChangeDescription', title: "方案变更说明", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
                         { field: 'discloseRemarks', title: "备注", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
-
-                        { field: 'demandUnitPriority', title: "需求单位优先级", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'preliminaryArrangement', title: "立项初安排", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
-                        { field: 'initialImplementBatch', title: "初定实施批次", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'initialImplementUnit', title: "初定实施单位", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'projectManagementCenter', title: "储备项目推进计划", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
-                        { field: 'completeProgressUnit', title: "项目管理单位完成进度", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'projectReservePlan', title: "储备项目推进计划", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
-                        { field: 'demandUnitProgress', title: "需求单位完成进度", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'departmentPlan', title: "政处计划", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
-                        { field: 'administrativeProgress', title: "政处进度", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'drawMapPath', title: "是否出路径图", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'planRemarks', title: "备注", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
-
-                        { field: 'arrangementProject', title: "立项安排", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
-                        { field: 'implementationBatch', title: "实施批次", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'constructionUnit', title: "施工单位", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'drawOfficeDrawn', title: "是否出正式图", valign:"middle", align:"center", colspan: 1 },
-                        { field: 'projectInitiateRemarks', title: "备注", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+                        { field: 'reserveProgress', title: "储备进度", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'includeReserve', title: "是否纳入储备", valign:"middle", align:"center", colspan: 1 },
+                        { field: 'reasonForCancel', title: "取消原因说明", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+                        { field: 'startDesignOrNot', title: "是否启动设计", valign:"middle", align:"center", colspan: 1 },
+                        // { field: 'demandUnitPriority', title: "需求单位优先级", valign:"middle", align:"center", colspan: 1 },
+                        // { field: 'preliminaryArrangement', title: "立项初安排", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+                        // { field: 'initialImplementBatch', title: "初定实施批次", valign:"middle", align:"center", colspan: 1 },
+                        // { field: 'initialImplementUnit', title: "初定实施单位", valign:"middle", align:"center", colspan: 1 },
+                        // { field: 'projectManagementCenter', title: "储备项目推进计划", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+                        // { field: 'completeProgressUnit', title: "项目管理单位完成进度", valign:"middle", align:"center", colspan: 1 },
+                        // { field: 'projectReservePlan', title: "储备项目推进计划", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+                        // { field: 'demandUnitProgress', title: "需求单位完成进度", valign:"middle", align:"center", colspan: 1 },
+                        // { field: 'departmentPlan', title: "政处计划", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+                        // { field: 'administrativeProgress', title: "政处进度", valign:"middle", align:"center", colspan: 1 },
+                        // { field: 'drawMapPath', title: "是否出路径图", valign:"middle", align:"center", colspan: 1 },
+                        // { field: 'planRemarks', title: "备注", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+                        //
+                        // { field: 'arrangementProject', title: "立项安排", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+                        // { field: 'implementationBatch', title: "实施批次", valign:"middle", align:"center", colspan: 1 },
+                        // { field: 'constructionUnit', title: "施工单位", valign:"middle", align:"center", colspan: 1 },
+                        // { field: 'drawOfficeDrawn', title: "是否出正式图", valign:"middle", align:"center", colspan: 1 },
+                        // { field: 'projectInitiateRemarks', title: "备注", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
 
                     ],
 

+ 45 - 38
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/reserveManagementModifyByzz.jsp

@@ -161,7 +161,7 @@
 				<form:input path="costEstimate" htmlEscape="false" class="form-control number money" readonly="true"/>
 			</td>
 		</tr>
-		<tr>
+		<%--<tr>
 			<td class="width-15 active"><label class="">预算编制状态:</label></td>
 			<td class="width-35">
 				<form:input path="budgetPreparationStatus" htmlEscape="false" class="form-control number money" readonly="true"/>
@@ -180,86 +180,64 @@
 			<td class="width-35">
 				<form:textarea path="basicRemarks" htmlEscape="false" rows="3" maxlength="200" class="form-control" readonly="true"/>
 			</td>
-		</tr>
+		</tr>--%>
 		<tr>
-			<td colspan="4" class="width-15 active"><label class="">储备项目交底信息:</label></td>
-		</tr>
-		<tr>
-			<td class="width-15 active"><label class="">储备进度:</label></td>
-			<td class="width-35">
-				<form:input path="reserveProgress" htmlEscape="false" class="form-control" readonly="true"/>
-			</td>
-			<td class="width-15 active"><label class="">是否纳入储备:</label></td>
-			<td class="width-35">
-				<select id="includeReserve" name="includeReserve"  class="form-control">
-					<option value="">请选择</option>
-					<option value="是" <c:if test="${reserveManagement.includeReserve=='是'}">selected</c:if>>是</option>
-					<option value="待定" <c:if test="${reserveManagement.includeReserve=='待定'}">selected</c:if>>待定</option>
-					<option value="取消" <c:if test="${reserveManagement.includeReserve=='取消'}">selected</c:if>>取消</option>
-				</select>
-
-			</td>
+			<td colspan="4" class="width-15 active"><label class="">储备项目交底信息统计:</label></td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">取消原因说明:</label></td>
-			<td class="width-35">
-				<form:input path="reasonForCancel" htmlEscape="false" class="form-control" readonly="true"/>
-			</td>
 			<td class="width-15 active"><label class="">项目综合可实施性:</label></td>
 			<td class="width-35">
 				<form:input path="comprehensiveProject" htmlEscape="false" class="form-control" readonly="true"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class="">政处难度:</label></td>
 			<td class="width-35">
 				<form:input path="officeDifficulty" htmlEscape="false" class="form-control" readonly="true"/>
 			</td>
-			<td class="width-15 active"><label class="">政处进度:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">政处描述:</label></td>
 			<td class="width-35">
 				<form:input path="officeProgress" htmlEscape="false" class="form-control" readonly="true"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class="">停电难度:</label></td>
 			<td class="width-35">
 				<form:input path="powerFailureDifficulty" htmlEscape="false" class="form-control"/>
 			</td>
+		</tr>
+		<tr>
 			<td class="width-15 active"><label class="">停电描述:</label></td>
 			<td class="width-35">
 				<form:input path="powerFailureDescribe" htmlEscape="false" class="form-control"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class="">其他问题难度:</label></td>
 			<td class="width-35">
 				<form:input path="otherProblemDifficulty" htmlEscape="false" class="form-control"/>
 			</td>
+		</tr>
+		<tr>
 			<td class="width-15 active"><label class="">其他问题描述:</label></td>
 			<td class="width-35">
 				<form:input path="otherProblemDescribe" htmlEscape="false" class="form-control"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class="">是否需重跑方案:</label></td>
 			<td class="width-35">
 				<form:input path="runPlanRequire" htmlEscape="false" class="form-control"/>
 			</td>
+		</tr>
+		<tr>
 			<td class="width-15 active"><label class="">方案变更说明:</label></td>
 			<td class="width-35">
 				<form:input path="programChangeDescription" htmlEscape="false" class="form-control"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class="">备注:</label></td>
 			<td class="width-35">
 				<form:input path="discloseRemarks" htmlEscape="false" class="form-control"/>
 			</td>
 		</tr>
-		<tr>
-			<td colspan="4" class="width-15 active"><label class="">储备项目推进计划:</label></td>
-		</tr>
-		<tr>
+<%--		<tr>--%>
+<%--			<td colspan="4" class="width-15 active"><label class="">储备项目推进计划:</label></td>--%>
+<%--		</tr>--%>
+		<%--<tr>
 			<td class="width-15 active"><label class="">需求单位优先级:</label></td>
 			<td class="width-35">
 				<form:input path="demandUnitPriority" htmlEscape="false" class="form-control"/>
@@ -347,6 +325,35 @@
 			<td class="width-35">
 				<form:input path="projectInitiateRemarks" htmlEscape="false" class="form-control"/>
 			</td>
+		</tr>--%>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">储备项目初步筛选:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">储备进度:</label></td>
+			<td class="width-35">
+				<form:input path="reserveProgress" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">是否纳入储备:</label></td>
+			<td class="width-35">
+				<select id="includeReserve" name="includeReserve"  class="form-control">
+					<option value="">请选择</option>
+					<option value="是" <c:if test="${reserveManagement.includeReserve=='是'}">selected</c:if>>是</option>
+					<option value="待定" <c:if test="${reserveManagement.includeReserve=='待定'}">selected</c:if>>待定</option>
+					<option value="取消" <c:if test="${reserveManagement.includeReserve=='取消'}">selected</c:if>>取消</option>
+				</select>
+
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">取消原因说明:</label></td>
+			<td class="width-35">
+				<form:input path="reasonForCancel" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">是否启动设计:</label></td>
+			<td class="width-35">
+				<form:input path="startDesignOrNot" htmlEscape="false" class="form-control"/>
+			</td>
 		</tr>
 
 		</tbody>

+ 33 - 138
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/reserveManagementView.jsp

@@ -139,190 +139,85 @@
 			</td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">预算编制状态:</label></td>
-			<td class="width-35">
-				<form:input path="budgetPreparationStatus" htmlEscape="false" readonly="true" class="form-control number money"/>
-			</td>
-			<td class="width-15 active"><label class="">预算含税:</label></td>
-			<td class="width-35">
-				<form:input path="budgetIncludesTax" htmlEscape="false" readonly="true" class="form-control number money"/>
-			</td>
-		</tr>
-		<tr>
-			<td class="width-15 active"><label class="">预算不含税:</label></td>
-			<td class="width-35">
-				<form:input path="budgetNotIncludesTax" htmlEscape="false" readonly="true" class="form-control number money"/>
-			</td>
-			<td class="width-15 active"><label class="">备注:</label></td>
-			<td class="width-35">
-				<form:textarea path="basicRemarks" readonly="true" htmlEscape="false" rows="3" maxlength="200" class="form-control"/>
-			</td>
-		</tr>
-		<tr>
-			<td colspan="4" class="width-15 active"><label class="">储备项目交底信息:</label></td>
+			<td colspan="4" class="width-15 active"><label class="">储备项目交底信息统计:</label></td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">储备进度:</label></td>
-			<td class="width-35">
-				<form:input path="reserveProgress" htmlEscape="false" readonly="true" class="form-control"/>
-			</td>
-			<td class="width-15 active"><label class="">是否纳入储备:</label></td>
-			<td class="width-35">
-				<select id="includeReserve" name="includeReserve" disabled class="form-control">
-					<option value="">请选择</option>
-					<option value="是" <c:if test="${reserveManagement.includeReserve=='是'}">selected</c:if>>是</option>
-					<option value="待定" <c:if test="${reserveManagement.includeReserve=='待定'}">selected</c:if>>待定</option>
-					<option value="取消" <c:if test="${reserveManagement.includeReserve=='取消'}">selected</c:if>>取消</option>
-				</select>
-
-			</td>
-		</tr>
-		<tr>
-			<td class="width-15 active"><label class="">取消原因说明:</label></td>
-			<td class="width-35">
-				<form:input path="reasonForCancel" readonly="true" htmlEscape="false" class="form-control"/>
-			</td>
 			<td class="width-15 active"><label class="">项目综合可实施性:</label></td>
 			<td class="width-35">
-				<form:input path="comprehensiveProject" readonly="true" htmlEscape="false" class="form-control"/>
+				<form:input path="comprehensiveProject" htmlEscape="false" class="form-control" readonly="true"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class="">政处难度:</label></td>
 			<td class="width-35">
-				<form:input path="officeDifficulty" readonly="true" htmlEscape="false" class="form-control"/>
-			</td>
-			<td class="width-15 active"><label class="">政处进度:</label></td>
-			<td class="width-35">
-				<form:input path="officeProgress" readonly="true" htmlEscape="false" class="form-control"/>
-			</td>
-		</tr>
-		<tr>
-			<td class="width-15 active"><label class="">停电难度:</label></td>
-			<td class="width-35">
-				<form:input path="powerFailureDifficulty" readonly="true" htmlEscape="false" class="form-control"/>
-			</td>
-			<td class="width-15 active"><label class="">停电描述:</label></td>
-			<td class="width-35">
-				<form:input path="powerFailureDescribe" readonly="true" htmlEscape="false" class="form-control"/>
+				<form:input path="officeDifficulty" htmlEscape="false" class="form-control" readonly="true"/>
 			</td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">其他问题难度:</label></td>
+			<td class="width-15 active"><label class="">政处描述:</label></td>
 			<td class="width-35">
-				<form:input path="otherProblemDifficulty" readonly="true" htmlEscape="false" class="form-control"/>
+				<form:input path="officeProgress" htmlEscape="false" class="form-control" readonly="true"/>
 			</td>
-			<td class="width-15 active"><label class="">其他问题描述:</label></td>
-			<td class="width-35">
-				<form:input path="otherProblemDescribe" readonly="true" htmlEscape="false" class="form-control"/>
-			</td>
-		</tr>
-		<tr>
-			<td class="width-15 active"><label class="">是否需重跑方案:</label></td>
-			<td class="width-35">
-				<form:input path="runPlanRequire" readonly="true" htmlEscape="false" class="form-control"/>
-			</td>
-			<td class="width-15 active"><label class="">方案变更说明:</label></td>
-			<td class="width-35">
-				<form:input path="programChangeDescription" readonly="true" htmlEscape="false" class="form-control"/>
-			</td>
-		</tr>
-		<tr>
-			<td class="width-15 active"><label class="">备注:</label></td>
-			<td class="width-35">
-				<form:input path="discloseRemarks" readonly="true" htmlEscape="false" class="form-control"/>
-			</td>
-		</tr>
-		<tr>
-			<td colspan="4" class="width-15 active"><label class="">储备项目推进计划:</label></td>
-		</tr>
-		<tr>
-			<td class="width-15 active"><label class="">需求单位优先级:</label></td>
-			<td class="width-35">
-				<form:input path="demandUnitPriority" readonly="true" htmlEscape="false" class="form-control"/>
-			</td>
-			<td class="width-15 active"><label class="">立项初安排:</label></td>
-			<td class="width-35">
-				<form:input path="preliminaryArrangement" readonly="true" htmlEscape="false" class="form-control"/>
-			</td>
-		</tr>
-		<tr>
-			<td class="width-15 active"><label class="">初定实施批次:</label></td>
-			<td class="width-35">
-				<form:input path="initialImplementBatch" readonly="true" htmlEscape="false" class="form-control"/>
-			</td>
-			<td class="width-15 active"><label class="">初定实施单位:</label></td>
-			<td class="width-35">
-				<form:input path="initialImplementUnit" readonly="true" htmlEscape="false" class="form-control"/>
-			</td>
-		</tr>
-		<tr>
-			<td class="width-15 active"><label class="">储备项目推进计划(项目管理中心):</label></td>
-			<td class="width-35">
-				<form:input path="projectManagementCenter" readonly="true" htmlEscape="false" class="form-control"/>
-			</td>
-			<td class="width-15 active"><label class="">项目管理单位完成进度:</label></td>
+			<td class="width-15 active"><label class="">停电难度:</label></td>
 			<td class="width-35">
-				<form:input path="completeProgressUnit" readonly="true" htmlEscape="false" class="form-control"/>
+				<form:input path="powerFailureDifficulty" htmlEscape="false" class="form-control"/>
 			</td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">储备项目推进计划(需求单位):</label></td>
+			<td class="width-15 active"><label class="">停电描述:</label></td>
 			<td class="width-35">
-				<form:input path="projectReservePlan" readonly="true" htmlEscape="false" class="form-control"/>
+				<form:input path="powerFailureDescribe" htmlEscape="false" class="form-control"/>
 			</td>
-			<td class="width-15 active"><label class="">需求单位完成进度:</label></td>
+			<td class="width-15 active"><label class="">其他问题难度:</label></td>
 			<td class="width-35">
-				<form:input path="demandUnitProgress" readonly="true" htmlEscape="false" class="form-control"/>
+				<form:input path="otherProblemDifficulty" htmlEscape="false" class="form-control"/>
 			</td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">政处计划(政处单位):</label></td>
+			<td class="width-15 active"><label class="">其他问题描述:</label></td>
 			<td class="width-35">
-				<form:input path="departmentPlan" readonly="true" htmlEscape="false" class="form-control"/>
+				<form:input path="otherProblemDescribe" htmlEscape="false" class="form-control"/>
 			</td>
-			<td class="width-15 active"><label class="">政处进度:</label></td>
+			<td class="width-15 active"><label class="">是否需重跑方案:</label></td>
 			<td class="width-35">
-				<form:input path="administrativeProgress" readonly="true" htmlEscape="false" class="form-control"/>
+				<form:input path="runPlanRequire" htmlEscape="false" class="form-control"/>
 			</td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">是否出路径图:</label></td>
+			<td class="width-15 active"><label class="">方案变更说明:</label></td>
 			<td class="width-35">
-				<form:input path="drawMapPath" readonly="true" htmlEscape="false" class="form-control"/>
+				<form:input path="programChangeDescription" htmlEscape="false" class="form-control"/>
 			</td>
 			<td class="width-15 active"><label class="">备注:</label></td>
 			<td class="width-35">
-				<form:input path="planRemarks" readonly="true" htmlEscape="false" class="form-control"/>
+				<form:input path="discloseRemarks" htmlEscape="false" class="form-control"/>
 			</td>
 		</tr>
 		<tr>
-			<td colspan="4" class="width-15 active"><label class="">立项筛选:</label></td>
+			<td colspan="4" class="width-15 active"><label class="">储备项目初步筛选:</label></td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">立项安排:</label></td>
+			<td class="width-15 active"><label class="">储备进度:</label></td>
 			<td class="width-35">
-				<form:input path="arrangementProject" readonly="true" htmlEscape="false" class="form-control"/>
+				<form:input path="reserveProgress" htmlEscape="false" class="form-control" readonly="true"/>
 			</td>
-			<td class="width-15 active"><label class="">实施批次:</label></td>
+			<td class="width-15 active"><label class="">是否纳入储备:</label></td>
 			<td class="width-35">
-				<form:input path="implementationBatch" readonly="true" htmlEscape="false" class="form-control"/>
+				<select id="includeReserve" name="includeReserve"  class="form-control">
+					<option value="">请选择</option>
+					<option value="是" <c:if test="${reserveManagement.includeReserve=='是'}">selected</c:if>>是</option>
+					<option value="待定" <c:if test="${reserveManagement.includeReserve=='待定'}">selected</c:if>>待定</option>
+					<option value="取消" <c:if test="${reserveManagement.includeReserve=='取消'}">selected</c:if>>取消</option>
+				</select>
+
 			</td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">施工单位:</label></td>
-			<td class="width-35">
-				<form:input path="constructionUnit" readonly="true" htmlEscape="false" class="form-control"/>
-			</td>
-			<td class="width-15 active"><label class="">是否出正式图:</label></td>
+			<td class="width-15 active"><label class="">取消原因说明:</label></td>
 			<td class="width-35">
-				<form:input path="drawOfficeDrawn" readonly="true" htmlEscape="false" class="form-control"/>
+				<form:input path="reasonForCancel" htmlEscape="false" class="form-control" readonly="true"/>
 			</td>
-		</tr>
-		<tr>
-			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-15 active"><label class="">是否启动设计:</label></td>
 			<td class="width-35">
-				<form:input path="projectInitiateRemarks" readonly="true" htmlEscape="false" class="form-control"/>
+				<form:input path="startDesignOrNot" htmlEscape="false" class="form-control"/>
 			</td>
 		</tr>
 

+ 11 - 26
src/main/webapp/webpage/modules/cg/statisticalTable/budgetStats/budgetStats.js

@@ -82,18 +82,16 @@ $(document).ready(function () {
                 [
                     {checkbox:true,width: 36},
                     {"title":"储备项目基本信息","colspan":21,"halign":"center","align": "center",width: "4200px"},
-                    {"title":"项目参建(单位)人员信息","colspan":5,"halign":"center","align": "center",width: "1000px"},
-                    {"title":"分包信息","colspan":5,"halign":"center","align": "center",width: "1000px"},
                     {"title":"概算信息(审前)","colspan":10,"halign":"center","align": "center",width: "2000px"},
                     {"title":"概算信息(审后)","colspan":10,"halign":"center","align": "center",width: "2000px"},
-                    {"title":"概算状态","colspan":4,"halign":"center","align": "center",width: "800px"}
+                    {"title":"概算状态","colspan":2,"halign":"center","align": "center",width: "400px"}
                 ],
                 [
                     {checkbox:true,width: 36},
-                    { field: 'projectYear', title: "项目年份", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'projectYear', title: "项目年份", valign:"middle", align:"center", colspan: 1},
                     { field: 'projectNature', title: "项目性质", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'demandUnit', title: "需求单位", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'district', title: "区域", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'demandUnit', title: "需求单位", valign:"middle", align:"center", colspan: 1},
+                    { field: 'district', title: "区域", valign:"middle", align:"center", colspan: 1},
                     { field: 'projectGroup', title: "项目分组", valign:"middle", align:"center", colspan: 1 },
                     { field: 'reserveBatches', title: "储备批次", valign:"middle", align:"center", colspan: 1 },
                     { field: 'blockSupply', title: "供电区域", valign:"middle", align:"center", colspan: 1 },
@@ -102,25 +100,15 @@ $(document).ready(function () {
                     { field: 'projectReserveId', title: "项目储备编号", valign:"middle", align:"center", colspan: 1 },
                     { field: 'projectName', title: "项目名称", valign:"middle", align:"center", colspan: 1,formatter:paramsMatter},
                     { field: 'constructionNecessityAndContent', title: "建设必要性及内容", valign:"middle", align:"center", colspan: 1,formatter:paramsMatter},
-                    { field: 'substationName', title: "变电站名称", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'circuitName', title: "线路名称", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'netRackProjectDivide', title: "网架项目划分", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'substationName', title: "变电站名称", valign:"middle", align:"center", colspan: 1},
+                    { field: 'circuitName', title: "线路名称", valign:"middle", align:"center", colspan: 1},
+                    { field: 'netRackProjectDivide', title: "网架项目划分", valign:"middle", align:"center", colspan: 1},
                     { field: 'requirementType', title: "需求类型", valign:"middle", align:"center", colspan: 1 },
                     { field: 'costEstimate', title: "费用估算", valign:"middle", align:"center", colspan: 1 },
                     { field: 'basicRemarks', title: "备注", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
-                    { field: 'reserveProgress', title: "储备进度", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'implementPlan', title: "是否纳入实施计划", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'implementBatch', title: "初定实施批次", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'projectReleaseBatch', title: "项目下达批次", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'ownerProjectManager', title: "业主项目经理", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'siteManagementUnit', title: "现场施工管理单位", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'electricalProjectManager', title: "施工项目经理(电气)", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'civilEngineerProjectManager', title: "施工项目经理(土建)", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'electricalSubcontractor', title: "电气分包单位", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'electricalContact', title: "电气联系人、联系电话", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'civilEngineerSubcontractor', title: "土建分包单位", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'civilEngineerContact', title: "土建联系人、联系电话", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'subcontractInfoRemark', title: "备注", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'reserveProgress', title: "储备进度", valign:"middle", align:"center", colspan: 1},
+                    { field: 'implementPlan', title: "是否纳入实施计划", valign:"middle", align:"center", colspan: 1},
+                    { field: 'implementBatch', title: "初定实施批次", valign:"middle", align:"center", colspan: 1},
                     { field: 'pretrialEstimateAmount', title: "总概算金额(含税)", valign:"middle", align:"center", colspan: 1 },
                     { field: 'pretrialEstimateAmountExcludeTax', title: "审前总概算金额(不含税)", valign:"middle", align:"center", colspan: 1 },
                     { field: 'pretrialDeductibleAmount', title: "审前可抵扣金额(税金)", valign:"middle", align:"center", colspan: 1 },
@@ -142,10 +130,7 @@ $(document).ready(function () {
                     { field: 'afterTrialDesignFee', title: "审后设计费(含税)", valign:"middle", align:"center", colspan: 1 },
                     { field: 'afterTrialSupervisionFee', title: "审后监理费(含税)", valign:"middle", align:"center", colspan: 1 },
                     { field: 'budgetRevision', title: "是否完成概算修改", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'completeTime', title: "概算修改完成时间", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'designChange', title: "是否有设计变更", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'designChangeStatus', title: "设计变更状态", valign:"middle", align:"center", colspan: 1 },
-
+                    { field: 'completeTime', title: "概算修改完成时间", valign:"middle", align:"center", colspan: 1 }
 
                 ],
 

+ 38 - 9
src/main/webapp/webpage/modules/cg/statisticalTable/cable/cable.js

@@ -81,21 +81,50 @@ $(document).ready(function () {
             [
                 [
                     {checkbox:true,width: 36},
-                    {"title":"储备项目基本信息","colspan":12,"halign":"center","align": "center",width: "2400px"},
+                    {"title":"储备项目电缆段长统计表","colspan":34,"halign":"center","align": "center",width: "6800px"},
                 ],
                 [
                     {checkbox:true,width: 36},
-                    { field: 'projectReserveId', title: "储备编号", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'projectName', title: "项目名称", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
-                    { field: 'specifications', title: "电缆规格型号", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'civilEngineer', title: "是否含土建", valign:"middle", align:"center", colspan: 1 },
+                    {"title":"储备项目基本信息","colspan":18,"halign":"center","align": "center",width: "3600px"},
+                    {"title":"储备进度","colspan":3,"halign":"center","align": "center",width: "600px"},
+                    {"title":"电缆段长","colspan":13,"halign":"center","align": "center",width: "2600px"},
+
+                ],
+                [
+                    {checkbox:true,width: 36},
+                    { field: 'projectYear', title: "项目年份", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'projectNature', title: "项目性质", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'demandUnit', title: "需求单位", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'district', title: "区域", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'projectGroup', title: "项目分组", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'reserveBatches', title: "储备批次", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'blockSupply', title: "供电区域", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'gridNumber', title: "网格编号", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'cellNumber', title: "单元格编号", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'projectReserveId', title: "项目储备编号", valign:"middle", align:"center", colspan: 1},
+                    { field: 'projectName', title: "项目名称", valign:"middle", align:"center", colspan: 1,formatter:paramsMatter},
+                    { field: 'constructionNecessityAndContent', title: "建设必要性及内容", valign:"middle", align:"center", colspan: 1,formatter:paramsMatter},
+                    { field: 'substationName', title: "变电站名称", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'circuitName', title: "线路名称", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'netRackProjectDivide', title: "网架项目划分", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'requirementType', title: "需求类型", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'costEstimate', title: "费用估算", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'basicRemarks', title: "备注", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'reserveProgress', title: '储备进度', valign:"middle", align:"center" ,formatter:paramsMatter},
+                    { field: 'implementPlan', title: '是否纳入实施计划', valign:"middle", align:"center" },
+                    { field: 'implementBatch', title: '初定实施批次', valign:"middle", align:"center" },
+                    { field: 'specifications', title: "电缆规格型号", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
+                    { field: 'destination', title: "起讫点", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'pathLength', title: "路径长(m)", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'upperRod', title: "上杆(m)", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'arrival', title: "进站(m)", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'incomingEquipment', title: "进设备(m)", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'coefficient', title: "系数", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'electricalChief', title: "电气长(m)", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'cableTrenchBuild', title: "是否新建电缆管沟", valign:"middle", align:"center", colspan: 1 },
                     { field: 'pipeLayeCable', title: "是否在现有管道施放电缆", valign:"middle", align:"center", colspan: 1 },
                     { field: 'completePipe', title: "是否完成通管", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'completeMeasurement', title: "是否完成实测", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'measureLength', title: "实测长度", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'designCableLength', title: "设计电缆段长", valign:"middle", align:"center", colspan: 1 },
                     { field: 'segmentLengthClassinication', title: "段长分类", valign:"middle", align:"center", colspan: 1 },
-                    { field: 'projectManager', title: "项目经理", valign:"middle", align:"center", colspan: 1 },
                     { field: 'remarks', title: "备注", valign:"middle", align:"center", colspan: 1 ,formatter:paramsMatter},
 
                 ],

+ 4 - 4
src/main/webapp/webpage/modules/cg/statisticalTable/constructeScale/constructeScale.js

@@ -81,7 +81,7 @@ $(document).ready(function () {
             [
                 [
                     {checkbox:true,width: 36},
-                    {"title":"国网江苏省电力有限公司2022年第二批配电网工程项目明细表","colspan":41,"halign":"center","align": "center"},
+                    {"title":"国网江苏省电力有限公司2022年第二批配电网工程项目明细表","colspan":39,"halign":"center","align": "center"},
                 ],
                 [
                     {checkbox:true,width: 36},
@@ -94,13 +94,13 @@ $(document).ready(function () {
                     { field: 'projectName', title: "项目名称", valign:"middle", align:"center", colspan: 1, rowspan: 2 ,formatter:paramsMatter},
                     { field: 'constructionNecessityAndContent', title: "建设必要性及内容", valign:"middle", align:"center", colspan: 1, rowspan: 2 ,formatter:paramsMatter},
                     { field: 'constructePurpose', title: "建设目的", valign:"middle", align:"center", colspan: 1, rowspan: 2 ,formatter:paramsMatter},
-                    { field: 'reserveProgress', title: "项目进度", valign:"middle", align:"center", colspan: 1, rowspan: 2 ,formatter:paramsMatter},
+                    // { field: 'reserveProgress', title: "项目进度", valign:"middle", align:"center", colspan: 1, rowspan: 2 ,formatter:paramsMatter},
                     { title: "建设规模", valign:"middle", align:"center", colspan: 26, rowspan: 1 },
                     { field: 'costEstimate', title: "费用估算", valign:"middle", align:"center", colspan: 1, rowspan: 2 },
                     { field: 'peakSummerProject', title: "是否迎峰度夏项目", valign:"middle", align:"center", colspan: 1, rowspan: 2 },
                     { field: 'projectReview', title: "通过第几批项目评审", valign:"middle", align:"center", colspan: 1, rowspan: 2 },
-                    { field: 'afterTrialEstimateAmount', title: "概算(含税)", valign:"middle", align:"center", colspan: 1, rowspan: 2 },
-                    { field: 'afterTrialEstimateAmountExcludeTax', title: "概算(不含税)", valign:"middle", align:"center", colspan: 1, rowspan: 2 }
+                    { field: 'afterTrialEstimateAmount', title: "概算", valign:"middle", align:"center", colspan: 1, rowspan: 2 },
+                    // { field: 'afterTrialEstimateAmountExcludeTax', title: "概算(不含税)", valign:"middle", align:"center", colspan: 1, rowspan: 2 }
                 ],
 
                 [

+ 36 - 27
src/main/webapp/webpage/modules/cg/statisticalTable/progressStats/progressStats.js

@@ -81,30 +81,42 @@ $(document).ready(function () {
             [
                 [
                     {checkbox:true,width: 36},
-                    {"title":"储备项目设计全流程跟踪","colspan":53,"halign":"center","align": "center",width: "10600px"}
+                    {"title":"储备项目设计全流程跟踪","colspan":56,"halign":"center","align": "center",width: "11200px"}
                 ],
                 [
                     {checkbox:true,width: 36},
-                    { title: "储备基本信息", valign:"middle", align:"center", colspan: 6, rowspan: 1},
+                    { title: "储备基本信息", valign:"middle", align:"center", colspan: 18, rowspan: 1},
                     { title: "储备进度", valign:"middle", align:"center", colspan: 3, rowspan: 1 },
                     { title: "运检部评审", valign:"middle", align:"center", colspan: 3, rowspan: 1 },
                     { title: "设计委托", valign:"middle", align:"center", colspan: 3, rowspan: 1 },
-                    { title: "储备交底", valign:"middle", align:"center", colspan: 3, rowspan: 1 },
+                    { title: "储备交底", valign:"middle", align:"center", colspan: 2, rowspan: 1 },
                     { title: "图纸初设", valign:"middle", align:"center", colspan: 2, rowspan: 1 },
-                    { title: "项目经理审图", valign:"middle", align:"center", colspan: 7, rowspan: 1 },
-                    { title: "概预算审核", valign:"middle", align:"center", colspan: 7, rowspan: 1 },
+                    { title: "项目经理审图", valign:"middle", align:"center", colspan: 6, rowspan: 1 },
+                    { title: "概预算审核", valign:"middle", align:"center", colspan: 6, rowspan: 1 },
                     { title: "省公司评审", valign:"middle", align:"center", colspan: 6, rowspan: 1 },
-                    { title: "图纸联合审查", valign:"middle", align:"center", colspan: 7, rowspan: 1 },
-                    { title: "图纸定稿", valign:"middle", align:"center", colspan: 6, rowspan: 1 },
+                    { title: "图纸联合审查", valign:"middle", align:"center", colspan: 6, rowspan: 1 },
+                    { title: "储备完成", valign:"middle", align:"center", colspan: 1, rowspan: 1 },
                 ],
                 [
                     {checkbox:true,width: 36},
-                    { field: 'projectReserveId', title: '储备项目编号', valign:"middle", align:"center" },
-                    { field: 'projectName', title: '储备项目名称', valign:"middle", align:"center" ,formatter:paramsMatter},
-                    { field: 'requirementType', title: '储备项目类型', valign:"middle", align:"center" },
-                    { field: 'demandUnit', title: '需求提出单位', valign:"middle", align:"center" },
-                    { field: 'reserveBatches', title: '储备批次', valign:"middle", align:"center" },
-                    { field: 'basicRemarks', title: '备注', valign:"middle", align:"center" ,formatter:paramsMatter},
+                    { field: 'projectYear', title: "项目年份", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'projectNature', title: "项目性质", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'demandUnit', title: "需求单位", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'district', title: "区域", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'projectGroup', title: "项目分组", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'reserveBatches', title: "储备批次", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'blockSupply', title: "供电区域", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'gridNumber', title: "网格编号", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'cellNumber', title: "单元格编号", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'projectReserveId', title: "项目储备编号", valign:"middle", align:"center", colspan: 1},
+                    { field: 'projectName', title: "项目名称", valign:"middle", align:"center", colspan: 1,formatter:paramsMatter},
+                    { field: 'constructionNecessityAndContent', title: "建设必要性及内容", valign:"middle", align:"center", colspan: 1,formatter:paramsMatter},
+                    { field: 'substationName', title: "变电站名称", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'circuitName', title: "线路名称", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'netRackProjectDivide', title: "网架项目划分", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'requirementType', title: "需求类型", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'costEstimate', title: "费用估算", valign:"middle", align:"center", colspan: 1 },
+                    { field: 'basicRemarks', title: "备注", valign:"middle", align:"center", colspan: 1 },
                     { field: 'reserveProgress', title: '储备进度', valign:"middle", align:"center" ,formatter:paramsMatter},
                     { field: 'implementPlan', title: '是否纳入实施计划', valign:"middle", align:"center" },
                     { field: 'initialImplementBatch', title: '初定实施批次', valign:"middle", align:"center" },
@@ -116,21 +128,18 @@ $(document).ready(function () {
                     { field: 'limitDate', title: '初设提交限定日期', valign:"middle", align:"center" },
                     { field: 'onSiteConfess', title: '是否进行现场交底', valign:"middle", align:"center" },
                     { field: 'confessCompleteTime', title: '交底完成时间', valign:"middle", align:"center" },
-                    { field: 'includeReserve', title: '是否进行储备', valign:"middle", align:"center" },
                     { field: 'completeDesign', title: '是否完成初设', valign:"middle", align:"center" },
                     { field: 'submitTime', title: '初设提交时间', valign:"middle", align:"center" },
-                    { field: 'completeDraw', title: '是否进行审图', valign:"middle", align:"center" },
-                    { field: 'completeDrawDate', title: '审图日期', valign:"middle", align:"center" },
+                    { field: 'completeDraw', title: '是否完成审图', valign:"middle", align:"center" },
                     { field: 'drawAudit', title: '是否通过图纸审核', valign:"middle", align:"center" },
+                    { field: 'reasonForFailure', title: '审图意见', valign:"middle", align:"center" ,formatter:paramsMatter},
                     { field: 'passAuditDate', title: '通过审核日期', valign:"middle", align:"center" },
-                    { field: 'reasonForFailure', title: '未通过原因分析', valign:"middle", align:"center" ,formatter:paramsMatter},
                     { field: 'changeDesign', title: '是否需设计变更', valign:"middle", align:"center" },
                     { field: 'drawRemarks', title: '备注', valign:"middle", align:"center" ,formatter:paramsMatter},
-                    { field: 'whetherToAudit', title: '是否进行审核', valign:"middle", align:"center" },
-                    { field: 'auditDate', title: '审核日期', valign:"middle", align:"center" },
+                    { field: 'whetherToAudit', title: '是否完成审核', valign:"middle", align:"center" },
                     { field: 'expertReview', title: '是否通过专家审核', valign:"middle", align:"center" },
+                    { field: 'estimateReasonForFailure', title: '审图意见', valign:"middle", align:"center" ,formatter:paramsMatter},
                     { field: 'estimatePassAuditDate', title: '通过审核日期', valign:"middle", align:"center" },
-                    { field: 'estimateReasonForFailure', title: '未通过原因分析', valign:"middle", align:"center" ,formatter:paramsMatter},
                     { field: 'estimateChangeDesign', title: '是否需设计变更', valign:"middle", align:"center" },
                     { field: 'budgetRemarks', title: '备注', valign:"middle", align:"center" ,formatter:paramsMatter},
                     { field: 'provincialCompanyReview', title: '是否参加省公司评审', valign:"middle", align:"center" },
@@ -142,16 +151,16 @@ $(document).ready(function () {
                     { field: 'drawingReview', title: '是否进行图纸审查', valign:"middle", align:"center" },
                     { field: 'reviewDate', title: '联合审图日期', valign:"middle", align:"center" },
                     { field: 'passDrawingReview', title: '是否通过图纸审查', valign:"middle", align:"center" },
-                    { field: 'approvedDate', title: '通过审核日期', valign:"middle", align:"center" },
                     { field: 'reviewComment', title: '审图意见', valign:"middle", align:"center" ,formatter:paramsMatter},
                     { field: 'jointReviewDesignChange', title: '是否需设计变更', valign:"middle", align:"center" },
                     { field: 'drawingUnionRemarks', title: '备注', valign:"middle", align:"center" ,formatter:paramsMatter},
-                    { field: 'drawingFinalize', title: '图纸是否定稿', valign:"middle", align:"center" },
-                    { field: 'finalDate', title: '定稿日期', valign:"middle", align:"center" },
-                    { field: 'formalDrawing', title: '是否打印正式图纸', valign:"middle", align:"center" },
-                    { field: 'drawingDate', title: '通知出图日期', valign:"middle", align:"center" },
-                    { field: 'transferProjectCenterDate', title: '正式图纸移交项目中心日期', valign:"middle", align:"center" },
-                    { field: 'transferToConstructionUnitDate', title: '正式图纸移交施工单位日期', valign:"middle", align:"center" }
+                    { field: 'completeReserve', title: '是否完成储备', valign:"middle", align:"center" ,formatter:paramsMatter},
+                    // { field: 'drawingFinalize', title: '图纸是否定稿', valign:"middle", align:"center" },
+                    // { field: 'finalDate', title: '定稿日期', valign:"middle", align:"center" },
+                    // { field: 'formalDrawing', title: '是否打印正式图纸', valign:"middle", align:"center" },
+                    // { field: 'drawingDate', title: '通知出图日期', valign:"middle", align:"center" },
+                    // { field: 'transferProjectCenterDate', title: '正式图纸移交项目中心日期', valign:"middle", align:"center" },
+                    // { field: 'transferToConstructionUnitDate', title: '正式图纸移交施工单位日期', valign:"middle", align:"center" }
                 ],
 
             ]