Jelajahi Sumber

历史工程管理 编辑页调整

user5 4 tahun lalu
induk
melakukan
0343c8b58d

+ 9 - 0
src/main/java/com/jeeplus/modules/sg/overheadline/mapper/OverheadLineMapper.java

@@ -79,4 +79,13 @@ public interface OverheadLineMapper {
     //根据ID删除项目明细
     void delete(String id);
 
+    /**
+     * 获取wbs表数据信息
+     * @param id            项目id,必须有
+     * @param wbsId         wbs id,必须有
+     * @return
+     */
+    JkxlDetailFee getDetailFee(@Param("id") String id,@Param("wbsId") String wbsId);
+
+
 }

+ 13 - 0
src/main/java/com/jeeplus/modules/sg/overheadline/mapper/xml/OverheadLineMapper.xml

@@ -36,6 +36,7 @@
 
 	<select id="getDetails"  resultType="com.jeeplus.modules.sg.overheadline.entity.JkxlDetailFee">
 		SELECT
+		a.id as "wbsId",
 			<include refid="detailColumns"/>
 		FROM sg_wbs_elements a LEFT JOIN sg_fee_detail b on a.short_id = b.wbs_code
 		and b.id = #{id}
@@ -207,5 +208,17 @@
 		</where>
 	</delete>
 
+	<select id="getDetailFee"  resultType="com.jeeplus.modules.sg.overheadline.entity.JkxlDetailFee">
+		SELECT
+		a.id as "wbsId",
+		<include refid="detailColumns"/>
+		FROM sg_wbs_elements a LEFT JOIN sg_fee_detail b on a.short_id = b.wbs_code
+		and b.id = #{id}
+		<where>
+			<if test="wbsId != null and wbsId != ''">
+				AND a.id = #{wbsId}
+			</if>
+		</where>
+	</select>
 
 </mapper>

+ 11 - 0
src/main/java/com/jeeplus/modules/sg/overheadline/service/OverheadLineService.java

@@ -1034,4 +1034,15 @@ public class OverheadLineService {
         return oriList;
     }
 
+
+    /**
+     * 获取wbs表数据信息
+     * @param id
+     * @param wbsId
+     * @return
+     */
+    public JkxlDetailFee getDetailFee(String id,String wbsId){
+        return overheadLineMapper.getDetailFee(id,wbsId);
+    }
+
 }

+ 29 - 14
src/main/java/com/jeeplus/modules/sg/overheadline/web/OverheadLineController.java

@@ -1,10 +1,8 @@
 package com.jeeplus.modules.sg.overheadline.web;
 
-import com.alibaba.fastjson.JSONArray;
 import com.jeeplus.common.utils.DateUtils;
+import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.utils.excel.ExportExcel;
-import com.jeeplus.common.utils.excel.ImportExcel;
-import com.jeeplus.common.utils.sg.ExcelUtil;
 import com.jeeplus.core.web.BaseController;
 import com.jeeplus.modules.sg.overheadline.entity.*;
 import com.jeeplus.modules.sg.overheadline.service.FeeAdjustService;
@@ -12,27 +10,17 @@ import com.jeeplus.modules.sg.overheadline.service.OverheadLineService;
 import com.jeeplus.modules.sg.overheadline.service.SettlementService;
 import com.jeeplus.modules.sg.overheadline.util.BashInfo;
 import com.jeeplus.modules.sg.overheadline.util.DetailFeeUtil;
-import com.jeeplus.modules.sg.overheadline.util.DoubleUtil;
 import com.jeeplus.modules.sg.overheadline.util.ItemShowUtil;
 import com.jeeplus.modules.sg.project.entity.WbsItem;
-import com.jeeplus.modules.sg.project.entity.WbsProject;
 import com.jeeplus.modules.sg.project.service.ItemService;
-import com.jeeplus.modules.sg.project.service.ProjectService;
-import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestMapping;
-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 javax.xml.soap.Detail;
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.text.DecimalFormat;
-import java.text.SimpleDateFormat;
 import java.util.*;
 
 
@@ -89,9 +77,12 @@ public class OverheadLineController extends BaseController {
     map.put("bodyList",bodyList);
     map.put("otherList",otherList);
     map.put("tzList",tzList);
+    map.put("type",type);
+    map.put("id",id);
     map.put("checkList",checkList);
     model.addAttribute("map",map);
-    return "modules/sg/free/wbslist";
+    //return "modules/sg/free/wbslist";
+    return "modules/sg/free/wbslist_1";
   }
 
 
@@ -221,5 +212,29 @@ public class OverheadLineController extends BaseController {
     }
   }
 
+  /**
+   * 查询本体数据wbs信息
+   * @param request
+   * @param response
+   * @param model
+   * @return
+   */
+  @RequestMapping("/getWbsDetailFee")
+  public String getWbsDetailFee(HttpServletRequest request, HttpServletResponse response,Model model){
+    String id = request.getParameter("id");
+    String wbsId = request.getParameter("wbsId");
+    String type = request.getParameter("type");
+    JkxlDetailFee detailFee = new JkxlDetailFee();
+    if(StringUtils.isNotBlank(wbsId)){
+      detailFee = overheadLineService.getDetailFee(id, wbsId);
+    }else{
+      // 本体工程节点 totalFee不为空
+      List<JkxlDetailFee> bodyList = overheadLineService.getDetails(id,"1","1");
+      detailFee =  itemShowUtil.addTotalColumn(bodyList,type);
+    }
+    model.addAttribute("data",detailFee);
+    return "modules/sg/free/noumenonView";
+  }
+
 
 }

+ 133 - 0
src/main/webapp/webpage/modules/sg/free/noumenonView.jsp

@@ -0,0 +1,133 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>查看详情</title>
+    <link rel="stylesheet" href="${ctxp}/static/plugin/assets/layui/css/layui.css">
+    <link rel="stylesheet" href="${ctxp}/static/plugin/assets/common.css"/>
+    <script type="text/javascript" src="${ctxp}/static/plugin/assets/jquery-3.2.1.min.js"></script>
+    <script src="${ctxp}/static/plugin/assets/layui/layui.js"></script>
+</head>
+<style>
+    .layui-input{ height: 28px; margin-top: 6px; background: whitesmoke;line-height: 28px}
+    .layui-form-label { float: left; display: block;padding: 9px 15px;width: 100px;font-weight: 400;line-height: 20px;text-align: right;}
+    .layui-table-view .layui-table {width:100%}
+</style>
+<body style="height: 100%">
+<div class="layui-form-item" style="margin-top: 10px;">
+
+    <fieldset class="layui-elem-field layui-field-title">
+        <legend style="font-size: 15px;">分部分项</legend>
+    </fieldset>
+    <div class="layui-inline">
+        <label class="layui-form-label">直接工程费</label>
+        <div class="layui-input-inline">
+            <input type="text" id="zjgcFee" autocomplete="off" class="layui-input" readonly="readonly" value="${data.zjgcFee}">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label">人工费</label>
+        <div class="layui-input-inline">
+            <input type="text" id="originalRgCost" autocomplete="off" class="layui-input" readonly="readonly" value="${data.originalRgCost}">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label">承包人采购</label>
+        <div class="layui-input-inline">
+            <input type="text" id="originalCbrCost" autocomplete="off" class="layui-input" readonly="readonly" value="${data.originalCbrCost}">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label">发包人采购</label>
+        <div class="layui-input-inline">
+            <input type="text" id="originalFbrCost" autocomplete="off" class="layui-input" readonly="readonly" value="${data.originalFbrCost}">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label">机械费</label>
+        <div class="layui-input-inline">
+            <input type="text" id="originalJxCost" autocomplete="off" class="layui-input" readonly="readonly" value="${data.originalJxCost}">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label">合计金额</label>
+        <div class="layui-input-inline">
+            <input type="text" id="originalTotalCost"  autocomplete="off" class="layui-input" readonly="readonly" value="${data.originalTotalCost}">
+        </div>
+    </div>
+
+
+    <fieldset class="layui-elem-field layui-field-title">
+        <legend style="font-size: 15px;">共性分摊费用</legend>
+    </fieldset>
+    <div class="layui-inline">
+        <label class="layui-form-label">措施费-1</label>
+        <div class="layui-input-inline">
+            <input type="text" id="measuresFee1" autocomplete="off" class="layui-input" readonly="readonly" value="${data.measuresFee1}">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label">措施费-2</label>
+        <div class="layui-input-inline">
+            <input type="text" id="measuresFee2" autocomplete="off" class="layui-input" readonly="readonly" value="${data.measuresFee2}">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label">措施费二</label>
+        <div class="layui-input-inline">
+            <input type="text" id="csf2" autocomplete="off" class="layui-input" readonly="readonly" value="<c:if test="${ empty data.measuresFee3 and not empty data.originalTotalCost}">0.0</c:if><c:if test="${ not empty data.measuresFee3}">${data.measuresFee3}</c:if>">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label">其他费</label>
+        <div class="layui-input-inline">
+            <input type="text" id="otherCost" autocomplete="off" class="layui-input" readonly="readonly" value="${data.otherCost}">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label">规费</label>
+        <div class="layui-input-inline">
+            <input type="text" id="fees" autocomplete="off" class="layui-input" readonly="readonly" value="${data.fees}">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label">税金</label>
+        <div class="layui-input-inline">
+            <input type="text" id="tex" autocomplete="off" class="layui-input" readonly="readonly" value="${data.tex}">
+        </div>
+    </div>
+    <%--<div class="layui-inline">
+        <label class="layui-form-label">分摊费用</label>
+        <div class="layui-input-inline">
+            <input type="text" id="ftfy" autocomplete="off" class="layui-input" readonly="readonly" value="<c:if test="${ empty data.rgFtFee and not empty data.originalTotalCost}">0.0</c:if><c:if test="${ not empty data.rgFtFee}">${data.rgFtFee}</c:if>">
+        </div>
+    </div>--%>
+
+
+</div>
+<script>
+    $(document).ready(function() {
+      $("#zjgcFee").val(doIt($("#zjgcFee").val()));
+      $("#originalRgCost").val(doIt($("#originalRgCost").val()));
+      $("#originalCbrCost").val(doIt($("#originalCbrCost").val()));
+      $("#originalFbrCost").val(doIt($("#originalFbrCost").val()));
+      $("#originalJxCost").val(doIt($("#originalJxCost").val()));
+      $("#originalTotalCost").val(doIt($("#originalTotalCost").val()));
+      $("#measuresFee1").val(doIt($("#measuresFee1").val()));
+      $("#measuresFee2").val(doIt($("#measuresFee2").val()));
+      $("#csf2").val(doIt($("#csf2").val()));
+      $("#otherCost").val(doIt($("#otherCost").val()));
+      $("#fees").val(doIt($("#fees").val()));
+      $("#tex").val(doIt($("#tex").val()));
+      /*$("#ftfy").val(doIt($("#ftfy").val()));*/
+    })
+    function doIt(val){ //科学计数法
+        if(val == null){
+            return val;
+        }
+        var num = new Number(val);
+        return num;
+    }
+</script>
+</body>
+</html>

+ 380 - 0
src/main/webapp/webpage/modules/sg/free/wbslist_1.js

@@ -0,0 +1,380 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<script type="text/javascript">
+layui.config({
+    base: '${ctxp}/static/plugin/assets/'
+}).extend({
+    treetable: 'treetable-lay/treetable'
+}).use(['layer', 'table', 'treetable'], function () {
+    var $ = layui.jquery;
+    var table = layui.table;
+    var layer = layui.layer;
+    var treetable = layui.treetable;
+    //本体部分树形表格生成
+    var renderTable1 = function () {
+    layer.load(2);
+    treetable.render({
+    treeColIndex: 1,
+    treeSpid: -1,
+    treeIdName: 'id',
+    treePidName: 'pid',
+    treeDefaultClose: false,
+    treeLinkage: false,
+    elem: '#table1',
+    page: false,
+    cols: [[ //加载下拉表格二级表头
+    {type:'numbers',width:50, title: '序号', totalRowText: "合计",},
+    {field: 'wbsys', title: 'WBS要素', rowspan:'2'},
+    {field:'wbssbm', title:"wbs识别码"},
+    /*{field:'fbfxysj', align:'center', title: '分部分项',colspan:'6'},
+    //{field:'fbfxtch',align:'center',title:'分部分项(调差后)',colspan:'4'},
+    {field:'fbfxtch',align:'center',title:'共性分摊费用',colspan:'7'},*/
+
+    {field:'hj', title:'合计',totalRow: true},
+    {field: 'requireSubNode', align:'center', title:"操作", templet:function(d){
+        ////对操作进行初始化
+        var xml = "";
+        if(d.requireSubNode){ //调整按钮
+            xml +="<a style='margin-top: 3px;' class='layui-bg-blue layui-btn layui-btn-xs'  onclick=\"getWbsDetailFee('${ctx}/jkxl/getWbsDetailFee?wbsId="+ d.wbsId +"&type="+ ${map.type} +"')\">查看详情</a>";
+            xml +="<a style='margin-top: 3px;' class='layui-btn layui-btn-xs'  onclick=\"adjustment('"+d.wbssbm+"','"+d.subNodeId+"','"+d.hj+"','${ctx}/jkxl/getSubElements?wbsCode=" + d.id + "')\">添加下级节点</a>";
+        }else {
+            xml +="<a style='margin-top: 3px;' class='layui-bg-blue layui-btn layui-btn-xs'  onclick=\"getWbsDetailFee('${ctx}/jkxl/getWbsDetailFee?&wbsId="+ d.wbsId +"&type="+ ${map.type} +"')\">查看详情</a>";
+        }
+
+        return xml;
+    }}
+    ]/*,[
+    {field:'hjje', width:120,align:'center',title:'合计金额',totalRow: true},
+    {field:'zjgcf', width:120,align:'center',title:'直接工程费',totalRow: true},
+    {field:'rgf1', width:120,align:'center',title:'人工费',totalRow: true},
+    {field:'cbrcg1', width:120,align:'center',title:'承包人采购',totalRow: true},
+    {field:'fbrcg1', width:120,align:'center',title:'发包人采购',totalRow: true},
+    {field:'jxf1', width:120,align:'center',title:'机械费',totalRow: true},
+
+    //{field:'rgf2', width:120,align:'center',title:'人工费',totalRow: true},
+    //{field:'cbrcg2', width:120,align:'center',title:'承包人采购',totalRow: true},
+    //{field:'fbrcg2', width:120,align:'center',title:'发包人采购',totalRow: true},
+    //{field:'jxf2', width:120,align:'center',title:'机械费',totalRow: true},
+
+    //{field:'rgf3', width:120,align:'center',title:'人工费',totalRow: true},
+    //{field:'cbrcg3', width:120,align:'center',title:'承包人采购',totalRow: true},
+    //{field:'fbrcg3', width:120,align:'center',title:'发包人采购',totalRow: true},
+    //{field:'jxf3', width:120,align:'center',title:'机械费',totalRow: true},
+
+    {field:'csf_1',width:120,title:'措施费-1',align:'center',totalRow: true},
+    {field:'csf_2',width:120,title:'措施费-2',align:'center',totalRow: true},
+    {field:'csf2',align:'center',width:120,title:'措施费二',totalRow: true},
+    {field:'qtf',align:'center',width:120,title:'其他费',totalRow: true},
+    {field:'gf',align:'center',width:120,title:'规费',totalRow: true},
+    {field:'sf',align:'center',width:120,title:'税金',totalRow: true},
+    {field:'rgf3',align:'center',width:120,title:'分摊费用',totalRow: true},
+    ]*/]
+    ,data: [ //数据传入
+    <c:if test="${ not empty map.bodyList}">
+    <c:forEach items="${map.bodyList}" var="data" varStatus="index">
+    {
+        "id": "${data.wbsCode}",
+        "wbsId": "${data.wbsId}",
+        "wbsys":"${data.simpleDescribe}",
+        "wbssbm": "${data.wbsCode}",
+
+        "hjje": doIt(${data.originalTotalCost}),
+        "zjgcf":doIt(${data.zjgcFee}),
+        "rgf1":doIt(${data.originalRgCost}),
+        "cbrcg1":doIt(${data.originalCbrCost}),
+        "fbrcg1":doIt(${data.originalFbrCost}),
+        "jxf1":doIt(${data.originalJxCost}),
+
+
+        "rgf3": "<c:if test="${ empty data.rgFtFee and not empty data.originalTotalCost}">0.0</c:if><c:if test="${ not empty data.rgFtFee}">${data.rgFtFee}</c:if>",
+
+        "csf_1":doIt(${data.measuresFee1}),
+        "csf_2":doIt(${data.measuresFee2}),
+        "csf2": "<c:if test="${ empty data.measuresFee3 and not empty data.originalTotalCost}">0.0</c:if><c:if test="${ not empty data.measuresFee3}">${data.measuresFee3}</c:if>",
+        "qtf":doIt(${data.otherCost}),
+        "gf":doIt(${data.fees}),
+        "sf":doIt(${data.tex}),
+        "hj": doIt(${data.totalFee}),
+        "requireSubNode":"${data.requireSubNode}",
+        "subNodeId":"${data.id}",
+        "pid":"${data.parentNode}"
+    },
+    </c:forEach>
+    </c:if>
+    ],
+    done: function () {
+    layer.closeAll('loading');
+}
+});
+};
+
+    renderTable1(); //表格渲染
+    // treetable.foldAll('#table1'); 开启后下拉合并
+});
+layui.use(['table', 'form', 'element', 'treetable'], function () {
+    var $ = layui.jquery;
+    var table = layui.table;
+    var form = layui.form;
+    var element = layui.element;
+    var treetable = layui.treetable;
+
+    // 其他部分 表格渲染
+    var renderTable2 = function () {
+        layer.load(2);
+        treetable.render({
+            treeColIndex: 1,
+            treeSpid: -1,
+            treeIdName: 'd_id',
+            treePidName: 'd_pid',
+            elem: '#table2',
+            page: false,
+            cols: [[ //其他部分 生产表头
+                {width:50,title: '序号', type: 'numbers'},
+                {field: 'wbsys', title: 'WBS要素'},
+                {field: 'wbssbm', title: 'WBS识别码'},
+                {field: 'money', title: '金额'},
+             ]]
+            ,data: [ //其他部分数据传入
+                <c:if test="${ not empty map.otherList}">
+                    <c:forEach items="${map.otherList}" var="data" varStatus="index">
+                        /* <c:if test="${data.feeType eq '0'}">*/
+                            {
+                                "d_id": "${data.wbsCode}",
+                                "wbsys": "${data.simpleDescribe}",
+                                "wbssbm": "${data.wbsCode}",
+                                "money":doIt(${data.totalFee}),
+                                "d_pid": "${data.parentNode}"
+
+                            },
+                       /*  </c:if> */
+                    </c:forEach>
+                </c:if>
+            ],
+                done: function () {
+                    layer.closeAll('loading');
+                }
+            });
+            };
+
+            renderTable2();
+            // treetable.foldAll('#table2');
+            });
+        layui.use('table', function(){
+            var table = layui.table;
+        });
+        layui.use('table', function(){
+            var table = layui.table;
+            //未标识部分 表格渲染
+            table.render({
+                elem: '#xmmc'
+                ,limit:Number.MAX_VALUE
+                ,title: '未标识'
+                ,cols: [[ //渲染 表头
+                    {width:50,title: '序号', type: 'numbers'},
+                    {field:'xmmc',title:'项目名称'}
+                    ,{field:'fyje',title:'费用金额'}
+                    ,{toolbar: '#barDemo',align:'center',title:'操作'}
+                ]]
+                // ,page: false
+                ,data:[ //渲染 数据
+                    <c:if test="${ not empty map.tzList}">
+                        <c:forEach items="${map.tzList}" var="data" varStatus="index">
+                            {
+                                "id":"${data.id}",
+                                "xmmc": "${data.type}",
+                                "fyje": doIt(${data.fee})
+                            },
+                        </c:forEach>
+                    </c:if>
+                ]
+            });
+            //监听工具条
+            table.on('tool(freestr)', function(obj){
+                var datacount="";
+                var data = obj.data;
+                if(obj.event === 'fttz'){ //分摊调整
+                    sureradio(data);
+                } else if(obj.event === 'ddtz'){ //单独调整
+                    sureradio2(data,'${ctx}/jkxl/getft?id='+data.id);
+                }
+                // alert(datacount);
+            });
+        });
+
+    function sureradio2(data,url){ //分摊调整 弹出层
+        var newid = data.id;   //获取id
+        var xmmc = data.xmmc;  //获取项目名称
+        var fyje = data.fyje;  //获取 费用金额
+        $("#newid").val(newid); //项目 id/名称/金额 写入input当中  子类页面调用
+        $("#xmmc1").val(xmmc);
+        $("#fyje1").val(fyje);
+        layui.use(['table','layer'],function(){
+
+            layer.open({  //弹出层页面
+                type: 2,
+                title: '单独调整',
+                area: ['80%', '95%'], //设置弹出层大小
+                shade: 0.8,
+                maxmin: true,  //最大最小值
+                shadeClose: true,
+                content: url  //弹出层路径
+                , btn: ['确定','关闭']
+                    ,yes: function(index, layero){
+                        var bodyparent = layer.getChildFrame('body', index); //当前页面 获取子类(弹出层body)的属性
+                        bodyparent.find('#freenl').click();  //获取子类页面的按钮,点击事件。
+                    }
+                    ,btn2: function(index, layero){
+                        layer.close(index); //管理弹出层
+                    }
+                })
+            })
+    }
+    function sureradio(data,target){ //单独调整
+        var newid = data.id; //获取 id/项目名称/项目金额
+        var xmmc = data.xmmc;
+        var fyje = data.fyje;
+        $("#newid").val(newid); //写入当前页面input框中
+        $("#xmmc1").val(xmmc);
+        $("#fyje1").val(fyje);
+        layui.use(['table','layer'],function(){
+
+           layer.open({
+                type: 2,
+                title: xmmc,
+                area: ['47%', '95%'],
+                shade: 0.8,
+                shadeClose: true,
+                content: '${ctxp}/webpage/modules/sg/free/avgpage.jsp'
+                , btn: ['调整','关闭']
+                ,yes: function(index, layero){
+                    var body = 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中展示
+                    iframeWin.contentWindow.doSubmit();
+
+                    layer.close(index);//关闭对话框。
+                }
+
+            })
+        })
+    }
+
+    function adjustment(wbsCode,id,totalFee,url){ //调整 弹出层
+        $("#newid").val(id); //将id写入当前页面input框中
+        $("#wbsCode").val(wbsCode); //将wbsCode写入当前页面input框中
+        $("#fyje1").val(totalFee);
+        $("#xmmc1").val("合计");
+        layui.use(['table','layer'],function(){
+            layer.open({  //弹出层页面
+                type: 2,
+                title: '调整',
+                area: ['80%', '95%'], //设置弹出层大小
+                shade: 0.8,
+                maxmin: true,  //最大最小值
+                shadeClose: true,
+                content: url  //弹出层路径
+                , btn: ['确定','关闭']
+                ,yes: function(index, layero){
+                    var bodyparent = layer.getChildFrame('body', index); //当前页面 获取子类(弹出层body)的属性
+                    bodyparent.find('#freenl').click();  //获取子类页面的按钮,点击事件。
+                }
+                ,btn2: function(index, layero){
+                    layer.close(index); //管理弹出层
+                }
+            })
+        })
+    }
+
+    function getWbsDetailFee(url){ //调整 弹出层
+        layui.use(['table','layer'],function(){
+            layer.open({  //弹出层页面
+                type: 2,
+                title: '详情',
+                area: ['60%', '90%'], //设置弹出层大小
+                shade: 0.3,
+                maxmin: true,  //最大最小值
+                shadeClose: true,
+                content: url+'&id=${map.id}'  //弹出层路径
+                , btn: ['关闭']
+                ,yes: function(index, layero){
+                    layer.close(index); //管理弹出层
+                }
+            })
+        })
+    }
+
+    layui.use('table', function(){ //结算汇总表部分
+        var table = layui.table;
+        table.render({
+            elem: '#settlement'
+            ,limit:Number.MAX_VALUE
+            ,title: '结算汇总表'
+            ,cols: [[
+                {width:50, title: '序号',type:'numbers'}
+                ,{field:'setname',title:'项目或费用名称'}
+                ,{field:'setmoney',title:'金额'}
+                ,{field:'jshj',title:'计算合计'}
+                ,{field:'ce',title:'差额'}
+                ,{field:'op',align:'center',title:"数据核验", templet:function(d){
+                        ////对操作进行初始化
+                        var xml = "";
+                        if(d.status=="1")
+                            xml += "<a style='margin-top: 3px;' class='layui-btn layui-btn-danger layui-btn-xs' lay-event='byz'>不一致</a>";
+                        if(d.status == "0")
+                            xml+="<a style='margin-top: 3px;' class='layui-btn layui-btn-xs' lay-event='byz'>一致</a>";
+                        return xml;
+            }}
+        ]]
+        ,data:[
+        <c:if test="${not empty map.checkList}">
+            <c:forEach items="${map.checkList}" var="data">
+                {
+                    "id":"${data.id}",
+                    "setname": "${data.entryName}",
+                    "setmoney":doIt(${data.money}),
+                    "settext":"${data.remarks}",
+                    "status":"${data.status}",
+                    "reason":"${data.reason}",
+                    "jshj":doIt(${data.totalFee}),
+                    "ce":doIt(${data.difference})
+                },
+            </c:forEach>
+        </c:if>
+    ]
+    // ,page: false
+});
+//监听行工具事件
+table.on('tool(settle)', function(obj){
+    var data = obj.data;
+    if(obj.event === 'byz'){
+        layer.open({
+            type: 1,
+            title:data.setname,
+            // skin: 'layui-layer-rim',
+            area: ['70%', '90%'],
+            offset:['7%','14%'],
+            shade: 0.8,
+            shadeClose: true,
+            fixed: true, //不固定
+            maxmin: true,
+            btn:['关闭'],
+            // content: "<div style='padding: 16px'>"+data.reason+"</div>"
+            content: div_table(data)
+        });
+    }
+});
+});
+function doIt(val){ //科学计数法
+    if(val == null){
+        return val;
+    }
+    var num = new Number(val);
+    return num;
+}
+</script>

+ 205 - 0
src/main/webapp/webpage/modules/sg/free/wbslist_1.jsp

@@ -0,0 +1,205 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+
+<html>
+<head>
+    <title>wbs</title>
+    <link rel="stylesheet" href="${ctxp}/static/plugin/assets/layui/css/layui.css">
+    <link rel="stylesheet" href="${ctxp}/static/plugin/assets/common.css"/>
+    <script type="text/javascript" src="${ctxp}/static/plugin/assets/jquery-3.2.1.min.js"></script>
+    <script src="${ctxp}/static/plugin/assets/layui/layui.js"></script>
+    <%@include file="wbslist_1.js"%>
+</head>
+<style>
+    .btn_out{ width: 100px; margin: 0; float: right; margin-right:2%;}
+    .div_main_form{ width: 50%; margin-left: 10px;}
+    .layui-icon-layer{display: none;}
+    .layui-icon-file{display: none;}
+    .layui-meself-img1{width: 15px;height:15px;/*padding: 2px;*/margin-bottom: 3px;line-height: 15px}
+    .layui-btn-meself{ width: 70px;padding: 4px 7px;}
+     .layui-table-view .layui-table {width:100%}
+    .layui-table-tips-main{display:none}
+    .layui-table-tips-c{display:none}
+    .double-line{line-height: 20px;}
+</style>
+<body style="background-color: white ;height: 100%">
+    <sys:message content="${message}"/>
+    <div style="margin-top: 20px">
+     <c:forEach items="${map.items}" var="data1" varStatus="index">
+    <div style="margin-left: 30px;float: left;font-size: 15px;width:70%">
+        <div class="layui-form-item">
+            <div class="layui-col-xs6 layui-col-md4">
+                <label class="layui-form-label double-line">工程编号:</label>
+                <span style="height: 38px;line-height:38px;">${data1.projectNo}</span>
+            </div>
+            <div class="layui-col-xs12 layui-col-md8">
+                <label class="layui-form-label double-line">工程名称:</label>
+                <span style="height: 38px;line-height:38px;">${data1.projectName}</span>
+            </div>
+        </div>
+        <div class="layui-row">
+            <div class="layui-col-xs6 layui-col-md4" >
+                <label class="layui-form-label double-line">结算书类型:</label>
+                <c:if test="${data1.type eq '1'}">
+                    <span style="height: 38px;line-height:38px;">架空线路</span>
+                </c:if>
+                <c:if test="${data1.type eq '2'}">
+                    <span style="height: 38px;line-height:38px;">电缆线路</span>
+                </c:if>
+                <c:if test="${data1.type eq '3'}">
+                    <span style="height: 38px;line-height:38px;">变电站工程</span>
+                </c:if>
+
+            </div>
+            <div class="layui-col-xs12 layui-col-md8">
+                <label class="layui-form-label double-line">结算书名称:</label>
+                <span class="double-line" style="height: 38px;line-height:38px;">${data1.itemName}</span>
+            </div>
+        </div>
+
+        <div style="height: 7px"></div>
+    </div>
+    <div class="" style="margin-right: 30px;float: right;margin-top: 19px">
+        <div class="layui-btn-group">
+               <input id="type" hidden value="${data1.type}">
+               <c:if test="${empty data1.projectId}">
+            <a class="layui-btn layui-btn-meself" href="${ctx}/project/list"><img class="layui-meself-img1" src="${ctxp}/icon/back.png" alt="">&nbsp;返回</a>
+               </c:if>
+               <c:if test="${not empty data1.projectId}">
+                   <a class="layui-btn layui-btn-meself" href="${ctx}/project/tem/list?id=${data1.projectId}"><img class="layui-meself-img1" src="${ctxp}/icon/back.png" alt="">&nbsp;返回</a>
+               </c:if>
+                <a class="layui-btn layui-btn-warm layui-btn-meself" href="${ctx}/jkxl/export?id=${data1.id}&type=${data1.type}"><img class="layui-meself-img1" src="${ctxp}/icon/daochu.png" alt="">&nbsp;导出</a>
+        </div>
+    </div>
+     </c:forEach>
+    </div>
+    <fieldset class="layui-elem-field layui-field-title" style="width: 100%">
+        <legend>结算汇总表</legend>
+    </fieldset>
+    <div class="" style="margin-left: 10px;margin-right: 10px;">
+        <table class="layui-hide" id="settlement" lay-filter="settle"></table>
+    </div>
+
+    <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
+        <legend>本体部分</legend>
+    </fieldset>
+    <div class="" style="margin-left: 10px;margin-right: 10px;margin-top: 10px;">
+            <%--<table:importExcel url="${ctx}/propertycostreminder/propertyCostReminder/import"></table:importExcel>--%>
+        <table id="table1" class="layui-table" lay-filter="table1"></table>
+    </div>
+
+    <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
+        <legend>其他部分</legend>
+    </fieldset>
+    <div class="" style="margin-left: 10px;margin-right: 10px;">
+        <table id="table2" class="layui-table" lay-filter="table2"></table>
+    </div>
+
+    <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
+        <legend>未识别部分</legend>
+    </fieldset>
+    <div class="" style="margin-left: 10px;/*width:70%;*/margin-right: 10px;">
+        <input hidden="hidden" name="" id="newid" value=""/>
+        <input hidden="hidden" name="" id="wbsCode" value=""/>
+        <input hidden="hidden" name="" id="xmmc1" value=""/>
+        <input hidden="hidden" name="" id="fyje1" value=""/>
+        <table class="layui-hide" id="xmmc" lay-filter="freestr"></table>
+    </div>
+    <div class="layui-form" style="display: none;padding: 10px" id="mydiv">
+        <table class="layui-table" id="show">
+            <colgroup>
+                <col width="150">
+                <col width="150">
+                <col width="200">
+                <col>
+            </colgroup>
+            <thead>
+            <tr>
+                <th>表名</th>
+                <th>费用名称</th>
+                <th>金额</th>
+            </tr>
+            </thead>
+            <tbody id="mytbody1">
+            </tbody>
+        </table>
+        <span id="myspan1" style="font-weight: bold;font-size: 15px">此结算书暂时无法验证,请选择其他结算书。</span>
+        <table class="layui-table" id="hide">
+            <colgroup>
+            <col width="150">
+            <col width="150">
+            <col width="200">
+            <col>
+            </colgroup>
+            <thead>
+            <tr>
+                <th>表名</th>
+                <th>费用名称</th>
+                <th>金额</th>
+            </tr>
+            </thead>
+            <tbody id="mytbody2">
+            </tbody>
+        </table>
+        <span id="myspan2" style="font-weight: bold;font-size: 15px">此结算书暂时无法验证,请选择其他结算书。</span>
+    </div>
+    <div style="width: 100%;height: 100px"></div>
+    <script type="text/html" id="barDemo">
+        <a class="layui-btn  layui-btn-xs" lay-event="fttz">分摊调整</a>
+        <a class="layui-btn layui-btn-xs" lay-event="ddtz">单独调整</a>
+    </script>
+</body>
+<script>
+    function div_table(data) {
+        $("#mytbody1").html("");
+        $("#mytbody2").html("");
+        var name = data.setname;
+        var arr  = data.reason.split(',');
+        var count = 0;
+        var tr="";
+        for (var i = 0; i < arr.length;i+=3) {
+            if(name=="分部分项工程费"){
+                $("#hide").show();
+                $("#myspan2").show();
+                if (arr[i].indexOf("《工程项目竣工结算汇总表》")!=-1||arr[i].indexOf("《工程项目投标报价汇总表》")!=-1){
+                    count+=1;
+                }
+                if(count<=1){
+                    //《工程项目竣工结算汇总表》
+                    if(arr[i].indexOf("金额")!=-1) {
+                        $("#myspan1").html(arr[i]);
+                    }else{
+                         tr  =  "<tr><td>"+arr[i]+"</td><td>"+arr[i+1]+"</td><td>"+arr[i+2]+"</td></tr>"
+                        $("#mytbody1").append(tr);
+                    }
+                }else {
+                    if(arr[i].indexOf("金额")!=-1) {
+                        $("#myspan2").html(arr[i]);
+                    }else{
+                         tr  =  "<tr><td>"+arr[i]+"</td><td>"+arr[i+1]+"</td><td>"+arr[i+2]+"</td></tr>"
+                        $("#mytbody2").append(tr);
+                    }
+                }
+            }else {
+                $("#hide").hide();
+                $("#myspan2").hide();
+                if(arr[i].indexOf("金额")!=-1) {
+                    $("#myspan1").html(arr[i]);
+                }else{
+                    tr  =  "<tr><td>"+arr[i]+"</td><td>"+arr[i+1]+"</td><td>"+arr[i+2]+"</td></tr>"
+                    $("#mytbody1").append(tr);
+                }
+            }
+        }
+        $("table#show tbody tr:first").css("background","#f9f9f9");
+        $("table#hide tbody tr:first").css("background","#f9f9f9");
+        if($("table#show tbody tr:last td:nth-child(2)").text()== "小计"){
+            $("table#show tbody tr:last").css("background","#f9f9f9");
+        }
+        if($("table#hide tbody tr:last td:nth-child(2)").text()=="小计"){
+            $("table#hide tbody tr:last").css("background","#f9f9f9");
+        }
+        return $("#mydiv");
+    }
+</script>
+</html>