فهرست منبع

储备流程调整

wangqiang 1 سال پیش
والد
کامیت
745244bac7
35فایلهای تغییر یافته به همراه1848 افزوده شده و 258 حذف شده
  1. 1 1
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/distribution/web/DistributionController.java
  2. 9 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/policyProcess/entity/PoliceProcessRecord.java
  3. 6 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/policyProcess/mapper/PoliceProcessRecordMapper.java
  4. 10 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/policyProcess/mapper/xml/PoliceProcessRecordMapper.xml
  5. 14 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/policyProcess/service/PoliceProcessRecordService.java
  6. 18 31
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/policyProcess/web/PoliceProcessBaseController.java
  7. 60 2
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/policyProcess/web/PoliceProcessRecordController.java
  8. 42 1
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/entity/DocumentInfo.java
  9. 40 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/entity/ReserveSummaryProcess.java
  10. 20 5
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/xml/DocumentInfoMapper.xml
  11. 6 1
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/xml/FeedBackBudgetMapper.xml
  12. 9 2
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/xml/ReserveSummaryProcessMapper.xml
  13. 3 3
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/service/ReserveSummaryProcessService.java
  14. 66 1
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/web/ProcessController.java
  15. 8 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/PlotProgressStatsMapper.java
  16. 66 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/xml/PlotProgressStatsMapper.xml
  17. 14 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/service/PlotProgressStatsService.java
  18. 68 0
      src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/web/PlotProgressStatsController.java
  19. 2 2
      src/main/java/com/jeeplus/modules/sys/web/TagController.java
  20. 1 1
      src/main/webapp/WEB-INF/tags/sys/fileUpload.tag
  21. 1 1
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/distribution/process/designUnitAgain.jsp
  22. 1 1
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/distribution/process/designUnitFile.jsp
  23. 1 1
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/distribution/process/skillUnit.jsp
  24. 158 60
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/policyProcess/policyProcessRecord/reserveManagementForm.jsp
  25. 42 11
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/policyProcess/policyProcessRecord/reserveManagementInformation.js
  26. 10 0
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/policyProcess/policyProcessRecord/reserveManagementInformation.jsp
  27. 336 0
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/budgetReview.js
  28. 155 53
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/budgetReview.jsp
  29. 154 29
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/designUnit.jsp
  30. 207 3
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/drawingReview.js
  31. 83 29
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/drawingReview.jsp
  32. 3 3
      src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/test/drawingReviewTest.jsp
  33. 1 1
      src/main/webapp/webpage/modules/cg/statisticalTable/plotProgressStats/plotProgressStats.js
  34. 6 16
      src/main/webapp/webpage/modules/cg/statisticalTable/plotProgressStats/plotProgressStats.jsp
  35. 227 0
      src/main/webapp/webpage/modules/cg/statisticalTable/plotProgressStats/plotProgressStatsModifyByzz.jsp

+ 1 - 1
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/distribution/web/DistributionController.java

@@ -403,7 +403,7 @@ public class DistributionController {
             DocumentInfo infoByProId = new DocumentInfo(reserveProcess.getProjectReserveId(),reserveProcess.getBudgetStatement(),reserveProcess.getProjectProposal(),
                     reserveProcess.getDrawings(),
                     reserveProcess.getDrawingSpecification(),reserveProcess.getDemolition(),
-                    reserveProcess.getApprovalForm());
+                    reserveProcess.getApprovalForm(),reserveProcess.getCivilPrefabricate(),reserveProcess.getPowerFailure(),reserveProcess.getStudyReport());
             infoService.distributionFileSave(infoByProId);
 
             //在将拆旧清册数据存入数据库前先查出库中有没有这个project ReserveId的相关数据

+ 9 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/policyProcess/entity/PoliceProcessRecord.java

@@ -9,6 +9,7 @@ import com.jeeplus.core.persistence.ActEntity;
  * @date 2023-09-01 14:03
  */
 public class PoliceProcessRecord extends ActEntity<PoliceProcessRecord> {
+    private String recordId;
     //储备项目基本信息
     private String projectYear;             //项目年份
     private String projectNature;           //项目性质
@@ -76,6 +77,14 @@ public class PoliceProcessRecord extends ActEntity<PoliceProcessRecord> {
     private String coordinateUnit;             //政处配合单位
     private String recordRemarks;               //政处记录-备注
 
+    public String getRecordId() {
+        return recordId;
+    }
+
+    public void setRecordId(String recordId) {
+        this.recordId = recordId;
+    }
+
     public String getStartPoliticalWork2() {
         return startPoliticalWork2;
     }

+ 6 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/policyProcess/mapper/PoliceProcessRecordMapper.java

@@ -95,4 +95,10 @@ public interface PoliceProcessRecordMapper extends BaseMapper<PoliceProcessRecor
 
 
     List<String> getSerialNumByReserveId(@Param("projectReserveId")String projectReserveId);
+
+    int getMaxSerialNumber(String projectReserveId);
+
+    void deleteById(String id);
+
+    void deleteByReserveIdAndSerNum(@Param("projectReserveId")String projectReserveId,@Param("serialNumber") String serialNumber);
 }

+ 10 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/policyProcess/mapper/xml/PoliceProcessRecordMapper.xml

@@ -55,6 +55,7 @@
 		a.requirementType,
 		a.costEstimate,
 		a.basicRemarks as remarks,
+		IFNULL(b.id,"") as recordId,
 		IFNULL(b.startPoliticalWork,"") as startPoliticalWork,
 		IFNULL(b.serialNumber,"") as serialNumber,
         IFNULL(b.startTime,"") as startTime,
@@ -228,6 +229,12 @@
     <delete id="deleteByProjectReserveId">
         delete from cg_reserve_police_process_record where projectReserveId = #{projectReserveId}
     </delete>
+    <delete id="deleteById">
+        delete from cg_reserve_police_process_record where id = #{id}
+    </delete>
+    <delete id="deleteByReserveIdAndSerNum">
+        delete from cg_reserve_police_process_record where projectReserveId = #{projectReserveId} and serialNumber = #{serialNumber}
+    </delete>
 
     <select id="queryByProjectReserveId"
             resultType="com.jeeplus.modules.cg.reservemanagementcenter.policyProcess.entity.PoliceProcessRecord">
@@ -346,5 +353,8 @@
     <select id="getSerialNumByReserveId" resultType="java.lang.String">
         SELECT serialNumber FROM cg_reserve_police_process_record WHERE projectReserveId = #{projectReserveId}
     </select>
+    <select id="getMaxSerialNumber" resultType="java.lang.Integer">
+        SELECT MAX(serialNumber) FROM `cg_reserve_police_process_record` WHERE projectReserveId = #{projectReserveId}
+    </select>
 
 </mapper>

+ 14 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/policyProcess/service/PoliceProcessRecordService.java

@@ -25,6 +25,20 @@ public class PoliceProcessRecordService extends CrudService<PoliceProcessRecordM
     @Autowired
     private PoliceProcessRecordMapper dao;
 
+    public int getMaxSerialNumber(String projectReserveId) {
+        return dao.getMaxSerialNumber(projectReserveId);
+    }
+
+    @Transactional(readOnly = false)
+    public void deleteBy(String id) {
+        dao.deleteById(id);
+    }
+
+    @Transactional(readOnly = false)
+    public void deleteByReserveIdAndSerNum(String projectReserveId,String serialNumber){
+        dao.deleteByReserveIdAndSerNum(projectReserveId,serialNumber);
+    }
+
     public PoliceProcessRecord get(String id,String serialNumber){
         return dao.get(id,serialNumber);
     }

+ 18 - 31
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/policyProcess/web/PoliceProcessBaseController.java

@@ -32,10 +32,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @author 王强
@@ -375,41 +372,31 @@ public class PoliceProcessBaseController extends BaseController {
         //需要对政策处理记录表进行处理
         if (StringUtils.isNotBlank(reserveManagement.getWhetherReport())
                 &&reserveManagement.getWhetherReport().equals("是")){
-            PoliceProcessRecord record = recordService.getInfoByReserveIdAndNum(reserveManagement.getProjectReserveId(),"1");
-            if (null == record){
-                record = new PoliceProcessRecord();
-                record.setProjectReserveId(reserveManagement.getProjectReserveId());
-                record.setSerialNumber("1");
-                record.setAdministrativeObject("规划报批");
-            } else {
-                record.setAdministrativeObject("规划报批");
-            }
+            PoliceProcessRecord record = new PoliceProcessRecord();
+            record.setProjectReserveId(reserveManagement.getProjectReserveId());
+            record.setAdministrativeObject("规划报批");
+            int maxNum = recordService.getMaxSerialNumber(reserveManagement.getProjectReserveId());
+            record.setSerialNumber(maxNum+1+"");
+
             recordService.save(record);
         }
         if (StringUtils.isNotBlank(reserveManagement.getSafetyProcedures())
                 &&reserveManagement.getSafetyProcedures().equals("是")){
-            PoliceProcessRecord record = recordService.getInfoByReserveIdAndNum(reserveManagement.getProjectReserveId(),"2");
-            if (null == record){
-                record = new PoliceProcessRecord();
-                record.setProjectReserveId(reserveManagement.getProjectReserveId());
-                record.setSerialNumber("2");
-                record.setAdministrativeObject("安评");
-            } else {
-                record.setAdministrativeObject("安评");
-            }
+            PoliceProcessRecord record = new PoliceProcessRecord();
+            record.setProjectReserveId(reserveManagement.getProjectReserveId());
+            int maxNum = recordService.getMaxSerialNumber(reserveManagement.getProjectReserveId());
+            record.setSerialNumber(maxNum+1+"");
+            record.setAdministrativeObject("安评");
+
             recordService.save(record);
         }
         if (StringUtils.isNotBlank(reserveManagement.getAviationReviewProcedures())
                 &&reserveManagement.getAviationReviewProcedures().equals("是")){
-            PoliceProcessRecord record = recordService.getInfoByReserveIdAndNum(reserveManagement.getProjectReserveId(),"3");
-            if (null == record){
-                record = new PoliceProcessRecord();
-                record.setProjectReserveId(reserveManagement.getProjectReserveId());
-                record.setSerialNumber("3");
-                record.setAdministrativeObject("航评");
-            } else {
-                record.setAdministrativeObject("航评");
-            }
+            PoliceProcessRecord record = new PoliceProcessRecord();
+            record.setProjectReserveId(reserveManagement.getProjectReserveId());
+            int maxNum = recordService.getMaxSerialNumber(reserveManagement.getProjectReserveId());
+            record.setSerialNumber(maxNum+1+"");
+            record.setAdministrativeObject("航评");
             recordService.save(record);
         }
         if (StringUtils.isBlank(reserveManagement.getWhetherReport())

+ 60 - 2
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/policyProcess/web/PoliceProcessRecordController.java

@@ -10,13 +10,16 @@ import com.jeeplus.modules.cg.reservemanagementcenter.policyProcess.service.Poli
 import com.jeeplus.modules.cg.reservemanagementcenter.policyProcess.service.PoliceProcessRecordService;
 import com.jeeplus.modules.cg.reservemanagementcenter.policyProcess.util.PolicyProcessExportUtil;
 import com.jeeplus.modules.cg.reservemanagementcenter.policyProcess.util.PolicyProcessImportUtil;
+import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.ReserveProcessProject;
 import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.service.ProjectTypeVerificateService;
+import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.service.ReserveProcessProjectService;
 import com.jeeplus.modules.sg.managementcenter.materialproject.util.ImportUtil;
 import com.jeeplus.modules.sg.picking.activiti.entity.PickList;
 import com.jeeplus.modules.sg.raiseCapital.service.RaiseCapitalService;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -51,6 +54,9 @@ public class PoliceProcessRecordController extends BaseController {
     @Autowired
     private RaiseCapitalService raiseCapitalService;
 
+    @Autowired
+    private ReserveProcessProjectService reserveProcessProjectService;
+
     @ModelAttribute
     public PoliceProcessRecord get(@RequestParam(required = false) String id,@RequestParam(required = false) String serialNumber) {
         PoliceProcessRecord entity = null;
@@ -160,6 +166,30 @@ public class PoliceProcessRecordController extends BaseController {
     @RequiresPermissions(value={"cg:policeProcess:record:add","cg:policeProcess:record:edit"},logical= Logical.OR)
     @RequestMapping(value = "form")
     public String form(PoliceProcessRecord reserveManagement, Model model) {
+        //根据项目储备编号查储备项目基本信息
+        ReserveProcessProject reserveProcessProject = reserveProcessProjectService.queryByProjectId(reserveManagement.getProjectReserveId());
+        reserveManagement.setProjectYear(reserveProcessProject.getProjectYear());
+        reserveManagement.setProjectNature(reserveProcessProject.getProjectNature());
+        reserveManagement.setDemandUnit(reserveProcessProject.getDemandUnit());
+        reserveManagement.setDistrict(reserveProcessProject.getDistrict());
+        reserveManagement.setProjectGroup(reserveProcessProject.getProjectGroup());
+        reserveManagement.setReserveBatches(reserveProcessProject.getReserveBatches());
+        reserveManagement.setBlockSupply(reserveProcessProject.getBlockSupply());
+        reserveManagement.setGridNumber(reserveProcessProject.getGridNumber());
+        reserveManagement.setCellNumber(reserveProcessProject.getCellNumber());
+        reserveManagement.setProjectReserveId(reserveProcessProject.getProjectReserveId());
+        reserveManagement.setProjectName(reserveProcessProject.getProjectName());
+        reserveManagement.setStateGridProjectCode(reserveProcessProject.getStateGridProjectCode());
+        reserveManagement.setStateGridProjectName(reserveProcessProject.getStateGridProjectName());
+        reserveManagement.setConstructionNecessityAndContent(reserveProcessProject.getConstructionNecessityAndContent());
+        reserveManagement.setSubstationName(reserveProcessProject.getSubstationName());
+        reserveManagement.setCircuitName(reserveProcessProject.getCircuitName());
+        reserveManagement.setNetRackProjectDivide(reserveProcessProject.getNetRackProjectDivide());
+        reserveManagement.setRequirementType(reserveProcessProject.getRequirementType());
+        reserveManagement.setProjectType(reserveProcessProject.getProjectType());
+        reserveManagement.setCostEstimate(reserveProcessProject.getCostEstimate()+"");
+        reserveManagement.setRemarks(reserveProcessProject.getBasicRemarks());
+
         model.addAttribute("reserveManagement", reserveManagement);
         //判断id是否为空 如果未空则为新增 否则为修改
         if(StringUtils.isBlank(reserveManagement.getId())){
@@ -169,6 +199,30 @@ public class PoliceProcessRecordController extends BaseController {
     }
 
     /**
+     * 删除表单
+     */
+    @ResponseBody
+    @RequiresPermissions(value={"cg:policeProcess:record:del"},logical=Logical.OR)
+    @RequestMapping(value = "deleteAll")
+    public AjaxJson delete(String ids){
+        AjaxJson j = new AjaxJson();
+        String idArray[] =ids.split(",");
+        for(String id : idArray){
+            try {
+                //删除
+                recordService.deleteBy(id);
+            }catch (Exception e){
+                j.setSuccess(false);
+                j.setMsg("存在关联数据,无法删除!" + e);
+                return j;
+            }
+
+        }
+        j.setMsg("删除储备项目基本信息成功");
+        return j;
+    }
+
+    /**
      * 专职人员保存表单
      * @param reserveManagement
      * @return
@@ -187,10 +241,14 @@ public class PoliceProcessRecordController extends BaseController {
             j.setMsg(errMsg);
             return j;
         }
+        //自动生成的数据处理  序号、政处是否完成
+        int number = recordService.getMaxSerialNumber(reserveManagement.getProjectReserveId());
+        reserveManagement.setSerialNumber(number+1+"");
+
         //新增或编辑表单保存
-        recordService.save(reserveManagement);//保存
+//        recordService.save(reserveManagement);//保存
         j.setSuccess(true);
-        j.setMsg("保存储备项目基本信息成功");
+        j.setMsg("保存政策处理记录信息成功");
         return j;
     }
 

+ 42 - 1
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/entity/DocumentInfo.java

@@ -12,7 +12,7 @@ public class DocumentInfo extends DataEntity<DocumentInfo> {
     public DocumentInfo() {
     }
 
-    public DocumentInfo(String projectReserveId, String budgetStatement, String projectProposal, String drawings, String drawingSpecification, String demolition, String approvalForm) {
+    public DocumentInfo(String projectReserveId, String budgetStatement, String projectProposal, String drawings, String drawingSpecification, String demolition, String approvalForm, String civilPrefabricate, String powerFailure,String studyReport) {
         this.projectReserveId = projectReserveId;
         this.budgetStatement = budgetStatement;
         this.projectProposal = projectProposal;
@@ -20,6 +20,9 @@ public class DocumentInfo extends DataEntity<DocumentInfo> {
         this.drawingSpecification = drawingSpecification;
         this.demolition = demolition;
         this.approvalForm = approvalForm;
+        this.civilPrefabricate = civilPrefabricate;
+        this.powerFailure = powerFailure;
+        this.studyReport = studyReport;
     }
 
     /**
@@ -57,6 +60,20 @@ public class DocumentInfo extends DataEntity<DocumentInfo> {
      * */
     private String approvalForm;
 
+    /**
+     * 土建预制化审批单
+     */
+    private String civilPrefabricate;
+
+    /**
+     * 不停电审批单/停电审批单
+     */
+    private String powerFailure;
+
+    /**
+     * 可研报告
+     */
+    private String studyReport;
 
     public String getProjectReserveId() {
         return projectReserveId;
@@ -113,4 +130,28 @@ public class DocumentInfo extends DataEntity<DocumentInfo> {
     public void setApprovalForm(String approvalForm) {
         this.approvalForm = approvalForm;
     }
+
+    public String getCivilPrefabricate() {
+        return civilPrefabricate;
+    }
+
+    public void setCivilPrefabricate(String civilPrefabricate) {
+        this.civilPrefabricate = civilPrefabricate;
+    }
+
+    public String getPowerFailure() {
+        return powerFailure;
+    }
+
+    public void setPowerFailure(String powerFailure) {
+        this.powerFailure = powerFailure;
+    }
+
+    public String getStudyReport() {
+        return studyReport;
+    }
+
+    public void setStudyReport(String studyReport) {
+        this.studyReport = studyReport;
+    }
 }

+ 40 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/entity/ReserveSummaryProcess.java

@@ -62,6 +62,22 @@ public class ReserveSummaryProcess extends ActEntity<ReserveSummaryProcess> {
      */
     private String approvalForm;
 
+
+    /**
+     * 土建预制化审批单
+     */
+    private String civilPrefabricate;
+
+    /**
+     * 不停电审批单/停电审批单
+     */
+    private String powerFailure;
+
+    /**
+     * 可研报告
+     */
+    private String studyReport;
+
     //预算书审前审后数据
     private String pretrialBudgetTaxInclude;                //审前概算(含税)
     private String pretrialBudgetTaxNoInclude;              //审前概算(不含税)
@@ -371,4 +387,28 @@ public class ReserveSummaryProcess extends ActEntity<ReserveSummaryProcess> {
     public void setProjectManagerOtherProblem(String projectManagerOtherProblem) {
         this.projectManagerOtherProblem = projectManagerOtherProblem;
     }
+
+    public String getCivilPrefabricate() {
+        return civilPrefabricate;
+    }
+
+    public void setCivilPrefabricate(String civilPrefabricate) {
+        this.civilPrefabricate = civilPrefabricate;
+    }
+
+    public String getPowerFailure() {
+        return powerFailure;
+    }
+
+    public void setPowerFailure(String powerFailure) {
+        this.powerFailure = powerFailure;
+    }
+
+    public String getStudyReport() {
+        return studyReport;
+    }
+
+    public void setStudyReport(String studyReport) {
+        this.studyReport = studyReport;
+    }
 }

+ 20 - 5
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/reserveManage/mapper/xml/DocumentInfoMapper.xml

@@ -15,7 +15,10 @@
 		a.drawings,
 		a.drawingSpecification,
 		a.demolition,
-		a.approvalForm
+		a.approvalForm,
+		a.civilPrefabricate,
+		a.powerFailure,
+		a.studyReport
 
     </sql>
 
@@ -33,7 +36,10 @@
 		drawings,
 		drawingSpecification,
 		demolition,
-		approvalForm
+		approvalForm,
+		civilPrefabricate,
+		powerFailure,
+		studyReport
         )
         values
             (
@@ -49,7 +55,10 @@
             #{drawings},
             #{drawingSpecification},
             #{demolition},
-            #{approvalForm}
+            #{approvalForm},
+            #{civilPrefabricate},
+		    #{powerFailure},
+		    #{studyReport}
             )
     </insert>
     <insert id="insertDistributionFileInfo">
@@ -66,7 +75,10 @@
 		drawings,
 		drawingSpecification,
 		demolition,
-		approvalForm
+		approvalForm,
+		civilPrefabricate,
+		powerFailure,
+		studyReport
         )
         values
             (
@@ -82,7 +94,10 @@
             #{drawings},
             #{drawingSpecification},
             #{demolition},
-            #{approvalForm}
+            #{approvalForm},
+            #{civilPrefabricate},
+		    #{powerFailure},
+		    #{studyReport}
             )
     </insert>
     <delete id="deleteInfoByProId">

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

@@ -94,7 +94,12 @@
         materialCheck = #{materialCheck},
         liveWorkFeeCheck = #{liveWorkFeeCheck},
         demolitionEngineeringProblems = #{demolitionEngineeringProblems},
-        otherProblem = #{otherProblem}
+        otherProblem = #{otherProblem},
+        drawingAndSiteProblem = #{drawingAndSiteProblem},
+        communicationProblem = #{communicationProblem},
+        civilPrefabricateProblem = #{civilPrefabricateProblem},
+        liveWorkNumProblem = #{liveWorkNumProblem},
+        projectManagerOtherProblem = #{projectManagerOtherProblem}
         where projectReserveId = #{projectReserveId}
 
     </update>

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

@@ -316,7 +316,10 @@
         a.drawings,
         a.drawingSpecification,
         a.demolition,
-        a.approvalForm
+        a.approvalForm,
+        a.civilPrefabricate,
+        a.powerFailure,
+        a.studyReport
         from cg_document_info a
         left join cg_reserve_summary_statistics b on a.projectReserveId = b.projectReserveId
         left join cg_reserve_process c on a.projectReserveId = c.projectReserveId
@@ -444,7 +447,11 @@
         a.drawings,
         a.drawingSpecification,
         a.demolition,
-        a.approvalForm
+        a.approvalForm,
+        a.approvalForm,
+        a.civilPrefabricate,
+        a.powerFailure,
+        a.studyReport
         from cg_document_info_distribution a
         left join cg_reserve_distribution_network b on a.projectReserveId = b.projectReserveId
         left join cg_reserve_process c on a.projectReserveId = c.projectReserveId

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

@@ -684,7 +684,7 @@ public class ReserveSummaryProcessService extends CrudService<ReserveSummaryProc
                 }
             }
             //流程结束  清空该项目流程的问题反馈
-            feedMapper.deleteByProjectReserveId(user.getProjectReserveId());
+//            feedMapper.deleteByProjectReserveId(user.getProjectReserveId());
 
         } else if ("disagree".equals(flag)){
             //不通过-回到上一个流程
@@ -820,7 +820,7 @@ public class ReserveSummaryProcessService extends CrudService<ReserveSummaryProc
             budgetBook.setAfterTrialSupervisionFeeTaxNoInclude("".equals(reserveProcess.getAfterTrialSupervisionFeeTaxNoInclude()) ? null : reserveProcess.getAfterTrialSupervisionFeeTaxNoInclude());
             budgetBook.setAfterTrialDesignFeeTaxNoInclude("".equals(reserveProcess.getAfterTrialDesignFeeTaxNoInclude()) ? null : reserveProcess.getAfterTrialDesignFeeTaxNoInclude());
             //插入前先清空该项目相关的预算书数据
-            budgetBookService.deleteByProjectReserveId(budgetBook.getProjectReserveId());
+//            budgetBookService.deleteByProjectReserveId(budgetBook.getProjectReserveId());
             //插入
             budgetBookService.save(budgetBook);
 
@@ -839,7 +839,7 @@ public class ReserveSummaryProcessService extends CrudService<ReserveSummaryProc
                 }
             }
             //流程结束  清空该项目流程的问题反馈
-            feedMapper.deleteByProjectReserveId(user.getProjectReserveId());
+//            feedMapper.deleteByProjectReserveId(user.getProjectReserveId());
 
         } else if ("no".equals(flag)){
             //不通过-回到上一个流程

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

@@ -13,6 +13,7 @@ import com.jeeplus.core.web.Servlets;
 import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.Demolite;
 import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.DocumentInfo;
+import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.ReserveProcessProject;
 import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.ReserveSummaryProcess;
 import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.service.*;
 import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.utils.DataList;
@@ -25,7 +26,11 @@ import com.jeeplus.modules.sg.managementcenter.materialproject.util.ImportUtil;
 import com.jeeplus.modules.sg.managementcenter.reserveManagement.entity.ReserveProcess;
 import com.jeeplus.modules.sg.picking.activiti.entity.ShowList;
 import com.jeeplus.modules.sg.raiseCapitalDesign.service.RaiseCapitalDesignService;
+import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Controller;
@@ -87,6 +92,9 @@ public class ProcessController extends BaseController {
     private CableService cableService;
 
     @Autowired
+    private ReserveProcessProjectService reserveProcessProjectService;
+
+    @Autowired
     private RaiseCapitalDesignService raiseCapitalDesignService;
 
     @ModelAttribute
@@ -119,6 +127,8 @@ public class ProcessController extends BaseController {
             reserveProcess.setDrawingSpecification(infoByProId.getDrawingSpecification());
             reserveProcess.setDemolition(infoByProId.getDemolition());
             reserveProcess.setApprovalForm(infoByProId.getApprovalForm());
+            reserveProcess.setCivilPrefabricate(infoByProId.getCivilPrefabricate());
+            reserveProcess.setPowerFailure(infoByProId.getPowerFailure());
 
         }
 //        if (count>0){
@@ -216,13 +226,68 @@ public class ProcessController extends BaseController {
     public AjaxJson actDesignUnitNew(Act act, ReserveSummaryProcess reserveProcess,String material,String drjgc,String uid) throws Exception {
         AjaxJson j = new AjaxJson();
 
+        //判断项目建议书及可研报告是否必填
+        ReserveProcessProject reserveProcessProject = reserveProcessProjectService.queryByProjectId(reserveProcess.getProjectReserveId());
+        if (reserveProcessProject.getNetRackProjectDivide().equals("网架")){
+            if (StringUtils.isBlank(reserveProcess.getStudyReport())){
+                j.setMsg("可研报告不能为空!");
+                j.setSuccess(false);
+                return j;
+            }
+        } else if (reserveProcessProject.getNetRackProjectDivide().equals("非网架")){
+            // 获取当前项目的路径
+            File file = new File(reserveProcess.getBudgetStatement());
+            String filePath = file.getAbsolutePath();
+            int index = file.getAbsolutePath().indexOf("fileServer");
+            String FILE_PREFIX = loader.getProperty("linux.file.store.prefix");
+
+            if (SYS_TYPE.equals("1")) {
+                filePath = filePath.substring(index-1);
+
+            } else {
+                //liunx file store prefix
+                filePath = FILE_PREFIX + Servlets.getRequest().getContextPath() + filePath.substring(index-1);
+                filePath = filePath.replaceAll("\\\\","/");
+            }
+
+            //读取上传的预算书文件,判断是否必填
+//            String filePath = reserveProcess.getBudgetStatement();
+            String sheetName = "总算表(表一)";
+            int rowIndex = 22;
+            int columnIndex = 7;
+
+            FileInputStream fis = new FileInputStream(filePath);
+            Workbook workbook = new XSSFWorkbook(fis);
+
+            //获取指定的工作表
+            Sheet sheet = workbook.getSheet(sheetName);
+            Row row = sheet.getRow(rowIndex);
+            Cell cell = row.getCell(columnIndex);
+            if (cell != null) {
+                double cellValueAsDouble = cell.getNumericCellValue();
+                if (cellValueAsDouble>=30){
+                    if (StringUtils.isBlank(reserveProcess.getStudyReport())){
+                        j.setMsg("可研报告不能为空!");
+                        j.setSuccess(false);
+                        return j;
+                    }
+                }else if (cellValueAsDouble<30){
+                    if (StringUtils.isBlank(reserveProcess.getProjectProposal())){
+                        j.setMsg("项目建议书不能为空!");
+                        j.setSuccess(false);
+                        return j;
+                    }
+                }
+            }
+        }
+
         if (material != null || drjgc != null){
             //将上传的文件进行持久化操作
             //保存文件地址
             DocumentInfo infoByProId = new DocumentInfo(reserveProcess.getProjectReserveId(),reserveProcess.getBudgetStatement(),reserveProcess.getProjectProposal(),
                     reserveProcess.getDrawings(),
                     reserveProcess.getDrawingSpecification(),reserveProcess.getDemolition(),
-                    reserveProcess.getApprovalForm());
+                    reserveProcess.getApprovalForm(),reserveProcess.getCivilPrefabricate(),reserveProcess.getPowerFailure(),reserveProcess.getStudyReport());
             infoService.save(infoByProId);
 
             //在将拆旧清册数据存入数据库前先查出库中有没有这个project ReserveId的相关数据

+ 8 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/mapper/PlotProgressStatsMapper.java

@@ -2,6 +2,7 @@ package com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.mapper;
 
 import com.jeeplus.core.persistence.BaseMapper;
 import com.jeeplus.core.persistence.annotation.MyBatisMapper;
+import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.ReserveElectricityWork;
 import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.BudgetStats;
 import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.PlotProgressStats;
 import org.apache.ibatis.annotations.Param;
@@ -17,6 +18,13 @@ import java.util.List;
 public interface PlotProgressStatsMapper extends BaseMapper<PlotProgressStats> {
 
     /**
+     * 根据项目储备编号查看是否有该数据
+     * @param proId
+     * @return
+     */
+    PlotProgressStats getByProId(String proId);
+
+    /**
      * 根据项目储备id删除对应数据
      * @param proId
      */

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

@@ -2,6 +2,22 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.mapper.PlotProgressStatsMapper">
 
+    <sql id="reserveManagementColumn">
+        a.id as "id",
+        a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.del_flag AS "delFlag",
+		a.projectReserveId,
+		a.paper_drawing,
+		a.paper_drawing_time,
+		a.plan_and_approval_drawing,
+		a.plan_and_approval_drawing_time,
+		a.remarks
+
+    </sql>
+
     <sql id="reserveManagementColumns">
         a.id as "id",
         a.create_by AS "createBy.id",
@@ -35,6 +51,50 @@
 		IFNULL(c.implementPlan,"") as implementPlan,
 		IFNULL(c.implementBatchScreen,"") as implementBatch
     </sql>
+    <update id="update">
+		update
+        cg_plot_progress_stats
+        set
+        update_by = #{updateBy.id},
+        update_date = #{updateDate},
+        paper_drawing = #{paperDrawing},
+        paper_drawing_time = #{paperDrawingTime},
+        plan_and_approval_drawing = #{planAndApprovalDrawing},
+        plan_and_approval_drawing_time = #{planAndApprovalDrawingTime},
+        remarks = #{remarks}
+        where id = #{id}
+	</update>
+    <insert id="insert">
+        insert into cg_plot_progress_stats (
+        id,
+        create_by,
+        create_date,
+        update_by,
+        update_date,
+        del_flag,
+        projectReserveId,
+        paper_drawing,
+        paper_drawing_time,
+        plan_and_approval_drawing,
+        plan_and_approval_drawing_time,
+        remarks
+        )
+        values
+            (
+            #{id},
+            #{createBy.id},
+            #{createDate},
+            #{updateBy.id},
+            #{updateDate},
+            #{delFlag},
+            #{projectReserveId},
+            #{paperDrawing},
+            #{paperDrawingTime},
+            #{planAndApprovalDrawing},
+            #{planAndApprovalDrawingTime},
+            #{remarks}
+            )
+    </insert>
     <insert id="insertList">
         insert into cg_plot_progress_stats (
         id,
@@ -146,4 +206,10 @@
             </otherwise>
         </choose>
     </select>
+    <select id="getByProId"
+            resultType="com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.PlotProgressStats">
+        select
+        <include refid="reserveManagementColumn"/>
+        from cg_plot_progress_stats a where a.projectReserveId = #{proId}
+    </select>
 </mapper>

+ 14 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/service/PlotProgressStatsService.java

@@ -2,6 +2,7 @@ package com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.service;
 
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.service.CrudService;
+import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.ReserveElectricityWork;
 import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.BudgetStats;
 import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.entity.PlotProgressStats;
 import com.jeeplus.modules.cg.reservemanagementcenter.statisticalTable.mapper.PlotProgressStatsMapper;
@@ -24,6 +25,19 @@ public class PlotProgressStatsService extends CrudService<PlotProgressStatsMappe
     @Autowired
     private PlotProgressStatsMapper dao;
 
+    public PlotProgressStats getByProId(String proId){
+        return dao.getByProId(proId);
+    }
+
+    /**
+     * 专职修改方法
+     * @param reserveManagement
+     */
+    @Transactional(readOnly = false)
+    public void update(PlotProgressStats reserveManagement) {
+
+        super.save(reserveManagement);
+    }
 
     /**
      * 根据项目储备编号删除方法

+ 68 - 0
src/main/java/com/jeeplus/modules/cg/reservemanagementcenter/statisticalTable/web/PlotProgressStatsController.java

@@ -4,7 +4,10 @@ import com.jeeplus.common.json.AjaxJson;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.web.BaseController;
+import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.CompanyReview;
 import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.ProjectScreen;
+import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.ReserveElectricityWork;
+import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.entity.ReserveSummary;
 import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.service.ProjectScreenService;
 import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.service.ProjectTypeVerificateService;
 import com.jeeplus.modules.cg.reservemanagementcenter.reserveManage.service.ReserveElectricityWorkService;
@@ -71,6 +74,71 @@ public class PlotProgressStatsController extends BaseController {
     }
 
     /**
+     * 专职人员增加,编辑表单页面
+     * @param budgetStats
+     * @param model
+     * @return
+     */
+    @RequiresPermissions(value={"cg:reservemanagementcenter:plotProgressStats:add","cg:reservemanagementcenter:plotProgressStats:edit"},logical= Logical.OR)
+    @RequestMapping(value = "form")
+    public String form(PlotProgressStats budgetStats, Model model) {
+
+        model.addAttribute("budgetStats", budgetStats);
+        //判断id是否为空 如果未空则为新增 否则为修改
+        if(StringUtils.isBlank(budgetStats.getId())){
+            return "modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/reserveManagementForm";
+        }
+        return "modules/cg/statisticalTable/plotProgressStats/plotProgressStatsModifyByzz";
+    }
+
+    /**
+     * 专职人员修改表单
+     * @param budgetStats
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions(value={"cg:reservemanagementcenter:plotProgressStats:edit"},logical=Logical.OR)
+    @RequestMapping(value = "update")
+    public AjaxJson update(PlotProgressStats budgetStats){
+        AjaxJson j = new AjaxJson();
+
+        /**
+         * 后台hibernate-validation插件校验
+         */
+        String errMsg = beanValidator(budgetStats);
+        if (StringUtils.isNotBlank(errMsg)){
+            j.setSuccess(false);
+            j.setMsg(errMsg);
+            return j;
+        }
+
+        //根据id去带电作业表中查是否有这个数据
+        PlotProgressStats cityWork = statsService.getByProId(budgetStats.getProjectReserveId());
+        if (null == cityWork){
+            //进行保存操作
+            cityWork = new PlotProgressStats();
+            cityWork.setProjectReserveId(budgetStats.getProjectReserveId());
+            cityWork.setPaperDrawing(budgetStats.getPaperDrawing());
+            cityWork.setPaperDrawingTime(budgetStats.getPaperDrawingTime());
+            cityWork.setPlanAndApprovalDrawing(budgetStats.getPlanAndApprovalDrawing());
+            cityWork.setPlanAndApprovalDrawingTime(budgetStats.getPlanAndApprovalDrawingTime());
+            cityWork.setRemarks(budgetStats.getRemarks());
+            statsService.save(cityWork);
+        }else {
+            //新增或编辑表单保存
+            cityWork.setPaperDrawing(budgetStats.getPaperDrawing());
+            cityWork.setPaperDrawingTime(budgetStats.getPaperDrawingTime());
+            cityWork.setPlanAndApprovalDrawing(budgetStats.getPlanAndApprovalDrawing());
+            cityWork.setPlanAndApprovalDrawingTime(budgetStats.getPlanAndApprovalDrawingTime());
+            cityWork.setRemarks(budgetStats.getRemarks());
+            statsService.update(cityWork);
+        }
+        j.setSuccess(true);
+        j.setMsg("修改储备项目基本信息成功");
+        return j;
+    }
+
+    /**
      * 储备项目出图进度统计表列表页面
      * @param budgetStats
      * @param model

+ 2 - 2
src/main/java/com/jeeplus/modules/sys/web/TagController.java

@@ -106,8 +106,8 @@ public class TagController extends BaseController {
 			allowedExtensions = "";
 			mimeTypes = "All types(*.*)";
 		}else if("file".equals(type)){
-			allowedExtensions = "7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip";
-			mimeTypes = ".7z,.aiff,.asf,.avi,.bmp,.csv,.doc,.docx,.fla,.flv,.gif,.gz,.gzip,.jpeg,.jpg,.mid,.mov,.mp3,.mp4,.mpc,.mpeg,.mpg,.ods,.odt,.pdf,.png,.ppt,.pptx,.pxd,.qt,.ram,.rar,.rm,.rmi,.rmvb,.rtf,.sdc,.sitd,.swf,.sxc,.sxw,.tar,.tgz,.tif,.tiff,.txt,.vsd,.wav,.wma,.wmv,.xls,.xlsx,.zip";
+			allowedExtensions = "7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip,dwg";
+			mimeTypes = ".7z,.aiff,.asf,.avi,.bmp,.csv,.doc,.docx,.fla,.flv,.gif,.gz,.gzip,.jpeg,.jpg,.mid,.mov,.mp3,.mp4,.mpc,.mpeg,.mpg,.ods,.odt,.pdf,.png,.ppt,.pptx,.pxd,.qt,.ram,.rar,.rm,.rmi,.rmvb,.rtf,.sdc,.sitd,.swf,.sxc,.sxw,.tar,.tgz,.tif,.tiff,.txt,.vsd,.wav,.wma,.wmv,.xls,.xlsx,.zip,.dwg";
 		}else if("image".equals(type)){
 			allowedExtensions = "gif,jpg,jpeg,bmp,png";
 			mimeTypes =  "image/*";

+ 1 - 1
src/main/webapp/WEB-INF/tags/sys/fileUpload.tag

@@ -24,7 +24,7 @@ allowedExtensions:允许上传的文件类型
 deniedExtensions: 禁止上传的文件类型
 --%>
 <%@ attribute name="allowedExtensions" type="java.lang.String"  required="false" description="允许的文件类型"%>
-<%--7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip--%>
+<%--7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip,dwg--%>
 <%--bmp,gif,jpeg,jpg,png--%>
 
 <div class="input-group" style="width:100%">

+ 1 - 1
src/main/webapp/webpage/modules/cg/reservemanagementcenter/distribution/process/designUnitAgain.jsp

@@ -377,7 +377,7 @@
 					<table id="testPicTable"   data-toolbar="#toolbar"></table>
 					<div id="toolbar">
 						<button id="export" class="btn btn-warning">
-							<i class="fa fa-file-excel-o"></i> 导出甲供材清册
+							<i class="fa fa-file-excel-o"></i> 导出材清册
 						</button>
 					</div>
 					<table id="dataTable"   data-toolbar="#toolbar"></table>

+ 1 - 1
src/main/webapp/webpage/modules/cg/reservemanagementcenter/distribution/process/designUnitFile.jsp

@@ -523,7 +523,7 @@
 						<table id="testPicTable"   data-toolbar="#toolbar"></table>
 						<div id="toolbar">
 							<button id="export" class="btn btn-warning">
-								<i class="fa fa-file-excel-o"></i> 导出甲供材清册
+								<i class="fa fa-file-excel-o"></i> 导出材清册
 							</button>
 						</div>
 						<table id="dataTable"   data-toolbar="#toolbar"></table>

+ 1 - 1
src/main/webapp/webpage/modules/cg/reservemanagementcenter/distribution/process/skillUnit.jsp

@@ -377,7 +377,7 @@
 					<table id="testPicTable"   data-toolbar="#toolbar"></table>
 					<div id="toolbar">
 						<button id="export" class="btn btn-warning">
-							<i class="fa fa-file-excel-o"></i> 导出甲供材清册
+							<i class="fa fa-file-excel-o"></i> 导出材清册
 						</button>
 					</div>
 					<table id="dataTable"   data-toolbar="#toolbar"></table>

+ 158 - 60
src/main/webapp/webpage/modules/cg/reservemanagementcenter/policyProcess/policyProcessRecord/reserveManagementForm.jsp

@@ -2,7 +2,7 @@
 <%@ include file="/webpage/include/taglib.jsp"%>
 <html>
 <head>
-	<title>新增带电作业信息</title>
+	<title>新增政策处理记录信息</title>
 	<meta name="decorator" content="ani"/>
 	<script type="text/javascript">
 
@@ -36,7 +36,7 @@
                     return false;
                 }else{
                     jp.loading();
-                    jp.post("${ctx}/cg/policeProcess/base/save",$('#inputForm').serialize(),function(data){
+                    jp.post("${ctx}/cg/policeProcess/record/save",$('#inputForm').serialize(),function(data){
                         if(data.success){
                             jp.getParent().refresh();
                             var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
@@ -65,213 +65,311 @@
 			<td class="width-35">
 				<form:input path="projectYear" htmlEscape="false" readonly="true" class="form-control"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class="">项目性质:</label></td>
 			<td class="width-35">
 				<form:input path="projectNature" htmlEscape="false" readonly="true" class="form-control"/>
 			</td>
+		</tr>
+		<tr>
 			<td class="width-15 active"><label class="">需求单位:</label></td>
 			<td class="width-35">
 				<form:input path="demandUnit" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class="">区域:</label></td>
 			<td class="width-35">
 				<form:input path="district" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
+		</tr>
+		<tr>
 			<td class="width-15 active"><label class="">项目分组:</label></td>
 			<td class="width-35">
 				<form:input path="projectGroup" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class="">储备批次:</label></td>
 			<td class="width-35">
 				<form:input path="reserveBatches" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
+		</tr>
+		<tr>
 			<td class="width-15 active"><label class="">供电区域:</label></td>
 			<td class="width-35">
 				<form:input path="blockSupply" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class=""><font color="red">*</font>网格编号:</label></td>
 			<td class="width-35">
 				<form:input path="gridNumber" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
+		</tr>
+		<tr>
 			<td class="width-15 active"><label class=""><font color="red">*</font>单元格编号:</label></td>
 			<td class="width-35">
 				<form:input path="cellNumber" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class=""><font color="red">*</font>项目储备编号:</label></td>
 			<td class="width-35">
 				<form:input path="projectReserveId" htmlEscape="false"  readonly="true"  class="form-control required"/>
 			</td>
+		</tr>
+		<tr>
 			<td class="width-15 active"><label class=""><font color="red">*</font>项目名称:</label></td>
 			<td class="width-35">
 				<form:input path="projectName" htmlEscape="false"  readonly="true"  class="form-control required"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class="">国网项目编码:</label></td>
 			<td class="width-35">
 				<form:input path="stateGridProjectCode" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
+		</tr>
+		<tr>
 			<td class="width-15 active"><label class="">国网项目名称:</label></td>
 			<td class="width-35">
 				<form:input path="stateGridProjectName" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class=""><font color="red">*</font>建设必要性及内容:</label></td>
 			<td class="width-35">
 				<form:input path="constructionNecessityAndContent" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
+		</tr>
+		<tr>
 			<td class="width-15 active"><label class="">变电站名称:</label></td>
 			<td class="width-35">
 				<form:input path="substationName" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class="">线路名称:</label></td>
 			<td class="width-35">
 				<form:input path="circuitName" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
+		</tr>
+		<tr>
 			<td class="width-15 active"><label class="">网架项目划分:</label></td>
 			<td class="width-35">
 				<form:input path="netRackProjectDivide" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class="">需求类型:</label></td>
 			<td class="width-35">
 				<form:input path="requirementType" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
+		</tr>
+		<tr>
 			<td class="width-15 active"><label class="">项目类型:</label></td>
 			<td class="width-35">
 				<form:input path="projectType" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
-		</tr>
-		<tr>
 			<td class="width-15 active"><label class="">费用估算:</label></td>
 			<td class="width-35">
 				<form:input path="costEstimate" htmlEscape="false"  readonly="true"  class="form-control number money"/>
 			</td>
+		</tr>
+		<tr>
 			<td class="width-15 active"><label class="">备注:</label></td>
 			<td class="width-35">
-				<form:input path="remarks" htmlEscape="false"  readonly="true"  class="form-control number money"/>
+				<form:input path="remarks" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
 		</tr>
-
 		<tr>
-			<td colspan="4" class="width-15 active"><label class="">储备进度:</label></td>
+			<td colspan="4" class="width-15 active"><label class="">项目参建(单位)人员信息:</label></td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">储备进度:</label></td>
+			<td class="width-15 active"><label class="">初定实施批次:</label></td>
 			<td class="width-35">
-				<form:input path="reserveProgress" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="implementBatch" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
-			<td class="width-15 active"><label class="">是否纳入实施计划:</label></td>
+			<td class="width-15 active"><label class="">初定施工单位:</label></td>
 			<td class="width-35">
-				<form:input path="implementPlan" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="constructionUnit" htmlEscape="false"  readonly="true"  class="form-control"/>
 			</td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">初定实施批次:</label></td>
+			<td class="width-15 active"><label class="">项目下达批次:</label></td>
+			<td class="width-35">
+				<form:input path="projectReleaseBatch" htmlEscape="false"  readonly="true"  class="form-control "/>
+			</td>
+			<td class="width-15 active"><label class="">业主项目经理:</label></td>
+			<td class="width-35">
+				<form:input path="ownerManager" htmlEscape="false"  readonly="true"  class="form-control "/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">现场施工管理单位:</label></td>
+			<td class="width-35">
+				<form:input path="constructionManagementUnit" htmlEscape="false"  readonly="true"  class="form-control "/>
+			</td>
+			<td class="width-15 active"><label class="">施工项目经理(电气):</label></td>
+			<td class="width-35">
+				<form:input path="dqProjectManager" htmlEscape="false"  readonly="true"  class="form-control "/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">施工项目经理(土建):</label></td>
+			<td class="width-35">
+				<form:input path="tjProjectManager" htmlEscape="false"  readonly="true"  class="form-control "/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">分包队伍:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">电气分包单位:</label></td>
+			<td class="width-35">
+				<form:input path="dqSubcontractingUnit" htmlEscape="false"  readonly="true"  class="form-control "/>
+			</td>
+			<td class="width-15 active"><label class="">电气联系人:</label></td>
+			<td class="width-35">
+				<form:input path="dqContacts" htmlEscape="false"  readonly="true"  class="form-control "/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">土建分包单位:</label></td>
+			<td class="width-35">
+				<form:input path="tjSubcontractingUnit" htmlEscape="false"  readonly="true"  class="form-control "/>
+			</td>
+			<td class="width-15 active"><label class="">土建联系人:</label></td>
 			<td class="width-35">
-				<form:input path="implementBatch" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="tjContacts" htmlEscape="false"  readonly="true"  class="form-control "/>
 			</td>
 		</tr>
 		<tr>
-			<td colspan="4" class="width-15 active"><label class="">工作量统计:</label></td>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="subpackageRemarks" htmlEscape="false"  readonly="true"  class="form-control "/>
+			</td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">是否含土建工作量:</label></td>
+			<td colspan="4" class="width-15 active"><label class="">项目工程量统计:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">是否含土建:</label></td>
 			<td class="width-35">
-				<form:input path="civilEngineeringWorkload" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="civilEngineer" htmlEscape="false"  readonly="true"  class="form-control "/>
 			</td>
 			<td class="width-15 active"><label class="">土建工作量统计:</label></td>
 			<td class="width-35">
-				<form:input path="engineeringWorkloadStatistic" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="civilEngineerStatistic" htmlEscape="false"  readonly="true"  class="form-control "/>
 			</td>
 		</tr>
 		<tr>
 			<td class="width-15 active"><label class="">是否含立杆工作量:</label></td>
 			<td class="width-35">
-				<form:input path="poleWorkload" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="poleWorkload" htmlEscape="false"  readonly="true"  class="form-control "/>
 			</td>
 			<td class="width-15 active"><label class="">立杆工作量统计:</label></td>
 			<td class="width-35">
-				<form:input path="poleWorkloadStatistic" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="poleWorkloadStatistic" htmlEscape="false"  readonly="true"  class="form-control "/>
 			</td>
 		</tr>
 		<tr>
 			<td class="width-15 active"><label class="">备注:</label></td>
 			<td class="width-35">
-				<form:input path="workRemark" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="statisticRemarks" htmlEscape="false"  readonly="true"  class="form-control "/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">政处记录:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">序号:</label></td>
+			<td class="width-35">
+				<form:input path="serialNumber" htmlEscape="false"  readonly="true"  class="form-control "/>
+			</td>
+			<td class="width-15 active"><label class="">是否启动政处工作:</label></td>
+			<td class="width-35">
+				<form:input path="startPoliticalWork" htmlEscape="false" class="form-control "/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">政处启动时间:</label></td>
+			<td class="width-35">
+				<form:input path="startTime" htmlEscape="false"  class="form-control "/>
+			</td>
+			<td class="width-15 active"><label class="">政处对象:</label></td>
+			<td class="width-35">
+				<form:input path="administrativeObject" htmlEscape="false" class="form-control "/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">是否需赔付:</label></td>
+			<td class="width-35">
+				<form:input path="needCompensation" htmlEscape="false"  class="form-control "/>
+			</td>
+			<td class="width-15 active"><label class="">赔付内容:</label></td>
+			<td class="width-35">
+				<form:input path="compensationContent" htmlEscape="false" class="form-control "/>
 			</td>
 		</tr>
 		<tr>
-			<td colspan="4" class="width-15 active"><label class="">政策处理基本信息:</label></td>
+			<td class="width-15 active"><label class="">赔付金额:</label></td>
+			<td class="width-35">
+				<form:input path="compensationMoney" htmlEscape="false"  class="form-control "/>
+			</td>
+			<td class="width-15 active"><label class="">签字政处单据提交时间:</label></td>
+			<td class="width-35">
+				<form:input path="documentCommitTime" htmlEscape="false"  class="form-control "/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">是否财政付款:</label></td>
+			<td class="width-35">
+				<form:input path="financialPayment" htmlEscape="false"  class="form-control "/>
+			</td>
+			<td class="width-15 active"><label class="">是否需签订合同:</label></td>
+			<td class="width-35">
+				<form:input path="needSignContract" htmlEscape="false"  class="form-control "/>
+			</td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">供电所辖区:</label></td>
+			<td class="width-15 active"><label class="">政处合同完成签订时间:</label></td>
 			<td class="width-35">
-				<form:input path="powerStationJurisdiction" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="signContractTime" htmlEscape="false"  class="form-control "/>
 			</td>
-			<td class="width-15 active"><label class="">施工地点:</label></td>
+			<td class="width-15 active"><label class="">是否借款:</label></td>
 			<td class="width-35">
-				<form:input path="constructionLocation" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="weatherLoan" htmlEscape="false"  class="form-control "/>
 			</td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">是否存在政处:</label></td>
+			<td class="width-15 active"><label class="">借款支付时间:</label></td>
 			<td class="width-35">
-				<form:input path="whetherExitPolitical" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="loanTime" htmlEscape="false"  class="form-control "/>
 			</td>
-			<td class="width-15 active"><label class="">政处类型:</label></td>
+			<td class="width-15 active"><label class="">是否完成财务报销:</label></td>
 			<td class="width-35">
-				<form:input path="politicalType" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="completeFinancialReimbursement" htmlEscape="false"  class="form-control "/>
 			</td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">政处描述:</label></td>
+			<td class="width-15 active"><label class="">财务报销完成时间:</label></td>
 			<td class="width-35">
-				<form:input path="politicalDescribe" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="completeFinancialReimbursementTime" htmlEscape="false"  class="form-control "/>
 			</td>
-			<td class="width-15 active"><label class="">政处难度:</label></td>
+			<td class="width-15 active"><label class="">是否可进场:</label></td>
 			<td class="width-35">
-				<form:input path="politicalDifficulty" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="possibleToEnterSite" htmlEscape="false"  class="form-control "/>
 			</td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">是否需规划报批:</label></td>
+			<td class="width-15 active"><label class="">可进场日期:</label></td>
 			<td class="width-35">
-				<form:input path="whetherReport" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="possibleToEnterSiteTime" htmlEscape="false"  class="form-control "/>
 			</td>
-			<td class="width-15 active"><label class="">是否需办理安评手续:</label></td>
+			<td class="width-15 active"><label class="">政处是否完成:</label></td>
 			<td class="width-35">
-				<form:input path="safetyProcedures" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="completeProcess" htmlEscape="false" readonly="true" class="form-control "/>
 			</td>
 		</tr>
 		<tr>
-			<td class="width-15 active"><label class="">是否需办理航评手续:</label></td>
+			<td class="width-15 active"><label class="">政处洽谈单位:</label></td>
 			<td class="width-35">
-				<form:input path="aviationReviewProcedures" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="negotiatingUnit" htmlEscape="false"  class="form-control "/>
 			</td>
-			<td class="width-15 active"><label class="">是否启动政处:</label></td>
+			<td class="width-15 active"><label class="">政处配合单位:</label></td>
 			<td class="width-35">
-				<form:input path="startPolitical" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="coordinateUnit" htmlEscape="false" class="form-control "/>
 			</td>
 		</tr>
 		<tr>
 			<td class="width-15 active"><label class="">备注:</label></td>
 			<td class="width-35">
-				<form:input path="politicalRemarks" htmlEscape="false" readonly="true" class="form-control"/>
+				<form:input path="recordRemarks" htmlEscape="false"  class="form-control "/>
 			</td>
 		</tr>
 		</tbody>

+ 42 - 11
src/main/webapp/webpage/modules/cg/reservemanagementcenter/policyProcess/policyProcessRecord/reserveManagementInformation.js

@@ -69,6 +69,8 @@ $(document).ready(function () {
                         }
                     })
                 });
+            } else if ($el.data("item") == "add"){
+                add(row.projectReserveId)
             }
         },
         /*onLoadSuccess: function () {  //加载成功时执行
@@ -214,13 +216,13 @@ $(document).ready(function () {
                             if (tableData[index].serialNumber === null || tableData[index].serialNumber === '') {
                                 return ''
                             } else {
-                                // return '<input type="text" id="' + inputId + '" class="form-control" value="' + value + '" onchange="getValue(event, ' + index + ')">';
-                                return '<select id="administrativeObject" name="administrativeObject" class="form-control" onchange="getValue(event, ' + index + ')">' +
-                                    '<option value="">请选择</option>' +
-                                    '<option value="规划报批" ' + (value === '规划报批' ? 'selected' : '') + '>规划报批</option>' +
-                                    '<option value="安评" ' + (value === '安评' ? 'selected' : '') + '>安评</option>' +
-                                    '<option value="航评" ' + (value === '航评' ? 'selected' : '') + '>航评</option>' +
-                                    '</select>';
+                                return '<input type="text" id="' + inputId + '" class="form-control" value="' + value + '" onchange="getValue(event, ' + index + ')">';
+                                // return '<select id="administrativeObject" name="administrativeObject" class="form-control" onchange="getValue(event, ' + index + ')">' +
+                                //     '<option value="">请选择</option>' +
+                                //     '<option value="规划报批" ' + (value === '规划报批' ? 'selected' : '') + '>规划报批</option>' +
+                                //     '<option value="安评" ' + (value === '安评' ? 'selected' : '') + '>安评</option>' +
+                                //     '<option value="航评" ' + (value === '航评' ? 'selected' : '') + '>航评</option>' +
+                                //     '</select>';
 
                             }
                         }
@@ -404,7 +406,7 @@ $(document).ready(function () {
     $('#projectTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
         'check-all.bs.table uncheck-all.bs.table', function () {
         $('#remove').prop('disabled', !$('#projectTable').bootstrapTable('getSelections').length);
-        $('#view,#edit,#jlEdit').prop('disabled', $('#projectTable').bootstrapTable('getSelections').length != 1);
+        $('#view,#edit,#jlEdit,#add').prop('disabled', $('#projectTable').bootstrapTable('getSelections').length != 1);
     });
 
     $("#btnImport").click(function () {
@@ -479,15 +481,28 @@ function getIdSelections() {
         return row.id
     });
 }
-
+function getProjectReserveIdSelections() {
+    return $.map($("#projectTable").bootstrapTable('getSelections'), function (row) {
+        console.log('row', row)
+        return row.projectReserveId
+    });
+}
+function getRecordIdSelections() {
+    return $.map($("#projectTable").bootstrapTable('getSelections'), function (row) {
+        return row.recordId
+    });
+}
 
 //刷新列表
 function refresh() {
     $('#projectTable').bootstrapTable('refresh');
 }
 
-function add() {
-    jp.openSaveDialog('新增储备项目基本信息', "${ctx}/cg/policeProcess/record/form", '800px', '500px');
+function add(projectReserveId) {
+    if (projectReserveId == undefined) {
+        projectReserveId = getProjectReserveIdSelections();
+    }
+    jp.openSaveDialog('新增政策处理记录信息', "${ctx}/cg/policeProcess/record/form?projectReserveId="  + projectReserveId, '800px', '500px');
 }
 
 
@@ -508,6 +523,22 @@ function view(id,index) {//没有权限时,不显示确定按钮
     jp.openViewDialog('查看储备项目基本信息', "${ctx}/cg/policeProcess/record/view?id=" + id + '&serialNumber=' +serialNumber, '800px', '500px');
 }
 
+function deleteAll(){
+
+    jp.confirm('确认要删除该政处处理记录信息吗?', function(){
+        jp.loading();
+        jp.get("${ctx}/cg/policeProcess/record/deleteAll?ids=" + getRecordIdSelections(), function(data){
+            if(data.success){
+                $('#projectTable').bootstrapTable('refresh');
+                jp.success(data.msg);
+            }else{
+                jp.error(data.msg);
+            }
+        })
+
+    })
+}
+
 //转换日期格式(时间戳转换为datetime格式)
 function changeDateFormat(cellval) {
     var dateVal = cellval + "";

+ 10 - 0
src/main/webapp/webpage/modules/cg/reservemanagementcenter/policyProcess/policyProcessRecord/reserveManagementInformation.jsp

@@ -72,11 +72,21 @@
 
 	<!-- 工具栏 -->
 	<div id="toolbar">
+		<shiro:hasPermission name="cg:policeProcess:record:add">
+			<button id="add" class="btn btn-primary" onclick="add()">
+				<i class="glyphicon glyphicon-plus"></i> 新增
+			</button>
+		</shiro:hasPermission>
 			<shiro:hasPermission name="cg:policeProcess:record:edit">
 				<button id="edit" class="btn btn-primary" onclick="edit()">
 					<i class="glyphicon glyphicon-edit"></i> 修改 <!--专职修改-->
 				</button>
 			</shiro:hasPermission>
+		<shiro:hasPermission name="cg:policeProcess:record:del">
+			<button id="remove" class="btn btn-danger" onclick="deleteAll()">
+				<i class="glyphicon glyphicon-remove"></i> 删除
+			</button>
+		</shiro:hasPermission>
 			<shiro:hasPermission name="cg:policeProcess:record:list">
 				<button id="btnImport" class="btn btn-info">
 					<i class="fa fa-folder-open-o"></i> 导入  <!--专职导入-->

+ 336 - 0
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/budgetReview.js

@@ -98,6 +98,25 @@
 					}
 
 				}, {
+					field: 'studyReport',
+					title: '可研报告',
+					formatter:function(value, row , index){
+						if (value){
+							var valueArray = value.split("|");
+							var labelArray = [];
+							for(var i =0 ; i<valueArray.length; i++){
+								if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(valueArray[i]))
+								{
+									labelArray[i] = "<a href=\""+valueArray[i]+"\" url=\""+valueArray[i]+"\" target=\"_blank\">"+decodeURIComponent(valueArray[i].substring(valueArray[i].lastIndexOf("/")+1))+"</a>"
+								}else{
+									labelArray[i] = '<img   onclick="jp.showPic(\''+valueArray[i]+'\')"'+' height="50px" src="'+valueArray[i]+'">';
+								}
+							}
+							return labelArray.join(" ");
+						}
+					}
+
+				}, {
 					field: 'drawings',
 					title: '图纸',
 					formatter:function(value, row , index){
@@ -173,6 +192,44 @@
 							return labelArray.join(" ");
 						}
 					}
+				}, {
+					field: 'civilPrefabricate',
+					title: '土建预制化审批单',
+					formatter:function(value, row , index){
+						console.log(value);
+						if (value){
+							var valueArray = value.split("|");
+							var labelArray = [];
+							for(var i =0 ; i<valueArray.length; i++){
+								if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(valueArray[i]))
+								{
+									labelArray[i] = "<a href=\""+valueArray[i]+"\" url=\""+valueArray[i]+"\" target=\"_blank\">"+decodeURIComponent(valueArray[i].substring(valueArray[i].lastIndexOf("/")+1))+"</a>"
+								}else{
+									labelArray[i] = '<img   onclick="jp.showPic(\''+valueArray[i]+'\')"'+' height="50px" src="'+valueArray[i]+'">';
+								}
+							}
+							return labelArray.join(" ");
+						}
+					}
+				}, {
+					field: 'powerFailure',
+					title: '不停电审批单/停电审批单',
+					formatter:function(value, row , index){
+						console.log(value);
+						if (value){
+							var valueArray = value.split("|");
+							var labelArray = [];
+							for(var i =0 ; i<valueArray.length; i++){
+								if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(valueArray[i]))
+								{
+									labelArray[i] = "<a href=\""+valueArray[i]+"\" url=\""+valueArray[i]+"\" target=\"_blank\">"+decodeURIComponent(valueArray[i].substring(valueArray[i].lastIndexOf("/")+1))+"</a>"
+								}else{
+									labelArray[i] = '<img   onclick="jp.showPic(\''+valueArray[i]+'\')"'+' height="50px" src="'+valueArray[i]+'">';
+								}
+							}
+							return labelArray.join(" ");
+						}
+					}
 				}
 			]
 		});
@@ -350,7 +407,286 @@ function refresh(){
 	$('#testPicTable').bootstrapTable('refresh');
 }
 
+var preferedValue = ''
+var transferValue = ''
+var budgetValue = ''
+var quotaValue = ''
+var workLoadValue = ''
+var checkValue = ''
+var supplyValue = ''
+var materialValue = ''
+var liveWorkValue = ''
+var demolitionValue = ''
+var otherValue = ''
 
+function hidePlaceholder(inputElement,type) {
+	if (type === 'prefered') {
+		var preferedCase = $("#preferedCase").val();
+		if (inputElement.value === preferedCase & preferedValue === preferedCase) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+	if (type === 'transfer') {
+		var transferSituation = $("#transferSituation").val();
+		if (inputElement.value === transferSituation & transferValue === transferSituation) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+	if (type === 'budget') {
+		var budgetTemplateCheck = $("#budgetTemplateCheck").val();
+		if (inputElement.value === budgetTemplateCheck & budgetValue === budgetTemplateCheck) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+	if (type === 'quota') {
+		var quotaApplicationCheck = $("#quotaApplicationCheck").val();
+		if (inputElement.value === quotaApplicationCheck & quotaValue === quotaApplicationCheck) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+	if (type === 'workLoad') {
+		var workLoadCheck = $("#workLoadCheck").val();
+		if (inputElement.value === workLoadCheck & workLoadValue === workLoadCheck) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+	if (type === 'check') {
+		var checkTheFee = $("#checkTheFee").val();
+		if (inputElement.value === checkTheFee & checkValue === checkTheFee) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+	if (type === 'supply') {
+		var supplyCheck = $("#supplyCheck").val();
+		if (inputElement.value === supplyCheck & supplyValue === supplyCheck) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+	if (type === 'material') {
+		var materialCheck = $("#materialCheck").val();
+		if (inputElement.value === materialCheck & materialValue === materialCheck) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+	if (type === 'liveWork') {
+		var liveWorkFeeCheck = $("#liveWorkFeeCheck").val();
+		if (inputElement.value === liveWorkFeeCheck & liveWorkValue === liveWorkFeeCheck) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+	if (type === 'demolition') {
+		var demolitionEngineeringProblems = $("#demolitionEngineeringProblems").val();
+		if (inputElement.value === demolitionEngineeringProblems & demolitionValue === demolitionEngineeringProblems) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+	if (type === 'other') {
+		var otherProblem = $("#otherProblem").val();
+		if (inputElement.value === otherProblem & otherValue === otherProblem) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+}
+
+function showPlaceholder(inputElement,type) {
+
+	if (type === 'prefered') {
+		if (isNotEmpty(preferedValue)){
+			if (inputElement.value === "") {
+				inputElement.value = preferedValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
+
+	}
+	if (type === 'transfer') {
+		if (isNotEmpty(transferValue)){
+			if (inputElement.value === "") {
+				inputElement.value = transferValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
+
+	}
+	if (type === 'budget') {
+		if (isNotEmpty(budgetValue)){
+			if (inputElement.value === "") {
+				inputElement.value = budgetValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
+
+	}
+	if (type === 'quota') {
+		if (isNotEmpty(quotaValue)){
+			if (inputElement.value === "") {
+				inputElement.value = quotaValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
 
+	}
+	if (type === 'workLoad') {
+		if (isNotEmpty(workLoadValue)){
+			if (inputElement.value === "") {
+				inputElement.value = workLoadValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
 
+	}
+	if (type === 'check') {
+		if (isNotEmpty(checkValue)){
+			if (inputElement.value === "") {
+				inputElement.value = checkValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
+
+	}
+	if (type === 'supply') {
+		if (isNotEmpty(supplyValue)){
+			if (inputElement.value === "") {
+				inputElement.value = supplyValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
+
+	}
+	if (type === 'material') {
+		if (isNotEmpty(materialValue)){
+			if (inputElement.value === "") {
+				inputElement.value = materialValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
+
+	}
+	if (type === 'liveWork') {
+		if (isNotEmpty(liveWorkValue)){
+			if (inputElement.value === "") {
+				inputElement.value = liveWorkValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
+
+	}
+	if (type === 'demolition') {
+		if (isNotEmpty(demolitionValue)){
+			if (inputElement.value === "") {
+				inputElement.value = demolitionValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
+
+	}
+	if (type === 'other') {
+		if (isNotEmpty(otherValue)){
+			if (inputElement.value === "") {
+				inputElement.value = otherValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
+
+	}
+}
+
+// 在页面加载完成后显示灰色提示文本
+window.addEventListener('load', function() {
+	var preferedInput = document.getElementById('preferedCase');
+	if (isNotEmpty(preferedInput.value)){
+		preferedValue = preferedInput.value
+		preferedInput.style.backgroundColor = '#f0f0f0';
+		showPlaceholder(preferedInput,'prefered');
+	}
+	var transferInput = document.getElementById('transferSituation');
+	if (isNotEmpty(transferInput.value)){
+		transferValue = transferInput.value
+		transferInput.style.backgroundColor = '#f0f0f0';
+		showPlaceholder(transferInput,'transfer');
+	}
+	var budgetInput = document.getElementById('budgetTemplateCheck');
+	if (isNotEmpty(budgetInput.value)){
+		budgetValue = budgetInput.value
+		budgetInput.style.backgroundColor = '#f0f0f0';
+		showPlaceholder(budgetInput,'budget');
+	}
+	var quotaInput = document.getElementById('quotaApplicationCheck');
+	if (isNotEmpty(quotaInput.value)){
+		quotaValue = quotaInput.value
+		quotaInput.style.backgroundColor = '#f0f0f0';
+		showPlaceholder(quotaInput,'quota');
+	}
+	var workLoadInput = document.getElementById('workLoadCheck');
+	if (isNotEmpty(workLoadInput.value)){
+		workLoadValue = workLoadInput.value
+		workLoadInput.style.backgroundColor = '#f0f0f0';
+		showPlaceholder(workLoadInput,'workLoad');
+	}
+	var checkInput = document.getElementById('checkTheFee');
+	if (isNotEmpty(checkInput.value)){
+		checkValue = checkInput.value
+		checkInput.style.backgroundColor = '#f0f0f0';
+		showPlaceholder(checkInput,'check');
+	}
+	var supplyInput = document.getElementById('supplyCheck');
+	if (isNotEmpty(supplyInput.value)){
+		supplyValue = supplyInput.value
+		supplyInput.style.backgroundColor = '#f0f0f0';
+		showPlaceholder(supplyInput,'supply');
+	}
+	var materialInput = document.getElementById('materialCheck');
+	if (isNotEmpty(materialInput.value)){
+		materialValue = materialInput.value
+		materialInput.style.backgroundColor = '#f0f0f0';
+		showPlaceholder(materialInput,'material');
+	}
+	var liveWorkInput = document.getElementById('liveWorkFeeCheck');
+	if (isNotEmpty(liveWorkInput.value)){
+		liveWorkValue = liveWorkInput.value
+		liveWorkInput.style.backgroundColor = '#f0f0f0';
+		showPlaceholder(liveWorkInput,'liveWork');
+	}
+	var demolitionInput = document.getElementById('demolitionEngineeringProblems');
+	if (isNotEmpty(demolitionInput.value)){
+		demolitionValue = demolitionInput.value
+		demolitionInput.style.backgroundColor = '#f0f0f0';
+		showPlaceholder(demolitionInput,'demolition');
+	}
+	var otherInput = document.getElementById('otherProblem');
+	if (isNotEmpty(otherInput.value)){
+		otherValue = otherInput.value
+		otherInput.style.backgroundColor = '#f0f0f0';
+		showPlaceholder(otherInput,'other');
+	}
+
+});
+
+function isEmpty(value) {
+	let result = false;
+	if (value == null || value == undefined) {
+		result = true;
+	}
+	if (typeof value == 'string' && (value.replace(/\s+/g, "") == "" || value == "")) {
+		result = true;
+	}
+	if (typeof value == "object" && value instanceof Array && value.length === 0) {
+		result = true;
+	}
+	return result;
+};
+function isNotEmpty (value) {
+	return !isEmpty(value)
+}
 </script>

+ 155 - 53
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/budgetReview.jsp

@@ -15,49 +15,107 @@
             });
 
             $("#agree").click(function () {
-                jp.prompt("通过", function (message) {
-                    var projectReserveId = $("#projectReserveId").val();
-                    var projectName = $("#projectName").val();
-                    //预算书审前审后数据
-                    var pretrialBudgetTaxInclude = $("#pretrialBudgetTaxInclude").val();
-                    var pretrialBudgetTaxNoInclude = $("#pretrialBudgetTaxNoInclude").val();
-                    var pretrialSupervisionFeeTaxNoInclude = $("#pretrialSupervisionFeeTaxNoInclude").val();
-                    var pretrialDesignFeeTaxNoInclude = $("#pretrialDesignFeeTaxNoInclude").val();
-                    var afterTrialBudgetTaxInclude = $("#afterTrialBudgetTaxInclude").val();
-                    var afterTrialBudgetTaxNoInclude = $("#afterTrialBudgetTaxNoInclude").val();
-                    var afterTrialSupervisionFeeTaxNoInclude = $("#afterTrialSupervisionFeeTaxNoInclude").val();
-                    var afterTrialDesignFeeTaxNoInclude = $("#afterTrialDesignFeeTaxNoInclude").val();
-                    jp.post("${ctx}/cg/reservemanagementcenter/process/actBudgetUnit",
-                        {
-                            "taskId": "${reserveProcess.act.taskId}",
-                            "taskName": "${reserveProcess.act.taskName}",
-                            "taskDefKey": "${reserveProcess.act.taskDefKey}",
-                            "procInsId": "${reserveProcess.act.procInsId}",
-                            "procDefId": "${reserveProcess.act.procDefId}",
-                            "flag": "yes",
-                            "projectReserveId": projectReserveId,
-                            "projectName": projectName,
-                            "pretrialBudgetTaxInclude": pretrialBudgetTaxInclude,
-                            "pretrialBudgetTaxNoInclude": pretrialBudgetTaxNoInclude,
-                            "pretrialSupervisionFeeTaxNoInclude": pretrialSupervisionFeeTaxNoInclude,
-                            "pretrialDesignFeeTaxNoInclude": pretrialDesignFeeTaxNoInclude,
-                            "afterTrialBudgetTaxInclude": afterTrialBudgetTaxInclude,
-                            "afterTrialBudgetTaxNoInclude": afterTrialBudgetTaxNoInclude,
-                            "afterTrialSupervisionFeeTaxNoInclude": afterTrialSupervisionFeeTaxNoInclude,
-                            "afterTrialDesignFeeTaxNoInclude": afterTrialDesignFeeTaxNoInclude,
-                            "comment": window.encodeURI(message)
-                        },
-                        function (data) {
-                            if (data.success) {
-                                jp.success(data.msg);
-                                jp.go("${ctx}/act/task/todo");
-                            } else {
-                                jp.error(data.msg);
+                var flag = true
+                var preferedCase = $("#preferedCase").val();
+                if (isNotEmpty(preferedValue) && preferedValue !== preferedCase) {
+                    flag = false;
+                    jp.error("填写了新的甲供材优选情况,无法通过");
+                }
+                var transferSituation = $("#transferSituation").val();
+                if (isNotEmpty(transferValue) && transferValue !== transferSituation) {
+                    flag = false;
+                    jp.error("填写了新的甲供转乙供情况,无法通过");
+                }
+                var budgetTemplateCheck = $("#budgetTemplateCheck").val();
+                if (isNotEmpty(budgetValue) && budgetValue !== budgetTemplateCheck) {
+                    flag = false;
+                    jp.error("填写了新的预算模板核对,无法通过");
+                }
+                var quotaApplicationCheck = $("#quotaApplicationCheck").val();
+                if (isNotEmpty(quotaValue) && quotaValue !== quotaApplicationCheck) {
+                    flag = false;
+                    jp.error("填写了新的定额套用核对,无法通过");
+                }
+                var workLoadCheck = $("#workLoadCheck").val();
+                if (isNotEmpty(workLoadValue) && workLoadValue !== workLoadCheck) {
+                    flag = false;
+                    jp.error("填写了新的工作流核对,无法通过");
+                }
+                var checkTheFee = $("#checkTheFee").val();
+                if (isNotEmpty(checkValue) && checkValue !== checkTheFee) {
+                    flag = false;
+                    jp.error("填写了新的取费核对,无法通过");
+                }
+                var supplyCheck = $("#supplyCheck").val();
+                if (isNotEmpty(supplyValue) && supplyValue !== supplyCheck) {
+                    flag = false;
+                    jp.error("填写了新的甲供物资核对,无法通过");
+                }
+                var materialCheck = $("#materialCheck").val();
+                if (isNotEmpty(materialValue) && materialValue !== materialCheck) {
+                    flag = false;
+                    jp.error("填写了新的乙供物资核对,无法通过");
+                }
+                var liveWorkFeeCheck = $("#liveWorkFeeCheck").val();
+                if (isNotEmpty(liveWorkValue) && liveWorkValue !== liveWorkFeeCheck) {
+                    flag = false;
+                    jp.error("填写了新的带电作业费核对,无法通过");
+                }
+                var demolitionEngineeringProblems = $("#demolitionEngineeringProblems").val();
+                if (isNotEmpty(demolitionValue) && demolitionValue !== demolitionEngineeringProblems) {
+                    flag = false;
+                    jp.error("填写了新的拆除工程问题,无法通过");
+                }
+                var otherProblem = $("#otherProblem").val();
+                if (isNotEmpty(otherValue) && otherValue !== otherProblem) {
+                    flag = false;
+                    jp.error("填写了新的其他问题,无法通过");
+                }
+                if (flag){
+                    jp.prompt("通过", function (message) {
+                        var projectReserveId = $("#projectReserveId").val();
+                        var projectName = $("#projectName").val();
+                        //预算书审前审后数据
+                        var pretrialBudgetTaxInclude = $("#pretrialBudgetTaxInclude").val();
+                        var pretrialBudgetTaxNoInclude = $("#pretrialBudgetTaxNoInclude").val();
+                        var pretrialSupervisionFeeTaxNoInclude = $("#pretrialSupervisionFeeTaxNoInclude").val();
+                        var pretrialDesignFeeTaxNoInclude = $("#pretrialDesignFeeTaxNoInclude").val();
+                        var afterTrialBudgetTaxInclude = $("#afterTrialBudgetTaxInclude").val();
+                        var afterTrialBudgetTaxNoInclude = $("#afterTrialBudgetTaxNoInclude").val();
+                        var afterTrialSupervisionFeeTaxNoInclude = $("#afterTrialSupervisionFeeTaxNoInclude").val();
+                        var afterTrialDesignFeeTaxNoInclude = $("#afterTrialDesignFeeTaxNoInclude").val();
+                        jp.post("${ctx}/cg/reservemanagementcenter/process/actBudgetUnit",
+                            {
+                                "taskId": "${reserveProcess.act.taskId}",
+                                "taskName": "${reserveProcess.act.taskName}",
+                                "taskDefKey": "${reserveProcess.act.taskDefKey}",
+                                "procInsId": "${reserveProcess.act.procInsId}",
+                                "procDefId": "${reserveProcess.act.procDefId}",
+                                "flag": "yes",
+                                "projectReserveId": projectReserveId,
+                                "projectName": projectName,
+                                "pretrialBudgetTaxInclude": pretrialBudgetTaxInclude,
+                                "pretrialBudgetTaxNoInclude": pretrialBudgetTaxNoInclude,
+                                "pretrialSupervisionFeeTaxNoInclude": pretrialSupervisionFeeTaxNoInclude,
+                                "pretrialDesignFeeTaxNoInclude": pretrialDesignFeeTaxNoInclude,
+                                "afterTrialBudgetTaxInclude": afterTrialBudgetTaxInclude,
+                                "afterTrialBudgetTaxNoInclude": afterTrialBudgetTaxNoInclude,
+                                "afterTrialSupervisionFeeTaxNoInclude": afterTrialSupervisionFeeTaxNoInclude,
+                                "afterTrialDesignFeeTaxNoInclude": afterTrialDesignFeeTaxNoInclude,
+                                "comment": window.encodeURI(message)
+                            },
+                            function (data) {
+                                if (data.success) {
+                                    jp.success(data.msg);
+                                    jp.go("${ctx}/act/task/todo");
+                                } else {
+                                    jp.error(data.msg);
+                                }
                             }
-                        }
-                    );
+                        );
 
-                })
+                    })
+                }
             });
             $("#no").click(function () {
                 //预算问题反馈记录
@@ -298,67 +356,111 @@
                                 <td class="width-15 active"><label class="">甲供材优选情况:</label></td>
                                 <td class="width-35">
                                     <form:input path="preferedCase" htmlEscape="false"
-                                                class="form-control number money"/>
+                                                class="form-control number money"
+                                                value="${reserveProcess.preferedCase}"
+                                                onclick="hidePlaceholder(this,'prefered')"
+                                                onblur="showPlaceholder(this,'prefered')"
+                                    />
                                 </td>
                                 <td class="width-15 active"><label class="">甲供转乙供情况:</label></td>
                                 <td class="width-35">
                                     <form:input path="transferSituation" htmlEscape="false"
-                                                class="form-control number money"/>
+                                                class="form-control number money"
+                                                value="${reserveProcess.transferSituation}"
+                                                onclick="hidePlaceholder(this,'transfer')"
+                                                onblur="showPlaceholder(this,'transfer')"
+                                    />
                                 </td>
                             </tr>
                             <tr>
                                 <td class="width-15 active"><label class="">预算模板核对:</label></td>
                                 <td class="width-35">
                                     <form:input path="budgetTemplateCheck" htmlEscape="false"
-                                                class="form-control number money"/>
+                                                class="form-control number money"
+                                                value="${reserveProcess.budgetTemplateCheck}"
+                                                onclick="hidePlaceholder(this,'budget')"
+                                                onblur="showPlaceholder(this,'budget')"
+                                    />
                                 </td>
                                 <td class="width-15 active"><label class="">定额套用核对:</label></td>
                                 <td class="width-35">
                                     <form:input path="quotaApplicationCheck" htmlEscape="false"
-                                                class="form-control number money"/>
+                                                class="form-control number money"
+                                                value="${reserveProcess.quotaApplicationCheck}"
+                                                onclick="hidePlaceholder(this,'quota')"
+                                                onblur="showPlaceholder(this,'quota')"
+                                    />
                                 </td>
                             </tr>
                             <tr>
                                 <td class="width-15 active"><label class="">工作流核对:</label></td>
                                 <td class="width-35">
                                     <form:input path="workLoadCheck" htmlEscape="false"
-                                                class="form-control number money"/>
+                                                class="form-control number money"
+                                                value="${reserveProcess.workLoadCheck}"
+                                                onclick="hidePlaceholder(this,'workLoad')"
+                                                onblur="showPlaceholder(this,'workLoad')"
+                                    />
                                 </td>
                                 <td class="width-15 active"><label class="">取费核对:</label></td>
                                 <td class="width-35">
                                     <form:input path="checkTheFee" htmlEscape="false"
-                                                class="form-control number money"/>
+                                                class="form-control number money"
+                                                value="${reserveProcess.checkTheFee}"
+                                                onclick="hidePlaceholder(this,'check')"
+                                                onblur="showPlaceholder(this,'check')"
+                                    />
                                 </td>
                             </tr>
                             <tr>
                                 <td class="width-15 active"><label class="">甲供物资核对:</label></td>
                                 <td class="width-35">
                                     <form:input path="supplyCheck" htmlEscape="false"
-                                                class="form-control number money"/>
+                                                class="form-control number money"
+                                                value="${reserveProcess.supplyCheck}"
+                                                onclick="hidePlaceholder(this,'supply')"
+                                                onblur="showPlaceholder(this,'supply')"
+                                    />
                                 </td>
                                 <td class="width-15 active"><label class="">乙供物资核对:</label></td>
                                 <td class="width-35">
                                     <form:input path="materialCheck" htmlEscape="false"
-                                                class="form-control number money"/>
+                                                class="form-control number money"
+                                                value="${reserveProcess.materialCheck}"
+                                                onclick="hidePlaceholder(this,'material')"
+                                                onblur="showPlaceholder(this,'material')"
+                                    />
                                 </td>
                             </tr>
                             <tr>
                                 <td class="width-15 active"><label class="">带电作业费核对:</label></td>
                                 <td class="width-35">
                                     <form:input path="liveWorkFeeCheck" htmlEscape="false"
-                                                class="form-control number money"/>
+                                                class="form-control number money"
+                                                value="${reserveProcess.liveWorkFeeCheck}"
+                                                onclick="hidePlaceholder(this,'liveWork')"
+                                                onblur="showPlaceholder(this,'liveWork')"
+                                    />
                                 </td>
                                 <td class="width-15 active"><label class="">拆除工程问题:</label></td>
                                 <td class="width-35">
                                     <form:input path="demolitionEngineeringProblems" htmlEscape="false"
-                                                class="form-control number money"/>
+                                                class="form-control number money"
+                                                value="${reserveProcess.demolitionEngineeringProblems}"
+                                                onclick="hidePlaceholder(this,'demolition')"
+                                                onblur="showPlaceholder(this,'demolition')"
+                                    />
                                 </td>
                             </tr>
                             <tr>
                                 <td class="width-15 active"><label class="">其他问题:</label></td>
                                 <td class="width-35">
                                     <form:input path="otherProblem" htmlEscape="false"
-                                                class="form-control number money"/>
+                                                class="form-control number money"
+                                                value="${reserveProcess.otherProblem}"
+                                                onclick="hidePlaceholder(this,'other')"
+                                                onblur="showPlaceholder(this,'other')"
+                                    />
                                 </td>
                             </tr>
 
@@ -368,7 +470,7 @@
                     <table id="testPicTable"   data-toolbar="#toolbar"></table>
                     <div id="toolbar">
                         <button id="export" class="btn btn-warning">
-                            <i class="fa fa-file-excel-o"></i> 导出甲供材清册
+                            <i class="fa fa-file-excel-o"></i> 导出材清册
                         </button>
                     </div>
                     <table id="dataTable"   data-toolbar="#toolbar"></table>

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

@@ -77,48 +77,115 @@
 				jp.prompt("通过", function (message) {
 					//预算书
 					var budgetStatement = $("input[name='budgetStatement']").val();
+					//拆旧清册
+					var demolition = $("input[name='demolition']").val();
+
 					//项目建议书
 					var projectProposal = $("input[name='projectProposal']").val();
-					var drawings = $("input[name='drawings']").val();
 					//施工图设计说明书
 					var drawingSpecification = $("input[name='drawingSpecification']").val();
-					//拆旧清册
-					var demolition = $("input[name='demolition']").val();
 					//土建现浇审批单
 					var approvalForm = $("input[name='approvalForm']").val();
+					//不停电审批单/停电审批单
+					var powerFailure = $("input[name='powerFailure']").val();
+
+					//可研报告 studyReport
+					var studyReport = $("input[name='studyReport']").val();
+
+					//施工图纸
+					var drawings = $("input[name='drawings']").val();
+
+					//土建预制化审批单
+					var civilPrefabricate = $("input[name='civilPrefabricate']").val();
 
 					var projectReserveId = $("#projectReserveId").val();
 					var projectName = $("#projectName").val();
 
-
 					var material = $("#material").val()
 					var drjgc = $("#drjgc").val()
 					var uid = $("#uid").val()
 
+					var allConditionsPassed = true;
+
+					if (isNotEmpty(budgetStatement)){
+						var values = budgetStatement.split('|');
+						for (var i = 0; i < values.length; i++) {
+							if (!isXlsOrXlsxFilename(values[i])){
+								allConditionsPassed = false;
+								jp.error("上传的预算书的格式应该为:.xls,.xlsx");
+							}
+						}
 
-					if (budgetStatement == ""
-							|| budgetStatement == undefined
-							|| budgetStatement == 'undefined') {
+					}else {
+						allConditionsPassed = false;
 						jp.error("预算书不能为空");
-					}else if (projectProposal == ""
-							|| projectProposal == undefined
-							|| projectProposal == 'undefined'){
-						jp.error("项目建议书不能为空");
-					}else if (drawings == ""
-							|| drawings == undefined
-							|| drawings == 'undefined') {
+					}
+					if (isNotEmpty(projectProposal)){
+						var values = projectProposal.split('|');
+						for (var i = 0; i < values.length; i++) {
+							if (!isDocOrDocxFilename(values[i])){
+								allConditionsPassed = false;
+								jp.error("上传的项目建议书的格式应该为:.doc,.docx");
+							}
+						}
+					}
+
+					if (isNotEmpty(drawings)){
+						// if (!isDwgFilename(drawings)){
+						// 	allConditionsPassed = false;
+						// 	jp.error("上传的施工图纸应该为:.dwg");
+						// }
+					} else {
+						allConditionsPassed = false;
 						jp.error("施工图纸不能为空");
-					}else if (drawingSpecification == ""
-							|| drawingSpecification == undefined
-							|| drawingSpecification == 'undefined') {
+					}
+
+					if (isNotEmpty(drawingSpecification)) {
+						var values = drawingSpecification.split('|');
+						for (var i = 0; i < values.length; i++) {
+							if (!isDocOrDocxFilename(values[i])){
+								allConditionsPassed = false;
+								jp.error("上传的施工图设计说明书的格式应该为:.doc,.docx");
+							}
+						}
+					} else {
+						allConditionsPassed = false;
 						jp.error("施工图设计说明书不能为空");
-					}else if (demolition == ""
-							|| demolition == undefined
-							|| demolition == 'undefined') {
-						jp.error("拆旧清册不能为空");
-					}else if (material == "" & drjgc =="" ){
-						jp.error("甲供材信息不能为空");
+					}
+					if (isNotEmpty(powerFailure)){
+						var values = powerFailure.split('|');
+						for (var i = 0; i < values.length; i++) {
+							if (!isDocOrDocxFilename(values[i])){
+								allConditionsPassed = false;
+								jp.error("上传的不停电审批单/停电审批单的格式应该为:.doc,.docx");
+							}
+						}
 					} else {
+						allConditionsPassed = false;
+						jp.error("不停电审批单/停电审批单不能为空");
+					}
+					var values = approvalForm.split('|');
+					for (var i = 0; i < values.length; i++) {
+						if (!isDocOrDocxFilename(values[i])){
+							allConditionsPassed = false;
+							jp.error("上传的土建现浇审批单的格式应该为:.doc,.docx");
+						}
+					}
+
+					var values2 = demolition.split('|');
+					for (var i = 0; i < values2.length; i++) {
+						if (!isXlsOrXlsxFilename(values2[i])){
+							allConditionsPassed = false;
+							jp.error("上传的拆旧清册的格式应该为:.xls,.xlsx");
+						}
+					}
+
+					if (material == "" & drjgc =="" ){
+						allConditionsPassed = false;
+						jp.error("甲供材信息不能为空");
+					}
+
+					if (allConditionsPassed) {
 						jp.post("${ctx}/cg/reservemanagementcenter/process/actDesignUnitNew",
 								{
 									"taskId": "${reserveProcess.act.taskId}",
@@ -132,10 +199,13 @@
 									"projectName":projectName,
 									"budgetStatement":budgetStatement,
 									"projectProposal":projectProposal,
+									"studyReport":studyReport,
 									"drawings":drawings,
 									"drawingSpecification":drawingSpecification,
 									"demolition":demolition,
 									"approvalForm":approvalForm,
+									"civilPrefabricate":civilPrefabricate,
+									"powerFailure":powerFailure,
 									"material":material,
 									"drjgc":drjgc,
 									"comment": window.encodeURI(message)
@@ -212,6 +282,47 @@
 					}
 				});
 			});
+
+			//判断是否是doc,docx
+			function isDocOrDocxFilename(filename) {
+				// 使用正则表达式匹配最后一个小数点之后的字符
+				var extension = filename.split('.').pop().toLowerCase();
+
+				// 检查扩展名是否为 "doc" 或 "docx"
+				return extension === "doc" || extension === "docx";
+			};
+			//判断是否是xls,xlsx
+			function isXlsOrXlsxFilename(filename) {
+				// 使用正则表达式匹配最后一个小数点之后的字符
+				var extension = filename.split('.').pop().toLowerCase();
+
+				// 检查扩展名是否为 "doc" 或 "docx"
+				return extension === "xls" || extension === "xlsx";
+			};
+			//判断是否是.dwg
+			function isDwgFilename(filename) {
+				// 使用正则表达式匹配最后一个小数点之后的字符
+				var extension = filename.split('.').pop().toLowerCase();
+
+				// 检查扩展名是否为 "doc" 或 "docx"
+				return extension === "dwg";
+			};
+			function isEmpty(value) {
+				let result = false;
+				if (value == null || value == undefined) {
+					result = true;
+				}
+				if (typeof value == 'string' && (value.replace(/\s+/g, "") == "" || value == "")) {
+					result = true;
+				}
+				if (typeof value == "object" && value instanceof Array && value.length === 0) {
+					result = true;
+				}
+				return result;
+			};
+			function isNotEmpty (value) {
+				return !isEmpty(value)
+			}
 		});
 	</script>
 </head>
@@ -468,28 +579,42 @@
 									</td>
 								</tr>
 								<tr>
+									<td class="width-15 active"><label class="">可研报告:</label></td>
+									<td class="width-35">
+										<sys:fileUpload path="studyReport"  value="${reserveProcess.studyReport}" type="*" uploadPath="/personnelTurnover"  readonly="false"/>
+									</td>
 									<td class="width-15 active"><label class="">施工图纸:</label></td>
 									<td class="width-35">
-										<sys:fileUpload path="drawings"  value="${reserveProcess.drawings}" type="*" uploadPath="/personnelTurnover"  readonly="false"/>
+										<sys:fileUpload path="drawings"  value="${reserveProcess.drawings}" type="all" uploadPath="/personnelTurnover"  readonly="false"/>
 									</td>
+								</tr>
+								<tr>
 									<td class="width-15 active"><label class="">施工图设计说明书:</label></td>
 									<td class="width-35">
 										<sys:fileUpload path="drawingSpecification"  value="${reserveProcess.drawingSpecification}" type="*" uploadPath="/personnelTurnover"  readonly="false"/>
 									</td>
-								</tr>
-
-								<tr>
 									<td class="width-15 active"><label class="">拆旧清册:</label></td>
 									<td class="width-35">
 										<sys:fileUpload path="demolition"  value="${reserveProcess.demolition}" type="*" uploadPath="/personnelTurnover"  readonly="false"/>
 									</td>
+								</tr>
+
+								<tr>
 									<td class="width-15 active"><label class="">土建现浇审批单:</label></td>
 									<td class="width-35">
-										<sys:fileUpload path="approvalForm"  value="${reserveProcess.approvalForm}" type="*" uploadPath="/personnelTurnover"  readonly="false"/>
+										<sys:fileUpload path="approvalForm"  value="${reserveProcess.approvalForm}" type="*" uploadPath="/personnelTurnover" readonly="false"/>
+									</td>
+									<td class="width-15 active"><label class="">土建预制化审批单:</label></td>
+									<td class="width-35">
+										<sys:fileUpload path="civilPrefabricate"  value="${reserveProcess.civilPrefabricate}" type="*" uploadPath="/personnelTurnover"  readonly="false"/>
 									</td>
 								</tr>
 
 								<tr>
+									<td class="width-15 active"><label class="">不停电审批单/停电审批单:</label></td>
+									<td class="width-35">
+										<sys:fileUpload path="powerFailure"  value="${reserveProcess.powerFailure}" type="*" uploadPath="/personnelTurnover"  readonly="false"/>
+									</td>
 									<td class="width-15 active"><label class="">甲供材清册:</label></td>
 									<td class="width-35">
 										<a id="moreImport" class="btn btn-info">
@@ -507,7 +632,7 @@
 						<table id="testPicTable"   data-toolbar="#toolbar"></table>
 						<div id="toolbar">
 							<button id="export" class="btn btn-warning">
-								<i class="fa fa-file-excel-o"></i> 导出甲供材清册
+								<i class="fa fa-file-excel-o"></i> 导出材清册
 							</button>
 						</div>
 						<table id="dataTable"   data-toolbar="#toolbar"></table>

+ 207 - 3
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/drawingReview.js

@@ -98,6 +98,25 @@ $(document).ready(function() {
 					   }
 
 				   }, {
+					   field: 'studyReport',
+					   title: '可研报告',
+					   formatter:function(value, row , index){
+						   if (value){
+							   var valueArray = value.split("|");
+							   var labelArray = [];
+							   for(var i =0 ; i<valueArray.length; i++){
+								   if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(valueArray[i]))
+								   {
+									   labelArray[i] = "<a href=\""+valueArray[i]+"\" url=\""+valueArray[i]+"\" target=\"_blank\">"+decodeURIComponent(valueArray[i].substring(valueArray[i].lastIndexOf("/")+1))+"</a>"
+								   }else{
+									   labelArray[i] = '<img   onclick="jp.showPic(\''+valueArray[i]+'\')"'+' height="50px" src="'+valueArray[i]+'">';
+								   }
+							   }
+							   return labelArray.join(" ");
+						   }
+					   }
+
+				   },{
 					   field: 'drawings',
 					   title: '图纸',
 					   formatter:function(value, row , index){
@@ -120,7 +139,6 @@ $(document).ready(function() {
 					   field: 'drawingSpecification',
 					   title: '施工图设计说明书',
 					   formatter:function(value, row , index){
-						   console.log(value);
 						   if (value){
 							   var valueArray = value.split("|");
 							   var labelArray = [];
@@ -139,7 +157,6 @@ $(document).ready(function() {
 					   field: 'demolition',
 					   title: '拆旧清册',
 					   formatter:function(value, row , index){
-						   console.log(value);
 						   if (value){
 							   var valueArray = value.split("|");
 							   var labelArray = [];
@@ -158,7 +175,43 @@ $(document).ready(function() {
 					   field: 'approvalForm',
 					   title: '土建现浇审批单',
 					   formatter:function(value, row , index){
-						   console.log(value);
+						   if (value){
+							   var valueArray = value.split("|");
+							   var labelArray = [];
+							   for(var i =0 ; i<valueArray.length; i++){
+								   if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(valueArray[i]))
+								   {
+									   labelArray[i] = "<a href=\""+valueArray[i]+"\" url=\""+valueArray[i]+"\" target=\"_blank\">"+decodeURIComponent(valueArray[i].substring(valueArray[i].lastIndexOf("/")+1))+"</a>"
+								   }else{
+									   labelArray[i] = '<img   onclick="jp.showPic(\''+valueArray[i]+'\')"'+' height="50px" src="'+valueArray[i]+'">';
+								   }
+							   }
+							   return labelArray.join(" ");
+						   }
+					   }
+				   },
+				   {
+					   field: 'civilPrefabricate',
+					   title: '土建预制化审批单',
+					   formatter:function(value, row , index){
+						   if (value){
+							   var valueArray = value.split("|");
+							   var labelArray = [];
+							   for(var i =0 ; i<valueArray.length; i++){
+								   if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(valueArray[i]))
+								   {
+									   labelArray[i] = "<a href=\""+valueArray[i]+"\" url=\""+valueArray[i]+"\" target=\"_blank\">"+decodeURIComponent(valueArray[i].substring(valueArray[i].lastIndexOf("/")+1))+"</a>"
+								   }else{
+									   labelArray[i] = '<img   onclick="jp.showPic(\''+valueArray[i]+'\')"'+' height="50px" src="'+valueArray[i]+'">';
+								   }
+							   }
+							   return labelArray.join(" ");
+						   }
+					   }
+				   }, {
+					   field: 'powerFailure',
+					   title: '不停电审批单/停电审批单',
+					   formatter:function(value, row , index){
 						   if (value){
 							   var valueArray = value.split("|");
 							   var labelArray = [];
@@ -370,6 +423,157 @@ $(document).ready(function() {
         jp.openViewDialog('查看图片管理', "${ctx}/managementcenter/upload/imagesForm?id=" + id, '800px', '500px');
  }
 
+ var drawingValue = ''
+ var communicationValue = ''
+ var civilValue = ''
+ var liveWorkValue = ''
+ var otherValue = ''
+
+function hidePlaceholder(inputElement,type) {
+	if (type === 'drawing') {
+		var drawingAndSiteProblem = $("#drawingAndSiteProblem").val();
+		if (inputElement.value === drawingAndSiteProblem & drawingValue === drawingAndSiteProblem) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+	if (type === 'communication') {
+		var communicationProblem = $("#communicationProblem").val();
+		if (inputElement.value === communicationProblem & communicationValue === communicationProblem) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+	if (type === 'civil') {
+		var civilPrefabricateProblem = $("#civilPrefabricateProblem").val();
+		if (inputElement.value === civilPrefabricateProblem & civilValue === civilPrefabricateProblem) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+	if (type === 'liveWork') {
+		var liveWorkNumProblem = $("#liveWorkNumProblem").val();
+		if (inputElement.value === liveWorkNumProblem & liveWorkValue === liveWorkNumProblem) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+	if (type === 'other') {
+		var projectManagerOtherProblem = $("#projectManagerOtherProblem").val();
+		if (inputElement.value === projectManagerOtherProblem & otherValue === projectManagerOtherProblem) {
+			inputElement.value = "";
+			inputElement.style.backgroundColor = "white";
+		}
+	}
+}
+
+function showPlaceholder(inputElement,type) {
+
+  	if (type === 'drawing') {
+		if (isNotEmpty(drawingValue)){
+			if (inputElement.value === "") {
+				inputElement.value = drawingValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
+
+	}
+	if (type === 'communication') {
+		if (isNotEmpty(communicationValue)){
+			if (inputElement.value === "") {
+				inputElement.value = communicationValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
+
+	}
+	if (type === 'civil') {
+		if (isNotEmpty(civilValue)){
+			if (inputElement.value === "") {
+				inputElement.value = civilValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
+
+	}
+	if (type === 'liveWork') {
+		if (isNotEmpty(liveWorkValue)){
+			if (inputElement.value === "") {
+				inputElement.value = liveWorkValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
+
+	}
+	if (type === 'other') {
+		if (isNotEmpty(otherValue)){
+			if (inputElement.value === "") {
+				inputElement.value = otherValue;
+				inputElement.style.backgroundColor = '#f0f0f0';
+			}
+		}
+
+	}
+}
+
+// 在页面加载完成后显示灰色提示文本
+window.addEventListener('load', function() {
+	var drawingInput = document.getElementById('drawingAndSiteProblem');
+	if (isNotEmpty(drawingInput.value)){
+		drawingValue = drawingInput.value
+		drawingInput.style.backgroundColor = '#f0f0f0';
+		showPlaceholder(drawingInput,'drawing');
+	}
+
+	var communicationInput = document.getElementById('communicationProblem');
+	if (isNotEmpty(communicationInput.value)) {
+		communicationValue = communicationInput.value
+		communicationInput.style.backgroundColor = '#f0f0f0';
+
+		showPlaceholder(communicationInput,'communication');
+	}
+
+	var civilInput = document.getElementById('civilPrefabricateProblem');
+	if (isNotEmpty(civilInput.value)) {
+		civilValue = civilInput.value
+		civilInput.style.backgroundColor = '#f0f0f0';
+
+		showPlaceholder(civilInput,'civil');
+	}
+	var liveWorkInput = document.getElementById('liveWorkNumProblem');
+	if (isNotEmpty(liveWorkInput.value)) {
+		liveWorkValue = liveWorkInput.value
+		liveWorkInput.style.backgroundColor = '#f0f0f0';
+
+		showPlaceholder(liveWorkInput,'liveWork');
+	}
+	var otherInput = document.getElementById('projectManagerOtherProblem');
+	if (isNotEmpty(otherInput.value)) {
+		otherValue = otherInput.value
+		otherInput.style.backgroundColor = '#f0f0f0';
+
+		showPlaceholder(otherInput,'other');
+	}
+
+});
+
+function isEmpty(value) {
+	let result = false;
+	if (value == null || value == undefined) {
+		result = true;
+	}
+	if (typeof value == 'string' && (value.replace(/\s+/g, "") == "" || value == "")) {
+		result = true;
+	}
+	if (typeof value == "object" && value instanceof Array && value.length === 0) {
+		result = true;
+	}
+	return result;
+};
+function isNotEmpty (value) {
+	return !isEmpty(value)
+}
+
 
 
 </script>

+ 83 - 29
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/drawingReview.jsp

@@ -16,27 +16,55 @@
 			});
 
 			$("#agree").click(function () {
-				jp.prompt("通过", function (message) {
-					jp.post("${ctx}/cg/reservemanagementcenter/process/actDrawingReview",
-						{
-							"taskId": "${reserveProcess.act.taskId}",
-							"taskName": "${reserveProcess.act.taskName}",
-							"taskDefKey": "${reserveProcess.act.taskDefKey}",
-							"procInsId": "${reserveProcess.act.procInsId}",
-							"procDefId": "${reserveProcess.act.procDefId}",
-							"flag": "yes",
-							"comment": window.encodeURI(message)
-						},
-						function (data) {
-							if (data.success) {
-								jp.success(data.msg);
-								jp.go("${ctx}/act/task/todo");
-							} else {
-								jp.error(data.msg);
-							}
-						}
-				);
-				})
+				var flag = true
+				var drawingAndSiteProblem = $("#drawingAndSiteProblem").val();
+				if (isNotEmpty(drawingValue) && drawingValue !== drawingAndSiteProblem) {
+					flag = false;
+					jp.error("填写了新的图纸与现场一致性问题,无法通过");
+				}
+				var communicationProblem = $("#communicationProblem").val();
+				if (isNotEmpty(communicationValue) && communicationValue !== communicationProblem) {
+					flag = false;
+					jp.error("填写了新的自动化通信方式问题,无法通过");
+				}
+				var civilPrefabricateProblem = $("#civilPrefabricateProblem").val();
+				if (isNotEmpty(civilValue) && civilValue !== civilPrefabricateProblem) {
+					flag = false;
+					jp.error("填写了新的土建预制化问题,无法通过");
+				}
+				var liveWorkNumProblem = $("#liveWorkNumProblem").val();
+				if (isNotEmpty(liveWorkValue) && liveWorkValue !== liveWorkNumProblem) {
+					flag = false;
+					jp.error("填写了新的带电作业次数问题,无法通过");
+				}
+				var projectManagerOtherProblem = $("#projectManagerOtherProblem").val();
+				if (isNotEmpty(otherValue) && otherValue !== projectManagerOtherProblem) {
+					flag = false;
+					jp.error("填写了新的其他问题,无法通过");
+				}
+				if (flag){
+					jp.prompt("通过", function (message) {
+						jp.post("${ctx}/cg/reservemanagementcenter/process/actDrawingReview",
+								{
+									"taskId": "${reserveProcess.act.taskId}",
+									"taskName": "${reserveProcess.act.taskName}",
+									"taskDefKey": "${reserveProcess.act.taskDefKey}",
+									"procInsId": "${reserveProcess.act.procInsId}",
+									"procDefId": "${reserveProcess.act.procDefId}",
+									"flag": "yes",
+									"comment": window.encodeURI(message)
+								},
+								function (data) {
+									if (data.success) {
+										jp.success(data.msg);
+										jp.go("${ctx}/act/task/todo");
+									} else {
+										jp.error(data.msg);
+									}
+								}
+						);
+					})
+				}
 			});
 			$("#disagree").click(function () {
 				jp.prompt("不通过", function (message) {
@@ -47,6 +75,7 @@
 					var civilPrefabricateProblem = $("#civilPrefabricateProblem").val();
 					var liveWorkNumProblem = $("#liveWorkNumProblem").val();
 					var projectManagerOtherProblem = $("#projectManagerOtherProblem").val();
+					console.log('drawingAndSiteProblem', drawingAndSiteProblem)
 
 
 					jp.post("${ctx}/cg/reservemanagementcenter/process/actDrawingReview",
@@ -123,6 +152,11 @@
 
 		});
 	</script>
+	<style>
+		.gray-background {
+			background-color: gray; /* 初始背景颜色为灰色 */
+		}
+	</style>
 </head>
 <body class="bg-white">
 	<div class="wrapper wrapper-content">
@@ -261,31 +295,51 @@
 									<td class="width-15 active"><label class="">图纸与现场一致性问题:</label></td>
 									<td class="width-35">
 										<form:input path="drawingAndSiteProblem" htmlEscape="false"
-													class="form-control number money"/>
+													class="form-control number money"
+													value="${reserveProcess.drawingAndSiteProblem}"
+													onclick="hidePlaceholder(this,'drawing')"
+													onblur="showPlaceholder(this,'drawing')"
+										/>
 									</td>
 									<td class="width-15 active"><label class="">自动化通信方式问题:</label></td>
 									<td class="width-35">
 										<form:input path="communicationProblem" htmlEscape="false"
-													class="form-control number money"/>
+													class="form-control number money"
+													value="${reserveProcess.communicationProblem}"
+													onclick="hidePlaceholder(this,'communication')"
+													onblur="showPlaceholder(this,'communication')"
+										/>
 									</td>
 								</tr>
 								<tr>
 									<td class="width-15 active"><label class="">土建预制化问题:</label></td>
 									<td class="width-35">
 										<form:input path="civilPrefabricateProblem" htmlEscape="false"
-													class="form-control number money"/>
+													class="form-control number money"
+													value="${reserveProcess.civilPrefabricateProblem}"
+													onclick="hidePlaceholder(this,'civil')"
+													onblur="showPlaceholder(this,'civil')"
+										/>
 									</td>
 									<td class="width-15 active"><label class="">带电作业次数问题:</label></td>
 									<td class="width-35">
 										<form:input path="liveWorkNumProblem" htmlEscape="false"
-													class="form-control number money"/>
+													class="form-control number money"
+													value="${reserveProcess.liveWorkNumProblem}"
+													onclick="hidePlaceholder(this,'liveWork')"
+													onblur="showPlaceholder(this,'liveWork')"
+										/>
 									</td>
 								</tr>
 								<tr>
 									<td class="width-15 active"><label class="">其他问题:</label></td>
 									<td class="width-35">
 										<form:input path="projectManagerOtherProblem" htmlEscape="false"
-													class="form-control number money"/>
+													class="form-control number money"
+													value="${reserveProcess.projectManagerOtherProblem}"
+													onclick="hidePlaceholder(this,'other')"
+													onblur="showPlaceholder(this,'other')"
+										/>
 									</td>
 								</tr>
 
@@ -298,7 +352,7 @@
 						<table id="testPicTable"   data-toolbar="#toolbar"></table>
 						<div id="toolbar">
 							<button id="export" class="btn btn-warning">
-								<i class="fa fa-file-excel-o"></i> 导出甲供材清册
+								<i class="fa fa-file-excel-o"></i> 导出材清册
 							</button>
 						</div>
 						<table id="dataTable"   data-toolbar="#toolbar"></table>
@@ -308,8 +362,8 @@
 								<div class="form-group text-center">
 									<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="通过"/>&nbsp;
 									<input id="disagree" class="btn  btn-danger btn-lg btn-parsley" type="submit" value="不通过"/>
-									<input id="cancel" class="btn  btn-danger btn-lg btn-parsley" type="submit" value="取消"/>
-									<input id="pending" class="btn  btn-danger btn-lg btn-parsley" type="submit" value="待定"/>
+									<input id="cancel" class="btn  btn-danger btn-lg btn-parsley" type="submit" value="取消项目"/>
+									<input id="pending" class="btn  btn-danger btn-lg btn-parsley" type="submit" value="待定项目"/>
 								</div>
 							</div>
 						</div>

+ 3 - 3
src/main/webapp/webpage/modules/cg/reservemanagementcenter/reserveManage/summaryStatistics/test/drawingReviewTest.jsp

@@ -250,7 +250,7 @@
 						<table id="testPicTable"   data-toolbar="#toolbar"></table>
 						<div id="toolbar">
 							<button id="export" class="btn btn-warning">
-								<i class="fa fa-file-excel-o"></i> 导出甲供材清册
+								<i class="fa fa-file-excel-o"></i> 导出材清册
 							</button>
 						</div>
 						<table id="dataTable"   data-toolbar="#toolbar"></table>
@@ -260,8 +260,8 @@
 								<div class="form-group text-center">
 									<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="通过"/>&nbsp;
 									<input id="disagree" class="btn  btn-danger btn-lg btn-parsley" type="submit" value="不通过"/>
-									<input id="cancel" class="btn  btn-danger btn-lg btn-parsley" type="submit" value="取消"/>
-									<input id="pending" class="btn  btn-danger btn-lg btn-parsley" type="submit" value="待定"/>
+									<input id="cancel" class="btn  btn-danger btn-lg btn-parsley" type="submit" value="取消项目"/>
+									<input id="pending" class="btn  btn-danger btn-lg btn-parsley" type="submit" value="待定项目"/>
 								</div>
 							</div>
 						</div>

+ 1 - 1
src/main/webapp/webpage/modules/cg/statisticalTable/plotProgressStats/plotProgressStats.js

@@ -250,7 +250,7 @@ function edit(id) {//没有权限时,不显示确定按钮
     if (id == undefined) {
         id = getIdSelections();
     }
-    jp.openSaveDialog('编辑储备项目基本信息', "${ctx}/cg/reservemanagementcenter/reserveManage/form?id=" + id, '800px', '500px');
+    jp.openSaveDialog('编辑储备项目基本信息', "${ctx}/cg/reservemanagementcenter/plotProgressStats/form?id=" + id, '800px', '500px');
 }
 
 function jlEdit(id) {//没有权限时,不显示确定按钮

+ 6 - 16
src/main/webapp/webpage/modules/cg/statisticalTable/plotProgressStats/plotProgressStats.jsp

@@ -61,26 +61,16 @@
 
 	<!-- 工具栏 -->
 	<div id="toolbar">
-			<%--<shiro:hasPermission name="cg:reservemanagementcenter:reserveManage:add">
-				<button id="add" class="btn btn-primary" onclick="add()">
-					<i class="glyphicon glyphicon-plus"></i> 新增
-				</button>
-			</shiro:hasPermission>
-			<shiro:hasPermission name="cg:reservemanagementcenter:reserveManage:edit">
+<%--			<shiro:hasPermission name="cg:reservemanagementcenter:reserveManage:add">--%>
+<%--				<button id="add" class="btn btn-primary" onclick="add()">--%>
+<%--					<i class="glyphicon glyphicon-plus"></i> 新增--%>
+<%--				</button>--%>
+<%--			</shiro:hasPermission>--%>
+			<shiro:hasPermission name="cg:reservemanagementcenter:plotProgressStats:edit">
 				<button id="edit" class="btn btn-primary" onclick="edit()">
 					<i class="glyphicon glyphicon-edit"></i> 修改 <!--专职修改-->
 				</button>
 			</shiro:hasPermission>
-			<shiro:hasPermission name="sg:managementcenter:reserveManagement:jlEdit">
-				<button id="jlEdit" class="btn btn-primary" onclick="jlEdit()">
-					<i class="glyphicon glyphicon-edit"></i> 修改 <!--经理修改-->
-				</button>
-			</shiro:hasPermission>
-			<shiro:hasPermission name="cg:reservemanagementcenter:reserveManage:del">
-				<button id="remove" class="btn btn-danger" onclick="deleteAll()">
-					<i class="glyphicon glyphicon-remove"></i> 删除
-				</button>
-			</shiro:hasPermission>--%>
 			<shiro:hasPermission name="cg:reservemanagementcenter:plotProgressStats:del">
 				<button id="remove" class="btn btn-danger" onclick="deleteAll()">
 					<i class="glyphicon glyphicon-remove"></i> 删除

+ 227 - 0
src/main/webapp/webpage/modules/cg/statisticalTable/plotProgressStats/plotProgressStatsModifyByzz.jsp

@@ -0,0 +1,227 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>修改储备项目出图进度统计表信息</title>
+	<meta name="decorator" content="ani"/>
+	<script type="text/javascript">
+
+		$(document).ready(function() {
+
+	        $('#beginDate').datetimepicker({
+				 format: "YYYY-MM-DD HH:mm:ss"
+		    });
+	        $('#endDate').datetimepicker({
+				 format: "YYYY-MM-DD HH:mm:ss"
+		    });
+		});
+		function save() {
+			var isValidate = jp.validateForm('#inputForm');//校验表单
+			if(!isValidate){
+				return false;
+			}else{
+				jp.loading();
+				jp.post("${ctx}/cg/reservemanagementcenter/plotProgressStats/update",$('#inputForm').serialize(),function(data){
+					if(data.success){
+						jp.getParent().refresh();
+						var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
+						parent.layer.close(dialogIndex);
+						jp.success(data.msg)
+
+					}else{
+						jp.error(data.msg);
+					}
+				})
+			}
+        }
+	</script>
+</head>
+<body class="bg-white">
+<form:form id="inputForm" modelAttribute="budgetStats" class="form-horizontal">
+	<form:hidden path="id"/>
+	<table class="table table-bordered">
+		<tbody>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">储备项目基本信息:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">项目年份:</label></td>
+			<td class="width-35">
+				<form:input path="projectYear" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">项目性质:</label></td>
+			<td class="width-35">
+				<form:input path="projectNature" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">需求单位:</label></td>
+			<td class="width-35">
+				<form:input path="demandUnit" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">区域:</label></td>
+			<td class="width-35">
+				<form:input path="district" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">项目分组:</label></td>
+			<td class="width-35">
+				<form:input path="projectGroup" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">业主储备项目经理:</label></td>
+			<td class="width-35">
+				<form:input path="projectManager" readonly="true" htmlEscape="false"    class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">储备批次:</label></td>
+			<td class="width-35">
+				<form:input path="reserveBatches" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">供电区域:</label></td>
+			<td class="width-35">
+				<form:input path="blockSupply" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class=""><font color="red">*</font>网格编号:</label></td>
+			<td class="width-35">
+				<form:input path="gridNumber" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>单元格编号:</label></td>
+			<td class="width-35">
+				<form:input path="cellNumber" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class=""><font color="red">*</font>项目储备编号:</label></td>
+			<td class="width-35">
+				<form:input path="projectReserveId" htmlEscape="false"  readonly="true"  class="form-control required"/>
+			</td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>项目名称:</label></td>
+			<td class="width-35">
+				<form:input path="projectName" htmlEscape="false"    class="form-control required" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class=""><font color="red">*</font>国网项目编码:</label></td>
+			<td class="width-35">
+				<form:input path="stateGridProjectCode" htmlEscape="false"  readonly="true"  class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class=""><font color="red">*</font>国网项目名称:</label></td>
+			<td class="width-35">
+				<form:input path="stateGridProjectName" htmlEscape="false"  readonly="true"  class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class=""><font color="red">*</font>建设必要性及内容:</label></td>
+			<td class="width-35">
+				<form:input path="constructionNecessityAndContent" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">变电站名称:</label></td>
+			<td class="width-35">
+				<form:input path="substationName" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">线路名称:</label></td>
+			<td class="width-35">
+				<form:input path="circuitName" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">网架项目划分:</label></td>
+			<td class="width-35">
+				<form:input path="netRackProjectDivide" htmlEscape="false"    class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">需求类型:</label></td>
+			<td class="width-35">
+				<form:input path="requirementType" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">费用估算:</label></td>
+			<td class="width-35">
+				<form:input path="costEstimate" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="basicRemarks" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">储备进度:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">储备进度:</label></td>
+			<td class="width-35">
+				<form:input path="reserveProgress" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">项目是否纳入实施计划:</label></td>
+			<td class="width-35">
+				<form:input path="implementPlan" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">初定实施批次:</label></td>
+			<td class="width-35">
+				<form:input path="implementBatch" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td colspan="4" class="width-15 active"><label class="">出图计划:</label></td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">是否需出纸质图:</label></td>
+			<td class="width-35">
+				<form:input path="needPaperDrawing" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">要求移交纸质图纸时间:</label></td>
+			<td class="width-35">
+				<form:input path="askPaperDrawingTime" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">是否移交纸质图:</label></td>
+			<td class="width-35">
+				<form:input path="paperDrawing" htmlEscape="false" class="form-control"/>
+			</td>
+			<td class="width-15 active"><label class="">纸质图移交时间:</label></td>
+			<td class="width-35">
+				<form:input path="paperDrawingTime" htmlEscape="false" class="form-control" />
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">是否需出规划报批图:</label></td>
+			<td class="width-35">
+				<form:input path="arrivePlanAndApprovalDrawing" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+			<td class="width-15 active"><label class="">要求移交规划报批图时间:</label></td>
+			<td class="width-35">
+				<form:input path="askPlanAndApprovalDrawingTime" htmlEscape="false" class="form-control" readonly="true"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">是否移交规划报批图:</label></td>
+			<td class="width-35">
+				<form:input path="planAndApprovalDrawing" htmlEscape="false" class="form-control" />
+			</td>
+			<td class="width-15 active"><label class="">规划报批图移交时间:</label></td>
+			<td class="width-35">
+				<form:input path="planAndApprovalDrawingTime" htmlEscape="false" class="form-control" />
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="">备注:</label></td>
+			<td class="width-35">
+				<form:input path="remarks" htmlEscape="false" class="form-control" />
+			</td>
+		</tr>
+
+		</tbody>
+	</table>
+</form:form>
+</body>
+</html>