Przeglądaj źródła

工程进度款管理、设计变更、现场签证、索赔管理、分布结算审核模块全过程咨询模块汇总表功能

user5 4 lat temu
rodzic
commit
ca80ff60aa
40 zmienionych plików z 2478 dodań i 213 usunięć
  1. 7 0
      src/main/java/com/jeeplus/modules/projectVisa/dao/ProjectVisaDao.java
  2. 18 0
      src/main/java/com/jeeplus/modules/projectVisa/entity/ProjectVisa.java
  3. 4 0
      src/main/java/com/jeeplus/modules/projectVisa/service/ProjectVisaService.java
  4. 29 1
      src/main/java/com/jeeplus/modules/projectVisa/web/ProjectClaimController.java
  5. 30 1
      src/main/java/com/jeeplus/modules/projectVisa/web/ProjectDesignController.java
  6. 29 1
      src/main/java/com/jeeplus/modules/projectVisa/web/ProjectVisaController.java
  7. 3 3
      src/main/java/com/jeeplus/modules/projectcontentinfo/service/ProjectcontentinfoService.java
  8. 6 2
      src/main/java/com/jeeplus/modules/projectrecord/web/check/ChechDesignController.java
  9. 6 2
      src/main/java/com/jeeplus/modules/projectrecord/web/check/CheckClaimController.java
  10. 2 1
      src/main/java/com/jeeplus/modules/projectrecord/web/check/CheckDistributionSettlementController.java
  11. 1 1
      src/main/java/com/jeeplus/modules/projectrecord/web/check/CheckInterimPaymentController.java
  12. 7 2
      src/main/java/com/jeeplus/modules/projectrecord/web/check/CheckVisaController.java
  13. 140 0
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentClaimSummarizingController.java
  14. 2 21
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentDesignSummarizingController.java
  15. 140 0
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentDistributionSummarizingController.java
  16. 142 0
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentInterimPaymentSummarizingController.java
  17. 140 0
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentVisaSummarizingController.java
  18. 2 0
      src/main/java/com/jeeplus/modules/workcontent/dao/WorkContentBranchAccountDao.java
  19. 15 151
      src/main/java/com/jeeplus/modules/workcontent/entity/WorkContentBranchAccount.java
  20. 1 0
      src/main/java/com/jeeplus/modules/workcontent/service/ProjectVisaInfoService.java
  21. 4 0
      src/main/java/com/jeeplus/modules/workcontent/service/WorkContentBranchAccountService.java
  22. 21 0
      src/main/java/com/jeeplus/modules/workcontent/web/WorkContentBranchAccountController.java
  23. 18 0
      src/main/resources/mappings/modules/projectrecord/stage/ProjectVisaDao.xml
  24. 27 6
      src/main/resources/mappings/modules/workcontent/WorkContentBranchAccountDao.xml
  25. 1 1
      src/main/webapp/webpage/modules/projectrecord/check/checkDesignList.jsp
  26. 1 1
      src/main/webapp/webpage/modules/projectrecord/design/projectDesignForm.jsp
  27. 1 1
      src/main/webapp/webpage/modules/projectrecord/distributionSettlement/distributionSettlementForm.jsp
  28. 1 1
      src/main/webapp/webpage/modules/projectrecord/implementStage/projectInterimPaymentForm.jsp
  29. 368 0
      src/main/webapp/webpage/modules/projectrecord/summarizing/claimSumamarizingProjectRecordsList.jsp
  30. 368 0
      src/main/webapp/webpage/modules/projectrecord/summarizing/designSumamarizingProjectRecordsList.jsp
  31. 368 0
      src/main/webapp/webpage/modules/projectrecord/summarizing/distributionSumamarizingProjectRecordsList.jsp
  32. 12 3
      src/main/webapp/webpage/modules/projectrecord/summarizing/sumamarizingProjectRecordsList.jsp
  33. 368 0
      src/main/webapp/webpage/modules/projectrecord/summarizing/visaSumamarizingProjectRecordsList.jsp
  34. 12 12
      src/main/webapp/webpage/modules/projectrecord/summarizing/workContentView.jsp
  35. 1 1
      src/main/webapp/webpage/modules/projectrecord/visa/projectVisaForm.jsp
  36. 1 0
      src/main/webapp/webpage/modules/projectrecord/workContentFromAndView/workContentForm.jsp
  37. 63 0
      src/main/webapp/webpage/modules/workcontent/workProjectBranchListView.jsp
  38. 59 0
      src/main/webapp/webpage/modules/workcontent/workProjectDesignListView.jsp
  39. 1 1
      src/main/webapp/webpage/modules/workcontent/workProjectScheduleListView.jsp
  40. 59 0
      src/main/webapp/webpage/modules/workcontent/workProjectVisaListView.jsp

+ 7 - 0
src/main/java/com/jeeplus/modules/projectVisa/dao/ProjectVisaDao.java

@@ -47,4 +47,11 @@ public interface ProjectVisaDao extends CrudDao<ProjectVisa> {
      * @return
      */
     Integer upodateContractVisaInfo(ProjectContentData projectContentData);
+
+    /**
+     * 根据项目id查询所有有关项目的信息
+     * @param projectVisa
+     * @return
+     */
+    List<ProjectVisa> findListByProjectId(ProjectVisa projectVisa);
 }

+ 18 - 0
src/main/java/com/jeeplus/modules/projectVisa/entity/ProjectVisa.java

@@ -25,6 +25,8 @@ public class ProjectVisa extends DataEntity<ProjectVisa> {
     private Double confirmMoney;//定审金额
     private String type;//汇总类型1是签证2是设计
     private String   dateStr;//签证时间Str
+    private String contractName;          //合同名称
+    private String contractNumber;          //合同编号
     private List<WorkClientAttachment> workAttachments = Lists.newArrayList();
 
     public String getContractId() {
@@ -123,4 +125,20 @@ public class ProjectVisa extends DataEntity<ProjectVisa> {
     public void setDateStr(String dateStr) {
         this.dateStr = dateStr;
     }
+
+    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/projectVisa/service/ProjectVisaService.java

@@ -81,6 +81,10 @@ public class ProjectVisaService extends CrudService<ProjectVisaDao,ProjectVisa>
     }
 
 
+    public List<ProjectVisa> findListByProjectId(ProjectVisa projectVisa) {
+        return dao.findListByProjectId(projectVisa);
+    }
+
 
 
     public ProjectContentData getProjectContentData(String id) {

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

@@ -251,7 +251,7 @@ public class ProjectClaimController extends BaseController {
      * 工程费用列表页面
      */
     @RequestMapping(value = {"visaList"})
-    public String list(ProjectVisa projectVisa, String view, HttpServletRequest request, Model model) {
+    public String visaList(ProjectVisa projectVisa, String view, HttpServletRequest request, Model model) {
         String sign = request.getParameter("sign");
         List<String> signList = new ArrayList();
         if (StringUtils.isNotBlank(sign)){
@@ -284,6 +284,34 @@ public class ProjectClaimController extends BaseController {
     }
 
     /**
+     * 根据projectId获取项目中所有的工程进度款数据信息
+     */
+    @RequestMapping(value = {"listByProjectId"})
+    public String listByProjectId(ProjectVisa projectVisa, 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(","));
+        }
+        projectVisa.setType("3");
+        List<ProjectVisa> list = new ArrayList<>();
+        if(StringUtils.isNotBlank(projectVisa.getProjectId())){
+            list = projectVisaService.findListByProjectId(projectVisa);
+        }
+        if(null != list){
+            for (ProjectVisa visa: list) {
+                if(null != visa.getDate()){
+                    visa.setDateStr(StringUtils.getDateStr(visa.getDate()));
+                }
+            }
+        }
+        model.addAttribute("signList", signList);
+        model.addAttribute("investmentCostList", list);
+        String viewPath = "modules/workcontent/workProjectDesignListView";
+        return viewPath;
+    }
+
+    /**
      * 保存信息
      */
     @RequestMapping(value = "save")

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

@@ -26,6 +26,7 @@ import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.workclientinfo.dao.WorkClientAttachmentDao;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
+import com.jeeplus.modules.workcontent.entity.WorkScheduleInfo;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -120,7 +121,7 @@ public class ProjectDesignController extends BaseController {
      * 工程费用列表页面
      */
     @RequestMapping(value = {"visaList"})
-    public String list(ProjectVisa projectVisa, String view, HttpServletRequest request, Model model) {
+    public String visaList(ProjectVisa projectVisa, String view, HttpServletRequest request, Model model) {
         String sign = request.getParameter("sign");
         List<String> signList = new ArrayList();
         if (StringUtils.isNotBlank(sign)){
@@ -152,6 +153,34 @@ public class ProjectDesignController extends BaseController {
         return viewPath;
     }
 
+    /**
+     * 根据projectId获取项目中所有的工程进度款数据信息
+     */
+    @RequestMapping(value = {"listByProjectId"})
+    public String listByProjectId(ProjectVisa projectVisa, 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(","));
+        }
+        projectVisa.setType("2");
+        List<ProjectVisa> list = new ArrayList<>();
+        if(StringUtils.isNotBlank(projectVisa.getProjectId())){
+            list = projectVisaService.findListByProjectId(projectVisa);
+        }
+        if(null != list){
+            for (ProjectVisa visa: list) {
+                if(null != visa.getDate()){
+                    visa.setDateStr(StringUtils.getDateStr(visa.getDate()));
+                }
+            }
+        }
+        model.addAttribute("signList", signList);
+        model.addAttribute("investmentCostList", list);
+        String viewPath = "modules/workcontent/workProjectDesignListView";
+        return viewPath;
+    }
+
     //编辑签证汇总页面
     @RequestMapping(value = "updateTable")
     public String updateTable(ProjectVisa projectVisa, Model model) {

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

@@ -129,7 +129,7 @@ public class ProjectVisaController extends BaseController {
      * 工程费用列表页面
      */
     @RequestMapping(value = {"visaList"})
-    public String list(ProjectVisa projectVisa, String view, HttpServletRequest request, Model model) {
+    public String visaList(ProjectVisa projectVisa, String view, HttpServletRequest request, Model model) {
         String sign = request.getParameter("sign");
         List<String> signList = new ArrayList();
         if (StringUtils.isNotBlank(sign)){
@@ -161,6 +161,34 @@ public class ProjectVisaController extends BaseController {
         return viewPath;
     }
 
+    /**
+     * 根据projectId获取项目中所有的工程进度款数据信息
+     */
+    @RequestMapping(value = {"listByProjectId"})
+    public String listByProjectId(ProjectVisa projectVisa, 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<ProjectVisa> list = new ArrayList<>();
+        projectVisa.setType("1");
+        if(StringUtils.isNotBlank(projectVisa.getProjectId())){
+            list = projectVisaService.findListByProjectId(projectVisa);
+        }
+        if(null != list){
+            for (ProjectVisa visa: list) {
+                if(null != visa.getDate()){
+                    visa.setDateStr(StringUtils.getDateStr(visa.getDate()));
+                }
+            }
+        }
+        model.addAttribute("signList", signList);
+        model.addAttribute("investmentCostList", list);
+        String viewPath = "modules/workcontent/workProjectVisaListView";
+        return viewPath;
+    }
+
     //编辑签证汇总页面
     @RequestMapping(value = "updateTable")
     public String updateTable(ProjectVisa projectVisa, Model model) {

+ 3 - 3
src/main/java/com/jeeplus/modules/projectcontentinfo/service/ProjectcontentinfoService.java

@@ -251,9 +251,9 @@ public class ProjectcontentinfoService extends CrudService<ProjectcontentinfoDao
 			projectContentData.setCompanyId(contentinfo.getCompanyId());
 			projectContentData.setOfficeId(contentinfo.getOfficeId());
 			projectContentData.setProject(contentinfo.getProject());
-			if(StringUtils.isNotBlank(projectcontentinfo.getProject().getWorkContractInfo().getId())){
+			/*if(StringUtils.isNotBlank(projectcontentinfo.getProject().getWorkContractInfo().getId())){
 				projectContentData.setContractId(projectcontentinfo.getProject().getWorkContractInfo().getId());
-			}
+			}*/
 			projectContentDataService.save(projectContentData);
 			//保存工作内容详情
 			if(StringUtils.isNotBlank(projectContentData.getContentDetail())) {
@@ -269,7 +269,7 @@ public class ProjectcontentinfoService extends CrudService<ProjectcontentinfoDao
 //				}
 				WorkContentDetailBaseService detailService = WorkContentDetailFactory.getDetailService(projectContentData.getType());
 				if(detailService!=null)
-					detailService.saveDetails(URLDecoder.decode(projectContentData.getContentDetail(),"UTF-8"), projectContentData.getProject().getId(), projectContentData.getId(),projectcontentinfo.getProject().getWorkContractInfo().getId());
+					detailService.saveDetails(URLDecoder.decode(projectContentData.getContentDetail(),"UTF-8"), projectContentData.getProject().getId(), projectContentData.getId(),projectcontentinfo.getProjectContentData().getContractId());
 			}
 			//保存依据资料信息
 			if(projectContentData.getProjectBasedDataList()!=null&&!projectContentData.getProjectBasedDataList().isEmpty()){

+ 6 - 2
src/main/java/com/jeeplus/modules/projectrecord/web/check/ChechDesignController.java

@@ -282,7 +282,7 @@ public class ChechDesignController extends BaseController {
                         //获取阶段Type父节点信息
                         String projectType = projectImplementEarlyService.getProjectType(record.getProjectTypeId(), "实施阶段");
                         //根据项目id查询相关的项目阶段内容
-                        List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentReportDataListOnImplement(record.getId(),projectType,"43");
+                        List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentDataListOnImplement(record.getId(),visaTreeData.getId(),projectType,"43");
 
                         Projectcontentinfo select = new Projectcontentinfo();
                         ProjectRecords project = new ProjectRecords();
@@ -300,7 +300,11 @@ public class ChechDesignController extends BaseController {
                             contentData.setContractName(data.getProjectName());
                             contentData.setCnumber(contract.getCnumber());
                             contentData.setStatus(data.getStatus());
-                            contentData.setNumber(data.getReportName());
+                            if(StringUtils.isNotBlank(data.getReportName())){
+                                contentData.setNumber(data.getReportName());
+                            }else{
+                                contentData.setNumber("");
+                            }
                             contentData.setProjectId(record.getId());
                             contentData.setReportId(data.getReportId());
                             contentData.setCreateDate(data.getCreateDate());

+ 6 - 2
src/main/java/com/jeeplus/modules/projectrecord/web/check/CheckClaimController.java

@@ -166,7 +166,7 @@ public class CheckClaimController extends BaseController {
                         //获取阶段Type父节点信息
                         String projectType = projectImplementEarlyService.getProjectType(record.getProjectTypeId(), "实施阶段");
                         //根据项目id查询相关的项目阶段内容
-                        List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentReportDataListOnImplement(record.getId(),projectType,"46");
+                        List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentDataListOnImplement(record.getId(),visaTreeData.getId(),projectType,"46");
 
                         Projectcontentinfo select = new Projectcontentinfo();
                         ProjectRecords project = new ProjectRecords();
@@ -185,7 +185,11 @@ public class CheckClaimController extends BaseController {
                             contentData.setContractName(data.getProjectName());
                             contentData.setCnumber(contract.getCnumber());
                             contentData.setStatus(data.getStatus());
-                            contentData.setNumber(data.getReportName());
+                            if(StringUtils.isNotBlank(data.getReportName())){
+                                contentData.setNumber(data.getReportName());
+                            }else{
+                                contentData.setNumber("");
+                            }
                             contentData.setProjectId(record.getId());
                             contentData.setReportId(data.getReportId());
                             contentData.setCreateDate(data.getCreateDate());

+ 2 - 1
src/main/java/com/jeeplus/modules/projectrecord/web/check/CheckDistributionSettlementController.java

@@ -177,7 +177,8 @@ public class CheckDistributionSettlementController extends BaseController {
                         //获取阶段Type父节点信息
                         String projectType = projectImplementEarlyService.getProjectType(record.getProjectTypeId(), "实施阶段");
                         //根据项目id查询相关的项目阶段内容
-                        List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentReportDataListOnImplement(record.getId(),projectType,"412");
+                        List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentDataListOnImplement(record.getId(),visaTreeData.getId(),projectType,"412");
+
                         //根据获取的合同的id去查找汇总表获取汇总表信息
                         //List<ProjectContentData> contentDataList=distributionSettlementService.getConcealProjectList(contract.getId());
 

+ 1 - 1
src/main/java/com/jeeplus/modules/projectrecord/web/check/CheckInterimPaymentController.java

@@ -171,7 +171,7 @@ public class CheckInterimPaymentController extends BaseController {
                         //获取阶段Type父节点信息
                         String projectType = projectImplementEarlyService.getProjectType(record.getProjectTypeId(), "实施阶段");
                         //根据项目id查询相关的项目阶段内容
-                        List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentReportDataListOnImplement(record.getId(),projectType,"420");
+                        List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentDataListOnImplement(record.getId(),visaTreeData.getId(),projectType,"420");
                         //根据获取的合同的id去查找汇总表获取汇总表信息
                         //List<ProjectContentData> contentDataList=service.getInterimPaymentList(contract.getId());
 

+ 7 - 2
src/main/java/com/jeeplus/modules/projectrecord/web/check/CheckVisaController.java

@@ -295,7 +295,8 @@ public class CheckVisaController extends BaseController {
                         //获取阶段Type父节点信息
                         String projectType = projectImplementEarlyService.getProjectType(record.getProjectTypeId(), "实施阶段");
                         //根据项目id查询相关的项目阶段内容
-                        List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentReportDataListOnImplement(record.getId(),projectType,"45");
+                        List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentDataListOnImplement(record.getId(),visaTreeData.getId(),projectType,"45");
+
                         //根据获取的合同的id去查找汇总表获取汇总表信息
                         //List<ProjectContentData> projectVisaList=projectVisaService.getVisaList(contract.getId(),"1");
 
@@ -314,7 +315,11 @@ public class CheckVisaController extends BaseController {
                             contentData.setContractName(data.getProjectName());
                             contentData.setCnumber(contract.getCnumber());
                             contentData.setStatus(data.getStatus());
-                            contentData.setNumber(data.getReportName());
+                            if(StringUtils.isNotBlank(data.getReportName())){
+                                contentData.setNumber(data.getReportName());
+                            }else{
+                                contentData.setNumber("");
+                            }
                             contentData.setProjectId(record.getId());
                             contentData.setReportId(data.getReportId());
                             contentData.setCreateDate(data.getCreateDate());

+ 140 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentClaimSummarizingController.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/claimSummarizing")
+public class ContentClaimSummarizingController 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/claimSumamarizingProjectRecordsList";
+    }
+
+    @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 - 21
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentDesignSummarizingController.java

@@ -47,7 +47,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.util.*;
 
 /**
- * 项目实施前期Controller
+ * 设计变更汇总表Controller
  * @author 徐滕
  * @version 2020-07-10
  */
@@ -57,28 +57,10 @@ public class ContentDesignSummarizingController extends BaseController {
     @Autowired
     private ProjectRecordsService projectRecordsService;
     @Autowired
-    private ProjectBasedDataService projectBasedDataService;
-    @Autowired
-    private ProjectContentDataService projectContentDataService;
-    @Autowired
-    private ProjectReportDataService projectReportDataService;
-    @Autowired
-    private ProjectReportChangeService projectReportChangeService;
-    @Autowired
-    private ProjectControlTableService projectControlTableService;
-    @Autowired
-    private ActTaskService actTaskService;
-    @Autowired
     protected HistoryService historyService;
     @Autowired
     private ProjectTypeService projectTypeService;
     @Autowired
-    private DictService dictService;
-    @Autowired
-    private ProjectEarlyReviewService projectEarlyReviewService;
-    @Autowired
-    private ProjectResultsFileTemplateService projectResultsFileTemplateService;
-    @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
 
     @ModelAttribute
@@ -96,7 +78,6 @@ public class ContentDesignSummarizingController extends BaseController {
     /**
      * 项目列表页面
      */
-    @RequiresPermissions("project:designSummarizing:list")
     @RequestMapping(value = {"list", ""})
     public String list(ProjectRecords projectRecords, HttpServletRequest request, HttpServletResponse response, Model model) {
         if(UserUtils.isManager()){
@@ -133,7 +114,7 @@ public class ContentDesignSummarizingController extends BaseController {
             }
         }
         model.addAttribute("page", page);
-        return "modules/projectrecord/summarizing/sumamarizingProjectRecordsList";
+        return "modules/projectrecord/summarizing/designSumamarizingProjectRecordsList";
     }
 
     @RequestMapping(value = {"form"})

+ 140 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentDistributionSummarizingController.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/distributionSummarizing")
+public class ContentDistributionSummarizingController 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/distributionSumamarizingProjectRecordsList";
+    }
+
+    @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;
+    }
+}

+ 142 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentInterimPaymentSummarizingController.java

@@ -0,0 +1,142 @@
+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/interimPaymentSummarizing")
+public class ContentInterimPaymentSummarizingController 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;
+    }
+
+    /**
+     * 项目列表页面
+     */
+    @RequiresPermissions("project:interimPaymentSummarizing:list")
+    @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/sumamarizingProjectRecordsList";
+    }
+
+    @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/ContentVisaSummarizingController.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/visaSummarizing")
+public class ContentVisaSummarizingController 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/visaSumamarizingProjectRecordsList";
+    }
+
+    @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/WorkContentBranchAccountDao.java

@@ -34,4 +34,6 @@ public interface WorkContentBranchAccountDao extends CrudDao<WorkContentBranchAc
      * @return
      */
     List<String> getTableType(String contentId);
+
+    List<WorkContentBranchAccount> findListByProjectId(WorkContentBranchAccount workContentBranchAccount);
 }

+ 15 - 151
src/main/java/com/jeeplus/modules/workcontent/entity/WorkContentBranchAccount.java

@@ -34,6 +34,9 @@ public class WorkContentBranchAccount extends DataEntity<WorkContentBranchAccoun
 	private Double businessRate;		// 核增减率%
 
 	private String type;		// 节点类型
+	private String contractId;		//实施合同id
+	private String contractName;		//实施合同名称
+	private String contractNumber;		//实施合同编号
 
 	public String getProjectId() {
 		return projectId;
@@ -115,166 +118,27 @@ public class WorkContentBranchAccount extends DataEntity<WorkContentBranchAccoun
 		this.type = type;
 	}
 
-	 /*private static final long serialVersionUID = 1L;
-	private String projectId;		// 项目id
-	private String contentId;		// 工作内容ID
-	private String costType;		// 类型:估算-1、概算-2、预算-3
-	private String costNum;		// 编号
-	private String costName;		// 工程费用名称
-	@NumberFormat(style = NumberFormat.Style.CURRENCY)
-	private Double buildindCost;		// 建筑工程费
-	@NumberFormat(style = NumberFormat.Style.CURRENCY)
-	private Double equipmentCost;		// 设备购置费
-	@NumberFormat(style = NumberFormat.Style.CURRENCY)
-	private Double installationCost;		// 安装工程费
-	@NumberFormat(style = NumberFormat.Style.CURRENCY)
-	private Double otherExpenses;		// 其他费用
-	@NumberFormat(style = NumberFormat.Style.CURRENCY)
-	private Double totalCost;		// 合计(万元)
-	private Integer count;		// 数量
-	private String unit;		// 单位
-	private String target;		// 指标
-	private String expenseType;		// 费用类型
-	private String nodeTypes;		// 节点类型
-
-	public WorkContentInvestmentCost() {
-		super();
-	}
-
-	public WorkContentInvestmentCost(String id){
-		super(id);
-	}
-
-	public String getProjectId() {
-		return projectId;
+	public String getContractId() {
+		return contractId;
 	}
 
-	public void setProjectId(String projectId) {
-		this.projectId = projectId;
-	}
-
-	public String getContentId() {
-		return contentId;
+	public void setContractId(String contractId) {
+		this.contractId = contractId;
 	}
 
-	public void setContentId(String contentId) {
-		this.contentId = contentId;
+	public String getContractName() {
+		return contractName;
 	}
 
-	public String getCostType() {
-		return costType;
+	public void setContractName(String contractName) {
+		this.contractName = contractName;
 	}
 
-	public void setCostType(String costType) {
-		this.costType = costType;
+	public String getContractNumber() {
+		return contractNumber;
 	}
 
-	@ExcelField(title="编号", align=2, sort=10)
-	public String getCostNum() {
-		return costNum;
+	public void setContractNumber(String contractNumber) {
+		this.contractNumber = contractNumber;
 	}
-
-	public void setCostNum(String costNum) {
-		this.costNum = costNum;
-	}
-
-	@ExcelField(title="工程费用名称", align=2, sort=11)
-	public String getCostName() {
-		return costName;
-	}
-
-	public void setCostName(String costName) {
-		this.costName = costName;
-	}
-
-	@ExcelField(title="建筑工程费", align=2, sort=12)
-	public Double getBuildindCost() {
-		return buildindCost;
-	}
-
-	public void setBuildindCost(Double buildindCost) {
-		this.buildindCost = buildindCost;
-	}
-
-	@ExcelField(title="设备购置费", align=2, sort=13)
-	public Double getEquipmentCost() {
-		return equipmentCost;
-	}
-
-	public void setEquipmentCost(Double equipmentCost) {
-		this.equipmentCost = equipmentCost;
-	}
-
-	@ExcelField(title="安装工程费", align=2, sort=14)
-	public Double getInstallationCost() {
-		return installationCost;
-	}
-
-	public void setInstallationCost(Double installationCost) {
-		this.installationCost = installationCost;
-	}
-
-	@ExcelField(title="其他费用", align=2, sort=15)
-	public Double getOtherExpenses() {
-		return otherExpenses;
-	}
-
-	public void setOtherExpenses(Double otherExpenses) {
-		this.otherExpenses = otherExpenses;
-	}
-
-	@ExcelField(title="合计(万元)", align=2, sort=16)
-	public Double getTotalCost() {
-		return totalCost;
-	}
-
-	public void setTotalCost(Double totalCost) {
-		this.totalCost = totalCost;
-	}
-
-	@ExcelField(title="数量", align=2, sort=17)
-	public Integer getCount() {
-		return count;
-	}
-
-	public void setCount(Integer count) {
-		this.count = count;
-	}
-
-	@ExcelField(title="单位", align=2, sort=18)
-	public String getUnit() {
-		return unit;
-	}
-
-	public void setUnit(String unit) {
-		this.unit = unit;
-	}
-
-	@ExcelField(title="指标", align=2, sort=19)
-	public String getTarget() {
-		return target;
-	}
-
-	public void setTarget(String target) {
-		this.target = target;
-	}
-
-	@ExcelField(title="费用类型", align=2, sort=20)
-	public String getExpenseType() {
-		return expenseType;
-	}
-
-	public void setExpenseType(String expenseType) {
-		this.expenseType = expenseType;
-	}
-
-	@ExcelField(title="节点类型", align=2, sort=21)
-	public String getNodeTypes() {
-		return nodeTypes;
-	}
-
-	public void setNodeTypes(String nodeTypes) {
-		this.nodeTypes = nodeTypes;
-	}*/
-	
 }

+ 1 - 0
src/main/java/com/jeeplus/modules/workcontent/service/ProjectVisaInfoService.java

@@ -64,6 +64,7 @@ public class ProjectVisaInfoService extends CrudService<ProjectVisaDao, ProjectV
 				workConcealProjectDao.deleteContractById(workConcealProject.getId());
                 continue;
             }
+			workConcealProject.setContractId(contractId);
 			workConcealProject.setContentId(contentId);
 			workConcealProject.setProjectId(projectId);
             this.save(workConcealProject);

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

@@ -30,6 +30,9 @@ public class WorkContentBranchAccountService extends CrudService<WorkContentBran
 	public List<WorkContentBranchAccount> findList(WorkContentBranchAccount workContentBranchAccount) {
 		return super.findList(workContentBranchAccount);
 	}
+	public List<WorkContentBranchAccount> findListByProjectId(WorkContentBranchAccount workContentBranchAccount) {
+		return dao.findListByProjectId(workContentBranchAccount);
+	}
 	
 	public Page<WorkContentBranchAccount> findPage(Page<WorkContentBranchAccount> page, WorkContentBranchAccount workContentBranchAccount) {
 		return super.findPage(page, workContentBranchAccount);
@@ -57,6 +60,7 @@ public class WorkContentBranchAccountService extends CrudService<WorkContentBran
                 dao.delete(investmentCost);
                 continue;
             }
+			investmentCost.setContractId(contractId);
             investmentCost.setContentId(contentId);
             investmentCost.setProjectId(projectId);
             this.save(investmentCost);

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

@@ -9,6 +9,7 @@ import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectVisa.entity.ProjectVisa;
 import com.jeeplus.modules.sys.entity.MainDictDetail;
 import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.workcontent.entity.WorkContentBranchAccount;
@@ -85,6 +86,26 @@ public class WorkContentBranchAccountController extends BaseController {
 	}
 
 	/**
+	 * 根据projectId获取项目中所有的工程进度款数据信息
+	 */
+	@RequestMapping(value = {"listByProjectId"})
+	public String listByProjectId(WorkContentBranchAccount workContentBranchAccount, 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<WorkContentBranchAccount> list = new ArrayList<>();
+		if(StringUtils.isNotBlank(workContentBranchAccount.getProjectId())){
+			list = workContentBranchAccountService.findListByProjectId(workContentBranchAccount);
+		}
+		model.addAttribute("signList", signList);
+		model.addAttribute("investmentCostList", list);
+		String viewPath = "modules/workcontent/workProjectBranchListView";
+		return viewPath;
+	}
+
+	/**
 	 * 导入Excel数据
 	*/
 	@ResponseBody

+ 18 - 0
src/main/resources/mappings/modules/projectrecord/stage/ProjectVisaDao.xml

@@ -267,4 +267,22 @@
 	<update id="deleteByLogic">
 		update contract_visa_info set del_flag='1' where id=#{id} and type=#{type}
 	</update>
+
+	<select id="findListByProjectId" resultType="com.jeeplus.modules.projectVisa.entity.ProjectVisa" >
+		SELECT
+		cc.contract_name contractName, cc.cnumber contractNumber,
+		<include refid="projectVisaColumns"/>
+		FROM contract_visa_design 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>
+			<if test="type!=null and type !=''">
+				AND a.type = #{type}
+			</if>
+			AND a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		ORDER BY cc.contract_name desc, a.update_date DESC
+	</select>
 </mapper>

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

@@ -19,7 +19,8 @@
 		a.business_add AS "businessAdd",
 		a.business_reduce AS "businessReduce",
 		a.business_rate AS "businessRate",
-		a.type AS "type"
+		a.type AS "type",
+		a.contract_id as "contractId"
 	</sql>
 	
     
@@ -88,7 +89,8 @@
 			business_add,
 			business_reduce,
 			business_rate,
-			type
+			type,
+			contract_id
 		) VALUES (
 			#{id},
 			#{createBy.id},
@@ -106,7 +108,8 @@
             #{businessAdd},
             #{businessReduce},
             #{businessRate},
-            #{type}
+            #{type},
+            #{contractId}
 		)
 	</insert>
 
@@ -128,7 +131,8 @@
 			business_add,
 			business_reduce,
 			business_rate,
-			type
+			type,
+			contract_id
 		) VALUES
 		<foreach collection="list" item="item" separator=",">
             ( #{item.id},
@@ -147,7 +151,8 @@
             #{item.businessAdd},
             #{item.businessReduce},
             #{item.businessRate},
-            #{item.type}
+            #{item.type},
+            #{contractId}
             )
         </foreach>
 	</insert>
@@ -166,7 +171,8 @@
 			business_add = #{businessAdd},
 			business_reduce = #{businessReduce},
 			business_rate = #{businessRate},
-			type = #{type}
+			type = #{type},
+			contract_id = #{contractId}
 		WHERE id = #{id}
 	</update>
 	
@@ -201,5 +207,20 @@
 		) a
 	</select>
 
+	<select id="findListByProjectId" resultType="WorkContentBranchAccount" >
+		SELECT
+		cc.contract_name contractName, cc.cnumber contractNumber,
+		<include refid="workContentBranchAccountColumns"/>
+		FROM work_content_branchaccount 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>
+
 	
 </mapper>

+ 1 - 1
src/main/webapp/webpage/modules/projectrecord/check/checkDesignList.jsp

@@ -276,7 +276,7 @@
                                 return "<font>"+d.cnumber+"</font>";
                             }
                         }},
-                    {field: 'contractName', title: '项目名称/合同名称/签证名称',templet:function(d){
+                    {field: 'contractName', title: '项目名称/合同名称/设计变更名称',templet:function(d){
                             if(d.condition ==1){
                                 return  "<a class=\"attention-info pid\" title=\"" + d.contractName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目信息', '${ctx}/project/projectRecords/view?id=" + d.id +"','95%', '95%')\">" + d.contractName + "</a>";
                             }else if(d.condition ==2){

+ 1 - 1
src/main/webapp/webpage/modules/projectrecord/design/projectDesignForm.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="43">
             <input type="hidden" id="contentDeta" name="projectContentData.contentDetail">
             <input type="hidden" id="dataBodyList" name="dataBodyList" value="">

+ 1 - 1
src/main/webapp/webpage/modules/projectrecord/distributionSettlement/distributionSettlementForm.jsp

@@ -491,7 +491,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="412">
             <input type="hidden" id="projectId" value="${concealProjectInfo.project.id}">
             <input type="hidden" id="contentDeta" name="projectContentData.contentDetail">

+ 1 - 1
src/main/webapp/webpage/modules/projectrecord/implementStage/projectInterimPaymentForm.jsp

@@ -493,7 +493,7 @@
             <form:hidden path="contract.id"/>
             <form:hidden path="projectContentData.id"/>
             <input type="hidden" id="projectId" value="${concealProjectInfo.project.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="420">
             <input type="hidden" id="contentDeta" name="projectContentData.contentDetail">
             <input type="hidden" id="dataBodyList" name="dataBodyList" value="">

+ 368 - 0
src/main/webapp/webpage/modules/projectrecord/summarizing/claimSumamarizingProjectRecordsList.jsp

@@ -0,0 +1,368 @@
+<%@ 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/designSummarizing/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>
+				</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">
+					<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/designSummarizing/form?view=contentView&condition=interim&type=46&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/claimSummarizing/form?view=contentView&condition=interim&type=46&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>

+ 368 - 0
src/main/webapp/webpage/modules/projectrecord/summarizing/designSumamarizingProjectRecordsList.jsp

@@ -0,0 +1,368 @@
+<%@ 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/designSummarizing/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>
+				</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">
+					<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/designSummarizing/form?view=contentView&condition=interim&type=43&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/designSummarizing/form?view=contentView&condition=interim&type=43&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>

+ 368 - 0
src/main/webapp/webpage/modules/projectrecord/summarizing/distributionSumamarizingProjectRecordsList.jsp

@@ -0,0 +1,368 @@
+<%@ 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/designSummarizing/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>
+				</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">
+					<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/designSummarizing/form?view=contentView&condition=interim&type=412&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/distributionSummarizing/form?view=contentView&condition=interim&type=412&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>

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

@@ -195,8 +195,17 @@
 	<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 class="active"><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>
+				</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/interimPaymentSummarizing/" 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();"/><!-- 支持排序 -->
@@ -280,7 +289,7 @@
                         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/designSummarizing/form?view=contentView&condition=interim&type=420&infoId="+d.id+"&id="+d.contentPId+"','95%', '95%')\">" + d.projId + "</a>";
+                        return "<a class=\"attention-info\" title=\"" + d.projId + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看工程进度款信息', '${ctx}/project/interimPaymentSummarizing/form?view=contentView&condition=interim&type=420&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>";
@@ -297,7 +306,7 @@
                         var xml="";
                         /*if(d.canedit3 != undefined && d.canedit3 =="1")
                         {*/
-							xml+="<a href=\"javascript:void(0)\" onclick=\"openDialogView('查看工程进度款信息', '${ctx}/project/designSummarizing/form?view=contentView&condition=interim&type=420&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>"
+							xml+="<a href=\"javascript:void(0)\" onclick=\"openDialogView('查看工程进度款信息', '${ctx}/project/interimPaymentSummarizing/form?view=contentView&condition=interim&type=420&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;
 

+ 368 - 0
src/main/webapp/webpage/modules/projectrecord/summarizing/visaSumamarizingProjectRecordsList.jsp

@@ -0,0 +1,368 @@
+<%@ 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/designSummarizing/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>
+				</ul>
+			</div>
+			<div class="layui-row contentShadow shadowLR" id="queryDiv">
+				<form:form id="searchForm" modelAttribute="projectRecords" action="${ctx}/project/visaSummarizing/" 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/visaSummarizing/form?view=contentView&condition=interim&type=45&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/visaSummarizing/form?view=contentView&condition=interim&type=45&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>

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

@@ -179,13 +179,13 @@
                     $("#contentDetail").load("${ctx}/workcontent/workContentPricemanage/form",param2);
                     break;
                 case '43':
-                    $("#contentDetail").load("${ctx}/project/projectDesignChange/visaList",param2);
+                    $("#contentDetail").load("${ctx}/project/projectDesignChange/listByProjectId",param2);
                     break;
                 case '45':
-                    $("#contentDetail").load("${ctx}/project/projectVisa/visaList",param2);
+                    $("#contentDetail").load("${ctx}/project/projectVisa/listByProjectId",param2);
                     break;
                 case '46':
-                    $("#contentDetail").load("${ctx}/project/projectClaim/visaList",param2);
+                    $("#contentDetail").load("${ctx}/project/projectClaim/listByProjectId",param2);
                     break;
                 case '47':
                     $("#contentDetail").load("${ctx}/workcontent/workContentFundplan/form",param2);
@@ -213,7 +213,7 @@
                     break;
                 /*新加代码*/
                 case '412':
-                    $("#contentDetail").load("${ctx}/workcontentbranchaccount/workcontentBranchAccount/list",param2);
+                    $("#contentDetail").load("${ctx}/workcontentbranchaccount/workcontentBranchAccount/listByProjectId",param2);
                     break;
                 /*新加代码*/
                 case '510':
@@ -607,13 +607,13 @@
                 break;
 
             case '43':
-                $("#contentDetail").load("${ctx}/project/projectDesignChange/visaList",param2);
+                $("#contentDetail").load("${ctx}/project/projectDesignChange/listByProjectId",param2);
                 break;
             case '45':
-                $("#contentDetail").load("${ctx}/project/projectVisa/visaList",param2);
+                $("#contentDetail").load("${ctx}/project/projectVisa/listByProjectId",param2);
                 break;
             case '46':
-                $("#contentDetail").load("${ctx}/project/projectClaim/visaList",param2);
+                $("#contentDetail").load("${ctx}/project/projectClaim/listByProjectId",param2);
                 break;
             case '47':
                 $("#contentDetail").load("${ctx}/workcontent/workContentFundplan/form",param2);
@@ -640,7 +640,7 @@
                 $("#contentDetail").load("${ctx}/fiveDirectionsAffirm/workFiveDirectionsAffirm/list",param2);
                 break;
             case '412':
-                $("#contentDetail").load("${ctx}/workcontentbranchaccount/workContentBranchAccount/list",param2);
+                $("#contentDetail").load("${ctx}/workcontentbranchaccount/workContentBranchAccount/listByProjectId",param2);
                 break;
             case '510':
                 $("#contentDetail").load("${ctx}/workContent/workContentCompleteAccount/list",param2);
@@ -689,13 +689,13 @@
                 break;
 
             case '43':
-                $("#contentDetail").load("${ctx}/project/projectDesignChange/visaList",param2);
+                $("#contentDetail").load("${ctx}/project/projectDesignChange/listByProjectId",param2);
                 break;
             case '45':
-                $("#contentDetail").load("${ctx}/project/projectVisa/visaList",param2);
+                $("#contentDetail").load("${ctx}/project/projectVisa/listByProjectId",param2);
                 break;
             case '46':
-                $("#contentDetail").load("${ctx}/project/projectClaim/visaList",param2);
+                $("#contentDetail").load("${ctx}/project/projectClaim/listByProjectId",param2);
                 break;
             case '47':
                 $("#contentDetail").load("${ctx}/workcontent/workContentFundplan/form",param2);
@@ -722,7 +722,7 @@
                 $("#contentDetail").load("${ctx}/fiveDirectionsAffirm/workFiveDirectionsAffirm/list",param2);
                 break;
             case '412':
-                $("#contentDetail").load("${ctx}/workcontentbranchaccount/workcontentBranchAccount/list",param2);
+                $("#contentDetail").load("${ctx}/workcontentbranchaccount/workcontentBranchAccount/listByProjectId",param2);
                 break;
             case '510':
                 $("#contentDetail").load("${ctx}/workContent/workContentCompleteAccount/list",param2);

+ 1 - 1
src/main/webapp/webpage/modules/projectrecord/visa/projectVisaForm.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="45">
             <input type="hidden" id="contentDeta" name="projectContentData.contentDetail">
             <input type="hidden" id="dataBodyList" name="dataBodyList" value="">

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

@@ -569,6 +569,7 @@
             <form:hidden path="parentIds"/>
             <form:hidden path="project.id"/>
             <form:hidden path="projectContentData.id"/>
+            <form:hidden path="projectContentData.contractId"/>
             <input type="hidden" id="contentDeta" name="projectContentData.contentDetail">
             <input type="hidden" id="dataBodyList" name="dataBodyList" value="">
             <input type="hidden" id="projectContentDataSign" name="projectContentDataSign" value="">

+ 63 - 0
src/main/webapp/webpage/modules/workcontent/workProjectBranchListView.jsp

@@ -0,0 +1,63 @@
+<%@ 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="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>
+            <th>核增、核减额(%)</th>
+        </tr>
+        </thead>
+        <tbody id="investmentCostList">
+        <c:forEach items="${investmentCostList}" 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.accountName}
+                </td>
+                <td style='text-align:center;'>
+                    <fmt:formatNumber value="${row.contractAccount}" pattern="#,##0.00#"/>
+                </td>
+                <td style='text-align:center;'>
+                    <fmt:formatNumber value="${row.submitAccount}" pattern="#,##0.00#"/>
+                </td>
+                <td style='text-align:center;'>
+                    <fmt:formatNumber value="${row.setAccount}" pattern="#,##0.00#"/>
+                </td>
+                <td style='text-align:center;'>
+                    <fmt:formatNumber value="${row.businessAdd}" pattern="#,##0.00#"/>
+                </td>
+                <td style='text-align:center;'>
+                    <fmt:formatNumber value="${row.businessReduce}" pattern="#,##0.00#"/>
+                </td>
+                <td style='text-align:center;'>
+                    <fmt:formatNumber value="${row.businessRate}" pattern="#,##0.00#"/>
+                </td>
+
+
+            </tr>
+        </c:forEach>
+        </tbody>
+    </table>
+</form>

+ 59 - 0
src/main/webapp/webpage/modules/workcontent/workProjectDesignListView.jsp

@@ -0,0 +1,59 @@
+<%@ 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>

+ 1 - 1
src/main/webapp/webpage/modules/workcontent/workProjectScheduleListView.jsp

@@ -10,7 +10,7 @@
                         <th rowspan="2" class="hide"></th>
                         <th rowspan="2" >序号</th>
                         <th rowspan="2" >签约合同价款</th>
-                        <th rowspan="2" >合同名称价款</th>
+                        <th rowspan="2" >实施合同名称</th>
                         <th rowspan="2" >合同编号</th>
                         <th colspan="3" >截至上期末</th>
                         <th colspan="5">本期</th>

+ 59 - 0
src/main/webapp/webpage/modules/workcontent/workProjectVisaListView.jsp

@@ -0,0 +1,59 @@
+<%@ 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>