Browse Source

储备项目新-工作流代码提交

user5 2 years ago
parent
commit
619514ee15
20 changed files with 1620 additions and 47 deletions
  1. 7 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/ReserveSummaryProcessMapper.java
  2. 3 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/xml/ReserveSummaryProcessMapper.xml
  3. 24 26
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/service/ReserveSummaryProcessService.java
  4. 380 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/entity/NormativeAudit.java
  5. 52 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/NormativeAuditMapper.java
  6. 136 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/xml/NormativeAuditMapper.xml
  7. 51 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/service/NormativeAuditService.java
  8. 129 4
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/util/ExcelExportUtil.java
  9. 180 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/web/NormativeAuditController.java
  10. 27 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/web/TestController.java
  11. 22 2
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/xml/StandardMapper.xml
  12. 19 3
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/web/StandardController.java
  13. BIN
      src/main/resources/freemarker/excelmodel/normative.xlsx
  14. 1 1
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/designUnit.jsp
  15. 3 0
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/designUnitAgainTwo.jsp
  16. 458 0
      src/main/webapp/webpage/modules/cg/statisticalTable/normative/normative.js
  17. 80 0
      src/main/webapp/webpage/modules/cg/statisticalTable/normative/normative.jsp
  18. 16 0
      src/main/webapp/webpage/modules/cg/test01.jsp
  19. 29 8
      src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/standardList.js
  20. 3 3
      src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/standardList.jsp

+ 7 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/ReserveSummaryProcessMapper.java

@@ -59,4 +59,11 @@ public interface ReserveSummaryProcessMapper extends BaseMapper<ReserveSummaryPr
      * 通过项目名称导出符合条件的数据
      * */
     List<MaterialInfo> findMaterialActiviti(String projectName);
+
+    /**
+     * 根据用户名查出登录名
+     * @param name
+     * @return
+     */
+    String getLoginNameByName(String name);
 }

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

@@ -244,4 +244,7 @@
         cg_material_data
         where projectName = #{projectName}
     </select>
+    <select id="getLoginNameByName" resultType="java.lang.String">
+        SELECT login_name FROM `sys_user` where name = #{name}
+    </select>
 </mapper>

+ 24 - 26
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/service/ReserveSummaryProcessService.java

@@ -37,6 +37,9 @@ import java.util.Map;
 public class ReserveSummaryProcessService extends CrudService<ReserveSummaryProcessMapper, ReserveSummaryProcess> {
 
     @Autowired
+    private ReserveSummaryProcessMapper mapper;
+
+    @Autowired
     private TaskService taskService;
 
     @Autowired
@@ -142,14 +145,17 @@ public class ReserveSummaryProcessService extends CrudService<ReserveSummaryProc
 
         //候选人
         List list = new ArrayList<>();
-        list.add(UserUtils.getByUserName(user.getOwnerProjectManager()).getLoginName());
-        list.add(UserUtils.getByUserName(user.getOwnerReserveFullTime()).getLoginName());
+
+        //根据用户名去数据库中查找登录名
+        String cbzz = mapper.getLoginNameByName(user.getOwnerReserveFullTime());
+        String xmjl = mapper.getLoginNameByName(user.getOwnerProjectManager());
+        list.add(cbzz);
+        list.add(xmjl);
 
         vars.put("person",list);
 
         //指定代理人
-        vars.put("manager",UserUtils.getByUserName(user.getOwnerProjectManager()).getLoginName());
-
+//        vars.put("manager",UserUtils.getByUserName(user.getOwnerProjectManager()).getLoginName());
 
         // 提交流程任务
         complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
@@ -219,21 +225,20 @@ public class ReserveSummaryProcessService extends CrudService<ReserveSummaryProc
         String flag = act.getFlag();
         ReserveProcessProject user = MyActiviUtils.findCgUser(act.getProcInsId());
 
-        //签收
-        /*taskService.claim(act.getTaskId(),UserUtils.getByUserName(user.getOwnerProjectManager()).getId());
-        logger.info(taskService.createTaskQuery().singleResult().getAssignee());
-        act.preUpdate();*/
+        //根据用户名去数据库中查找登录名
+        String loginNameByName = mapper.getLoginNameByName(user.getDesigner());
+
 
         if ("yes".equals(flag)) {
             //通过流程到-设计人员上传预算书、项目建议书/可研报告、设计说明书
-            vars.put("manager", UserUtils.getByUserName(user.getDesigner()).getLoginName());
+            vars.put("manager", loginNameByName);
             vars.put("pass",true);
             vars.put("no",false);
             vars.put("rural",false);
             vars.put("tg",false);
         } else if ("disagree".equals(flag)){
             //不通过-回到上一个流程
-            vars.put("manager", UserUtils.getByUserName(user.getDesigner()).getLoginName());
+            vars.put("manager", loginNameByName);
             vars.put("pass",false);
             vars.put("tg",true);
             vars.put("no",false);
@@ -269,13 +274,6 @@ public class ReserveSummaryProcessService extends CrudService<ReserveSummaryProc
         act.preUpdate();
         // 对不同环节的业务逻辑进行操作
         String taskDefKey = act.getTaskDefKey();
-        //查询出未完成的任务
-        /*List<Task> list = taskService.createTaskQuery().processInstanceId(act.getProcInsId()).list();
-        //将联合审图中未完成的任务设置为完成状态
-        taskService.complete(list.get(0).getId());*/
-        //完成后不显示给该用户
-//        taskService.deleteTask(list.get(0).getId(),true);
-
 
         // 提交流程任务
         complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
@@ -301,15 +299,15 @@ public class ReserveSummaryProcessService extends CrudService<ReserveSummaryProc
 
             //将预算书审前审后数据放入数据库
             BudgetBook budgetBook = new BudgetBook();
-            budgetBook.setProjectReserveId(reserveProcess.getProjectReserveId());
-            budgetBook.setPretrialBudgetTaxInclude(reserveProcess.getPretrialBudgetTaxInclude());
-            budgetBook.setPretrialBudgetTaxNoInclude(reserveProcess.getPretrialBudgetTaxNoInclude());
-            budgetBook.setPretrialSupervisionFeeTaxNoInclude(reserveProcess.getPretrialSupervisionFeeTaxNoInclude());
-            budgetBook.setPretrialDesignFeeTaxNoInclude(reserveProcess.getPretrialDesignFeeTaxNoInclude());
-            budgetBook.setAfterTrialBudgetTaxInclude(reserveProcess.getAfterTrialBudgetTaxInclude());
-            budgetBook.setAfterTrialBudgetTaxNoInclude(reserveProcess.getAfterTrialBudgetTaxNoInclude());
-            budgetBook.setAfterTrialSupervisionFeeTaxNoInclude(reserveProcess.getAfterTrialSupervisionFeeTaxNoInclude());
-            budgetBook.setAfterTrialDesignFeeTaxNoInclude(reserveProcess.getAfterTrialDesignFeeTaxNoInclude());
+            budgetBook.setProjectReserveId("".equals(reserveProcess.getProjectReserveId()) ? null : reserveProcess.getProjectReserveId());
+            budgetBook.setPretrialBudgetTaxInclude("".equals(reserveProcess.getPretrialBudgetTaxInclude()) ? null : reserveProcess.getPretrialBudgetTaxInclude());
+            budgetBook.setPretrialBudgetTaxNoInclude("".equals(reserveProcess.getPretrialBudgetTaxNoInclude()) ? null : reserveProcess.getPretrialBudgetTaxNoInclude());
+            budgetBook.setPretrialSupervisionFeeTaxNoInclude("".equals(reserveProcess.getPretrialSupervisionFeeTaxNoInclude()) ? null : reserveProcess.getPretrialSupervisionFeeTaxNoInclude());
+            budgetBook.setPretrialDesignFeeTaxNoInclude("".equals(reserveProcess.getPretrialDesignFeeTaxNoInclude()) ? null : reserveProcess.getPretrialDesignFeeTaxNoInclude());
+            budgetBook.setAfterTrialBudgetTaxInclude("".equals(reserveProcess.getAfterTrialBudgetTaxInclude()) ? null : reserveProcess.getAfterTrialBudgetTaxInclude());
+            budgetBook.setAfterTrialBudgetTaxNoInclude("".equals(reserveProcess.getAfterTrialBudgetTaxNoInclude()) ? null : reserveProcess.getAfterTrialBudgetTaxNoInclude());
+            budgetBook.setAfterTrialSupervisionFeeTaxNoInclude("".equals(reserveProcess.getAfterTrialSupervisionFeeTaxNoInclude()) ? null : reserveProcess.getAfterTrialSupervisionFeeTaxNoInclude());
+            budgetBook.setAfterTrialDesignFeeTaxNoInclude("".equals(reserveProcess.getAfterTrialDesignFeeTaxNoInclude()) ? null : reserveProcess.getAfterTrialDesignFeeTaxNoInclude());
             //插入前先清空该项目相关的预算书数据
             budgetBookService.deleteByProjectReserveId(budgetBook.getProjectReserveId());
             //插入

+ 380 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/entity/NormativeAudit.java

@@ -9,7 +9,123 @@ import com.jeeplus.core.persistence.DataEntity;
  **/
 public class NormativeAudit extends DataEntity<NormativeAudit> {
 
+    //储备项目基本信息
+    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 blueprint;                //图纸
+    private String budgetBook;               //预算书
+    private String designManual;             //设计说明书
+    private String materialList;             //提资材料清册
+    private String feasibilityReport;        //可研报告
+    private String projectProposal;          //项目建议书
+    private String oldInventoryDemolition;   //拆旧清册
+    private String noStopWorkPlan;           //不停电作业方案/停电作业申报表
+    private String castPlaceApprovalForm;    //土建现浇审批单
+    private String reviewMaterial;           //甲供材优选审核
+    private String aSupplyTob;               //甲供转乙供情况
+    private String templateCorrect;          //预算模板是否正确
+    private String correctApplication;       //定额套用是否正确
+    private String workloadConsistent;       //工作量是否一致
+    private String feeCorrect;               //取费是否正确
+    private String materialSupplyA;          //甲供物资是否正确
+    private String materialSupplyB;          //乙供物资是否正确
+    private String chargeLiveWork;           //带电作业费是否正确
+    private String chargeDemolitionWork;     //拆除工程取费是否正确
+    private String otherProblem;             //其他问题
+    private String designAdjustment;         //是否需要设计调整
+    private String designAdjustmentDate;     //设计调整完成日期
+
+    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;
@@ -18,4 +134,268 @@ public class NormativeAudit extends DataEntity<NormativeAudit> {
     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 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 getBlueprint() {
+        return blueprint;
+    }
+
+    public void setBlueprint(String blueprint) {
+        this.blueprint = blueprint;
+    }
+
+    public String getBudgetBook() {
+        return budgetBook;
+    }
+
+    public void setBudgetBook(String budgetBook) {
+        this.budgetBook = budgetBook;
+    }
+
+    public String getDesignManual() {
+        return designManual;
+    }
+
+    public void setDesignManual(String designManual) {
+        this.designManual = designManual;
+    }
+
+    public String getMaterialList() {
+        return materialList;
+    }
+
+    public void setMaterialList(String materialList) {
+        this.materialList = materialList;
+    }
+
+    public String getFeasibilityReport() {
+        return feasibilityReport;
+    }
+
+    public void setFeasibilityReport(String feasibilityReport) {
+        this.feasibilityReport = feasibilityReport;
+    }
+
+    public String getProjectProposal() {
+        return projectProposal;
+    }
+
+    public void setProjectProposal(String projectProposal) {
+        this.projectProposal = projectProposal;
+    }
+
+    public String getOldInventoryDemolition() {
+        return oldInventoryDemolition;
+    }
+
+    public void setOldInventoryDemolition(String oldInventoryDemolition) {
+        this.oldInventoryDemolition = oldInventoryDemolition;
+    }
+
+    public String getNoStopWorkPlan() {
+        return noStopWorkPlan;
+    }
+
+    public void setNoStopWorkPlan(String noStopWorkPlan) {
+        this.noStopWorkPlan = noStopWorkPlan;
+    }
+
+    public String getCastPlaceApprovalForm() {
+        return castPlaceApprovalForm;
+    }
+
+    public void setCastPlaceApprovalForm(String castPlaceApprovalForm) {
+        this.castPlaceApprovalForm = castPlaceApprovalForm;
+    }
+
+    public String getReviewMaterial() {
+        return reviewMaterial;
+    }
+
+    public void setReviewMaterial(String reviewMaterial) {
+        this.reviewMaterial = reviewMaterial;
+    }
+
+    public String getaSupplyTob() {
+        return aSupplyTob;
+    }
+
+    public void setaSupplyTob(String aSupplyTob) {
+        this.aSupplyTob = aSupplyTob;
+    }
+
+    public String getTemplateCorrect() {
+        return templateCorrect;
+    }
+
+    public void setTemplateCorrect(String templateCorrect) {
+        this.templateCorrect = templateCorrect;
+    }
+
+    public String getCorrectApplication() {
+        return correctApplication;
+    }
+
+    public void setCorrectApplication(String correctApplication) {
+        this.correctApplication = correctApplication;
+    }
+
+    public String getWorkloadConsistent() {
+        return workloadConsistent;
+    }
+
+    public void setWorkloadConsistent(String workloadConsistent) {
+        this.workloadConsistent = workloadConsistent;
+    }
+
+    public String getFeeCorrect() {
+        return feeCorrect;
+    }
+
+    public void setFeeCorrect(String feeCorrect) {
+        this.feeCorrect = feeCorrect;
+    }
+
+    public String getMaterialSupplyA() {
+        return materialSupplyA;
+    }
+
+    public void setMaterialSupplyA(String materialSupplyA) {
+        this.materialSupplyA = materialSupplyA;
+    }
+
+    public String getMaterialSupplyB() {
+        return materialSupplyB;
+    }
+
+    public void setMaterialSupplyB(String materialSupplyB) {
+        this.materialSupplyB = materialSupplyB;
+    }
+
+    public String getChargeLiveWork() {
+        return chargeLiveWork;
+    }
+
+    public void setChargeLiveWork(String chargeLiveWork) {
+        this.chargeLiveWork = chargeLiveWork;
+    }
+
+    public String getChargeDemolitionWork() {
+        return chargeDemolitionWork;
+    }
+
+    public void setChargeDemolitionWork(String chargeDemolitionWork) {
+        this.chargeDemolitionWork = chargeDemolitionWork;
+    }
+
+    public String getOtherProblem() {
+        return otherProblem;
+    }
+
+    public void setOtherProblem(String otherProblem) {
+        this.otherProblem = otherProblem;
+    }
+
+    public String getDesignAdjustment() {
+        return designAdjustment;
+    }
+
+    public void setDesignAdjustment(String designAdjustment) {
+        this.designAdjustment = designAdjustment;
+    }
+
+    public String getDesignAdjustmentDate() {
+        return designAdjustmentDate;
+    }
+
+    public void setDesignAdjustmentDate(String designAdjustmentDate) {
+        this.designAdjustmentDate = designAdjustmentDate;
+    }
 }

+ 52 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/NormativeAuditMapper.java

@@ -0,0 +1,52 @@
+package com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.mapper;
+
+import com.jeeplus.core.persistence.BaseMapper;
+import com.jeeplus.core.persistence.annotation.MyBatisMapper;
+import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.History;
+import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.NormativeAudit;
+
+import java.util.List;
+
+/**
+ * 储备项目规范性审核记录表
+ * @author: 王强
+ * @create: 2022-08-23 10:07
+ **/
+@MyBatisMapper
+public interface NormativeAuditMapper extends BaseMapper<NormativeAudit> {
+
+    /**
+     * 导出数据查询
+     * @param audit
+     * @return
+     */
+    List<NormativeAudit> exportFindList(NormativeAudit audit);
+
+    /**
+     * 根据projectReserveId来判断是否有拆旧清册数据
+     * @param projectReserveId
+     * @return
+     */
+    int getCountByProjectReserveId(String projectReserveId);
+
+    /**
+     * 根据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);
+}

+ 136 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/xml/NormativeAuditMapper.xml

@@ -0,0 +1,136 @@
+<?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.statisticalTable.mapper.NormativeAuditMapper">
+
+    <sql id="reserveManagementColumns">
+        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,
+		b.implementPlan,
+		b.initialImplementBatch as implementBatch,
+		c.drawings as blueprint,
+		c.budgetStatement as budgetBook,
+		c.drawingSpecification as designManual,
+		c.projectProposal as projectProposal,
+		d.preferedCase as reviewMaterial,
+		d.transferSituation as aSupplyTob,
+		d.budgetTemplateCheck as templateCorrect,
+		d.quotaApplicationCheck as correctApplication,
+		d.workLoadCheck as workloadConsistent,
+		d.checkTheFee as feeCorrect,
+		d.supplyCheck as materialSupplyA,
+		d.materialCheck as materialSupplyB,
+		d.liveWorkFeeCheck as chargeLiveWork,
+		d.demolitionEngineeringProblems as chargeDemolitionWork,
+		d.otherProblem as otherProblem
+    </sql>
+
+    <select id="findList" resultType="com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.NormativeAudit">
+        select
+        <include refid="reserveManagementColumns"/>
+        from cg_reserve_process a
+        left join cg_reserve_summary_statistics b
+        on a.projectReserveId = b.projectReserveId
+        left join cg_personnel_activiti c
+        on a.projectReserveId = c.projectReserveId
+        left join cg_feedback_on_budget 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.statisticalTable.entity.NormativeAudit">
+        select
+        <include refid="reserveManagementColumns"/>
+        from cg_reserve_process a
+        left join cg_reserve_summary_statistics b
+        on a.projectReserveId = b.projectReserveId
+        left join cg_personnel_activiti c
+        on a.projectReserveId = c.projectReserveId
+        left join cg_feedback_on_budget 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="get" resultType="com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.NormativeAudit">
+        <include refid="reserveManagementColumns"/>
+        from cg_reserve_process a
+        left join cg_reserve_summary_statistics b
+        on a.projectReserveId = b.projectReserveId
+        left join cg_personnel_activiti c
+        on a.projectReserveId = c.projectReserveId
+        left join cg_feedback_on_budget d
+        on a.projectReserveId = d.projectReserveId
+        where a.id = #{id}
+    </select>
+    <select id="getCountByProjectReserveId" resultType="java.lang.Integer">
+        select count(*) from cg_demolition_list where projectReserveId = #{projectReserveId}
+    </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>
+</mapper>

+ 51 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/service/NormativeAuditService.java

@@ -0,0 +1,51 @@
+package com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.service;
+
+import com.jeeplus.core.persistence.Page;
+import com.jeeplus.core.service.CrudService;
+import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.History;
+import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.NormativeAudit;
+import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.mapper.NormativeAuditMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 储备项目规范性审核记录表
+ * @author: 王强
+ * @create: 2022-08-23 11:01
+ **/
+@Service
+@Transactional(readOnly = true)
+public class NormativeAuditService extends CrudService<NormativeAuditMapper, NormativeAudit> {
+
+    @Autowired
+    private NormativeAuditMapper auditMapper;
+
+    public Page<NormativeAudit> findPage(Page<NormativeAudit> page, NormativeAudit normativeAudit) {
+        Page<NormativeAudit> pageList = super.findPage(page, normativeAudit);
+        return pageList;
+    }
+
+    public List<NormativeAudit> exportFindList(NormativeAudit normativeAudit) {
+        List<NormativeAudit> pageList = auditMapper.exportFindList(normativeAudit);
+        return pageList;
+    }
+
+    public int getCountByProjectReserveId(String projectReserveId){
+        return auditMapper.getCountByProjectReserveId(projectReserveId);
+    }
+
+    public String getByProjectReserveId(String projectReserveId){
+        return auditMapper.getByProjectReserveId(projectReserveId);
+    }
+
+    public List<History> getHistoryByExecuteId(String executeId){
+        return auditMapper.getHistoryByExecuteId(executeId);
+    }
+
+    public String getByExecuteId(String executeId){
+        return auditMapper.getByExecuteId(executeId);
+    }
+}

+ 129 - 4
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/util/ExcelExportUtil.java

@@ -185,7 +185,7 @@ public class ExcelExportUtil {
     }
 
     /**
-     * 导出储备项目概预算统计表信息
+     * 导出储备进度统计表信息
      * @param response
      * @param workbook
      * @param list
@@ -312,7 +312,7 @@ public class ExcelExportUtil {
     }
 
     /**
-     * 导出储备项目概预算统计表信息
+     * 导出储备项目建设规模统计表信息
      * @param response
      * @param workbook
      * @param list
@@ -426,7 +426,7 @@ public class ExcelExportUtil {
     }
 
     /**
-     * 导出储备项目概预算统计表信息
+     * 导出立杆和土建工程量统计信息
      * @param response
      * @param workbook
      * @param list
@@ -666,7 +666,7 @@ public class ExcelExportUtil {
     }
 
     /**
-     * 导出储备项目概预算统计表信息
+     * 导出储备项目拆旧物资汇总表信息
      * @param response
      * @param workbook
      * @param list
@@ -711,4 +711,129 @@ public class ExcelExportUtil {
             e.printStackTrace();
         }
     }
+
+    /**
+     * 导出储备项目规范性审核记录表信息
+     * @param response
+     * @param workbook
+     * @param list
+     */
+    public void exportNormative(HttpServletResponse response, XSSFWorkbook workbook, List<NormativeAudit> list){
+        try {
+            int index = 1;//第一列序号
+            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,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); //设计调整完成日期
+
+
+                NormativeAudit audit = list.get(i);
+
+                cell0.setCellValue(String.valueOf(index++));
+                cell1.setCellValue(audit.getProjectYear());
+                cell2.setCellValue(audit.getProjectNature());
+                cell3.setCellValue(audit.getDemandUnit());
+                cell4.setCellValue(audit.getDistrict());
+                cell5.setCellValue(audit.getProjectGroup());
+                cell6.setCellValue(audit.getReserveBatches());
+                cell7.setCellValue(audit.getBlockSupply());
+                cell8.setCellValue(audit.getGridNumber());
+                cell9.setCellValue(audit.getCellNumber());
+                cell10.setCellValue(audit.getProjectReserveId());
+                cell11.setCellValue(audit.getProjectName());
+                cell12.setCellValue(audit.getConstructionNecessityAndContent());
+                cell13.setCellValue(audit.getSubstationName());
+                cell14.setCellValue(audit.getCircuitName());
+                cell15.setCellValue(audit.getNetRackProjectDivide());
+                cell16.setCellValue(audit.getRequirementType());
+
+                String costEstimateStr= audit.getCostEstimate().toString();
+                if(StringUtils.isNotBlank(costEstimateStr)){
+                    cell17.setCellValue(Double.parseDouble(costEstimateStr));
+                }
+                cell18.setCellValue(audit.getBasicRemarks());
+                cell19.setCellValue(audit.getReserveProgress());
+                cell20.setCellValue(audit.getImplementPlan());
+                cell21.setCellValue(audit.getImplementBatch());
+                cell22.setCellValue(audit.getBlueprint());
+                cell23.setCellValue(audit.getBudgetBook());
+                cell24.setCellValue(audit.getDesignManual());
+                cell25.setCellValue(audit.getMaterialList());
+                cell26.setCellValue(audit.getFeasibilityReport());
+                cell27.setCellValue(audit.getProjectProposal());
+                cell28.setCellValue(audit.getOldInventoryDemolition());
+                cell29.setCellValue(audit.getNoStopWorkPlan());
+                cell30.setCellValue(audit.getCastPlaceApprovalForm());
+                cell31.setCellValue(audit.getReviewMaterial());
+                cell32.setCellValue(audit.getaSupplyTob());
+                cell33.setCellValue(audit.getTemplateCorrect());
+                cell34.setCellValue(audit.getCorrectApplication());
+                cell35.setCellValue(audit.getWorkloadConsistent());
+                cell36.setCellValue(audit.getFeeCorrect());
+                cell37.setCellValue(audit.getMaterialSupplyA());
+                cell38.setCellValue(audit.getMaterialSupplyB());
+                cell39.setCellValue(audit.getChargeLiveWork());
+                cell40.setCellValue(audit.getChargeDemolitionWork());
+                cell41.setCellValue(audit.getOtherProblem());
+                cell42.setCellValue(audit.getDesignAdjustment());
+                cell43.setCellValue(audit.getDesignAdjustmentDate());
+
+
+            }
+
+            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();
+        }
+    }
 }

+ 180 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/web/NormativeAuditController.java

@@ -0,0 +1,180 @@
+package com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.web;
+
+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.History;
+import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.NormativeAudit;
+import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.service.NormativeAuditService;
+import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.util.ExcelExportUtil;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+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 javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 储备项目规范性审核记录表
+ * @author: 王强
+ * @create: 2022-08-23 11:03
+ **/
+@Controller
+@RequestMapping(value = "${adminPath}/cg/reservemanagementcenter/normative")
+public class NormativeAuditController extends BaseController {
+
+    @Autowired
+    private NormativeAuditService auditService;
+
+    @ModelAttribute
+    public NormativeAudit get(@RequestParam(required = false) String id) {
+        NormativeAudit entity = null;
+        if (StringUtils.isNotBlank(id)) {
+            entity = auditService.get(id);
+        }
+        if (entity == null) {
+            entity = new NormativeAudit();
+        }
+        return entity;
+    }
+
+    /**
+     * 储备项目规范性审核记录表页面
+     * @param normativeAudit
+     * @param model
+     * @return
+     */
+    @RequiresPermissions("cg:reservemanagementcenter:normative:list")
+    @RequestMapping(value = "normativeList")
+    public String normativeList(NormativeAudit normativeAudit, Model model) {
+        model.addAttribute("normativeAudit", normativeAudit);
+        return "modules/cg/statisticalTable/normative/normative";
+    }
+
+    /**
+     * 特殊物资统计数据列表
+     * @param normativeAudit
+     * @param request
+     * @param response
+     * @param model
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("cg:reservemanagementcenter:normative:list")
+    @RequestMapping(value = "list")
+    public Map<String, Object> basicData(NormativeAudit normativeAudit, HttpServletRequest request, HttpServletResponse response, Model model) {
+
+        Page<NormativeAudit> page = auditService.findPage(new Page<NormativeAudit>(request, response), normativeAudit);
+        List<NormativeAudit> list = page.getList();
+        List<NormativeAudit> auditList = new ArrayList<>();
+        NormativeAudit audit = null;
+        for (int i=0;i<list.size();i++){
+            audit = list.get(i);
+            //进行赋值操作
+            //根据projectReserveId查出流程表的proc_ins_id
+            String procInsId = auditService.getByProjectReserveId(audit.getProjectReserveId());
+            //根据procInsId查出历史流程名称和时间
+            List<History> histories = auditService.getHistoryByExecuteId(procInsId);
+            //当size>0时待办有历史流程,
+            if (histories.size()>0){
+                //根据proc_ins_id去运行时任务节点表(act_ru_task)中查出当前流程名称
+                String name = auditService.getByExecuteId(procInsId);
+                audit.setReserveProgress(name);
+            }
+            //设置完整性校核相关值
+            audit.setBlueprint(audit.getBlueprint() ==null ? "" : audit.getBlueprint());
+            audit.setBudgetBook(audit.getBudgetBook() ==null ? "" : audit.getBudgetBook());
+            audit.setDesignManual(audit.getDesignManual() ==null ? "" : audit.getDesignManual());
+
+            audit.setProjectProposal(audit.getProjectProposal() ==null ? "" : audit.getProjectProposal());
+            //设置拆旧清册
+            int count = auditService.getCountByProjectReserveId(audit.getProjectReserveId());
+            audit.setOldInventoryDemolition(count >0 ? "" : null);
+            //设置技经驳回意见
+            audit.setReviewMaterial(audit.getReviewMaterial() == null ? "是" : "否(" + audit.getReviewMaterial() + ")");
+            audit.setaSupplyTob(audit.getaSupplyTob() == null ? "是" : "否(" + audit.getaSupplyTob() + ")");
+            audit.setTemplateCorrect(audit.getTemplateCorrect() == null ? "是" : "否(" + audit.getTemplateCorrect() + ")");
+            audit.setCorrectApplication(audit.getCorrectApplication() == null ? "是" : "否(" + audit.getCorrectApplication() + ")");
+            audit.setWorkloadConsistent(audit.getWorkloadConsistent() == null ? "是" : "否(" + audit.getWorkloadConsistent() + ")");
+            audit.setFeeCorrect(audit.getFeeCorrect() == null ? "是" : "否(" + audit.getFeeCorrect() + ")");
+            audit.setMaterialSupplyA(audit.getMaterialSupplyA() == null ? "是" : "否(" + audit.getMaterialSupplyA() + ")");
+            audit.setMaterialSupplyB(audit.getMaterialSupplyB() == null ? "是" : "否(" + audit.getMaterialSupplyB() + ")");
+            audit.setChargeLiveWork(audit.getChargeLiveWork() == null ? "是" : "否(" + audit.getChargeLiveWork() + ")");
+            audit.setChargeDemolitionWork(audit.getChargeDemolitionWork() == null ? "是" : "否(" + audit.getChargeDemolitionWork() + ")");
+            audit.setOtherProblem(audit.getOtherProblem() == null ? "是" : "否(" + audit.getOtherProblem() + ")");
+
+            auditList.add(audit);
+        }
+        page.setList(auditList);
+        return getBootstrapData(page);
+    }
+
+    //导出excel
+    @ResponseBody
+    @RequiresPermissions("cg:reservemanagementcenter:normative:export")
+    @RequestMapping(value = "export")
+    public void exportExcel(NormativeAudit normativeAudit, HttpServletRequest request, HttpServletResponse response) {
+        List<NormativeAudit> list = auditService.exportFindList(normativeAudit);
+
+        List<NormativeAudit> auditList = new ArrayList<>();
+        NormativeAudit audit = null;
+        for (int i=0;i<list.size();i++){
+            audit = list.get(i);
+            //进行赋值操作
+            //根据projectReserveId查出流程表的proc_ins_id
+            String procInsId = auditService.getByProjectReserveId(audit.getProjectReserveId());
+            //根据procInsId查出历史流程名称和时间
+            List<History> histories = auditService.getHistoryByExecuteId(procInsId);
+            //当size>0时待办有历史流程,
+            if (histories.size()>0){
+                //根据proc_ins_id去运行时任务节点表(act_ru_task)中查出当前流程名称
+                String name = auditService.getByExecuteId(procInsId);
+                audit.setReserveProgress(name);
+            }
+            //设置完整性校核相关值
+            audit.setBlueprint(audit.getBlueprint() ==null ? "" : audit.getBlueprint());
+            audit.setBudgetBook(audit.getBudgetBook() ==null ? "" : audit.getBudgetBook());
+            audit.setDesignManual(audit.getDesignManual() ==null ? "" : audit.getDesignManual());
+
+            audit.setProjectProposal(audit.getProjectProposal() ==null ? "" : audit.getProjectProposal());
+            //设置拆旧清册
+            int count = auditService.getCountByProjectReserveId(audit.getProjectReserveId());
+            audit.setOldInventoryDemolition(count >0 ? "" : null);
+            //设置技经驳回意见
+            audit.setReviewMaterial(audit.getReviewMaterial() == null ? "是" : "否(" + audit.getReviewMaterial() + ")");
+            audit.setaSupplyTob(audit.getaSupplyTob() == null ? "是" : "否(" + audit.getaSupplyTob() + ")");
+            audit.setTemplateCorrect(audit.getTemplateCorrect() == null ? "是" : "否(" + audit.getTemplateCorrect() + ")");
+            audit.setCorrectApplication(audit.getCorrectApplication() == null ? "是" : "否(" + audit.getCorrectApplication() + ")");
+            audit.setWorkloadConsistent(audit.getWorkloadConsistent() == null ? "是" : "否(" + audit.getWorkloadConsistent() + ")");
+            audit.setFeeCorrect(audit.getFeeCorrect() == null ? "是" : "否(" + audit.getFeeCorrect() + ")");
+            audit.setMaterialSupplyA(audit.getMaterialSupplyA() == null ? "是" : "否(" + audit.getMaterialSupplyA() + ")");
+            audit.setMaterialSupplyB(audit.getMaterialSupplyB() == null ? "是" : "否(" + audit.getMaterialSupplyB() + ")");
+            audit.setChargeLiveWork(audit.getChargeLiveWork() == null ? "是" : "否(" + audit.getChargeLiveWork() + ")");
+            audit.setChargeDemolitionWork(audit.getChargeDemolitionWork() == null ? "是" : "否(" + audit.getChargeDemolitionWork() + ")");
+            audit.setOtherProblem(audit.getOtherProblem() == null ? "是" : "否(" + audit.getOtherProblem() + ")");
+
+            auditList.add(audit);
+        }
+
+        //生成序列号
+        int i = 1;
+        for (NormativeAudit s : auditList) {
+            s.setId(String.valueOf(i));
+            i++;
+        }
+
+        ExcelExportUtil util = ExcelExportUtil.getOne();
+        XSSFWorkbook workbook = util.getWorkbook("normative");
+        util.exportNormative(response,workbook,auditList);
+    }
+
+}

+ 27 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/web/TestController.java

@@ -0,0 +1,27 @@
+package com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.web;
+
+import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.NormativeAudit;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ * @author: 王强
+ * @create: 2022-08-23 16:20
+ **/
+@Controller
+@RequestMapping("/test")
+public class TestController {
+
+    /**
+     * 储备项目规范性审核记录表页面
+     * @param normativeAudit
+     * @param model
+     * @return
+     */
+    @RequestMapping(value = "normativeList")
+    public String normativeList(NormativeAudit normativeAudit, Model model) {
+//        model.addAttribute("normativeAudit", normativeAudit);
+        return "modules/cg/test01";
+    }
+}

+ 22 - 2
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/xml/StandardMapper.xml

@@ -47,7 +47,7 @@
         where a.id = #{id}
     </select>
 
-    <select id="findList"
+    <!--<select id="findList"
             resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.Standard">
         select
         <include refid="standardColumns"/>
@@ -66,6 +66,26 @@
                 ORDER BY a.update_date DESC
             </otherwise>
         </choose>
+    </select>-->
+    <select id="findList"
+            resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.Standard">
+        select
+        <include refid="standardChildColumns"/>
+        from cb_standard_detail a
+        <where>
+            a.del_flag = 0
+            <if test="projectCategory!=null and projectCategory!=''">
+                and a.projectCategory like concat('%', #{projectCategory}, '%')
+            </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="findChildList"
@@ -194,4 +214,4 @@
     </update>
 
 
-</mapper>
+</mapper>

+ 19 - 3
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/web/StandardController.java

@@ -71,6 +71,22 @@ public class StandardController extends BaseController {
      * @param model
      * @return
      */
+    /*@ResponseBody
+    @RequiresPermissions("sg:reserve:standard:list")
+    @RequestMapping(value = "data")
+    public Map<String, Object> basicData(Standard standard, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<Standard> page = standardService.findPage(new Page<Standard>(request, response), standard);
+        return getBootstrapData(page);
+    }*/
+
+    /**
+     * 物料规范信息数据列表
+     * @param standard
+     * @param request
+     * @param response
+     * @param model
+     * @return
+     */
     @ResponseBody
     @RequiresPermissions("sg:reserve:standard:list")
     @RequestMapping(value = "data")
@@ -144,7 +160,7 @@ public class StandardController extends BaseController {
         return j;
     }
 
-   
+
 
     /**
      * 经理导入Excel数据
@@ -198,7 +214,7 @@ public class StandardController extends BaseController {
         return j;
     }
 
-   
+
     /**
      * 下载导入模板
      */
@@ -219,6 +235,6 @@ public class StandardController extends BaseController {
         return j;
     }
 
-    
+
 
 }

BIN
src/main/resources/freemarker/excelmodel/normative.xlsx


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

@@ -118,7 +118,7 @@
 					btn: ['确定', '关闭'],
 					btn1: function(index, layero){
 						var body = top.layer.getChildFrame('body', index);
-						var materialCode = body.find('#materialCode');
+						var materialCode = body.find('#projectName');
 
 
 						jp.post("${ctx}/cg/reservemanagementcenter/process/saveJgc?materialCode=" + materialCode,informationTable.serialize(),function(data){

+ 3 - 0
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/designUnitAgainTwo.jsp

@@ -50,6 +50,9 @@
 									"projectReserveId":projectReserveId,
 									"projectName":projectName,
 									"drawings":drawings,
+									"budgetStatement":budgetStatement,
+									"projectProposal":projectProposal,
+									"drawingSpecification":drawingSpecification,
 									"demolition":demolition,
 									"comment": window.encodeURI(message)
 								},

+ 458 - 0
src/main/webapp/webpage/modules/cg/statisticalTable/normative/normative.js

@@ -0,0 +1,458 @@
+<%@ 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: 5,
+        //可供选择的每页的行数(*)
+        pageList: [5, 10, 25, 50, 100],
+        //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+        url: "${ctx}/cg/reservemanagementcenter/normative/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,
+
+                },
+                {
+                    field: 'projectYear',
+                    width: 80,
+                    title: '项目年份',
+                }
+                , {
+                    field: 'projectNature',
+                    width:80,
+                    title: '项目性质',
+
+                },{
+                    field: 'demandUnit',
+                    width:80,
+                    title: '需求单位',
+
+                },{
+                    field: 'district',
+                    width:60,
+                    title: '区域',
+
+                },{
+                    field: 'projectGroup',
+                    width:80,
+                    title: '项目分组',
+
+                },{
+                    field: 'reserveBatches',
+                    width:80,
+                    title: '储备批次',
+
+                },{
+                    field: 'blockSupply',
+                    width:80,
+                    title: '供电区域',
+
+                },{
+                    field: 'gridNumber',
+                    width:100,
+                    title: '网格编号',
+
+                },{
+                    field: 'cellNumber',
+                    width:100,
+                    title: '单元格编号',
+
+                },{
+                    field: 'projectReserveId',
+                    width:150,
+                    title: '项目储备编号',
+
+                    /*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',
+                    width:200,
+                    title: '项目名称',
+
+                },{
+                    field: 'constructionNecessityAndContent',
+                    width:200,
+                    title: '建设必要性及内容',
+
+                },{
+                    field: 'substationName',
+                    width:100,
+                    title: '变电站名称',
+
+                },{
+                    field: 'circuitName',
+                    width:80,
+                    title: '线路名称',
+
+                },{
+                    field: 'netRackProjectDivide',
+                    width:80,
+                    title: '网架项目<br>划分',
+
+                },{
+                    field: 'requirementType',
+                    width:80,
+                    title: '需求类型',
+
+                },{
+                    field: 'costEstimate',
+                    width:80,
+                    title: '费用估算',
+
+                },{
+                    field: 'basicRemarks',
+                    width:200,
+                    title: '备注',
+                },{
+                    field: 'reserveProgress',
+                    width:80,
+                    title: '储备进度',
+                },{
+                    field: 'implementPlan',
+                    width:80,
+                    title: '是否纳入</br>实施计划',
+                },{
+                    field: 'implementBatch',
+                    width:80,
+                    title: '初定实施</br>批次',
+                },{
+                field: 'blueprint',
+                width:80,
+                title: '图纸',
+            },{
+                field: 'budgetBook',
+                width:80,
+                title: '预算书',
+            },{
+                field: 'designManual',
+                width:90,
+                title: '设计说明书',
+            },{
+                field: 'materialList',
+                width:110,
+                title: '提资材料清册',
+            },{
+                field: 'feasibilityReport',
+                width:80,
+                title: '可研报告',
+            },{
+                field: 'projectProposal',
+                width:90,
+                title: '项目建议书',
+            },{
+                field: 'oldInventoryDemolition',
+                width:80,
+                title: '拆旧清册',
+            },{
+                field: 'noStopWorkPlan',
+                width:100,
+                title: '不停电作业<br>方案',
+            },{
+                field: 'castPlaceApprovalForm',
+                width:100,
+                title: '土建现浇<br>审批单',
+            },{
+                field: 'reviewMaterial',
+                width:100,
+                title: '甲供材<br>优选审核',
+            },{
+                field: 'aSupplyTob',
+                width:100,
+                title: '甲供转<br>乙供情况',
+            },{
+                field: 'templateCorrect',
+                width:100,
+                title: '预算模板<br>是否正确',
+            },{
+                field: 'correctApplication',
+                width:100,
+                title: '定额套用<br>是否正确',
+            },{
+                field: 'workloadConsistent',
+                width:100,
+                title: '工作量<br>是否一致',
+            },{
+                field: 'feeCorrect',
+                width:110,
+                title: '取费是否正确',
+            },{
+                field: 'materialSupplyA',
+                width:100,
+                title: '甲供物资<br>是否正确',
+            },{
+                field: 'materialSupplyB',
+                width:100,
+                title: '乙供物资<br>是否正确',
+            },{
+                field: 'chargeLiveWork',
+                width:100,
+                title: '带电作业费<br>是否正确',
+            },{
+                field: 'chargeDemolitionWork',
+                width:100,
+                title: '拆除工程取费<br>是否正确',
+            },{
+                field: 'otherProblem',
+                width:100,
+                title: '其他问题',
+            },{
+                field: 'designAdjustment',
+                width:100,
+                title: '是否需要<br>设计调整',
+            },{
+                field: 'designAdjustmentDate',
+                width:100,
+                title: '设计调整<br>完成日期',
+            },
+        ]
+    });
+
+
+    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/normative/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/reserveManage/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();
+        console.log(projectReserveId)
+        jp.downloadFile('${ctx}/cg/reservemanagementcenter/normative/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"
+    });
+});
+
+function getIdSelections() {
+    return $.map($("#projectTable").bootstrapTable('getSelections'), function (row) {
+        return row.id
+    });
+}
+
+
+//刷新列表
+function refresh() {
+    $('#projectTable').bootstrapTable('refresh');
+}
+
+function add() {
+    jp.openSaveDialog('新增储备项目基本信息', "${ctx}/cg/reservemanagementcenter/reserveManage/form", '800px', '500px');
+}
+
+
+function edit(id) {//没有权限时,不显示确定按钮
+    if (id == undefined) {
+        id = getIdSelections();
+    }
+    jp.openSaveDialog('编辑储备项目基本信息', "${ctx}/cg/reservemanagementcenter/reserveManage/form?id=" + id, '800px', '500px');
+}
+
+function jlEdit(id) {//没有权限时,不显示确定按钮
+    if (id == undefined) {
+        id = getIdSelections();
+    }
+    jp.openSaveDialog('编辑储备项目基本信息', "${ctx}/cg/reservemanagementcenter/reserveManage/jlEdit?id=" + id, '800px', '500px');
+}
+
+function view(id) {//没有权限时,不显示确定按钮
+    if (id == undefined) {
+        id = getIdSelections();
+    }
+    jp.openViewDialog('查看储备项目基本信息', "${ctx}/cg/reservemanagementcenter/reserveManage/view?id=" + id, '800px', '500px');
+}
+
+function deleteAll(){
+
+    jp.confirm('确认要删除该储备项目基本信息吗?', function(){
+        jp.loading();
+        jp.get("${ctx}/cg/reservemanagementcenter/budgetStats/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>

+ 80 - 0
src/main/webapp/webpage/modules/cg/statisticalTable/normative/normative.jsp

@@ -0,0 +1,80 @@
+<%@ 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="normative.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;
+		}
+	</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="normativeAudit" 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:budgetStats:del">
+				<button id="remove" class="btn btn-danger" onclick="deleteAll()">
+					<i class="glyphicon glyphicon-remove"></i> 删除
+				</button>
+			</shiro:hasPermission>--%>
+			<%--<shiro:hasPermission name="cg:reservemanagementcenter:budgetStats:import">
+				<button id="btnImport" class="btn btn-info">
+					<i class="fa fa-folder-open-o"></i> 导入
+				</button>
+			</shiro:hasPermission>--%>
+
+			<shiro:hasPermission name="cg:reservemanagementcenter:normative: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>

+ 16 - 0
src/main/webapp/webpage/modules/cg/test01.jsp

@@ -0,0 +1,16 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: DM
+  Date: 2022/8/23
+  Time: 16:19
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <title>Title</title>
+</head>
+<body>
+    <h1>测试获取子页面数据</h1>
+</body>
+</html>

+ 29 - 8
src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/standardList.js

@@ -21,7 +21,7 @@
             showPaginationSwitch: true,
             //最低显示2行
             minimumCountColumns: 2,
-            detailView: true,
+            // detailView: true,
             //是否显示行间隔色
             striped: true,
             //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
@@ -79,7 +79,27 @@
             onShowSearch: function () {
                 $("#search-collapse").slideToggle();
             },
-            columns: [
+            columns:
+                [
+                    {
+                        checkbox: true,
+                        width:36,
+
+                    },{
+                        field: 'projectCategory',
+                        width: 65,
+                        title: '项目类别',
+                    },{
+                        field: 'materialCode',
+                        width: 65,
+                        title: '物料编码',
+                    },{
+                        field: 'materialDescription',
+                        width: 65,
+                        title: '物料描述',
+                    },
+                ]
+            /*columns: [
                 {
                 checkbox: true
                 },{
@@ -97,14 +117,14 @@
                         return jp.dateFormat(value,"yyyy-MM-dd");
                     }
                 }
-            ],
-            onExpandRow: function (index, row, $detail) {
+            ],*/
+            /*onExpandRow: function (index, row, $detail) {
                 initSubTable(index, row, $detail);
-            }
+            }*/
     });
 
         //初始化子表格(无线循环)
-        initSubTable = function (index, row, $detail) {
+        /*initSubTable = function (index, row, $detail) {
             var projectCategory = row.projectCategory;
             var cur_table = $detail.html('<table></table>').find('table');
             $(cur_table).bootstrapTable({
@@ -137,7 +157,8 @@
                     width: 390,
                 }]
             });
-        };
+        };*/
+
 
         if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端
             $('#dataTable').bootstrapTable("toggleView");
@@ -245,4 +266,4 @@ function view(id) {//没有权限时,不显示确定按钮
     }
     jp.openViewDialog('查看', "${ctx}/sg/managementCenter/standard/form?id=" + id, '800px', '500px');
 }
-</script>
+</script>

+ 3 - 3
src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/standardList.jsp

@@ -55,12 +55,12 @@
 
             <!-- 工具栏 -->
             <div id="toolbar">
-                <button id="open" class="btn btn-primary" >
+                <%--<button id="open" class="btn btn-primary" >
                     <i class="glyphicon glyphicon-list"></i> 全部展开
                 </button>
                 <button id="close" class="btn btn-primary">
                     <i class="glyphicon glyphicon-minus"></i> 全部折叠
-                </button>
+                </button>--%>
                 <shiro:hasPermission name="sg:reserve:standard:add">
                     <button id="add" class="btn btn-primary" onclick="add()">
                         <i class="glyphicon glyphicon-plus"></i> 新建
@@ -89,4 +89,4 @@
     </div>
 </div>
 </body>
-</html>
+</html>