Переглянути джерело

输变电工程工程竣工结算审核单

user7 5 роки тому
батько
коміт
14cf6eb857

+ 5 - 0
src/main/java/com/jeeplus/modules/workcontent/common/WorkContentDetailFactory.java

@@ -44,6 +44,9 @@ public class WorkContentDetailFactory {
     private static WorkContentContractSumService contractsumService = SpringContextHolder.getBean(WorkContentContractSumService.class);
     //输变电功能分布结算
     private static WorkContentBranchAccountService workContentBranchAccountService=SpringContextHolder.getBean(WorkContentBranchAccountService.class);
+    //输变电工程竣工结算
+    private static WorkContentCompleteAccountService workContentCompleteAccountService=SpringContextHolder.getBean(WorkContentCompleteAccountService.class);
+
     public static WorkContentDetailBaseService getDetailService(String type){
         switch (type){
             case "22":
@@ -85,6 +88,8 @@ public class WorkContentDetailFactory {
                 return workFiveDirectionsAffirmService;
             case "412":
                 return workContentBranchAccountService;
+            case "510":
+                return workContentCompleteAccountService;
             default:
                 return null;
         }

+ 38 - 0
src/main/java/com/jeeplus/modules/workcontent/dao/WorkContentCompleteAccountDao.java

@@ -0,0 +1,38 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.workcontent.dao;
+
+import com.jeeplus.common.persistence.CrudDao;
+import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.workcontent.entity.WorkContentBranchAccount;
+import com.jeeplus.modules.workcontent.entity.WorkContentCompleteAccount;
+import com.jeeplus.modules.workcontent.entity.WorkContentInvestmentCost;
+
+import java.util.List;
+
+
+/**
+ * 工程竣工结算DAO接口
+ * @author ssrh
+ * @version 2018-06-05
+ */
+@MyBatisDao
+public interface WorkContentCompleteAccountDao extends CrudDao<WorkContentCompleteAccount> {
+
+
+    void batchInsert(List<WorkContentCompleteAccount> wlist);
+
+    /**
+     * 根据contentId删除数据
+     * @param contentId
+     * @return
+     */
+    int deleteByContentId(String contentId);
+
+    /**
+     * 查询数据表中的所有数据类型
+     * @return
+     */
+    List<String> getTableType(String contentId);
+}

+ 116 - 0
src/main/java/com/jeeplus/modules/workcontent/entity/WorkContentCompleteAccount.java

@@ -0,0 +1,116 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.workcontent.entity;
+
+
+import com.jeeplus.common.persistence.DataEntity;
+import org.springframework.format.annotation.NumberFormat;
+
+/**
+ * 工程竣工结算Entity
+ * @author ssrh
+ * @version 2018-06-05
+ */
+public class WorkContentCompleteAccount extends DataEntity<WorkContentCompleteAccount> {
+
+	private static final long serialVersionUID = 1L;
+	private String projectId;		// 项目id
+	private String contentId;		// 工作内容ID
+
+	private String completeName;		// 工程单位名称
+    @NumberFormat(style = NumberFormat.Style.CURRENCY)
+	private Double completeContract;		// 合同价(元)
+    @NumberFormat(style = NumberFormat.Style.CURRENCY)
+	private Double completeSubmit;		// 送审价(元)
+    @NumberFormat(style = NumberFormat.Style.CURRENCY)
+	private Double completeExamine;		// 定审价(元)
+    @NumberFormat(style = NumberFormat.Style.CURRENCY)
+	private Double completeAdd;		// 核增额(元)
+    @NumberFormat(style = NumberFormat.Style.CURRENCY)
+	private Double completeReduce;		// 核减额(元)
+    @NumberFormat(style = NumberFormat.Style.CURRENCY)
+	private Double completeRate;		// 核增减率%
+
+	private String type;		// 节点类型
+
+	public String getProjectId() {
+		return projectId;
+	}
+
+	public void setProjectId(String projectId) {
+		this.projectId = projectId;
+	}
+
+	public String getContentId() {
+		return contentId;
+	}
+
+	public void setContentId(String contentId) {
+		this.contentId = contentId;
+	}
+
+	public String getCompleteName() {
+		return completeName;
+	}
+
+	public void setCompleteName(String completeName) {
+		this.completeName = completeName;
+	}
+
+	public Double getCompleteContract() {
+		return completeContract;
+	}
+
+	public void setCompleteContract(Double completeContract) {
+		this.completeContract = completeContract;
+	}
+
+	public Double getCompleteSubmit() {
+		return completeSubmit;
+	}
+
+	public void setCompleteSubmit(Double completeSubmit) {
+		this.completeSubmit = completeSubmit;
+	}
+
+	public Double getCompleteExamine() {
+		return completeExamine;
+	}
+
+	public void setCompleteExamine(Double completeExamine) {
+		this.completeExamine = completeExamine;
+	}
+
+	public Double getCompleteAdd() {
+		return completeAdd;
+	}
+
+	public void setCompleteAdd(Double completeAdd) {
+		this.completeAdd = completeAdd;
+	}
+
+	public Double getCompleteReduce() {
+		return completeReduce;
+	}
+
+	public void setCompleteReduce(Double completeReduce) {
+		this.completeReduce = completeReduce;
+	}
+
+	public Double getCompleteRate() {
+		return completeRate;
+	}
+
+	public void setCompleteRate(Double completeRate) {
+		this.completeRate = completeRate;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+}

+ 76 - 0
src/main/java/com/jeeplus/modules/workcontent/service/WorkContentCompleteAccountService.java

@@ -0,0 +1,76 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.workcontent.service;
+
+import com.alibaba.fastjson.JSON;
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.service.CrudService;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.modules.workcontent.dao.WorkContentCompleteAccountDao;
+import com.jeeplus.modules.workcontent.entity.WorkContentCompleteAccount;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 工程竣工结算Service
+ * @author ssrh
+ * @version 2018-06-05
+ */
+@Service
+@Transactional(readOnly = true)
+public class WorkContentCompleteAccountService extends CrudService<WorkContentCompleteAccountDao, WorkContentCompleteAccount> implements WorkContentDetailBaseService{
+
+
+	public WorkContentCompleteAccount get(String id) {
+		return super.get(id);
+	}
+	
+	public List<WorkContentCompleteAccount> findList(WorkContentCompleteAccount workContentCompleteAccount) {
+		return super.findList(workContentCompleteAccount);
+	}
+	
+	public Page<WorkContentCompleteAccount> findPage(Page<WorkContentCompleteAccount> page, WorkContentCompleteAccount workContentCompleteAccount) {
+		return super.findPage(page, workContentCompleteAccount);
+	}
+	
+	@Transactional(readOnly = false)
+	public void save(WorkContentCompleteAccount workContentCompleteAccount) {
+		super.save(workContentCompleteAccount);
+	}
+	
+	@Transactional(readOnly = false)
+	public void delete(WorkContentCompleteAccount workContentCompleteAccount) {
+		super.delete(workContentCompleteAccount);
+	}
+	
+    @Override
+    @Transactional(readOnly = false)
+    public void saveDetails(String detailStr, String projectId, String contentId) {
+	    if(StringUtils.isBlank(detailStr)){
+	        return;
+        }
+        List<WorkContentCompleteAccount> investmentCostList = JSON.parseArray(detailStr, WorkContentCompleteAccount.class);
+        for (WorkContentCompleteAccount investmentCost : investmentCostList) {
+            if(WorkContentCompleteAccount.DEL_FLAG_DELETE.equals(investmentCost.getDelFlag())){
+                dao.delete(investmentCost);
+                continue;
+            }
+            investmentCost.setContentId(contentId);
+            investmentCost.setProjectId(projectId);
+            this.save(investmentCost);
+        }
+    }
+
+	/**
+	 * 查询数据表中的所有数据类型
+	 * @return
+	 */
+	public List<String> getTableType(String contentId){
+		List<String> tableType = dao.getTableType(contentId);
+		return tableType;
+	}
+
+}

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

@@ -122,7 +122,7 @@ public class WorkContentBranchAccountController extends BaseController {
 		} catch (Exception e) {
 			addMessage(redirectAttributes, "导入模板下载失败!失败信息:"+e.getMessage());
 		}
-		return "redirect:"+Global.getAdminPath()+"/workcontentbranchAccount/workContentBranchAccount/?repage";
+		return "redirect:"+Global.getAdminPath()+"/workcontentbranchAccount/workcontentBranchAccount/?repage";
     }
 	/**
 	 * 查询数据表中的所有数据类型

+ 138 - 0
src/main/java/com/jeeplus/modules/workcontent/web/WorkContentCompleteAccountController.java

@@ -0,0 +1,138 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.workcontent.web;
+
+import com.google.common.collect.Lists;
+import com.jeeplus.common.config.Global;
+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.sys.entity.MainDictDetail;
+import com.jeeplus.modules.sys.utils.DictUtils;
+import com.jeeplus.modules.workcontent.entity.WorkContentBranchAccount;
+import com.jeeplus.modules.workcontent.entity.WorkContentCompleteAccount;
+import com.jeeplus.modules.workcontent.service.WorkContentCompleteAccountService;
+import com.jeeplus.modules.workreceiptsregister.entity.ResponseEntity;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 工程分部结算Controller
+ * @author ssrh
+ * @version 2018-06-05
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/workContent/workContentCompleteAccount")
+public class WorkContentCompleteAccountController extends BaseController {
+
+	@Autowired
+	private WorkContentCompleteAccountService workContentCompleteAccountService;
+
+	
+	@ModelAttribute
+	public WorkContentCompleteAccount get(@RequestParam(required=false) String id) {
+		WorkContentCompleteAccount entity = null;
+		if (StringUtils.isNotBlank(id)){
+			entity = workContentCompleteAccountService.get(id);
+		}
+		if (entity == null){
+			entity = new WorkContentCompleteAccount();
+		}
+		return entity;
+	}
+	
+	/**
+	 * 竣工结算结算页面
+	 */
+	/*@RequiresPermissions("workcontentinvestmentcost:workContentInvestmentCost:list")*/
+	@RequestMapping(value = {"list", ""})
+	public String list(WorkContentCompleteAccount workContentCompleteAccount, String view, HttpServletRequest request, HttpServletResponse response, Model model) {
+		String sign = request.getParameter("sign");
+		List<String> signList = new ArrayList();
+		if (StringUtils.isNotBlank(sign)){
+			signList = Arrays.asList(sign.split(","));
+		}
+		List<WorkContentCompleteAccount> list = new ArrayList<>();
+        if(StringUtils.isNotBlank(workContentCompleteAccount.getContentId())){
+            list = workContentCompleteAccountService.findList(workContentCompleteAccount);
+        }
+        model.addAttribute("signList", signList);
+        model.addAttribute("investmentCostList", list);
+        String viewPath = "modules/workcontent/workContentCompleteAccountList";
+        if("view".equals(view)){
+            viewPath+="View";
+        }
+		List<MainDictDetail> unitList=DictUtils.getMainDictList("unit_type");
+		model.addAttribute("unitList", unitList);
+		List<MainDictDetail> nodeList=DictUtils.getMainDictList("node_type");
+		model.addAttribute("nodeList", nodeList);
+		List<MainDictDetail> costList=DictUtils.getMainDictList("cost_type");
+		model.addAttribute("costList", costList);
+        return viewPath;
+	}
+
+	/**
+	 * 导入Excel数据
+	*/
+	@ResponseBody
+    @RequestMapping(value = "import", method=RequestMethod.POST)
+    public Object importFile(MultipartFile file, RedirectAttributes redirectAttributes) {
+        ResponseEntity<WorkContentCompleteAccount> responseEntity = new ResponseEntity<>();
+		try {
+			ImportExcel ei = new ImportExcel(file, 1, 0);
+            List<WorkContentCompleteAccount> list = ei.getDataList(WorkContentCompleteAccount.class);
+			List<WorkContentCompleteAccount> listAll = new ArrayList<>();
+			for (WorkContentCompleteAccount investmentCost : list) {
+				if(StringUtils.isNotBlank(investmentCost.getCompleteName()) && null != investmentCost.getCompleteContract() && null != investmentCost.getCompleteExamine() && null != investmentCost.getCompleteAdd()&& null != investmentCost.getCompleteReduce()&& null != investmentCost.getCompleteSubmit()){
+					listAll.add(investmentCost);
+				}
+			}
+            responseEntity.setData(listAll);
+		} catch (Exception e) {
+		    logger.error("导入工程竣工结算失败!",e);
+		    responseEntity.setCode(400);
+		    responseEntity.setMessage("导入工程竣工结算失败!"+e.getMessage());
+		}
+		return responseEntity;
+    }
+	
+	/**
+	 * 下载导入工程竣工结算数据模板
+	 */
+    @RequestMapping(value = "import/template")
+    public String importFileTemplate(HttpServletResponse response, RedirectAttributes redirectAttributes) {
+		try {
+            String fileName = "工程竣工结算数据导入模板.xlsx";
+    		List<WorkContentCompleteAccount> list = Lists.newArrayList();
+    		new ExportExcel("工程竣工结算数据", WorkContentCompleteAccount.class, 1).setDataList(list).write(response, fileName).dispose();
+    		return null;
+		} catch (Exception e) {
+			addMessage(redirectAttributes, "导入模板下载失败!失败信息:"+e.getMessage());
+		}
+		return "redirect:"+Global.getAdminPath()+"/workContent/WorkContentCompleteAccount/?repage";
+    }
+	/**
+	 * 查询数据表中的所有数据类型
+	 * @return
+	 */
+	@ResponseBody
+	@RequestMapping(value = "getTableType")
+	public List<String> getTableType(String contentId){
+
+		List<String> tableType = workContentCompleteAccountService.getTableType(contentId);
+		return tableType;
+	}
+	
+}

+ 18 - 1
src/main/webapp/webpage/modules/projectcontentinfo/workContentForm.jsp

@@ -246,6 +246,10 @@
                 case '412':
                     $("#contentDetail").load("${ctx}/workcontentbranchaccount/workcontentBranchAccount/list",param2);
                     break;
+                /*新加代码*/
+                case '510':
+                    $("#contentDetail").load("${ctx}/workContent/workContentCompleteAccount/list",param2);
+                    break;
                 default:
                     detailFlag=0;
                     $("#contentDetail").html("");
@@ -1028,6 +1032,9 @@
             /*新加代码*/
             case '412':
                 return  "${ctx}/workcontentbranchaccount/workcontentBranchAccount/getTableType";
+            /*新加代码*/
+            case '510':
+                return  "${ctx}/workContent/workContentCompleteAccount/getTableType";
             default:
                 return "";
         }
@@ -1105,6 +1112,9 @@
             /*新加代码*/
             case '412':
                 $("#contentDetail").load("${ctx}/workcontentbranchaccount/workcontentBranchAccount/list",param2);
+            /*新加代码*/
+            case '510':
+                $("#contentDetail").load("${ctx}/workContent/workContentCompleteAccount/list",param2);
                 break;
             default:
                 detailFlag=0;
@@ -1180,12 +1190,19 @@
             case '412':
                 $("#contentDetail").load("${ctx}/workcontentbranchaccount/workcontentBranchAccount/list",param2);
                 break;
+            /*新加代码*/
+            case '412':
+                $("#contentDetail").load("${ctx}/workcontentbranchaccount/workcontentBranchAccount/list",param2);
+                break;
+            /*新加代码*/
+            case '510':
+                $("#contentDetail").load("${ctx}/workContent/workContentCompleteAccount/list",param2);
+                break;
             default:
                 detailFlag=0;
                 $("#contentDetail").html("");
                 break;
         }
-
     }
 </script>
 </body>

+ 13 - 1
src/main/webapp/webpage/modules/projectcontentinfo/workContentView.jsp

@@ -215,6 +215,10 @@
                 case '412':
                     $("#contentDetail").load("${ctx}/workcontentbranchaccount/workcontentBranchAccount/list",param2);
                     break;
+                /*新加代码*/
+                case '510':
+                    $("#contentDetail").load("${ctx}/workContent/workContentCompleteAccount/list",param2);
+                    break;
                 default:
                     detailFlag=0;
                     $("#contentDetail").html("");
@@ -929,7 +933,9 @@
                 return "${ctx}/fiveDirectionsAffirm/workFiveDirectionsAffirm/getTableType";
             case '412':
                 return "${ctx}/workcontentbranchaccount/workcontentBranchAccount/getTableType";
-            default:
+            case '510':
+                return "${ctx}/workContent/workContentCompleteAccount/getTableType";
+                default:
                 return "";
         }
     }
@@ -1006,6 +1012,9 @@
             case '412':
                 $("#contentDetail").load("${ctx}/workcontentbranchaccount/workContentBranchAccount/list",param2);
                 break;
+            case '510':
+                $("#contentDetail").load("${ctx}/workContent/workContentCompleteAccount/list",param2);
+                break;
             default:
                 detailFlag=0;
                 $("#contentDetail").html("");
@@ -1078,6 +1087,9 @@
             case '412':
                 $("#contentDetail").load("${ctx}/workcontentbranchaccount/workcontentBranchAccount/list",param2);
                 break;
+            case '510':
+                $("#contentDetail").load("${ctx}/workContent/workContentCompleteAccount/list",param2);
+                break;
             default:
                 detailFlag=0;
                 $("#contentDetail").html("");

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

@@ -6,7 +6,7 @@
         <table id="contentTable" class="table table-bordered table-condensed">
             <thead>
                 <tr>
-                    <th colspan="8" style="font-size: 20px">输变电工程分部结算审核</th>
+                    <th colspan="8" style="font-size: 20px">输变电工程分部结算审核</th>
                 </tr>
                 <tr>
                     <th class="hide"></th>

+ 172 - 0
src/main/webapp/webpage/modules/workcontent/workContentCompleteAccountList.jsp

@@ -0,0 +1,172 @@
+<%@ 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">
+    <c:forEach items="${signList}" var="sign">
+        <c:if test="${sign =='completeAccount'}">
+            <div class="layui-item nav-btns" style="padding-left:0px;">
+                <a class="nav-btn nav-btn-add" onclick="addRowCost('#investmentCostList',investmentCostIdx,investmentCostTpl)" title="新增"><i class="fa fa-plus"></i> 新增</a>
+                <table:importExcelCost url="${ctx}/workContent/workContentCompleteAccount/import"></table:importExcelCost><!-- 导入按钮 -->
+            </div>
+
+            <table id="contentTable" class="table table-bordered table-condensed can-edit">
+                <thead>
+
+                    <tr>
+                        <th colspan="9" style="font-size: 20px">输变电工程竣工结算审核单</th>
+                    </tr>
+                    <tr>
+                        <th class="hide"></th>
+                        <th>序号</th>
+                        <th>单位工程名称</th>
+                        <th>合同价(元)</th>
+                        <th>送审价(元)</th>
+                        <th>审定价(元)</th>
+                        <th>核增额(元)</th>
+                        <th>核减额(元)</th>
+                        <th>核增、核减额(%)</th>
+                        <th width="60" rowspan="3">操作</th>
+                    </tr>
+                </thead>
+                <tbody id="investmentCostList">
+                </tbody>
+            </table>
+        </c:if>
+    </c:forEach>
+	<script type="text/template" id="investmentCostTpl">//<!--
+        <tr id="investmentCostList{{idx}}">
+            <td class="hide">
+                <input id="investmentCostList{{idx}}_id" subName="id" class="contentDetail" type="hidden" value="{{row.id}}"/>
+                <input id="investmentCostList{{idx}}_delFlag" subName="delFlag" class="contentDetail" type="hidden" value="0"/>
+                <input id="investmentCostList{{idx}}_type" subName="type" class="contentDetail" type="hidden" value="completeAccount"/>
+                <input id="investmentCostList{{idx}}_costType" subName="costType" class="contentDetail"  type="hidden" value="{{row.costType}}"/>
+            </td>
+            <td>
+                <input id="investmentCostList{{idx}}_costNum" subName="costNum" readonly="readonly" style="text-align: center"  value="{{idx}}" type="text" class="form-control contentDetail"/>
+            </td>
+            <td>
+                <input id="investmentCostList{{idx}}_completeName" subName="completeName" value="{{row.completeName}}" type="text" class="form-control contentDetail"/>
+            </td>
+            <td>
+                <input id="investmentCostList{{idx}}_completeContract" subName="completeContract" type="text" value="{{row.completeContract}}"  class="form-control number contentDetail money"/>
+            </td>
+            <td>
+                <input id="investmentCostList{{idx}}_completeSubmit" subName="completeSubmit" type="text" value="{{row.completeSubmit}}"   class="form-control number contentDetail money"/>
+            </td>
+            <td>
+                <input id="investmentCostList{{idx}}_completeExamine" subName="completeExamine" type="text" value="{{row.completeExamine}}"   class="form-control number contentDetail money"/>
+            </td>
+            <td>
+                <input id="investmentCostList{{idx}}_completeAdd" subName="completeAdd" type="text"  value="{{row.completeAdd}}"  class="form-control number  contentDetail money"/>
+            </td>
+            <td>
+                <input id="investmentCostList{{idx}}_completeReduce" subName="completeReduce" type="text"    value="{{row.completeReduce}}"  class="form-control number contentDetail"/>
+            </td>
+            <td>
+                <input id="investmentCostList{{idx}}_completeRate" subName="completeRate" type="text"  value="{{row.completeRate}}"  class="form-control number contentDetail"/>
+            </td>
+
+            <td class="text-center op-td">
+                        <a href="#" onclick="delRow(this, '#investmentCostList{{idx}}')"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 取消</a>
+            </td>
+        </tr>//-->
+    </script>
+    <script type="text/javascript">
+        var investmentCostIdx = 0, investmentCostTpl = $("#investmentCostTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+        var validateForm2;
+        $(function(){
+            validateForm2 = $("#subForm").validate({
+                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);
+                    }
+                }
+            });
+            var data = ${fns:toJson(investmentCostList)};
+            for (var i=0; i<data.length; i++){
+                addRowCost('#investmentCostList', investmentCostIdx, investmentCostTpl,data[i]);
+                $("#investmentCostList"+i+"_nodeTypes").val(data[i].nodeTypes);
+                $("#investmentCostList"+i+"_expenseType").val(data[i].expenseType);
+                $("#investmentCostList"+i+"_unit").val(data[i].unit);
+            }
+            $(":input.money").change();
+        })
+
+        function addRowCost(list, idx, tpl, row){
+            idx = idx+1;
+            bornTemplete(list, idx, tpl, row, idx);
+            investmentCostIdx +=1;
+        }
+
+        function bornTemplete(list, idx, tpl, row, idx1){
+            var idx1 = $("#investmentCostList tr").length +1;
+            $(list).append(Mustache.render(tpl, {
+                idx: idx, delBtn: true, row: row,
+                order:idx1 + 1, idx1:idx1
+            }));
+            $(list+idx).find("select").each(function(){
+                $(this).val($(this).attr("data-value"));
+            });
+            $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
+                var ss = $(this).attr("data-value").split(',');
+                for (var i=0; i<ss.length; i++){
+                    if($(this).val() == ss[i]){
+                        $(this).attr("checked","checked");
+                    }
+                }
+            });
+        }
+        function delRow(obj, prefix,idx){
+            var id = $(prefix+"_id");
+            var delFlag = $(prefix+"_delFlag");
+            if(id.val()==null||id.val()==''){
+                $(obj).parent().parent().remove();
+            }else {
+                delFlag.val("1");
+                $(obj).parent().parent().hide();
+            }
+        }
+
+        function genRow(data) {
+            for (var i = 0; i < data.length; i++) {
+                addRowCost('#investmentCostList',investmentCostIdx,investmentCostTpl,data[i]);
+            }
+            $(":input.money").change();
+        }
+
+        function genDetailStr(){
+            var costList = $("#investmentCostList tr");
+            var contentStr = "[";
+            for(var j=0; j<costList.length;j++){
+                contentStr+="{"
+                var idstr = $(costList[j]).attr("id");
+                var detail = $("tr[id="+idstr+"] .contentDetail");
+                for(var i=0; i<detail.length;i++){
+                    contentStr+="'"
+                    contentStr+=$(detail[i]).attr("subName");
+                    contentStr+="'"
+                    contentStr+=":";
+                    contentStr+="'"
+                    contentStr+=$(detail[i]).val();
+                    contentStr+="'"
+                    if(i!=detail.length-1){
+                        contentStr+=","
+                    }
+                }
+                contentStr+="}"
+                if(j!=costList.length-1){
+                    contentStr+=","
+                }
+            }
+            contentStr += "]";
+            return contentStr;
+        }
+        function genSecondDetailStr(){
+            return '';
+        }
+    </script>
+</form>

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

@@ -0,0 +1,58 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<form id="subForm"  action="#" onsubmit="return false;" method="post" class="form-horizontal">
+    <c:forEach items="${signList}" var="sign">
+    <c:if test="${sign =='completeAccount'}">
+        <table id="contentTable" class="table table-bordered table-condensed">
+            <thead>
+                <tr>
+                    <th colspan="8" 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>
+                </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.completeName}
+                    </td>
+                    <td style='text-align:center;'>
+                        <fmt:formatNumber value="${row.completeContract}" pattern="#,##0.00#"/>
+                    </td>
+                    <td style='text-align:center;'>
+                        <fmt:formatNumber value="${row.completeSubmit}" pattern="#,##0.00#"/>
+                    </td>
+                    <td style='text-align:center;'>
+                        <fmt:formatNumber value="${row.completeExamine}" pattern="#,##0.00#"/>
+                    </td>
+                    <td style='text-align:center;'>
+                        <fmt:formatNumber value="${row.completeAdd}" pattern="#,##0.00#"/>
+                    </td>
+                    <td style='text-align:center;'>
+                        <fmt:formatNumber value="${row.completeReduce}" pattern="#,##0.00#"/>
+                    </td>
+                    <td style='text-align:center;'>
+                        <fmt:formatNumber value="${row.completeRate}" pattern="#,##0.00#"/>
+                    </td>
+
+
+                </tr>
+            </c:forEach>
+            </tbody>
+        </table>
+    </c:if>
+    </c:forEach>
+</form>