user5 4 năm trước cách đây
mục cha
commit
2bb80f309f

+ 176 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentDesignSummarizingController.java

@@ -0,0 +1,176 @@
+package com.jeeplus.modules.projectrecord.web.summarizing;
+
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.utils.MyBeanUtils;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.act.entity.Act;
+import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.projectType.entity.ProjectTemplateType;
+import com.jeeplus.modules.projectType.service.ProjectResultsFileTemplateService;
+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.ProjectReportData;
+import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.*;
+import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
+import com.jeeplus.modules.projectcontroltable.service.ProjectControlTableService;
+import com.jeeplus.modules.projectrecord.dao.WorkProjectUserDao;
+import com.jeeplus.modules.projectrecord.entity.ProjectImplementEarly;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecordTreeData;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.projectrecord.service.early.ProjectEarlyReviewService;
+import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.service.DictService;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
+import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
+import com.jeeplus.modules.workreview.service.WorkReviewStandardService;
+import org.activiti.engine.HistoryService;
+import org.activiti.engine.runtime.ProcessInstance;
+import org.activiti.engine.task.Task;
+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 org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
+
+/**
+ * 项目实施前期Controller
+ * @author 徐滕
+ * @version 2020-07-10
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/project/designSummarizing")
+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
+    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:designSummarizing: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;
+    }
+}

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

@@ -0,0 +1,359 @@
+<%@ 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="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=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>";
+					}}
+                ,{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=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;
+
+                    }}
+            ]]
+            ,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>

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

@@ -0,0 +1,745 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>工作内容详情</title>
+	<meta name="decorator" content="default"/>
+    <script src="${ctxStatic}/layer-v2.3/layui/xmSelect.js" charset="utf-8"></script>
+	<script type="text/javascript">
+        $.fn.serializeJson=function(){
+            var serializeObj={};
+            var array=this.serializeArray();
+            var str=this.serialize();
+            $(array).each(function(){
+                if(serializeObj[this.name]){
+                    if($.isArray(serializeObj[this.name])){
+                        serializeObj[this.name].push(this.value);
+                    }else{
+                        serializeObj[this.name]=[serializeObj[this.name],this.value];
+                    }
+                }else{
+                    serializeObj[this.name]=this.value;
+                }
+            });
+            return serializeObj;
+        };
+
+        var validateForm;
+        var detailFlag =0;
+        function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                if(detailFlag==1){
+                    $("#contentDeta").val(encodeURIComponent(genDetailStr()));
+                }
+                $(document.getElementById("projectContentData.type")).removeAttr("disabled");
+                $("#inputForm").submit();
+                return true;
+            }
+
+            return false;
+        }
+        $(function() {
+            var editVal = '${projectcontentinfo.edit}';
+            if('edit'==editVal){
+                parent.parent.refreshTrees();
+            }
+
+            if($("#createDate").val()==null || $("#createDate").val()==''){
+                $("#createDate").val(getNowFormatDate());
+            }
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+            /*laydate.render({
+                elem: '#createDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+            });*/
+            changeContentDetail("${projectcontentinfo.projectContentData.type}");
+            var tp = "${projectcontentinfo.dictType}";
+            var tp2 = "${projectcontentinfo.projectContentData.id}"
+            if((tp!=null && tp!='')||(tp2!=null && tp2!='')){
+                $(document.getElementById("projectContentData.type")).attr("disabled","disabled");
+            }
+            initControlData("1");
+        });
+
+        function openDialogre(title,url,width,height,formId){
+
+            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,
+                skin: 'three-btns',
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['提交','关闭'],
+                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;
+                    inputForm.attr("action","${ctx}/projectcontentinfo/projectcontentinfo/ajaxsaveBaseData");//表单提交成功后,从服务器返回的url在当前tab中展示
+                    var $document = iframeWin.contentWindow.document;
+                    formSubmitAjax($document,formId,index);
+                },
+                btn2: function(index){
+                }
+            });
+        }
+
+        function formSubmitAjax($document,inputForm,index){
+            var validateForm = $($document.getElementById(inputForm)).validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $($document.getElementById("#messageBox")).text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+            if(validateForm.form()){
+                $($document.getElementById(inputForm)).ajaxSubmit({
+                    success:function(data) {
+                        if(!data.success){
+                            top.layer.msg("保存依据资料信息异常!",{icon:2});
+                            return false;
+                        }
+                        var idx = $("#workBaseDataList tr").length;
+                        addRowBaseData("#workBaseDataList",idx,workBaseDataTpl,data.body.workBasedData);
+                        parent.layer.msg(data.msg,{icon:1});
+                        top.layer.close(index)
+                    }
+                });
+            }
+        }
+
+        function getNowFormatDate() {
+            var date = new Date();
+            var seperator1 = "-";
+            var month = date.getMonth() + 1;
+            var strDate = date.getDate();
+            month = (month < 10)?"0"+month:month;
+            strDate = (strDate < 10)?"0"+strDate:strDate;
+            var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate;
+            return currentdate;
+        }
+
+        function changeContentDetail(obj) {
+            contentDetailTypeShow(obj);
+            $("#contentDetailTypeDiv").show();
+            $("#projectContentDataSign").val(obj);
+            var param2 = {'contentId':"${projectcontentinfo.projectContentData.id}",'projectId':"${projectcontentinfo.project.id}",view:"view"};
+            detailFlag=1;
+            switch (obj){
+                case '13':
+                case '22':
+                    $("#contentDetail").load("${ctx}/workPreliminary/workPreliminaryDesignEstimate/list",param2);
+                    break;
+                case '25':
+                    $("#contentDetail").load("${ctx}/workcontentinvestmentcost/workContentInvestmentCost/list",param2);
+                    break;
+                case '31':
+                    $("#contentDetail").load("${ctx}/workcontent/workContentContprogram/form",param2);
+                    break;
+                case '32':
+                    $("#contentDetail").load("${ctx}/workcontent/workContentBiddingplan/form",param2);
+                    break;
+                case '34':
+                    $("#contentDetail").load("${ctx}/workcontent/workContentCtrlprice/form",param2);
+                    break;
+                case '41':
+                    $("#contentDetail").load("${ctx}/workcontent/workContentContractinfo/form",param2);
+                    break;
+                case '42':
+                    $("#contentDetail").load("${ctx}/workcontent/workContentPricemanage/form",param2);
+                    break;
+                case '43':
+                    $("#contentDetail").load("${ctx}/project/projectDesignChange/visaList",param2);
+                    break;
+                case '45':
+                    $("#contentDetail").load("${ctx}/project/projectVisa/visaList",param2);
+                    break;
+                case '46':
+                    $("#contentDetail").load("${ctx}/project/projectClaim/visaList",param2);
+                    break;
+                case '47':
+                    $("#contentDetail").load("${ctx}/workcontent/workContentFundplan/form",param2);
+                    break;
+                case '48':
+                    $("#contentDetail").load("${ctx}/workcontent/workContentProjectprice/form",param2);
+                    break;
+                case '49':
+                    $("#contentDetail").load("${ctx}/workcontent/workContentPriceadjust/form",param2);
+                    break;
+                case '52':
+                    $("#contentDetail").load("${ctx}/workcontent/workContentBudget/form",param2);
+                    break;
+                case '53':
+                    $("#contentDetail").load("${ctx}/workcontent/workContentDocument/form",param2);
+                    break;
+                /*case '400':
+                    $("#contentDetail").load("${ctx}/workcontent/workContentContractSum/form",param2);
+                    break;*/
+                case '410':
+                    $("#contentDetail").load("${ctx}/workConcealProject/workConcealProject/list",param2);
+                    break;
+                case '411':
+                    $("#contentDetail").load("${ctx}/fiveDirectionsAffirm/workFiveDirectionsAffirm/list",param2);
+                    break;
+                /*新加代码*/
+                case '412':
+                    $("#contentDetail").load("${ctx}/workcontentbranchaccount/workcontentBranchAccount/list",param2);
+                    break;
+                /*新加代码*/
+                case '510':
+                    $("#contentDetail").load("${ctx}/workContent/workContentCompleteAccount/list",param2);
+                    break;
+                case '420':
+                    $("#contentDetail").load("${ctx}/workSchedule/workSchedule/listByProjectId",param2);
+                    break;
+                case '421':
+                    $("#contentDetail").load("${ctx}/workMaterialsPrice/workMaterialsPrice/list",param2);
+                    break;
+                default:
+                    detailFlag=0;
+                    $("#contentDetail").html("");
+                    break;
+            }
+        }
+        function addFile() {
+            $("#attachment_file").click();
+        }
+
+        function insertTitle(tValue){
+            var files = $("#attachment_file")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $(document.getElementById('projectContentData.id')).val();
+            var attachmentFlag = "94";
+            /*console.log(file);*/
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/projectContentData/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,0);}
+        }
+
+        function openDialogreControl(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,
+                skin: 'three-btns',
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['提交','关闭'],
+                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中展示
+                    var $document = iframeWin.contentWindow.document;
+                    var index1 = parent.layer.load(0, {shade: [0.1, 'tranparent']});
+                    formSubmit($document,"inputForm",index,index1);
+                },
+                btn2: function(index){
+                    parent.layer.close(index)
+                },
+                end:function(index){
+                    parent.layer.close(index)
+                }
+            });
+        }
+        function formSubmit($document,inputForm,index,index1){
+            var validateForm = $($document.getElementById(inputForm)).validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $($document.getElementById("#messageBox")).text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+            if(validateForm.form()){
+                $($document.getElementById(inputForm)).ajaxSubmit({
+                    success:function(data) {
+                        parent.parent.layer.msg("操作成功",{icon:1})
+                        parent.parent.layer.close(index1)
+                        parent.layer.close(index1)
+                        parent.parent.layer.close(index)
+                        parent.layer.close(index)
+                        initGetControlData();
+                    },error:function(){
+                        parent.parent.layer.msg("操作失败",{icon:2})
+                        parent.parent.layer.close(index1)
+                        parent.layer.close(index1)
+                        parent.parent.layer.close(index)
+                        parent.layer.close(index)
+                        initControlData("1");
+                    }
+                });
+            }else {
+                parent.parent.layer.msg("信息未填写完整!", {icon: 2});
+                parent.layer.close(index1)
+                parent.parent.layer.close(index1)
+            }
+        }
+        /**
+         * 删除临时数据
+         */
+        function initControlData(obj,othis,del,tableId){
+            if(del == "del"){
+                proId = tableId;
+			}else{
+                proId = "";
+			}
+            $.ajax({
+                type:'post',
+                url:'${ctx}/projectcontroltable/projectControlTable/delControlData',
+                data:{
+                    "projectId":"${projectcontentinfo.project.id}",
+					"projectContentId":proId,
+					"flag":del
+                },
+                success:function(data){
+                    if(obj != "1"){
+                        if(data.flag){
+                            //$(othis).parent().parent().parent().remove();
+                            parent.layer.msg("数据删除成功",{icon:1})
+                            $(othis).remove()
+                        }else{
+                            parent.layer.msg("数据删除失败",{icon:2})
+                        }
+                    }
+                }
+            })
+        }
+
+        function getMatchDate(str){
+//            var reDateTime = /^(?:19|20)[0-9][0-9]-(?:(?:0[1-9])|(?:1[0-2]))-(?:(?:[0-2][1-9])|(?:[1-3][0-1])) (?:(?:[0-2][0-3])|(?:[0-1][0-9])):[0-5][0-9]:[0-5][0-9]$/;
+            var reDateTime = /^(?:19|20)[0-9][0-9]-(?:(?:0[1-9])|(?:1[0-2]))-(?:(?:[0-2][1-9])|(?:[1-3][0-1]))/
+            var date = (""+str).match(reDateTime);
+            if(date){
+                return date[0]
+            }else{
+                return "";
+            }
+        }
+
+        /**
+         * 获取临时数据
+         * @param obj
+         * @param othis
+         */
+        function initGetControlData(){
+            $.ajax({
+                type:'post',
+                url:'${ctx}/projectcontroltable/projectControlTable/getControlData',
+                data:{
+                    "projectId":"${projectcontentinfo.project.id}",
+                    "proId":"${projectcontentinfo.projectContentData.id}"
+                },
+                success:function(data){
+                    if(data){
+                        var htmlStr = '';
+                        data = data.list.projectControlTableList;
+                        for(var i=0;i<data.length;i++){
+                            htmlStr += "<tr id='tr"+i+"'>"+
+                                "   <td style='text-align:center;'>"+
+                                "	   "+data[i].tName+
+                                "	   <input type='hidden' name='projectContentData.projectControlTableList["+i+"].id' value='"+data[i].id+"'>"+
+                                "	   <input type='hidden' name='projectContentData.projectControlTableList["+i+"].tName' value='"+data[i].tName+"'>"+
+                                "	   <input type='hidden' name='projectContentData.projectControlTableList["+i+"].processName' value='"+data[i].processName+"'>"+
+                                "	   <input type='hidden' name='projectContentData.projectControlTableList["+i+"].pfId' value='"+data[i].pfId+"'>"+
+                                "   </td>"+
+                                "   <td style='text-align:center;'>" +
+                                "  			"+data[i].processName+
+                                "	   		<input type='hidden' name='projectContentData.projectControlTableList["+i+"].tType' value='"+data[i].tType+"'>"+
+                                "	</td>"+
+                                "   <td style='text-align:center;'>"+
+                                "  		"+data[i].tUser.name+
+                                "   </td>"+
+                                "   <td style='text-align:center;'>"+
+                                "  "+ getMatchDate(data[i].createDate)+
+                                //										"	    <input type='hidden' name='projectControlTableList["+i+"].createDate' value='"+data[i].createDate+"'>"+
+                                //										"	    <input type='hidden' name='projectControlTableList["+i+"].updateDate' value='"+data[i].updateDate+"'>"+
+                                //										"	    <input type='hidden' name='projectControlTableList["+i+"].delFlag' value='"+data[i].delFlag+"'>"+
+                                //										"	    <input type='hidden' name='projectControlTableList["+i+"].createBy.id' value='"+data[i].createBy.id+"'>"+
+                                "   </td>"+
+                                "   <td style='text-align:center;'>"+
+                                "   	<a href='javascript:void(0)' onclick=\"openDialogView('查看过程控制明细', '${ctx}/projectcontroltable/projectControlTable/form?view=view&id="+data[i].id+"','80%', '80%')\" class='btn btn-info btn-xs' ><i class='fa fa-search-plus'></i> 查看</a>"+
+                                "  		<a href=\"javascript:initControlData('0','#tr"+i+"','del','"+data[i].id+"')\" onclick=\"return confirmx('确认要删除该过程控制数据吗?', this.href)\"   class='btn btn-danger btn-xs'><i class='fa fa-trash'></i> 删除</a>"+
+                                "  </td>"+
+                                "</tr>";
+                        }
+                        if(htmlStr){
+                            $("#projectControlTables").html(htmlStr);
+                        }
+                    }
+                }
+            })
+        }
+    </script>
+</head>
+<body>
+<div class="single-form">
+    <div class="container${container} view-form">
+        <form:form id="inputForm" modelAttribute="projectcontentinfo" action="${ctx}/projectcontentinfo/projectcontentinfo/save?view=content" method="post" class="form-horizontal">
+            <form:hidden path="id"/>
+            <input type="hidden" id="projectContentDataSign" name="projectContentDataSign" value="">
+            <div class="form-group layui-row first lw12">
+                <div class="form-group-label"><h2>基本信息</h2></div>
+                <div class="layui-item layui-col-sm6">
+                    <label class="layui-form-label">工作内容类型:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false" readonly="true" class="form-control layui-input" value="${fns:getProjectTypeName(projectcontentinfo.type,"")}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6">
+                    <label class="layui-form-label">项目编号:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false" readonly="true" class="form-control layui-input" value="${projectcontentinfo.project.projectId}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6">
+                    <label class="layui-form-label">项目名称:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false" readonly="true" class="form-control layui-input" value="${projectcontentinfo.project.projectName}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6">
+                    <label class="layui-form-label">项目负责人:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false" readonly="true" class="form-control layui-input" value="${projectcontentinfo.project.createBy.name}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6" id="contentDetailTypeDiv" style="display: none">
+                    <label class="layui-form-label">内容类型:</label>
+                    <div class="layui-input-block">
+                        <div class="input-group">
+                            <div >
+                                <div id="contentDetailType" style="pointer-events: none;" class="xm-select-demo" tabindex="0" contenteditable="true"></div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="form-group layui-row">
+                <div class="form-group-label"><h2>内容详情</h2></div>
+                <div style="padding: 0 15px;">
+                    <div id="contentDetail"></div>
+                </div>
+            </div>
+        </form:form>
+    </div>
+</div>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+    function contentDetailTypeShow(obj) {
+        var projectContentDataId = '${projectcontentinfo.projectContentData.id}';
+        $.ajax({
+            type:'post',
+            url:'${ctx}/projectcontentinfo/projectcontentinfo/getAchievementTypeList2',
+            data:{
+                "achievementParentId":obj,
+                "type":2
+            },
+            success:function(data){
+
+                var dataList = data.body.list;
+                var holdDataList = data.body.list;
+                for (i in dataList) {
+                        var newData = {
+                            "name": dataList[i].name,
+                            "value": dataList[i].value,
+                            "selected": true
+                        }
+                        holdDataList.splice(i,1,newData);
+                }
+
+                xmSelect.render({
+                    el: '#contentDetailType',
+                    language: 'zn',
+                    data: holdDataList
+                })
+                $("#dataBodyList").val(holdDataList);
+            }
+        })
+    }
+
+    var contentDetailType = xmSelect.render({
+        el: '#contentDetailType',
+        language: 'zn',
+        data: [
+        ]
+    })
+
+    function getExistingDataOnPath(val) {
+        switch (val){
+            case '22':
+                return "${ctx}/workPreliminary/workPreliminaryDesignEstimate/getTableType";
+            case '13':
+            case '25':
+                return "${ctx}/workcontentinvestmentcost/workContentInvestmentCost/getTableType";
+            case '31':
+                return "${ctx}/workcontent/workContentContprogram/form";
+            case '32':
+                return "${ctx}/workcontent/workContentBiddingplan/form";
+            case '34':
+                return "${ctx}/workcontent/workContentCtrlprice/getTableType";
+            case '41':
+                return "${ctx}/workcontent/workContentContractinfo/form";
+            case '42':
+                return "${ctx}/workcontent/workContentPricemanage/form";
+            case '43':
+                return "${ctx}/project/projectDesignChange/visaList";
+            case '45':
+                return "${ctx}/project/projectVisa/visaList";
+            case '46':
+                return "${ctx}/project/projectClaim/visaList";
+            case '47':
+                return "${ctx}/workcontent/workContentFundplan/form";
+            case '48':
+                return "${ctx}/workcontent/workContentProjectprice/form";
+            case '49':
+                return "${ctx}/workcontent/workContentPriceadjust/form";
+            case '52':
+                return "${ctx}/workcontent/workContentBudget/form";
+            case '53':
+                return "${ctx}/workcontent/workContentDocument/form";
+            /*case '400':
+                return "${ctx}/workcontent/workContentContractSum/form";*/
+            case '410':
+                return "${ctx}/workConcealProject/workConcealProject/getTableType";
+            case '411':
+                return "${ctx}/fiveDirectionsAffirm/workFiveDirectionsAffirm/getTableType";
+            case '412':
+                return "${ctx}/workcontentbranchaccount/workcontentBranchAccount/getTableType";
+            case '510':
+                return "${ctx}/workContent/workContentCompleteAccount/getTableType";
+            case '420':
+                return "${ctx}/workSchedule/workSchedule/getTableType";
+            case '421':
+                return "${ctx}/workMaterialsPrice/workMaterialsPrice/getTableType";
+                default:
+                return "";
+        }
+    }
+
+
+    function getDetailsNum(){
+        var list = [];
+        //获取当前多选选中的值
+        var selectArr = contentDetailType.getValue();
+        for (var i in selectArr){
+            list.push(selectArr[i].value);
+        }
+        $("#contentDetail").val("");
+        console.log(list);
+        var val = $("#projectContentDataSign").val();
+        var param2 = {'contentId':"${projectcontentinfo.projectContentData.id}",'projectId':"${projectcontentinfo.project.id}",'sign':list.toString(),'achievementParentId':val};
+        detailFlag=1;
+        switch (val){
+            case '22':
+                $("#contentDetail").load("${ctx}/workPreliminary/workPreliminaryDesignEstimate/list",param2);
+                break;
+            case '13':
+            case '25':
+                $("#contentDetail").load("${ctx}/workcontentinvestmentcost/workContentInvestmentCost/list",param2);
+                break;
+            case '31':
+                $("#contentDetail").load("${ctx}/workcontent/workContentContprogram/form",param2);
+                break;
+            case '32':
+                $("#contentDetail").load("${ctx}/workcontent/workContentBiddingplan/form",param2);
+                break;
+            case '34':
+                $("#contentDetail").load("${ctx}/workcontent/workContentCtrlprice/form",param2);
+                break;
+            case '41':
+                $("#contentDetail").load("${ctx}/workcontent/workContentContractinfo/form",param2);
+                break;
+            case '42':
+                $("#contentDetail").load("${ctx}/workcontent/workContentPricemanage/form",param2);
+                break;
+
+            case '43':
+                $("#contentDetail").load("${ctx}/project/projectDesignChange/visaList",param2);
+                break;
+            case '45':
+                $("#contentDetail").load("${ctx}/project/projectVisa/visaList",param2);
+                break;
+            case '46':
+                $("#contentDetail").load("${ctx}/project/projectClaim/visaList",param2);
+                break;
+            case '47':
+                $("#contentDetail").load("${ctx}/workcontent/workContentFundplan/form",param2);
+                break;
+            case '48':
+                $("#contentDetail").load("${ctx}/workcontent/workContentProjectprice/form",param2);
+                break;
+            case '49':
+                $("#contentDetail").load("${ctx}/workcontent/workContentPriceadjust/form",param2);
+                break;
+            case '52':
+                $("#contentDetail").load("${ctx}/workcontent/workContentBudget/form",param2);
+                break;
+            case '53':
+                $("#contentDetail").load("${ctx}/workcontent/workContentDocument/form",param2);
+                break;
+            /*case '400':
+                $("#contentDetail").load("${ctx}/workcontent/workContentContractSum/form",param2);
+                break;*/
+            case '410':
+                $("#contentDetail").load("${ctx}/workConcealProject/workConcealProject/list",param2);
+                break;
+            case '411':
+                $("#contentDetail").load("${ctx}/fiveDirectionsAffirm/workFiveDirectionsAffirm/list",param2);
+                break;
+            case '412':
+                $("#contentDetail").load("${ctx}/workcontentbranchaccount/workContentBranchAccount/list",param2);
+                break;
+            case '510':
+                $("#contentDetail").load("${ctx}/workContent/workContentCompleteAccount/list",param2);
+                break;
+            case '420':
+                $("#contentDetail").load("${ctx}/workSchedule/workSchedule/listByProjectId",param2);
+                break;
+            case '421':
+                $("#contentDetail").load("${ctx}/workMaterialsPrice/workMaterialsPrice/list",param2);
+                break;
+            default:
+                detailFlag=0;
+                $("#contentDetail").html("");
+                break;
+        }
+
+    }
+
+    function modifyGetDetailsNum(list){
+        console.log(list);
+        var val = $("#projectContentDataSign").val();
+        var param2 = {'contentId':"${projectcontentinfo.projectContentData.id}",'projectId':"${projectcontentinfo.project.id}",'sign':list.toString(),'achievementParentId':val,'view':'view'};
+        detailFlag=1;
+        switch (val){
+            case '22':
+                $("#contentDetail").load("${ctx}/workPreliminary/workPreliminaryDesignEstimate/list",param2);
+                break;
+            case '13':
+            case '25':
+                $("#contentDetail").load("${ctx}/workcontentinvestmentcost/workContentInvestmentCost/list",param2);
+                break;
+            case '31':
+                $("#contentDetail").load("${ctx}/workcontent/workContentContprogram/form",param2);
+                break;
+            case '32':
+                $("#contentDetail").load("${ctx}/workcontent/workContentBiddingplan/form",param2);
+                break;
+            case '34':
+                $("#contentDetail").load("${ctx}/workcontent/workContentCtrlprice/form",param2);
+                break;
+            case '41':
+                $("#contentDetail").load("${ctx}/workcontent/workContentContractinfo/form",param2);
+                break;
+            case '42':
+                $("#contentDetail").load("${ctx}/workcontent/workContentPricemanage/form",param2);
+                break;
+
+            case '43':
+                $("#contentDetail").load("${ctx}/project/projectDesignChange/visaList",param2);
+                break;
+            case '45':
+                $("#contentDetail").load("${ctx}/project/projectVisa/visaList",param2);
+                break;
+            case '46':
+                $("#contentDetail").load("${ctx}/project/projectClaim/visaList",param2);
+                break;
+            case '47':
+                $("#contentDetail").load("${ctx}/workcontent/workContentFundplan/form",param2);
+                break;
+            case '48':
+                $("#contentDetail").load("${ctx}/workcontent/workContentProjectprice/form",param2);
+                break;
+            case '49':
+                $("#contentDetail").load("${ctx}/workcontent/workContentPriceadjust/form",param2);
+                break;
+            case '52':
+                $("#contentDetail").load("${ctx}/workcontent/workContentBudget/form",param2);
+                break;
+            case '53':
+                $("#contentDetail").load("${ctx}/workcontent/workContentDocument/form",param2);
+                break;
+            /*case '400':
+                $("#contentDetail").load("${ctx}/workcontent/workContentContractSum/form",param2);
+                break;*/
+            case '410':
+                $("#contentDetail").load("${ctx}/workConcealProject/workConcealProject/list",param2);
+                break;
+            case '411':
+                $("#contentDetail").load("${ctx}/fiveDirectionsAffirm/workFiveDirectionsAffirm/list",param2);
+                break;
+            case '412':
+                $("#contentDetail").load("${ctx}/workcontentbranchaccount/workcontentBranchAccount/list",param2);
+                break;
+            case '510':
+                $("#contentDetail").load("${ctx}/workContent/workContentCompleteAccount/list",param2);
+                break;
+            case '420':
+                $("#contentDetail").load("${ctx}/workSchedule/workSchedule/listByProjectId",param2);
+                break;
+            case '421':
+                $("#contentDetail").load("${ctx}/workMaterialsPrice/workMaterialsPrice/list",param2);
+                break;
+            default:
+                detailFlag=0;
+                $("#contentDetail").html("");
+                break;
+        }
+
+    }
+</script>
+</body>
+</html>

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

@@ -0,0 +1,91 @@
+<%@ 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="16" style="font-size: 20px">施工单位工程款支付明细表</th>
+                    </tr>
+                    <tr>
+                        <th rowspan="2" class="hide"></th>
+                        <th rowspan="2" >序号</th>
+                        <th rowspan="2" >签约合同价款</th>
+                        <th rowspan="2" >合同名称价款</th>
+                        <th rowspan="2" >合同编号</th>
+                        <th colspan="3" >截至上期末</th>
+                        <th colspan="5">本期</th>
+                        <th colspan="3">截至本期末</th>
+                        <th rowspan="2" >备注</th>
+                    </tr>
+                    <tr>
+                        <th>已累计完成价款</th>
+                        <th>已累计支付价款</th>
+                        <th>支付比例</th>
+                        <th>完成价款</th>
+                        <th>按约定比例应支付价款</th>
+                        <th>应扣预付款</th>
+                        <th>其他应扣款</th>
+                        <th>实际应支付</th>
+                        <th>已累计完成价款</th>
+                        <th>已累计支付价款</th>
+                        <th>支付比例</th>
+                    </tr>
+                </thead>
+                <tbody id="preliminaryList">
+                <c:forEach items="${workScheduleList}" var="row" varStatus="status">
+                    <tr>
+                        <td style='text-align:center;'>
+                                ${status.index+1}
+                        </td>
+                        <td style='text-align:center;'>
+                            <fmt:formatNumber value="${row.contractMoney}" pattern="#,##0.00#"/>
+                        </td>
+
+                        <td style='text-align:center;'>
+                                ${row.contractName}
+                        </td>
+                        <td style='text-align:center;'>
+                                ${row.contractNumber}
+                        </td>
+
+                        <td style='text-align:center;'>
+                            <fmt:formatNumber value="${row.beforeCumulativeCompletionMoney}" pattern="#,##0.00#"/>
+                        </td>
+                        <td style='text-align:center;'>
+                            <fmt:formatNumber value="${row.beforeTotalPaymentMoney}" pattern="#,##0.00#"/>
+                        </td>
+                        <td style='text-align:center;'>
+                            <fmt:formatNumber value="${row.beforePayRatio}" pattern="#,##0.00#"/>
+                        </td>
+                        <td style='text-align:center;'>
+                            <fmt:formatNumber value="${row.currentAccomplishMoney}" pattern="#,##0.00#"/>
+                        </td>
+                        <td style='text-align:center;'>
+                            <fmt:formatNumber value="${row.currentAppointPayMoney}" pattern="#,##0.00#"/>
+                        </td>
+                        <td style='text-align:center;'>
+                            <fmt:formatNumber value="${row.currentShouldDeductPrepayMoney}" pattern="#,##0.00#"/>
+                        </td>
+                        <td style='text-align:center;'>
+                            <fmt:formatNumber value="${row.currentShouldDeductMoney}" pattern="#,##0.00#"/>
+                        </td>
+                        <td style='text-align:center;'>
+                            <fmt:formatNumber value="${row.currentPracticalPayMoney}" pattern="#,##0.00#"/>
+                        </td>
+                        <td style='text-align:center;'>
+                            <fmt:formatNumber value="${row.currentCumulativeCompletionMoney}" pattern="#,##0.00#"/>
+                        </td>
+                        <td style='text-align:center;'>
+                            <fmt:formatNumber value="${row.currentTotalPaymentMoney}" pattern="#,##0.00#"/>
+                        </td>
+                        <td style='text-align:center;'>
+                            <fmt:formatNumber value="${row.currentPayRatio}" pattern="#,##0.00#"/>
+                        </td>
+                        <td style='text-align:center;'>
+                                ${row.remarks}
+                        </td>
+                    </tr>
+                </c:forEach>
+                </tbody>
+            </table>
+</form>