Forráskód Böngészése

储备流程完成接入物资上报,流程完成,项目建设规模统计,文件管理

lem 4 éve
szülő
commit
96c2b67d39
26 módosított fájl, 1746 hozzáadás és 85 törlés
  1. 32 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialinfo/util/MaterialInfoUtil.java
  2. 22 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/entity/ScaleDetails.java
  3. 8 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/PersonnelTurnoverMapper.java
  4. 10 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/ReserveManagementMapper.java
  5. 36 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/ReserveProcessMapper.java
  6. 28 1
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/ScaleDetailsMapper.java
  7. 5 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/StandardMapper.java
  8. 4 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/xml/PersonnelTurnoverMapper.xml
  9. 97 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/xml/ReserveManagementMapper.xml
  10. 83 1
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/xml/ReserveProcessMapper.xml
  11. 277 33
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/xml/ScaleDetailsMapper.xml
  12. 14 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/xml/StandardMapper.xml
  13. 404 14
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/service/ReserveProcessService.java
  14. 14 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/service/ScaleDetailsService.java
  15. 6 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/service/StandardService.java
  16. 11 11
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/web/PersonnelTurnoverController.java
  17. 76 4
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/web/ReserveProcessController.java
  18. 48 5
      src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/web/ScaleDetailsController.java
  19. 0 12
      src/main/webapp/webpage/modules/sg/managementcenter/materialinfo/importProcess.jsp
  20. 220 0
      src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/afterList.js
  21. 61 0
      src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/afterList.jsp
  22. 2 2
      src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/allUploadList.js
  23. 4 0
      src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/allUploadList.jsp
  24. 3 2
      src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/designUnit.jsp
  25. 220 0
      src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/scaleDetailsList.js
  26. 61 0
      src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/scaleDetailsList.jsp

+ 32 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/materialinfo/util/MaterialInfoUtil.java

@@ -65,6 +65,38 @@ public class MaterialInfoUtil {
         return new ArrayList<>(map.values());
     }
 
+
+    /**
+     * 获取‘领料清单数据’
+     * @param importExcel
+     * @param projectName
+     * @return
+     */
+    public static List<MaterialInfo> getCbData(ImportExcel importExcel, String projectName)  {
+        int lastRow = importExcel.getLastDataRowNum();
+        List<MaterialInfo> list = new ArrayList<>();
+        MaterialInfo maintainData = null;
+        for(int i=6; i<lastRow;i++){
+            maintainData = new MaterialInfo();
+            Row row = importExcel.getRow(i);
+            String materialCode = (String) importExcel.getCellValue(row,1);//物料编码
+            if(StringUtils.isNotBlank(materialCode)) {
+                maintainData.setProjectName(projectName);//项目名称
+                maintainData.setMaterialCode(materialCode);
+                maintainData.setMaterialName((String) importExcel.getCellValue(row,2));//物料名称
+                maintainData.setExtendDescription((String) importExcel.getCellValue(row,3));//扩展描述
+                maintainData.setUnit((String) importExcel.getCellValue(row,4));//单位
+                maintainData.setTotalCount(getDouble(importExcel,row,5));//总量
+                maintainData.setWeightKg(getDouble(importExcel,row,6));//单重/kg
+                maintainData.setWeightTon(getDouble(importExcel,row,7));//总重/吨
+                maintainData.setSupplyType((String) importExcel.getCellValue(row,8));//甲乙供
+                maintainData.setNote((String) importExcel.getCellValue(row,9));//备注
+                list.add(maintainData);
+            }
+        }
+        return list;
+    }
+
 //    /**
 //     * 合并数据
 //     * @param materialInfos

+ 22 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/entity/ScaleDetails.java

@@ -1,5 +1,6 @@
 package com.jeeplus.modules.sg.managementcenter.reserveManagement.entity;
 
+import com.jeeplus.common.utils.excel.annotation.ExcelField;
 import com.jeeplus.core.persistence.DataEntity;
 
 public class ScaleDetails extends DataEntity<ScaleDetails> {
@@ -88,6 +89,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
      * */
     private String cableChannel;
 
+    @ExcelField(title="储备项目名称", align=2, sort=1)
     public String getProjectName() {
         return projectName;
     }
@@ -96,6 +98,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.projectName = projectName;
     }
 
+    @ExcelField(title="储备项目编码", align=2, sort=2)
     public String getProjectReserveId() {
         return projectReserveId;
     }
@@ -104,6 +107,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.projectReserveId = projectReserveId;
     }
 
+    @ExcelField(title="开关柜", align=2, sort=3)
     public String getSwitchCabinet() {
         return switchCabinet;
     }
@@ -112,6 +116,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.switchCabinet = switchCabinet;
     }
 
+    @ExcelField(title="架空线路", align=2, sort=4)
     public String getOverheadLines() {
         return overheadLines;
     }
@@ -120,6 +125,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.overheadLines = overheadLines;
     }
 
+    @ExcelField(title="电力电缆", align=2, sort=5)
     public String getPowerCable() {
         return powerCable;
     }
@@ -128,6 +134,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.powerCable = powerCable;
     }
 
+    @ExcelField(title="10千伏电缆分接箱", align=2, sort=6)
     public String getCableBox() {
         return cableBox;
     }
@@ -136,6 +143,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.cableBox = cableBox;
     }
 
+    @ExcelField(title="环网箱/室", align=2, sort=7)
     public String getRingCare() {
         return ringCare;
     }
@@ -144,6 +152,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.ringCare = ringCare;
     }
 
+    @ExcelField(title="开关站", align=2, sort=8)
     public String getSwitchYard() {
         return switchYard;
     }
@@ -152,6 +161,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.switchYard = switchYard;
     }
 
+    @ExcelField(title="柱上开关", align=2, sort=9)
     public String getPostSwitch() {
         return postSwitch;
     }
@@ -160,6 +170,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.postSwitch = postSwitch;
     }
 
+    @ExcelField(title="配电室kva", align=2, sort=10)
     public String getDistributionKva() {
         return distributionKva;
     }
@@ -168,6 +179,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.distributionKva = distributionKva;
     }
 
+    @ExcelField(title="配电室", align=2, sort=11)
     public String getDistribution() {
         return distribution;
     }
@@ -176,6 +188,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.distribution = distribution;
     }
 
+    @ExcelField(title="箱变kva", align=2, sort=12)
     public String getBoxTransformerKva() {
         return boxTransformerKva;
     }
@@ -184,6 +197,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.boxTransformerKva = boxTransformerKva;
     }
 
+    @ExcelField(title="箱变", align=2, sort=13)
     public String getBoxTransformer() {
         return boxTransformer;
     }
@@ -192,6 +206,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.boxTransformer = boxTransformer;
     }
 
+    @ExcelField(title="配电变压器kva", align=2, sort=14)
     public String getDisTransformerKva() {
         return disTransformerKva;
     }
@@ -200,6 +215,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.disTransformerKva = disTransformerKva;
     }
 
+    @ExcelField(title="配电变压器", align=2, sort=15)
     public String getDisTransformer() {
         return disTransformer;
     }
@@ -208,6 +224,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.disTransformer = disTransformer;
     }
 
+    @ExcelField(title="低压线路", align=2, sort=16)
     public String getLowVoltageLine() {
         return lowVoltageLine;
     }
@@ -216,6 +233,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.lowVoltageLine = lowVoltageLine;
     }
 
+    @ExcelField(title="低压电缆", align=2, sort=17)
     public String getLowVoltageCable() {
         return lowVoltageCable;
     }
@@ -224,6 +242,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.lowVoltageCable = lowVoltageCable;
     }
 
+    @ExcelField(title="低压电缆分接箱", align=2, sort=18)
     public String getLowDistributionBox() {
         return lowDistributionBox;
     }
@@ -232,6 +251,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.lowDistributionBox = lowDistributionBox;
     }
 
+    @ExcelField(title="低压配电箱(柜)", align=2, sort=19)
     public String getLowBoxCabinet() {
         return lowBoxCabinet;
     }
@@ -240,6 +260,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.lowBoxCabinet = lowBoxCabinet;
     }
 
+    @ExcelField(title="配电自动化终端(DTU)", align=2, sort=20)
     public String getDistributionTerminal() {
         return distributionTerminal;
     }
@@ -248,6 +269,7 @@ public class ScaleDetails extends DataEntity<ScaleDetails> {
         this.distributionTerminal = distributionTerminal;
     }
 
+    @ExcelField(title="电缆通道", align=2, sort=21)
     public String getCableChannel() {
         return cableChannel;
     }

+ 8 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/PersonnelTurnoverMapper.java

@@ -30,5 +30,13 @@ public interface PersonnelTurnoverMapper extends BaseMapper<PersonnelTurnover> {
     void deletePerson(String projectReserveId);
 
 
+    /**
+     * 通过项目名称修改储备项目项目规模状态
+     */
+    void updateMaterialStatus(@Param("projectReserveId") String projectReserveId, @Param("materialsStatus") String materialsStatus);
 
+    /**
+     * 通过项目名称修改储备项目项目规模状态
+     */
+    void updateAddWareHousingStatus(@Param("projectReserveId") String projectReserveId, @Param("addWareHousing") String addWareHousing);
 }

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

@@ -73,4 +73,14 @@ public interface ReserveManagementMapper extends BaseMapper<ReserveManagement> {
      * @return 查询结果
      * */
     List<ExportScheme> exportModuleList(ExportScheme entity);
+
+    /**
+     * 通过项目名称查询对应项目信息
+     * */
+    ReserveManagement findByName(String projectName);
+
+    /**
+     * 通过流程定义号查询储备项目基础信息
+     * */
+    ReserveManagement findByProcInsId(String procInsId);
 }

+ 36 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/ReserveProcessMapper.java

@@ -37,6 +37,11 @@ public interface ReserveProcessMapper extends BaseMapper<ReserveProcess> {
     void updateDesign(ReserveProcess reserveProcess);
 
     /**
+     * 通过项目名称导出符合条件的数据
+     */
+    List<MaterialInfo> findMaterialExport(List<String> projectName);
+
+    /**
      * 插入对应的项目甲供材信息
      * */
     void insertList(@Param("list") List<MaterialInfo> list);
@@ -66,4 +71,35 @@ public interface ReserveProcessMapper extends BaseMapper<ReserveProcess> {
      * 通过流程定义号修改项目的金额数据
      */
     void updateAmount(ReserveProcess reserveProcess);
+
+    /**
+     * 通过id查询符合条件的项目名称
+     */
+    List<String> findByIds(String[] ids);
+
+    /**
+     * 查询出所有的项目名称
+     * */
+    List<String> findAllName();
+
+
+    /**
+     * 通过id查询符合条件的储备项目编码
+     */
+    List<String> findIds(String[] ids);
+
+    /**
+     * 查询出所有的储备项目编码
+     * */
+    List<String> findAllId();
+
+    /**
+     * 通过项目名称查询出符合条件的附件信息
+     */
+    List<ReserveProcess> findReserveById(List<String> projectName);
+
+    /**
+     * 通过项目名称查询所有的项目
+     * */
+    List<MaterialInfo> findMaterialByName(String projectName);
 }

+ 28 - 1
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/ScaleDetailsMapper.java

@@ -2,15 +2,42 @@ package com.jeeplus.modules.sg.managementcenter.reserveManagement.mapper;
 
 import com.jeeplus.core.persistence.BaseMapper;
 import com.jeeplus.core.persistence.annotation.MyBatisMapper;
+import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo;
 import com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ScaleDetails;
 import com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.Standard;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
 /**
- * 人员流转 Mapper
+ * 项目规模 Mapper
  */
 @MyBatisMapper
 public interface ScaleDetailsMapper extends BaseMapper<ScaleDetails> {
 
+    /**
+     * 更新项目规模数据
+     * */
+    void insertList(@Param("list") List<ScaleDetails> list);
+
+    /**
+     * 通过项目名称删除对应的项目规模数据
+     * */
+    void deleteName(String projectName);
+
+    /**
+     * 导出信息进行中及审核过
+     * */
+    List<ScaleDetails> exportList(@Param("ids")String[] ids);
+
+
+    List<ScaleDetails> exportAfterList(@Param("ids")String[] ids);
+
+
+    /**
+     * 查询审核过
+     * */
+    List<ScaleDetails> findExamineList(ScaleDetails scaleDetails);
+
+
 }

+ 5 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/StandardMapper.java

@@ -45,4 +45,9 @@ public interface StandardMapper extends BaseMapper<Standard> {
      * 列表插入所有详细信息
      * */
     void insertChildList(List<Standard> list);
+
+    /**
+     * 获取所有物料详细比对信息
+     * */
+    List<Standard> findALl();
 }

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

@@ -138,6 +138,10 @@
         update cb_personnel_turnover set openProcessStatus =#{openProcessStatus}
         where projectReserveId = #{projectReserveId}
     </update>
+    <update id="updateAddWareHousingStatus">
+        update cb_personnel_turnover set addWareHousing =#{addWareHousing}
+        where projectReserveId = #{projectReserveId}
+    </update>
 
 
 </mapper>

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

@@ -400,6 +400,103 @@
             </if>
         </where>
     </select>
+    <select id="findByName"
+            resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ReserveManagement">
+        select id,
+               create_by,
+               create_date,
+               update_by,
+               update_date,
+               del_flag,
+               remarks,
+               projectReserveId,
+               projectName
+        from cb_reserve_management
+        where projectName = #{projectName}
+    </select>
+    <select id="findByProcInsId"
+            resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ReserveManagement">
+        select id,
+               create_by,
+               create_date,
+               update_by,
+               update_date,
+               del_flag,
+               remarks,
+               projectNature,
+               demandUnit,
+               district,
+               projectGroup,
+               reserveBatches,
+               blockSupply,
+               gridNumber,
+               cellNumber,
+               projectReserveId,
+               powerGridProjectId,
+               projectName,
+               constructionNecessityAndContent,
+               substationName,
+               circuitName,
+               netRackProjectDivide,
+               projectType,
+               costEstimate,
+               whetherWindwardProject,
+               projectUrgencyDegree,
+               implementIssuedYear,
+               implementBatch,
+               basicRemarks,
+               designCondition,
+               whetherPassReview,
+               whetherNeedWiringDiagram,
+               whetherFinishMaterials,
+               whetherFinishDrawing,
+               disclosureToCoordinate,
+               disclosureParticipate,
+               whetherFinishDisclosure,
+               projectManagementPeople,
+               designingInstitutePeople,
+               ifoPeople,
+               regionalCenterPeople,
+               uninterruptedOperationPeople,
+               workMode,
+               disclosureFinishDate,
+               disclosureRemarks,
+               projectDescription,
+               doNotPossessProjectDescription,
+               changedProgramsExplain,
+               initialDifficulty,
+               capitalEquipment,
+               substationNewLine,
+               whetherImplement,
+               fieldDescription,
+               necessaryOfImplementation,
+               unnecessaryDescription,
+               precondition,
+               conditionsDescribed,
+               constructionSchemeProblem,
+               problemDescriptionOfConstructionScheme,
+               existingSecurityThreat,
+               safetyHazardDescription,
+               customizedMaterials,
+               materialDescription,
+               dismantlingTheOldMaterial,
+               operatingType,
+               problemDescription,
+               civilWork,
+               verticalRodWorkload,
+               totalWorkloadDescription,
+               regionalCenter,
+               powerSupplyArea,
+               zhengLocation,
+               zhengType,
+               zhengObject,
+               zhengDescribe,
+               projectApproval,
+               courseEvaluationProcedures,
+               zhengDifficultyWarn
+        from cb_reserve_management
+        where projectReserveId = (select projectReserveId from cb_personnel_activiti where proc_ins_id = #{procInsId})
+    </select>
 
 
     <insert id="insert">

+ 83 - 1
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/xml/ReserveProcessMapper.xml

@@ -190,7 +190,7 @@
     <select id="findAllUpload"
             resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ReserveProcess">
         select
-        a.id,
+        b.id,
         b.projectReserveId,
         b.projectName,
         a.budgetStatement,
@@ -212,6 +212,88 @@
         from cb_personnel_activiti
         where proc_ins_id = #{procInsId}
     </select>
+    <select id="findByIds" resultType="java.lang.String">
+        select projectName from cb_reserve_management where
+        id in
+    <foreach collection="array" index="index" item="item" separator="," open="(" close=")">
+        #{item}
+    </foreach>
+    </select>
+
+    <select id="findAllName" resultType="java.lang.String">
+        select projectName
+        from cb_reserve_management
+        where projectReserveId in (select projectReserveId from cb_personnel_activiti)
+    </select>
+
+    <select id="findMaterialExport"
+            resultType="com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo">
+        select
+               projectName,
+               materialCode,
+                materialName,
+               extendDescription,
+               unit,
+               totalCount,
+               weightKg,
+               weightTon,
+               supplyType,
+               note,
+               state
+        from
+        cb_material_data
+        where projectName in
+        <foreach collection="list" item="item" index="index" separator="," open="(" close=")" >
+            #{item}
+        </foreach>
+    </select>
+    <select id="findReserveById"
+            resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ReserveProcess">
+        select id,
+               projectReserveId,
+                budgetStatement,
+               projectProposal,
+               drawings,
+               drawingSpecification
+        from cb_personnel_activiti where projectReserveId in
+        <foreach collection="list" item="item" index="index" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </select>
+    <select id="findIds" resultType="java.lang.String">
+        select projectReserveId from cb_reserve_management where
+        id in
+        <foreach collection="array" index="index" item="item" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </select>
+    <select id="findAllId" resultType="java.lang.String">
+        select projectReserveId
+        from cb_personnel_activiti
+    </select>
+    <select id="findMaterialByName"
+            resultType="com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo">
+        select id,
+               create_by,
+               create_date,
+               update_by,
+               update_date,
+               del_flag,
+               remarks,
+               projectName,
+               materialCode,
+               materialName,
+               extendDescription,
+               unit,
+               totalCount,
+               weightKg,
+               weightTon,
+               supplyType,
+               note,
+               state
+        from cb_material_data
+        where projectName = #{projectName}
+    </select>
 
     <insert id="insert">
         insert into cb_personnel_activiti (

+ 277 - 33
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/mapper/xml/ScaleDetailsMapper.xml

@@ -3,23 +3,48 @@
 <mapper namespace="com.jeeplus.modules.sg.managementcenter.reserveManagement.mapper.ScaleDetailsMapper">
 
     <sql id="scaleDetailsColumns">
-        a.id as "id",
-        a.create_by AS "createBy.id",
-		a.create_date AS "createDate",
-		a.update_by AS "updateBy.id",
-		a.update_date AS "updateDate",
-		a.remarks AS "remarks",
-		a.del_flag AS "delFlag",
-        a.projectCategory
+        b.id as "id",
+        b.create_by AS "createBy.id",
+		b.create_date AS "createDate",
+		b.update_by AS "updateBy.id",
+		b.update_date AS "updateDate",
+		b.remarks AS "remarks",
+		b.del_flag AS "delFlag",
+        b.projectName,
+        b.projectReserveId,
+        b.switchCabinet,
+        b.overheadLines,
+        b.powerCable,
+        b.cableBox,
+        b.ringCare,
+        b.switchYard,
+        b.postSwitch,
+        b.distributionKva,
+        b.distribution,
+        b.boxTransformerKva,
+        b.boxTransformer,
+        b.disTransformerKva,
+        b.disTransformer,
+        b.lowVoltageLine,
+        b.lowVoltageCable,
+        b.lowDistributionBox,
+        b.lowBoxCabinet,
+        b.distributionTerminal,
+        b.cableChannel
     </sql>
 
 
 
     <sql id="personnelJoinColumns">
     </sql>
+    <delete id="deleteName">
+        delete
+        from cb_scale_details
+        where projectName = #{projectName}
+    </delete>
 
 
-    <select id="get" resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.Standard">
+    <select id="get" resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ScaleDetails">
         select
         <include refid="scaleDetailsColumns"/>
         from cb_standard a
@@ -27,14 +52,16 @@
     </select>
 
     <select id="findList"
-            resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.Standard">
+            resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ScaleDetails">
         select
         <include refid="scaleDetailsColumns"/>
-        from cb_standard a
+        from cb_personnel_turnover a
+        left join cb_scale_details b on a.projectReserveId = b.projectReserveId
         <where>
             a.del_flag = 0
-            <if test="projectCategory!=null and projectCategory!=''">
-                and a.projectCategory like concat('%', #{projectCategory}, '%')
+            and (a.materialsStatus = 1 or a.materialsStatus =2)
+            <if test="projectReserveId!=null and projectReserveId!=''">
+                and b.projectReserveId like concat('%', #{projectReserveId}, '%')
             </if>
         </where>
         <choose>
@@ -48,26 +75,243 @@
     </select>
 
 
+    <select id="findExamineList"
+            resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ScaleDetails">
+        select
+        <include refid="scaleDetailsColumns"/>
+        from cb_personnel_turnover a
+        left join cb_scale_details b on a.projectReserveId = b.projectReserveId
+        <where>
+            a.del_flag = 0
+            and a.materialsStatus =2
+            <if test="projectReserveId!=null and projectReserveId!=''">
+                and b.projectReserveId like concat('%', #{projectReserveId}, '%')
+            </if>
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+                ORDER BY a.update_date DESC
+            </otherwise>
+        </choose>
+    </select>
+    <select id="exportList"
+            resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ScaleDetails">
+        select a.id,
+        a.create_by,
+        a.create_date,
+        a.update_by,
+        a.update_date,
+        a.del_flag,
+        a.remarks,
+        a.projectName,
+        a.projectReserveId,
+        a.switchCabinet,
+        a.overheadLines,
+        a.powerCable,
+        a.cableBox,
+        a.ringCare,
+        a.switchYard,
+        a.postSwitch,
+        a.distributionKva,
+        a.distribution,
+        a.boxTransformerKva,
+        a.boxTransformer,
+        a.disTransformerKva,
+        a.disTransformer,
+        a.lowVoltageLine,
+        a.lowVoltageCable,
+        a.lowDistributionBox,
+        a.lowBoxCabinet,
+        a.distributionTerminal,
+        a.cableChannel
+        from cb_scale_details a
+        left join cb_personnel_turnover b on a.projectReserveId = b.projectReserveId
+        <where>
+            1=1
+            and (b.materialsStatus = 1 or b.materialsStatus = 2)
+            <if test="ids != null and ids.length >0">
+            and a.id in
+                    <foreach collection="ids" index="index" item="item" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+
+    <select id="exportAfterList"
+            resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ScaleDetails">
+        select a.id,
+        a.create_by,
+        a.create_date,
+        a.update_by,
+        a.update_date,
+        a.del_flag,
+        a.remarks,
+        a.projectName,
+        a.projectReserveId,
+        a.switchCabinet,
+        a.overheadLines,
+        a.powerCable,
+        a.cableBox,
+        a.ringCare,
+        a.switchYard,
+        a.postSwitch,
+        a.distributionKva,
+        a.distribution,
+        a.boxTransformerKva,
+        a.boxTransformer,
+        a.disTransformerKva,
+        a.disTransformer,
+        a.lowVoltageLine,
+        a.lowVoltageCable,
+        a.lowDistributionBox,
+        a.lowBoxCabinet,
+        a.distributionTerminal,
+        a.cableChannel
+        from cb_scale_details a
+        left join cb_personnel_turnover b on a.projectReserveId = b.projectReserveId
+        <where>
+            1=1
+            and materialsStatus = 2
+            <if test="ids != null and ids.length >0">
+                and a.id in
+                <foreach collection="ids" index="index" item="item" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
 
     <insert id="insert">
-        insert into cb_standard (id,
-                                 create_by,
-                                 create_date,
-                                 update_by,
-                                 update_date,
-                                 del_flag,
-                                 remarks,
-                                 projectCategory)
-        values (#{id},
-                #{createBy.id},
-                #{createDate},
-                #{updateBy.id},
-                #{updateDate},
-                #{delFlag},
-                #{remarks},
-                #{projectCategory})
+        insert INTO cb_scale_details(
+        id,
+        create_by,
+        create_date,
+        update_by,
+        update_date,
+        del_flag,
+        remarks,
+        projectName,
+        projectReserveId,
+        switchCabinet,
+        overheadLines,
+        powerCable,
+        cableBox,
+        ringCare,
+        switchYard,
+        postSwitch,
+        distributionKva,
+        distribution,
+        boxTransformerKva,
+        boxTransformer,
+        disTransformerKva,
+        disTransformer,
+        lowVoltageLine,
+        lowVoltageCable,
+        lowDistributionBox,
+        lowBoxCabinet,
+        distributionTerminal,
+        cableChannel
+        ) VALUES
+            (
+            #{id},
+            #{createBy.id},
+            #{createDate},
+            #{updateBy.id},
+            #{updateDate},
+            #{delFlag},
+            #{remarks},
+            #{projectName},
+            #{projectReserveId},
+            #{switchCabinet},
+            #{overheadLines},
+            #{powerCable},
+            #{cableBox},
+            #{ringCare},
+            #{switchYard},
+            #{postSwitch},
+            #{distributionKva},
+            #{distribution},
+            #{boxTransformerKva},
+            #{boxTransformer},
+            #{disTransformerKva},
+            #{disTransformer},
+            #{lowVoltageLine},
+            #{lowVoltageCable},
+            #{lowDistributionBox},
+            #{lowBoxCabinet},
+            #{distributionTerminal},
+            #{cableChannel}
+            )
+    </insert>
+    <insert id="insertList">
+        insert INTO cb_scale_details(
+                    id,
+                    create_by,
+                    create_date,
+                    update_by,
+                    update_date,
+                    del_flag,
+                    remarks,
+                    projectName,
+                    projectReserveId,
+                    switchCabinet,
+                    overheadLines,
+                    powerCable,
+                    cableBox,
+                    ringCare,
+                    switchYard,
+                    postSwitch,
+                    distributionKva,
+                    distribution,
+                    boxTransformerKva,
+                    boxTransformer,
+                    disTransformerKva,
+                    disTransformer,
+                    lowVoltageLine,
+                    lowVoltageCable,
+                    lowDistributionBox,
+                    lowBoxCabinet,
+                    distributionTerminal,
+                    cableChannel
+        ) VALUES
+        <foreach collection="list" item="item" index="index" separator=",">
+            (
+            #{item.id},
+            #{item.createBy.id},
+            #{item.createDate},
+            #{item.updateBy.id},
+            #{item.updateDate},
+            #{item.delFlag},
+            #{item.remarks},
+            #{item.projectName},
+            #{item.projectReserveId},
+            #{item.switchCabinet},
+            #{item.overheadLines},
+            #{item.powerCable},
+            #{item.cableBox},
+            #{item.ringCare},
+            #{item.switchYard},
+            #{item.postSwitch},
+            #{item.distributionKva},
+            #{item.distribution},
+            #{item.boxTransformerKva},
+            #{item.boxTransformer},
+            #{item.disTransformerKva},
+            #{item.disTransformer},
+            #{item.lowVoltageLine},
+            #{item.lowVoltageCable},
+            #{item.lowDistributionBox},
+            #{item.lowBoxCabinet},
+            #{item.distributionTerminal},
+            #{item.cableChannel}
+            )
+        </foreach>
     </insert>
-
 
 
     <update id="update">
@@ -75,14 +319,14 @@
             cb_standard
         set update_by   = #{updateBy.id},
             update_date = #{updateDate},
-            remarks     = #{remarks},
-            where id = #{projectCategory}
+            remarks     = #{remarks}
+        where id = #{id}
     </update>
 
     <update id="delete">
         delete
         from cb_standard_detail
-        where projectCategory = #{projectCategory}
+        where id = #{id}
     </update>
 
 

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

@@ -84,6 +84,20 @@
         where projectCategory = #{projectCategory}
         and materialCode = #{materialCode}
     </select>
+    <select id="findALl"
+            resultType="com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.Standard">
+        select id,
+               create_by,
+               create_date,
+               update_by,
+               update_date,
+               del_flag,
+               remarks,
+               projectCategory,
+               materialCode,
+               materialDescription
+        from cb_standard_detail
+    </select>
 
     <insert id="insert">
         insert into cb_standard (id,

+ 404 - 14
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/service/ReserveProcessService.java

@@ -1,23 +1,27 @@
 package com.jeeplus.modules.sg.managementcenter.reserveManagement.service;
 
 import com.google.common.collect.Maps;
+import com.jeeplus.common.config.Global;
+import com.jeeplus.common.utils.PropertiesLoader;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.service.CrudService;
 import com.jeeplus.modules.act.entity.Act;
+import com.jeeplus.modules.filing.approvalStage.entity.EarlyStage;
 import com.jeeplus.modules.filing.basicInformation.entity.BasicInformationChild;
+import com.jeeplus.modules.filing.filingImages.entity.FilingImages;
+import com.jeeplus.modules.filing.filingImages.utils.ZipCompressUtil;
 import com.jeeplus.modules.sg.managementcenter.activiti.utils.MyActiviUtils;
 import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo;
+import com.jeeplus.modules.sg.managementcenter.materialinfo.mapper.MaterialInfoMapper;
 import com.jeeplus.modules.sg.managementcenter.materialinfo.util.MaterialInfoUtil;
 import com.jeeplus.modules.sg.managementcenter.materialproject.entity.MaterialProject;
+import com.jeeplus.modules.sg.managementcenter.materialproject.mapper.MaterialProjectMapper;
 import com.jeeplus.modules.sg.managementcenter.project.entity.Project;
-import com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.PersonnelTurnover;
-import com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ProgressSchedule;
+import com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.*;
 import com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ReserveProcess;
-import com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ReserveProcess;
-import com.jeeplus.modules.sg.managementcenter.reserveManagement.mapper.ProgressScheduleMapper;
-import com.jeeplus.modules.sg.managementcenter.reserveManagement.mapper.ReserveProcessMapper;
+import com.jeeplus.modules.sg.managementcenter.reserveManagement.mapper.*;
 import com.jeeplus.modules.sg.managementcenter.reserveManagement.mapper.ReserveProcessMapper;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import org.activiti.engine.TaskService;
@@ -28,12 +32,13 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.File;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+
+import static com.jeeplus.common.config.Global.SYS_TYPE;
 
 /**
  * 人员流转 Service
@@ -51,6 +56,29 @@ public class ReserveProcessService extends CrudService<ReserveProcessMapper, Res
     @Autowired
     private ProgressScheduleMapper scheduleMapper;
 
+    @Autowired
+    private StandardMapper standardMapper;
+
+    @Autowired
+    private ReserveManagementMapper reserveManagementMapper;
+
+    @Autowired
+    private ScaleDetailsMapper detailsMapper;
+
+    @Autowired
+    private PersonnelTurnoverMapper personnelTurnoverMapper;
+
+    @Autowired
+    private MaterialInfoMapper materialInfoMapper;
+
+    @Autowired
+    private MaterialProjectMapper projectMapper;
+
+    /**
+     * 属性文件加载对象
+     */
+    private static PropertiesLoader loader = new PropertiesLoader("/properties/jeeplus.properties");
+
     @Override
     public ReserveProcess get(ReserveProcess entity) {
         String projectId = mapper.findProjectId(entity);
@@ -121,6 +149,13 @@ public class ReserveProcessService extends CrudService<ReserveProcessMapper, Res
     }
 
     /**
+     * 通过项目名称导出符合条件的数据
+     */
+    public List<MaterialInfo> findMaterialExport(List<String> projectName) {
+        return mapper.findMaterialExport(projectName);
+    }
+
+    /**
      * 通过流程定义号修改项目的金额数据
      */
     @Transactional(readOnly = false)
@@ -129,6 +164,20 @@ public class ReserveProcessService extends CrudService<ReserveProcessMapper, Res
     }
 
     /**
+    * 通过id查询符合条件的项目名称
+    * */
+    public List<String> findByIds(String[] ids){
+        return mapper.findByIds(ids);
+    }
+
+    /**
+     * 查询出所有的项目名称
+     */
+    public List<String> findAllName() {
+        return mapper.findAllName();
+    }
+
+    /**
      * 修改项目设计单位信息
      */
     @Transactional(readOnly = false)
@@ -164,6 +213,8 @@ public class ReserveProcessService extends CrudService<ReserveProcessMapper, Res
         } else {
             //结束项目流程,修改项目开始流程状态,清空人员流转信息,清空
             //删除对应的流程数据
+            //删除对应甲供材信息
+            mapper.deleteMaterial(reserveProcess.getProjectName());
             mapper.deleteAct(reserveProcess.getProjectReserveId());
             personnelTurnoverService.deletePerson(reserveProcess.getProjectReserveId());
             vars.put("manager", UserUtils.getUser().getLoginName());
@@ -195,7 +246,7 @@ public class ReserveProcessService extends CrudService<ReserveProcessMapper, Res
             scheduleMapper.updateTimeNode(schedule);
         } else {
             vars.put("manager", UserUtils.getByUserName(user.getDesignUnit()).getLoginName());
-            schedule.setDesignUpload("");
+            schedule.setDesignUpload("-");
             schedule.setProjectReserveId(mapper.findByProcInsId(act.getProcInsId()));
             scheduleMapper.updateTimeNode(schedule);
         }
@@ -226,7 +277,8 @@ public class ReserveProcessService extends CrudService<ReserveProcessMapper, Res
             scheduleMapper.updateTimeNode(schedule);
         } else {
             vars.put("manager", UserUtils.getByUserName(user.getOperationUnit()).getLoginName());
-            schedule.setDrawingReview(format);
+            schedule.setDrawingReview("-");
+            schedule.setDesignUpload("-");
             schedule.setProjectReserveId(mapper.findByProcInsId(act.getProcInsId()));
             scheduleMapper.updateTimeNode(schedule);
         }
@@ -256,9 +308,30 @@ public class ReserveProcessService extends CrudService<ReserveProcessMapper, Res
             schedule.setJointDrawing(format);
             schedule.setProjectReserveId(mapper.findByProcInsId(act.getProcInsId()));
             scheduleMapper.updateTimeNode(schedule);
+            //审核通过修改项目状态,将物料信息导入年度物资上报统计
+            //根据流程定义号查询项目编码
+            ReserveManagement byProcInsId = reserveManagementMapper.findByProcInsId(act.getProcInsId());
+            String projectReserveId = byProcInsId.getProjectReserveId();
+            String projectName = byProcInsId.getProjectName();
+            //修改项目甲供材清册状态
+            personnelTurnoverMapper.updateMaterialStatus(projectReserveId, "2");
+            //获取所有的物料信息-导入年度物资上报统计
+            List<MaterialInfo> materialByName = mapper.findMaterialByName(projectName);
+            for (MaterialInfo m :
+                    materialByName) {
+                m.preInsert();
+            }
+            materialInfoMapper.insertList(materialByName);
+            MaterialProject materialProject = new MaterialProject();
+            materialProject.preInsert();
+            materialProject.setReserveCode(projectReserveId);
+            materialProject.setReserveProjectName(projectName);
+            projectMapper.insert(materialProject);
         } else {
             vars.put("manager", UserUtils.getByUserName(user.getDesignUnit()).getLoginName());
-            schedule.setDrawingReview("");
+            schedule.setDrawingReview("-");
+            schedule.setEstimate("-");
+            schedule.setDesignUpload("-");
             schedule.setProjectReserveId(mapper.findByProcInsId(act.getProcInsId()));
             scheduleMapper.updateTimeNode(schedule);
         }
@@ -318,12 +391,174 @@ public class ReserveProcessService extends CrudService<ReserveProcessMapper, Res
         String projectName = ((String) obj).trim();
         //删除对应项目名称的甲供材信息
         mapper.deleteMaterial(projectName);
-        ImportExcel pick = new ImportExcel(file,5,"领料清单");
-        List<MaterialInfo> materialInfos = MaterialInfoUtil.getData(pick,projectName);   //获取领料清单数据
+        ImportExcel pick = new ImportExcel(file,7,"领料清单");
+        List<MaterialInfo> materialInfos = MaterialInfoUtil.getCbData(pick,projectName);   //获取领料清单数据
         List<MaterialInfo> list = MaterialInfoUtil.combineData(materialInfos);      //合并数据
         //通过甲供材信息比对物料规范获得项目建设规模
 
         saveList(list);
+        //将领料清单保存后,获取所有物料规范详细信息,循环领料清单数据,将符合条件的
+        List<Standard> standardList = standardMapper.findALl();
+        //通过项目名称获取项目编号及名称
+        ReserveManagement byName = reserveManagementMapper.findByName(projectName);
+        //删除对应的项目规模数据
+        detailsMapper.deleteName(projectName);
+        ScaleDetails details = new ScaleDetails();
+        //开关柜
+        BigDecimal switchCabinet = BigDecimal.valueOf(0.0);
+        //架空线路
+        BigDecimal overheadLines = BigDecimal.valueOf(0.0);
+        //电力电缆
+        BigDecimal powerCable = BigDecimal.valueOf(0.0);
+        //10千伏电缆分接箱
+        BigDecimal cableBox =BigDecimal.valueOf(0.0);
+        //环网箱/室
+        BigDecimal ringCare =BigDecimal.valueOf(0.0);
+        //开关站
+        BigDecimal switchYard = BigDecimal.valueOf(0.0);
+        //柱上开关
+        BigDecimal postSwitch = BigDecimal.valueOf(0.0);
+        //配电室kva
+        StringBuilder distributionKva = new StringBuilder("");
+        //配电室
+        BigDecimal distribution = BigDecimal.valueOf(0.0);
+        //箱变kva
+        StringBuilder boxTransformerKva = new StringBuilder("");
+        //箱变
+        BigDecimal boxTransformer = BigDecimal.valueOf(0.0);
+        //配电变压器kva
+        StringBuilder disTransformerKva = new StringBuilder("");
+        //配电变压器
+        BigDecimal disTransformer = BigDecimal.valueOf(0.0);
+        //低压线路
+        BigDecimal lowVoltageLine = BigDecimal.valueOf(0.0);
+        //低压电缆
+        BigDecimal lowVoltageCable = BigDecimal.valueOf(0.0);
+        //低压电缆分接箱
+        BigDecimal lowDistributionBox = BigDecimal.valueOf(0.0);
+        //低压配电箱(柜)
+        BigDecimal lowBoxCabinet = BigDecimal.valueOf(0.0);
+        //配电自动化终端(DTU)
+        BigDecimal distributionTerminal = BigDecimal.valueOf(0.0);
+        //电缆通道
+        BigDecimal cableChannel = BigDecimal.valueOf(0.0);
+        List<ScaleDetails> scaleDetails = new ArrayList<>();
+        for (MaterialInfo m :
+                list) {
+            BigDecimal totalCount = BigDecimal.valueOf(m.getTotalCount());
+            for (Standard s :
+                    standardList) {
+                if (m.getMaterialCode().equals(s.getMaterialCode()) && m.getMaterialName().equals(s.getMaterialDescription())) {
+                    String projectCategory = s.getProjectCategory();
+
+                    if ("开关柜".equals(projectCategory)) {
+                        switchCabinet = switchCabinet.add(totalCount);
+                    }
+                    if ("架空线路".equals(projectCategory)) {
+                        overheadLines = overheadLines.add(totalCount);
+                    }
+                    if ("电力电缆".equals(projectCategory)) {
+                        powerCable = powerCable.add(totalCount);
+                    }
+                    if ("10千伏电缆分接箱".equals(projectCategory)) {
+                        cableBox = cableBox.add(totalCount);
+                    }
+                    if ("环网箱/室".equals(projectCategory)) {
+                        ringCare = ringCare.add(totalCount);
+                    }
+                    if ("开关站".equals(projectCategory)) {
+                        switchYard = switchYard.add(totalCount);
+                    }
+                    if ("柱上开关".equals(projectCategory)) {
+                        postSwitch = postSwitch.add(totalCount);
+                    }
+
+                    if ("配电室".equals(projectCategory)) {
+                        int i = m.getTotalCount().compareTo(0.0);
+                        if (i > 0) {
+                            String materialDescription = s.getMaterialDescription();
+                            String s1 = returnKva(materialDescription);
+                            distributionKva.append(s1);
+                        }
+                        distribution = distribution.add(totalCount);
+                    }
+
+                    if ("箱变".equals(projectCategory)) {
+                        int i = m.getTotalCount().compareTo(0.0);
+                        if (i > 0) {
+                        String materialDescription = s.getMaterialDescription();
+                        String s1 = returnKva(materialDescription);
+                        boxTransformerKva.append(s1);
+                        }
+                        boxTransformer = boxTransformer.add(totalCount);
+                    }
+
+                    if ("配电变压器".equals(projectCategory)) {
+                        int i = m.getTotalCount().compareTo(0.0);
+                        if (i > 0) {
+                        String materialDescription = s.getMaterialDescription();
+                        String s1 = returnKva(materialDescription);
+                        disTransformerKva.append(s1);
+                        }
+                        disTransformer = disTransformer.add(totalCount);
+                    }
+                    if ("低压线路".equals(projectCategory)) {
+                        lowVoltageLine = lowVoltageLine.add(totalCount);
+                    }
+                    if ("低压电缆".equals(projectCategory)) {
+                        lowVoltageCable = lowVoltageCable.add(totalCount);
+                    }
+                    if ("低压电缆分接箱".equals(projectCategory)) {
+                        lowDistributionBox = lowDistributionBox.add(totalCount);
+                    }
+                    if ("低压配电箱(柜)".equals(projectCategory)) {
+                        lowBoxCabinet = lowBoxCabinet.add(totalCount);
+                    }
+                    if ("配电自动化终端(DTU)".equals(projectCategory)) {
+                        distributionTerminal = distributionTerminal.add(totalCount);
+                    }
+                    if ("电缆通道".equals(projectCategory)) {
+                        cableChannel = cableChannel.add(totalCount);
+                    }
+                }
+            }
+        }
+        details.setProjectName(byName.getProjectName());
+        details.setProjectReserveId(byName.getProjectReserveId());
+        details.setSwitchCabinet(switchCabinet.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.setOverheadLines(overheadLines.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.setPowerCable(powerCable.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.setCableBox(cableBox.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.setRingCare(ringCare.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.setSwitchYard(switchYard.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.setPostSwitch(postSwitch.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.setDistributionKva(distributionKva.toString());
+        details.setDistribution(distribution.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.setBoxTransformerKva(boxTransformerKva.toString());
+        details.setBoxTransformer(boxTransformer.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.setDisTransformerKva(disTransformerKva.toString());
+        details.setDisTransformer(disTransformer.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.setLowVoltageLine(lowVoltageLine.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.setLowVoltageCable(lowVoltageCable.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.setLowDistributionBox(lowDistributionBox.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.setLowBoxCabinet(lowBoxCabinet.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.setDistributionTerminal(distributionTerminal.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.setCableChannel(cableChannel.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
+        details.preInsert();
+        detailsMapper.insert(details);
+        personnelTurnoverMapper.updateMaterialStatus(byName.getProjectReserveId(), "1");
+    }
+
+    private String returnKva(String materialDescription) {
+        if (null != materialDescription && !"".equals(materialDescription)) {
+            boolean kVA = materialDescription.contains("kVA");
+            if (kVA) {
+                int kVA1 = materialDescription.lastIndexOf("kVA");
+                String substring = materialDescription.substring(kVA1 - 3, kVA1+3);
+                return substring;
+            }
+        }
+        return "";
     }
 
     @Transactional(readOnly = false)
@@ -333,4 +568,159 @@ public class ReserveProcessService extends CrudService<ReserveProcessMapper, Res
         }
         mapper.insertList(list);
     }
+
+    /**
+     * 通过id查询符合条件的储备项目编码
+     */
+    public List<String> findIds(String[] ids) {
+        return mapper.findIds(ids);
+    }
+
+    /**
+     * 查询出所有的储备项目编码
+     */
+    public List<String> findAllId() {
+        return mapper.findAllId();
+    }
+
+
+    /**
+     * 通过项目名称导出储备项目的所有附件
+     *
+     * @param idList
+     */
+    public String exportFiles(List<String> idList) throws Exception {
+        //设置下载的压缩包名(固定字符+时间戳)
+        long timeMillis = System.currentTimeMillis();
+        String fileLocality = "项目附件_" + timeMillis;
+        //判定当前系统
+        String path = Global.getPath();
+        path = path + "/" + fileLocality;
+        //检查该路径对应的目录是否存在. 如果不存在则创建目录
+        File dir = new File(path);
+        if (!dir.exists()) {
+            dir.mkdirs();
+        }
+
+
+        //通过id查询出所有的项目信息
+        List<ReserveProcess> allList = mapper.findReserveById(idList);
+
+        //循环遍历,判断项目是否存在
+        for (ReserveProcess a :
+                allList) {
+            File dirFile = null;
+            File dirFile2 = null;
+            File dirFile3 = null;
+            File dirFile4 = null;
+            List<FilingImages> filingImagesList = null;
+            List<FilingImages> exportList = new ArrayList<>();
+            List<FilingImages> exportList2 = new ArrayList<>();
+            List<FilingImages> exportList3 = new ArrayList<>();
+            List<FilingImages> exportList4 = new ArrayList<>();
+            String downloadPath = path + "/" + a.getProjectReserveId();
+            String budgetStatement = a.getBudgetStatement();
+            if (null!=budgetStatement && !"".equals(budgetStatement)) {
+                dirFile = new File(downloadPath + "/预算书");
+                if (budgetStatement.contains("|")) {
+                    String[] split = budgetStatement.split("\\|");
+                    for (int i = 0; i < split.length; i++) {
+                        FilingImages filingImages = new FilingImages();
+                        filingImages.setImgPath(split[i]);
+                        exportList.add(filingImages);
+                    }
+                } else {
+                    FilingImages filingImages = new FilingImages();
+                    filingImages.setImgPath(budgetStatement);
+                    exportList.add(filingImages);
+                }
+            }
+            String projectProposal = a.getProjectProposal();
+            if (null!=projectProposal && !"".equals(projectProposal)) {
+                dirFile2 = new File(downloadPath + "/项目建议书");
+                if (projectProposal.contains("|")) {
+                    String[] split = projectProposal.split("\\|");
+                    for (int i = 0; i < split.length; i++) {
+                        FilingImages filingImages = new FilingImages();
+                        filingImages.setImgPath(split[i]);
+                        exportList2.add(filingImages);
+                    }
+                } else {
+                    FilingImages filingImages = new FilingImages();
+                    filingImages.setImgPath(projectProposal);
+                    exportList2.add(filingImages);
+                }
+            }
+            String drawings = a.getDrawings();
+            if (null!=drawings && !"".equals(drawings)) {
+                dirFile3 = new File(downloadPath + "/图纸");
+                if (drawings.contains("|")) {
+                    String[] split = drawings.split("\\|");
+                    for (int i = 0; i < split.length; i++) {
+                        FilingImages filingImages = new FilingImages();
+                        filingImages.setImgPath(split[i]);
+                        exportList3.add(filingImages);
+                    }
+                } else {
+                    FilingImages filingImages = new FilingImages();
+                    filingImages.setImgPath(drawings);
+                    exportList3.add(filingImages);
+                }
+            }
+            String drawingSpecification = a.getDrawingSpecification();
+            if (null!=drawingSpecification && !"".equals(drawingSpecification)) {
+                dirFile4 = new File(downloadPath + "/施工图设计说明书");
+                if (drawingSpecification.contains("|")) {
+                    String[] split = drawingSpecification.split("\\|");
+                    for (int i = 0; i < split.length; i++) {
+                        FilingImages filingImages = new FilingImages();
+                        filingImages.setImgPath(split[i]);
+                            exportList4.add(filingImages);
+                    }
+                } else {
+                    FilingImages filingImages = new FilingImages();
+                    filingImages.setImgPath(drawingSpecification);
+                    exportList4.add(filingImages);
+                }
+            }
+            if (exportList.size() > 0) {
+                this.disposeFileList(exportList, dirFile.getPath());
+            }
+            if (exportList2.size() > 0) {
+                this.disposeFileList(exportList2, dirFile2.getPath());
+            }
+            if (exportList3.size() > 0) {
+                this.disposeFileList(exportList3, dirFile3.getPath());
+            }
+            if (exportList4.size() > 0) {
+                this.disposeFileList(exportList4, dirFile4.getPath());
+            }
+        }
+        //处理完之后进行打包压缩并删除之前的文件
+        ZipCompressUtil zipUtil = new ZipCompressUtil();
+        File resultFile = new File(path);
+        File file = zipUtil.zipCompress(resultFile, true);
+        return file.getPath();
+    }
+
+    /**
+     * 处理文件信息
+     *
+     * @param downloadPath
+     */
+    public void disposeFileList(List<FilingImages> filingImages, String downloadPath) throws IOException {
+        ZipCompressUtil zipCompressUtil = new ZipCompressUtil();
+        String FILE_PREFIX = loader.getProperty("linux.file.store.prefix");
+        if (SYS_TYPE.equals("1")) {
+            for (FilingImages info : filingImages) {
+                zipCompressUtil.downloadRuralProject(info.getImgPath().substring(0, info.getImgPath().lastIndexOf("/")), info.getImgPath().substring(info.getImgPath().lastIndexOf("/") + 1, info.getImgPath().length()), downloadPath);
+            }
+        } else {
+            for (FilingImages info : filingImages) {
+                zipCompressUtil.downloadRuralProject(FILE_PREFIX+info.getImgPath().substring(0, info.getImgPath().lastIndexOf("/")), info.getImgPath().substring(info.getImgPath().lastIndexOf("/") + 1, info.getImgPath().length()), downloadPath);
+            }
+        }
+
+    }
+
 }

+ 14 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/service/ScaleDetailsService.java

@@ -40,6 +40,12 @@ public class ScaleDetailsService extends CrudService<ScaleDetailsMapper, ScaleDe
         return super.findPage(page, entity);
     }
 
+    public Page<ScaleDetails> findExaminePage(Page<ScaleDetails> page, ScaleDetails entity) {
+        dataRuleFilter(entity);
+        entity.setPage(page);
+        page.setList(mapper.findExamineList(entity));
+        return page;
+    }
 
 
     @Override
@@ -70,5 +76,13 @@ public class ScaleDetailsService extends CrudService<ScaleDetailsMapper, ScaleDe
         super.deleteAll(entitys);
     }
 
+    public List<ScaleDetails> exportList(String[] ids) {
+        return mapper.exportList(ids);
+    }
+
+
+    public List<ScaleDetails> exportAfterList(String[] ids) {
+        return mapper.exportAfterList(ids);
+    }
 
 }

+ 6 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/service/StandardService.java

@@ -128,4 +128,10 @@ public class StandardService extends CrudService<StandardMapper, Standard> {
         }
         mapper.insertChildList(list);
     }
+
+    public List<Standard> findALl() {
+        return mapper.findALl();
+    }
+
+
 }

+ 11 - 11
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/web/PersonnelTurnoverController.java

@@ -37,7 +37,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * 人员流转 Controller
+ * 项目规模 Controller
  */
 @Controller
 @RequestMapping(value = "${adminPath}/sg/managementCenter/personnelTurnover")
@@ -72,7 +72,7 @@ public class PersonnelTurnoverController extends BaseController {
     }
 
     /**
-     * 人员流转信息列表页面
+     * 项目规模信息列表页面
      * @param personnelTurnover
      * @param model
      * @return
@@ -85,7 +85,7 @@ public class PersonnelTurnoverController extends BaseController {
     }
 
     /**
-     * 人员流转信息数据列表
+     * 项目规模信息数据列表
      * @param personnelTurnover
      * @param request
      * @param response
@@ -136,7 +136,7 @@ public class PersonnelTurnoverController extends BaseController {
         //通过储备项目编号
         service.save(personnelTurnover);//保存
         j.setSuccess(true);
-        j.setMsg("保存人员流转信息成功");
+        j.setMsg("保存项目规模信息成功");
         return j;
     }
 
@@ -153,7 +153,7 @@ public class PersonnelTurnoverController extends BaseController {
         for(String id : idArray){
             service.delete(service.get(id));
         }
-        j.setMsg("删除人员流转信息成功");
+        j.setMsg("删除项目规模信息成功");
         return j;
     }
 
@@ -219,7 +219,7 @@ public class PersonnelTurnoverController extends BaseController {
             j.setMsg("已成功导入" + stringBuffer);
         } catch (Exception e) {
             j.setSuccess(false);
-            j.setMsg("导入人员流转信息失败!失败信息:" + e.getMessage());
+            j.setMsg("导入项目规模信息失败!失败信息:" + e.getMessage());
         }
         return j;
     }
@@ -231,15 +231,15 @@ public class PersonnelTurnoverController extends BaseController {
     public AjaxJson exportFile(PersonnelTurnover personnelTurnover, HttpServletRequest request, HttpServletResponse response) {
         AjaxJson j = new AjaxJson();
         try {
-            String fileName = "人员流转信息"+ DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
+            String fileName = "项目规模信息"+ DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
             Page<PersonnelTurnover> page = service.findPage(new Page<PersonnelTurnover>(request, response, -1), personnelTurnover);
-            new ExportExcel("人员流转信息", PersonnelTurnover.class).setDataList(page.getList()).write(response, fileName).dispose();
+            new ExportExcel("项目规模信息", PersonnelTurnover.class).setDataList(page.getList()).write(response, fileName).dispose();
             j.setSuccess(true);
             j.setMsg("导出成功!");
             return j;
         } catch (Exception e) {
             j.setSuccess(false);
-            j.setMsg("导出人员流转信息记录失败!失败信息:"+e.getMessage());
+            j.setMsg("导出项目规模信息记录失败!失败信息:"+e.getMessage());
         }
         return j;
     }
@@ -254,9 +254,9 @@ public class PersonnelTurnoverController extends BaseController {
     public AjaxJson importTemplate(HttpServletResponse response) {
         AjaxJson j = new AjaxJson();
         try {
-            String fileName = "人员流转信息导入模板.xlsx";
+            String fileName = "项目规模信息导入模板.xlsx";
             List<BasicInformation> list = Lists.newArrayList();
-            new ExportExcel("人员流转信息表", PersonnelTurnover.class, 1).setDataList(list).write(response, fileName).dispose();
+            new ExportExcel("项目规模信息表", PersonnelTurnover.class, 1).setDataList(list).write(response, fileName).dispose();
             return null;
         } catch (Exception e) {
             j.setSuccess(false);

+ 76 - 4
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/web/ReserveProcessController.java

@@ -11,7 +11,9 @@ import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.web.BaseController;
 import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.filing.basicInformation.entity.BasicInformation;
+import com.jeeplus.modules.sg.audit.material.entity.Material;
 import com.jeeplus.modules.sg.managementcenter.activiti.entity.UploadImages;
+import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo;
 import com.jeeplus.modules.sg.managementcenter.materialproject.entity.MaterialProject;
 import com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ReserveProcess;
 import com.jeeplus.modules.sg.managementcenter.reserveManagement.service.ReserveProcessService;
@@ -26,12 +28,15 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.UnsupportedEncodingException;
+import java.io.*;
 import java.net.URLDecoder;
+import java.net.URLEncoder;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -317,10 +322,16 @@ public class ReserveProcessController extends BaseController {
         AjaxJson j = new AjaxJson();
         try {
             String idArray[] =ids.split(",");
+            List<String> exportList = new ArrayList<>();
             String fileName = "甲供材清册"+ DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
-
-            Page<ReserveProcess> page = reserveProcessService.findPage(new Page<ReserveProcess>(request, response, -1), reserveProcess);
-            new ExportExcel("甲供材清册", ReserveProcess.class).setDataList(page.getList()).write(response, fileName).dispose();
+            //通过id查找到需要导出数据的甲供材清册项目名称
+            if (!"".equals(idArray) && idArray.length > 0) {
+                exportList = reserveProcessService.findByIds(idArray);
+            } else {
+                exportList = reserveProcessService.findAllName();
+            }
+            List<MaterialInfo> list = reserveProcessService.findMaterialExport(exportList);
+            new ExportExcel("甲供材清册", MaterialInfo.class).setDataList(list).write(response, fileName).dispose();
             j.setSuccess(true);
             j.setMsg("导出成功!");
             return j;
@@ -468,4 +479,65 @@ public class ReserveProcessController extends BaseController {
         return j;
     }
 
+    /**
+     * 储备项目附件打包下载
+     */
+    @RequestMapping(value = "exportFiles")
+    public String exportFiles(String ids,HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
+        List<String> idList = new ArrayList<>();
+        String idArray[] =ids.split(",");
+        if (!"".equals(ids) && idArray.length > 0) {
+            idList = reserveProcessService.findIds(idArray);
+        } else {
+            idList = reserveProcessService.findAllId();
+        }
+        try {
+            String filePath = reserveProcessService.exportFiles(idList);
+            downloadZipFile(filePath,response);
+            return null;
+        } catch (Exception e) {
+            addMessage(redirectAttributes, "批量下载项目文件失败!");
+        }
+        return "redirect:"+Global.getAdminPath()+"/sg/reserveProcess/allUpload";
+    }
+
+
+    /**
+     * 下载压缩文件
+     *
+     * @param filePath
+     * @param response
+     */
+    public void downloadZipFile(String filePath, HttpServletResponse response) {
+        File file = new File(filePath);
+        //取得文件名。
+        String fileName = file.getName();
+        InputStream in = null;
+        try {
+            fileName = URLEncoder.encode(fileName, "UTF8");
+            in = new FileInputStream(file);
+            response.reset();//重置 响应头
+            response.setCharacterEncoding("UTF-8");
+            response.setContentType("application/x-download");
+            response.setHeader("Content-disposition", "attachment; filename=" + fileName);
+
+            byte[] b = new byte[1024];
+            int len;
+            while ((len = in.read(b)) > 0) {
+                response.getOutputStream().write(b, 0, len);
+            }
+            in.close();
+            response.getOutputStream().close();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        } finally {
+            //路径是个文件且不为空时删除文件
+            if (file.isFile() && file.exists()) {
+                file.delete();
+            }
+        }
+    }
+
+
+
 }

+ 48 - 5
src/main/java/com/jeeplus/modules/sg/managementcenter/reserveManagement/web/ScaleDetailsController.java

@@ -58,11 +58,18 @@ public class ScaleDetailsController extends BaseController {
      */
     @RequiresPermissions("sg:reserve:scaleDetails:list")
     @RequestMapping(value = "list")
-    public String skipList(ScaleDetails scaleDetails, Model model) {
+    public String list(ScaleDetails scaleDetails, Model model) {
         model.addAttribute("scaleDetails", scaleDetails);
         return "modules/sg/managementcenter/reserveManagement/scaleDetailsList";
     }
 
+    @RequiresPermissions("sg:reserve:scaleDetails:list")
+    @RequestMapping(value = "afterList")
+    public String afterList(ScaleDetails scaleDetails, Model model) {
+        model.addAttribute("scaleDetails", scaleDetails);
+        return "modules/sg/managementcenter/reserveManagement/afterList";
+    }
+
     /**
      * 建设规模信息数据列表
      * @param scaleDetails
@@ -78,6 +85,14 @@ public class ScaleDetailsController extends BaseController {
         Page<ScaleDetails> page = scaleDetailsService.findPage(new Page<ScaleDetails>(request, response), scaleDetails);
         return getBootstrapData(page);
     }
+
+    @ResponseBody
+    @RequiresPermissions("sg:reserve:scaleDetails:list")
+    @RequestMapping(value = "afterData")
+    public Map<String, Object> afterData(ScaleDetails scaleDetails, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<ScaleDetails> page = scaleDetailsService.findExaminePage(new Page<ScaleDetails>(request, response), scaleDetails);
+        return getBootstrapData(page);
+    }
      
 
     /**
@@ -167,12 +182,16 @@ public class ScaleDetailsController extends BaseController {
     @ResponseBody
     @RequiresPermissions("sg:reserve:scaleDetails:export")
     @RequestMapping(value = "export")
-    public AjaxJson exportFile(ScaleDetails scaleDetails, HttpServletRequest request, HttpServletResponse response) {
+    public AjaxJson export(String ids,ScaleDetails scaleDetails, HttpServletRequest request, HttpServletResponse response) {
         AjaxJson j = new AjaxJson();
         try {
+            String idArray[] = null;
+            if (null!=ids && !"".equals(ids)) {
+                idArray = ids.split(",");
+            }
             String fileName = "建设规模信息"+ DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
-            Page<ScaleDetails> page = scaleDetailsService.findPage(new Page<ScaleDetails>(request, response, -1), scaleDetails);
-            new ExportExcel("建设规模信息", ScaleDetails.class).setDataList(page.getList()).write(response, fileName).dispose();
+            List<ScaleDetails> list = scaleDetailsService.exportList(idArray);
+            new ExportExcel("建设规模信息", ScaleDetails.class).setDataList(list).write(response, fileName).dispose();
             j.setSuccess(true);
             j.setMsg("导出成功!");
             return j;
@@ -183,7 +202,31 @@ public class ScaleDetailsController extends BaseController {
         return j;
     }
 
-   
+    //导出excel
+    @ResponseBody
+    @RequiresPermissions("sg:reserve:scaleDetails:export")
+    @RequestMapping(value = "exportAfterList")
+    public AjaxJson exportAfterList(String ids,ScaleDetails scaleDetails, HttpServletRequest request, HttpServletResponse response) {
+        AjaxJson j = new AjaxJson();
+        try {
+            String idArray[] = null;
+            if (null!=ids && !"".equals(ids)) {
+                idArray = ids.split(",");
+            }
+            String fileName = "建设规模信息"+ DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
+            List<ScaleDetails> list = scaleDetailsService.exportAfterList(idArray);
+            new ExportExcel("建设规模信息", ScaleDetails.class).setDataList(list).write(response, fileName).dispose();
+            j.setSuccess(true);
+            j.setMsg("导出成功!");
+            return j;
+        } catch (Exception e) {
+            j.setSuccess(false);
+            j.setMsg("导出建设规模信息记录失败!失败信息:"+e.getMessage());
+        }
+        return j;
+    }
+
+
     /**
      * 下载导入模板
      */

+ 0 - 12
src/main/webapp/webpage/modules/sg/managementcenter/materialinfo/importProcess.jsp

@@ -141,18 +141,6 @@
                 throw SyntaxError;
             }
         }
-        // if(file.length === 0){
-        //     layer.msg("请选择文件",{icon: 3,offset:['40%','40%']});
-        //     return false;
-        // }
-        if(itemBatch == null || itemBatch === ''){
-            layer.msg("请输入项目批次",{icon: 3,offset:['40%','40%']});
-            return false;
-        }
-        // if(suppliesBatch == null || suppliesBatch === ''){
-        //     layer.msg("请选择物料批次",{icon: 3,offset:['40%','40%']});
-        //     return false;
-        // }
         var td_id=document.getElementsByClassName("td_id");
         //存放id的数组
         var array_id = [];

+ 220 - 0
src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/afterList.js

@@ -0,0 +1,220 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	$('#testPicTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               //显示检索按钮
+	           showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               //显示切换手机试图按钮
+               showToggle: false,
+               //显示 内容列下拉框
+    	       showColumns: false,
+    	       //显示到处按钮
+    	       showExport: false,
+    	       //显示切换分页按钮
+    	       showPaginationSwitch: false,
+    	       //最低显示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}/sg/managementCenter/scaleDetails/afterData",
+               //默认值为 '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){
+               },
+               onClickRow: function(row, $el){
+               },
+               	onShowSearch: function () {
+					$("#search-collapse").slideToggle();
+				},
+               columns: [
+				   {
+					   checkbox: true
+				   },
+               	{
+					   field: 'projectReserveId',
+					   title: '储备项目编号',
+				   },{
+					   field: 'projectName',
+					   title: '项目名称',
+				   },
+				   {
+					   field: 'switchCabinet',
+					   title: '开关柜',
+				   }, {
+					   field: 'overheadLines',
+					   title: '架空线路'
+				   }, {
+					   field: 'powerCable',
+					   title: '电力电缆',
+				   }, {
+					   field: 'cableBox',
+					   title: '10千伏电缆分接箱',
+				   }, {
+					   field: 'ringCare',
+					   title: '环网箱/室',
+				   }, {
+					   field: 'switchYard',
+					   title: '开关站',
+				   }, {
+					   field: 'postSwitch',
+					   title: '柱上开关',
+				   }, {
+					   field: 'distributionKva',
+					   title: '配电室kva',
+				   }, {
+					   field: 'distribution',
+					   title: '配电室',
+				   }, {
+					   field: 'boxTransformerKva',
+					   title: '箱变kva',
+				   }, {
+					   field: 'boxTransformer',
+					   title: '箱变',
+				   }, {
+					   field: 'disTransformerKva',
+					   title: '配电变压器kva',
+				   }, {
+					   field: 'disTransformer',
+					   title: '配电变压器',
+				   }, {
+					   field: 'lowVoltageLine',
+					   title: '低压线路',
+				   }, {
+					   field: 'lowVoltageCable',
+					   title: '低压电缆',
+				   }, {
+					   field: 'lowDistributionBox',
+					   title: '低压电缆分接箱',
+				   }, {
+					   field: 'lowBoxCabinet',
+					   title: '低压配电箱(柜)',
+				   }, {
+					   field: 'distributionTerminal',
+					   title: '配电自动化终端(DTU)',
+				   }, {
+					   field: 'cableChannel',
+					   title: '电缆通道',
+				   }
+			   ]
+		});
+
+
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+
+
+		  $('#testPicTable').bootstrapTable("toggleView");
+		}
+
+	  $('#testPicTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#testPicTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#testPicTable').bootstrapTable('getSelections').length!=1);
+        });
+
+	 $("#export").click(function(){//导出甲供材清册
+		 jp.downloadFile('${ctx}/sg/managementCenter/scaleDetails/export?ids=' + getIdSelections());
+	  });
+
+	$("#exportFiles").click(function(){//项目导出打包文件
+		jp.downloadFile('${ctx}/sg/reserveProcess/exportFiles?ids=' + getIdSelections());
+	});
+
+
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#testPicTable').bootstrapTable('refresh');
+	});
+
+
+
+
+	});
+
+  function getIdSelections() {
+        return $.map($("#testPicTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+
+  function deleteAll(){
+		jp.confirm('确认要删除该图片管理记录吗?', function(){
+			jp.loading();
+			jp.get("${ctx}/managementcenter/upload/delete?ids=" + getIdSelections(), function(data){
+         	  		if(data.success){
+         	  			$('#testPicTable').bootstrapTable('refresh');
+         	  			jp.success(data.msg);
+         	  		}else{
+         	  			jp.error(data.msg);
+         	  		}
+         	  	})
+
+		})
+  }
+
+    //刷新列表
+  function refresh(){
+  	$('#testPicTable').bootstrapTable('refresh');
+  }
+
+   function add(){
+	  jp.openSaveDialog('新增图片管理', "${ctx}/managementcenter/upload/list",'800px', '500px');
+  }
+
+
+
+   function edit(id){//没有权限时,不显示确定按钮
+       if(id == undefined){
+	      id = getIdSelections();
+	}
+	jp.openSaveDialog('编辑图片管理', "${ctx}/managementcenter/upload/imagesForm?id=" + id, '800px', '500px');
+  }
+
+ function view(id){//没有权限时,不显示确定按钮
+      if(id == undefined){
+             id = getIdSelections();
+      }
+        jp.openViewDialog('查看图片管理', "${ctx}/managementcenter/upload/imagesForm?id=" + id, '800px', '500px');
+ }
+
+
+
+</script>

+ 61 - 0
src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/afterList.jsp

@@ -0,0 +1,61 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+
+<html>
+<head>
+	<title>项目建设规模明细</title>
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@ include file="/webpage/include/treeview.jsp" %>
+	<%@ include file="afterList.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>
+				<ul class="nav nav-tabs">
+					<li role="presentation" ><a href="${ctx}/sg/managementCenter/scaleDetails/list">实时状态</a></li>
+					<li role="presentation" class="active"><a href="">审核后状态</a></li>
+				</ul>
+			</div>
+			<!-- 搜索 -->
+			<div id="search-collapse" class="collapse">
+				<div class="accordion-inner">
+					<form:form id="searchForm" modelAttribute="scaleDetails"
+							   class="form form-horizontal well clearfix">
+						<div class="col-xs-12 col-sm-6 col-md-4">
+							<label class="label-item single-overflow pull-left" title="储备项目编号:">储备项目编号:</label>
+							<form:input path="projectReserveId" htmlEscape="false" maxlength="64" class=" form-control"/>
+						</div>
+						<div class="col-xs-12 col-sm-6 col-md-4">
+							<div style="margin-top:26px">
+								<a id="search" class="btn btn-primary btn-rounded  btn-bordered btn-sm"><i
+										class="fa fa-search"></i> 查询</a>
+								<a id="reset" class="btn btn-primary btn-rounded  btn-bordered btn-sm"><i
+										class="fa fa-refresh"></i> 重置</a>
+							</div>
+						</div>
+					</form:form>
+				</div>
+			</div>
+
+			<!-- 工具栏 -->
+			<div id="toolbar">
+				<button id="export" class="btn btn-warning">
+					<shiro:hasPermission name="sg:reserve:reserveProcess:export">
+					<i class="fa fa-file-excel-o"></i> 导出
+					</shiro:hasPermission>
+				</button>
+			</div>
+
+			<!-- 表格 -->
+			<table id="testPicTable" style="table-layout:fixed" data-toolbar="#toolbar"></table>
+		</div>
+	</div>
+</div>
+</body>
+</html>

+ 2 - 2
src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/allUploadList.js

@@ -41,7 +41,7 @@ $(document).ready(function() {
                //queryParamsType:'',
                ////查询参数,每次调用是会带上这个参数,可自定义
                queryParams : function(params) {
-			   	var searchParam = $("#inputForm").serializeJSON();
+			   	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;
@@ -151,7 +151,7 @@ $(document).ready(function() {
 	  $('#testPicTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
                 'check-all.bs.table uncheck-all.bs.table', function () {
             $('#remove').prop('disabled', ! $('#testPicTable').bootstrapTable('getSelections').length);
-            $('#view,#edit').prop('disabled', $('#testPicTable').bootstrapTable('getSelections').length!=1);
+            $('#view,#edit,#export').prop('disabled', $('#testPicTable').bootstrapTable('getSelections').length!=1);
         });
 
 	 $("#export").click(function(){//导出甲供材清册

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

@@ -41,10 +41,14 @@
 			<!-- 工具栏 -->
 			<div id="toolbar">
 				<button id="export" class="btn btn-warning">
+					<shiro:hasPermission name="sg:reserve:reserveProcess:export">
 					<i class="fa fa-file-excel-o"></i> 导出甲供材清册
+					</shiro:hasPermission>
 				</button>
 				<button id="exportFiles" class="btn btn-warning">
+					<shiro:hasPermission name="sg:reserve:reserveProcess:export">
 					<i class="fa fa-file-excel-o"></i> 项目导出打包文件
+					</shiro:hasPermission>
 				</button>
 			</div>
 

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

@@ -18,6 +18,7 @@
 					var drawings = $("input[name='drawings']").val();
 					var drawingSpecification = $("input[name='drawingSpecification']").val();
 					var projectReserveId = $("#projectReserveId").val();
+					var projectName = $("#projectName").val();
 					if (budgetStatement == "" || projectProposal == "" || drawings == "" || drawingSpecification == "") {
 						jp.error("不能为空");
 					} else {
@@ -30,6 +31,7 @@
 									"procDefId": "${reserveProcess.act.procDefId}",
 									"flag": "yes",
 									"projectReserveId":projectReserveId,
+									"projectName":projectName,
 									"budgetStatement":budgetStatement,
 									"projectProposal":projectProposal,
 									"drawings":drawings,
@@ -85,11 +87,10 @@
 						iframeWin.contentWindow.importExcel('${ctx}/sg/reserveProcess/importValidations', function (data) {
 							if(data.success){
 								jp.success(data.msg);
-								refresh();
+								jp.close(index);
 							}else{
 								jp.error(data.msg);
 							}
-							jp.close(index);
 						});//调用保存事件
 						return false;
 					},

+ 220 - 0
src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/scaleDetailsList.js

@@ -0,0 +1,220 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	$('#testPicTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               //显示检索按钮
+	           showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               //显示切换手机试图按钮
+               showToggle: false,
+               //显示 内容列下拉框
+    	       showColumns: false,
+    	       //显示到处按钮
+    	       showExport: false,
+    	       //显示切换分页按钮
+    	       showPaginationSwitch: false,
+    	       //最低显示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}/sg/managementCenter/scaleDetails/data",
+               //默认值为 '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){
+               },
+               onClickRow: function(row, $el){
+               },
+               	onShowSearch: function () {
+					$("#search-collapse").slideToggle();
+				},
+               columns: [
+				   {
+					   checkbox: true
+				   },
+               	{
+					   field: 'projectReserveId',
+					   title: '储备项目编号',
+				   },{
+					   field: 'projectName',
+					   title: '项目名称',
+				   },
+				   {
+					   field: 'switchCabinet',
+					   title: '开关柜',
+				   }, {
+					   field: 'overheadLines',
+					   title: '架空线路'
+				   }, {
+					   field: 'powerCable',
+					   title: '电力电缆',
+				   }, {
+					   field: 'cableBox',
+					   title: '10千伏电缆分接箱',
+				   }, {
+					   field: 'ringCare',
+					   title: '环网箱/室',
+				   }, {
+					   field: 'switchYard',
+					   title: '开关站',
+				   }, {
+					   field: 'postSwitch',
+					   title: '柱上开关',
+				   }, {
+					   field: 'distributionKva',
+					   title: '配电室kva',
+				   }, {
+					   field: 'distribution',
+					   title: '配电室',
+				   }, {
+					   field: 'boxTransformerKva',
+					   title: '箱变kva',
+				   }, {
+					   field: 'boxTransformer',
+					   title: '箱变',
+				   }, {
+					   field: 'disTransformerKva',
+					   title: '配电变压器kva',
+				   }, {
+					   field: 'disTransformer',
+					   title: '配电变压器',
+				   }, {
+					   field: 'lowVoltageLine',
+					   title: '低压线路',
+				   }, {
+					   field: 'lowVoltageCable',
+					   title: '低压电缆',
+				   }, {
+					   field: 'lowDistributionBox',
+					   title: '低压电缆分接箱',
+				   }, {
+					   field: 'lowBoxCabinet',
+					   title: '低压配电箱(柜)',
+				   }, {
+					   field: 'distributionTerminal',
+					   title: '配电自动化终端(DTU)',
+				   }, {
+					   field: 'cableChannel',
+					   title: '电缆通道',
+				   }
+			   ]
+		});
+
+
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+
+
+		  $('#testPicTable').bootstrapTable("toggleView");
+		}
+
+	  $('#testPicTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#testPicTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#testPicTable').bootstrapTable('getSelections').length!=1);
+        });
+
+	 $("#export").click(function(){//导出甲供材清册
+		 jp.downloadFile('${ctx}/sg/managementCenter/scaleDetails/export?ids=' + getIdSelections());
+	  });
+
+	$("#exportFiles").click(function(){//项目导出打包文件
+		jp.downloadFile('${ctx}/sg/reserveProcess/exportFiles?ids=' + getIdSelections());
+	});
+
+
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#testPicTable').bootstrapTable('refresh');
+		});
+
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#testPicTable').bootstrapTable('refresh');
+	});
+
+
+
+
+	});
+
+  function getIdSelections() {
+        return $.map($("#testPicTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+
+  function deleteAll(){
+		jp.confirm('确认要删除该图片管理记录吗?', function(){
+			jp.loading();
+			jp.get("${ctx}/managementcenter/upload/delete?ids=" + getIdSelections(), function(data){
+         	  		if(data.success){
+         	  			$('#testPicTable').bootstrapTable('refresh');
+         	  			jp.success(data.msg);
+         	  		}else{
+         	  			jp.error(data.msg);
+         	  		}
+         	  	})
+
+		})
+  }
+
+    //刷新列表
+  function refresh(){
+  	$('#testPicTable').bootstrapTable('refresh');
+  }
+
+   function add(){
+	  jp.openSaveDialog('新增图片管理', "${ctx}/managementcenter/upload/list",'800px', '500px');
+  }
+
+
+
+   function edit(id){//没有权限时,不显示确定按钮
+       if(id == undefined){
+	      id = getIdSelections();
+	}
+	jp.openSaveDialog('编辑图片管理', "${ctx}/managementcenter/upload/imagesForm?id=" + id, '800px', '500px');
+  }
+
+ function view(id){//没有权限时,不显示确定按钮
+      if(id == undefined){
+             id = getIdSelections();
+      }
+        jp.openViewDialog('查看图片管理', "${ctx}/managementcenter/upload/imagesForm?id=" + id, '800px', '500px');
+ }
+
+
+
+</script>

+ 61 - 0
src/main/webapp/webpage/modules/sg/managementcenter/reserveManagement/scaleDetailsList.jsp

@@ -0,0 +1,61 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+
+<html>
+<head>
+	<title>项目建设规模明细</title>
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@ include file="/webpage/include/treeview.jsp" %>
+	<%@ include file="scaleDetailsList.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>
+				<ul class="nav nav-tabs">
+					<li role="presentation" class="active"><a href="">实时状态</a></li>
+					<li role="presentation"><a href="${ctx}/sg/managementCenter/scaleDetails/afterList">审核后状态</a></li>
+				</ul>
+			</div>
+			<!-- 搜索 -->
+			<div id="search-collapse" class="collapse">
+				<div class="accordion-inner">
+					<form:form id="searchForm" modelAttribute="scaleDetails"
+							   class="form form-horizontal well clearfix">
+						<div class="col-xs-12 col-sm-6 col-md-4">
+							<label class="label-item single-overflow pull-left" title="储备项目编号:">储备项目编号:</label>
+							<form:input path="projectReserveId" htmlEscape="false" maxlength="64" class=" form-control"/>
+						</div>
+						<div class="col-xs-12 col-sm-6 col-md-4">
+							<div style="margin-top:26px">
+								<a id="search" class="btn btn-primary btn-rounded  btn-bordered btn-sm"><i
+										class="fa fa-search"></i> 查询</a>
+								<a id="reset" class="btn btn-primary btn-rounded  btn-bordered btn-sm"><i
+										class="fa fa-refresh"></i> 重置</a>
+							</div>
+						</div>
+					</form:form>
+				</div>
+			</div>
+
+			<!-- 工具栏 -->
+			<div id="toolbar">
+				<button id="export" class="btn btn-warning">
+					<shiro:hasPermission name="sg:reserve:reserveProcess:export">
+					<i class="fa fa-file-excel-o"></i> 导出
+					</shiro:hasPermission>
+				</button>
+			</div>
+
+			<!-- 表格 -->
+			<table id="testPicTable" style="table-layout:fixed" data-toolbar="#toolbar"></table>
+		</div>
+	</div>
+</div>
+</body>
+</html>