ソースを参照

汇总导入导出,方案交底结论拆分

lem 4 年 前
コミット
a96b734a52
26 ファイル変更11753 行追加465 行削除
  1. 0 1
      src/main/java/com/jeeplus/modules/filing/basicInformation/web/BasicInformationController.java
  2. 19 19
      src/main/java/com/jeeplus/modules/filing/earlyEngineering/entity/EarlyEngineering.java
  3. 1376 92
      src/main/java/com/jeeplus/modules/filing/filingImages/service/FilingImagesService.java
  4. 23 0
      src/main/java/com/jeeplus/modules/filing/filingImages/web/FilingImagesController.java
  5. 2250 0
      src/main/java/com/jeeplus/modules/filing/summary/entity/Summary.java
  6. 129 0
      src/main/java/com/jeeplus/modules/filing/summary/mapper/SummaryMapper.java
  7. 1136 0
      src/main/java/com/jeeplus/modules/filing/summary/mapper/xml/SummaryMapper.xml
  8. 230 0
      src/main/java/com/jeeplus/modules/filing/summary/service/SummaryService.java
  9. 322 0
      src/main/java/com/jeeplus/modules/filing/summary/web/SummaryController.java
  10. 464 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/entity/ExportScheme.java
  11. 34 3
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/entity/ReserveManagement.java
  12. 25 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/ReserveManagementMapper.java
  13. 226 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/xml/ReserveManagementMapper.xml
  14. 28 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/service/ReserveManagementService.java
  15. 127 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/utils/ReserveExportUtil.java
  16. 1 1
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/utils/ReserveManagementProUtil.java
  17. 104 14
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/web/ReserveManagementController.java
  18. 1312 0
      src/main/webapp/webpage/modules/filing/summary/childForm.jsp
  19. 1396 0
      src/main/webapp/webpage/modules/filing/summary/summaryForm.jsp
  20. 1634 0
      src/main/webapp/webpage/modules/filing/summary/summaryList.js
  21. 87 0
      src/main/webapp/webpage/modules/filing/summary/summaryList.jsp
  22. 194 0
      src/main/webapp/webpage/modules/filing/summary/updateForm.jsp
  23. 519 0
      src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/disClosureReserveModuleList.js
  24. 78 0
      src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/disClosureReserveModuleList.jsp
  25. 35 331
      src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/reserveManagementInformation.js
  26. 4 4
      src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/reserveManagementInformation.jsp

+ 0 - 1
src/main/java/com/jeeplus/modules/filing/basicInformation/web/BasicInformationController.java

@@ -47,7 +47,6 @@ public class BasicInformationController extends BaseController {
 		BasicInformation entity = null;
 		if (StringUtils.isNotBlank(id)){
 			entity = basicInformationService.get(id);
-			entity = basicInformationService.get(id);
 		}
 		if (entity == null){
 			entity = new BasicInformation();

+ 19 - 19
src/main/java/com/jeeplus/modules/filing/earlyEngineering/entity/EarlyEngineering.java

@@ -1133,7 +1133,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.redLineLand = redLineLand;
     }
 
-    @ExcelField(title="宗地图", align=2, sort=8)
+    @ExcelField(title="宗地图", align=2, sort=54)
     public String getZongMap() {
         return zongMap;
     }
@@ -1142,7 +1142,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.zongMap = zongMap;
     }
 
-    @ExcelField(title="勘察合同备案表(变电站)", align=2, sort=54)
+    @ExcelField(title="勘察合同备案表(变电站)", align=2, sort=55)
     public String getRecordSurvey() {
         return recordSurvey;
     }
@@ -1151,7 +1151,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.recordSurvey = recordSurvey;
     }
 
-    @ExcelField(title="设计合同备案表(变电站)", align=2, sort=55)
+    @ExcelField(title="设计合同备案表(变电站)", align=2, sort=56)
     public String getRecordDesign() {
         return recordDesign;
     }
@@ -1160,7 +1160,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.recordDesign = recordDesign;
     }
 
-    @ExcelField(title="施工合同备案表(变电站)", align=2, sort=56)
+    @ExcelField(title="施工合同备案表(变电站)", align=2, sort=57)
     public String getRecordContract() {
         return recordContract;
     }
@@ -1169,7 +1169,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.recordContract = recordContract;
     }
 
-    @ExcelField(title="监理合同备案表(变电站)", align=2, sort=57)
+    @ExcelField(title="监理合同备案表(变电站)", align=2, sort=58)
     public String getSupervisionRecord() {
         return supervisionRecord;
     }
@@ -1178,7 +1178,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.supervisionRecord = supervisionRecord;
     }
 
-    @ExcelField(title="岩土勘察报告审查合格意见(变电站)", align=2, sort=58)
+    @ExcelField(title="岩土勘察报告审查合格意见(变电站)", align=2, sort=59)
     public String getQulifiedOpinions() {
         return qulifiedOpinions;
     }
@@ -1187,7 +1187,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.qulifiedOpinions = qulifiedOpinions;
     }
 
-    @ExcelField(title="施工图审查合格意见(变电站)", align=2, sort=59)
+    @ExcelField(title="施工图审查合格意见(变电站)", align=2, sort=60)
     public String getConstructionComments() {
         return constructionComments;
     }
@@ -1196,7 +1196,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.constructionComments = constructionComments;
     }
 
-    @ExcelField(title="施工图审查合格证(变电站)", align=2, sort=60)
+    @ExcelField(title="施工图审查合格证(变电站)", align=2, sort=61)
     public String getConstructionDrawing() {
         return constructionDrawing;
     }
@@ -1205,7 +1205,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.constructionDrawing = constructionDrawing;
     }
 
-    @ExcelField(title="抗震设防审查证书(变电站)", align=2, sort=61)
+    @ExcelField(title="抗震设防审查证书(变电站)", align=2, sort=62)
     public String getSeismicReview() {
         return seismicReview;
     }
@@ -1214,7 +1214,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.seismicReview = seismicReview;
     }
 
-    @ExcelField(title="规划放线报告(变电站)", align=2, sort=62)
+    @ExcelField(title="规划放线报告(变电站)", align=2, sort=63)
     public String getPlanningSetting() {
         return planningSetting;
     }
@@ -1223,7 +1223,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.planningSetting = planningSetting;
     }
 
-    @ExcelField(title="安监申报书、备案表(变电站)", align=2, sort=63)
+    @ExcelField(title="安监申报书、备案表(变电站)", align=2, sort=64)
     public String getSafetyRecord() {
         return safetyRecord;
     }
@@ -1232,7 +1232,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.safetyRecord = safetyRecord;
     }
 
-    @ExcelField(title="质监申报书、备案表(变电站)", align=2, sort=64)
+    @ExcelField(title="质监申报书、备案表(变电站)", align=2, sort=65)
     public String getQualityRecord() {
         return qualityRecord;
     }
@@ -1241,7 +1241,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.qualityRecord = qualityRecord;
     }
 
-    @ExcelField(title="施工许可证", align=2, sort=20)
+    @ExcelField(title="施工许可证", align=2, sort=66)
     public String getConstructionPermit() {
         return constructionPermit;
     }
@@ -1250,7 +1250,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.constructionPermit = constructionPermit;
     }
 
-    @ExcelField(title="规划竣工测绘现状图及管线、绿化、比较图(变电站)", align=2, sort=65)
+    @ExcelField(title="规划竣工测绘现状图及管线、绿化、比较图(变电站)", align=2, sort=67)
     public String getPlanBuiltMapping() {
         return planBuiltMapping;
     }
@@ -1259,7 +1259,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.planBuiltMapping = planBuiltMapping;
     }
 
-    @ExcelField(title="质监竣工验收意见(变电站)", align=2, sort=66)
+    @ExcelField(title="质监竣工验收意见(变电站)", align=2, sort=68)
     public String getQualityAcceptance() {
         return qualityAcceptance;
     }
@@ -1268,7 +1268,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.qualityAcceptance = qualityAcceptance;
     }
 
-    @ExcelField(title="城建档案接收合格证明(变电站)", align=2, sort=67)
+    @ExcelField(title="城建档案接收合格证明(变电站)", align=2, sort=69)
     public String getUrbanArchives() {
         return urbanArchives;
     }
@@ -1277,7 +1277,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.urbanArchives = urbanArchives;
     }
 
-    @ExcelField(title="竣工备案表(变电站)", align=2, sort=68)
+    @ExcelField(title="竣工备案表(变电站)", align=2, sort=70)
     public String getCompletionRecord() {
         return completionRecord;
     }
@@ -1286,7 +1286,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.completionRecord = completionRecord;
     }
 
-    @ExcelField(title="房产测绘报告", align=2, sort=69)
+    @ExcelField(title="房产测绘报告", align=2, sort=71)
     public String getRealEstate() {
         return realEstate;
     }
@@ -1295,7 +1295,7 @@ public class EarlyEngineering extends DataEntity<EarlyEngineering> {
         this.realEstate = realEstate;
     }
 
-    @ExcelField(title="宗地复测报告", align=2, sort=70)
+    @ExcelField(title="宗地复测报告", align=2, sort=72)
     public String getReportOnLang() {
         return reportOnLang;
     }

ファイルの差分が大きいため隠しています
+ 1376 - 92
src/main/java/com/jeeplus/modules/filing/filingImages/service/FilingImagesService.java


+ 23 - 0
src/main/java/com/jeeplus/modules/filing/filingImages/web/FilingImagesController.java

@@ -417,4 +417,27 @@ public class FilingImagesController extends BaseController {
 		}
 		return "redirect:"+Global.getAdminPath()+"/filing/constructionStage/securityManagment";
 	}
+
+
+	/**
+	 * 汇总相应文件批量下载并压缩
+	 */
+	@RequestMapping(value = "exportSummary")
+	public String exportSummary(HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
+		String listIds = request.getParameter("ids");
+		List<String> idList = new ArrayList<>();
+		if (null != listIds && !"".equals(listIds)) {
+			idList = Arrays.asList(listIds.split(","));
+		} else {
+			idList = basicInformationService.findAllId();
+		}
+		try {
+			String filePath = filingImagesService.exportSummary(idList);
+			filingImagesService.downloadZipFile(filePath,response);
+			return null;
+		} catch (Exception e) {
+			addMessage(redirectAttributes, "批量下载项目文件失败!");
+		}
+		return "redirect:"+Global.getAdminPath()+"/filing/summary/";
+	}
 }

ファイルの差分が大きいため隠しています
+ 2250 - 0
src/main/java/com/jeeplus/modules/filing/summary/entity/Summary.java


+ 129 - 0
src/main/java/com/jeeplus/modules/filing/summary/mapper/SummaryMapper.java

@@ -0,0 +1,129 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.filing.summary.mapper;
+
+import com.jeeplus.core.persistence.BaseMapper;
+import com.jeeplus.core.persistence.annotation.MyBatisMapper;
+import com.jeeplus.modules.filing.approvalStage.entity.EarlyStage;
+import com.jeeplus.modules.filing.constructionStage.entity.ConstructionStage;
+import com.jeeplus.modules.filing.earlyEngineering.entity.EarlyEngineering;
+import com.jeeplus.modules.filing.summary.entity.Summary;
+
+import java.util.List;
+
+/**
+ * 基础信息管理
+ * @author qy
+ * @version 2021-03-23
+ */
+@MyBatisMapper
+public interface SummaryMapper extends BaseMapper<Summary> {
+    /**
+     * 根据父级id查找所有的字类id
+     * */
+    List<Summary> findChildList(Summary entity);
+
+    List<Summary> findChildListBy(Summary entity);
+
+    /**
+     * 通过项目id查询出所有的项目信息
+     * */
+    List<Summary> findAll(List<String> idList);
+
+    /**
+     * 查早所有的父级数据
+     * */
+    Summary findOne(String id);
+
+    /**
+     * 插入子级信息
+     * */
+    void insertChild(Summary entity);
+
+    /**
+     * 修改子级信息
+     * */
+    void updateChild(Summary entity);
+
+    /**
+     * 删除子级信息
+     * */
+    void deleteChild(Summary entity);
+
+    /**
+     * 通过projectCode查询项目是否已经存在
+     */
+    Summary findByProjectCode(String projectCode);
+
+    /**
+     * 父类修改项目编码后字类自动更新对应父级id
+     * */
+    void updateChildParent(Summary entity);
+
+    List<Summary> findChildByCode(String projectCode);
+
+    /**
+     * 查询所有父级集合的id
+     * */
+    List<String> findALlId();
+
+
+    List<Summary> findAllChildList(Summary entity);
+
+
+    /**
+     * 项目前前期阶段
+     * */
+    Integer findByCode(Summary entity);
+
+    /**
+     * 判断初设阶段
+     * */
+    Integer findDesignStage(Summary entity);
+
+    /**
+     * 判断批概阶段
+     * */
+    Integer findReviewStage(Summary entity);
+
+    /**
+     * 判断招标与合同管理
+     * */
+    Integer findBiddingContract(Summary entity);
+
+    /**
+     * 判断报建审批
+     * */
+    Integer findApplicationFor(Summary entity);
+
+    /**
+     * 判断依法合规
+     * */
+    Integer findLegalCompliance(Summary entity);
+
+    /**
+     * 工程建设阶段
+     * */
+    Integer findConstructionStage(Summary entity);
+
+    void insertEarlyStage(Summary entity);
+
+    void updateEarlyStage(Summary entity);
+
+    void insertDesign(Summary entity);
+    void updateDesign(Summary entity);
+    void insertReviewStage(Summary entity);
+    void updateReviewStage(Summary entity);
+    void insertBiddingContract(Summary entity);
+    void updateBiddingContract(Summary entity);
+    void insertApplicationFor(Summary entity);
+    void updateApplicationFor(Summary entity);
+    void insertLegalCompliance(Summary entity);
+    void updateLegalCompliance(Summary entity);
+
+    void insertConstructionStage(Summary entity);
+
+    void updateConstructionStage(Summary entity);
+
+}

ファイルの差分が大きいため隠しています
+ 1136 - 0
src/main/java/com/jeeplus/modules/filing/summary/mapper/xml/SummaryMapper.xml


+ 230 - 0
src/main/java/com/jeeplus/modules/filing/summary/service/SummaryService.java

@@ -0,0 +1,230 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.filing.summary.service;
+
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.core.persistence.Page;
+import com.jeeplus.core.service.CrudService;
+import com.jeeplus.modules.filing.summary.entity.Summary;
+import com.jeeplus.modules.filing.summary.entity.Summary;
+import com.jeeplus.modules.filing.summary.mapper.SummaryMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 基础信息管理Service
+ *
+ * @author qy
+ * @version 2021-03-23
+ */
+@Service
+@Transactional(readOnly = true)
+public class SummaryService extends CrudService<SummaryMapper, Summary> {
+
+
+	public Summary get(String id) {
+		Summary summary = mapper.get(id);
+		return summary;
+	}
+
+	public List<Summary> findList(Summary summary) {
+		return super.findList(summary);
+	}
+
+	public Page<Summary> findPage(Page<Summary> page, Summary summary) {
+		return super.findPage(page, summary);
+	}
+
+	public Page<Summary> findOnePage(Page<Summary> page, Summary summary) {
+		dataRuleFilter(summary);
+		summary.setPage(page);
+		page.setList(mapper.findChildList(summary));
+		return page;
+	}
+
+	public Page<Summary> findAllPage(Page<Summary> page, Summary summary) {
+		dataRuleFilter(summary);
+		summary.setPage(page);
+		page.setList(mapper.findAllList(summary));
+		return page;
+	}
+
+	@Transactional(readOnly = false)
+	public Boolean saveAll(Summary entity) {
+		Integer byCode = mapper.findByCode(entity);
+		Integer designStage = mapper.findDesignStage(entity);
+		Integer reviewStage = mapper.findReviewStage(entity);
+		Integer biddingContract = mapper.findBiddingContract(entity);
+		Integer applicationFor = mapper.findApplicationFor(entity);
+		Integer legalCompliance = mapper.findLegalCompliance(entity);
+		Integer constructionStage = mapper.findConstructionStage(entity);
+		if (null==byCode && 0==byCode) {
+			entity.preInsert();
+			mapper.insertEarlyStage(entity);
+		}else {
+			entity.preUpdate();
+			mapper.updateEarlyStage(entity);
+		}
+
+		if (null==designStage && 0==designStage) {
+			entity.preInsert();
+			mapper.insertDesign(entity);
+		}else {
+			entity.preUpdate();
+			mapper.updateDesign(entity);
+		}
+
+		if (null==reviewStage && 0==reviewStage) {
+			entity.preInsert();
+			mapper.insertReviewStage(entity);
+		}else {
+			entity.preUpdate();
+			mapper.updateReviewStage(entity);
+		}
+
+		if (null==biddingContract && 0==biddingContract) {
+			entity.preInsert();
+			mapper.insertBiddingContract(entity);
+		}else {
+			entity.preUpdate();
+			mapper.updateBiddingContract(entity);
+		}
+
+		if (null==applicationFor && 0==applicationFor) {
+			entity.preInsert();
+			mapper.insertApplicationFor(entity);
+		}else {
+			entity.preUpdate();
+			mapper.updateApplicationFor(entity);
+		}
+
+		if (null==legalCompliance && 0==legalCompliance) {
+			entity.preInsert();
+			mapper.insertLegalCompliance(entity);
+		}else {
+			entity.preUpdate();
+			mapper.updateLegalCompliance(entity);
+		}
+
+		if (null==constructionStage && 0==constructionStage) {
+			entity.preInsert();
+			mapper.insertConstructionStage(entity);
+		}else {
+			entity.preUpdate();
+			mapper.updateConstructionStage(entity);
+		}
+
+		return true;
+	}
+
+
+	@Transactional(readOnly = false)
+	public Boolean updateAll(Summary summary) {
+		//通过查询projectCode判断项目是否存在
+		for (Summary b : summary.getChildList()) {
+			if (b.getId() == null) {
+				continue;
+			}
+			if (Summary.DEL_FLAG_NORMAL.equals(b.getDelFlag())) {
+				if (b.getIsNewRecord()) {
+					Summary byProjectCode = mapper.findByProjectCode(b.getProjectCode());
+					if (null != byProjectCode) {
+						return true;
+					}
+					b.setParentId(summary.getProjectCode());
+					b.preInsert();
+					mapper.insertChild(b);
+				} else {
+					Summary one = mapper.findOne(b.getId());
+					Summary byProjectCode = mapper.findByProjectCode(b.getProjectCode());
+					if (!one.getProjectCode().equals(b.getProjectCode()) && null != byProjectCode) {
+						return true;
+					}
+					b.preUpdate();
+					mapper.updateChild(b);
+				}
+			} else {
+				mapper.deleteChild(b);
+			}
+		}
+		if (summary.getIsNewRecord()) {
+			summary.preInsert();
+			mapper.insert(summary);
+		} else {
+			Summary one = mapper.findOne(summary.getId());
+			Summary byProjectCode = mapper.findByProjectCode(summary.getProjectCode());
+			if (!one.getProjectCode().equals(summary.getProjectCode()) && null != byProjectCode) {
+				return true;
+			}
+			if (!one.getProjectCode().equals(summary.getProjectCode())) {
+				Summary basicInformationChild = new Summary();
+				basicInformationChild.setProjectCode(one.getProjectCode());
+				basicInformationChild.setParentId(summary.getProjectCode());
+				summary.preUpdate();
+				mapper.updateChildParent(basicInformationChild);
+			}
+			summary.preUpdate();
+			mapper.update(summary);
+		}
+		return false;
+	}
+
+	@Transactional(readOnly = false)
+	public void delete(Summary summary) {
+		super.delete(summary);
+	}
+
+
+	@Transactional(readOnly = false)
+	public Boolean updateChild(Summary basicInformationChild) {
+		Summary byProjectCode = mapper.findByProjectCode(basicInformationChild.getProjectCode());
+		Summary one = mapper.findOne(basicInformationChild.getProjectCode());
+		if (!one.getProjectCode().equals(basicInformationChild.getProjectCode()) && null != byProjectCode) {
+			return true;
+		}
+		mapper.updateChild(basicInformationChild);
+		return false;
+	}
+
+	@Transactional(readOnly = false)
+	public void insertChild(Summary basicInformationChild) {
+		Summary byProjectCode = mapper.findByProjectCode(basicInformationChild.getProjectCode());
+		if (null == byProjectCode) {
+			basicInformationChild.preInsert();
+			mapper.insertChild(basicInformationChild);
+		} else {
+			basicInformationChild.preUpdate();
+			basicInformationChild.setId(byProjectCode.getId());
+			mapper.updateChild(basicInformationChild);
+		}
+	}
+
+	@Override
+	@Transactional(readOnly = false)
+	public void save(Summary entity) {
+		Summary byProjectCode = mapper.findByProjectCode(entity.getProjectCode());
+		if (null == byProjectCode) {
+			entity.preInsert();
+			mapper.insert(entity);
+		} else {
+			entity.setId(byProjectCode.getId());
+			entity.preUpdate();
+			mapper.update(entity);
+		}
+	}
+
+	public List<String> findAllId() {
+		return mapper.findALlId();
+	}
+
+	public List<Summary> findChildList(Summary summary) {
+		return mapper.findChildList(summary);
+	}
+
+	public List<Summary> findAllChildList(Summary summary) {
+		return mapper.findAllChildList(summary);
+	}
+}

+ 322 - 0
src/main/java/com/jeeplus/modules/filing/summary/web/SummaryController.java

@@ -0,0 +1,322 @@
+package com.jeeplus.modules.filing.summary.web;
+
+import com.google.common.collect.Lists;
+import com.jeeplus.common.config.Global;
+import com.jeeplus.common.json.AjaxJson;
+import com.jeeplus.common.utils.DateUtils;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.utils.excel.ExportExcel;
+import com.jeeplus.common.utils.excel.ImportExcel;
+import com.jeeplus.core.persistence.Page;
+import com.jeeplus.core.web.BaseController;
+import com.jeeplus.modules.filing.basicInformation.service.BasicInformationService;
+import com.jeeplus.modules.filing.filingImages.entity.FilingImages;
+import com.jeeplus.modules.filing.summary.entity.Summary;
+import com.jeeplus.modules.filing.summary.service.SummaryService;
+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 org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 汇总管理Controller
+ * @author qy
+ * @date 2021-04-13
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/filing/summary")
+public class SummaryController extends BaseController {
+
+	@Autowired
+	private SummaryService summaryService;
+
+	@Autowired
+	private BasicInformationService basicInformationService;
+	
+	@ModelAttribute
+	public Summary get(@RequestParam(required=false) String id) {
+		Summary entity = null;
+		if (StringUtils.isNotBlank(id)){
+			entity = summaryService.get(id);
+		}
+		if (entity == null){
+			entity = new Summary();
+		}
+		return entity;
+	}
+	
+	/**
+	 * 汇总列表页面
+	 */
+	@RequiresPermissions("test:filing:summary:list")
+	@RequestMapping(value = {"list", ""})
+	public String list(Summary summary, Model model) {
+		model.addAttribute("summary", summary);
+		return "modules/filing/summary/summaryList";
+	}
+	
+		/**
+	 * 汇总列表数据
+	 */
+	@ResponseBody
+	@RequiresPermissions("test:filing:summary:list")
+	@RequestMapping(value = "data")
+	public Map<String, Object> data(Summary summary, HttpServletRequest request, HttpServletResponse response, Model model) {
+		Page<Summary> page = summaryService.findPage(new Page<Summary>(request, response,-1), summary);
+		return getBootstrapData(page);
+	}
+
+	/**
+	 * 查看,增加,汇总表单页面
+	 */
+	@RequiresPermissions(value={"test:filing:summary:view","test:filing:summary:add","test:filing:summary:edit"},logical=Logical.OR)
+	@RequestMapping(value = "form")
+	public String form(Summary summary, Model model) {
+		model.addAttribute("summary", summary);
+		return "modules/filing/summary/summaryForm";
+	}
+
+	/**
+	 * 修改,汇总表单页面
+	 */
+	@RequiresPermissions(value={"test:filing:summary:view","test:filing:summary:add","test:filing:summary:edit"},logical=Logical.OR)
+	@RequestMapping(value = "updateForm")
+	public String updateForm(Summary summary, Model model) {
+		model.addAttribute("summary", summary);
+		return "modules/filing/summary/updateForm";
+	}
+
+	/**
+	 * 字类查看,增加,编辑汇总表单页面
+	 */
+	@RequiresPermissions(value={"test:filing:summary:view","test:filing:summary:add","test:filing:summary:edit"},logical=Logical.OR)
+	@RequestMapping(value = "childForm")
+	public String childForm(Summary summary, Model model) {
+		model.addAttribute("summary", summary);
+		return "modules/filing/summary/childForm";
+	}
+
+	/**
+	 * 保存汇总
+	 */
+	@ResponseBody
+	@RequiresPermissions(value={"test:filing:summary:add","test:filing:summary:edit"},logical=Logical.OR)
+	@RequestMapping(value = "save")
+	public AjaxJson save(Summary summary, Model model) throws Exception{
+		AjaxJson j = new AjaxJson();
+		/**
+		 * 后台hibernate-validation插件校验
+		 */
+		String errMsg = beanValidator(summary);
+		if (StringUtils.isNotBlank(errMsg)){
+			j.setSuccess(false);
+			j.setMsg(errMsg);
+			return j;
+		}
+		//判断,项目前期阶段是否存在
+
+
+
+		//新增或编辑表单保存
+		Boolean aBoolean = summaryService.saveAll(summary);//保存
+		if (false == aBoolean) {
+			j.setSuccess(false);
+			j.setMsg("项目编码已存在");
+		} else {
+			j.setSuccess(true);
+			j.setMsg("保存汇总成功");
+		}
+		return j;
+	}
+
+	/**
+	 * 保存汇总
+	 */
+	@ResponseBody
+	@RequiresPermissions(value={"test:filing:summary:add","test:filing:summary:edit"},logical=Logical.OR)
+	@RequestMapping(value = "updateSave")
+	public AjaxJson updateSave(Summary summary, Model model) throws Exception{
+		AjaxJson j = new AjaxJson();
+		/**
+		 * 后台hibernate-validation插件校验
+		 */
+		String errMsg = beanValidator(summary);
+		if (StringUtils.isNotBlank(errMsg)){
+			j.setSuccess(false);
+			j.setMsg(errMsg);
+			return j;
+		}
+		//新增或编辑表单保存
+		Boolean aBoolean = summaryService.updateAll(summary);//保存
+		if (true == aBoolean) {
+			j.setSuccess(false);
+			j.setMsg("项目编码重复");
+		} else {
+			j.setSuccess(true);
+			j.setMsg("保存汇总成功");
+		}
+		return j;
+	}
+
+	/**
+	 * 保存汇总
+	 */
+	@ResponseBody
+	@RequiresPermissions(value={"test:filing:summary:add","test:filing:summary:edit"},logical=Logical.OR)
+	@RequestMapping(value = "childSave")
+	public AjaxJson childSave(Summary summary, Model model) throws Exception{
+		AjaxJson j = new AjaxJson();
+		/**
+		 * 后台hibernate-validation插件校验
+		 */
+		String errMsg = beanValidator(summary);
+		if (StringUtils.isNotBlank(errMsg)){
+			j.setSuccess(false);
+			j.setMsg(errMsg);
+			return j;
+		}
+		//新增或编辑表单保存
+		Boolean aBoolean = summaryService.updateChild(summary);//保存
+		if (true == aBoolean) {
+			j.setSuccess(false);
+			j.setMsg("项目编码重复");
+		} else {
+			j.setSuccess(true);
+			j.setMsg("保存汇总成功");
+		}
+		return j;
+	}
+	
+	/**
+	 * 删除汇总
+	 */
+	@ResponseBody
+	@RequiresPermissions("test:filing:summary:del")
+	@RequestMapping(value = "delete")
+	public AjaxJson delete(Summary summary) {
+		AjaxJson j = new AjaxJson();
+		summaryService.delete(summary);
+		j.setMsg("删除汇总成功");
+		return j;
+	}
+	
+	/**
+	 * 批量删除汇总
+	 */
+	@ResponseBody
+	@RequiresPermissions("test:filing:summary:del")
+	@RequestMapping(value = "deleteAll")
+	public AjaxJson deleteAll(String ids) {
+		AjaxJson j = new AjaxJson();
+		String idArray[] =ids.split(",");
+		for(String id : idArray){
+			summaryService.delete(summaryService.get(id));
+		}
+		j.setMsg("删除汇总成功");
+		return j;
+	}
+	
+	/**
+	 * 导出excel文件
+	 */
+	@ResponseBody
+	@RequiresPermissions("test:filing:summary:export")
+    @RequestMapping(value = "export")
+    public AjaxJson exportFile(Summary summary, HttpServletRequest request, HttpServletResponse response) {
+		AjaxJson j = new AjaxJson();
+		try {
+            String fileName = "汇总"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
+			//查询所有父级的信息
+			List<Summary> list = summaryService.findList(summary);
+			List<Summary> returnList = new ArrayList<>();
+			//根据父级,查询所有子级的信息
+			for (Summary a :
+					list) {
+				List<Summary> childList = summaryService.findAllChildList(a);
+				returnList.add(a);
+				for (Summary b :
+						childList) {
+					returnList.add(b);
+				}
+			}
+			new ExportExcel("汇总", Summary.class).setDataList(returnList).write(response, fileName).dispose();
+    		j.setSuccess(true);
+    		j.setMsg("导出成功!");
+    		return j;
+		} catch (Exception e) {
+			j.setSuccess(false);
+			j.setMsg("导出汇总记录失败!失败信息:"+e.getMessage());
+		}
+			return j;
+    }
+
+
+	@ResponseBody
+    @RequestMapping(value = "detail")
+	public Map<String, Object> detail(Summary summary, HttpServletRequest request, HttpServletResponse response, Model model) {
+		Page<Summary> page = summaryService.findOnePage(new Page<Summary>(request, response), summary);
+		return getBootstrapData(page);
+	}
+	
+
+	/**
+	 * 导入Excel数据
+	 */
+	@ResponseBody
+	@RequiresPermissions("test:filing:summary:import")
+    @RequestMapping(value = "import")
+   	public AjaxJson importFile(@RequestParam("file")MultipartFile file, HttpServletResponse response, HttpServletRequest request) {
+		AjaxJson j = new AjaxJson();
+		try {
+			ImportExcel ei = new ImportExcel(file, 1, 0);
+			List<Summary> list = ei.getDataList(Summary.class);
+			for (Summary s :
+					list) {
+				summaryService.save(s);
+			}
+			j.setMsg( "已成功导入汇总记录");
+		} catch (Exception e) {
+			j.setSuccess(false);
+			j.setMsg("导入汇总失败!失败信息:"+e.getMessage());
+		}
+		return j;
+    }
+	
+	/**
+	 * 下载导入汇总数据模板
+	 */
+	@ResponseBody
+	@RequiresPermissions("test:filing:summary:import")
+    @RequestMapping(value = "import/template")
+     public AjaxJson importFileTemplate(HttpServletResponse response) {
+		AjaxJson j = new AjaxJson();
+		try {
+            String fileName = "汇总数据导入模板.xlsx";
+    		List<Summary> list = Lists.newArrayList(); 
+    		new ExportExcel("汇总数据", Summary.class, 1).setDataList(list).write(response, fileName).dispose();
+    		return null;
+		} catch (Exception e) {
+			j.setSuccess(false);
+			j.setMsg( "导入模板下载失败!失败信息:"+e.getMessage());
+		}
+		return j;
+    }
+	
+
+}

+ 464 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/entity/ExportScheme.java

@@ -0,0 +1,464 @@
+package com.jeeplus.modules.sg.managementcenter.reserveManagement.entity;
+
+import com.jeeplus.common.utils.excel.annotation.ExcelField;
+import com.jeeplus.core.persistence.DataEntity;
+
+import java.util.Date;
+
+/**
+ * 方案交底部分导出实体类
+ * */
+public class ExportScheme extends DataEntity<ExportScheme> {
+    private String projectReserveId;  //varchar(255) NOT NULL 项目储备编号
+    private String disclosureToCoordinate;  //varchar(255) NULL  交底牵头部门
+    private String disclosureParticipate;  //varchar(255) NULL  交底参与部门
+    private String whetherFinishDisclosure;  //varcjar(64) NULL  是否完成交底(1:是,0:否)
+    private String projectManagementPeople;  //varchar(255) NULL  项目管理中心人员
+    private String designingInstitutePeople;  //varchar(255) NULL  设计院人员
+    private String ifoPeople;  //varchar(255) NULL  经研所人员
+    private String regionalCenterPeople;  //varchar(255) NULL  区域中心人员
+    private String uninterruptedOperationPeople;  //varchar(255) NULL  不停电作业中心人员
+    private String workMode;  //varchar(255) NULL  作业方式
+    private Date disclosureFinishDate;  //datetime NULL  交底完成日期
+    private String disclosureRemarks;  //varchar(255) NULL  备注
+
+    private String projectDescription;  //varchar(255) NULL  立项说明
+    private String doNotPossessProjectDescription;  //varchar(255) NULL  不具备立项条件说明
+    private String changedProgramsExplain;  //varchar(255) NULL  方案变更说明
+    private String initialDifficulty;  //varchar(255) NULL  政处难度初判
+    private String capitalEquipment;  //varcjar(64) NULL  是否有资本设备(1:是,0:否)
+    private String substationNewLine;  //varcjar(64) NULL  是否有变电站新出线(1:是,0:否)
+    private String whetherImplement;  //varcjar(64) NULL  是否已实施(1:是,0:否)
+    private String fieldDescription;  //varchar(255) NULL  现场情况描述
+    private String necessaryOfImplementation;  //varcjar(64) NULL  是否有实施必要性(1:是,0:否)
+    private String unnecessaryDescription;  //varchar(255) NULL  实施无必要描述
+    private String precondition;  //varcjar(64) NULL  是否存在前置条件(1:是,0:否)
+    private String conditionsDescribed;  //varchar(255) NULL  前置条件描述
+    private String constructionSchemeProblem;  //varcjar(64) NULL  是否存在施工方案问题(1:是,0:否)
+    private String problemDescriptionOfConstructionScheme;  //varchar(255) NULL  施工方案问题描述
+    private String existingSecurityThreat;  //varcjar(64) NULL  现场是否存在安全隐患(1:是,0:否)
+    private String safetyHazardDescription;  //varchar(255) NULL  安全隐患描述
+    private String customizedMaterials;  //varcjar(64) NULL  是否需要定制物资(1:是,0:否)
+    private String materialDescription;  //varchar(255) NULL  定制物资描述
+    private String dismantlingTheOldMaterial;  //varcjar(64) NULL  是否有拆旧物资(1:是,0:否)
+    private String operatingType;  //varchar(255) NULL  作业方式
+    private String problemDescription;  //varchar(255) NULL  停电问题描述
+    private String civilWork;  //varcjar(64) NULL  是否有土建工作量(1:是,0:否)
+    private String verticalRodWorkload;  //varcjar(64) NULL  是否有立杆工作量(1:是,0:否)
+    private String totalWorkloadDescription;  //varchar(255) NULL  总工作量描述
+    private String regionalCenter;  //varchar(255) NULL  区域中心
+    private String powerSupplyArea;  //varchar(255) NULL  供电所辖区
+    private String zhengLocation;  //varchar(255) NULL  政处地点
+    private String zhengType;  //varchar(255) NULL  政处类型(可多类)
+    private String zhengObject;  //varchar(255) NULL  政处对象(产权单位)
+    private String zhengDescribe;  //varchar(255) NULL  政处描述
+    private String projectApproval;  //varcjar(64) NULL  是否需规划报批(1:是,0:否)
+    private String courseEvaluationProcedures;  //varcjar(64) NULL  是否需办理安评航评手续(1:是,0:否)
+    private String zhengDifficultyWarn;  //varchar(255) NULL  政处难点提醒
+
+    @ExcelField(title="项目储备编号", align=2, sort=1)
+    public String getProjectReserveId() {
+        return projectReserveId;
+    }
+
+    public void setProjectReserveId(String projectReserveId) {
+        this.projectReserveId = projectReserveId;
+    }
+
+    @ExcelField(title="交底牵头部门", align=2, sort=2)
+    public String getDisclosureToCoordinate() {
+        return disclosureToCoordinate;
+    }
+
+    public void setDisclosureToCoordinate(String disclosureToCoordinate) {
+        this.disclosureToCoordinate = disclosureToCoordinate;
+    }
+
+    @ExcelField(title="交底参与部门", align=2, sort=3)
+    public String getDisclosureParticipate() {
+        return disclosureParticipate;
+    }
+
+    public void setDisclosureParticipate(String disclosureParticipate) {
+        this.disclosureParticipate = disclosureParticipate;
+    }
+
+    @ExcelField(title="是否完成交底", align=2, sort=4)
+    public String getWhetherFinishDisclosure() {
+        return whetherFinishDisclosure;
+    }
+
+    public void setWhetherFinishDisclosure(String whetherFinishDisclosure) {
+        this.whetherFinishDisclosure = whetherFinishDisclosure;
+    }
+
+    @ExcelField(title="项目管理中心人员", align=2, sort=5)
+    public String getProjectManagementPeople() {
+        return projectManagementPeople;
+    }
+
+    public void setProjectManagementPeople(String projectManagementPeople) {
+        this.projectManagementPeople = projectManagementPeople;
+    }
+
+    @ExcelField(title="设计院人员", align=2, sort=6)
+    public String getDesigningInstitutePeople() {
+        return designingInstitutePeople;
+    }
+
+    public void setDesigningInstitutePeople(String designingInstitutePeople) {
+        this.designingInstitutePeople = designingInstitutePeople;
+    }
+
+    @ExcelField(title="经研所人员", align=2, sort=7)
+    public String getIfoPeople() {
+        return ifoPeople;
+    }
+
+    public void setIfoPeople(String ifoPeople) {
+        this.ifoPeople = ifoPeople;
+    }
+
+    @ExcelField(title="区域中心人员", align=2, sort=8)
+    public String getRegionalCenterPeople() {
+        return regionalCenterPeople;
+    }
+
+    public void setRegionalCenterPeople(String regionalCenterPeople) {
+        this.regionalCenterPeople = regionalCenterPeople;
+    }
+
+    @ExcelField(title="不停电作业中心人员", align=2, sort=9)
+    public String getUninterruptedOperationPeople() {
+        return uninterruptedOperationPeople;
+    }
+
+    public void setUninterruptedOperationPeople(String uninterruptedOperationPeople) {
+        this.uninterruptedOperationPeople = uninterruptedOperationPeople;
+    }
+
+    @ExcelField(title="作业方式", align=2, sort=10)
+    public String getWorkMode() {
+        return workMode;
+    }
+
+    public void setWorkMode(String workMode) {
+        this.workMode = workMode;
+    }
+
+    @ExcelField(title="交底完成日期", align=2, sort=11)
+    public Date getDisclosureFinishDate() {
+        return disclosureFinishDate;
+    }
+
+    public void setDisclosureFinishDate(Date disclosureFinishDate) {
+        this.disclosureFinishDate = disclosureFinishDate;
+    }
+
+    @ExcelField(title="备注", align=2, sort=12)
+    public String getDisclosureRemarks() {
+        return disclosureRemarks;
+    }
+
+    public void setDisclosureRemarks(String disclosureRemarks) {
+        this.disclosureRemarks = disclosureRemarks;
+    }
+
+    @ExcelField(title="立项说明", align=2, sort=13)
+    public String getProjectDescription() {
+        return projectDescription;
+    }
+
+    public void setProjectDescription(String projectDescription) {
+        this.projectDescription = projectDescription;
+    }
+
+    @ExcelField(title="不具备立项条件说明", align=2, sort=14)
+    public String getDoNotPossessProjectDescription() {
+        return doNotPossessProjectDescription;
+    }
+
+    public void setDoNotPossessProjectDescription(String doNotPossessProjectDescription) {
+        this.doNotPossessProjectDescription = doNotPossessProjectDescription;
+    }
+
+    @ExcelField(title="方案变更说明", align=2, sort=15)
+    public String getChangedProgramsExplain() {
+        return changedProgramsExplain;
+    }
+
+    public void setChangedProgramsExplain(String changedProgramsExplain) {
+        this.changedProgramsExplain = changedProgramsExplain;
+    }
+
+    @ExcelField(title="政处难度初判", align=2, sort=16)
+    public String getInitialDifficulty() {
+        return initialDifficulty;
+    }
+
+    public void setInitialDifficulty(String initialDifficulty) {
+        this.initialDifficulty = initialDifficulty;
+    }
+
+    @ExcelField(title="是否有资本设备", align=2, sort=17)
+    public String getCapitalEquipment() {
+        return capitalEquipment;
+    }
+
+    public void setCapitalEquipment(String capitalEquipment) {
+        this.capitalEquipment = capitalEquipment;
+    }
+
+    @ExcelField(title="是否有变电站新出线", align=2, sort=18)
+    public String getSubstationNewLine() {
+        return substationNewLine;
+    }
+
+    public void setSubstationNewLine(String substationNewLine) {
+        this.substationNewLine = substationNewLine;
+    }
+
+    @ExcelField(title="是否已实施", align=2, sort=19)
+    public String getWhetherImplement() {
+        return whetherImplement;
+    }
+
+    public void setWhetherImplement(String whetherImplement) {
+        this.whetherImplement = whetherImplement;
+    }
+
+    @ExcelField(title="现场情况描述", align=2, sort=20)
+    public String getFieldDescription() {
+        return fieldDescription;
+    }
+
+    public void setFieldDescription(String fieldDescription) {
+        this.fieldDescription = fieldDescription;
+    }
+
+    @ExcelField(title="是否有实施必要性", align=2, sort=21)
+    public String getNecessaryOfImplementation() {
+        return necessaryOfImplementation;
+    }
+
+    public void setNecessaryOfImplementation(String necessaryOfImplementation) {
+        this.necessaryOfImplementation = necessaryOfImplementation;
+    }
+
+    @ExcelField(title="实施无必要描述", align=2, sort=22)
+    public String getUnnecessaryDescription() {
+        return unnecessaryDescription;
+    }
+
+    public void setUnnecessaryDescription(String unnecessaryDescription) {
+        this.unnecessaryDescription = unnecessaryDescription;
+    }
+
+    @ExcelField(title="是否存在前置条件", align=2, sort=23)
+    public String getPrecondition() {
+        return precondition;
+    }
+
+    public void setPrecondition(String precondition) {
+        this.precondition = precondition;
+    }
+
+    @ExcelField(title="前置条件描述", align=2, sort=24)
+    public String getConditionsDescribed() {
+        return conditionsDescribed;
+    }
+
+    public void setConditionsDescribed(String conditionsDescribed) {
+        this.conditionsDescribed = conditionsDescribed;
+    }
+
+    @ExcelField(title="是否存在施工方案问题", align=2, sort=25)
+    public String getConstructionSchemeProblem() {
+        return constructionSchemeProblem;
+    }
+
+    public void setConstructionSchemeProblem(String constructionSchemeProblem) {
+        this.constructionSchemeProblem = constructionSchemeProblem;
+    }
+
+    @ExcelField(title="施工方案问题描述", align=2, sort=26)
+    public String getProblemDescriptionOfConstructionScheme() {
+        return problemDescriptionOfConstructionScheme;
+    }
+
+    public void setProblemDescriptionOfConstructionScheme(String problemDescriptionOfConstructionScheme) {
+        this.problemDescriptionOfConstructionScheme = problemDescriptionOfConstructionScheme;
+    }
+
+    @ExcelField(title="现场是否存在安全隐患", align=2, sort=27)
+    public String getExistingSecurityThreat() {
+        return existingSecurityThreat;
+    }
+
+    public void setExistingSecurityThreat(String existingSecurityThreat) {
+        this.existingSecurityThreat = existingSecurityThreat;
+    }
+
+    @ExcelField(title="安全隐患描述", align=2, sort=28)
+    public String getSafetyHazardDescription() {
+        return safetyHazardDescription;
+    }
+
+    public void setSafetyHazardDescription(String safetyHazardDescription) {
+        this.safetyHazardDescription = safetyHazardDescription;
+    }
+
+    @ExcelField(title="是否需要定制物资", align=2, sort=29)
+    public String getCustomizedMaterials() {
+        return customizedMaterials;
+    }
+
+    public void setCustomizedMaterials(String customizedMaterials) {
+        this.customizedMaterials = customizedMaterials;
+    }
+
+    @ExcelField(title="定制物资描述", align=2, sort=30)
+    public String getMaterialDescription() {
+        return materialDescription;
+    }
+
+    public void setMaterialDescription(String materialDescription) {
+        this.materialDescription = materialDescription;
+    }
+
+    @ExcelField(title="是否有拆旧物资", align=2, sort=31)
+    public String getDismantlingTheOldMaterial() {
+        return dismantlingTheOldMaterial;
+    }
+
+    public void setDismantlingTheOldMaterial(String dismantlingTheOldMaterial) {
+        this.dismantlingTheOldMaterial = dismantlingTheOldMaterial;
+    }
+
+    @ExcelField(title="作业方式", align=2, sort=32)
+    public String getOperatingType() {
+        return operatingType;
+    }
+
+    public void setOperatingType(String operatingType) {
+        this.operatingType = operatingType;
+    }
+
+    @ExcelField(title="停电问题描述", align=2, sort=33)
+    public String getProblemDescription() {
+        return problemDescription;
+    }
+
+    public void setProblemDescription(String problemDescription) {
+        this.problemDescription = problemDescription;
+    }
+
+    @ExcelField(title="是否有土建工作量", align=2, sort=34)
+    public String getCivilWork() {
+        return civilWork;
+    }
+
+    public void setCivilWork(String civilWork) {
+        this.civilWork = civilWork;
+    }
+
+    @ExcelField(title="是否有立杆工作量", align=2, sort=35)
+    public String getVerticalRodWorkload() {
+        return verticalRodWorkload;
+    }
+
+    public void setVerticalRodWorkload(String verticalRodWorkload) {
+        this.verticalRodWorkload = verticalRodWorkload;
+    }
+
+    @ExcelField(title="总工作量描述", align=2, sort=36)
+    public String getTotalWorkloadDescription() {
+        return totalWorkloadDescription;
+    }
+
+    public void setTotalWorkloadDescription(String totalWorkloadDescription) {
+        this.totalWorkloadDescription = totalWorkloadDescription;
+    }
+
+    @ExcelField(title="区域中心", align=2, sort=37)
+    public String getRegionalCenter() {
+        return regionalCenter;
+    }
+
+    public void setRegionalCenter(String regionalCenter) {
+        this.regionalCenter = regionalCenter;
+    }
+
+    @ExcelField(title="供电所辖区", align=2, sort=38)
+    public String getPowerSupplyArea() {
+        return powerSupplyArea;
+    }
+
+    public void setPowerSupplyArea(String powerSupplyArea) {
+        this.powerSupplyArea = powerSupplyArea;
+    }
+
+    @ExcelField(title="政处地点", align=2, sort=39)
+    public String getZhengLocation() {
+        return zhengLocation;
+    }
+
+    public void setZhengLocation(String zhengLocation) {
+        this.zhengLocation = zhengLocation;
+    }
+
+    @ExcelField(title="政处类型", align=2, sort=40)
+    public String getZhengType() {
+        return zhengType;
+    }
+
+    public void setZhengType(String zhengType) {
+        this.zhengType = zhengType;
+    }
+
+    @ExcelField(title="政处对象", align=2, sort=41)
+    public String getZhengObject() {
+        return zhengObject;
+    }
+
+    public void setZhengObject(String zhengObject) {
+        this.zhengObject = zhengObject;
+    }
+
+    @ExcelField(title="政处描述", align=2, sort=42)
+    public String getZhengDescribe() {
+        return zhengDescribe;
+    }
+
+    public void setZhengDescribe(String zhengDescribe) {
+        this.zhengDescribe = zhengDescribe;
+    }
+
+    @ExcelField(title="是否需规划报批", align=2, sort=43)
+    public String getProjectApproval() {
+        return projectApproval;
+    }
+
+    public void setProjectApproval(String projectApproval) {
+        this.projectApproval = projectApproval;
+    }
+
+    @ExcelField(title="是否需办理安评航评手续", align=2, sort=44)
+    public String getCourseEvaluationProcedures() {
+        return courseEvaluationProcedures;
+    }
+
+    public void setCourseEvaluationProcedures(String courseEvaluationProcedures) {
+        this.courseEvaluationProcedures = courseEvaluationProcedures;
+    }
+
+    @ExcelField(title="政处难点提醒", align=2, sort=45)
+    public String getZhengDifficultyWarn() {
+        return zhengDifficultyWarn;
+    }
+
+    public void setZhengDifficultyWarn(String zhengDifficultyWarn) {
+        this.zhengDifficultyWarn = zhengDifficultyWarn;
+    }
+
+}

+ 34 - 3
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/entity/ReserveManagement.java

@@ -1,5 +1,6 @@
 package com.jeeplus.modules.sg.managementcenter.reserveManagement.entity;
 
+import com.jeeplus.common.utils.excel.annotation.ExcelField;
 import com.jeeplus.core.persistence.DataEntity;
 
 import java.util.Date;
@@ -28,7 +29,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
     private String circuitName;  //varchar(255) NULL 线路名称
     private String netRackProjectDivide;  //varchar(255) NULL 网架项目划分
     private String projectType;  //varchar(255) NULL 项目类型
-    private Double costEstimate;  //double(255,4) NULL 费用估算
+    private String costEstimate;  //double(255,4) NULL 费用估算
     private String whetherWindwardProject;  //varcjar(64) NULL 是否迎峰度夏项目(1:是,0:否 2:取消)
     private String projectUrgencyDegree;  //varcjar(64) NULL  项目紧急程度(不是数字默认为空)
     private String implementIssuedYear;  //varchar(255) NULL  拟实施下达年份
@@ -41,6 +42,8 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
     private String whetherFinishMaterials;  //varcjar(64) NULL  是否完成物资清册编制(1:是,0:否)
     private String whetherFinishDrawing;  //varcjar(64) NULL  是否完成图纸移交(1:是,0:否)
 
+
+    /******************************************方案交底部分******************************************************/
     private String disclosureToCoordinate;  //varchar(255) NULL  交底牵头部门
     private String disclosureParticipate;  //varchar(255) NULL  交底参与部门
     private String whetherFinishDisclosure;  //varcjar(64) NULL  是否完成交底(1:是,0:否)
@@ -89,6 +92,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
 
     private String disclosureFinishDateStr;
 
+    @ExcelField(title="项目性质", align=2, sort=1)
     public String getProjectNature() {
         return projectNature;
     }
@@ -97,6 +101,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.projectNature = projectNature;
     }
 
+    @ExcelField(title="需求单位", align=2, sort=2)
     public String getDemandUnit() {
         return demandUnit;
     }
@@ -105,6 +110,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.demandUnit = demandUnit;
     }
 
+    @ExcelField(title="区域", align=2, sort=3)
     public String getDistrict() {
         return district;
     }
@@ -113,6 +119,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.district = district;
     }
 
+    @ExcelField(title="项目分组", align=2, sort=4)
     public String getProjectGroup() {
         return projectGroup;
     }
@@ -121,6 +128,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.projectGroup = projectGroup;
     }
 
+    @ExcelField(title="储备批次", align=2, sort=5)
     public String getReserveBatches() {
         return reserveBatches;
     }
@@ -129,6 +137,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.reserveBatches = reserveBatches;
     }
 
+    @ExcelField(title="供电区域", align=2, sort=6)
     public String getBlockSupply() {
         return blockSupply;
     }
@@ -137,6 +146,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.blockSupply = blockSupply;
     }
 
+    @ExcelField(title="网格编号", align=2, sort=7)
     public String getGridNumber() {
         return gridNumber;
     }
@@ -145,6 +155,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.gridNumber = gridNumber;
     }
 
+    @ExcelField(title="单元格编号", align=2, sort=8)
     public String getCellNumber() {
         return cellNumber;
     }
@@ -153,6 +164,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.cellNumber = cellNumber;
     }
 
+    @ExcelField(title="项目储备编号", align=2, sort=9)
     public String getProjectReserveId() {
         return projectReserveId;
     }
@@ -161,6 +173,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.projectReserveId = projectReserveId;
     }
 
+    @ExcelField(title="电网项目编号", align=2, sort=10)
     public String getPowerGridProjectId() {
         return powerGridProjectId;
     }
@@ -169,6 +182,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.powerGridProjectId = powerGridProjectId;
     }
 
+    @ExcelField(title="项目名称", align=2, sort=11)
     public String getProjectName() {
         return projectName;
     }
@@ -177,6 +191,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.projectName = projectName;
     }
 
+    @ExcelField(title="建设必要性及内容", align=2, sort=12)
     public String getConstructionNecessityAndContent() {
         return constructionNecessityAndContent;
     }
@@ -185,6 +200,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.constructionNecessityAndContent = constructionNecessityAndContent;
     }
 
+    @ExcelField(title="变电站名称", align=2, sort=13)
     public String getSubstationName() {
         return substationName;
     }
@@ -193,6 +209,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.substationName = substationName;
     }
 
+    @ExcelField(title="线路名称", align=2, sort=14)
     public String getCircuitName() {
         return circuitName;
     }
@@ -201,6 +218,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.circuitName = circuitName;
     }
 
+    @ExcelField(title="网架项目划分", align=2, sort=15)
     public String getNetRackProjectDivide() {
         return netRackProjectDivide;
     }
@@ -209,6 +227,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.netRackProjectDivide = netRackProjectDivide;
     }
 
+    @ExcelField(title="项目类型", align=2, sort=16)
     public String getProjectType() {
         return projectType;
     }
@@ -217,14 +236,16 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.projectType = projectType;
     }
 
-    public Double getCostEstimate() {
+    @ExcelField(title="费用估算", align=2, sort=17)
+    public String getCostEstimate() {
         return costEstimate;
     }
 
-    public void setCostEstimate(Double costEstimate) {
+    public void setCostEstimate(String costEstimate) {
         this.costEstimate = costEstimate;
     }
 
+    @ExcelField(title="是否迎峰度夏项目", align=2, sort=18)
     public String getWhetherWindwardProject() {
         return whetherWindwardProject;
     }
@@ -233,6 +254,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.whetherWindwardProject = whetherWindwardProject;
     }
 
+    @ExcelField(title="项目紧急程度", align=2, sort=19)
     public String getProjectUrgencyDegree() {
         return projectUrgencyDegree;
     }
@@ -241,6 +263,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.projectUrgencyDegree = projectUrgencyDegree;
     }
 
+    @ExcelField(title="拟实施下达年份", align=2, sort=20)
     public String getImplementIssuedYear() {
         return implementIssuedYear;
     }
@@ -249,6 +272,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.implementIssuedYear = implementIssuedYear;
     }
 
+    @ExcelField(title="拟实施批次", align=2, sort=21)
     public String getImplementBatch() {
         return implementBatch;
     }
@@ -257,6 +281,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.implementBatch = implementBatch;
     }
 
+    @ExcelField(title="备注", align=2, sort=22)
     public String getBasicRemarks() {
         return basicRemarks;
     }
@@ -265,6 +290,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.basicRemarks = basicRemarks;
     }
 
+    @ExcelField(title="设计状态(1:已完成,0:未完成)", align=2, sort=23)
     public String getDesignCondition() {
         return designCondition;
     }
@@ -273,6 +299,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.designCondition = designCondition;
     }
 
+    @ExcelField(title="是否通过省公司评审", align=2, sort=24)
     public String getWhetherPassReview() {
         return whetherPassReview;
     }
@@ -281,6 +308,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.whetherPassReview = whetherPassReview;
     }
 
+    @ExcelField(title="是否需提交路径图", align=2, sort=25)
     public String getWhetherNeedWiringDiagram() {
         return whetherNeedWiringDiagram;
     }
@@ -289,6 +317,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.whetherNeedWiringDiagram = whetherNeedWiringDiagram;
     }
 
+    @ExcelField(title="是否完成物资清册编制", align=2, sort=26)
     public String getWhetherFinishMaterials() {
         return whetherFinishMaterials;
     }
@@ -297,6 +326,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.whetherFinishMaterials = whetherFinishMaterials;
     }
 
+    @ExcelField(title="是否完成图纸移交", align=2, sort=27)
     public String getWhetherFinishDrawing() {
         return whetherFinishDrawing;
     }
@@ -305,6 +335,7 @@ public class ReserveManagement extends DataEntity<ReserveManagement> {
         this.whetherFinishDrawing = whetherFinishDrawing;
     }
 
+
     public String getDisclosureToCoordinate() {
         return disclosureToCoordinate;
     }

+ 25 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/ReserveManagementMapper.java

@@ -2,6 +2,7 @@ package com.jeeplus.modules.sg.managementcenter.reserveManagement.mapper;
 
 import com.jeeplus.core.persistence.BaseMapper;
 import com.jeeplus.core.persistence.annotation.MyBatisMapper;
+import com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ExportScheme;
 import com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ReserveManagement;
 import org.apache.ibatis.annotations.Param;
 
@@ -22,12 +23,26 @@ public interface ReserveManagementMapper extends BaseMapper<ReserveManagement> {
     ReserveManagement queryByProjectReserveId(ReserveManagement reserveManagement);
 
     /**
+     * 根据项目储备id查询项目信息
+     * @param projectReserveId 项目储备id
+     * @return
+     * */
+    Integer findByProjectId(String projectReserveId);
+
+    /**
      * 经理修改
      * @param reserveManagement
      */
     void updatejl(ReserveManagement reserveManagement);
 
     /**
+     * 修改方案交底结论
+     * @param scheme
+     */
+    void updateScheme(ExportScheme scheme);
+
+
+    /**
      * 批量添加项目储备信息
      * @param list
      * @return
@@ -40,4 +55,14 @@ public interface ReserveManagementMapper extends BaseMapper<ReserveManagement> {
      * @return
      */
     List<ReserveManagement> exportFindList(ReserveManagement reserveManagement);
+
+
+
+
+    /**
+     * 方案交底结论信息查询
+     * @param reserveManagement 查询条件
+     * @return 查询结果
+     * */
+    List<ReserveManagement> findModuleList(ReserveManagement reserveManagement);
 }

+ 226 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/xml/ReserveManagementMapper.xml

@@ -245,6 +245,57 @@
         (case a.courseEvaluationProcedures when '1' then '是' when '0' then '否' else '' end) courseEvaluationProcedures,
         a.zhengDifficultyWarn
     </sql>
+    
+    
+    <sql id="moduleColumns">
+        a.id,
+        a.projectReserveId,
+        a.projectName,
+        a.disclosureToCoordinate,
+        a.disclosureParticipate,
+        (case a.whetherFinishDisclosure when '1' then '是' when '0' then '否' else '' end) whetherFinishDisclosure,
+        a.projectManagementPeople,
+        a.designingInstitutePeople,
+        a.ifoPeople,
+        a.regionalCenterPeople,
+        a.uninterruptedOperationPeople,
+        a.workMode,
+        a.disclosureFinishDate,
+        a.disclosureRemarks,
+        a.projectDescription,
+        a.doNotPossessProjectDescription,
+        a.changedProgramsExplain,
+        a.initialDifficulty,
+        (case a.capitalEquipment when '1' then '是' when '0' then '否' else '' end) capitalEquipment,
+        (case a.substationNewLine when '1' then '是' when '0' then '否' else '' end) substationNewLine,
+        (case a.whetherImplement when '1' then '是' when '0' then '否' else '' end) whetherImplement,
+        a.fieldDescription,
+        (case a.necessaryOfImplementation when '1' then '是' when '0' then '否' else '' end) necessaryOfImplementation,
+        a.unnecessaryDescription,
+        (case a.precondition when '1' then '是' when '0' then '否' else '' end) precondition,
+        a.conditionsDescribed,
+        (case a.constructionSchemeProblem when '1' then '是' when '0' then '否' else '' end) constructionSchemeProblem,
+        a.problemDescriptionOfConstructionScheme,
+        (case a.existingSecurityThreat when '1' then '是' when '0' then '否' else '' end) existingSecurityThreat,
+        a.safetyHazardDescription,
+        (case a.customizedMaterials when '1' then '是' when '0' then '否' else '' end) customizedMaterials,
+        a.materialDescription,
+        (case a.dismantlingTheOldMaterial when '1' then '是' when '0' then '否' else '' end) dismantlingTheOldMaterial,
+        a.operatingType,
+        a.problemDescription,
+        (case a.civilWork when '1' then '是' when '0' then '否' else '' end) civilWork,
+        (case a.verticalRodWorkload when '1' then '是' when '0' then '否' else '' end) verticalRodWorkload,
+        a.totalWorkloadDescription,
+        a.regionalCenter,
+        a.powerSupplyArea,
+        a.zhengLocation,
+        a.zhengType,
+        a.zhengObject,
+        a.zhengDescribe,
+        (case a.projectApproval when '1' then '是' when '0' then '否' else '' end) projectApproval,
+        (case a.courseEvaluationProcedures when '1' then '是' when '0' then '否' else '' end) courseEvaluationProcedures,
+        a.zhengDifficultyWarn
+    </sql>
 
     <select id="get" resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ReserveManagement">
         select
@@ -305,6 +356,37 @@
         where a.projectReserveId = #{projectReserveId}
     </select>
 
+    <select id="findModuleList"
+            resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ReserveManagement">
+        select
+        <include refid="moduleColumns"/>
+        from cb_reserve_management a
+        <where>
+            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>
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+                ORDER BY a.projectReserveId
+            </otherwise>
+        </choose>
+    </select>
+    <select id="findByProjectId" resultType="java.lang.Integer">
+        select
+        count(id)
+        from cb_reserve_management a
+        where a.projectReserveId = #{projectReserveId}
+    </select>
+
+
     <insert id="insert">
         insert into cb_reserve_management (
           id,
@@ -696,5 +778,149 @@
         cb_reserve_management
         where id = #{id}
     </update>
+    <update id="updateScheme">
+
+        update
+        cb_reserve_management
+        set
+        update_by = #{updateBy.id},
+        update_date = #{updateDate},
+        remarks = #{remarks}
+
+        <if test="disclosureToCoordinate!=null and disclosureToCoordinate != ''">
+            ,disclosureToCoordinate = #{disclosureToCoordinate}
+        </if>
+        <if test="disclosureParticipate!=null and disclosureParticipate != ''">
+            ,disclosureParticipate = #{disclosureParticipate}
+        </if>
+        <if test="whetherFinishDisclosure!=null and whetherFinishDisclosure != ''">
+            ,whetherFinishDisclosure = #{whetherFinishDisclosure}
+        </if>
+        <if test="projectManagementPeople!=null and projectManagementPeople != ''">
+            ,projectManagementPeople = #{projectManagementPeople}
+        </if>
+        <if test="designingInstitutePeople!=null and designingInstitutePeople != ''">
+            ,designingInstitutePeople = #{designingInstitutePeople}
+        </if>
+        <if test="ifoPeople!=null and ifoPeople != ''">
+            ,ifoPeople = #{ifoPeople}
+        </if>
+        <if test="regionalCenterPeople!=null and regionalCenterPeople != ''">
+            ,regionalCenterPeople = #{regionalCenterPeople}
+        </if>
+        <if test="uninterruptedOperationPeople!=null and uninterruptedOperationPeople != ''">
+            ,uninterruptedOperationPeople = #{uninterruptedOperationPeople}
+        </if>
+        <if test="workMode!=null and workMode != ''">
+            ,workMode = #{workMode}
+        </if>
+        <if test="disclosureFinishDate!=null and disclosureFinishDate != ''">
+            ,disclosureFinishDate = #{disclosureFinishDate}
+        </if>
+        <if test="disclosureRemarks!=null and disclosureRemarks != ''">
+            ,disclosureRemarks = #{disclosureRemarks}
+        </if>
+        <if test="projectDescription!=null and projectDescription != ''">
+            ,projectDescription = #{projectDescription}
+        </if>
+        <if test="doNotPossessProjectDescription!=null and doNotPossessProjectDescription != ''">
+            ,doNotPossessProjectDescription = #{doNotPossessProjectDescription}
+        </if>
+        <if test="changedProgramsExplain!=null and changedProgramsExplain != ''">
+            ,changedProgramsExplain = #{changedProgramsExplain}
+        </if>
+        <if test="initialDifficulty!=null and initialDifficulty != ''">
+            ,initialDifficulty = #{initialDifficulty}
+        </if>
+        <if test="capitalEquipment!=null and capitalEquipment != ''">
+            ,capitalEquipment = #{capitalEquipment}
+        </if>
+        <if test="substationNewLine!=null and substationNewLine != ''">
+            ,substationNewLine = #{substationNewLine}
+        </if>
+        <if test="whetherImplement!=null and whetherImplement != ''">
+            ,whetherImplement = #{whetherImplement}
+        </if>
+        <if test="fieldDescription!=null and fieldDescription != ''">
+            ,fieldDescription = #{fieldDescription}
+        </if>
+        <if test="necessaryOfImplementation!=null and necessaryOfImplementation != ''">
+            ,necessaryOfImplementation = #{necessaryOfImplementation}
+        </if>
+        <if test="unnecessaryDescription!=null and unnecessaryDescription != ''">
+            ,unnecessaryDescription = #{unnecessaryDescription}
+        </if>
+        <if test="precondition!=null and precondition != ''">
+            ,precondition = #{precondition}
+        </if>
+        <if test="conditionsDescribed!=null and conditionsDescribed != ''">
+            ,conditionsDescribed = #{conditionsDescribed}
+        </if>
+        <if test="constructionSchemeProblem!=null and constructionSchemeProblem != ''">
+            ,constructionSchemeProblem = #{constructionSchemeProblem}
+        </if>
+        <if test="problemDescriptionOfConstructionScheme!=null and problemDescriptionOfConstructionScheme != ''">
+            ,problemDescriptionOfConstructionScheme = #{problemDescriptionOfConstructionScheme}
+        </if>
+        <if test="existingSecurityThreat!=null and existingSecurityThreat != ''">
+            ,existingSecurityThreat = #{existingSecurityThreat}
+        </if>
+        <if test="safetyHazardDescription!=null and safetyHazardDescription != ''">
+            ,safetyHazardDescription = #{safetyHazardDescription}
+        </if>
+        <if test="customizedMaterials!=null and customizedMaterials != ''">
+            ,customizedMaterials = #{customizedMaterials}
+        </if>
+        <if test="materialDescription!=null and materialDescription != ''">
+            ,materialDescription = #{materialDescription}
+        </if>
+        <if test="dismantlingTheOldMaterial!=null and dismantlingTheOldMaterial != ''">
+            ,dismantlingTheOldMaterial = #{dismantlingTheOldMaterial}
+        </if>
+        <if test="operatingType!=null and operatingType != ''">
+            ,operatingType = #{operatingType}
+        </if>
+        <if test="problemDescription!=null and problemDescription != ''">
+            ,problemDescription = #{problemDescription}
+        </if>
+        <if test="civilWork!=null and civilWork != ''">
+            ,civilWork = #{civilWork}
+        </if>
+        <if test="verticalRodWorkload!=null and verticalRodWorkload != ''">
+            ,verticalRodWorkload = #{verticalRodWorkload}
+        </if>
+        <if test="totalWorkloadDescription!=null and totalWorkloadDescription != ''">
+            ,totalWorkloadDescription = #{totalWorkloadDescription}
+        </if>
+        <if test="regionalCenter!=null and regionalCenter != ''">
+            ,regionalCenter = #{regionalCenter}
+        </if>
+        <if test="powerSupplyArea!=null and powerSupplyArea != ''">
+            ,powerSupplyArea = #{powerSupplyArea}
+        </if>
+        <if test="zhengLocation!=null and zhengLocation != ''">
+            ,zhengLocation = #{zhengLocation}
+        </if>
+        <if test="zhengType!=null and zhengType != ''">
+            ,zhengType = #{zhengType}
+        </if>
+        <if test="zhengObject!=null and zhengObject != ''">
+            ,zhengObject = #{zhengObject}
+        </if>
+        <if test="zhengDescribe!=null and zhengDescribe != ''">
+            ,zhengDescribe = #{zhengDescribe}
+        </if>
+        <if test="projectApproval!=null and projectApproval != ''">
+            ,projectApproval = #{projectApproval}
+        </if>
+        <if test="courseEvaluationProcedures!=null and courseEvaluationProcedures != ''">
+            ,courseEvaluationProcedures = #{courseEvaluationProcedures}
+        </if>
+        <if test="zhengDifficultyWarn!=null and zhengDifficultyWarn != ''">
+            ,zhengDifficultyWarn = #{zhengDifficultyWarn}
+        </if>
+        where id = #{id}
+
+    </update>
 
 </mapper>

+ 28 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/service/ReserveManagementService.java

@@ -2,6 +2,7 @@ package com.jeeplus.modules.sg.managementcenter.reserveManagement.service;
 
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.service.CrudService;
+import com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ExportScheme;
 import com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ReserveManagement;
 import com.jeeplus.modules.sg.managementcenter.reserveManagement.mapper.ReserveManagementMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,6 +32,14 @@ public class ReserveManagementService extends CrudService<ReserveManagementMappe
         return pageList;
     }
 
+
+    public Page<ReserveManagement> findModulePage (Page<ReserveManagement> page, ReserveManagement entity) {
+        dataRuleFilter(entity);
+        entity.setPage(page);
+        page.setList(mapper.findModuleList(entity));
+        return page;
+    }
+
     public List<ReserveManagement> exportFindList( ReserveManagement reserveManagement) {
         List<ReserveManagement> pageList = dao.exportFindList(reserveManagement);
         return pageList;
@@ -55,6 +64,18 @@ public class ReserveManagementService extends CrudService<ReserveManagementMappe
         }
     }
 
+    @Transactional(readOnly = false)
+    public void jlSave(ExportScheme scheme) {
+        //查询数据表中是否含有同项目储备编号的数据 若有则进行修改
+        //根据项目储备编号 查询数据
+        Integer byProjectId = mapper.findByProjectId(scheme.getProjectReserveId());
+        //如果存在则修改信息
+        if (null != byProjectId && 1 == byProjectId) {
+            scheme.preUpdate();
+            mapper.updateScheme(scheme);
+        }
+    }
+
     /**
      * 专职修改方法
      * @param reserveManagement
@@ -119,4 +140,11 @@ public class ReserveManagementService extends CrudService<ReserveManagementMappe
     }
 
 
+    /**
+     * 导出方案交底结论数据
+     * */
+    public List<ReserveManagement> findModuleList(ReserveManagement reserveManagement) {
+        return mapper.findModuleList(reserveManagement);
+    }
+
 }

+ 127 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/utils/ReserveExportUtil.java

@@ -227,6 +227,133 @@ public class ReserveExportUtil {
         }
     }
 
+
+    /**
+     * 导出前期基本信息
+     * @param response
+     * @param workbook
+     * @param list
+     */
+    public void exportJlModule(HttpServletResponse response, XSSFWorkbook workbook, List<ReserveManagement> list){
+        try {
+            int index = 1;//第一列序号
+            int rowNum = 4;//数据起始列
+            Sheet sheet = workbook.getSheetAt(0);
+            for(int i=0;i<list.size();i++){
+                Row row = sheet.createRow(rowNum+i);
+                Cell cell28 = crateCell(workbook,row,0); //交底牵头部门
+                Cell cell29 = crateCell(workbook,row,1); //交底参与部门
+                Cell cell30 = crateCell(workbook,row,2); //是否完成交底
+                Cell cell31 = crateCell(workbook,row,3); //项目管理中心人员
+                Cell cell32 = crateCell(workbook,row,4); //设计院人员
+                Cell cell33 = crateCell(workbook,row,5); //经研所人员
+                Cell cell34 = crateCell(workbook,row,6); //区域中心人员
+                Cell cell35 = crateCell(workbook,row,7); //不停电作业中心人员
+                Cell cell36 = crateCell(workbook,row,8); //作业方式
+                Cell cell37 = crateCell(workbook,row,9); //交底完成日期
+                Cell cell38 = crateCell(workbook,row,10); //备注
+                Cell cell39 = crateCell(workbook,row,11); //立项说明
+                Cell cell40 = crateCell(workbook,row,12); //不具备立项条件说明
+                Cell cell41 = crateCell(workbook,row,13); //方案变更说明
+                Cell cell42 = crateCell(workbook,row,14); //政处难度初判
+                Cell cell43 = crateCell(workbook,row,15); //是否有资本设备
+                Cell cell44 = crateCell(workbook,row,16); //是否有变电站新出线
+                Cell cell45 = crateCell(workbook,row,17); //是否已实施
+                Cell cell46 = crateCell(workbook,row,18); //现场情况描述
+                Cell cell47 = crateCell(workbook,row,19); //是否有实施必要性
+                Cell cell48 = crateCell(workbook,row,20); //实施无必要描述
+                Cell cell49 = crateCell(workbook,row,21); //是否存在前置条件
+                Cell cell50 = crateCell(workbook,row,22); //前置条件描述
+                Cell cell51= crateCell(workbook,row,23); //是否存在施工方案问题
+                Cell cell52 = crateCell(workbook,row,24); //施工方案问题描述
+                Cell cell53 = crateCell(workbook,row,25); //现场是否存在安全隐患
+                Cell cell54 = crateCell(workbook,row,26); //安全隐患描述
+                Cell cell55 = crateCell(workbook,row,27); //是否需要定制物资
+                Cell cell56 = crateCell(workbook,row,28); //定制物资描述
+                Cell cell57 = crateCell(workbook,row,29); //是否有拆旧物资
+                Cell cell58 = crateCell(workbook,row,30); //作业方式
+                Cell cell59 = crateCell(workbook,row,31); //停电问题描述
+                Cell cell60 = crateCell(workbook,row,32); //是否有土建工作量
+                Cell cell61 = crateCell(workbook,row,33); //是否有立杆工作量
+                Cell cell62 = crateCell(workbook,row,34); //总工作量描述
+                Cell cell63 = crateCell(workbook,row,35); //区域中心
+                Cell cell64 = crateCell(workbook,row,36); //供电所辖区
+                Cell cell65 = crateCell(workbook,row,37); //政处地点
+                Cell cell66 = crateCell(workbook,row,38); //政处类型
+                Cell cell67 = crateCell(workbook,row,39); //政处对象
+                Cell cell68 = crateCell(workbook,row,40); //政处描述
+                Cell cell69 = crateCell(workbook,row,41); //是否需规划报批
+                Cell cell70 = crateCell(workbook,row,42); //是否需办理安评航评手续
+                Cell cell71 = crateCell(workbook,row,43); //政处难点提醒
+
+                ReserveManagement reserveManagement = list.get(i);
+
+                cell28.setCellValue(reserveManagement.getDisclosureToCoordinate());
+                cell29.setCellValue(reserveManagement.getDisclosureParticipate());
+                cell30.setCellValue(reserveManagement.getWhetherFinishDisclosure());
+                cell31.setCellValue(reserveManagement.getProjectManagementPeople());
+                cell32.setCellValue(reserveManagement.getDesigningInstitutePeople());
+                cell33.setCellValue(reserveManagement.getIfoPeople());
+                cell34.setCellValue(reserveManagement.getRegionalCenterPeople());
+                cell35.setCellValue(reserveManagement.getUninterruptedOperationPeople());
+                cell36.setCellValue(reserveManagement.getWorkMode());
+
+                String dateStr = reserveManagement.getDisclosureFinishDateStr();
+                if(StringUtils.isNotBlank(dateStr)){
+                    cell37.setCellValue(dateStr);
+                }else{
+                    cell37.setCellValue("");
+                }
+
+                cell38.setCellValue(reserveManagement.getDisclosureRemarks());
+                cell39.setCellValue(reserveManagement.getProjectDescription());
+                cell40.setCellValue(reserveManagement.getDoNotPossessProjectDescription());
+                cell41.setCellValue(reserveManagement.getChangedProgramsExplain());
+                cell42.setCellValue(reserveManagement.getInitialDifficulty());
+                cell43.setCellValue(reserveManagement.getCapitalEquipment());
+                cell44.setCellValue(reserveManagement.getSubstationNewLine());
+                cell45.setCellValue(reserveManagement.getWhetherImplement());
+                cell46.setCellValue(reserveManagement.getFieldDescription());
+                cell47.setCellValue(reserveManagement.getNecessaryOfImplementation());
+                cell48.setCellValue(reserveManagement.getUnnecessaryDescription());
+                cell49.setCellValue(reserveManagement.getPrecondition());
+                cell50.setCellValue(reserveManagement.getConditionsDescribed());
+                cell51.setCellValue(reserveManagement.getConstructionSchemeProblem());
+                cell52.setCellValue(reserveManagement.getProblemDescriptionOfConstructionScheme());
+                cell53.setCellValue(reserveManagement.getExistingSecurityThreat());
+                cell54.setCellValue(reserveManagement.getSafetyHazardDescription());
+                cell55.setCellValue(reserveManagement.getCustomizedMaterials());
+                cell56.setCellValue(reserveManagement.getMaterialDescription());
+                cell57.setCellValue(reserveManagement.getDismantlingTheOldMaterial());
+                cell58.setCellValue(reserveManagement.getOperatingType());
+                cell59.setCellValue(reserveManagement.getProblemDescription());
+                cell60.setCellValue(reserveManagement.getCivilWork());
+                cell61.setCellValue(reserveManagement.getVerticalRodWorkload());
+                cell62.setCellValue(reserveManagement.getTotalWorkloadDescription());
+                cell63.setCellValue(reserveManagement.getRegionalCenter());
+                cell64.setCellValue(reserveManagement.getPowerSupplyArea());
+                cell65.setCellValue(reserveManagement.getZhengLocation());
+                cell66.setCellValue(reserveManagement.getZhengType());
+                cell67.setCellValue(reserveManagement.getZhengObject());
+                cell68.setCellValue(reserveManagement.getZhengDescribe());
+                cell69.setCellValue(reserveManagement.getProjectApproval());
+                cell70.setCellValue(reserveManagement.getCourseEvaluationProcedures());
+                cell71.setCellValue(reserveManagement.getZhengDifficultyWarn());
+            }
+
+            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

+ 1 - 1
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/utils/ReserveManagementProUtil.java

@@ -47,7 +47,7 @@ public class ReserveManagementProUtil {
                     reserveManagement.setProjectType((String)importUtil.getCellValue(row,16));
                     String costEstimateStr = importUtil.getCellValue(row,17).toString();
                     if(StringUtils.isNotBlank(costEstimateStr)){
-                        reserveManagement.setCostEstimate(Double.parseDouble(costEstimateStr));
+                        reserveManagement.setCostEstimate(costEstimateStr);
                     }
                     reserveManagement.setWhetherWindwardProject((String)importUtil.getCellValue(row,18));
                     reserveManagement.setProjectUrgencyDegree((String)importUtil.getCellValue(row,19));

+ 104 - 14
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/web/ReserveManagementController.java

@@ -1,10 +1,16 @@
 package com.jeeplus.modules.sg.managementcenter.reserveManagement.web;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.json.AjaxJson;
 import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.utils.excel.ExportExcel;
+import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.web.BaseController;
+import com.jeeplus.modules.filing.basicInformation.entity.BasicInformation;
+import com.jeeplus.modules.filing.summary.entity.Summary;
 import com.jeeplus.modules.sg.managementcenter.materialproject.util.ImportUtil;
+import com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ExportScheme;
 import com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ReserveManagement;
 import com.jeeplus.modules.sg.managementcenter.reserveManagement.service.ReserveManagementService;
 import com.jeeplus.modules.sg.managementcenter.reserveManagement.utils.ReserveExportUtil;
@@ -63,6 +69,20 @@ public class ReserveManagementController extends BaseController {
         return "modules/sg/managementcenter/reserveManagement/reserveManagementInformation";
     }
 
+
+    /**
+     * 方案交底结论列表页面
+     * @param reserveManagement
+     * @param model
+     * @return
+     */
+    @RequiresPermissions("sg:managementcenter:disClosureReserveModule:list")
+    @RequestMapping(value = "moduleList")
+    public String moduleList(ReserveManagement reserveManagement, Model model) {
+        model.addAttribute("reserveManagement", reserveManagement);
+        return "modules/sg/managementcenter/reserveManagement/disClosureReserveModuleList";
+    }
+
     /**
      * 项目储备信息数据列表
      * @param reserveManagement
@@ -81,6 +101,23 @@ public class ReserveManagementController extends BaseController {
     }
 
     /**
+     * 方案交底结论数据列表
+     * @param reserveManagement
+     * @param request
+     * @param response
+     * @param model
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("sg:managementcenter:disClosureReserveModule:list")
+    @RequestMapping(value = "moduleForm")
+    public Map<String, Object> moduleData(ReserveManagement reserveManagement, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<ReserveManagement> page = service.findModulePage(new Page<ReserveManagement>(request, response), reserveManagement);
+        return getBootstrapData(page);
+    }
+
+
+    /**
      * 专职人员增加,编辑表单页面
      * @param reserveManagement
      * @param model
@@ -262,21 +299,13 @@ public class ReserveManagementController extends BaseController {
     public AjaxJson jlImportBasic(@RequestParam("file") MultipartFile file, HttpServletResponse response, HttpServletRequest request) {
         AjaxJson j = new AjaxJson();
         try {
-            ImportUtil importUtil = new ImportUtil(file, 0, 0);
-            //获取导入表格所有数据
-            List<ReserveManagement> reserveManagementList = ReserveManagementProUtil.getProjectUtil(importUtil);
-            //查询已有的参数数据 并分类返回已存在数据和未存在数据
-            Map map = service.getExistProjectList(reserveManagementList);
-            //已存在数据
-            List<ReserveManagement> existList = (List<ReserveManagement>) map.get("exist");
-
-            //对已存在的数据进行修改
-            if(existList.size()>0){
-                for (ReserveManagement reserveManagement : existList) {
-                    service.updatejl(reserveManagement);
-                }
+            ImportExcel ei = new ImportExcel(file, 1, 0);
+            List<ExportScheme> list = ei.getDataList(ExportScheme.class);
+            for (ExportScheme s :
+                    list) {
+                service.jlSave(s);
             }
-            j.setMsg("已成功导入" + existList.size() + "条项目储备信息记录");
+            j.setMsg("已成功导入");
 
         } catch (Exception e) {
             j.setSuccess(false);
@@ -302,4 +331,65 @@ public class ReserveManagementController extends BaseController {
         XSSFWorkbook workbook = util.getWorkbook("reserveManagement");
         util.exportBasic(response,workbook,list);
     }
+
+
+    //导出excel
+    @ResponseBody
+    @RequiresPermissions("sg:managementcenter:reserveManagement:jlExport")
+    @RequestMapping(value = "jlExport")
+    public void jlExportExcel(ReserveManagement reserveManagement, HttpServletRequest request, HttpServletResponse response) {
+        List<ReserveManagement> list = service.findModuleList(reserveManagement);
+        //生成序列号
+        int i = 1;
+        for (ReserveManagement s : list) {
+            s.setId(String.valueOf(i));
+            i++;
+        }
+
+        ReserveExportUtil util = ReserveExportUtil.getOne();
+        XSSFWorkbook workbook = util.getWorkbook("reserveManagement");
+        util.exportJlModule(response,workbook,list);
+    }
+
+    /**
+     * 下载导入基础信息数据模板
+     */
+    @ResponseBody
+    @RequiresPermissions("test:managementcenter:reserveManagement:import")
+    @RequestMapping(value = "template")
+    public AjaxJson importTemplate(HttpServletResponse response) {
+        AjaxJson j = new AjaxJson();
+        try {
+            String fileName = "储备项目基础信息导入模板.xlsx";
+            List<BasicInformation> list = Lists.newArrayList();
+            new ExportExcel("储备项目基础信息", BasicInformation.class, 1).setDataList(list).write(response, fileName).dispose();
+            return null;
+        } catch (Exception e) {
+            j.setSuccess(false);
+            j.setMsg( "导入模板下载失败!失败信息:"+e.getMessage());
+        }
+        return j;
+    }
+
+
+    /**
+     * 下载导入基础信息数据模板
+     */
+    @ResponseBody
+    @RequiresPermissions("test:managementcenter:reserveManagement:import")
+    @RequestMapping(value = "schemeTemplate")
+    public AjaxJson importSchemeTemplate(HttpServletResponse response) {
+        AjaxJson j = new AjaxJson();
+        try {
+            String fileName = "方案交底结论导入模板.xlsx";
+            List<BasicInformation> list = Lists.newArrayList();
+            new ExportExcel("方案交底结论", ExportScheme.class, 1).setDataList(list).write(response, fileName).dispose();
+            return null;
+        } catch (Exception e) {
+            j.setSuccess(false);
+            j.setMsg( "导入模板下载失败!失败信息:"+e.getMessage());
+        }
+        return j;
+    }
+
 }

ファイルの差分が大きいため隠しています
+ 1312 - 0
src/main/webapp/webpage/modules/filing/summary/childForm.jsp


ファイルの差分が大きいため隠しています
+ 1396 - 0
src/main/webapp/webpage/modules/filing/summary/summaryForm.jsp


ファイルの差分が大きいため隠しています
+ 1634 - 0
src/main/webapp/webpage/modules/filing/summary/summaryList.js


+ 87 - 0
src/main/webapp/webpage/modules/filing/summary/summaryList.jsp

@@ -0,0 +1,87 @@
+<%@ 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="summaryList.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="summary"
+                               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="projectCode" htmlEscape="false" maxlength="257"  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">
+                <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>
+                <shiro:hasPermission name="test:filing:basicInformation:edit">
+                    <button id="edit" class="btn btn-success" disabled onclick="edit()">
+                        <i class="glyphicon glyphicon-edit"></i> 修改
+                    </button>
+                </shiro:hasPermission>
+                <shiro:hasPermission name="test:filing:basicInformation:import">
+                    <button id="btnImport" class="btn btn-info"><i class="fa fa-folder-open-o"></i> 导入</button>
+                </shiro:hasPermission>
+                <shiro:hasPermission name="test:filing:basicInformation:export">
+                    <button id="export" class="btn btn-warning">
+                        <i class="fa fa-file-excel-o"></i> 导出
+                    </button>
+                </shiro:hasPermission>
+                <shiro:hasPermission name="test:filing:basicInformation:export">
+                    <button id="exportFiles" class="btn btn-warning">
+                        <i class="fa fa-file-excel-o"></i> 导出附件
+                    </button>
+                </shiro:hasPermission>
+            </div>
+
+            <!-- 表格 -->
+            <table id="basicTable" data-toolbar="#toolbar"></table>
+        </div>
+    </div>
+</div>
+</body>
+</html>

+ 194 - 0
src/main/webapp/webpage/modules/filing/summary/updateForm.jsp

@@ -0,0 +1,194 @@
+<%@ 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{
+                jp.loading();
+                jp.post("${ctx}/filing/basicInformation/updateSave",$('#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);
+                    }
+                })
+			}
+
+        }
+		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");
+			}
+		}
+	</script>
+</head>
+<body class="bg-white">
+		<form:form id="inputForm" modelAttribute="summary" action="${ctx}/filing/basicInformation/updateSave" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+		<table class="table table-bordered">
+		   <tbody>
+				<tr>
+					<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目编码:</label></td>
+					<td class="width-35">
+						<form:input path="projectCode" htmlEscape="false"  class="form-control required"/>
+					</td>
+					<td class="width-15 active"><label class="pull-right"><font color="red">*</font>单体编码:</label></td>
+					<td class="width-35">
+						<form:input path="monomerCode" htmlEscape="false"  class="form-control required"/>
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目名称:</label></td>
+					<td class="width-35">
+						<form:input path="entryName" htmlEscape="false"  class="form-control required"/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">工程属性/重点程度:</label></td>
+					<td class="width-35">
+						<form:input path="emphasis" htmlEscape="false"  class="form-control"/>
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">建设年度1:</label></td>
+					<td class="width-35">
+						<form:input path="constructionYear" htmlEscape="false" rows="4"    class="form-control "/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">建设年度1投资:</label></td>
+					<td class="width-35">
+						<form:input path="annualInvestment" htmlEscape="false" rows="4"    class="form-control "/>
+					</td>
+		  		</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">建设年度2:</label></td>
+					<td class="width-35">
+						<form:input path="constructionYearTwo" htmlEscape="false" rows="4"    class="form-control "/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">建设年度2投资:</label></td>
+					<td class="width-35">
+						<form:input path="annualInvestmentTwo" htmlEscape="false" rows="4"    class="form-control "/>
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">建设年度3:</label></td>
+					<td class="width-35">
+						<form:input path="constructionYearThree" htmlEscape="false" rows="4"    class="form-control "/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">建设年度3投资:</label></td>
+					<td class="width-35">
+						<form:input path="annualInvestmentThree" htmlEscape="false" rows="4"    class="form-control "/>
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">建设年度4:</label></td>
+					<td class="width-35">
+						<form:input path="constructionYearFour" htmlEscape="false" rows="4"    class="form-control "/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">建设年度4投资:</label></td>
+					<td class="width-35">
+						<form:input path="annualInvestmentFour" htmlEscape="false" rows="4"    class="form-control "/>
+					</td>
+				</tr>
+		 	</tbody>
+		</table>
+		<div class="tabs-container">
+            <div class="tab-content">
+				<div id="tab-1" class="tab-pane fade in  active">
+			<a class="btn btn-white btn-sm" onclick="addRow('#basicChildList', basicInformationRowIdx, basicInformationTpl);basicInformationRowIdx = basicInformationRowIdx + 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>单体编码</th>
+						<th>项目名称</th>
+						<th width="10">&nbsp;</th>
+					</tr>
+				</thead>
+				<tbody id="basicChildList">
+				</tbody>
+			</table>
+			<script type="text/template" id="basicInformationTpl">//<!--
+				<tr id="basicChildList{{idx}}">
+					<td class="hide">
+						<input id="basicChildList{{idx}}_id" name="basicChildList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+						<input id="basicChildList{{idx}}_delFlag" name="basicChildList[{{idx}}].delFlag" type="hidden" value="0"/>
+					</td>
+					
+					<td  class="max-width-250">
+						<input type='text'  name="basicChildList[{{idx}}].projectCode" class="form-control"  value="{{row.projectCode}}"/>
+					</td>
+
+					<td  class="max-width-250">
+						<input type='text'  name="basicChildList[{{idx}}].monomerCode" class="form-control"  value="{{row.monomerCode}}"/>
+					</td>
+					<td>
+						<input type='text'  name="basicChildList[{{idx}}].entryName" class="form-control"  value="{{row.entryName}}"/>
+					</td>
+					<td class="text-center" width="10">
+						{{#delBtn}}<span class="close" onclick="delRow(this, '#basicChildList{{idx}}')" title="删除">&times;</span>{{/delBtn}}
+					</td>
+				</tr>//-->
+			</script>
+			<script type="text/javascript">
+				var basicInformationRowIdx = 0, basicInformationTpl = $("#basicInformationTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+				$(document).ready(function() {
+					var data = ${fns:toJson(basicInformation.basicChildList)};
+					for (var i=0; i<data.length; i++){
+						addRow('#basicChildList', basicInformationRowIdx, basicInformationTpl, data[i]);
+						basicInformationRowIdx = basicInformationRowIdx + 1;
+					}
+				});
+			</script>
+			</div>
+		</div>
+		</div>
+		</form:form>
+</body>
+</html>

+ 519 - 0
src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/disClosureReserveModuleList.js

@@ -0,0 +1,519 @@
+<%@ 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}/sg/managementCenter/reserveManagement/moduleForm",
+        //默认值为 '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}/sg/managementcenter/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,
+                    rowspan:2,
+                }
+               ,{
+                    field: 'projectReserveId',
+                    width:150,
+                    title: '项目储备编号',
+                    rowspan:2,
+                    formatter:function(value, row , index){
+                        if(value == null || value ==""){
+                            value = "-";
+                        }
+                    <c:choose>
+                        <c:when test="${fns:hasPermission('sg:managementcenter:reserveManagement:jlEdit')}">
+                        return "<a href='javascript:jlEdit(\""+row.id+"\")'>"+value+"</a>";
+                    </c:when>
+                        <c:otherwise>
+                        return value;
+                    </c:otherwise>
+                        </c:choose>
+
+                    }
+                },{
+                field: 'projectName',
+                width:100,
+                title: '项目名称',
+                rowspan:2,
+                },
+/*方案交底组织*/
+                {
+                    field: 'disclosureToCoordinate',
+                    width:100,
+                    title: '交底牵头</br>部门',
+                    rowspan:2,
+                },{
+                    field: 'disclosureParticipate',
+                    width:100,
+                    title: '交底参与</br>部门',
+                    rowspan:2,
+                },{
+                    field: 'whetherFinishDisclosure',
+                    width:60,
+                    title: '是否</br>完成</br>交底',
+                    rowspan:2,
+                },{
+                    field: 'projectManagementPeople',
+                    width:80,
+                    title: '项目</br>管理中心</br>人员',
+                    rowspan:2,
+                },{
+                    field: 'designingInstitutePeople',
+                    width:70,
+                    title: '设计院</br>人员',
+                    rowspan:2,
+                },{
+                    field: 'ifoPeople',
+                    width:70,
+                    title: '经研所</br>人员',
+                    rowspan:2,
+                },{
+                    field: 'regionalCenterPeople',
+                    width:70,
+                    title: '区域</br>中心</br>人员',
+                    rowspan:2,
+                },{
+                    field: 'uninterruptedOperationPeople',
+                    width:80,
+                    title: '不停电</br>作业</br>中心人员',
+                    rowspan:2,
+                },{
+                    field: 'workMode',
+                    width:100,
+                    title: '作业方式',
+                    rowspan:2,
+                },{
+                    field: 'disclosureFinishDate',
+                    width:100,
+                    title: '交底完成</br>日期',
+                    rowspan:2,
+                    //——修改——获取日期列的值进行转换
+                    formatter: function (value, row, index) {
+                        return changeDateFormat(value)
+                    },
+                },{
+                    field: 'disclosureRemarks',
+                    width:200,
+                    title: '备注',
+                    rowspan:2,
+                },
+/*方案交底结论*/
+                {
+                    title: "交底结论",
+                    width:400,
+                    colspan:4,
+                },{
+                    title: "成本资本划分",
+                    width:200,
+                    colspan:2,
+                },{
+                    title: "现场是否实施",
+                    width:200,
+                    colspan:2,
+                },{
+                    title: "实施必要性",
+                    width:200,
+                    colspan:2,
+                },{
+                    title: "施工前置条件检查",
+                    width:200,
+                    colspan:2,
+                },{
+                    title: "施工方案可行性检查",
+                    width:200,
+                    colspan:2,
+                },{
+                    title: "方案安全性检查",
+                    width:200,
+                    colspan:2,
+                },{
+                    title: "物资交底",
+                    width:300,
+                    colspan:3,
+                },{
+                    title: "作业方式",
+                    width:200,
+                    colspan:2,
+                },{
+                    title: "工作量描述",
+                    width:300,
+                    colspan:3,
+                },{
+                    title: "政处交底",
+                    width:900,
+                    colspan:9,
+                }
+            ],[
+                {
+                    field: 'projectDescription',
+                    width:100,
+                    title: '立项说明',
+                },
+                {
+                    field: 'doNotPossessProjectDescription',
+                    width:100,
+                    title: '不具备立项</br>条件说明',
+                },
+                {
+                    field: 'changedProgramsExplain',
+                    width:100,
+                    title: '方案变更</br>说明',
+                },
+                {
+                    field: 'initialDifficulty',
+                    width:100,
+                    title: '政处</br>难度初判',
+                },
+                {
+                    field: 'capitalEquipment',
+                    width:770,
+                    title: '是否有</br>资本</br>设备',
+                },
+                {
+                    field: 'substationNewLine',
+                    width:70,
+                    title: '是否有</br>变电站</br>新出线',
+                },
+                {
+                    field: 'whetherImplement',
+                    width:70,
+                    title: '是否</br>已实施',
+                },
+                {
+                    field: 'fieldDescription',
+                    width:100,
+                    title: '现场情况</br>描述',
+                },
+                {
+                    field: 'necessaryOfImplementation',
+                    width:70,
+                    title: '是否有</br>实施</br>必要性',
+                },
+                {
+                    field: 'unnecessaryDescription',
+                    width:100,
+                    title: '实施无必要</br>描述',
+                },
+                {
+                    field: 'precondition',
+                    width:80,
+                    title: '是否</br>存在</br>前置条件',
+                },
+                {
+                    field: 'conditionsDescribed',
+                    width:100,
+                    title: '前置条件</br>描述',
+                },
+                {
+                    field: 'constructionSchemeProblem',
+                    width:80,
+                    title: '是否</br>存在</br>施工方案</br>问题',
+                },
+                {
+                    field: 'problemDescriptionOfConstructionScheme',
+                    width:100,
+                    title: '施工方案</br>问题描述',
+                },
+                {
+                    field: 'existingSecurityThreat',
+                    width:100,
+                    title: '现场</br>是否存在</br>安全隐患',
+                },
+                {
+                    field: 'safetyHazardDescription',
+                    width:100,
+                    title: '安全隐患</br>描述',
+                },
+                {
+                    field: 'customizedMaterials',
+                    width:80,
+                    title: '是否</br>需要</br>定制物资',
+                },
+                {
+                    field: 'materialDescription',
+                    width:100,
+                    title: '定制物资</br>描述',
+                },
+                {
+                    field: 'dismantlingTheOldMaterial',
+                    width:80,
+                    title: '是否有</br>拆旧物资',
+                },
+                {
+                    field: 'operatingType',
+                    width:100,
+                    title: '作业方式',
+                },
+                {
+                    field: 'problemDescription',
+                    width:100,
+                    title: '停电问题</br>描述',
+                },
+                {
+                    field: 'civilWork',
+                    width:70,
+                    title: '是否有</br>土建</br>工作量',
+                },
+                {
+                    field: 'verticalRodWorkload',
+                    width:70,
+                    title: '是否有</br>立杆</br>工作量',
+                },
+                {
+                    field: 'totalWorkloadDescription',
+                    width:100,
+                    title: '总工作量</br>描述',
+                },
+                {
+                    field: 'regionalCenter',
+                    width:80,
+                    title: '区域</br>中心',
+                },
+                {
+                    field: 'powerSupplyArea',
+                    width:80,
+                    title: '供电所</br>辖区',
+                },
+                {
+                    field: 'zhengLocation',
+                    width:80,
+                    title: '政处</br>地点',
+                },
+                {
+                    field: 'zhengType',
+                    width:80,
+                    title: '政处</br>类型',
+                },
+                {
+                    field: 'zhengObject',
+                    width:80,
+                    title: '政处</br>对象',
+                },
+                {
+                    field: 'zhengDescribe',
+                    width:100,
+                    title: '政处描述',
+                },
+                {
+                    field: 'projectApproval',
+                    width:80,
+                    title: '是否需</br>规划报批',
+                },
+                {
+                    field: 'courseEvaluationProcedures',
+                    width:80,
+                    title: '是否需</br>办理</br>安评航评</br>手续',
+                },
+                {
+                    field: 'zhengDifficultyWarn',
+                    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);
+    });
+
+
+    $("#jlImport").click(function () {
+        jp.open({
+            type: 2,
+            area: [500, 200],
+            auto: true,
+            title: "导入数据",
+            content: "${ctx}/tag/importExcel",
+            btn: ['下载模板','确定', '关闭'],
+            btn1: function (index) {
+                jp.downloadFile('${ctx}/sg/managementCenter/reserveManagement/schemeTemplate');
+            },
+            btn2: function (index, layero) {
+                var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                iframeWin.contentWindow.importExcel('${ctx}/sg/managementCenter/reserveManagement/jlImport', function (data) {
+                    if (data.success) {
+                        jp.success(data.msg);
+                        refresh();
+                    } else {
+                        jp.error(data.msg);
+                    }
+                    jp.close(index);
+                });//调用保存事件
+                return false;
+            },
+
+            btn3: function (index) {
+                //  jp.close(index);
+            }
+        });
+    });
+
+    $("#btnExport").click(function () {
+        var projectReserveId = $("#projectReserveId").val();
+        var projectName = $("#projectName").val();
+        jp.downloadFile('${ctx}/sg/managementCenter/reserveManagement/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 jlEdit(id) {//没有权限时,不显示确定按钮
+    if (id == undefined) {
+        id = getIdSelections();
+    }
+    jp.openSaveDialog('编辑储备项目方案交底结论', "${ctx}/sg/managementCenter/reserveManagement/jlEdit?id=" + id, '800px', '500px');
+}
+
+function view(id) {//没有权限时,不显示确定按钮
+    if (id == undefined) {
+        id = getIdSelections();
+    }
+    jp.openViewDialog('查看储备项目方案交底结论', "${ctx}/sg/managementCenter/reserveManagement/view?id=" + id, '800px', '500px');
+}
+
+function deleteAll(){
+
+    jp.confirm('确认要删除该储备项目方案交底结论吗?', function(){
+        jp.loading();
+        jp.get("${ctx}/sg/managementCenter/reserveManagement/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>

+ 78 - 0
src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/disClosureReserveModuleList.jsp

@@ -0,0 +1,78 @@
+<%@ 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="disClosureReserveModuleList.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="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="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="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="sg:managementcenter:reserveManagement: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>

+ 35 - 331
src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/reserveManagementInformation.js

@@ -78,82 +78,57 @@ $(document).ready(function () {
             $("#search-collapse").slideToggle();
         },
         columns:
-
-            [/*[
-                {
-                    title: "2021年镇江本部配网项目储备表",
-                    width:8000,
-                    colspan: 72,
-                }
-            ],[
-                {
-                    title: "储备项目基本信息",
-                    width:2100,
-                    colspan:23,
-                },{
-                    title: "设计及评审情况",
-                    width:500,
-                    colspan:5,
-                },{
-                    title: "方案交底组织",
-                    width:1100,
-                    colspan:11,
-                },{
-                    title: "方案交底结论",
-                    width:3300,
-                    colspan:33,
-                }
-            ],*/[
+            [
                 {
                     checkbox: true,
                     width:36,
-                    rowspan:2,
+                   
                 }
                 , {
                     field: 'projectNature',
                     width:65,
                     title: '项目</br>性质',
-                    rowspan:2,
+                   
                 },{
                     field: 'demandUnit',
                     width:70,
                     title: '需求</br>单位',
-                    rowspan:2,
+                   
                 },{
                     field: 'district',
                     width:60,
                     title: '区域',
-                    rowspan:2,
+                   
                 },{
                     field: 'projectGroup',
                     width:70,
                     title: '项目</br>分组',
-                    rowspan:2,
+                   
                 },{
                     field: 'reserveBatches',
                     width:70,
                     title: '储备</br>批次',
-                    rowspan:2,
+                   
                 },{
                     field: 'blockSupply',
                     width:60,
                     title: '供电</br>区域',
-                    rowspan:2,
+                   
                 },{
                     field: 'gridNumber',
                     width:90,
                     title: '网格编号',
-                    rowspan:2,
+                   
                 },{
                     field: 'cellNumber',
                     width:100,
                     title: '单元格编号',
-                    rowspan:2,
+                   
                 },{
                     field: 'projectReserveId',
                     width:150,
                     title: '项目储备编号',
-                    rowspan:2,
+                   
                     formatter:function(value, row , index){
                         if(value == null || value ==""){
                             value = "-";
@@ -172,369 +147,95 @@ $(document).ready(function () {
                     field: 'powerGridProjectId',
                     width:100,
                     title: '电网项目</br>编号',
-                    rowspan:2,
+                   
                 },{
                     field: 'projectName',
                     width:200,
                     title: '项目名称',
-                    rowspan:2,
+                   
                 },{
                     field: 'constructionNecessityAndContent',
                     width:400,
                     title: '建设必要性及内容',
-                    rowspan:2,
+                   
                 },{
                     field: 'substationName',
                     width:80,
                     title: '变电站</br>名称',
-                    rowspan:2,
+                   
                 },{
                     field: 'circuitName',
                     width:100,
                     title: '线路名称',
-                    rowspan:2,
+                   
                 },{
                     field: 'netRackProjectDivide',
                     width:80,
                     title: '网架项目</br>划分',
-                    rowspan:2,
+                   
                 },{
                     field: 'projectType',
                     width:100,
                     title: '项目类型',
-                    rowspan:2,
+                   
                 },{
                     field: 'costEstimate',
                     width:80,
                     title: '费用</br>估算',
-                    rowspan:2,
+                   
                 },{
                     field: 'whetherWindwardProject',
                     width:80,
                     title: '是否</br>迎峰度夏</br>项目',
-                    rowspan:2,
+                   
                 },{
                     field: 'projectUrgencyDegree',
                     width:80,
                     title: '项目</br>紧急程度',
-                    rowspan:2,
+                   
                 },{
                     field: 'implementIssuedYear',
                     width:100,
                     title: '拟实施下达</br>年份',
-                    rowspan:2,
+                   
                 },{
                     field: 'implementBatch',
                     width:100,
                     title: '拟实施批次',
-                    rowspan:2,
+                   
                 },{
                     field: 'basicRemarks',
                     width:200,
                     title: '备注',
-                    rowspan:2,
+                   
                 },
 /*设计及评审情况*/
                 {
                     field: 'designCondition',
                     width:80,
                     title: '设计</br>状态',
-                    rowspan:2,
+                   
                 },{
                     field: 'whetherPassReview',
                     width:80,
                     title: '是否</br>通过</br>省公司</br>评审',
-                    rowspan:2,
+                   
                 },{
                     field: 'whetherNeedWiringDiagram',
                     width:60,
                     title: '是否</br>需提交</br>路径图',
-                    rowspan:2,
+                   
                 },{
                     field: 'whetherFinishMaterials',
                     width:80,
                     title: '是否</br>完成物资</br>清册编制',
-                    rowspan:2,
+                   
                 },{
                     field: 'whetherFinishDrawing',
                     width:60,
                     title: '是否</br>完成</br>图纸</br>移交',
-                    rowspan:2,
-                },
-/*方案交底组织*/
-                {
-                    field: 'disclosureToCoordinate',
-                    width:100,
-                    title: '交底牵头</br>部门',
-                    rowspan:2,
-                },{
-                    field: 'disclosureParticipate',
-                    width:100,
-                    title: '交底参与</br>部门',
-                    rowspan:2,
-                },{
-                    field: 'whetherFinishDisclosure',
-                    width:60,
-                    title: '是否</br>完成</br>交底',
-                    rowspan:2,
-                },{
-                    field: 'projectManagementPeople',
-                    width:80,
-                    title: '项目</br>管理中心</br>人员',
-                    rowspan:2,
-                },{
-                    field: 'designingInstitutePeople',
-                    width:70,
-                    title: '设计院</br>人员',
-                    rowspan:2,
-                },{
-                    field: 'ifoPeople',
-                    width:70,
-                    title: '经研所</br>人员',
-                    rowspan:2,
-                },{
-                    field: 'regionalCenterPeople',
-                    width:70,
-                    title: '区域</br>中心</br>人员',
-                    rowspan:2,
-                },{
-                    field: 'uninterruptedOperationPeople',
-                    width:80,
-                    title: '不停电</br>作业</br>中心人员',
-                    rowspan:2,
-                },{
-                    field: 'workMode',
-                    width:100,
-                    title: '作业方式',
-                    rowspan:2,
-                },{
-                    field: 'disclosureFinishDate',
-                    width:100,
-                    title: '交底完成</br>日期',
-                    rowspan:2,
-                    //——修改——获取日期列的值进行转换
-                    formatter: function (value, row, index) {
-                        return changeDateFormat(value)
-                    },
-                },{
-                    field: 'disclosureRemarks',
-                    width:200,
-                    title: '备注',
-                    rowspan:2,
-                },
-/*方案交底结论*/
-                {
-                    title: "交底结论",
-                    width:400,
-                    colspan:4,
-                },{
-                    title: "成本资本划分",
-                    width:200,
-                    colspan:2,
-                },{
-                    title: "现场是否实施",
-                    width:200,
-                    colspan:2,
-                },{
-                    title: "实施必要性",
-                    width:200,
-                    colspan:2,
-                },{
-                    title: "施工前置条件检查",
-                    width:200,
-                    colspan:2,
-                },{
-                    title: "施工方案可行性检查",
-                    width:200,
-                    colspan:2,
-                },{
-                    title: "方案安全性检查",
-                    width:200,
-                    colspan:2,
-                },{
-                    title: "物资交底",
-                    width:300,
-                    colspan:3,
-                },{
-                    title: "作业方式",
-                    width:200,
-                    colspan:2,
-                },{
-                    title: "工作量描述",
-                    width:300,
-                    colspan:3,
-                },{
-                    title: "政处交底",
-                    width:900,
-                    colspan:9,
-                }
-            ],[
-                {
-                    field: 'projectDescription',
-                    width:100,
-                    title: '立项说明',
-                },
-                {
-                    field: 'doNotPossessProjectDescription',
-                    width:100,
-                    title: '不具备立项</br>条件说明',
-                },
-                {
-                    field: 'changedProgramsExplain',
-                    width:100,
-                    title: '方案变更</br>说明',
-                },
-                {
-                    field: 'initialDifficulty',
-                    width:100,
-                    title: '政处</br>难度初判',
-                },
-                {
-                    field: 'capitalEquipment',
-                    width:770,
-                    title: '是否有</br>资本</br>设备',
-                },
-                {
-                    field: 'substationNewLine',
-                    width:70,
-                    title: '是否有</br>变电站</br>新出线',
-                },
-                {
-                    field: 'whetherImplement',
-                    width:70,
-                    title: '是否</br>已实施',
-                },
-                {
-                    field: 'fieldDescription',
-                    width:100,
-                    title: '现场情况</br>描述',
-                },
-                {
-                    field: 'necessaryOfImplementation',
-                    width:70,
-                    title: '是否有</br>实施</br>必要性',
-                },
-                {
-                    field: 'unnecessaryDescription',
-                    width:100,
-                    title: '实施无必要</br>描述',
-                },
-                {
-                    field: 'precondition',
-                    width:80,
-                    title: '是否</br>存在</br>前置条件',
-                },
-                {
-                    field: 'conditionsDescribed',
-                    width:100,
-                    title: '前置条件</br>描述',
+                   
                 },
-                {
-                    field: 'constructionSchemeProblem',
-                    width:80,
-                    title: '是否</br>存在</br>施工方案</br>问题',
-                },
-                {
-                    field: 'problemDescriptionOfConstructionScheme',
-                    width:100,
-                    title: '施工方案</br>问题描述',
-                },
-                {
-                    field: 'existingSecurityThreat',
-                    width:100,
-                    title: '现场</br>是否存在</br>安全隐患',
-                },
-                {
-                    field: 'safetyHazardDescription',
-                    width:100,
-                    title: '安全隐患</br>描述',
-                },
-                {
-                    field: 'customizedMaterials',
-                    width:80,
-                    title: '是否</br>需要</br>定制物资',
-                },
-                {
-                    field: 'materialDescription',
-                    width:100,
-                    title: '定制物资</br>描述',
-                },
-                {
-                    field: 'dismantlingTheOldMaterial',
-                    width:80,
-                    title: '是否有</br>拆旧物资',
-                },
-                {
-                    field: 'operatingType',
-                    width:100,
-                    title: '作业方式',
-                },
-                {
-                    field: 'problemDescription',
-                    width:100,
-                    title: '停电问题</br>描述',
-                },
-                {
-                    field: 'civilWork',
-                    width:70,
-                    title: '是否有</br>土建</br>工作量',
-                },
-                {
-                    field: 'verticalRodWorkload',
-                    width:70,
-                    title: '是否有</br>立杆</br>工作量',
-                },
-                {
-                    field: 'totalWorkloadDescription',
-                    width:100,
-                    title: '总工作量</br>描述',
-                },
-                {
-                    field: 'regionalCenter',
-                    width:80,
-                    title: '区域</br>中心',
-                },
-                {
-                    field: 'powerSupplyArea',
-                    width:80,
-                    title: '供电所</br>辖区',
-                },
-                {
-                    field: 'zhengLocation',
-                    width:80,
-                    title: '政处</br>地点',
-                },
-                {
-                    field: 'zhengType',
-                    width:80,
-                    title: '政处</br>类型',
-                },
-                {
-                    field: 'zhengObject',
-                    width:80,
-                    title: '政处</br>对象',
-                },
-                {
-                    field: 'zhengDescribe',
-                    width:100,
-                    title: '政处描述',
-                },
-                {
-                    field: 'projectApproval',
-                    width:80,
-                    title: '是否需</br>规划报批',
-                },
-                {
-                    field: 'courseEvaluationProcedures',
-                    width:80,
-                    title: '是否需</br>办理</br>安评航评</br>手续',
-                },
-                {
-                    field: 'zhengDifficultyWarn',
-                    width:100,
-                    title: '政处难点</br>提醒',
-                }
-            ]
         ]
     });
 
@@ -556,8 +257,11 @@ $(document).ready(function () {
             auto: true,
             title: "导入数据",
             content: "${ctx}/tag/importExcel",
-            btn: ['确定', '关闭'],
-            btn1: function (index, layero) {
+            btn: ['下载模板','确定', '关闭'],
+            btn1: function (index) {
+                jp.downloadFile('${ctx}/sg/managementCenter/reserveManagement/template');
+            },
+            btn2: function (index, layero) {
                 var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
                 iframeWin.contentWindow.importExcel('${ctx}/sg/managementCenter/reserveManagement/import', function (data) {
                     if (data.success) {
@@ -571,7 +275,7 @@ $(document).ready(function () {
                 return false;
             },
 
-            btn2: function (index) {
+            btn3: function (index) {
                 //  jp.close(index);
             }
         });

+ 4 - 4
src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/reserveManagementInformation.jsp

@@ -62,11 +62,11 @@
 					<i class="glyphicon glyphicon-edit"></i> 修改 <!--专职修改-->
 				</button>
 			</shiro:hasPermission>
-			<shiro:hasPermission name="sg:managementcenter:reserveManagement:jlEdit">
+<%--			<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>--%>
 			<shiro:hasPermission name="sg:managementcenter:reserveManagement:del">
 				<button id="remove" class="btn btn-danger" onclick="deleteAll()">
 					<i class="glyphicon glyphicon-remove"></i> 删除
@@ -77,11 +77,11 @@
 					<i class="fa fa-folder-open-o"></i> 导入  <!--专职导入-->
 				</button>
 			</shiro:hasPermission>
-			<shiro:hasPermission name="sg:managementcenter:reserveManagement:jlImport">
+<%--			<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>--%>
 			<shiro:hasPermission name="sg:managementcenter:reserveManagement:export">
 				<button id="btnExport" class="btn btn-warning">
 					<i class="fa fa-file-excel-o"></i> 导出