zoukankan      html  css  js  c++  java
  • 树结构获取数据问题

    系统结构如图:

    功能要求:

    1.统计单位面积用电量

    2.统计人均用电量

    建筑表结构(region)

    RegionId Name ParentId
         

    电表结构(device)

    DeviceId Name ParentId RegionId
           

     

     

    关于建筑的面积和人数的设定问题:

    开始时候想如果建筑节点没有子节点则提示用户录入面积和人数,如果有子节点则不允许录入面积和人数,该节点的面积和人数通过其子节点的数据汇总。这样存在一个问题是用户在添加一个节点的时候需要指定该节点是否有子节点,这一点很不方便,同时如果子节点修改一个数据则其所有上级节点都要Update,还有就是父节点的面积和人数数据无法修改。

    于是做成每个节点都要求用户录入面积和人数数据。数据的准确性未作校验(可能会出现父节点的面积比子节点的面积总和小的情况,这个需要用户在录入数据的时候注意)。

    页面前端采用easyui的combotree设计。提示用户勾选需要统计的区域。

    例如勾选了2楼和401房间,则统计的区域和电表应该如下

    之前在combotree中勾选后是直接将所有勾选的区域节点传到后台处理

    应该这样处理:

    1.获取区域面积和人数

    从前台传入勾选的最上级区域节点,这里通过遍历所有勾选的节点实现。

     function getCheckedNodes() {
                var regionTree = $('#regionComboTree').combotree('tree');//combotree是继承自tree,这里先取到tree
                var checkedRegionNodes = regionTree.tree('getChecked');  //获取选中的所有节点
                var nodes = [];//用于保存提交节点的数组
                $.each(checkedRegionNodes, function (i, val) { 
             if(!parentNode.checked){
    var parentNode = regionTree.tree('getParent', val.target); if (parentNode != null && parentNode != undefined) { var exist = false; $.each(nodes, function (j, val1) { if (val1.id == parentNode.id) { exist = true; return false; } }); if (!exist) { nodes.push(val); }
                } }
              else{
                  nodes.push(val);
                } }); //$.each(nodes,
    function (i,val) {alert(val.text) }); }

    2.获取电表读数

    a.先获取传入区域下所有电表

    select * from Device where RegionId in (@Regions)--@Regions是处理过的前台传入的区域队列

    b.选择那些ParentId不在集合里的电表

    select * from 集合 where ParentId not in 集合

    结合两点可以这样写

    width td as
    (
    select DeviceId from Device where RegionId in (@Regions)
    )
    select * from td where ParentId not in td

    然后与数据表关联查询出用电量,再做后续处理。

     

  • 相关阅读:
    GIT使用方法
    结对-结对编项目贪吃蛇-设计文档
    结对-结对编项目贪吃蛇-开发环境搭建过程
    《团队-爬取豆瓣电影TOP250-需求分析》
    《团队-爬取豆瓣电影TOP250-成员简介及分工》
    结对-结对编项目贪吃蛇-需求分析
    20170906-构建之法:阅读问题
    20170906-构建之法:现代软件工程-阅读笔记
    团队名称:极限定理
    软件工程初识
  • 原文地址:https://www.cnblogs.com/ecosu/p/4371899.html
Copyright © 2011-2022 走看看