Kaynağa Gözat

土建导出,电气/涉电导出 管理

lem 5 yıl önce
ebeveyn
işleme
fe0a0d3d89
26 değiştirilmiş dosya ile 1817 ekleme ve 96 silme
  1. 3 0
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/entity/MaterialModule.java
  2. 20 0
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/entity/NonPower.java
  3. 5 0
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/MaterialModuleMapper.java
  4. 3 1
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/NonPowerMapper.java
  5. 70 0
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/xml/MaterialModuleMapper.xml
  6. 69 30
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/xml/NonPowerMapper.xml
  7. 12 0
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/service/MaterialModuleService.java
  8. 13 2
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/service/NonPowerService.java
  9. 154 0
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/web/MaterialModuleController.java
  10. 27 41
      src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/web/NonPowerController.java
  11. 1 1
      src/main/resources/freemarker/civilEnd.ftl
  12. 1 1
      src/main/resources/freemarker/civilStart.ftl
  13. 315 0
      src/main/resources/freemarker/electricityEnd.ftl
  14. 315 0
      src/main/resources/freemarker/electricityStart.ftl
  15. 5 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.js
  16. 3 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.jsp
  17. 258 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/exportPowerList.js
  18. 65 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/exportPowerList.jsp
  19. 276 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonExportList.js
  20. 65 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonExportList.jsp
  21. 7 3
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.js
  22. 4 4
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.jsp
  23. 1 1
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerEnd.js
  24. 4 4
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerEnd.jsp
  25. 4 8
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/rePowerEnd.js
  26. 117 0
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/rePowerEnd.jsp

+ 3 - 0
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/entity/MaterialModule.java

@@ -5,6 +5,9 @@ import com.jeeplus.modules.sg.managementcenter.project.entity.BasicInformation;
 
 import java.util.Date;
 
+/**
+ * 施工验收流程实体类
+ * */
 public class MaterialModule extends ActEntity<MaterialModule> {
     private static final long serialVersionUID = 1L;
     //项目定义号

+ 20 - 0
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/entity/NonPower.java

@@ -25,6 +25,10 @@ public class NonPower extends ActEntity<NonPower> {
     private String plannedStart;
     //计划竣工时间
     private String plannedEnd;
+    //实际开工时间
+    private  String actualStart;
+    //实际竣工时间
+    private  String actualEnd;
     //项目负责人
     private String projectManager;
     //线路名称
@@ -116,6 +120,22 @@ public class NonPower extends ActEntity<NonPower> {
         this.plannedEnd = plannedEnd;
     }
 
+    public String getActualStart() {
+        return actualStart;
+    }
+
+    public void setActualStart(String actualStart) {
+        this.actualStart = actualStart;
+    }
+
+    public String getActualEnd() {
+        return actualEnd;
+    }
+
+    public void setActualEnd(String actualEnd) {
+        this.actualEnd = actualEnd;
+    }
+
     public String getProjectManager() {
         return projectManager;
     }

+ 5 - 0
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/MaterialModuleMapper.java

@@ -9,6 +9,7 @@ import com.jeeplus.modules.sg.advence.activiti.entity.Advance;
 import com.jeeplus.modules.sg.managementcenter.activiti.entity.EngineeringAmount;
 import com.jeeplus.modules.sg.managementcenter.constructionProject.entity.ConstructionProject;
 import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
+import com.jeeplus.modules.sg.materialmodule.activiti.entity.NonPower;
 import com.jeeplus.modules.sg.picking.activiti.entity.CapitalExport;
 import org.apache.ibatis.annotations.Param;
 
@@ -53,4 +54,8 @@ public interface MaterialModuleMapper extends BaseMapper<MaterialModule> {
     List<EngineeringAmount> findProcessList(String reserveProjectName);
 
     void updateSeveralTimes(@Param("procInsId") String procInsId,@Param("number") int number);
+
+    MaterialModule findById(String id);
+
+    List<MaterialModule> findListPage(MaterialModule materialModule);
 }

+ 3 - 1
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/NonPowerMapper.java

@@ -37,5 +37,7 @@ public interface NonPowerMapper extends BaseMapper<NonPower> {
      */
     NonPower findIsNonPower(String reserveProjectName);
 
-    NonPower getByProcInsId(String procInsId);
+    NonPower getById(String procInsId);
+
+    List<NonPower> findListPage(NonPower nonPower);
 }

+ 70 - 0
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/xml/MaterialModuleMapper.xml

@@ -287,4 +287,74 @@
                where canEnter = '2'
                  and reserveProjectName = #{reserveProjectName});
     </select>
+    <select id="findById" resultType="com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule">
+        SELECT
+            a.id,
+            a.projectId,
+            a.projectName,
+            a.reserveProjectName,
+            b.municipalCompany AS buildingUnit,
+            b.erpNo AS projectNumber,
+            xpa.constructionUnit AS constructionUnit,
+            a.plannedStart,
+            a.plannedEnd,
+            a.actualStart,
+            a.actualEnd,
+            a.projectManager,
+            b.lineName,
+            a.personInCharge,
+            a.workPlace,
+            a.wayOfWorking,
+            a.startConstruction,
+            a.startLoad,
+            a.startCrossover,
+            a.completedWork,
+            a.endConstruction,
+            a.endLoad,
+            a.endCrossover,
+            xpq.engineeringAcceptance,
+            a.create_date
+        FROM
+            sg_construction_process a
+                LEFT JOIN xm_material_project p ON a.projectId = p.projectId
+                LEFT JOIN xm_project_basicinformation b ON p.reserveProjectName = b.reserveProjectName
+                LEFT JOIN xm_project_assignment xpa ON a.reserveProjectName = xpa.reserveProjectName
+                LEFT JOIN xm_project_quantity xpq ON a.reserveProjectName = xpq.reserveProjectName
+        WHERE
+            a.id = #{id}
+    </select>
+    <select id="findListPage"
+            resultType="com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule">
+        select id,
+        create_by,
+        create_date,
+        update_by,
+        update_date,
+        del_flag,
+        remarks,
+        proc_ins_id,
+        projectId,
+        plannedStart,
+        plannedEnd,
+        actualStart,
+        actualEnd,
+        projectManager,
+        personInCharge,
+        workPlace,
+        projectName,
+        reserveProjectName
+        from sg_construction_process
+        <where>
+            1=1
+            <if test="projectId!=null and projectId != ''">
+                and projectId = #{projectId}
+            </if>
+            <if test="projectName!=null and projectName != ''">
+                and projectName = #{projectName}
+            </if>
+            <if test="reserveProjectName!=null and reserveProjectName != ''">
+                and reserveProjectName = #{reserveProjectName}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 69 - 30
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/xml/NonPowerMapper.xml

@@ -37,39 +37,42 @@
 
 	<update id="updateEnd">
 		update xm_nonpower_process
-		set	civilEndReport = #{civilEndReport}
+		set	civilEndReport = #{civilEndReport},
+			actualStart = #{actualStart},
+		    actualEnd = #{actualEnd}
 		where proc_ins_id = #{procInsId};
 	</update>
 
 	<select id="get" resultType="NonPower">
-		select
-		a.id,
-		a.projectId,
-		a.projectName,
-        a.reserveProjectName,
-        b.municipalCompany as buildingUnit,
-        b.erpNo as projectNumber,
-        xpa.constructionUnit as constructionUnit,
-        a.plannedStart,
-        a.plannedEnd,
-        a.projectManager,
-        b.lineName,
-        a.personInCharge,
-        a.workPlace,
-        a.civilStartReport,
-        a.civilEndReport,
-	    xpq.engineeringAcceptance,
-	    a.create_date
+		select a.id,
+			   a.projectId,
+			   a.projectName,
+			   a.reserveProjectName,
+			   b.municipalCompany   as buildingUnit,
+			   b.erpNo              as projectNumber,
+			   xpa.constructionUnit as constructionUnit,
+			   a.plannedStart,
+			   a.plannedEnd,
+			   a.actualStart,
+			   a.actualEnd,
+			   a.projectManager,
+			   b.lineName,
+			   a.personInCharge,
+			   a.workPlace,
+			   a.civilStartReport,
+			   a.civilEndReport,
+			   xpq.engineeringAcceptance,
+			   a.create_date
 		from xm_nonpower_process a
-		LEFT JOIN xm_material_project p
-		on a.projectId = p.projectId
-		LEFT JOIN xm_project_basicinformation b
-		on p.reserveProjectName = b.reserveProjectName
-		left join xm_project_assignment xpa
-        on a.reserveProjectName = xpa.reserveProjectName
-		left join xm_project_quantity xpq
-		on a.reserveProjectName = xpq.reserveProjectName
-		where a.id = #{id}
+				 LEFT JOIN xm_material_project p
+						   on a.projectId = p.projectId
+				 LEFT JOIN xm_project_basicinformation b
+						   on p.reserveProjectName = b.reserveProjectName
+				 left join xm_project_assignment xpa
+						   on a.reserveProjectName = xpa.reserveProjectName
+				 left join xm_project_quantity xpq
+						   on a.reserveProjectName = xpq.reserveProjectName
+		where a.id = #{id};
     </select>
 
     <select id="findList" resultType="NonPower">
@@ -176,7 +179,7 @@
 		from xm_nonpower_process
 		where reserveProjectName = #{reserveProjectName};
 	</select>
-	<select id="getByProcInsId" resultType="com.jeeplus.modules.sg.materialmodule.activiti.entity.NonPower">
+	<select id="getById" resultType="com.jeeplus.modules.sg.materialmodule.activiti.entity.NonPower">
 		select
 			a.id,
 			a.projectId,
@@ -204,6 +207,42 @@
 				   on a.reserveProjectName = xpa.reserveProjectName
 		 left join xm_project_quantity xpq
 				   on a.reserveProjectName = xpq.reserveProjectName
-		where a.proc_ins_id = #{procInsId}
+		where a.id = #{id}
+	</select>
+    <select id="findListPage" resultType="com.jeeplus.modules.sg.materialmodule.activiti.entity.NonPower">
+		select id,
+			   create_by,
+			   create_date,
+			   update_by,
+			   update_date,
+			   del_flag,
+			   remarks,
+			   proc_ins_id,
+			   projectId,
+			   plannedStart,
+			   plannedEnd,
+			   actualStart,
+			   actualEnd,
+			   projectManager,
+			   personInCharge,
+			   workPlace,
+			   constructionCivilWorks,
+			   civilStartReport,
+			   civilEndReport,
+			   projectName,
+			   reserveProjectName
+		from xm_nonpower_process
+		<where>
+			1=1
+			<if test="projectId!=null and projectId != ''">
+				and projectId = #{projectId}
+			</if>
+			<if test="projectName!=null and projectName != ''">
+				and projectName = #{projectName}
+			</if>
+			<if test="reserveProjectName!=null and reserveProjectName != ''">
+				and reserveProjectName = #{reserveProjectName}
+			</if>
+		</where>
 	</select>
 </mapper>

+ 12 - 0
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/service/MaterialModuleService.java

@@ -10,6 +10,7 @@ import com.jeeplus.modules.sg.advence.activiti.mapper.AdvanceMapper;
 import com.jeeplus.modules.sg.managementcenter.activiti.entity.EngineeringAmount;
 import com.jeeplus.modules.sg.managementcenter.constructionProject.entity.ConstructionProject;
 import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
+import com.jeeplus.modules.sg.materialmodule.activiti.entity.NonPower;
 import com.jeeplus.modules.sg.materialmodule.activiti.mapper.MaterialModuleMapper;
 import com.jeeplus.modules.sg.picking.activiti.entity.CapitalExport;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -111,4 +112,15 @@ public class MaterialModuleService extends CrudService<MaterialModuleMapper, Mat
     public void updateSeveralTimes(String procInsId, int number) {
         materialModuleMapper.updateSeveralTimes(procInsId, number);
     }
+
+    public MaterialModule findById(String id){
+        return materialModuleMapper.findById(id);
+    }
+
+    public Page<MaterialModule> findListPage(Page<MaterialModule> page, MaterialModule materialModule) {
+        dataRuleFilter(materialModule);
+        materialModule.setPage(page);
+        page.setList(materialModuleMapper.findListPage(materialModule));
+        return page;
+    }
 }

+ 13 - 2
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/service/NonPowerService.java

@@ -3,6 +3,7 @@
  */
 package com.jeeplus.modules.sg.materialmodule.activiti.service;
 
+import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.service.CrudService;
 import com.jeeplus.modules.sg.managementcenter.activiti.entity.EngineeringAmount;
 import com.jeeplus.modules.sg.managementcenter.constructionProject.entity.ConstructionProject;
@@ -10,6 +11,7 @@ import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
 import com.jeeplus.modules.sg.materialmodule.activiti.entity.NonPower;
 import com.jeeplus.modules.sg.materialmodule.activiti.mapper.MaterialModuleMapper;
 import com.jeeplus.modules.sg.materialmodule.activiti.mapper.NonPowerMapper;
+import com.jeeplus.modules.test.one.dialog.entity.Leave1;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -63,6 +65,8 @@ public class NonPowerService extends CrudService<NonPowerMapper, NonPower> {
         nonPowerMapper.updateEnd(nonPower);
     }
 
+
+
     @Override
     public NonPower get(NonPower entity) {
         return super.get(entity);
@@ -80,7 +84,14 @@ public class NonPowerService extends CrudService<NonPowerMapper, NonPower> {
         return flag;
     }
 
-    public NonPower getByProcInsId(String procInsId) {
-        return nonPowerMapper.getByProcInsId(procInsId);
+    public NonPower getById(String id) {
+        return nonPowerMapper.getById(id);
+    }
+
+    public Page<NonPower> findListPage(Page<NonPower> page, NonPower nonPower) {
+        dataRuleFilter(nonPower);
+        nonPower.setPage(page);
+        page.setList(nonPowerMapper.findListPage(nonPower));
+        return page;
     }
 }

+ 154 - 0
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/web/MaterialModuleController.java

@@ -4,9 +4,12 @@ import com.google.common.collect.Maps;
 import com.jeeplus.common.json.AjaxJson;
 import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.web.BaseController;
 import com.jeeplus.modules.act.service.ActProcessService;
 import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.sg.audit.information.utils.FreemarkerUtil;
+import com.jeeplus.modules.sg.audit.information.utils.ResponseUtil;
 import com.jeeplus.modules.sg.managementcenter.activiti.entity.Construction;
 import com.jeeplus.modules.sg.managementcenter.activiti.entity.EngineeringAmount;
 import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo;
@@ -16,6 +19,8 @@ import com.jeeplus.modules.sg.materialmodule.activiti.entity.NonPower;
 import com.jeeplus.modules.sg.materialmodule.activiti.service.MaterialModuleService;
 import com.jeeplus.modules.sg.picking.activiti.entity.CapitalExport;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
 import org.activiti.engine.repository.ProcessDefinition;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -25,6 +30,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 @Controller
@@ -157,6 +168,25 @@ public class MaterialModuleController extends BaseController {
     }
 
     /**
+     * 导出涉电电气报告管理页面
+     * */
+    @RequestMapping(value = "exportPowerList")
+    public String exportPowerList(MaterialModule materialModule, Model model) {
+        model.addAttribute("materialModule", materialModule);
+        return "modules/sg/materialmodule/activiti/exportPowerList";
+    }
+
+    /**
+     * 导出土建数据展示页面
+     */
+    @ResponseBody
+    @RequestMapping(value = "exportListData")
+    public Map<String, Object> exportListData(MaterialModule materialModule, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<MaterialModule> page = materialModuleService.findListPage(new Page<MaterialModule>(request, response), materialModule);
+        return getBootstrapData(page);
+    }
+
+    /**
      * 涉电开工报告
      * */
     @RequestMapping(value = "PowerStart")
@@ -264,6 +294,130 @@ public class MaterialModuleController extends BaseController {
         }
         return j;
     }
+
+    /**
+     * 导出涉电-电气开工报告
+     * */
+    @ResponseBody
+    @RequestMapping(value = "electricityStart")
+    public AjaxJson exportElectricityStart(MaterialModule materialModule, HttpServletRequest request, HttpServletResponse response){
+        AjaxJson j = new AjaxJson();
+        Template template = null;
+        File path = new File(this.getClass().getResource("/").getPath() + "/freemarker");
+        Configuration cfg = new Configuration();
+        try {
+            cfg.setDefaultEncoding("UTF-8");
+            //配置cfg对象
+            cfg.setDirectoryForTemplateLoading(path);
+//            根据模板名称获取Template对象
+            template = cfg.getTemplate("electricityStart.ftl");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        Map<String, Object> data = new HashMap<>();
+        MaterialModule materialModule1 = materialModuleService.findById(materialModule.getId());
+        String projectName = materialModule1.getProjectName();
+        String buildingUnit = materialModule1.getBuildingUnit();
+        String projectNumber = materialModule1.getProjectNumber();
+        String constructionUnit = materialModule1.getConstructionUnit();
+        String plannedStart = materialModule1.getPlannedStart();
+        String plannedEnd = materialModule1.getPlannedEnd();
+        String projectManager = materialModule1.getProjectManager();
+        String lineName = materialModule1.getLineName();
+        String personInCharge = materialModule1.getPersonInCharge();
+        String workPlace = materialModule1.getWorkPlace();
+        String wayOfWorking = materialModule1.getWayOfWorking();
+        String startConstruction = materialModule1.getStartConstruction();
+        String startLoad = materialModule1.getStartLoad();
+        String startCrossover = materialModule1.getStartCrossover();
+
+        Date createDate = materialModule1.getCreateDate();
+        DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
+        String dateYear = df.format(createDate);
+
+        data.put("projectName", projectName);
+        data.put("projectNumber",projectNumber );
+        data.put("buildingUnit", buildingUnit);
+        data.put("constructionUnit", constructionUnit);
+        data.put("plannedStart",plannedStart );
+        data.put("projectManager", projectManager);
+        data.put("personInCharge", personInCharge);
+        data.put("plannedEnd", plannedEnd);
+        data.put("lineName",lineName );
+        data.put("workPlace", workPlace);
+        data.put("dateYear", dateYear);
+        data.put("wayOfWorking", wayOfWorking);
+        data.put("startConstruction", startConstruction);
+        data.put("startLoad", startLoad);
+        data.put("startCrossover", startCrossover);
+
+        File docFile = new File(path + "\\开工报告-电气(含涉电).xls");
+        FreemarkerUtil.generateFile(data, template, docFile);
+        ResponseUtil.docResponse("开工报告-电气(含涉电).xls", docFile, response);
+        return j;
+    }
+
+    /**
+     * 竣工报告-涉电(含电气)
+     * */
+    @ResponseBody
+    @RequestMapping(value = "electricityEnd")
+    public AjaxJson electricityEnd(MaterialModule materialModule, HttpServletRequest request, HttpServletResponse response){
+        AjaxJson j = new AjaxJson();
+        Template template = null;
+        File path = new File(this.getClass().getResource("/").getPath() + "/freemarker");
+        Configuration cfg = new Configuration();
+        try {
+            cfg.setDefaultEncoding("UTF-8");
+            //配置cfg对象
+            cfg.setDirectoryForTemplateLoading(path);
+//            根据模板名称获取Template对象
+            template = cfg.getTemplate("electricityEnd.ftl");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        Map<String, Object> data = new HashMap<>();
+        MaterialModule materialModule1 = materialModuleService.findById(materialModule.getId());
+        String projectName = materialModule1.getProjectName();
+        String buildingUnit = materialModule1.getBuildingUnit();
+        String projectNumber = materialModule1.getProjectNumber();
+        String constructionUnit = materialModule1.getConstructionUnit();
+        String actualStart = materialModule1.getActualStart();
+        String projectManager = materialModule1.getProjectManager();
+        String personInCharge = materialModule1.getPersonInCharge();
+        String actualEnd = materialModule1.getActualEnd();
+        String lineName = materialModule1.getLineName();
+        String workPlace = materialModule1.getWorkPlace();
+        String completedWork = materialModule1.getCompletedWork();
+        String endConstruction = materialModule1.getEndConstruction();
+        String endLoad = materialModule1.getEndLoad();
+        String endCrossover = materialModule1.getEndCrossover();
+
+        Date createDate = materialModule1.getCreateDate();
+        DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
+        String dateYear = df.format(createDate);
+
+        data.put("projectName", projectName);
+        data.put("projectNumber",projectNumber );
+        data.put("buildingUnit", buildingUnit);
+        data.put("constructionUnit", constructionUnit);
+        data.put("actualStart",actualStart );
+        data.put("projectManager", projectManager);
+        data.put("personInCharge", personInCharge);
+        data.put("actualEnd", actualEnd);
+        data.put("lineName",lineName );
+        data.put("workPlace", workPlace);
+        data.put("dateYear", dateYear);
+        data.put("completedWork", completedWork);
+        data.put("endConstruction", endConstruction);
+        data.put("endLoad", endLoad);
+        data.put("endCrossover", endCrossover);
+
+        File docFile = new File(path + "\\竣工报告-涉电(含电气).xls");
+        FreemarkerUtil.generateFile(data, template, docFile);
+        ResponseUtil.docResponse("竣工报告-涉电(含电气).xls", docFile, response);
+        return j;
+    }
 }
 
 

+ 27 - 41
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/web/NonPowerController.java

@@ -4,6 +4,7 @@ import com.google.common.collect.Maps;
 import com.jeeplus.common.json.AjaxJson;
 import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.web.BaseController;
 import com.jeeplus.modules.act.service.ActProcessService;
 import com.jeeplus.modules.act.service.ActTaskService;
@@ -22,6 +23,7 @@ import com.jeeplus.modules.sg.materialmodule.activiti.service.MaterialModuleServ
 import com.jeeplus.modules.sg.materialmodule.activiti.service.NonPowerService;
 import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.test.one.dialog.entity.Leave1;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
 import org.activiti.engine.repository.ProcessDefinition;
@@ -151,20 +153,30 @@ public class NonPowerController extends BaseController {
      */
     @RequestMapping(value = "nonRePowerEnd")
     public String nonRePowerEnd(NonPower nonPower, Model model) {
-        //通过项目需求名称查询所有的施工交底土建信息
-        List<EngineeringAmount> civilWorks = nonPowerService.findCivilWorks(nonPower.getReserveProjectName());
-        if (civilWorks != null) {
-            String constructionCivilWorks = "";
-            for (EngineeringAmount e : civilWorks) {
-                constructionCivilWorks += e.getCivilWorks() + e.getCivilMaterials() + e.getCivilUnit() + ",";
-            }
-            nonPower.setConstructionCivilWorks(constructionCivilWorks);
-        }
         model.addAttribute("nonPower", nonPower);
         return "modules/sg/materialmodule/activiti/nonRePowerEnd";
     }
 
     /**
+     * 导出土建报告管理页面
+     */
+    @RequestMapping(value = "nonExportList")
+    public String nonExportList(NonPower nonPower, Model model) {
+        model.addAttribute("nonPower", nonPower);
+        return "modules/sg/materialmodule/activiti/nonExportList";
+    }
+
+    /**
+     * 导出土建数据展示页面
+     */
+    @ResponseBody
+    @RequestMapping(value = "exportListData")
+    public Map<String, Object> exportListData(NonPower nonPower, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<NonPower> page = nonPowerService.findListPage(new Page<NonPower>(request, response), nonPower);
+        return getBootstrapData(page);
+    }
+
+    /**
      * 发起土建流程
      */
     @ResponseBody
@@ -195,7 +207,7 @@ public class NonPowerController extends BaseController {
             Project materialProject = projectService.getAss(project);
             //定义vars用于指派流程走向
             Map<String, Object> vars = Maps.newHashMap();
-            vars.put("noPass", false);
+            vars.put("nopass", false);
             vars.put("pass", true);
             //获取项目定义号
             vars.put("design", UserUtils.getByUserName(materialProject.getAssignment().getConstructionManage()).getLoginName());
@@ -266,7 +278,6 @@ public class NonPowerController extends BaseController {
     @RequestMapping(value = "civilStart")
     public AjaxJson exportCivilStart(NonPower nonPower, HttpServletRequest request, HttpServletResponse response){
         AjaxJson j = new AjaxJson();
-        StringBuilder stringBuilder = new StringBuilder();
         Template template = null;
         File path = new File(this.getClass().getResource("/").getPath() + "/freemarker");
         Configuration cfg = new Configuration();
@@ -281,7 +292,7 @@ public class NonPowerController extends BaseController {
         }
         Map<String, Object> data = new HashMap<>();
 
-        NonPower nonPower1 = nonPowerService.getByProcInsId(nonPower.getProcInsId());
+        NonPower nonPower1 = nonPowerService.getById(nonPower.getId());
         String projectId = nonPower1.getProjectId();
         String projectName = nonPower1.getProjectName();
         String reserveProjectName = nonPower1.getReserveProjectName();
@@ -299,17 +310,6 @@ public class NonPowerController extends BaseController {
         Date createDate = nonPower1.getCreateDate();
         DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
         String dateYear = df.format(createDate);
-        String constructionCivilWorks = "";
-
-        if (reserveProjectName != null && !"".equals(reserveProjectName)) {
-            //获取项目的施工技术交底中土建工程量
-            List<EngineeringAmount> civilWorks = nonPowerService.findCivilWorks(reserveProjectName);
-            if (civilWorks != null) {
-                for (EngineeringAmount e : civilWorks) {
-                    constructionCivilWorks += e.getCivilWorks() + e.getCivilMaterials() + e.getCivilUnit() + ",";
-                }
-            }
-        }
 
         data.put("projectName", projectName);
         data.put("projectNumber",projectNumber );
@@ -321,7 +321,6 @@ public class NonPowerController extends BaseController {
         data.put("plannedEnd", plannedEnd);
         data.put("lineName",lineName );
         data.put("workPlace", workPlace);
-        data.put("constructionCivilWorks", constructionCivilWorks);
         data.put("civilStartReport",civilStartReport );
         data.put("dateYear", dateYear);
 
@@ -339,7 +338,6 @@ public class NonPowerController extends BaseController {
     @RequestMapping(value = "civilEnd")
     public AjaxJson exportCivilEnd(NonPower nonPower, HttpServletRequest request, HttpServletResponse response){
         AjaxJson j = new AjaxJson();
-        StringBuilder stringBuilder = new StringBuilder();
         Template template = null;
         File path = new File(this.getClass().getResource("/").getPath() + "/freemarker");
         Configuration cfg = new Configuration();
@@ -348,12 +346,12 @@ public class NonPowerController extends BaseController {
             //配置cfg对象
             cfg.setDirectoryForTemplateLoading(path);
 //            根据模板名称获取Template对象
-            template = cfg.getTemplate("civilStart.ftl");
+            template = cfg.getTemplate("civilEnd.ftl");
         } catch (IOException e) {
             e.printStackTrace();
         }
         Map<String, Object> data = new HashMap<>();
-        NonPower nonPower1 = nonPowerService.getByProcInsId(nonPower.getProcInsId());
+        NonPower nonPower1 = nonPowerService.getById(nonPower.getId());
         String projectId = nonPower1.getProjectId();
         String projectName = nonPower1.getProjectName();
         String reserveProjectName = nonPower1.getReserveProjectName();
@@ -361,8 +359,8 @@ public class NonPowerController extends BaseController {
         String buildingUnit = nonPower1.getBuildingUnit();
         String projectNumber = nonPower1.getProjectNumber();
         String constructionUnit = nonPower1.getConstructionUnit();
-        String plannedStart = nonPower1.getPlannedStart();
-        String plannedEnd = nonPower1.getPlannedEnd();
+        String plannedStart = nonPower1.getActualStart();
+        String plannedEnd = nonPower1.getActualEnd();
         String projectManager = nonPower1.getProjectManager();
         String lineName = nonPower1.getLineName();
         String personInCharge = nonPower1.getPersonInCharge();
@@ -373,16 +371,6 @@ public class NonPowerController extends BaseController {
         DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
         String dateYear = df.format(createDate);
 
-        String constructionCivilWorks = "";
-        if (reserveProjectName != null && !"".equals(reserveProjectName)) {
-            //获取项目的施工技术交底中土建工程量
-            List<EngineeringAmount> civilWorks = nonPowerService.findCivilWorks(reserveProjectName);
-            if (civilWorks != null) {
-                for (EngineeringAmount e : civilWorks) {
-                    constructionCivilWorks += e.getCivilWorks() + e.getCivilMaterials() + e.getCivilUnit() + ",";
-                }
-            }
-        }
 
         data.put("projectName", projectName);
         data.put("projectNumber",projectNumber );
@@ -394,8 +382,6 @@ public class NonPowerController extends BaseController {
         data.put("plannedEnd", plannedEnd);
         data.put("lineName",lineName );
         data.put("workPlace", workPlace);
-        data.put("constructionCivilWorks", constructionCivilWorks);
-        data.put("civilStartReport",civilStartReport);
         data.put("civilEndReport",civilEndReport);
         data.put("dateYear", dateYear);
 

+ 1 - 1
src/main/resources/freemarker/civilEnd.ftl

@@ -255,7 +255,7 @@
     <Cell ss:MergeAcross="5" ss:StyleID="m3071678473472"><Data ss:Type="String">1.实际工程量</Data></Cell>
    </Row>
    <Row ss:AutoFitHeight="0" ss:Height="47.25">
-    <Cell ss:MergeAcross="5" ss:StyleID="m3071678475132"><Data ss:Type="String">施工技术交底中土建工程量:${constructionCivilWorks!""} &#10;开工报告中土建工程量:${civilStartReport!""} &#10;土建竣工工程量:${civilEndReport!""}</Data></Cell>
+    <Cell ss:MergeAcross="5" ss:StyleID="m3071678475132"><Data ss:Type="String">土建竣工工程量:${civilEndReport!""}</Data></Cell>
    </Row>
    <Row>
     <Cell ss:MergeAcross="5" ss:StyleID="m3071678475152"><Data ss:Type="String">验收意见</Data></Cell>

+ 1 - 1
src/main/resources/freemarker/civilStart.ftl

@@ -256,7 +256,7 @@
     <Cell ss:MergeAcross="5" ss:StyleID="m3071813705728"><Data ss:Type="String">1.土建工程量</Data></Cell>
    </Row>
    <Row ss:AutoFitHeight="0" ss:Height="40.5">
-    <Cell ss:MergeAcross="5" ss:StyleID="m3071813701716"><Data ss:Type="String">施工技术交底中土建工程量:${constructionCivilWorks!""}&#10;开工报告中土建工程量:${civilStartReport!""}</Data></Cell>
+    <Cell ss:MergeAcross="5" ss:StyleID="m3071813701716"><Data ss:Type="String">开工报告中土建工程量:${civilStartReport!""}</Data></Cell>
    </Row>
    <Row>
     <Cell ss:MergeAcross="5" ss:StyleID="m3071813708788"><Data ss:Type="String">验收意见</Data></Cell>

+ 315 - 0
src/main/resources/freemarker/electricityEnd.ftl

@@ -0,0 +1,315 @@
+<?xml version="1.0"?>
+<?mso-application progid="Excel.Sheet"?>
+<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
+ xmlns:o="urn:schemas-microsoft-com:office:office"
+ xmlns:x="urn:schemas-microsoft-com:office:excel"
+ xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
+ xmlns:html="http://www.w3.org/TR/REC-html40">
+ <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
+  <Author>tree lem</Author>
+  <LastAuthor>tree lem</LastAuthor>
+  <Created>2020-07-13T00:48:11Z</Created>
+  <LastSaved>2020-07-13T00:48:43Z</LastSaved>
+  <Version>16.00</Version>
+ </DocumentProperties>
+ <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
+  <AllowPNG/>
+ </OfficeDocumentSettings>
+ <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
+  <WindowHeight>11265</WindowHeight>
+  <WindowWidth>26220</WindowWidth>
+  <WindowTopX>32767</WindowTopX>
+  <WindowTopY>32767</WindowTopY>
+  <ProtectStructure>False</ProtectStructure>
+  <ProtectWindows>False</ProtectWindows>
+ </ExcelWorkbook>
+ <Styles>
+  <Style ss:ID="Default" ss:Name="Normal">
+   <Alignment ss:Vertical="Bottom"/>
+   <Borders/>
+   <Font ss:FontName="等线" x:CharSet="134" ss:Size="11" ss:Color="#000000"/>
+   <Interior/>
+   <NumberFormat/>
+   <Protection/>
+  </Style>
+  <Style ss:ID="m2096385935456">
+   <Alignment ss:Horizontal="Right" ss:Vertical="Center"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2096385935476">
+   <Alignment ss:Horizontal="Right" ss:Vertical="Center"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2096385935496">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Top"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2096385933812">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Center" ss:WrapText="1"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior ss:Color="#00B0F0" ss:Pattern="Solid"/>
+  </Style>
+  <Style ss:ID="m2096385933832">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2096385933852">
+   <Alignment ss:Horizontal="Right" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2096385933872">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Center"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2096385933892">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Center"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2096385935080">
+   <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior ss:Color="#FFFF00" ss:Pattern="Solid"/>
+  </Style>
+  <Style ss:ID="m2096385935100">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2096385935120">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="s62">
+   <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="黑体" x:CharSet="134" x:Family="Modern" ss:Size="20"
+    ss:Color="#000000"/>
+  </Style>
+  <Style ss:ID="s63">
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="s64">
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior ss:Color="#FFFF00" ss:Pattern="Solid"/>
+  </Style>
+  <Style ss:ID="s65">
+   <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior ss:Color="#FFFF00" ss:Pattern="Solid"/>
+  </Style>
+  <Style ss:ID="s69">
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior ss:Color="#00B0F0" ss:Pattern="Solid"/>
+  </Style>
+  <Style ss:ID="s87">
+   <Alignment ss:Vertical="Center"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+ </Styles>
+ <Worksheet ss:Name="竣工报告-涉电(含电气)">
+  <Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="13" x:FullColumns="1"
+   x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">
+   <Column ss:Width="77.25"/>
+   <Column ss:AutoFitWidth="0" ss:Width="211.5"/>
+   <Column ss:Width="67.5"/>
+   <Column ss:AutoFitWidth="0" ss:Width="132.75"/>
+   <Column ss:Width="67.5"/>
+   <Column ss:AutoFitWidth="0" ss:Width="121.5"/>
+   <Row ss:AutoFitHeight="0" ss:Height="25.125">
+    <Cell ss:MergeAcross="5" ss:StyleID="s62"><Data ss:Type="String">配电网工程竣工报告</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s63"><Data ss:Type="String">项目名称</Data></Cell>
+    <Cell ss:StyleID="s64"><Data ss:Type="String">${projectName!""}</Data></Cell>
+    <Cell ss:StyleID="s63"><Data ss:Type="String">工程编号</Data></Cell>
+    <Cell ss:MergeAcross="2" ss:StyleID="s65"><Data ss:Type="String">${projectNumber!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s63"><Data ss:Type="String">建设单位</Data></Cell>
+    <Cell ss:StyleID="s64"><Data ss:Type="String">${buildingUnit!""}</Data></Cell>
+    <Cell ss:StyleID="s63"><Data ss:Type="String">施工单位</Data></Cell>
+    <Cell ss:MergeAcross="2" ss:StyleID="m2096385935080"><Data ss:Type="String">${constructionUnit!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s63"><Data ss:Type="String">实际开工时间</Data></Cell>
+    <Cell ss:StyleID="s69"><Data ss:Type="String">${actualStart!""}</Data></Cell>
+    <Cell ss:StyleID="s63"><Data ss:Type="String">项目负责人</Data></Cell>
+    <Cell ss:StyleID="s64"><Data ss:Type="String">${projectManager!""}</Data></Cell>
+    <Cell ss:StyleID="s63"><Data ss:Type="String">施工负责人</Data></Cell>
+    <Cell ss:StyleID="s64"><Data ss:Type="String">${personInCharge!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s63"><Data ss:Type="String">实际竣工时间</Data></Cell>
+    <Cell ss:StyleID="s69"><Data ss:Type="String">${actualEnd!""}</Data></Cell>
+    <Cell ss:StyleID="s63"><Data ss:Type="String">线路名称</Data></Cell>
+    <Cell ss:StyleID="s64"><Data ss:Type="String">${lineName!""}</Data></Cell>
+    <Cell ss:StyleID="s63"><Data ss:Type="String">工作地点</Data></Cell>
+    <Cell ss:StyleID="s64"><Data ss:Type="String">${workPlace!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="5" ss:StyleID="m2096385935100"><Data ss:Type="String">计划工作量:</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="5" ss:StyleID="m2096385935120"><Data ss:Type="String">1.实际工程量</Data></Cell>
+   </Row>
+   <Row ss:AutoFitHeight="0" ss:Height="58.875">
+    <Cell ss:MergeAcross="5" ss:StyleID="m2096385933812"><Data ss:Type="String">1.作业方式:${completedWork!""}2.新建工作量:${endConstruction!""}3.拆除工作量:${endLoad!""}4.交叉跨越:${endCrossover!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="5" ss:StyleID="m2096385933832"><Data ss:Type="String">验收意见</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="5" ss:StyleID="m2096385933852"><Data ss:Type="String">填列人:${projectManager!""}     日期:${dateYear!""}</Data></Cell>
+   </Row>
+   <Row ss:AutoFitHeight="0" ss:Height="33.375">
+    <Cell ss:MergeAcross="2" ss:StyleID="m2096385933872"><Data ss:Type="String">申请单位意见</Data></Cell>
+    <Cell ss:MergeAcross="2" ss:StyleID="m2096385933892"><Data ss:Type="String">建设或建立单位意见:</Data></Cell>
+   </Row>
+   <Row ss:AutoFitHeight="0" ss:Height="39">
+    <Cell ss:StyleID="s87"><Data ss:Type="String">负责人:</Data></Cell>
+    <Cell ss:MergeAcross="1" ss:StyleID="m2096385935456"/>
+    <Cell ss:StyleID="s87"><Data ss:Type="String">批准人:(无需填写)</Data></Cell>
+    <Cell ss:MergeAcross="1" ss:StyleID="m2096385935476"/>
+   </Row>
+   <Row ss:AutoFitHeight="0" ss:Height="45.375">
+    <Cell ss:MergeAcross="5" ss:StyleID="m2096385935496"><Data ss:Type="String">备注:</Data></Cell>
+   </Row>
+  </Table>
+  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
+   <PageSetup>
+    <Header x:Margin="0.3"/>
+    <Footer x:Margin="0.3"/>
+    <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
+   </PageSetup>
+   <Print>
+    <ValidPrinterInfo/>
+    <PaperSizeIndex>9</PaperSizeIndex>
+    <HorizontalResolution>600</HorizontalResolution>
+    <VerticalResolution>600</VerticalResolution>
+   </Print>
+   <Selected/>
+   <Panes>
+    <Pane>
+     <Number>3</Number>
+     <ActiveRow>12</ActiveRow>
+     <ActiveCol>7</ActiveCol>
+    </Pane>
+   </Panes>
+   <ProtectObjects>False</ProtectObjects>
+   <ProtectScenarios>False</ProtectScenarios>
+  </WorksheetOptions>
+ </Worksheet>
+</Workbook>

+ 315 - 0
src/main/resources/freemarker/electricityStart.ftl

@@ -0,0 +1,315 @@
+<?xml version="1.0"?>
+<?mso-application progid="Excel.Sheet"?>
+<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
+ xmlns:o="urn:schemas-microsoft-com:office:office"
+ xmlns:x="urn:schemas-microsoft-com:office:excel"
+ xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
+ xmlns:html="http://www.w3.org/TR/REC-html40">
+ <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
+  <Author>杨柳</Author>
+  <LastAuthor>tree lem</LastAuthor>
+  <Created>2015-06-05T18:19:34Z</Created>
+  <LastSaved>2020-07-13T00:47:05Z</LastSaved>
+  <Version>16.00</Version>
+ </DocumentProperties>
+ <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
+  <AllowPNG/>
+ </OfficeDocumentSettings>
+ <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
+  <WindowHeight>14730</WindowHeight>
+  <WindowWidth>26250</WindowWidth>
+  <WindowTopX>2550</WindowTopX>
+  <WindowTopY>870</WindowTopY>
+  <ProtectStructure>False</ProtectStructure>
+  <ProtectWindows>False</ProtectWindows>
+ </ExcelWorkbook>
+ <Styles>
+  <Style ss:ID="Default" ss:Name="Normal">
+   <Alignment ss:Vertical="Bottom"/>
+   <Borders/>
+   <Font ss:FontName="等线" x:CharSet="134" ss:Size="11" ss:Color="#000000"/>
+   <Interior/>
+   <NumberFormat/>
+   <Protection/>
+  </Style>
+  <Style ss:ID="m2410465412536">
+   <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior ss:Color="#FFFF00" ss:Pattern="Solid"/>
+  </Style>
+  <Style ss:ID="m2410465412556">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2410465412576">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2410465411488">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Top"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2410465411508">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Center" ss:WrapText="1"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior ss:Color="#00B0F0" ss:Pattern="Solid"/>
+  </Style>
+  <Style ss:ID="m2410465411528">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2410465411548">
+   <Alignment ss:Horizontal="Right" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2410465411568">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Center"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2410465411588">
+   <Alignment ss:Horizontal="Left" ss:Vertical="Center"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2410465411608">
+   <Alignment ss:Horizontal="Right" ss:Vertical="Center"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="m2410465411628">
+   <Alignment ss:Horizontal="Right" ss:Vertical="Center"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="s16">
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="s17">
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior ss:Color="#FFFF00" ss:Pattern="Solid"/>
+  </Style>
+  <Style ss:ID="s18">
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior ss:Color="#00B0F0" ss:Pattern="Solid"/>
+  </Style>
+  <Style ss:ID="s19">
+   <Alignment ss:Vertical="Center"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+  </Style>
+  <Style ss:ID="s57">
+   <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="黑体" x:CharSet="134" x:Family="Modern" ss:Size="20"
+    ss:Color="#000000"/>
+  </Style>
+  <Style ss:ID="s75">
+   <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
+   <Borders>
+    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
+    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
+   </Borders>
+   <Font ss:FontName="方正仿宋_GBK" x:CharSet="134" x:Family="Modern" ss:Size="11"
+    ss:Color="#000000" ss:Bold="1"/>
+   <Interior ss:Color="#FFFF00" ss:Pattern="Solid"/>
+  </Style>
+ </Styles>
+ <Worksheet ss:Name="开工报告-电气(含涉电)">
+  <Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="13" x:FullColumns="1"
+   x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">
+   <Column ss:Width="77.25"/>
+   <Column ss:AutoFitWidth="0" ss:Width="211.5"/>
+   <Column ss:Width="67.5"/>
+   <Column ss:AutoFitWidth="0" ss:Width="171"/>
+   <Column ss:Width="67.5"/>
+   <Column ss:AutoFitWidth="0" ss:Width="156.75"/>
+   <Row ss:AutoFitHeight="0" ss:Height="25.125">
+    <Cell ss:MergeAcross="5" ss:StyleID="s57"><Data ss:Type="String">配电网工程开工报告</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s16"><Data ss:Type="String">项目名称</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">${projectName!""}</Data></Cell>
+    <Cell ss:StyleID="s16"><Data ss:Type="String">工程编号</Data></Cell>
+    <Cell ss:MergeAcross="2" ss:StyleID="s75"><Data ss:Type="String">${projectNumber!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s16"><Data ss:Type="String">建设单位</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">${buildingUnit!""}</Data></Cell>
+    <Cell ss:StyleID="s16"><Data ss:Type="String">施工单位</Data></Cell>
+    <Cell ss:MergeAcross="2" ss:StyleID="m2410465412536"><Data ss:Type="String">${constructionUnit!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s16"><Data ss:Type="String">计划开工时间</Data></Cell>
+    <Cell ss:StyleID="s18"><Data ss:Type="String">${plannedStart!""}</Data></Cell>
+    <Cell ss:StyleID="s16"><Data ss:Type="String">项目负责人</Data></Cell>
+    <Cell ss:StyleID="s18"><Data ss:Type="String">${projectManager!""}</Data></Cell>
+    <Cell ss:StyleID="s16"><Data ss:Type="String">施工负责人</Data></Cell>
+    <Cell ss:StyleID="s18"><Data ss:Type="String">${personInCharge!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:StyleID="s16"><Data ss:Type="String">计划竣工时间</Data></Cell>
+    <Cell ss:StyleID="s18"><Data ss:Type="String">${plannedEnd!""}</Data></Cell>
+    <Cell ss:StyleID="s16"><Data ss:Type="String">线路名称</Data></Cell>
+    <Cell ss:StyleID="s17"><Data ss:Type="String">${lineName!""}</Data></Cell>
+    <Cell ss:StyleID="s16"><Data ss:Type="String">工作地点</Data></Cell>
+    <Cell ss:StyleID="s18"><Data ss:Type="String">${workPlace!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="5" ss:StyleID="m2410465412556"><Data ss:Type="String">计划工作量:</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="5" ss:StyleID="m2410465412576"><Data ss:Type="String">1.电气/涉电工程量</Data></Cell>
+   </Row>
+   <Row ss:AutoFitHeight="0" ss:Height="58.875">
+    <Cell ss:MergeAcross="5" ss:StyleID="m2410465411508"><Data ss:Type="String">1.作业方式:${wayOfWorking!""}2.新建工作量:${startConstruction!""}3.拆除工作量:${startLoad!""}4.交叉跨越:${startCrossover!""}</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="5" ss:StyleID="m2410465411528"><Data ss:Type="String">验收意见</Data></Cell>
+   </Row>
+   <Row>
+    <Cell ss:MergeAcross="5" ss:StyleID="m2410465411548"><Data ss:Type="String">填列人:${projectManager!""}     日期:${dateYear!""}</Data></Cell>
+   </Row>
+   <Row ss:AutoFitHeight="0" ss:Height="33.375">
+    <Cell ss:MergeAcross="2" ss:StyleID="m2410465411568"><Data ss:Type="String">申请单位意见</Data></Cell>
+    <Cell ss:MergeAcross="2" ss:StyleID="m2410465411588"><Data ss:Type="String">建设或建立单位意见:</Data></Cell>
+   </Row>
+   <Row ss:AutoFitHeight="0" ss:Height="39">
+    <Cell ss:StyleID="s19"><Data ss:Type="String">负责人:</Data></Cell>
+    <Cell ss:MergeAcross="1" ss:StyleID="m2410465411608"><Data ss:Type="String"></Data></Cell>
+    <Cell ss:StyleID="s19"><Data ss:Type="String">批准人:(无需填写)</Data></Cell>
+    <Cell ss:MergeAcross="1" ss:StyleID="m2410465411628"><Data ss:Type="String"></Data></Cell>
+   </Row>
+   <Row ss:AutoFitHeight="0" ss:Height="45.375">
+    <Cell ss:MergeAcross="5" ss:StyleID="m2410465411488"><Data ss:Type="String">备注:</Data></Cell>
+   </Row>
+  </Table>
+  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
+   <PageSetup>
+    <Header x:Margin="0.3"/>
+    <Footer x:Margin="0.3"/>
+    <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
+   </PageSetup>
+   <Print>
+    <ValidPrinterInfo/>
+    <PaperSizeIndex>9</PaperSizeIndex>
+    <HorizontalResolution>600</HorizontalResolution>
+    <VerticalResolution>600</VerticalResolution>
+   </Print>
+   <Selected/>
+   <Panes>
+    <Pane>
+     <Number>3</Number>
+     <ActiveRow>17</ActiveRow>
+     <ActiveCol>5</ActiveCol>
+    </Pane>
+   </Panes>
+   <ProtectObjects>False</ProtectObjects>
+   <ProtectScenarios>False</ProtectScenarios>
+  </WorksheetOptions>
+ </Worksheet>
+</Workbook>

+ 5 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.js

@@ -152,6 +152,11 @@ $(document).ready(function() {
 		return flag;
 	}
 
+	$("#electricityStart").click(function(){//导出Excel文件
+		var id = "${materialModule.id}";
+		jp.downloadFile('${ctx}/materialmodule/activiti/electricityStart?id=' + id);
+	});
+
 	$("#agree").click(function () {
 		var flag = check();
 		if (!flag){

+ 3 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.jsp

@@ -16,6 +16,9 @@
             <h3 class="panel-title">涉电竣工流程</h3>
         </div>
         <div class="panel-body">
+            <button id="electricityStart" class="btn btn-warning">
+                <i class="fa fa-file-excel-o"></i> 导出开工报告-电气(含涉电)
+            </button>
             <!-- 表格 -->
             <table id="testPicTable" data-toolbar="#toolbar"></table>
             <div class="panel-body">

+ 258 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/exportPowerList.js

@@ -0,0 +1,258 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	$('#leave1Table').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: 10,  
+               //可供选择的每页的行数(*)    
+               pageList: [10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+               url: "${ctx}/materialmodule/activiti/exportListData",
+               //默认值为 '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}/test/one/dialog/leave1/delete?id="+row.id, function(data){
+                   	  		if(data.success){
+                   	  			$('#leave1Table').bootstrapTable('refresh');
+                   	  			jp.success(data.msg);
+                   	  		}else{
+                   	  			jp.error(data.msg);
+                   	  		}
+                   	  	})
+                   	   
+                   	});
+                      
+                   } 
+               },
+              
+               onClickRow: function(row, $el){
+               },
+               	onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [{
+		        checkbox: true
+		       
+		    }
+			,{
+		        field: 'projectId',
+		        title: '项目定义号',
+		        sortable: true,
+		        sortName: 'office.name'
+		    }
+			,{
+		        field: 'projectName',
+		        title: '项目名称',
+		        sortable: true,
+		        sortName: 'projectName'
+		       
+		    }
+			,{
+		        field: 'reserveProjectName',
+		        title: '储备项目名称',
+		        sortable: true,
+		        sortName: 'reserveProjectName'
+		       
+		    }
+			,{
+		        field: 'plannedStart',
+		        title: '计划开工时间',
+		        sortable: true,
+		        sortName: 'plannedStart'
+		       
+		    }
+			,{
+		        field: 'plannedEnd',
+		        title: '计划竣工时间',
+		        sortable: true,
+		        sortName: 'plannedEnd'
+		       
+		    }
+			,{
+		        field: 'actualStart',
+		        title: '实际开工时间',
+		        sortable: true,
+		        sortName: 'actualStart'
+		       
+		    },{
+					   field: 'actualEnd',
+					   title: '实际竣工时间',
+					   sortable: true,
+					   sortName: 'actualEnd'
+
+			   }
+		     ]
+		
+		});
+		
+		  
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+
+		 
+		  $('#leave1Table').bootstrapTable("toggleView");
+		}
+	  
+	  $('#leave1Table').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#leave1Table').bootstrapTable('getSelections').length);
+            $('#view,#edit,#add').prop('disabled', $('#leave1Table').bootstrapTable('getSelections').length!=1);
+        });
+		  
+		$("#btnImport").click(function(){
+			jp.open({
+			    type: 2,
+                area: [500, 200],
+                auto: true,
+			    title:"导入数据",
+			    content: "${ctx}/tag/importExcel" ,
+			    btn: ['下载模板','确定', '关闭'],
+				    btn1: function(index, layero){
+					  jp.downloadFile('${ctx}/test/one/dialog/leave1/import/template');
+				  },
+			    btn2: function(index, layero){
+				        var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+						iframeWin.contentWindow.importExcel('${ctx}/test/one/dialog/leave1/import', 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);
+	    	       }
+			}); 
+		});
+		
+		
+	 $("#export").click(function(){//导出Excel文件
+			jp.downloadFile('${ctx}/test/one/dialog/leave1/export');
+	  });
+
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#leave1Table').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#leave1Table').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($("#leave1Table").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+  
+  function deleteAll(){
+
+		jp.confirm('确认要删除该请假表单记录吗?', function(){
+			jp.loading();  	
+			jp.get("${ctx}/test/one/dialog/leave1/deleteAll?ids=" + getIdSelections(), function(data){
+         	  		if(data.success){
+         	  			$('#leave1Table').bootstrapTable('refresh');
+         	  			jp.success(data.msg);
+         	  		}else{
+         	  			jp.error(data.msg);
+         	  		}
+         	  	})
+          	   
+		})
+  }
+
+    //刷新列表
+  function refresh(){
+  	$('#leave1Table').bootstrapTable('refresh');
+  }
+  
+   function add(id){
+	   if(id == undefined){
+		   id = getIdSelections();
+	   }
+	   jp.downloadFile('${ctx}/materialmodule/activiti/electricityStart?id=' + id);
+	   refresh();
+  }
+
+
+  
+   function edit(id){//没有权限时,不显示确定按钮
+       if(id == undefined){
+	      id = getIdSelections();
+		}
+	   jp.downloadFile('${ctx}/materialmodule/activiti/electricityEnd?id=' + id);
+	   refresh();
+  }
+
+
+
+
+</script>

+ 65 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/exportPowerList.jsp

@@ -0,0 +1,65 @@
+<%@ 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="exportPowerList.js" %>
+</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="materialModule" 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="projectId" cssClass="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" cssClass="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="reserveProjectName" cssClass="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="add" class="btn btn-primary"  disabled onclick="add()">
+					<i class="glyphicon glyphicon-export"></i> 导出涉电/电气开工报告
+				</button>
+			    <button id="edit" class="btn btn-primary" disabled onclick="edit()">
+	            	<i class="glyphicon glyphicon-export"></i> 导出涉电/电气竣工报告
+	        	</button>
+		    </div>
+		
+	<!-- 表格 -->
+	<table id="leave1Table"   data-toolbar="#toolbar"></table>
+
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu"></ul>
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 276 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonExportList.js

@@ -0,0 +1,276 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	$('#leave1Table').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: 10,  
+               //可供选择的每页的行数(*)    
+               pageList: [10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+               url: "${ctx}/nonPower/exportListData",
+               //默认值为 '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}/test/one/dialog/leave1/delete?id="+row.id, function(data){
+                   	  		if(data.success){
+                   	  			$('#leave1Table').bootstrapTable('refresh');
+                   	  			jp.success(data.msg);
+                   	  		}else{
+                   	  			jp.error(data.msg);
+                   	  		}
+                   	  	})
+                   	   
+                   	});
+                      
+                   } 
+               },
+              
+               onClickRow: function(row, $el){
+               },
+               	onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [{
+		        checkbox: true
+		       
+		    }
+			,{
+		        field: 'projectId',
+		        title: '项目定义号',
+		        sortable: true,
+		        sortName: 'office.name'
+		    }
+			,{
+		        field: 'projectName',
+		        title: '项目名称',
+		        sortable: true,
+		        sortName: 'projectName'
+		       
+		    }
+			,{
+		        field: 'reserveProjectName',
+		        title: '储备项目名称',
+		        sortable: true,
+		        sortName: 'reserveProjectName'
+		       
+		    }
+			,{
+		        field: 'plannedStart',
+		        title: '计划开工时间',
+		        sortable: true,
+		        sortName: 'plannedStart'
+		       
+		    }
+			,{
+		        field: 'plannedEnd',
+		        title: '计划竣工时间',
+		        sortable: true,
+		        sortName: 'plannedEnd'
+		       
+		    }
+			,{
+		        field: 'actualStart',
+		        title: '实际开工时间',
+		        sortable: true,
+		        sortName: 'actualStart'
+		       
+		    },{
+					   field: 'actualEnd',
+					   title: '实际竣工时间',
+					   sortable: true,
+					   sortName: 'actualEnd'
+
+			   },{
+					   field: 'civilStartReport',
+					   title: '土建开工工程量',
+					   sortable: true,
+					   sortName: 'civilStartReport'
+
+				   },{
+					   field: 'civilEndReport',
+					   title: '土建竣工工程量',
+					   sortable: true,
+					   sortName: 'civilEndReport'
+
+				   }
+		     ]
+		
+		});
+		
+		  
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+
+		 
+		  $('#leave1Table').bootstrapTable("toggleView");
+		}
+	  
+	  $('#leave1Table').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#leave1Table').bootstrapTable('getSelections').length);
+            $('#view,#edit,#add').prop('disabled', $('#leave1Table').bootstrapTable('getSelections').length!=1);
+        });
+		  
+		$("#btnImport").click(function(){
+			jp.open({
+			    type: 2,
+                area: [500, 200],
+                auto: true,
+			    title:"导入数据",
+			    content: "${ctx}/tag/importExcel" ,
+			    btn: ['下载模板','确定', '关闭'],
+				    btn1: function(index, layero){
+					  jp.downloadFile('${ctx}/test/one/dialog/leave1/import/template');
+				  },
+			    btn2: function(index, layero){
+				        var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+						iframeWin.contentWindow.importExcel('${ctx}/test/one/dialog/leave1/import', 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);
+	    	       }
+			}); 
+		});
+		
+		
+	 $("#export").click(function(){//导出Excel文件
+			jp.downloadFile('${ctx}/test/one/dialog/leave1/export');
+	  });
+
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#leave1Table').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#leave1Table').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($("#leave1Table").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+  
+  function deleteAll(){
+
+		jp.confirm('确认要删除该请假表单记录吗?', function(){
+			jp.loading();  	
+			jp.get("${ctx}/test/one/dialog/leave1/deleteAll?ids=" + getIdSelections(), function(data){
+         	  		if(data.success){
+         	  			$('#leave1Table').bootstrapTable('refresh');
+         	  			jp.success(data.msg);
+         	  		}else{
+         	  			jp.error(data.msg);
+         	  		}
+         	  	})
+          	   
+		})
+  }
+
+    //刷新列表
+  function refresh(){
+  	$('#leave1Table').bootstrapTable('refresh');
+  }
+  
+   function add(id){
+	   if(id == undefined){
+		   id = getIdSelections();
+	   }
+	   jp.downloadFile('${ctx}/nonPower/civilStart?id=' + id);
+	   refresh();
+  }
+
+
+  
+   function edit(id){//没有权限时,不显示确定按钮
+       if(id == undefined){
+	      id = getIdSelections();
+		}
+	   jp.downloadFile('${ctx}/nonPower/civilEnd?id=' + id);
+	   refresh();
+  }
+  
+ function view(id){//没有权限时,不显示确定按钮
+      if(id == undefined){
+             id = getIdSelections();
+      }
+        jp.openViewDialog('查看请假表单', "${ctx}/test/one/dialog/leave1/form?id=" + id, '800px', '500px');
+ }
+
+
+
+</script>

+ 65 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonExportList.jsp

@@ -0,0 +1,65 @@
+<%@ 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="nonExportList.js" %>
+</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="nonPower" 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="projectId" cssClass="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" cssClass="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="reserveProjectName" cssClass="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="add" class="btn btn-primary"  disabled onclick="add()">
+					<i class="glyphicon glyphicon-export"></i> 导出土建开工报告
+				</button>
+			    <button id="edit" class="btn btn-primary" disabled onclick="edit()">
+	            	<i class="glyphicon glyphicon-export"></i> 导出土建竣工报告
+	        	</button>
+		    </div>
+		
+	<!-- 表格 -->
+	<table id="leave1Table"   data-toolbar="#toolbar"></table>
+
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu"></ul>
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 7 - 3
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.js

@@ -3,7 +3,9 @@
 $(document).ready(function() {
 	$("#agree").click(function () {
 		var civilEndReport = $("#civilEndReport").val();
-		if (civilEndReport == "") {
+		var actualStart = $("#actualStart").val();
+		var actualEnd = $("#actualEnd").val();
+		if (civilEndReport == "" || actualStart == "" || actualEnd == "") {
 			jp.error("请正确填写内容");
 			return false;
 		}
@@ -18,6 +20,8 @@ $(document).ready(function() {
 				"procDefId":"${nonPower.act.procDefId}",
 				"flag":"yes",
 				"civilEndReport":civilEndReport,
+				"actualStart":actualStart,
+				"actualEnd":actualEnd,
 				"comment":window.encodeURI(message)
 			},
 			function (data) {
@@ -56,8 +60,8 @@ $(document).ready(function() {
 	});
 
 	$("#export").click(function(){
-		var procId = "${nonPower.act.procInsId}";
-		jp.downloadFile('${ctx}/nonPower/civilStart?procInsId='+ procId);
+		var id = "${nonPower.id}";
+		jp.downloadFile('${ctx}/nonPower/civilStart?id='+ id);
 	});
 })
 		

+ 4 - 4
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonPowerEnd.jsp

@@ -56,9 +56,9 @@
 						</td>
 					</tr>
 					<tr>
-						<td class="width-15 active"><label class="pull-right">计划开工时间:</label></td>
+						<td class="width-15 active"><label class="pull-right">实际开工时间:</label></td>
 						<td class="width-35">
-							<form:input id="plannedStart" path="plannedStart" readonly="true"
+							<form:input id="actualStart" path="actualStart"
 										cssClass="form-control required" placeholder="必填"/>
 						</td>
 						<td class="width-15 active"><label class="pull-right">项目负责人:</label></td>
@@ -73,9 +73,9 @@
 							<form:input id="personInCharge" path="personInCharge" readonly="true"
 										cssClass="form-control required" placeholder="必填"/>
 						</td>
-						<td class="width-15 active"><label class="pull-right">计划竣工时间:</label></td>
+						<td class="width-15 active"><label class="pull-right">实际竣工时间:</label></td>
 						<td class="width-35">
-							<form:input id="plannedEnd" path="plannedEnd" readonly="true"
+							<form:input id="actualEnd" path="actualEnd"
 										cssClass="form-control required" placeholder="必填"/>
 						</td>
 					</tr>

+ 1 - 1
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerEnd.js

@@ -47,7 +47,7 @@ $(document).ready(function() {
 	});
 
 	$("#export").click(function(){
-		jp.downloadFile('${ctx}/nonPower/civilEnd?procInsId='+${nonPower.act.procInsId});
+		jp.downloadFile('${ctx}/nonPower/civilEnd?id=${nonPower.id}');
 	});
 })
 

+ 4 - 4
src/main/webapp/webpage/modules/sg/materialmodule/activiti/nonRePowerEnd.jsp

@@ -56,9 +56,9 @@
                             </td>
                         </tr>
                         <tr>
-                            <td class="width-15 active"><label class="pull-right">计划开工时间:</label></td>
+                            <td class="width-15 active"><label class="pull-right">实际开工时间:</label></td>
                             <td class="width-35">
-                                <form:input id="plannedStart" path="plannedStart" readonly="true"
+                                <form:input id="actualStart" path="actualStart" readonly="true"
                                             cssClass="form-control required" placeholder="必填"/>
                             </td>
                             <td class="width-15 active"><label class="pull-right">项目负责人:</label></td>
@@ -73,9 +73,9 @@
                                 <form:input id="personInCharge" path="personInCharge" readonly="true"
                                             cssClass="form-control required" placeholder="必填"/>
                             </td>
-                            <td class="width-15 active"><label class="pull-right">计划竣工时间:</label></td>
+                            <td class="width-15 active"><label class="pull-right">实际竣工时间:</label></td>
                             <td class="width-35">
-                                <form:input id="plannedEnd" path="plannedEnd" readonly="true"
+                                <form:input id="actualEnd" path="actualEnd" readonly="true"
                                             cssClass="form-control required" placeholder="必填"/>
                             </td>
                         </tr>

+ 4 - 8
src/main/webapp/webpage/modules/sg/materialmodule/activiti/rePowerEnd.js

@@ -120,13 +120,10 @@ $(document).ready(function() {
             $('#view,#edit').prop('disabled', $('#testPicTable').bootstrapTable('getSelections').length!=1);
         });
 
-	 $("#export").click(function(){//导出Excel文件
-			jp.downloadFile('${ctx}/test/pic/testPic/export');
-	  });
-		    
-	  $("#search").click("click", function() {// 绑定查询按扭
-		  $('#testPicTable').bootstrapTable('refresh');
-		});
+	$("#electricityEnd").click(function(){//导出Excel文件
+		jp.downloadFile('${ctx}/materialmodule/activiti/electricityEnd?id=${materialModule.id}');
+	});
+
 	 
 	 $("#reset").click("click", function() {// 绑定查询按扭
 		  $("#searchForm  input").val("");
@@ -190,5 +187,4 @@ $(document).ready(function() {
   	$('#testPicTable').bootstrapTable('refresh');
   }
 
-
 </script>

+ 117 - 0
src/main/webapp/webpage/modules/sg/materialmodule/activiti/rePowerEnd.jsp

@@ -15,7 +15,11 @@
 	<div class="panel-heading">
 		<h3 class="panel-title">审核涉电竣工报告</h3>
 	</div>
+
 	<div class="panel-body">
+		<button id="electricityEnd" class="btn btn-warning">
+			<i class="fa fa-file-excel-o"></i> 导出竣工报告-涉电(含电气)
+		</button>
 	<!-- 表格 -->
 	<table id="testPicTable"   data-toolbar="#toolbar"></table>
 		<div class="panel-body">
@@ -27,6 +31,119 @@
 				<form:hidden path="act.procInsId"/>
 				<form:hidden path="act.procDefId"/>
 				<input type="hidden" id="procInsId" name="procInsId" value="${materialModule.act.procInsId}"/>
+				<table class="table table-bordered">
+					<tbody>
+					<form:hidden path="reserveProjectName"/>
+					<form:hidden path="projectId"/>
+					<tr>
+						<td class="width-15 active">项目名称 :</td>
+						<td class="width-35">
+							<form:input id="projectName" path="projectName" readonly="true"
+										cssClass="form-control"/>
+						</td>
+						<td class="width-15 active">工程编号:</td>
+						<td class="width-35">
+							<form:input id="projectNumber" path="projectNumber" readonly="true"
+										cssClass="form-control"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">建设单位:</td>
+						<td class="width-35">
+							<form:input id="buildingUnit" path="buildingUnit" readonly="true"
+										cssClass="form-control"/>
+						</td>
+						<td class="width-15 active">施工单位:</td>
+						<td class="width-35">
+							<form:input id="constructionUnit" path="constructionUnit"  readonly="true"
+										cssClass="form-control"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">实际开工时间:</td>
+						<td class="width-35">
+							<form:input id="actualStart" path="actualStart" readonly="true"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+						<td class="width-15 active">实际竣工时间:</td>
+						<td class="width-35">
+							<form:input id="actualEnd" path="actualEnd" readonly="true"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">项目负责人:</td>
+						<td class="width-35">
+							<form:input id="projectManager" path="projectManager" readonly="true"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+						<td class="width-15 active">施工负责人:</td>
+						<td class="width-35">
+							<form:input id="personInCharge" path="personInCharge" readonly="true"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">线路名称:</td>
+						<td class="width-35">
+							<form:input id="lineName" path="lineName" readonly="true"
+										cssClass="form-control"/>
+						</td>
+						<td class="width-15 active">工作地点:</td>
+						<td class="width-35">
+							<form:input id="workPlace" path="workPlace" readonly="true"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">作业方式:</td>
+						<td class="width-35">
+							<form:input id="wayOfWorking" path="wayOfWorking" readonly="true"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+						<td class="width-15 active">开工新建工作量:</td>
+						<td class="width-35">
+							<form:input id="startConstruction" path="startConstruction" readonly="true"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">开工拆除工作量:</td>
+						<td class="width-35">
+							<form:input id="startLoad" path="startLoad" readonly="true"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+						<td class="width-15 active">开工交叉跨越:</td>
+						<td class="width-35">
+							<form:input path="startCrossover" cssClass="form-control" readonly="true"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">竣工作业方式:</td>
+						<td class="width-35">
+							<form:input id="completedWork" path="completedWork" readonly="true"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+						<td class="width-15 active">竣工新建工作量:</td>
+						<td class="width-35">
+							<form:input id="endConstruction" path="endConstruction"  readonly="true" cssClass="form-control required"
+										placeholder="必填"/>
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active">竣工拆除工作量:</td>
+						<td class="width-35">
+							<form:input id="endLoad" path="endLoad" readonly="true"
+										cssClass="form-control required" placeholder="必填"/>
+						</td>
+						<td class="width-15 active">竣工交叉跨越:</td>
+						<td class="width-35">
+							<form:input path="endCrossover" cssClass="form-control" readonly="true"/>
+						</td>
+					</tr>
+					</tr>
+					</tbody>
+				</table>
 			</form:form>
 			<div class="row">
 				<div class="col-sm-3"></div>