Przeglądaj źródła

隐蔽工程量管理、加工物资管理、暂定材料价管理增删改查展示依据性资料信息。
全过程咨询文件管理添加隐蔽工程量管理、加工物资管理、暂定材料价管理模块展示内容

user5 4 lat temu
rodzic
commit
adacc3d2ce
44 zmienionych plików z 2631 dodań i 91 usunięć
  1. 1 1
      src/main/java/com/jeeplus/modules/projectVisa/web/ProjectClaimController.java
  2. 28 4
      src/main/java/com/jeeplus/modules/projectcontentinfo/web/ProjectcontentinfoController.java
  3. 32 6
      src/main/java/com/jeeplus/modules/projectrecord/web/armorForMaterials/ArmorForMaterialsController.java
  4. 34 6
      src/main/java/com/jeeplus/modules/projectrecord/web/concealProject/ConcealProjectController.java
  5. 34 13
      src/main/java/com/jeeplus/modules/projectrecord/web/contractMaterial/MaterialController.java
  6. 140 0
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentArmorSummarizingController.java
  7. 140 0
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentConcealSummarizingController.java
  8. 141 0
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentMaterialSummarizingController.java
  9. 2 0
      src/main/java/com/jeeplus/modules/workcontent/dao/WorkConcealProjectDao.java
  10. 2 0
      src/main/java/com/jeeplus/modules/workcontent/dao/WorkFiveDirectionsAffirmDao.java
  11. 6 0
      src/main/java/com/jeeplus/modules/workcontent/dao/WorkMaterialsPriceDao.java
  12. 36 0
      src/main/java/com/jeeplus/modules/workcontent/entity/WorkConcealProject.java
  13. 27 0
      src/main/java/com/jeeplus/modules/workcontent/entity/WorkFiveDirectionsAffirm.java
  14. 27 0
      src/main/java/com/jeeplus/modules/workcontent/entity/WorkMaterialsPrice.java
  15. 4 0
      src/main/java/com/jeeplus/modules/workcontent/service/WorkConcealProjectService.java
  16. 4 0
      src/main/java/com/jeeplus/modules/workcontent/service/WorkFiveDirectionsAffirmService.java
  17. 4 0
      src/main/java/com/jeeplus/modules/workcontent/service/WorkMaterialsPriceService.java
  18. 23 0
      src/main/java/com/jeeplus/modules/workcontent/web/WorkConcealProjectController.java
  19. 21 0
      src/main/java/com/jeeplus/modules/workcontent/web/WorkFiveDirectionsAffirmController.java
  20. 21 0
      src/main/java/com/jeeplus/modules/workcontent/web/WorkMaterialsPriceController.java
  21. 30 6
      src/main/resources/mappings/modules/workcontent/WorkConcealProjectDao.xml
  22. 26 5
      src/main/resources/mappings/modules/workcontent/WorkFiveDirectionsAffirmDao.xml
  23. 27 6
      src/main/resources/mappings/modules/workcontent/WorkMaterialsPriceDao.xml
  24. 126 6
      src/main/webapp/webpage/modules/projectrecord/armorForMaterials/armorForMaterialsForm.jsp
  25. 2 3
      src/main/webapp/webpage/modules/projectrecord/armorForMaterials/armorForMaterialsList.jsp
  26. 1 1
      src/main/webapp/webpage/modules/projectrecord/claim/projectClaimForm.jsp
  27. 2 3
      src/main/webapp/webpage/modules/projectrecord/concealProject/concealProjectList.jsp
  28. 126 6
      src/main/webapp/webpage/modules/projectrecord/concealProject/workContentForm.jsp
  29. 3 3
      src/main/webapp/webpage/modules/projectrecord/contractMaterial/materialList.jsp
  30. 124 6
      src/main/webapp/webpage/modules/projectrecord/contractMaterial/workMaterialForm.jsp
  31. 371 0
      src/main/webapp/webpage/modules/projectrecord/summarizing/armorProjectRecordsList.jsp
  32. 5 2
      src/main/webapp/webpage/modules/projectrecord/summarizing/claimSumamarizingProjectRecordsList.jsp
  33. 371 0
      src/main/webapp/webpage/modules/projectrecord/summarizing/concealProjectRecordsList.jsp
  34. 4 1
      src/main/webapp/webpage/modules/projectrecord/summarizing/designSumamarizingProjectRecordsList.jsp
  35. 5 2
      src/main/webapp/webpage/modules/projectrecord/summarizing/distributionSumamarizingProjectRecordsList.jsp
  36. 371 0
      src/main/webapp/webpage/modules/projectrecord/summarizing/materialProjectRecordsList.jsp
  37. 3 0
      src/main/webapp/webpage/modules/projectrecord/summarizing/sumamarizingProjectRecordsList.jsp
  38. 4 1
      src/main/webapp/webpage/modules/projectrecord/summarizing/visaSumamarizingProjectRecordsList.jsp
  39. 9 9
      src/main/webapp/webpage/modules/projectrecord/summarizing/workContentView.jsp
  40. 7 1
      src/main/webapp/webpage/modules/projectrecord/workContentFromAndView/workContentForm.jsp
  41. 122 0
      src/main/webapp/webpage/modules/workcontent/workProjectArmorListView.jsp
  42. 58 0
      src/main/webapp/webpage/modules/workcontent/workProjectClaimListView.jsp
  43. 51 0
      src/main/webapp/webpage/modules/workcontent/workProjectConcealListView.jsp
  44. 56 0
      src/main/webapp/webpage/modules/workcontent/workProjectMaterialListView.jsp

+ 1 - 1
src/main/java/com/jeeplus/modules/projectVisa/web/ProjectClaimController.java

@@ -307,7 +307,7 @@ public class ProjectClaimController extends BaseController {
         }
         model.addAttribute("signList", signList);
         model.addAttribute("investmentCostList", list);
-        String viewPath = "modules/workcontent/workProjectDesignListView";
+        String viewPath = "modules/workcontent/workProjectClaimListView";
         return viewPath;
     }
 

Plik diff jest za duży
+ 28 - 4
src/main/java/com/jeeplus/modules/projectcontentinfo/web/ProjectcontentinfoController.java


+ 32 - 6
src/main/java/com/jeeplus/modules/projectrecord/web/armorForMaterials/ArmorForMaterialsController.java

@@ -11,11 +11,15 @@ import com.jeeplus.modules.projectVisa.entity.ProjectVisa;
 import com.jeeplus.modules.projectVisa.entity.VisaTreeData;
 import com.jeeplus.modules.projectVisa.service.ProjectVisaService;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
+import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
 import com.jeeplus.modules.projectcontroltable.service.ProjectControlTableService;
 import com.jeeplus.modules.projectrecord.entity.ConcealProjectInfo;
 import com.jeeplus.modules.projectrecord.entity.ProjectImplementEarly;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecordTreeData;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
 import com.jeeplus.modules.projectrecord.service.armorForMaterials.ArmorForMaterialsService;
 import com.jeeplus.modules.sys.entity.User;
@@ -55,6 +59,8 @@ public class ArmorForMaterialsController extends BaseController {
     private ProjectControlTableService projectControlTableService;
     @Autowired
     private ProjectContentDataService projectContentDataService;
+    @Autowired
+    private ProjectcontentinfoService projectcontentinfoService;
 
     @ModelAttribute
     public ConstructionContract get(@RequestParam(required=false) String id) {
@@ -161,19 +167,38 @@ public class ArmorForMaterialsController extends BaseController {
                         //将项目信息放入
                         treeList.add(visaTreeData);
 
+                        //获取阶段Type父节点信息
+                        String projectType = projectImplementEarlyService.getProjectType(record.getProjectTypeId(), "实施阶段");
+                        //根据项目id查询相关的项目阶段内容
+                        List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentDataListOnImplement(record.getId(),visaTreeData.getId(),projectType,"411");
+
+                        Projectcontentinfo select = new Projectcontentinfo();
+                        ProjectRecords project = new ProjectRecords();
+                        project.setId(record.getId());
+                        select.setParentIds("0,");
+                        select.setProject(project);
+                        List<Projectcontentinfo> p = projectcontentinfoService.findListByProject(select);
 
                         //根据获取的合同的id去查找汇总表获取汇总表信息
-                        List<ProjectContentData> contentDataList=armorForMaterialsService.getConcealProjectList(contract.getId());
-                        for (int j=0;j<contentDataList.size();j++){
+                        //List<ProjectContentData> contentDataList=armorForMaterialsService.getConcealProjectList(contract.getId());
+                        for (int j=0;j<reportDataList.size();j++){
                             VisaTreeData contentData=new VisaTreeData();
-                            ProjectContentData data=contentDataList.get(j);
-                            contentData.setPid(data.getContractId());
+                            ProjectRecordTreeData data=reportDataList.get(j);
+                            contentData.setPid(visaTreeData.getId());
                             contentData.setId(data.getId());
-                            contentData.setContractName(data.getName());
+                            contentData.setContractName(data.getProjectName());
                             contentData.setCnumber(contract.getCnumber());
-                            contentData.setNumber(data.getNumber());
+                            //contentData.setNumber(data.getNumber());
                             contentData.setProjectId(record.getId());
                             contentData.setCreateDate(data.getCreateDate());
+                            //添加工作内容id
+                            contentData.setProjectContentId(record.getProjectContentId());
+
+                            if(p.size()>0){
+                                contentData.setContentPId(p.get(0).getId());
+                                contentData.setParentIds("0,");
+                                contentData.setDictType("");
+                            }
 
                             //将项目设置为第二级数据
                             contentData.setCondition(3);
@@ -220,6 +245,7 @@ public class ArmorForMaterialsController extends BaseController {
             projectContentDataService.queryBasedData(projectContentData);
         }
 
+        concealProjectInfo.setCondition("armor");
         concealProjectInfo.setProjectContentData(projectContentData);
         model.addAttribute("concealProjectInfo", concealProjectInfo);
         if("view".equals(concealProjectInfo.getType())){

+ 34 - 6
src/main/java/com/jeeplus/modules/projectrecord/web/concealProject/ConcealProjectController.java

@@ -11,11 +11,15 @@ import com.jeeplus.modules.projectVisa.entity.ProjectVisa;
 import com.jeeplus.modules.projectVisa.entity.VisaTreeData;
 import com.jeeplus.modules.projectVisa.service.ProjectVisaService;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
+import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
 import com.jeeplus.modules.projectcontroltable.service.ProjectControlTableService;
 import com.jeeplus.modules.projectrecord.entity.ConcealProjectInfo;
 import com.jeeplus.modules.projectrecord.entity.ProjectImplementEarly;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecordTreeData;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
 import com.jeeplus.modules.projectrecord.service.concealProject.ConcealProjectService;
 import com.jeeplus.modules.sys.entity.User;
@@ -54,6 +58,8 @@ public class ConcealProjectController extends BaseController {
     private ProjectControlTableService projectControlTableService;
     @Autowired
     private ProjectContentDataService projectContentDataService;
+    @Autowired
+    private ProjectcontentinfoService projectcontentinfoService;
 
     @ModelAttribute
     public ConstructionContract get(@RequestParam(required=false) String id) {
@@ -162,18 +168,39 @@ public class ConcealProjectController extends BaseController {
                         treeList.add(visaTreeData);
 
 
+                        //获取阶段Type父节点信息
+                        String projectType = projectImplementEarlyService.getProjectType(record.getProjectTypeId(), "实施阶段");
+                        //根据项目id查询相关的项目阶段内容
+                        List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentDataListOnImplement(record.getId(),visaTreeData.getId(),projectType,"410");
+
+                        Projectcontentinfo select = new Projectcontentinfo();
+                        ProjectRecords project = new ProjectRecords();
+                        project.setId(record.getId());
+                        select.setParentIds("0,");
+                        select.setProject(project);
+                        List<Projectcontentinfo> p = projectcontentinfoService.findListByProject(select);
+
+
                         //根据获取的合同的id去查找汇总表获取汇总表信息
-                        List<ProjectContentData> contentDataList=concealProjectService.getConcealProjectList(contract.getId());
-                        for (int j=0;j<contentDataList.size();j++){
+                        //List<ProjectContentData> contentDataList=concealProjectService.getConcealProjectList(contract.getId());
+                        for (int j=0;j<reportDataList.size();j++){
                             VisaTreeData contentData=new VisaTreeData();
-                            ProjectContentData data=contentDataList.get(j);
-                            contentData.setPid(data.getContractId());
+                            ProjectRecordTreeData data=reportDataList.get(j);
+                            contentData.setPid(visaTreeData.getId());
                             contentData.setId(data.getId());
-                            contentData.setContractName(data.getName());
+                            contentData.setContractName(data.getProjectName());
                             contentData.setCnumber(contract.getCnumber());
-                            contentData.setNumber(data.getNumber());
+                            //contentData.setNumber(data.getNumber());
                             contentData.setProjectId(record.getId());
                             contentData.setCreateDate(data.getCreateDate());
+                            //添加工作内容id
+                            contentData.setProjectContentId(record.getProjectContentId());
+
+                            if(p.size()>0){
+                                contentData.setContentPId(p.get(0).getId());
+                                contentData.setParentIds("0,");
+                                contentData.setDictType("");
+                            }
 
                             //将项目设置为第二级数据
                             contentData.setCondition(3);
@@ -215,6 +242,7 @@ public class ConcealProjectController extends BaseController {
             projectContentDataService.queryBasedData(projectContentData);
         }
 
+        concealProjectInfo.setCondition("conceal");
         concealProjectInfo.setProjectContentData(projectContentData);
         model.addAttribute("concealProjectInfo", concealProjectInfo);
         if("view".equals(concealProjectInfo.getType())){

+ 34 - 13
src/main/java/com/jeeplus/modules/projectrecord/web/contractMaterial/MaterialController.java

@@ -11,12 +11,12 @@ import com.jeeplus.modules.projectVisa.entity.ProjectVisa;
 import com.jeeplus.modules.projectVisa.entity.VisaTreeData;
 import com.jeeplus.modules.projectVisa.service.ProjectVisaService;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
+import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
 import com.jeeplus.modules.projectcontroltable.service.ProjectControlTableService;
-import com.jeeplus.modules.projectrecord.entity.ConcealProjectInfo;
-import com.jeeplus.modules.projectrecord.entity.MaterialProjectInfo;
-import com.jeeplus.modules.projectrecord.entity.ProjectImplementEarly;
+import com.jeeplus.modules.projectrecord.entity.*;
 import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
 import com.jeeplus.modules.projectrecord.service.concealProject.ConcealProjectService;
 import com.jeeplus.modules.projectrecord.service.material.MaterialService;
@@ -51,15 +51,13 @@ public class MaterialController extends BaseController {
     @Autowired
     private ContractService contractService;
     @Autowired
-    private WorkClientAttachmentDao workClientAttachmentDao;
-    @Autowired
-    private ConcealProjectService concealProjectService;
-    @Autowired
     private ProjectControlTableService projectControlTableService;
     @Autowired
     private ProjectContentDataService projectContentDataService;
     @Autowired
     private MaterialService materialService;
+    @Autowired
+    private ProjectcontentinfoService projectcontentinfoService;
 
     @ModelAttribute
     public ConstructionContract get(@RequestParam(required=false) String id) {
@@ -163,18 +161,40 @@ public class MaterialController extends BaseController {
                         //将项目信息放入
                         treeList.add(visaTreeData);
 
+                        //获取阶段Type父节点信息
+                        String projectType = projectImplementEarlyService.getProjectType(record.getProjectTypeId(), "实施阶段");
+                        //根据项目id查询相关的项目阶段内容
+                        List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentDataListOnImplement(record.getId(),visaTreeData.getId(),projectType,"421");
+
+                        Projectcontentinfo select = new Projectcontentinfo();
+                        ProjectRecords project = new ProjectRecords();
+                        project.setId(record.getId());
+                        select.setParentIds("0,");
+                        select.setProject(project);
+                        List<Projectcontentinfo> p = projectcontentinfoService.findListByProject(select);
+
+
                         //根据获取的合同的id去查找汇总表获取汇总表信息
-                        List<ProjectContentData> contentDataList=materialService.getMaterialList(contract.getId());
-                        for (int j=0;j<contentDataList.size();j++){
+                        //List<ProjectContentData> contentDataList=materialService.getMaterialList(contract.getId());
+                        for (int j=0;j<reportDataList.size();j++){
                             VisaTreeData contentData=new VisaTreeData();
-                            ProjectContentData data=contentDataList.get(j);
-                            contentData.setPid(data.getContractId());
+                            ProjectRecordTreeData data=reportDataList.get(j);
+                            contentData.setPid(visaTreeData.getId());
                             contentData.setId(data.getId());
-                            contentData.setContractName(data.getName());
+                            contentData.setContractName(data.getProjectName());
                             contentData.setCnumber(contract.getCnumber());
-                            contentData.setNumber(data.getNumber());
+                            //contentData.setNumber(data.getNumber());
                             contentData.setProjectId(record.getId());
                             contentData.setCreateDate(data.getCreateDate());
+                            //添加工作内容id
+                            contentData.setProjectContentId(record.getProjectContentId());
+
+                            if(p.size()>0){
+                                contentData.setContentPId(p.get(0).getId());
+                                contentData.setParentIds("0,");
+                                contentData.setDictType("");
+                            }
+
                             //将项目设置为第二级数据
                             contentData.setCondition(3);
                             for (String masterId : masterIdList) {
@@ -214,6 +234,7 @@ public class MaterialController extends BaseController {
             projectContentDataService.queryBasedData(projectContentData);
         }
 
+        materialProjectInfo.setCondition("material");
         materialProjectInfo.setProjectContentData(projectContentData);
         model.addAttribute("materialProjectInfo", materialProjectInfo);
         if("view".equals(materialProjectInfo.getType())){

+ 140 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentArmorSummarizingController.java

@@ -0,0 +1,140 @@
+package com.jeeplus.modules.projectrecord.web.summarizing;
+
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectType.service.ProjectTypeService;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
+import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
+import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
+import org.activiti.engine.HistoryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 甲供物资汇总表Controller
+ * @author 徐滕
+ * @version 2020-07-10
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/project/armorSummarizing")
+public class ContentArmorSummarizingController extends BaseController {
+    @Autowired
+    private ProjectRecordsService projectRecordsService;
+    @Autowired
+    protected HistoryService historyService;
+    @Autowired
+    private ProjectTypeService projectTypeService;
+    @Autowired
+    private ProjectcontentinfoService projectcontentinfoService;
+
+    @ModelAttribute
+    public ProjectRecords get(@RequestParam(required=false) String id) {
+        ProjectRecords entity = null;
+        if (StringUtils.isNotBlank(id)){
+            entity = projectRecordsService.get(id);
+        }
+        if (entity == null){
+            entity = new ProjectRecords();
+        }
+        return entity;
+    }
+
+    /**
+     * 项目列表页面
+     */
+    @RequestMapping(value = {"list", ""})
+    public String list(ProjectRecords projectRecords, HttpServletRequest request, HttpServletResponse response, Model model) {
+        if(UserUtils.isManager()){
+            model.addAttribute("flag","1");
+        }
+        projectRecords.setProjectStatus(5);
+        Page<ProjectRecords> page = projectRecordsService.findPage(new Page<ProjectRecords>(request, response), projectRecords);
+        //无合同状态下,获取委托方的名称
+        List<ProjectRecords> list = page.getList();
+        for (int i = 0; i < list.size(); i++) {
+            ProjectRecords records1 = list.get(i);
+            if (records1.getWorkContractInfo() == null) {
+                projectRecordsService.queryLinkmanInfos(records1);
+                if (records1.getWorkClientLinkmanList() != null && records1.getWorkClientLinkmanList().size() > 0) {
+                    WorkClientLinkman linkman = records1.getWorkClientLinkmanList().get(0);
+                    WorkContractInfo contractInfo = new WorkContractInfo();
+                    contractInfo.setClient(linkman.getClientId());
+                    records1.setWorkContractInfo(contractInfo);
+                }
+            }
+        }
+        for (ProjectRecords record : list) {
+            Projectcontentinfo select = new Projectcontentinfo();
+            ProjectRecords project = new ProjectRecords();
+            project.setId(record.getId());
+            select.setParentIds("0,");
+            select.setProject(project);
+            List<Projectcontentinfo> p = projectcontentinfoService.findListByProject(select);
+            //添加工作内容id
+            if(p.size()>0){
+                record.setContentPId(p.get(0).getId());
+                record.setParentIds("0,");
+                record.setDictType("");
+            }
+        }
+        model.addAttribute("page", page);
+        return "modules/projectrecord/summarizing/armorProjectRecordsList";
+    }
+
+    @RequestMapping(value = {"form"})
+    public String form(Projectcontentinfo projectcontentinfo, Model model) {
+        String dictType = projectcontentinfo.getDictType();
+        //根据项目id获取项目对象
+        ProjectRecords records = projectRecordsService.getQueryProjectUsers(projectcontentinfo.getInfoId());
+        projectcontentinfo.setProject(records);
+
+        ProjectContentData projectContentData = new ProjectContentData();
+        projectContentData.setType(projectcontentinfo.getType());
+        projectcontentinfo.setProjectContentData(projectContentData);
+        model.addAttribute("projectcontentinfo", projectcontentinfo);
+        return "modules/projectrecord/summarizing/workContentView";
+    }
+
+
+    /**
+     * 根据type查询对应的宜居性文件内容
+     * @param typeId
+     * @return
+     */
+    @RequestMapping(value = {"projectBasedDataList"})
+    @ResponseBody
+    public Map projectBasedDataList(String typeId){
+        Map<String,List<ProjectBasedData>> map = new HashMap<>();
+        //获取该工作内容的依据性资料信息
+        List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(typeId);
+        if(projectBasedDataList.size()>0){
+            for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                projectBasedData.setFlag("according");
+                projectBasedData.setUploadDate(new Date());
+                projectBasedData.setUploadUser(UserUtils.getUser());
+                projectBasedData.setType(typeId);
+            }
+        }
+        map.put("projectBasedDataList",projectBasedDataList);
+        return map;
+    }
+}

+ 140 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentConcealSummarizingController.java

@@ -0,0 +1,140 @@
+package com.jeeplus.modules.projectrecord.web.summarizing;
+
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectType.service.ProjectTypeService;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
+import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
+import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
+import org.activiti.engine.HistoryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 隐蔽工程量汇总表Controller
+ * @author 徐滕
+ * @version 2020-07-10
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/project/concealSummarizing")
+public class ContentConcealSummarizingController extends BaseController {
+    @Autowired
+    private ProjectRecordsService projectRecordsService;
+    @Autowired
+    protected HistoryService historyService;
+    @Autowired
+    private ProjectTypeService projectTypeService;
+    @Autowired
+    private ProjectcontentinfoService projectcontentinfoService;
+
+    @ModelAttribute
+    public ProjectRecords get(@RequestParam(required=false) String id) {
+        ProjectRecords entity = null;
+        if (StringUtils.isNotBlank(id)){
+            entity = projectRecordsService.get(id);
+        }
+        if (entity == null){
+            entity = new ProjectRecords();
+        }
+        return entity;
+    }
+
+    /**
+     * 项目列表页面
+     */
+    @RequestMapping(value = {"list", ""})
+    public String list(ProjectRecords projectRecords, HttpServletRequest request, HttpServletResponse response, Model model) {
+        if(UserUtils.isManager()){
+            model.addAttribute("flag","1");
+        }
+        projectRecords.setProjectStatus(5);
+        Page<ProjectRecords> page = projectRecordsService.findPage(new Page<ProjectRecords>(request, response), projectRecords);
+        //无合同状态下,获取委托方的名称
+        List<ProjectRecords> list = page.getList();
+        for (int i = 0; i < list.size(); i++) {
+            ProjectRecords records1 = list.get(i);
+            if (records1.getWorkContractInfo() == null) {
+                projectRecordsService.queryLinkmanInfos(records1);
+                if (records1.getWorkClientLinkmanList() != null && records1.getWorkClientLinkmanList().size() > 0) {
+                    WorkClientLinkman linkman = records1.getWorkClientLinkmanList().get(0);
+                    WorkContractInfo contractInfo = new WorkContractInfo();
+                    contractInfo.setClient(linkman.getClientId());
+                    records1.setWorkContractInfo(contractInfo);
+                }
+            }
+        }
+        for (ProjectRecords record : list) {
+            Projectcontentinfo select = new Projectcontentinfo();
+            ProjectRecords project = new ProjectRecords();
+            project.setId(record.getId());
+            select.setParentIds("0,");
+            select.setProject(project);
+            List<Projectcontentinfo> p = projectcontentinfoService.findListByProject(select);
+            //添加工作内容id
+            if(p.size()>0){
+                record.setContentPId(p.get(0).getId());
+                record.setParentIds("0,");
+                record.setDictType("");
+            }
+        }
+        model.addAttribute("page", page);
+        return "modules/projectrecord/summarizing/concealProjectRecordsList";
+    }
+
+    @RequestMapping(value = {"form"})
+    public String form(Projectcontentinfo projectcontentinfo, Model model) {
+        String dictType = projectcontentinfo.getDictType();
+        //根据项目id获取项目对象
+        ProjectRecords records = projectRecordsService.getQueryProjectUsers(projectcontentinfo.getInfoId());
+        projectcontentinfo.setProject(records);
+
+        ProjectContentData projectContentData = new ProjectContentData();
+        projectContentData.setType(projectcontentinfo.getType());
+        projectcontentinfo.setProjectContentData(projectContentData);
+        model.addAttribute("projectcontentinfo", projectcontentinfo);
+        return "modules/projectrecord/summarizing/workContentView";
+    }
+
+
+    /**
+     * 根据type查询对应的宜居性文件内容
+     * @param typeId
+     * @return
+     */
+    @RequestMapping(value = {"projectBasedDataList"})
+    @ResponseBody
+    public Map projectBasedDataList(String typeId){
+        Map<String,List<ProjectBasedData>> map = new HashMap<>();
+        //获取该工作内容的依据性资料信息
+        List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(typeId);
+        if(projectBasedDataList.size()>0){
+            for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                projectBasedData.setFlag("according");
+                projectBasedData.setUploadDate(new Date());
+                projectBasedData.setUploadUser(UserUtils.getUser());
+                projectBasedData.setType(typeId);
+            }
+        }
+        map.put("projectBasedDataList",projectBasedDataList);
+        return map;
+    }
+}

+ 141 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentMaterialSummarizingController.java

@@ -0,0 +1,141 @@
+package com.jeeplus.modules.projectrecord.web.summarizing;
+
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectType.service.ProjectTypeService;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
+import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
+import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
+import org.activiti.engine.HistoryService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 暂定材料价汇总表Controller
+ * @author 徐滕
+ * @version 2020-07-10
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/project/materialSummarizing")
+public class ContentMaterialSummarizingController extends BaseController {
+    @Autowired
+    private ProjectRecordsService projectRecordsService;
+    @Autowired
+    protected HistoryService historyService;
+    @Autowired
+    private ProjectTypeService projectTypeService;
+    @Autowired
+    private ProjectcontentinfoService projectcontentinfoService;
+
+    @ModelAttribute
+    public ProjectRecords get(@RequestParam(required=false) String id) {
+        ProjectRecords entity = null;
+        if (StringUtils.isNotBlank(id)){
+            entity = projectRecordsService.get(id);
+        }
+        if (entity == null){
+            entity = new ProjectRecords();
+        }
+        return entity;
+    }
+
+    /**
+     * 项目列表页面
+     */
+    @RequestMapping(value = {"list", ""})
+    public String list(ProjectRecords projectRecords, HttpServletRequest request, HttpServletResponse response, Model model) {
+        if(UserUtils.isManager()){
+            model.addAttribute("flag","1");
+        }
+        projectRecords.setProjectStatus(5);
+        Page<ProjectRecords> page = projectRecordsService.findPage(new Page<ProjectRecords>(request, response), projectRecords);
+        //无合同状态下,获取委托方的名称
+        List<ProjectRecords> list = page.getList();
+        for (int i = 0; i < list.size(); i++) {
+            ProjectRecords records1 = list.get(i);
+            if (records1.getWorkContractInfo() == null) {
+                projectRecordsService.queryLinkmanInfos(records1);
+                if (records1.getWorkClientLinkmanList() != null && records1.getWorkClientLinkmanList().size() > 0) {
+                    WorkClientLinkman linkman = records1.getWorkClientLinkmanList().get(0);
+                    WorkContractInfo contractInfo = new WorkContractInfo();
+                    contractInfo.setClient(linkman.getClientId());
+                    records1.setWorkContractInfo(contractInfo);
+                }
+            }
+        }
+        for (ProjectRecords record : list) {
+            Projectcontentinfo select = new Projectcontentinfo();
+            ProjectRecords project = new ProjectRecords();
+            project.setId(record.getId());
+            select.setParentIds("0,");
+            select.setProject(project);
+            List<Projectcontentinfo> p = projectcontentinfoService.findListByProject(select);
+            //添加工作内容id
+            if(p.size()>0){
+                record.setContentPId(p.get(0).getId());
+                record.setParentIds("0,");
+                record.setDictType("");
+            }
+        }
+        model.addAttribute("page", page);
+        return "modules/projectrecord/summarizing/materialProjectRecordsList";
+    }
+
+    @RequestMapping(value = {"form"})
+    public String form(Projectcontentinfo projectcontentinfo, Model model) {
+        String dictType = projectcontentinfo.getDictType();
+        //根据项目id获取项目对象
+        ProjectRecords records = projectRecordsService.getQueryProjectUsers(projectcontentinfo.getInfoId());
+        projectcontentinfo.setProject(records);
+
+        ProjectContentData projectContentData = new ProjectContentData();
+        projectContentData.setType(projectcontentinfo.getType());
+        projectcontentinfo.setProjectContentData(projectContentData);
+        model.addAttribute("projectcontentinfo", projectcontentinfo);
+        return "modules/projectrecord/summarizing/workContentView";
+    }
+
+
+    /**
+     * 根据type查询对应的宜居性文件内容
+     * @param typeId
+     * @return
+     */
+    @RequestMapping(value = {"projectBasedDataList"})
+    @ResponseBody
+    public Map projectBasedDataList(String typeId){
+        Map<String,List<ProjectBasedData>> map = new HashMap<>();
+        //获取该工作内容的依据性资料信息
+        List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(typeId);
+        if(projectBasedDataList.size()>0){
+            for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                projectBasedData.setFlag("according");
+                projectBasedData.setUploadDate(new Date());
+                projectBasedData.setUploadUser(UserUtils.getUser());
+                projectBasedData.setType(typeId);
+            }
+        }
+        map.put("projectBasedDataList",projectBasedDataList);
+        return map;
+    }
+}

+ 2 - 0
src/main/java/com/jeeplus/modules/workcontent/dao/WorkConcealProjectDao.java

@@ -40,4 +40,6 @@ public interface WorkConcealProjectDao extends CrudDao<WorkConcealProject> {
      * @param id
      */
     void deleteContractById(String id);
+
+    List<WorkConcealProject> findListByProjectId(WorkConcealProject workConcealProject);
 }

+ 2 - 0
src/main/java/com/jeeplus/modules/workcontent/dao/WorkFiveDirectionsAffirmDao.java

@@ -34,4 +34,6 @@ public interface WorkFiveDirectionsAffirmDao extends CrudDao<WorkFiveDirectionsA
      * @return
      */
     List<String> getTableType(String contentId);
+
+    List<WorkFiveDirectionsAffirm> findListByProjectId(WorkFiveDirectionsAffirm workFiveDirectionsAffirm);
 }

+ 6 - 0
src/main/java/com/jeeplus/modules/workcontent/dao/WorkMaterialsPriceDao.java

@@ -34,4 +34,10 @@ public interface WorkMaterialsPriceDao extends CrudDao<WorkMaterialsPrice> {
      * @return
      */
     List<String> getTableType(String contentId);
+    /**
+     * 根据项目id查询所有有关项目的信息
+     * @param workScheduleInfo
+     * @return
+     */
+    List<WorkMaterialsPrice> findListByProjectId(WorkMaterialsPrice workMaterialsPrice);
 }

+ 36 - 0
src/main/java/com/jeeplus/modules/workcontent/entity/WorkConcealProject.java

@@ -12,6 +12,10 @@ public class WorkConcealProject extends DataEntity<WorkConcealProject> {
     private String workAmount;		// 工程量
     private String workConcealProjectSerialNum;		// 隐蔽工程验收记录编号
     private String type;  //类别
+    private String contractId;  //实施合同id
+    private String contractName;          //实施合同名称
+    private String contractNumber;          //实施合同编号
+    private String typeName;    //类型名称
 
     public WorkConcealProject() {
         super();
@@ -71,4 +75,36 @@ public class WorkConcealProject extends DataEntity<WorkConcealProject> {
     public void setType(String type) {
         this.type = type;
     }
+
+    public String getContractId() {
+        return contractId;
+    }
+
+    public void setContractId(String contractId) {
+        this.contractId = contractId;
+    }
+
+    public String getContractName() {
+        return contractName;
+    }
+
+    public void setContractName(String contractName) {
+        this.contractName = contractName;
+    }
+
+    public String getContractNumber() {
+        return contractNumber;
+    }
+
+    public void setContractNumber(String contractNumber) {
+        this.contractNumber = contractNumber;
+    }
+
+    public String getTypeName() {
+        return typeName;
+    }
+
+    public void setTypeName(String typeName) {
+        this.typeName = typeName;
+    }
 }

+ 27 - 0
src/main/java/com/jeeplus/modules/workcontent/entity/WorkFiveDirectionsAffirm.java

@@ -45,6 +45,9 @@ public class WorkFiveDirectionsAffirm extends DataEntity<WorkFiveDirectionsAffir
 	private String consultRemarks;  //备注
 	private String type;          //数据状态
 	private String roadworkDemandDateStr;  //需求日期Str
+	private String contractId;          //实施合同id
+	private String contractName;          //实施合同名称
+	private String contractNumber;          //实施合同编号
 
 	public WorkFiveDirectionsAffirm() {
 		super();
@@ -237,4 +240,28 @@ public class WorkFiveDirectionsAffirm extends DataEntity<WorkFiveDirectionsAffir
 	public void setRoadworkDemandDateStr(String roadworkDemandDateStr) {
 		this.roadworkDemandDateStr = roadworkDemandDateStr;
 	}
+
+	public String getContractId() {
+		return contractId;
+	}
+
+	public void setContractId(String contractId) {
+		this.contractId = contractId;
+	}
+
+	public String getContractName() {
+		return contractName;
+	}
+
+	public void setContractName(String contractName) {
+		this.contractName = contractName;
+	}
+
+	public String getContractNumber() {
+		return contractNumber;
+	}
+
+	public void setContractNumber(String contractNumber) {
+		this.contractNumber = contractNumber;
+	}
 }

+ 27 - 0
src/main/java/com/jeeplus/modules/workcontent/entity/WorkMaterialsPrice.java

@@ -26,6 +26,9 @@ public class WorkMaterialsPrice extends DataEntity<WorkMaterialsPrice> {
     @NumberFormat(style = NumberFormat.Style.CURRENCY)
 	private Double nuclearPrice;		// 甲方、咨询核定价(不含税价)
 	private String type;          //数据状态
+	private String contractId;          //实施合同id
+	private String contractName;          //实施合同名称
+	private String contractNumber;          //实施合同编号
 
 	public WorkMaterialsPrice() {
 		super();
@@ -98,4 +101,28 @@ public class WorkMaterialsPrice extends DataEntity<WorkMaterialsPrice> {
 	public void setType(String type) {
 		this.type = type;
 	}
+
+	public String getContractId() {
+		return contractId;
+	}
+
+	public void setContractId(String contractId) {
+		this.contractId = contractId;
+	}
+
+	public String getContractName() {
+		return contractName;
+	}
+
+	public void setContractName(String contractName) {
+		this.contractName = contractName;
+	}
+
+	public String getContractNumber() {
+		return contractNumber;
+	}
+
+	public void setContractNumber(String contractNumber) {
+		this.contractNumber = contractNumber;
+	}
 }

+ 4 - 0
src/main/java/com/jeeplus/modules/workcontent/service/WorkConcealProjectService.java

@@ -30,6 +30,9 @@ public class WorkConcealProjectService extends CrudService<WorkConcealProjectDao
 	public List<WorkConcealProject> findList(WorkConcealProject workConcealProject) {
 		return super.findList(workConcealProject);
 	}
+	public List<WorkConcealProject> findListByProjectId(WorkConcealProject workConcealProject) {
+		return dao.findListByProjectId(workConcealProject);
+	}
 	
 	public Page<WorkConcealProject> findPage(Page<WorkConcealProject> page, WorkConcealProject workConcealProject) {
 		return super.findPage(page, workConcealProject);
@@ -58,6 +61,7 @@ public class WorkConcealProjectService extends CrudService<WorkConcealProjectDao
                 dao.delete(workConcealProject);
                 continue;
             }
+            workConcealProject.setContractId(contractId);
 			workConcealProject.setContentId(contentId);
 			workConcealProject.setProjectId(projectId);
             this.save(workConcealProject);

+ 4 - 0
src/main/java/com/jeeplus/modules/workcontent/service/WorkFiveDirectionsAffirmService.java

@@ -31,6 +31,9 @@ public class WorkFiveDirectionsAffirmService extends CrudService<WorkFiveDirecti
 	public List<WorkFiveDirectionsAffirm> findList(WorkFiveDirectionsAffirm workFiveDirectionsAffirm) {
 		return super.findList(workFiveDirectionsAffirm);
 	}
+	public List<WorkFiveDirectionsAffirm> findListByProjectId(WorkFiveDirectionsAffirm workFiveDirectionsAffirm) {
+		return dao.findListByProjectId(workFiveDirectionsAffirm);
+	}
 	
 	public Page<WorkFiveDirectionsAffirm> findPage(Page<WorkFiveDirectionsAffirm> page, WorkFiveDirectionsAffirm workFiveDirectionsAffirm) {
 		return super.findPage(page, workFiveDirectionsAffirm);
@@ -59,6 +62,7 @@ public class WorkFiveDirectionsAffirmService extends CrudService<WorkFiveDirecti
                 dao.delete(workFiveDirectionsAffirm);
                 continue;
             }
+            workFiveDirectionsAffirm.setContractId(contractId);
 			workFiveDirectionsAffirm.setContentId(contentId);
 			workFiveDirectionsAffirm.setProjectId(projectId);
             this.save(workFiveDirectionsAffirm);

+ 4 - 0
src/main/java/com/jeeplus/modules/workcontent/service/WorkMaterialsPriceService.java

@@ -33,6 +33,9 @@ public class WorkMaterialsPriceService extends CrudService<WorkMaterialsPriceDao
 	public List<WorkMaterialsPrice> findList(WorkMaterialsPrice workPreliminaryDesignEstimate) {
 		return super.findList(workPreliminaryDesignEstimate);
 	}
+	public List<WorkMaterialsPrice> findListByProjectId(WorkMaterialsPrice workPreliminaryDesignEstimate) {
+		return dao.findListByProjectId(workPreliminaryDesignEstimate);
+	}
 	
 	public Page<WorkMaterialsPrice> findPage(Page<WorkMaterialsPrice> page, WorkMaterialsPrice workPreliminaryDesignEstimate) {
 		return super.findPage(page, workPreliminaryDesignEstimate);
@@ -61,6 +64,7 @@ public class WorkMaterialsPriceService extends CrudService<WorkMaterialsPriceDao
                 dao.delete(preliminaryDesignEstimate);
                 continue;
             }
+			preliminaryDesignEstimate.setContractId(contractId);
 			preliminaryDesignEstimate.setContentId(contentId);
 			preliminaryDesignEstimate.setProjectId(projectId);
             this.save(preliminaryDesignEstimate);

+ 23 - 0
src/main/java/com/jeeplus/modules/workcontent/web/WorkConcealProjectController.java

@@ -13,6 +13,7 @@ import com.jeeplus.modules.sys.entity.MainDictDetail;
 import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.workcontent.entity.WorkConcealProject;
 import com.jeeplus.modules.workcontent.entity.WorkConcealProject;
+import com.jeeplus.modules.workcontent.entity.WorkMaterialsPrice;
 import com.jeeplus.modules.workcontent.service.WorkConcealProjectService;
 import com.jeeplus.modules.workreceiptsregister.entity.ResponseEntity;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -84,6 +85,28 @@ public class WorkConcealProjectController extends BaseController {
 
 
 	/**
+	 * 根据projectId获取项目中所有的工程进度款数据信息
+	 */
+	@RequestMapping(value = {"listByProjectId"})
+	public String listByProjectId(WorkConcealProject workConcealProject, String view, HttpServletRequest request, Model model) {
+		String sign = request.getParameter("sign");
+		List<String> signList = new ArrayList();
+		if (StringUtils.isNotBlank(sign)){
+			signList = Arrays.asList(sign.split(","));
+		}
+		List<WorkConcealProject> list = new ArrayList<>();
+		if(StringUtils.isNotBlank(workConcealProject.getProjectId())){
+			list = workConcealProjectService.findListByProjectId(workConcealProject);
+		}
+		model.addAttribute("signList", signList);
+		model.addAttribute("workConcealProject", list);
+		return "modules/workcontent/workProjectConcealListView";
+	}
+
+
+
+
+	/**
 	 * 查询数据表中的所有数据类型
 	 * @return
 	 */

+ 21 - 0
src/main/java/com/jeeplus/modules/workcontent/web/WorkFiveDirectionsAffirmController.java

@@ -12,6 +12,7 @@ import com.jeeplus.common.web.BaseController;
 import com.jeeplus.modules.sys.entity.MainDictDetail;
 import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.workcontent.entity.WorkFiveDirectionsAffirm;
+import com.jeeplus.modules.workcontent.entity.WorkMaterialsPrice;
 import com.jeeplus.modules.workcontent.entity.WorkPreliminaryDesignEstimate;
 import com.jeeplus.modules.workcontent.service.WorkFiveDirectionsAffirmService;
 import com.jeeplus.modules.workcontent.service.WorkPreliminaryDesignEstimateService;
@@ -89,6 +90,26 @@ public class WorkFiveDirectionsAffirmController extends BaseController {
         return viewPath;
 	}
 
+
+	/**
+	 * 根据projectId获取项目中所有的工程进度款数据信息
+	 */
+	@RequestMapping(value = {"listByProjectId"})
+	public String listByProjectId(WorkFiveDirectionsAffirm workFiveDirectionsAffirm, String view, HttpServletRequest request, Model model) {
+		String sign = request.getParameter("sign");
+		List<String> signList = new ArrayList();
+		if (StringUtils.isNotBlank(sign)){
+			signList = Arrays.asList(sign.split(","));
+		}
+		List<WorkFiveDirectionsAffirm> list = new ArrayList<>();
+		if(StringUtils.isNotBlank(workFiveDirectionsAffirm.getProjectId())){
+			list = workFiveDirectionsAffirmService.findListByProjectId(workFiveDirectionsAffirm);
+		}
+		model.addAttribute("signList", signList);
+		model.addAttribute("fiveDirectionsAffirmList", list);
+		return "modules/workcontent/workProjectArmorListView";
+	}
+
 	public static String getNowDate(Date currentTime) {
 		if(null != currentTime){
 			SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

+ 21 - 0
src/main/java/com/jeeplus/modules/workcontent/web/WorkMaterialsPriceController.java

@@ -84,6 +84,27 @@ public class WorkMaterialsPriceController extends BaseController {
 	}
 
 
+
+	/**
+	 * 根据projectId获取项目中所有的工程进度款数据信息
+	 */
+	@RequestMapping(value = {"listByProjectId"})
+	public String listByProjectId(WorkMaterialsPrice workMaterialsPrice,String view, HttpServletRequest request, Model model) {
+		String sign = request.getParameter("sign");
+		List<String> signList = new ArrayList();
+		if (StringUtils.isNotBlank(sign)){
+			signList = Arrays.asList(sign.split(","));
+		}
+		List<WorkMaterialsPrice> list = new ArrayList<>();
+		if(StringUtils.isNotBlank(workMaterialsPrice.getProjectId())){
+			list = workMaterialsPriceService.findListByProjectId(workMaterialsPrice);
+		}
+		model.addAttribute("signList", signList);
+		model.addAttribute("workScheduleList", list);
+		return "modules/workcontent/workProjectMaterialListView";
+	}
+
+
 	/**
 	 * 查询数据表中的所有数据类型
 	 * @return

+ 30 - 6
src/main/resources/mappings/modules/workcontent/WorkConcealProjectDao.xml

@@ -15,7 +15,8 @@
 		a.cost_part AS "costPart",
 		a.work_amount as "workAmount",
 		a.work_conceal_project_serial_num as "workConcealProjectSerialNum",
-		a.type as "type"
+		a.type as "type",
+		a.contract_id as "contractId"
 	</sql>
 	
 
@@ -48,6 +49,24 @@
 			</otherwise>
 		</choose>
 	</select>
+
+
+	<select id="findListByProjectId" resultType="com.jeeplus.modules.workcontent.entity.WorkConcealProject" >
+		SELECT
+		cc.contract_name contractName, cc.cnumber contractNumber,
+
+		(case when a.type = 'workSiteLevel' then '场平工程量' when a.type = 'workConcealProject' then '隐蔽工程量' else '' end) as typeName,
+		<include refid="workConcealProjectColumns"/>
+		FROM work_conceal_project a
+		left join construction_contract cc on cc.id = a.contract_id
+		<where>
+			<if test="projectId!=null and projectId !=''">
+				AND a.project_id = #{projectId}
+			</if>
+			AND a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		ORDER BY a.update_date DESC,a.contract_id
+	</select>
 	
 	<select id="findAllList" resultType="com.jeeplus.modules.workcontent.entity.WorkConcealProject" >
 		SELECT 
@@ -80,7 +99,8 @@
 			cost_part,
 			work_amount,
 			work_conceal_project_serial_num,
-			type
+			type,
+			contract_id
 		) VALUES (
 			#{id},
 			#{createBy.id},
@@ -94,7 +114,8 @@
             #{costPart},
             #{workAmount},
             #{workConcealProjectSerialNum},
-            #{type}
+            #{type},
+            #{contractId}
 		)
 	</insert>
 
@@ -112,7 +133,8 @@
 			cost_part,
 			work_amount,
 			work_conceal_project_serial_num,
-			type
+			type,
+			contract_id
 		) VALUES
 		<foreach collection="list" item="item" separator=",">
             ( #{item.id},
@@ -127,7 +149,8 @@
 			#{item.costPart},
 			#{item.workAmount},
 			#{item.workConcealProjectSerialNum},
-			#{item.type}
+			#{item.type},
+			#{item.contractId}
 			)
         </foreach>
 	</insert>
@@ -143,7 +166,8 @@
 			cost_part = #{costPart},
 			work_amount = #{workAmount},
 			work_conceal_project_serial_num = #{workConcealProjectSerialNum},
-			type = #{type}
+			type = #{type},
+			contract_id = #{contractId}
 		WHERE id = #{id}
 	</update>
 	

+ 26 - 5
src/main/resources/mappings/modules/workcontent/WorkFiveDirectionsAffirmDao.xml

@@ -31,7 +31,8 @@
 		a.consult_attrition_rate as "consultAttritionRate",
 		a.consult_audit_total as "consultAuditTotal",
 		a.consult_remarks as "consultRemarks",
-		a.type as "type"
+		a.type as "type",
+		a.contract_id as "contractId"
 	</sql>
 	
 
@@ -64,6 +65,21 @@
 			</otherwise>
 		</choose>
 	</select>
+
+	<select id="findListByProjectId" resultType="com.jeeplus.modules.workcontent.entity.WorkFiveDirectionsAffirm" >
+		SELECT
+			cc.contract_name contractName, cc.cnumber contractNumber,
+			<include refid="workFiveDirectionsAffirmColumns"/>
+		FROM work_five_directions_affirm a
+		left join construction_contract cc on cc.id = a.contract_id
+		<where>
+			<if test="projectId!=null and projectId !=''">
+				AND a.project_id = #{projectId}
+			</if>
+			AND a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		ORDER BY cc.contract_name desc, a.update_date DESC
+	</select>
 	
 	<select id="findAllList" resultType="com.jeeplus.modules.workcontent.entity.WorkFiveDirectionsAffirm" >
 		SELECT 
@@ -112,7 +128,8 @@
 			consult_attrition_rate,
 			consult_audit_total,
 			consult_remarks,
-			type
+			type,
+			contract_id
 		) VALUES (
 			#{id},
 			#{createBy.id},
@@ -142,7 +159,8 @@
             #{consultAttritionRate},
             #{consultAuditTotal},
             #{consultRemarks},
-            #{type}
+            #{type},
+            #{contractId}
 		)
 	</insert>
 
@@ -176,7 +194,8 @@
 			consult_attrition_rate,
 			consult_audit_total,
 			consult_remarks,
-			type
+			type,
+			contract_id
 		) VALUES
 		<foreach collection="list" item="item" separator=",">
             ( #{item.id},
@@ -208,6 +227,7 @@
 			#{item.consultAuditTotal},
 			#{item.consultRemarks},
 			#{item.type}
+			#{item.contractId}
 			)
         </foreach>
 	</insert>
@@ -239,7 +259,8 @@
 			consult_attrition_rate = #{consultAttritionRate},
 			consult_audit_total = #{consultAuditTotal},
 			consult_remarks = #{consultRemarks},
-			type = #{type}
+			type = #{type},
+			contract_id = #{contractId}
 		WHERE id = #{id}
 	</update>
 	

+ 27 - 6
src/main/resources/mappings/modules/workcontent/WorkMaterialsPriceDao.xml

@@ -18,7 +18,8 @@
 		a.part_used as "partUsed",
 		a.material_price as "materialPrice",
 		a.nuclear_price as "nuclearPrice",
-		a.type as "type"
+		a.type as "type",
+		a.contract_id as "contractId"
 	</sql>
 	
 
@@ -51,6 +52,21 @@
 			</otherwise>
 		</choose>
 	</select>
+
+	<select id="findListByProjectId" resultType="com.jeeplus.modules.workcontent.entity.WorkMaterialsPrice" >
+		SELECT
+		cc.contract_name contractName, cc.cnumber contractNumber,
+		<include refid="workPreliminaryDesignEstimateColumns"/>
+		FROM work_materials_price a
+		left join construction_contract cc on cc.id = a.contract_id
+		<where>
+			<if test="projectId!=null and projectId !=''">
+				AND a.project_id = #{projectId}
+			</if>
+			AND a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		ORDER BY cc.contract_name desc, a.update_date DESC
+	</select>
 	
 	<select id="findAllList" resultType="com.jeeplus.modules.workcontent.entity.WorkMaterialsPrice" >
 		SELECT 
@@ -85,7 +101,8 @@
 			part_used,
 			material_price,
 			Nuclear_price,
-			type
+			type,
+			contract_id
 		) VALUES (
 			#{id},
 			#{createBy.id},
@@ -101,7 +118,8 @@
 			#{partUsed},
 			#{materialPrice},
 			#{nuclearPrice},
-            #{type}
+            #{type},
+            #{contractId}
 		)
 	</insert>
 
@@ -121,7 +139,8 @@
 			part_used,
 			material_price,
 			Nuclear_price,
-			type
+			type,
+			contract_id
 		) VALUES
 		<foreach collection="list" item="item" separator=",">
             ( #{item.id},
@@ -138,7 +157,8 @@
 			#{item.partUsed},
 			#{item.materialPrice},
 			#{item.nuclearPrice},
-			#{item.type}
+			#{item.type},
+			#{item.contractId}
 			)
         </foreach>
 	</insert>
@@ -157,7 +177,8 @@
 			part_used = #{partUsed},
 			material_price = #{materialPrice},
 			nuclear_price = #{nuclearPrice},
-			type = #{type}
+			type = #{type},
+			contract_id = #{contractId}
 		WHERE id = #{id}
 	</update>
 	

+ 126 - 6
src/main/webapp/webpage/modules/projectrecord/armorForMaterials/armorForMaterialsForm.jsp

@@ -55,10 +55,20 @@
                     }
                 }
 
-                var idArr = $("#workBaseDataList tr:visible .clientId").length;
-                if(idArr == 0){
-                    layer.msg('请添加甲供物资审核所需依据性文件', {icon: 5});
-                    return false;
+
+
+                var length = document.getElementById("workBaseDataList");
+                var rows = length.rows.length;
+                var idList = [];
+                for (var i=0;i<rows;i++){
+                    var chooseCondition = $("#workBaseDataList"+i+"_chooseCondition").val();
+                    if(chooseCondition==1){
+                        var fileUrl = $("#workBaseDataList"+i+"_fileUrl").val();
+                        if(fileUrl == null || fileUrl == ''){
+                            layer.msg('请上传依据性资料必填文件', {icon: 5});
+                            return false;
+                        }
+                    }
                 }
 
                 beforeSubmit();
@@ -193,6 +203,33 @@
         function changeContentDetail(obj) {
             $("#contentDetail").empty();
             var val = "411";
+
+            var modify = $("#modify").val();
+            if("modify" != modify){
+                $("#workBaseDataList").empty();
+                $.ajax({
+                    type:'post',
+                    url:'${ctx}/project/projectImplementEarly/projectBasedDataList',
+                    data:{
+                        "typeId":val
+                    },
+                    success:function(data){
+                        console.log(data);
+                        if(data.projectBasedDataList.length > 0){
+                            var data = data.projectBasedDataList;
+                            for(var i=0;i<data.length;i++){
+                                var idArr = $("#workBaseDataList tr:visible .clientId");
+                                if(data[i].id!=''&&!hasInArr(data[i].id,idArr)){
+                                    addRowBaseData("#workBaseDataList",workBaseDataRowIdx,workBaseDataTplFirst,data[i]);
+                                    workBaseDataRowIdx=workBaseDataRowIdx+1;
+                                }
+                            }
+                        }
+                    }
+                })
+
+            }
+
             contentDetailTypeShow(val);
             $("#contentDetailTypeDiv").show();
             $("#projectContentDataSign").val(val);
@@ -419,12 +456,36 @@
             }
 
         }
+
+        //依据性文件点击事件
+        function accordingBtn(obj, prefix,userId){
+            $(prefix+"_file").click();
+        }
+        //依据性文件上传文件方法
+        function insertAccording(tValue,idx,prefix) {
+            var files = $(prefix+"_file")[0].files;
+            for(var i=0;i<files.length;i++) {
+                var file = files[i];
+                var attachmentId = "";
+                var attachmentFlag = "132";
+                console.log(file);
+                var timestamp = new Date().getTime();
+
+                var storeAs = "attachment-file/basedData/" + timestamp + "/" + file['name'];
+                var uploadPath = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/" + storeAs;
+                /*将这段字符串存到数据库即可*/
+                var divId = "_attachment";
+                multipartUploadWithSts(storeAs, file, attachmentId, attachmentFlag, uploadPath, divId, "0",1,idx,prefix);
+            }
+            $(prefix+"_file").val(123)
+            //var idx1 = $("#workBaseDataList tr").length +1;
+        }
     </script>
 </head>
 <body>
 <div class="single-form">
     <div class="container${container}">
-        <form:form id="inputForm" modelAttribute="concealProjectInfo" action="${ctx}/project/armorForMaterials/save" method="post" class="form-horizontal">
+        <form:form id="inputForm" modelAttribute="concealProjectInfo" action="${ctx}/projectcontentinfo/projectcontentinfo/save" method="post" class="form-horizontal">
             <form:hidden path="id"/>
             <form:hidden path="edit"/>
             <form:hidden path="parentIds"/>
@@ -432,6 +493,8 @@
             <form:hidden path="project.id"/>
             <form:hidden path="contract.id"/>
             <form:hidden path="projectContentData.id"/>
+            <input type="hidden" name="projectContentData.contractId" value="${concealProjectInfo.contract.id}">
+            <input type="hidden" name="projectContentData.type" value="411">
             <input type="hidden" id="projectId" value="${concealProjectInfo.project.id}">
             <input type="hidden" id="contentDeta" name="projectContentData.contentDetail">
             <input type="hidden" id="dataBodyList" name="dataBodyList" value="">
@@ -510,7 +573,19 @@
                 <c:forEach items="${concealProjectInfo.projectContentData.projectBasedDataList}" var="projectBasedData" varStatus="idx">
                     <tr>
                         <td class="hide">
-                            <input type="hidden" id="workBaseDataList${idx.index}_id" value="${projectBasedData.id}" class="clientId">
+                            <input id="workBaseDataList${idx.index}_id"      name="projectReportData.projectBasedDataList[${idx.index}].id"     type="hidden" value="${projectBasedData.id}"  class="clientId">
+                            <input id="workBaseDataList${idx.index}_file" type="file" name="projectReportData.projectBasedDataList[${idx.index}].file" multiple="multiple" style="display: none;" onChange="if(this.value)insertAccording(this.value,${idx.index},'#workBaseDataList${idx.index}');"/>
+                            <input id="workBaseDataList${idx.index}_number"	 name="projectReportData.projectBasedDataList[${idx.index}].number" type="hidden" value="${projectBasedData.number}"/>
+                            <input id="workBaseDataList${idx.index}_name" 	 name="projectReportData.projectBasedDataList[${idx.index}].name"   type="hidden" value="${projectBasedData.name}"/>
+                            <input id="workBaseDataList${idx.index}_type"	 name="projectReportData.projectBasedDataList[${idx.index}].type"   type="hidden" value="${projectBasedData.type}"/>
+                            <input id="workBaseDataList${idx.index}_flag"	 name="projectReportData.projectBasedDataList[${idx.index}].flag"   type="hidden" value="132"/>
+                            <input id="workBaseDataList${idx.index}_chooseCondition"	 name="projectReportData.projectBasedDataList[${idx.index}].chooseCondition"   type="hidden" value="${projectBasedData.chooseCondition}"/>
+
+                            <input id="workBaseDataList${idx.index}_fileType"	 name="projectReportData.projectBasedDataList[${idx.index}].fileType"   type="hidden" value=""/>
+                            <input id="workBaseDataList${idx.index}_fileName"	 name="projectReportData.projectBasedDataList[${idx.index}].fileName"   type="hidden" value=""/>
+                            <input id="workBaseDataList${idx.index}_fileUrl"	 name="projectReportData.projectBasedDataList[${idx.index}].fileUrl"   type="hidden" value=""/>
+                            <input id="workBaseDataList${idx.index}_fileAttachmentFlag"	 name="projectReportData.projectBasedDataList[${idx.index}].fileAttachmentFlag"   type="hidden" value=""/>
+                            <input id="workBaseDataList${idx.index}_fileAttachmentId"	 name="projectReportData.projectBasedDataList[${idx.index}].fileAttachmentId"   type="hidden" value=""/>
                         </td>
                         <td style="text-align:center;">
                                 ${projectBasedData.number}
@@ -537,6 +612,50 @@
             </table>
                 </div>
             </div>
+            <script type="text/template" id="workBaseDataTplFirst">//<!--
+                <tr id="budgetList{{idx}}">
+                    <td class="hide">
+                            <input id="workBaseDataList{{idx}}_file" type="file" name="projectContentData.projectBasedDataList[{{idx}}].file" multiple="multiple" style="display: none;" onChange="if(this.value)insertAccording(this.value,{{idx}},'#workBaseDataList{{idx}}');"/>
+                            <input id="workBaseDataList{{idx}}_flag"	 name="projectContentData.projectBasedDataList[{{idx}}].flag"   type="hidden" value="132"/>
+                            <input id="workBaseDataList{{idx}}_chooseCondition"	 name="projectContentData.projectBasedDataList[{{idx}}].chooseCondition"   type="hidden" value="{{row.chooseCondition}}"/>
+
+                        <input id="workBaseDataList{{idx}}_id" name="projectContentData.projectBasedDataList[{{idx}}].id" type="hidden" value="{{row.id}}" class="clientId"/>
+                        <input id="workBaseDataList{{idx}}_number" name="projectContentData.projectBasedDataList[{{idx}}].number" type="hidden" value="{{row.number}}"/>
+                        <input id="workBaseDataList{{idx}}_name" name="projectContentData.projectBasedDataList[{{idx}}].name" type="hidden" value="{{row.name}}"/>
+                        <input id="workBaseDataList{{idx}}_type" name="projectContentData.projectBasedDataList[{{idx}}].type" type="hidden" value="{{row.type}}"/>
+
+                        <input id="workBaseDataList{{idx}}_fileType"	 name="projectContentData.projectBasedDataList[{{idx}}].fileType"   type="hidden" value=""/>
+                        <input id="workBaseDataList{{idx}}_fileName"	 name="projectContentData.projectBasedDataList[{{idx}}].fileName"   type="hidden" value=""/>
+                        <input id="workBaseDataList{{idx}}_fileUrl"	 name="projectContentData.projectBasedDataList[{{idx}}].fileUrl"   type="hidden" value=""/>
+                        <input id="workBaseDataList{{idx}}_fileAttachmentFlag"	 name="projectContentData.projectBasedDataList[{{idx}}].fileAttachmentFlag"   type="hidden" value=""/>
+                        <input id="workBaseDataList{{idx}}}_fileAttachmentId"	 name="projectContentData.projectBasedDataList[{{idx}}].fileAttachmentId"   type="hidden" value=""/>
+                    </td>
+                    <%--<td style="text-align:center;">
+                        {{row.number}}
+                    </td>--%>
+                    <td style="text-align:center;">
+                        {{row.name}}
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.typeLabel}}
+                    </td>
+                    <td style="text-align:center;">
+                        <div id="workBaseDataList{{idx}}_fileTypeDiv">
+                        </div>
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.uploadUser.name}}
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.uploadDate}}
+                    </td>
+                    <td class="text-center op-td">
+                        <div id="workBaseDataList{{idx}}_operation">
+                            <a href=javascript:void(0); onclick="accordingBtn(this, '#workBaseDataList{{idx}}','{{row.uploadUser.id}}')"   class="op-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i> 添加附件</a>
+                        </div>
+                    </td>
+                </tr>//-->
+            </script>
             <script type="text/template" id="workBaseDataTpl">//<!--
                 <tr id="budgetList{{idx}}">
                     <td class="hide">
@@ -567,6 +686,7 @@
             </script>
             <script type="text/javascript">
                 var workBaseDataTpl = $("#workBaseDataTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+                var workBaseDataTplFirst = $("#workBaseDataTplFirst").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
                 var workBaseDataRowIdx = ${fn:length(concealProjectInfo.projectReportData.projectBasedDataList)};
                 function setValuee(obj){
                     for(var i=0;i<obj.length;i++){

+ 2 - 3
src/main/webapp/webpage/modules/projectrecord/armorForMaterials/armorForMaterialsList.jsp

@@ -271,7 +271,7 @@
                             }else if(d.condition ==2){
                                 return  "<a class=\"attention-info pid\" title=\"" + d.contractName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看合同信息', '${ctx}/project/constructionContract/view?id=" + d.contractId +"','95%', '95%')\">" + d.contractName + "</a>";
                             }else{
-                                return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('查看隐蔽工程量信息', '${ctx}/project/armorForMaterials/form?type=view&infoId="+d.id+"&contractId="+d.contractId+"&project.id="+d.projectId+"&contract.id="+d.pid+"','95%', '95%')\">" + d.contractName + "</a>";
+                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看隐蔽工程量信息', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=armor&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
                             }
                         }},
                     {field: 'date', align:'center', title: '创建日期',width:100,templet: function(d){
@@ -324,8 +324,7 @@
             } else if (d.condition ==3){
                 if(1 == d.operationSign) {
                     return [
-                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改甲供物资信息\', \'${ctx}/project/armorForMaterials/form?infoId='+d.id+'&contractId='+d.contractId+'&project.id='+d.projectId+'&contract.id='+d.pid+'\',\'95%\',\'95%\')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>',
-                        '<a href="${ctx}/project/armorForMaterials/deleteConcealProject?id='+d.id+'" onclick="return confirmx(\'确认要删除该甲供物资信息吗?\', this.href)"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 删除</a>',
+                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改隐蔽工程量信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=armor&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'\',\'95%\',\'95%\')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>',
                     ].join('');
                 }else{
                     return[''].join('');

+ 1 - 1
src/main/webapp/webpage/modules/projectrecord/claim/projectClaimForm.jsp

@@ -487,7 +487,7 @@
             <form:hidden path="project.id"/>
             <form:hidden path="contract.id"/>
             <form:hidden path="projectContentData.id"/>
-            <input type="hidden" name="project.workContractInfo.id" value="${concealProjectInfo.contract.id}">
+            <input type="hidden" name="projectContentData.contractId" value="${concealProjectInfo.contract.id}">
             <input type="hidden" name="projectContentData.type" value="46">
             <input type="hidden" id="contentDeta" name="projectContentData.contentDetail">
             <input type="hidden" id="dataBodyList" name="dataBodyList" value="">

+ 2 - 3
src/main/webapp/webpage/modules/projectrecord/concealProject/concealProjectList.jsp

@@ -272,7 +272,7 @@
                             }else if(d.condition ==2){
                                 return  "<a class=\"attention-info pid\" title=\"" + d.contractName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看合同信息', '${ctx}/project/constructionContract/view?id=" + d.contractId +"','95%', '95%')\">" + d.contractName + "</a>";
                             }else{
-                                return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('查看隐蔽工程量信息', '${ctx}/project/concealProject/form?type=view&infoId="+d.id+"&contractId="+d.contractId+"&project.id="+d.projectId+"&contract.id="+d.pid+"','95%', '95%')\">" + d.contractName + "</a>";
+                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看隐蔽工程量信息', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=conceal&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
                             }
                         }},
                     {field: 'date', align:'center', title: '创建日期',width:100,templet: function(d){
@@ -325,8 +325,7 @@
             } else if (d.condition ==3){
                 if(1 == d.operationSign) {
                     return [
-                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改隐蔽工程量信息\', \'${ctx}/project/concealProject/form?infoId='+d.id+'&contractId='+d.contractId+'&project.id='+d.projectId+'&contract.id='+d.pid+'\',\'95%\',\'95%\')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>',
-                        '<a href="${ctx}/project/concealProject/deleteConcealProject?id='+d.id+'" onclick="return confirmx(\'确认要删除该隐蔽工程量信息吗?\', this.href)"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 删除</a>',
+                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改隐蔽工程量信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=conceal&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'\',\'95%\',\'95%\')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>',
                     ].join('');
                 }else{
                     return[''].join('');

+ 126 - 6
src/main/webapp/webpage/modules/projectrecord/concealProject/workContentForm.jsp

@@ -64,10 +64,19 @@
                     }
                 }
 
-                var idArr = $("#workBaseDataList tr:visible .clientId").length;
-                if(idArr == 0){
-                    layer.msg('请添加隐蔽工程量所需依据性文件', {icon: 5});
-                    return false;
+
+                var length = document.getElementById("workBaseDataList");
+                var rows = length.rows.length;
+                var idList = [];
+                for (var i=0;i<rows;i++){
+                    var chooseCondition = $("#workBaseDataList"+i+"_chooseCondition").val();
+                    if(chooseCondition==1){
+                        var fileUrl = $("#workBaseDataList"+i+"_fileUrl").val();
+                        if(fileUrl == null || fileUrl == ''){
+                            layer.msg('请上传依据性资料必填文件', {icon: 5});
+                            return false;
+                        }
+                    }
                 }
 
 
@@ -203,6 +212,33 @@
         function changeContentDetail(obj) {
             $("#contentDetail").empty();
             var val = "410";
+
+            var modify = $("#modify").val();
+            if("modify" != modify){
+                $("#workBaseDataList").empty();
+                $.ajax({
+                    type:'post',
+                    url:'${ctx}/project/projectImplementEarly/projectBasedDataList',
+                    data:{
+                        "typeId":val
+                    },
+                    success:function(data){
+                        console.log(data);
+                        if(data.projectBasedDataList.length > 0){
+                            var data = data.projectBasedDataList;
+                            for(var i=0;i<data.length;i++){
+                                var idArr = $("#workBaseDataList tr:visible .clientId");
+                                if(data[i].id!=''&&!hasInArr(data[i].id,idArr)){
+                                    addRowBaseData("#workBaseDataList",workBaseDataRowIdx,workBaseDataTplFirst,data[i]);
+                                    workBaseDataRowIdx=workBaseDataRowIdx+1;
+                                }
+                            }
+                        }
+                    }
+                })
+
+            }
+
             contentDetailTypeShow(val);
             $("#contentDetailTypeDiv").show();
             $("#projectContentDataSign").val(val);
@@ -429,12 +465,36 @@
             }
 
         }
+
+        //依据性文件点击事件
+        function accordingBtn(obj, prefix,userId){
+            $(prefix+"_file").click();
+        }
+        //依据性文件上传文件方法
+        function insertAccording(tValue,idx,prefix) {
+            var files = $(prefix+"_file")[0].files;
+            for(var i=0;i<files.length;i++) {
+                var file = files[i];
+                var attachmentId = "";
+                var attachmentFlag = "132";
+                console.log(file);
+                var timestamp = new Date().getTime();
+
+                var storeAs = "attachment-file/basedData/" + timestamp + "/" + file['name'];
+                var uploadPath = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/" + storeAs;
+                /*将这段字符串存到数据库即可*/
+                var divId = "_attachment";
+                multipartUploadWithSts(storeAs, file, attachmentId, attachmentFlag, uploadPath, divId, "0",1,idx,prefix);
+            }
+            $(prefix+"_file").val(123)
+            //var idx1 = $("#workBaseDataList tr").length +1;
+        }
     </script>
 </head>
 <body>
 <div class="single-form">
     <div class="container${container}">
-        <form:form id="inputForm" modelAttribute="concealProjectInfo" action="${ctx}/project/concealProject/save" method="post" class="form-horizontal">
+        <form:form id="inputForm" modelAttribute="concealProjectInfo" action="${ctx}/projectcontentinfo/projectcontentinfo/save" method="post" class="form-horizontal">
             <form:hidden path="id"/>
             <form:hidden path="edit"/>
             <form:hidden path="parentIds"/>
@@ -442,6 +502,9 @@
             <form:hidden path="project.id"/>
             <form:hidden path="contract.id"/>
             <form:hidden path="projectContentData.id"/>
+            <input type="hidden" name="projectContentData.contractId" value="${concealProjectInfo.contract.id}">
+            <input type="hidden" name="projectContentData.type" value="410">
+            <input type="hidden" id="projectId" value="${concealProjectInfo.project.id}">
             <input type="hidden" id="contentDeta" name="projectContentData.contentDetail">
             <input type="hidden" id="dataBodyList" name="dataBodyList" value="">
             <input type="hidden" id="projectContentDataSign" name="projectContentDataSign" value="">
@@ -519,7 +582,19 @@
                 <c:forEach items="${concealProjectInfo.projectContentData.projectBasedDataList}" var="projectBasedData" varStatus="idx">
                     <tr>
                         <td class="hide">
-                            <input type="hidden" id="workBaseDataList${idx.index}_id" value="${projectBasedData.id}" class="clientId">
+                            <input id="workBaseDataList${idx.index}_id"      name="projectReportData.projectBasedDataList[${idx.index}].id"     type="hidden" value="${projectBasedData.id}"  class="clientId">
+                            <input id="workBaseDataList${idx.index}_file" type="file" name="projectReportData.projectBasedDataList[${idx.index}].file" multiple="multiple" style="display: none;" onChange="if(this.value)insertAccording(this.value,${idx.index},'#workBaseDataList${idx.index}');"/>
+                            <input id="workBaseDataList${idx.index}_number"	 name="projectReportData.projectBasedDataList[${idx.index}].number" type="hidden" value="${projectBasedData.number}"/>
+                            <input id="workBaseDataList${idx.index}_name" 	 name="projectReportData.projectBasedDataList[${idx.index}].name"   type="hidden" value="${projectBasedData.name}"/>
+                            <input id="workBaseDataList${idx.index}_type"	 name="projectReportData.projectBasedDataList[${idx.index}].type"   type="hidden" value="${projectBasedData.type}"/>
+                            <input id="workBaseDataList${idx.index}_flag"	 name="projectReportData.projectBasedDataList[${idx.index}].flag"   type="hidden" value="132"/>
+                            <input id="workBaseDataList${idx.index}_chooseCondition"	 name="projectReportData.projectBasedDataList[${idx.index}].chooseCondition"   type="hidden" value="${projectBasedData.chooseCondition}"/>
+
+                            <input id="workBaseDataList${idx.index}_fileType"	 name="projectReportData.projectBasedDataList[${idx.index}].fileType"   type="hidden" value=""/>
+                            <input id="workBaseDataList${idx.index}_fileName"	 name="projectReportData.projectBasedDataList[${idx.index}].fileName"   type="hidden" value=""/>
+                            <input id="workBaseDataList${idx.index}_fileUrl"	 name="projectReportData.projectBasedDataList[${idx.index}].fileUrl"   type="hidden" value=""/>
+                            <input id="workBaseDataList${idx.index}_fileAttachmentFlag"	 name="projectReportData.projectBasedDataList[${idx.index}].fileAttachmentFlag"   type="hidden" value=""/>
+                            <input id="workBaseDataList${idx.index}_fileAttachmentId"	 name="projectReportData.projectBasedDataList[${idx.index}].fileAttachmentId"   type="hidden" value=""/>
                         </td>
                         <td style="text-align:center;">
                                 ${projectBasedData.number}
@@ -546,6 +621,50 @@
             </table>
                 </div>
             </div>
+            <script type="text/template" id="workBaseDataTplFirst">//<!--
+                <tr id="budgetList{{idx}}">
+                    <td class="hide">
+                            <input id="workBaseDataList{{idx}}_file" type="file" name="projectContentData.projectBasedDataList[{{idx}}].file" multiple="multiple" style="display: none;" onChange="if(this.value)insertAccording(this.value,{{idx}},'#workBaseDataList{{idx}}');"/>
+                            <input id="workBaseDataList{{idx}}_flag"	 name="projectContentData.projectBasedDataList[{{idx}}].flag"   type="hidden" value="132"/>
+                            <input id="workBaseDataList{{idx}}_chooseCondition"	 name="projectContentData.projectBasedDataList[{{idx}}].chooseCondition"   type="hidden" value="{{row.chooseCondition}}"/>
+
+                        <input id="workBaseDataList{{idx}}_id" name="projectContentData.projectBasedDataList[{{idx}}].id" type="hidden" value="{{row.id}}" class="clientId"/>
+                        <input id="workBaseDataList{{idx}}_number" name="projectContentData.projectBasedDataList[{{idx}}].number" type="hidden" value="{{row.number}}"/>
+                        <input id="workBaseDataList{{idx}}_name" name="projectContentData.projectBasedDataList[{{idx}}].name" type="hidden" value="{{row.name}}"/>
+                        <input id="workBaseDataList{{idx}}_type" name="projectContentData.projectBasedDataList[{{idx}}].type" type="hidden" value="{{row.type}}"/>
+
+                        <input id="workBaseDataList{{idx}}_fileType"	 name="projectContentData.projectBasedDataList[{{idx}}].fileType"   type="hidden" value=""/>
+                        <input id="workBaseDataList{{idx}}_fileName"	 name="projectContentData.projectBasedDataList[{{idx}}].fileName"   type="hidden" value=""/>
+                        <input id="workBaseDataList{{idx}}_fileUrl"	 name="projectContentData.projectBasedDataList[{{idx}}].fileUrl"   type="hidden" value=""/>
+                        <input id="workBaseDataList{{idx}}_fileAttachmentFlag"	 name="projectContentData.projectBasedDataList[{{idx}}].fileAttachmentFlag"   type="hidden" value=""/>
+                        <input id="workBaseDataList{{idx}}}_fileAttachmentId"	 name="projectContentData.projectBasedDataList[{{idx}}].fileAttachmentId"   type="hidden" value=""/>
+                    </td>
+                    <%--<td style="text-align:center;">
+                        {{row.number}}
+                    </td>--%>
+                    <td style="text-align:center;">
+                        {{row.name}}
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.typeLabel}}
+                    </td>
+                    <td style="text-align:center;">
+                        <div id="workBaseDataList{{idx}}_fileTypeDiv">
+                        </div>
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.uploadUser.name}}
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.uploadDate}}
+                    </td>
+                    <td class="text-center op-td">
+                        <div id="workBaseDataList{{idx}}_operation">
+                            <a href=javascript:void(0); onclick="accordingBtn(this, '#workBaseDataList{{idx}}','{{row.uploadUser.id}}')"   class="op-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i> 添加附件</a>
+                        </div>
+                    </td>
+                </tr>//-->
+            </script>
             <script type="text/template" id="workBaseDataTpl">//<!--
                 <tr id="budgetList{{idx}}">
                     <td class="hide">
@@ -576,6 +695,7 @@
             </script>
             <script type="text/javascript">
                 var workBaseDataTpl = $("#workBaseDataTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+                var workBaseDataTplFirst = $("#workBaseDataTplFirst").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
                 var workBaseDataRowIdx = ${fn:length(concealProjectInfo.projectReportData.projectBasedDataList)};
                 function setValuee(obj){
                     for(var i=0;i<obj.length;i++){

+ 3 - 3
src/main/webapp/webpage/modules/projectrecord/contractMaterial/materialList.jsp

@@ -272,7 +272,8 @@
                             }else if(d.condition ==2){
                                 return  "<a class=\"attention-info pid\" title=\"" + d.contractName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看合同信息', '${ctx}/project/constructionContract/view?id=" + d.contractId +"','95%', '95%')\">" + d.contractName + "</a>";
                             }else{
-                                return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('查看暂定材料信息', '${ctx}/project/contractMaterial/form?type=view&infoId="+d.id+"&contractId="+d.contractId+"&project.id="+d.projectId+"&contract.id="+d.pid+"','95%', '95%')\">" + d.contractName + "</a>";                            }
+                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看隐蔽工程量信息', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=material&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
+                            }
                         }},
                     {field: 'date', align:'center', title: '创建日期',width:100,templet: function(d){
                             var date=d.createDate;
@@ -324,8 +325,7 @@
             } else if (d.condition ==3){
                 if(1 == d.operationSign) {
                     return [
-                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改暂定材料信息\', \'${ctx}/project/contractMaterial/form?infoId='+d.id+'&contractId='+d.contractId+'&project.id='+d.projectId+'&contract.id='+d.pid+'\',\'95%\',\'95%\')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>',
-                        '<a href="${ctx}/project/contractMaterial/deleteConcealProject?id='+d.id+'" onclick="return confirmx(\'确认要删除该暂定材料吗?\', this.href)"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 删除</a>',
+                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改隐蔽工程量信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=material&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'\',\'95%\',\'95%\')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>',
                     ].join('');
                 }else{
                     return[''].join('');

+ 124 - 6
src/main/webapp/webpage/modules/projectrecord/contractMaterial/workMaterialForm.jsp

@@ -52,10 +52,18 @@
                     }
                 }
 
-                var idArr = $("#workBaseDataList tr:visible .clientId").length;
-                if(idArr == 0){
-                    layer.msg('请添加暂定材料价审核所需依据性文件', {icon: 5});
-                    return false;
+                var length = document.getElementById("workBaseDataList");
+                var rows = length.rows.length;
+                var idList = [];
+                for (var i=0;i<rows;i++){
+                    var chooseCondition = $("#workBaseDataList"+i+"_chooseCondition").val();
+                    if(chooseCondition==1){
+                        var fileUrl = $("#workBaseDataList"+i+"_fileUrl").val();
+                        if(fileUrl == null || fileUrl == ''){
+                            layer.msg('请上传依据性资料必填文件', {icon: 5});
+                            return false;
+                        }
+                    }
                 }
 
                 beforeSubmit();
@@ -190,6 +198,33 @@
         function changeContentDetail(obj) {
             $("#contentDetail").empty();
             var val = "421";
+
+            var modify = $("#modify").val();
+            if("modify" != modify){
+                $("#workBaseDataList").empty();
+                $.ajax({
+                    type:'post',
+                    url:'${ctx}/project/projectImplementEarly/projectBasedDataList',
+                    data:{
+                        "typeId":val
+                    },
+                    success:function(data){
+                        console.log(data);
+                        if(data.projectBasedDataList.length > 0){
+                            var data = data.projectBasedDataList;
+                            for(var i=0;i<data.length;i++){
+                                var idArr = $("#workBaseDataList tr:visible .clientId");
+                                if(data[i].id!=''&&!hasInArr(data[i].id,idArr)){
+                                    addRowBaseData("#workBaseDataList",workBaseDataRowIdx,workBaseDataTplFirst,data[i]);
+                                    workBaseDataRowIdx=workBaseDataRowIdx+1;
+                                }
+                            }
+                        }
+                    }
+                })
+
+            }
+
             contentDetailTypeShow(val);
             $("#contentDetailTypeDiv").show();
             $("#projectContentDataSign").val(val);
@@ -416,12 +451,35 @@
             }
 
         }
+        //依据性文件点击事件
+        function accordingBtn(obj, prefix,userId){
+            $(prefix+"_file").click();
+        }
+        //依据性文件上传文件方法
+        function insertAccording(tValue,idx,prefix) {
+            var files = $(prefix+"_file")[0].files;
+            for(var i=0;i<files.length;i++) {
+                var file = files[i];
+                var attachmentId = "";
+                var attachmentFlag = "132";
+                console.log(file);
+                var timestamp = new Date().getTime();
+
+                var storeAs = "attachment-file/basedData/" + timestamp + "/" + file['name'];
+                var uploadPath = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/" + storeAs;
+                /*将这段字符串存到数据库即可*/
+                var divId = "_attachment";
+                multipartUploadWithSts(storeAs, file, attachmentId, attachmentFlag, uploadPath, divId, "0",1,idx,prefix);
+            }
+            $(prefix+"_file").val(123)
+            //var idx1 = $("#workBaseDataList tr").length +1;
+        }
     </script>
 </head>
 <body>
 <div class="single-form">
     <div class="container${container}">
-        <form:form id="inputForm" modelAttribute="materialProjectInfo" action="${ctx}/project/contractMaterial/save"  method="post" class="form-horizontal">
+        <form:form id="inputForm" modelAttribute="materialProjectInfo" action="${ctx}/projectcontentinfo/projectcontentinfo/save"  method="post" class="form-horizontal">
             <form:hidden path="id"/>
             <form:hidden path="edit"/>
             <form:hidden path="parentIds"/>
@@ -429,6 +487,9 @@
             <form:hidden path="project.id"/>
             <form:hidden path="contract.id"/>
             <form:hidden path="projectContentData.id"/>
+            <input type="hidden" name="projectContentData.contractId" value="${materialProjectInfo.contract.id}">
+            <input type="hidden" name="projectContentData.type" value="421">
+            <input type="hidden" id="projectId" value="${concealProjectInfo.project.id}">
             <input type="hidden" id="contentDeta" name="projectContentData.contentDetail">
             <input type="hidden" id="dataBodyList" name="dataBodyList" value="">
             <input type="hidden" id="projectContentDataSign" name="projectContentDataSign" value="">
@@ -506,7 +567,19 @@
                 <c:forEach items="${materialProjectInfo.projectContentData.projectBasedDataList}" var="projectBasedData" varStatus="idx">
                     <tr>
                         <td class="hide">
-                            <input type="hidden" id="workBaseDataList${idx.index}_id" value="${projectBasedData.id}" class="clientId">
+                            <input id="workBaseDataList${idx.index}_id"      name="projectReportData.projectBasedDataList[${idx.index}].id"     type="hidden" value="${projectBasedData.id}"  class="clientId">
+                            <input id="workBaseDataList${idx.index}_file" type="file" name="projectReportData.projectBasedDataList[${idx.index}].file" multiple="multiple" style="display: none;" onChange="if(this.value)insertAccording(this.value,${idx.index},'#workBaseDataList${idx.index}');"/>
+                            <input id="workBaseDataList${idx.index}_number"	 name="projectReportData.projectBasedDataList[${idx.index}].number" type="hidden" value="${projectBasedData.number}"/>
+                            <input id="workBaseDataList${idx.index}_name" 	 name="projectReportData.projectBasedDataList[${idx.index}].name"   type="hidden" value="${projectBasedData.name}"/>
+                            <input id="workBaseDataList${idx.index}_type"	 name="projectReportData.projectBasedDataList[${idx.index}].type"   type="hidden" value="${projectBasedData.type}"/>
+                            <input id="workBaseDataList${idx.index}_flag"	 name="projectReportData.projectBasedDataList[${idx.index}].flag"   type="hidden" value="132"/>
+                            <input id="workBaseDataList${idx.index}_chooseCondition"	 name="projectReportData.projectBasedDataList[${idx.index}].chooseCondition"   type="hidden" value="${projectBasedData.chooseCondition}"/>
+
+                            <input id="workBaseDataList${idx.index}_fileType"	 name="projectReportData.projectBasedDataList[${idx.index}].fileType"   type="hidden" value=""/>
+                            <input id="workBaseDataList${idx.index}_fileName"	 name="projectReportData.projectBasedDataList[${idx.index}].fileName"   type="hidden" value=""/>
+                            <input id="workBaseDataList${idx.index}_fileUrl"	 name="projectReportData.projectBasedDataList[${idx.index}].fileUrl"   type="hidden" value=""/>
+                            <input id="workBaseDataList${idx.index}_fileAttachmentFlag"	 name="projectReportData.projectBasedDataList[${idx.index}].fileAttachmentFlag"   type="hidden" value=""/>
+                            <input id="workBaseDataList${idx.index}_fileAttachmentId"	 name="projectReportData.projectBasedDataList[${idx.index}].fileAttachmentId"   type="hidden" value=""/>
                         </td>
                         <td style="text-align:center;">
                                 ${projectBasedData.number}
@@ -533,6 +606,50 @@
             </table>
                 </div>
             </div>
+            <script type="text/template" id="workBaseDataTplFirst">//<!--
+                <tr id="budgetList{{idx}}">
+                    <td class="hide">
+                            <input id="workBaseDataList{{idx}}_file" type="file" name="projectContentData.projectBasedDataList[{{idx}}].file" multiple="multiple" style="display: none;" onChange="if(this.value)insertAccording(this.value,{{idx}},'#workBaseDataList{{idx}}');"/>
+                            <input id="workBaseDataList{{idx}}_flag"	 name="projectContentData.projectBasedDataList[{{idx}}].flag"   type="hidden" value="132"/>
+                            <input id="workBaseDataList{{idx}}_chooseCondition"	 name="projectContentData.projectBasedDataList[{{idx}}].chooseCondition"   type="hidden" value="{{row.chooseCondition}}"/>
+
+                        <input id="workBaseDataList{{idx}}_id" name="projectContentData.projectBasedDataList[{{idx}}].id" type="hidden" value="{{row.id}}" class="clientId"/>
+                        <input id="workBaseDataList{{idx}}_number" name="projectContentData.projectBasedDataList[{{idx}}].number" type="hidden" value="{{row.number}}"/>
+                        <input id="workBaseDataList{{idx}}_name" name="projectContentData.projectBasedDataList[{{idx}}].name" type="hidden" value="{{row.name}}"/>
+                        <input id="workBaseDataList{{idx}}_type" name="projectContentData.projectBasedDataList[{{idx}}].type" type="hidden" value="{{row.type}}"/>
+
+                        <input id="workBaseDataList{{idx}}_fileType"	 name="projectContentData.projectBasedDataList[{{idx}}].fileType"   type="hidden" value=""/>
+                        <input id="workBaseDataList{{idx}}_fileName"	 name="projectContentData.projectBasedDataList[{{idx}}].fileName"   type="hidden" value=""/>
+                        <input id="workBaseDataList{{idx}}_fileUrl"	 name="projectContentData.projectBasedDataList[{{idx}}].fileUrl"   type="hidden" value=""/>
+                        <input id="workBaseDataList{{idx}}_fileAttachmentFlag"	 name="projectContentData.projectBasedDataList[{{idx}}].fileAttachmentFlag"   type="hidden" value=""/>
+                        <input id="workBaseDataList{{idx}}}_fileAttachmentId"	 name="projectContentData.projectBasedDataList[{{idx}}].fileAttachmentId"   type="hidden" value=""/>
+                    </td>
+                    <%--<td style="text-align:center;">
+                        {{row.number}}
+                    </td>--%>
+                    <td style="text-align:center;">
+                        {{row.name}}
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.typeLabel}}
+                    </td>
+                    <td style="text-align:center;">
+                        <div id="workBaseDataList{{idx}}_fileTypeDiv">
+                        </div>
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.uploadUser.name}}
+                    </td>
+                    <td style="text-align:center;">
+                        {{row.uploadDate}}
+                    </td>
+                    <td class="text-center op-td">
+                        <div id="workBaseDataList{{idx}}_operation">
+                            <a href=javascript:void(0); onclick="accordingBtn(this, '#workBaseDataList{{idx}}','{{row.uploadUser.id}}')"   class="op-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i> 添加附件</a>
+                        </div>
+                    </td>
+                </tr>//-->
+            </script>
             <script type="text/template" id="workBaseDataTpl">//<!--
                 <tr id="budgetList{{idx}}">
                     <td class="hide">
@@ -563,6 +680,7 @@
             </script>
             <script type="text/javascript">
                 var workBaseDataTpl = $("#workBaseDataTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+                var workBaseDataTplFirst = $("#workBaseDataTplFirst").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
                 var workBaseDataRowIdx = ${fn:length(materialProjectInfo.projectReportData.projectBasedDataList)};
                 function setValuee(obj){
                     for(var i=0;i<obj.length;i++){

+ 371 - 0
src/main/webapp/webpage/modules/projectrecord/summarizing/armorProjectRecordsList.jsp

@@ -0,0 +1,371 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目登记</title>
+	<meta name="decorator" content="default"/>
+    <link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />
+	<%--<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>--%>
+    <style>
+        .layui-table th{
+            font-size: 14px;
+            /*表头内容居中显示*/
+            text-align: center;
+        }
+		.pid{
+			font-size:14px;
+			font-weight:400;
+		}
+    </style>
+	<script type="text/javascript">
+        $(document).ready(function() {
+
+            //搜索框收放
+            $('#moresee').click(function(){
+                if($('#moresees').is(':visible'))
+                {
+                    $('#moresees').slideUp(0,resizeListWindow2);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-up").addClass("glyphicon glyphicon-menu-down");
+                }else{
+                    $('#moresees').slideDown(0,resizeListWindow2);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-down").addClass("glyphicon glyphicon-menu-up");
+                }
+            });
+            laydate.render({
+                elem: '#beginDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+            });
+        });
+
+        function reset() {
+            $("#searchForm").resetForm();
+        }
+
+        function openDialog(title,url,width,height,target) {
+
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url,
+                skin: 'three-btns',
+                btn: ['送审', '暂存', '关闭'],
+                /*yes: function (index, layero) {
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if (target) {
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    } else {
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+
+                    if (iframeWin.contentWindow.doSubmit()) {
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function () {
+                            top.layer.close(index)
+                        }, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+
+                },*/
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }else {
+                        return false;
+                    }
+                },
+                btn3: function (index) {
+                }
+            });
+        }
+
+        function openDialogre(title,url,width,height,target,buttons) {
+
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            var split = buttons.split(",");
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                skin: 'three-btns',
+                content: url,
+                btn: split,
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    if(split.length==2){return}
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }else {
+                        return false;
+                    }
+                },
+                btn3: function (index) {
+                }
+            });
+        }
+	</script>
+	<style>
+		body{
+			background-color:transparent;
+			filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
+			color:#ffffff;
+			background-color:rgba(255,255,255,0);
+			height:100%;
+		}
+	</style>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+	<sys:message content="${message}"/>
+	<div class="layui-row">
+		<div class="full-width fl">
+			<div class="list-form-tab contentShadow shadowLTR" id="tabDiv">
+				<ul class="list-tabs" >
+					<li><a href="${ctx}/project/interimPaymentSummarizing/list">工程进度款汇总表</a></li>
+					<li><a href="${ctx}/project/designSummarizing/list">设计变更汇总表</a></li>
+					<li><a href="${ctx}/project/visaSummarizing/list">现场签证汇总表</a></li>
+					<li><a href="${ctx}/project/claimSummarizing/list">索赔汇总表</a></li>
+					<li><a href="${ctx}/project/distributionSummarizing/list">分布结算汇总表</a></li>
+					<li><a href="${ctx}/project/materialSummarizing/list">暂定材料价汇总表</a></li>
+					<li class="active"><a href="${ctx}/project/armorSummarizing/list">甲供物资汇总表</a></li>
+					<li><a href="${ctx}/project/concealSummarizing/list">隐蔽工程量汇总表</a></li>
+				</ul>
+			</div>
+			<div class="layui-row contentShadow shadowLR" id="queryDiv">
+				<form:form id="searchForm" modelAttribute="projectRecords" action="${ctx}/project/armorSummarizing/" method="post" class="form-inline">
+					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+					<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+					<div class="commonQuery lw6">
+						<div class="layui-item query athird">
+							<label class="layui-form-label">项目名称:</label>
+							<div class="layui-input-block">
+								<form:input path="projectName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">项目负责人:</label>
+							<div class="layui-input-block">
+								<form:input path="leaderNameStr" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item athird">
+							<div class="input-group">
+								<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
+								<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>
+								<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>
+							</div>
+						</div>
+						<div style="    clear:both;"></div>
+					</div>
+					<div id="moresees" style="clear:both;display:none;" class="lw6">
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">合同名称:</label>
+							<div class="layui-input-block">
+								<input type="text" input="workContractInfoName" name="workContractInfo.name" value="" htmlEscape="false" maxlength="255"  class=" form-control layui-input">
+							</div>
+						</div>
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">委托方:</label>
+							<div class="layui-input-block">
+								<input type="text" input="workContractInfoClientName" name="workContractInfo.client.name" value="" htmlEscape="false" maxlength="255"  class=" form-control layui-input">
+							</div>
+						</div>
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">创建时间:</label>
+							<div class="layui-input-block">
+								<input id="beginDate" name="beginDate" placeholder="开始时间" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+									   value="<fmt:formatDate value="${projectRecords.beginDate}" pattern="yyyy-MM-dd"/>"/>
+								</input>
+                                <span class="group-sep">-</span>
+                                <input id="endDate" name="endDate" placeholder="结束时间" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+                                       value="<fmt:formatDate value="${projectRecords.endDate}" pattern="yyyy-MM-dd"/>"/>
+                                </input>
+							</div>
+						</div>
+						<div style="clear:both;"></div>
+					</div>
+				</form:form>
+			</div>
+		</div>
+		<div class="full-width fl">
+			<div class="layui-form contentDetails contentShadow shadowLBR">
+				<div class="nav-btns">
+					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
+				</div>
+				<table class="oa-table layui-table" id="contentTable1"></table>
+				<table:page page="${page}"></table:page>
+				<div style="clear: both;"></div>
+			</div>
+		</div>
+	</div>
+	<div id="changewidth"></div>
+</div>
+
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+
+    layui.use('table', function(){
+        layui.table.render({
+            limit:${ page.pageSize }
+            ,elem: '#contentTable1'
+            ,page: false
+            ,cols: [[
+                {field:'index',align:'center', title: '序号',width:40}
+                ,{field:'projName',align:'center', title: '项目名称',minWidth:200,templet:function(d){
+                        return "<a class=\"attention-info\" title=\"" + d.projName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/project/projectRecords/view?id=" + d.id +"','95%', '95%')\">" + d.projName + "</a>";
+                    }}
+                ,{field:'projId',align:'center', title: '项目编号',minWidth:150,templet:function(d){
+                        return "<a class=\"attention-info\" title=\"" + d.projId + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看甲供物资信息', '${ctx}/project/armorSummarizing/form?view=contentView&condition=interim&type=411&infoId="+d.id+"&id="+d.contentPId+"','95%', '95%')\">" + d.projId + "</a>";
+                    }}
+                ,{field:'contract', align:'center',title: '合同名称',minWidth:150,templet:function(d){
+                    	return "<span title='"+ d.contract +"'>" + d.contract + "</span>";
+					}}
+                ,{field:'projMaster', align:'center',title: '负责人', width:85,templet:function(d){
+                        return "<span title=\"" + d.projMaster + "\">" + d.projMaster + "</span>";
+                    }}
+                ,{field:'client',align:'center', title: '主委托方',  width:150,templet:function(d){
+                        return "<span title=\"" + d.client + "\">" + d.client + "</span>";
+                    }}
+                ,{field:'createDate',align:'center', title: '创建日期',  width:80}
+                ,{field:'op',align:'center',title:"操作",width:130,templet:function(d){
+                        ////对操作进行初始化
+                        var xml="";
+                        /*if(d.canedit3 != undefined && d.canedit3 =="1")
+                        {*/
+							xml+="<a href=\"javascript:void(0)\" onclick=\"openDialogView('查看甲供物资信息', '${ctx}/project/armorSummarizing/form?view=contentView&condition=interim&type=411&infoId="+d.id+"&id="+d.contentPId+"','95%','95%')\" style=\"color: white;background: darkseagreen\" class=\"op-btn op-btn-op-btn-revert\" ><i class=\"fa fa-edit\"></i> 详情</a>"
+                        /*}*/
+                        return xml;
+
+                    }}
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="projectRecords" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+                    "index":"${index.index+1}"
+                    ,"id":"${projectRecords.id}"
+                    ,"projId":"${projectRecords.projectId}"
+                    ,"projName":"<c:out value="${projectRecords.projectName}" escapeXml="true"/>"
+                    ,"projMaster":"<c:forEach items="${projectRecords.projectLeaders}" var="leader" varStatus="status"><c:choose><c:when test="${status.last}">${leader.name}</c:when><c:otherwise>${leader.name},</c:otherwise></c:choose></c:forEach>"
+                    ,"contract":"${projectRecords.workContractInfo.name}"
+                    ,"client":"${projectRecords.workContractInfo.client.name}"
+                    ,"createDate":"<fmt:formatDate value="${projectRecords.createDate}" pattern="yyyy-MM-dd"/>"
+                    ,"projectStatus":"${projectRecords.projectStatus}"
+                    ,"procId":"${projectRecords.processInstanceId}"
+                    ,"contentPId":"${projectRecords.contentPId}"
+                    ,"dictType":"${projectRecords.dictType}"
+                    <c:choose><c:when test="${flag == '1' or fns:getUser().id == projectRecords.createBy.id}">
+                    <shiro:hasPermission name="project:projectRecords:del">,"candel":	<c:choose><c:when test="${projectRecords.projectStatus == 1 or projectRecords.projectStatus == 3 or projectRecords.projectStatus == 4}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose></shiro:hasPermission>
+                    <shiro:hasPermission name="project:projectRecords:edit">,"canedit1":	<c:choose><c:when test="${projectRecords.projectStatus == 1 }">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    ,"canedit2":<c:choose><c:when test="${projectRecords.projectStatus == 4}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    ,"canrecall":<c:choose><c:when test="${projectRecords.projectStatus == 3}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    </shiro:hasPermission>
+                    ,"cancancel":<c:choose><c:when test="${projectRecords.projectStatus == 2 && fns:getUser().id == projectRecords.createBy.id}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    ,"candel":"0"
+                    ,"canedit1":"0"
+                    ,"canedit2":"0"
+                    ,"canrecall":"0"
+                    ,"cancancel":"0"
+                    </c:otherwise>
+                    </c:choose>
+                    <shiro:hasPermission name="project:projectRecords:edit">,"canedit3":<c:choose><c:when test="${projectRecords.projectStatus == 5 && fn:contains(projectRecords.leaderIds,fns:getUser().id)}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose></shiro:hasPermission>
+                }
+                </c:forEach>
+                </c:if>
+            ]
+        });
+    })
+
+    resizeListTable();
+    $("a").on("click",addLinkVisied);
+</script>
+<script>
+    resizeListWindow2();
+    $(window).resize(function(){
+        resizeListWindow2();
+    });
+</script>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script src="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.js" charset="utf-8"></script>
+</body>
+</html>

+ 5 - 2
src/main/webapp/webpage/modules/projectrecord/summarizing/claimSumamarizingProjectRecordsList.jsp

@@ -197,15 +197,18 @@
 		<div class="full-width fl">
 			<div class="list-form-tab contentShadow shadowLTR" id="tabDiv">
 				<ul class="list-tabs" >
-					<li><a href="${ctx}/project/designSummarizing/list">工程进度款汇总表</a></li>
+					<li><a href="${ctx}/project/interimPaymentSummarizing/list">工程进度款汇总表</a></li>
 					<li><a href="${ctx}/project/designSummarizing/list">设计变更汇总表</a></li>
 					<li><a href="${ctx}/project/visaSummarizing/list">现场签证汇总表</a></li>
 					<li class="active"><a href="${ctx}/project/claimSummarizing/list">索赔汇总表</a></li>
 					<li><a href="${ctx}/project/distributionSummarizing/list">分布结算汇总表</a></li>
+					<li><a href="${ctx}/project/materialSummarizing/list">暂定材料价汇总表</a></li>
+					<li><a href="${ctx}/project/armorSummarizing/list">甲供物资汇总表</a></li>
+					<li><a href="${ctx}/project/concealSummarizing/list">隐蔽工程量汇总表</a></li>
 				</ul>
 			</div>
 			<div class="layui-row contentShadow shadowLR" id="queryDiv">
-				<form:form id="searchForm" modelAttribute="projectRecords" action="${ctx}/project/designSummarizing/" method="post" class="form-inline">
+				<form:form id="searchForm" modelAttribute="projectRecords" action="${ctx}/project/claimSummarizing/" method="post" class="form-inline">
 					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
 					<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
 					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->

+ 371 - 0
src/main/webapp/webpage/modules/projectrecord/summarizing/concealProjectRecordsList.jsp

@@ -0,0 +1,371 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目登记</title>
+	<meta name="decorator" content="default"/>
+    <link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />
+	<%--<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>--%>
+    <style>
+        .layui-table th{
+            font-size: 14px;
+            /*表头内容居中显示*/
+            text-align: center;
+        }
+		.pid{
+			font-size:14px;
+			font-weight:400;
+		}
+    </style>
+	<script type="text/javascript">
+        $(document).ready(function() {
+
+            //搜索框收放
+            $('#moresee').click(function(){
+                if($('#moresees').is(':visible'))
+                {
+                    $('#moresees').slideUp(0,resizeListWindow2);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-up").addClass("glyphicon glyphicon-menu-down");
+                }else{
+                    $('#moresees').slideDown(0,resizeListWindow2);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-down").addClass("glyphicon glyphicon-menu-up");
+                }
+            });
+            laydate.render({
+                elem: '#beginDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+            });
+        });
+
+        function reset() {
+            $("#searchForm").resetForm();
+        }
+
+        function openDialog(title,url,width,height,target) {
+
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url,
+                skin: 'three-btns',
+                btn: ['送审', '暂存', '关闭'],
+                /*yes: function (index, layero) {
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if (target) {
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    } else {
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+
+                    if (iframeWin.contentWindow.doSubmit()) {
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function () {
+                            top.layer.close(index)
+                        }, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+
+                },*/
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }else {
+                        return false;
+                    }
+                },
+                btn3: function (index) {
+                }
+            });
+        }
+
+        function openDialogre(title,url,width,height,target,buttons) {
+
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            var split = buttons.split(",");
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                skin: 'three-btns',
+                content: url,
+                btn: split,
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    if(split.length==2){return}
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }else {
+                        return false;
+                    }
+                },
+                btn3: function (index) {
+                }
+            });
+        }
+	</script>
+	<style>
+		body{
+			background-color:transparent;
+			filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
+			color:#ffffff;
+			background-color:rgba(255,255,255,0);
+			height:100%;
+		}
+	</style>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+	<sys:message content="${message}"/>
+	<div class="layui-row">
+		<div class="full-width fl">
+			<div class="list-form-tab contentShadow shadowLTR" id="tabDiv">
+				<ul class="list-tabs" >
+					<li><a href="${ctx}/project/interimPaymentSummarizing/list">工程进度款汇总表</a></li>
+					<li><a href="${ctx}/project/designSummarizing/list">设计变更汇总表</a></li>
+					<li><a href="${ctx}/project/visaSummarizing/list">现场签证汇总表</a></li>
+					<li><a href="${ctx}/project/claimSummarizing/list">索赔汇总表</a></li>
+					<li><a href="${ctx}/project/distributionSummarizing/list">分布结算汇总表</a></li>
+					<li><a href="${ctx}/project/materialSummarizing/list">暂定材料价汇总表</a></li>
+					<li><a href="${ctx}/project/armorSummarizing/list">甲供物资汇总表</a></li>
+					<li class="active"><a href="${ctx}/project/concealSummarizing/list">隐蔽工程量汇总表</a></li>
+				</ul>
+			</div>
+			<div class="layui-row contentShadow shadowLR" id="queryDiv">
+				<form:form id="searchForm" modelAttribute="projectRecords" action="${ctx}/project/concealSummarizing/" method="post" class="form-inline">
+					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+					<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+					<div class="commonQuery lw6">
+						<div class="layui-item query athird">
+							<label class="layui-form-label">项目名称:</label>
+							<div class="layui-input-block">
+								<form:input path="projectName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">项目负责人:</label>
+							<div class="layui-input-block">
+								<form:input path="leaderNameStr" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item athird">
+							<div class="input-group">
+								<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
+								<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>
+								<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>
+							</div>
+						</div>
+						<div style="    clear:both;"></div>
+					</div>
+					<div id="moresees" style="clear:both;display:none;" class="lw6">
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">合同名称:</label>
+							<div class="layui-input-block">
+								<input type="text" input="workContractInfoName" name="workContractInfo.name" value="" htmlEscape="false" maxlength="255"  class=" form-control layui-input">
+							</div>
+						</div>
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">委托方:</label>
+							<div class="layui-input-block">
+								<input type="text" input="workContractInfoClientName" name="workContractInfo.client.name" value="" htmlEscape="false" maxlength="255"  class=" form-control layui-input">
+							</div>
+						</div>
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">创建时间:</label>
+							<div class="layui-input-block">
+								<input id="beginDate" name="beginDate" placeholder="开始时间" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+									   value="<fmt:formatDate value="${projectRecords.beginDate}" pattern="yyyy-MM-dd"/>"/>
+								</input>
+                                <span class="group-sep">-</span>
+                                <input id="endDate" name="endDate" placeholder="结束时间" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+                                       value="<fmt:formatDate value="${projectRecords.endDate}" pattern="yyyy-MM-dd"/>"/>
+                                </input>
+							</div>
+						</div>
+						<div style="clear:both;"></div>
+					</div>
+				</form:form>
+			</div>
+		</div>
+		<div class="full-width fl">
+			<div class="layui-form contentDetails contentShadow shadowLBR">
+				<div class="nav-btns">
+					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
+				</div>
+				<table class="oa-table layui-table" id="contentTable1"></table>
+				<table:page page="${page}"></table:page>
+				<div style="clear: both;"></div>
+			</div>
+		</div>
+	</div>
+	<div id="changewidth"></div>
+</div>
+
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+
+    layui.use('table', function(){
+        layui.table.render({
+            limit:${ page.pageSize }
+            ,elem: '#contentTable1'
+            ,page: false
+            ,cols: [[
+                {field:'index',align:'center', title: '序号',width:40}
+                ,{field:'projName',align:'center', title: '项目名称',minWidth:200,templet:function(d){
+                        return "<a class=\"attention-info\" title=\"" + d.projName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/project/projectRecords/view?id=" + d.id +"','95%', '95%')\">" + d.projName + "</a>";
+                    }}
+                ,{field:'projId',align:'center', title: '项目编号',minWidth:150,templet:function(d){
+                        return "<a class=\"attention-info\" title=\"" + d.projId + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看隐蔽工程量信息', '${ctx}/project/concealSummarizing/form?view=contentView&condition=interim&type=410&infoId="+d.id+"&id="+d.contentPId+"','95%', '95%')\">" + d.projId + "</a>";
+                    }}
+                ,{field:'contract', align:'center',title: '合同名称',minWidth:150,templet:function(d){
+                    	return "<span title='"+ d.contract +"'>" + d.contract + "</span>";
+					}}
+                ,{field:'projMaster', align:'center',title: '负责人', width:85,templet:function(d){
+                        return "<span title=\"" + d.projMaster + "\">" + d.projMaster + "</span>";
+                    }}
+                ,{field:'client',align:'center', title: '主委托方',  width:150,templet:function(d){
+                        return "<span title=\"" + d.client + "\">" + d.client + "</span>";
+                    }}
+                ,{field:'createDate',align:'center', title: '创建日期',  width:80}
+                ,{field:'op',align:'center',title:"操作",width:130,templet:function(d){
+                        ////对操作进行初始化
+                        var xml="";
+                        /*if(d.canedit3 != undefined && d.canedit3 =="1")
+                        {*/
+							xml+="<a href=\"javascript:void(0)\" onclick=\"openDialogView('查看隐蔽工程量信息', '${ctx}/project/concealSummarizing/form?view=contentView&condition=interim&type=410&infoId="+d.id+"&id="+d.contentPId+"','95%','95%')\" style=\"color: white;background: darkseagreen\" class=\"op-btn op-btn-op-btn-revert\" ><i class=\"fa fa-edit\"></i> 详情</a>"
+                        /*}*/
+                        return xml;
+
+                    }}
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="projectRecords" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+                    "index":"${index.index+1}"
+                    ,"id":"${projectRecords.id}"
+                    ,"projId":"${projectRecords.projectId}"
+                    ,"projName":"<c:out value="${projectRecords.projectName}" escapeXml="true"/>"
+                    ,"projMaster":"<c:forEach items="${projectRecords.projectLeaders}" var="leader" varStatus="status"><c:choose><c:when test="${status.last}">${leader.name}</c:when><c:otherwise>${leader.name},</c:otherwise></c:choose></c:forEach>"
+                    ,"contract":"${projectRecords.workContractInfo.name}"
+                    ,"client":"${projectRecords.workContractInfo.client.name}"
+                    ,"createDate":"<fmt:formatDate value="${projectRecords.createDate}" pattern="yyyy-MM-dd"/>"
+                    ,"projectStatus":"${projectRecords.projectStatus}"
+                    ,"procId":"${projectRecords.processInstanceId}"
+                    ,"contentPId":"${projectRecords.contentPId}"
+                    ,"dictType":"${projectRecords.dictType}"
+                    <c:choose><c:when test="${flag == '1' or fns:getUser().id == projectRecords.createBy.id}">
+                    <shiro:hasPermission name="project:projectRecords:del">,"candel":	<c:choose><c:when test="${projectRecords.projectStatus == 1 or projectRecords.projectStatus == 3 or projectRecords.projectStatus == 4}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose></shiro:hasPermission>
+                    <shiro:hasPermission name="project:projectRecords:edit">,"canedit1":	<c:choose><c:when test="${projectRecords.projectStatus == 1 }">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    ,"canedit2":<c:choose><c:when test="${projectRecords.projectStatus == 4}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    ,"canrecall":<c:choose><c:when test="${projectRecords.projectStatus == 3}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    </shiro:hasPermission>
+                    ,"cancancel":<c:choose><c:when test="${projectRecords.projectStatus == 2 && fns:getUser().id == projectRecords.createBy.id}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    ,"candel":"0"
+                    ,"canedit1":"0"
+                    ,"canedit2":"0"
+                    ,"canrecall":"0"
+                    ,"cancancel":"0"
+                    </c:otherwise>
+                    </c:choose>
+                    <shiro:hasPermission name="project:projectRecords:edit">,"canedit3":<c:choose><c:when test="${projectRecords.projectStatus == 5 && fn:contains(projectRecords.leaderIds,fns:getUser().id)}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose></shiro:hasPermission>
+                }
+                </c:forEach>
+                </c:if>
+            ]
+        });
+    })
+
+    resizeListTable();
+    $("a").on("click",addLinkVisied);
+</script>
+<script>
+    resizeListWindow2();
+    $(window).resize(function(){
+        resizeListWindow2();
+    });
+</script>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script src="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.js" charset="utf-8"></script>
+</body>
+</html>

+ 4 - 1
src/main/webapp/webpage/modules/projectrecord/summarizing/designSumamarizingProjectRecordsList.jsp

@@ -197,11 +197,14 @@
 		<div class="full-width fl">
 			<div class="list-form-tab contentShadow shadowLTR" id="tabDiv">
 				<ul class="list-tabs" >
-					<li><a href="${ctx}/project/designSummarizing/list">工程进度款汇总表</a></li>
+					<li><a href="${ctx}/project/interimPaymentSummarizing/list">工程进度款汇总表</a></li>
 					<li class="active"><a href="${ctx}/project/designSummarizing/list">设计变更汇总表</a></li>
 					<li><a href="${ctx}/project/visaSummarizing/list">现场签证汇总表</a></li>
 					<li><a href="${ctx}/project/claimSummarizing/list">索赔汇总表</a></li>
 					<li><a href="${ctx}/project/distributionSummarizing/list">分布结算汇总表</a></li>
+					<li><a href="${ctx}/project/materialSummarizing/list">暂定材料价汇总表</a></li>
+					<li><a href="${ctx}/project/armorSummarizing/list">甲供物资汇总表</a></li>
+					<li><a href="${ctx}/project/concealSummarizing/list">隐蔽工程量汇总表</a></li>
 				</ul>
 			</div>
 			<div class="layui-row contentShadow shadowLR" id="queryDiv">

+ 5 - 2
src/main/webapp/webpage/modules/projectrecord/summarizing/distributionSumamarizingProjectRecordsList.jsp

@@ -197,15 +197,18 @@
 		<div class="full-width fl">
 			<div class="list-form-tab contentShadow shadowLTR" id="tabDiv">
 				<ul class="list-tabs" >
-					<li><a href="${ctx}/project/designSummarizing/list">工程进度款汇总表</a></li>
+					<li><a href="${ctx}/project/interimPaymentSummarizing/list">工程进度款汇总表</a></li>
 					<li><a href="${ctx}/project/designSummarizing/list">设计变更汇总表</a></li>
 					<li><a href="${ctx}/project/visaSummarizing/list">现场签证汇总表</a></li>
 					<li><a href="${ctx}/project/claimSummarizing/list">索赔汇总表</a></li>
 					<li class="active"><a href="${ctx}/project/distributionSummarizing/list">分布结算汇总表</a></li>
+					<li><a href="${ctx}/project/materialSummarizing/list">暂定材料价汇总表</a></li>
+					<li><a href="${ctx}/project/armorSummarizing/list">甲供物资汇总表</a></li>
+					<li><a href="${ctx}/project/concealSummarizing/list">隐蔽工程量汇总表</a></li>
 				</ul>
 			</div>
 			<div class="layui-row contentShadow shadowLR" id="queryDiv">
-				<form:form id="searchForm" modelAttribute="projectRecords" action="${ctx}/project/designSummarizing/" method="post" class="form-inline">
+				<form:form id="searchForm" modelAttribute="projectRecords" action="${ctx}/project/distributionSummarizing/" method="post" class="form-inline">
 					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
 					<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
 					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->

+ 371 - 0
src/main/webapp/webpage/modules/projectrecord/summarizing/materialProjectRecordsList.jsp

@@ -0,0 +1,371 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目登记</title>
+	<meta name="decorator" content="default"/>
+    <link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />
+	<%--<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>--%>
+    <style>
+        .layui-table th{
+            font-size: 14px;
+            /*表头内容居中显示*/
+            text-align: center;
+        }
+		.pid{
+			font-size:14px;
+			font-weight:400;
+		}
+    </style>
+	<script type="text/javascript">
+        $(document).ready(function() {
+
+            //搜索框收放
+            $('#moresee').click(function(){
+                if($('#moresees').is(':visible'))
+                {
+                    $('#moresees').slideUp(0,resizeListWindow2);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-up").addClass("glyphicon glyphicon-menu-down");
+                }else{
+                    $('#moresees').slideDown(0,resizeListWindow2);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-down").addClass("glyphicon glyphicon-menu-up");
+                }
+            });
+            laydate.render({
+                elem: '#beginDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+            });
+        });
+
+        function reset() {
+            $("#searchForm").resetForm();
+        }
+
+        function openDialog(title,url,width,height,target) {
+
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url,
+                skin: 'three-btns',
+                btn: ['送审', '暂存', '关闭'],
+                /*yes: function (index, layero) {
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if (target) {
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    } else {
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+
+                    if (iframeWin.contentWindow.doSubmit()) {
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function () {
+                            top.layer.close(index)
+                        }, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+
+                },*/
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }else {
+                        return false;
+                    }
+                },
+                btn3: function (index) {
+                }
+            });
+        }
+
+        function openDialogre(title,url,width,height,target,buttons) {
+
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            var split = buttons.split(",");
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                skin: 'three-btns',
+                content: url,
+                btn: split,
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    if(split.length==2){return}
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }else {
+                        return false;
+                    }
+                },
+                btn3: function (index) {
+                }
+            });
+        }
+	</script>
+	<style>
+		body{
+			background-color:transparent;
+			filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
+			color:#ffffff;
+			background-color:rgba(255,255,255,0);
+			height:100%;
+		}
+	</style>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+	<sys:message content="${message}"/>
+	<div class="layui-row">
+		<div class="full-width fl">
+			<div class="list-form-tab contentShadow shadowLTR" id="tabDiv">
+				<ul class="list-tabs" >
+					<li><a href="${ctx}/project/interimPaymentSummarizing/list">工程进度款汇总表</a></li>
+					<li><a href="${ctx}/project/designSummarizing/list">设计变更汇总表</a></li>
+					<li><a href="${ctx}/project/visaSummarizing/list">现场签证汇总表</a></li>
+					<li><a href="${ctx}/project/claimSummarizing/list">索赔汇总表</a></li>
+					<li><a href="${ctx}/project/distributionSummarizing/list">分布结算汇总表</a></li>
+					<li class="active"><a href="${ctx}/project/materialSummarizing/list">暂定材料价汇总表</a></li>
+					<li><a href="${ctx}/project/armorSummarizing/list">甲供物资汇总表</a></li>
+					<li><a href="${ctx}/project/concealSummarizing/list">隐蔽工程量汇总表</a></li>
+				</ul>
+			</div>
+			<div class="layui-row contentShadow shadowLR" id="queryDiv">
+				<form:form id="searchForm" modelAttribute="projectRecords" action="${ctx}/project/materialSummarizing/" method="post" class="form-inline">
+					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+					<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+					<div class="commonQuery lw6">
+						<div class="layui-item query athird">
+							<label class="layui-form-label">项目名称:</label>
+							<div class="layui-input-block">
+								<form:input path="projectName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">项目负责人:</label>
+							<div class="layui-input-block">
+								<form:input path="leaderNameStr" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item athird">
+							<div class="input-group">
+								<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
+								<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>
+								<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>
+							</div>
+						</div>
+						<div style="    clear:both;"></div>
+					</div>
+					<div id="moresees" style="clear:both;display:none;" class="lw6">
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">合同名称:</label>
+							<div class="layui-input-block">
+								<input type="text" input="workContractInfoName" name="workContractInfo.name" value="" htmlEscape="false" maxlength="255"  class=" form-control layui-input">
+							</div>
+						</div>
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">委托方:</label>
+							<div class="layui-input-block">
+								<input type="text" input="workContractInfoClientName" name="workContractInfo.client.name" value="" htmlEscape="false" maxlength="255"  class=" form-control layui-input">
+							</div>
+						</div>
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">创建时间:</label>
+							<div class="layui-input-block">
+								<input id="beginDate" name="beginDate" placeholder="开始时间" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+									   value="<fmt:formatDate value="${projectRecords.beginDate}" pattern="yyyy-MM-dd"/>"/>
+								</input>
+                                <span class="group-sep">-</span>
+                                <input id="endDate" name="endDate" placeholder="结束时间" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+                                       value="<fmt:formatDate value="${projectRecords.endDate}" pattern="yyyy-MM-dd"/>"/>
+                                </input>
+							</div>
+						</div>
+						<div style="clear:both;"></div>
+					</div>
+				</form:form>
+			</div>
+		</div>
+		<div class="full-width fl">
+			<div class="layui-form contentDetails contentShadow shadowLBR">
+				<div class="nav-btns">
+					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
+				</div>
+				<table class="oa-table layui-table" id="contentTable1"></table>
+				<table:page page="${page}"></table:page>
+				<div style="clear: both;"></div>
+			</div>
+		</div>
+	</div>
+	<div id="changewidth"></div>
+</div>
+
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+
+    layui.use('table', function(){
+        layui.table.render({
+            limit:${ page.pageSize }
+            ,elem: '#contentTable1'
+            ,page: false
+            ,cols: [[
+                {field:'index',align:'center', title: '序号',width:40}
+                ,{field:'projName',align:'center', title: '项目名称',minWidth:200,templet:function(d){
+                        return "<a class=\"attention-info\" title=\"" + d.projName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/project/projectRecords/view?id=" + d.id +"','95%', '95%')\">" + d.projName + "</a>";
+                    }}
+                ,{field:'projId',align:'center', title: '项目编号',minWidth:150,templet:function(d){
+                        return "<a class=\"attention-info\" title=\"" + d.projId + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看工程进度款信息', '${ctx}/project/interimPaymentSummarizing/form?view=contentView&condition=material&type=421&infoId="+d.id+"&id="+d.contentPId+"','95%', '95%')\">" + d.projId + "</a>";
+                    }}
+                ,{field:'contract', align:'center',title: '合同名称',minWidth:150,templet:function(d){
+                    	return "<span title='"+ d.contract +"'>" + d.contract + "</span>";
+					}}
+                ,{field:'projMaster', align:'center',title: '负责人', width:85,templet:function(d){
+                        return "<span title=\"" + d.projMaster + "\">" + d.projMaster + "</span>";
+                    }}
+                ,{field:'client',align:'center', title: '主委托方',  width:150,templet:function(d){
+                        return "<span title=\"" + d.client + "\">" + d.client + "</span>";
+                    }}
+                ,{field:'createDate',align:'center', title: '创建日期',  width:80}
+                ,{field:'op',align:'center',title:"操作",width:130,templet:function(d){
+                        ////对操作进行初始化
+                        var xml="";
+                        /*if(d.canedit3 != undefined && d.canedit3 =="1")
+                        {*/
+							xml+="<a href=\"javascript:void(0)\" onclick=\"openDialogView('查看工程进度款信息', '${ctx}/project/materialSummarizing/form?view=contentView&condition=material&type=421&infoId="+d.id+"&id="+d.contentPId+"','95%','95%')\" style=\"color: white;background: darkseagreen\" class=\"op-btn op-btn-op-btn-revert\" ><i class=\"fa fa-edit\"></i> 详情</a>"
+                        /*}*/
+                        return xml;
+
+                    }}
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="projectRecords" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+                    "index":"${index.index+1}"
+                    ,"id":"${projectRecords.id}"
+                    ,"projId":"${projectRecords.projectId}"
+                    ,"projName":"<c:out value="${projectRecords.projectName}" escapeXml="true"/>"
+                    ,"projMaster":"<c:forEach items="${projectRecords.projectLeaders}" var="leader" varStatus="status"><c:choose><c:when test="${status.last}">${leader.name}</c:when><c:otherwise>${leader.name},</c:otherwise></c:choose></c:forEach>"
+                    ,"contract":"${projectRecords.workContractInfo.name}"
+                    ,"client":"${projectRecords.workContractInfo.client.name}"
+                    ,"createDate":"<fmt:formatDate value="${projectRecords.createDate}" pattern="yyyy-MM-dd"/>"
+                    ,"projectStatus":"${projectRecords.projectStatus}"
+                    ,"procId":"${projectRecords.processInstanceId}"
+                    ,"contentPId":"${projectRecords.contentPId}"
+                    ,"dictType":"${projectRecords.dictType}"
+                    <c:choose><c:when test="${flag == '1' or fns:getUser().id == projectRecords.createBy.id}">
+                    <shiro:hasPermission name="project:projectRecords:del">,"candel":	<c:choose><c:when test="${projectRecords.projectStatus == 1 or projectRecords.projectStatus == 3 or projectRecords.projectStatus == 4}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose></shiro:hasPermission>
+                    <shiro:hasPermission name="project:projectRecords:edit">,"canedit1":	<c:choose><c:when test="${projectRecords.projectStatus == 1 }">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    ,"canedit2":<c:choose><c:when test="${projectRecords.projectStatus == 4}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    ,"canrecall":<c:choose><c:when test="${projectRecords.projectStatus == 3}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    </shiro:hasPermission>
+                    ,"cancancel":<c:choose><c:when test="${projectRecords.projectStatus == 2 && fns:getUser().id == projectRecords.createBy.id}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    ,"candel":"0"
+                    ,"canedit1":"0"
+                    ,"canedit2":"0"
+                    ,"canrecall":"0"
+                    ,"cancancel":"0"
+                    </c:otherwise>
+                    </c:choose>
+                    <shiro:hasPermission name="project:projectRecords:edit">,"canedit3":<c:choose><c:when test="${projectRecords.projectStatus == 5 && fn:contains(projectRecords.leaderIds,fns:getUser().id)}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose></shiro:hasPermission>
+                }
+                </c:forEach>
+                </c:if>
+            ]
+        });
+    })
+
+    resizeListTable();
+    $("a").on("click",addLinkVisied);
+</script>
+<script>
+    resizeListWindow2();
+    $(window).resize(function(){
+        resizeListWindow2();
+    });
+</script>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script src="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.js" charset="utf-8"></script>
+</body>
+</html>

+ 3 - 0
src/main/webapp/webpage/modules/projectrecord/summarizing/sumamarizingProjectRecordsList.jsp

@@ -202,6 +202,9 @@
 					<li><a href="${ctx}/project/visaSummarizing/list">现场签证汇总表</a></li>
 					<li><a href="${ctx}/project/claimSummarizing/list">索赔汇总表</a></li>
 					<li><a href="${ctx}/project/distributionSummarizing/list">分布结算汇总表</a></li>
+					<li><a href="${ctx}/project/materialSummarizing/list">暂定材料价汇总表</a></li>
+					<li><a href="${ctx}/project/armorSummarizing/list">甲供物资汇总表</a></li>
+					<li><a href="${ctx}/project/concealSummarizing/list">隐蔽工程量汇总表</a></li>
 				</ul>
 			</div>
 			<div class="layui-row contentShadow shadowLR" id="queryDiv">

+ 4 - 1
src/main/webapp/webpage/modules/projectrecord/summarizing/visaSumamarizingProjectRecordsList.jsp

@@ -197,11 +197,14 @@
 		<div class="full-width fl">
 			<div class="list-form-tab contentShadow shadowLTR" id="tabDiv">
 				<ul class="list-tabs" >
-					<li><a href="${ctx}/project/designSummarizing/list">工程进度款汇总表</a></li>
+					<li><a href="${ctx}/project/interimPaymentSummarizing/list">工程进度款汇总表</a></li>
 					<li><a href="${ctx}/project/designSummarizing/list">设计变更汇总表</a></li>
 					<li class="active"><a href="${ctx}/project/visaSummarizing/list">现场签证汇总表</a></li>
 					<li><a href="${ctx}/project/claimSummarizing/list">索赔汇总表</a></li>
 					<li><a href="${ctx}/project/distributionSummarizing/list">分布结算汇总表</a></li>
+					<li><a href="${ctx}/project/materialSummarizing/list">暂定材料价汇总表</a></li>
+					<li><a href="${ctx}/project/armorSummarizing/list">甲供物资汇总表</a></li>
+					<li><a href="${ctx}/project/concealSummarizing/list">隐蔽工程量汇总表</a></li>
 				</ul>
 			</div>
 			<div class="layui-row contentShadow shadowLR" id="queryDiv">

+ 9 - 9
src/main/webapp/webpage/modules/projectrecord/summarizing/workContentView.jsp

@@ -206,10 +206,10 @@
                     $("#contentDetail").load("${ctx}/workcontent/workContentContractSum/form",param2);
                     break;*/
                 case '410':
-                    $("#contentDetail").load("${ctx}/workConcealProject/workConcealProject/list",param2);
+                    $("#contentDetail").load("${ctx}/workConcealProject/workConcealProject/listByProjectId",param2);
                     break;
                 case '411':
-                    $("#contentDetail").load("${ctx}/fiveDirectionsAffirm/workFiveDirectionsAffirm/list",param2);
+                    $("#contentDetail").load("${ctx}/fiveDirectionsAffirm/workFiveDirectionsAffirm/listByProjectId",param2);
                     break;
                 /*新加代码*/
                 case '412':
@@ -223,7 +223,7 @@
                     $("#contentDetail").load("${ctx}/workSchedule/workSchedule/listByProjectId",param2);
                     break;
                 case '421':
-                    $("#contentDetail").load("${ctx}/workMaterialsPrice/workMaterialsPrice/list",param2);
+                    $("#contentDetail").load("${ctx}/workMaterialsPrice/workMaterialsPrice/listByProjectId",param2);
                     break;
                 default:
                     detailFlag=0;
@@ -634,10 +634,10 @@
                 $("#contentDetail").load("${ctx}/workcontent/workContentContractSum/form",param2);
                 break;*/
             case '410':
-                $("#contentDetail").load("${ctx}/workConcealProject/workConcealProject/list",param2);
+                $("#contentDetail").load("${ctx}/workConcealProject/workConcealProject/listByProjectId",param2);
                 break;
             case '411':
-                $("#contentDetail").load("${ctx}/fiveDirectionsAffirm/workFiveDirectionsAffirm/list",param2);
+                $("#contentDetail").load("${ctx}/fiveDirectionsAffirm/workFiveDirectionsAffirm/listByProjectId",param2);
                 break;
             case '412':
                 $("#contentDetail").load("${ctx}/workcontentbranchaccount/workContentBranchAccount/listByProjectId",param2);
@@ -649,7 +649,7 @@
                 $("#contentDetail").load("${ctx}/workSchedule/workSchedule/listByProjectId",param2);
                 break;
             case '421':
-                $("#contentDetail").load("${ctx}/workMaterialsPrice/workMaterialsPrice/list",param2);
+                $("#contentDetail").load("${ctx}/workMaterialsPrice/workMaterialsPrice/listByProjectId",param2);
                 break;
             default:
                 detailFlag=0;
@@ -716,10 +716,10 @@
                 $("#contentDetail").load("${ctx}/workcontent/workContentContractSum/form",param2);
                 break;*/
             case '410':
-                $("#contentDetail").load("${ctx}/workConcealProject/workConcealProject/list",param2);
+                $("#contentDetail").load("${ctx}/workConcealProject/workConcealProject/listByProjectId",param2);
                 break;
             case '411':
-                $("#contentDetail").load("${ctx}/fiveDirectionsAffirm/workFiveDirectionsAffirm/list",param2);
+                $("#contentDetail").load("${ctx}/fiveDirectionsAffirm/workFiveDirectionsAffirm/listByProjectId",param2);
                 break;
             case '412':
                 $("#contentDetail").load("${ctx}/workcontentbranchaccount/workcontentBranchAccount/listByProjectId",param2);
@@ -731,7 +731,7 @@
                 $("#contentDetail").load("${ctx}/workSchedule/workSchedule/listByProjectId",param2);
                 break;
             case '421':
-                $("#contentDetail").load("${ctx}/workMaterialsPrice/workMaterialsPrice/list",param2);
+                $("#contentDetail").load("${ctx}/workMaterialsPrice/workMaterialsPrice/listByProjectId",param2);
                 break;
             default:
                 detailFlag=0;

+ 7 - 1
src/main/webapp/webpage/modules/projectrecord/workContentFromAndView/workContentForm.jsp

@@ -1142,13 +1142,19 @@
 <script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
 <script>
     function contentDetailTypeShow(obj) {
+        var type = null;
+        if(obj == '410' || obj == '411' || obj == '421'){
+            type = 2;
+        }else{
+            type = 3;
+        }
         var projectContentDataId = '${projectcontentinfo.projectContentData.id}';
         $.ajax({
             type:'post',
             url:'${ctx}/projectcontentinfo/projectcontentinfo/getAchievementTypeList2',
             data:{
                 "achievementParentId":obj,
-                "type":3
+                "type":type
             },
             success:function(data){
                 if(data.success) {

+ 122 - 0
src/main/webapp/webpage/modules/workcontent/workProjectArmorListView.jsp

@@ -0,0 +1,122 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<form id="subForm"  action="#" onsubmit="return false;" method="post" class="form-horizontal">
+    <table id="contentTable" class="table table-bordered table-condensed">
+        <thead>
+        <tr>
+            <th colspan="22" style="font-size: 20px">甲供物资五方确认表</th>
+        </tr>
+        <tr>
+            <th rowspan="2" class="hide"></th>
+            <th rowspan="2" >序号</th>
+            <th rowspan="2" >实施合同名称</th>
+            <th rowspan="2" >实施合同编号</th>
+            <th colspan="5" >一、业主项目部填写栏</th>
+            <th colspan="5" >二、设计单位确认栏</th>
+            <th colspan="5" >三、施工单位申报需求栏</th>
+            <th colspan="5" >四、咨询单位审核</th>
+        </tr>
+        <tr>
+            <th>采购申请号</th>
+            <th>物料编码</th>
+            <th>物料描述</th>
+            <th>单位</th>
+            <th>招标量</th>
+
+            <th>施工图物料名称及规格型号</th>
+            <th>图纸净量</th>
+            <th>损耗率</th>
+            <th>确认合计量</th>
+            <th>备注</th>
+
+            <th>图纸净量</th>
+            <th>损耗率</th>
+            <th>需求用量</th>
+            <th>需求日期</th>
+            <th>备注</th>
+
+            <th>图纸净量</th>
+            <th>损耗率</th>
+            <th>审核合计量</th>
+            <th>备注</th>
+        </tr>
+        </thead>
+        <tbody id="preliminaryList">
+        <c:forEach items="${fiveDirectionsAffirmList}" var="row" varStatus="status">
+            <tr>
+                <td style='text-align:center;'>
+                        ${status.index+1}
+                </td>
+
+                <td style='text-align:center;' title="${row.contractName}">
+                        ${row.contractName}
+                </td>
+                <td style='text-align:center;' title="${row.contractNumber}">
+                        ${row.contractNumber}
+                </td>
+                <td style='text-align:center;' title="${row.ownerPurchasingRequisitionNum}">
+                        ${row.ownerPurchasingRequisitionNum}
+                </td>
+                <td style='text-align:center;' title="${row.ownerMaterialCode}">
+                        ${row.ownerMaterialCode}
+                </td>
+                <td style='text-align:center;' title="${row.ownerMaterialDescription}">
+                        ${row.ownerMaterialDescription}
+                </td>
+                <td style='text-align:center;' title="${row.ownerUnits}">
+                        ${row.ownerUnits}
+                </td>
+                <td style='text-align:center;' title="${row.ownerTenderNum}">
+                        ${row.ownerTenderNum}
+                </td>
+
+                <td style='text-align:center;' title="${row.designMaterialName}">
+                        ${row.designMaterialName}
+                </td>
+                <td style='text-align:center;' title="${row.designDrawingAmount}">
+                         ${row.designDrawingAmount}
+                </td>
+                <td style='text-align:center;' title="${row.designAttritionRate}">
+                        ${row.designAttritionRate}
+                </td>
+                <td style='text-align:center;' title="${row.designAffirmTotal}">
+                        ${row.designAffirmTotal}
+                </td>
+                <td style='text-align:center;' title="${row.designRemarks}">
+                        ${row.designRemarks}
+                </td>
+
+                <td style='text-align:center;' title=" ${row.roadworkDrawingAmount}">
+                        ${row.roadworkDrawingAmount}
+                </td>
+                <td style='text-align:center;' title="${row.roadworkAttritionRate}">
+                        ${row.roadworkAttritionRate}
+                </td>
+                <td style='text-align:center;' title="${row.roadworkDemandDosage}">
+                        ${row.roadworkDemandDosage}
+                </td>
+                <td style='text-align:center;' title="<fmt:formatDate value="${row.roadworkDemandDate}" pattern="yyyy-MM-dd" />">
+                        <fmt:formatDate value="${row.roadworkDemandDate}" pattern="yyyy-MM-dd" />
+                </td>
+                <td style='text-align:center;' title="${row.roadworkRemarks}">
+                        ${row.roadworkRemarks}
+                </td>
+
+                <td style='text-align:center;' title="${row.consultDrawingAmount}">
+                        ${row.consultDrawingAmount}
+                </td>
+                <td style='text-align:center;' title="${row.consultAttritionRate}">
+                        ${row.consultAttritionRate}
+                </td>
+                <td style='text-align:center;' title="${row.consultAuditTotal}">
+                        ${row.consultAuditTotal}
+                </td>
+                <td style='text-align:center;' title="${row.consultRemarks}">
+                        ${row.consultRemarks}
+                </td>
+
+            </tr>
+        </c:forEach>
+        </tbody>
+    </table>
+</form>

+ 58 - 0
src/main/webapp/webpage/modules/workcontent/workProjectClaimListView.jsp

@@ -0,0 +1,58 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+
+<form id="subForm"  action="#" onsubmit="return false;" method="post" class="form-horizontal">
+    <table id="contentTable" class="table table-bordered table-condensed can-edit">
+        <thead>
+            <tr>
+                <th colspan="10" style="font-size: 20px">索赔一览表</th>
+            </tr>
+            <tr>
+                <th class="hide"></th>
+                <th>序号</th>
+                <th>实施合同名称</th>
+                <th>合同名称编号</th>
+                <th>索赔编号</th>
+                <th>索赔时间</th>
+                <th>主要内容</th>
+                <th>送审金额(万元)</th>
+                <th>审批手续合规性</th>
+                <th>审定金额(万元)</th>
+            </tr>
+        </thead>
+        <tbody id="investmentCostList">
+            <c:forEach items="${investmentCostList}" var="row" varStatus="status">
+                <tr>
+                    <td style="text-align:center; vertical-align: middle">
+                            ${status.index+1}
+                    </td>
+
+                    <td style="text-align:center; vertical-align: middle">
+                            ${row.contractName}
+                    </td>
+                    <td style="text-align:center; vertical-align: middle">
+                            ${row.contractNumber}
+                    </td>
+                    <td style="text-align:center; vertical-align: middle">
+                            ${row.number}
+                    </td>
+                    <td style="text-align:center; vertical-align: middle">
+                            ${row.dateStr}
+                    </td>
+                    <td style="text-align:center; vertical-align: middle">
+                            ${row.content}
+                    </td>
+                    <td style="text-align:center; vertical-align: middle">
+                        <fmt:formatNumber value="${row.sendMoney}" pattern="#,##0.00#"/>
+                    </td>
+                    <td style="text-align:center; vertical-align: middle">
+                            ${row.procedure}
+                    </td>
+                    <td style="text-align:center; vertical-align: middle">
+                        <fmt:formatNumber value="${row.confirmMoney}" pattern="#,##0.00#"/>
+                    </td>
+                </tr>
+            </c:forEach>
+        </tbody>
+    </table>
+</form>

+ 51 - 0
src/main/webapp/webpage/modules/workcontent/workProjectConcealListView.jsp

@@ -0,0 +1,51 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<form id="subForm"  action="#" onsubmit="return false;" method="post" class="form-horizontal">
+    <table class="table table-bordered table-condensed">
+        <thead>
+        <tr>
+            <th colspan="8" style="font-size: 20px">隐蔽工程量确认单</th>
+        </tr>
+        <tr>
+            <th>序号</th>
+            <th>实施合同名称</th>
+            <th>实施合同编号</th>
+            <th>工程类型</th>
+            <th>工程部位</th>
+            <th>工程量</th>
+            <th>隐蔽工程验收记录编号</th>
+            <th>备注</th>
+        </tr>
+        </thead>
+        <tbody id="workConcealProject">
+        <c:forEach items="${workConcealProject}" var="row" varStatus="status">
+            <tr>
+                <td style='text-align:center;'>
+                        ${status.index+1}
+                </td>
+                <td style='text-align:center;' title="${row.contractName}">
+                        ${row.contractName}
+                </td>
+                <td style='text-align:center;' title="${row.contractNumber}">
+                        ${row.contractNumber}
+                </td>
+                <td style='text-align:center;' title="${row.typeName}">
+                        ${row.typeName}
+                </td>
+                <td style='text-align:center;'>
+                        ${row.costPart}
+                </td>
+                <td style='text-align:center;'>
+                        ${row.workAmount}
+                </td>
+                <td style='text-align:center;'>
+                        ${row.workConcealProjectSerialNum}
+                </td>
+                <td style='text-align:center;'>
+                        ${row.remarks}
+                </td>
+            </tr>
+        </c:forEach>
+        </tbody>
+    </table>
+</form>

+ 56 - 0
src/main/webapp/webpage/modules/workcontent/workProjectMaterialListView.jsp

@@ -0,0 +1,56 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<form id="subForm"  action="#" onsubmit="return false;" method="post" class="form-horizontal">
+    <table id="contentTable" class="table table-bordered table-condensed">
+        <thead>
+            <tr>
+                <th colspan="9" style="font-size: 20px">暂定材料价的审核、特殊材料价格的询价审核</th>
+            </tr>
+            <tr>
+                <th class="hide"></th>
+                <th>序号</th>
+                <th>实施合同名称</th>
+                <th>实施合同编号</th>
+                <th>材料名称</th>
+                <th>规格及名称</th>
+                <th>施工工艺使用部位</th>
+                <th>材料单价</th>
+                <th>甲方、咨询核定价(不含税价)</th>
+                <th>备注</th>
+            </tr>
+        </thead>
+        <tbody id="preliminaryList">
+        <c:forEach items="${workScheduleList}" var="row" varStatus="status">
+            <tr>
+                <td style='text-align:center;'>
+                        ${status.index+1}
+                </td>
+                <td style='text-align:center;'>
+                        ${row.contractName}
+                </td>
+                <td style='text-align:center;'>
+                        ${row.contractNumber}
+                </td>
+                <td style='text-align:center;'>
+                        ${row.materialsName}
+                </td>
+                <td style='text-align:center;'>
+                        ${row.specificationName}
+                </td>
+                <td style='text-align:center;'>
+                        ${row.partUsed}
+                </td>
+                <td style='text-align:center;'>
+                        ${row.materialPrice}
+                </td>
+                <td style='text-align:center;'>
+                    <fmt:formatNumber value="${row.nuclearPrice}" pattern="#,##0.00#"/>
+                </td>
+                <td style='text-align:center;'>
+                        ${row.remarks}
+                </td>
+            </tr>
+        </c:forEach>
+        </tbody>
+    </table>
+</form>