资讯专栏INFORMATION COLUMN

开发文档

张巨伟 / 1270人阅读

摘要:代码如下获得同一区域下的列获得每个存储数量计算每个区域的数量地区域机房楼层区域地区域机房楼层区域合并标识如果为就不会显示得到每个对象的不重复的数量将转换为数组

后台各模块功能实现 一、网络设备

功能说明

  主要是添加交换机和路由器并生成相应的端口,用于与服务器或其他网络设备相连

类名和表名

  Board——zq_ho_board(交换机),Cabnetport——zq_ho_cabnetport(端口关联),Ports——zq_ho_port(端口)      

主页面路径

 /exchange/board/list

功能难点

1.端口的生成   

     var arrList = new Array();
        function producePort(){
            var prefix=$("input[name="prefix"]").val()//前缀
            var sult= $("select[name="sult"]").val();//端口类型
            var start= $("input[name="start"]").val();//端口起始
            var ends= $("input[name="ends"]").val();//端口结束
            var speed= $("input[name="speed"]").val();//端口速率
            var career= $("input[name="career"]").val();//限制速率
           if(prefix=="" || sult =="" || start=="" || speed=="" ||career=="" || ends ==""){
             top.layer.alert("请填入参数!", {icon: 0, title:"警告"});
             return false;
            }
           var allcamres=prefix+"-"+sult+"-"+start+"-"+ends+"-"+speed+"-"+career;
           arrList.push(allcamres);//将参数放进数组
           var html ="";
           for(var i=0;i<=(ends-start);i++){
                  html+=""+prefix+(Number(start)+i)+"${fns:getDictLabel( "1", "line_type", "")}";
               if(sult==0){
                  html+=" ${fns:getDictLabel("0", "port_type", "")}"; 
                 }
               if(sult==1){
                  html+=" ${fns:getDictLabel("1", "port_type", "")}"; 
                 }
                  html+=""+speed+" "+career+" ";
             }
           $("#prottabal tbody").append(html);
     将给订的端口参数  arrList 取出并在保存交换机时保存端口信息。

2.交换机的统计
    sql语句部分
    SELECT      a.id as id,
             a.bo_arae as arae,
             substring_index(a.bo_machineroom,"/",1 ) as machineroom,
             substring_index(a.bo_machineroom,"/",2  )as storey,
             a.bo_machineroom as cabinetid,                                
             b.machnum as goodnum, 
             c.lounum as louchen,
             d.machnum as jifang,
             e.arenum as arenum,
             t.name AS modelnumber,                  
             f.modenum as num
  FROM zq_ho_board a 
  LEFT JOIN  zq_mhub_module_type t  on t.id=a.bo_modelnumber
  
  LEFT JOIN (SELECT b.bo_arae, b.bo_machineroom,COUNT(1) as machnum FROM zq_ho_board b  where  b.bo_camtype=#{camtype} GROUP BY b.bo_arae, b.bo_machineroom ) as b on  (b.bo_arae =a.bo_arae and  b.bo_machineroom =a.bo_machineroom) 
  
  LEFT JOIN (SELECT b.bo_arae, substring_index(b.bo_machineroom,"/",2 ) as louchen,COUNT(1) as lounum FROM zq_ho_board b  where  b.bo_camtype=#{camtype} GROUP BY b.bo_arae,louchen ) as c on (c.bo_arae =a.bo_arae  and  c.louchen =substring_index(a.bo_machineroom,"/",2 ))
  LEFT JOIN (SELECT b.bo_arae, substring_index(b.bo_machineroom,"/",1 ) as machineroom,COUNT(1) as machnum FROM zq_ho_board b where  b.bo_camtype=#{camtype}   GROUP BY b.bo_arae, machineroom ) as d on  (d.bo_arae =a.bo_arae  and  d.machineroom = substring_index(a.bo_machineroom,"/",1 )  )
  LEFT JOIN (SELECT b.bo_arae,COUNT(1) as arenum FROM zq_ho_board b  where  b.bo_camtype=#{camtype}   GROUP BY b.bo_arae ) as e on  e.bo_arae =a.bo_arae
  LEFT JOIN (SELECT b.bo_arae, b.bo_machineroom,b.bo_modelnumber,COUNT(1) as modenum FROM zq_ho_board b  where  b.bo_camtype=#{camtype} GROUP BY b.bo_arae,  b.bo_machineroom , b.bo_modelnumber ) as f on   ( f.bo_arae =a.bo_arae and  f.bo_modelnumber =a.bo_modelnumber and  f.bo_machineroom =a.bo_machineroom)
      a.del_flag = #{DEL_FLAG_NORMAL} AND a.bo_camtype= #{camtype}
         
                AND a.bo_arae LIKE 
                    "%"||#{arae}||"%"
                    "%"+#{arae}+"%"
                    concat("%",#{arae},"%")
         
         
                AND a.bo_machineroom LIKE 
                    "%"||#{machineroom}||"%"
                    "%"+#{machineroom}+"%"
                    concat("%",#{machineroom},"%")
         
      
  
        
     
  GROUP BY  a.bo_arae, a.bo_machineroom ,substring_index(a.bo_machineroom,"/",2 ),substring_index(a.bo_machineroom,"/",1 ),a.bo_modelnumber
    

统计的合并单元格的设计思路

  计算出同一个区域下得数量,再分别计算出与该条记录相同的  机房,楼层,区域的各个数量以确定合并单元格的数量,并用数组中的唯一位置将数据存入。  
  代码如下
  
  public List findgoods(Board board) {
    // board.setPage(page);
    // page.setList(dao.findgoods(board));
    List lists = dao.findgoods(board);
    int i = 0;
    List tenpt = null;
    Board h = null;
    for (Board s : lists) {
        List list = new ArrayList<>();
        for (Board t : lists) {
            // 获得同一区域下的列
            if (t.getArae().equals(s.getArae())) {
                list.add(t);// 获得每个list
            }
        }

        List arry = new ArrayList<>();// 存储数量
        // 计算每个区域的数量
        Integer arae = 0, rooms = 0, torey = 0, distr = 0, tMode = 0;
        for (Board r : list) {
            if (r.getArae().equals(s.getArae())) { // 地区域
                arae++;
            }
            if (r.getArae().equals(s.getArae())
                    && r.getMachineroom().equals(s.getMachineroom())) {// 机房
                rooms++;
            }
            if (r.getArae().equals(s.getArae())
                    && r.getMachineroom().equals(s.getMachineroom())
                    && r.getStorey().equals(s.getStorey())) {// 楼层
                torey++;
            }
            if (r.getArae().equals(s.getArae())
                    && r.getMachineroom().equals(s.getMachineroom())
                    && r.getStorey().equals(s.getStorey())
                    && r.getCabinetid().equals(s.getCabinetid())) {// 区域
                distr++;
            }

        }
        if (h == null) {
            arry.add(0, arae);// 地区域
            arry.add(1, rooms);// 机房
            arry.add(2, torey); // 楼层
            arry.add(3, distr); // 区域

        } else {
            if (s.getArae().equals(h.getArae())) {
                // 合并标识如果为0就不会显示
                arry.add(0, 0);
            } else {
                arry.add(0, arae);
            }
            if (s.getArae().equals(h.getArae())
                    && s.getMachineroom().equals(h.getMachineroom())) {
                arry.add(1, 0);
            } else {
                arry.add(1, rooms);
            }
            if (s.getArae().equals(h.getArae())
                    && s.getMachineroom().equals(h.getMachineroom())
                    && s.getStorey().equals(h.getStorey())) {
                arry.add(2, 0);
            } else {
                arry.add(2, torey);
            }
            if (s.getArae().equals(h.getArae())
                    && s.getMachineroom().equals(h.getMachineroom())
                    && s.getStorey().equals(h.getStorey())
                    && s.getCabinetid().equals(h.getCabinetid())) {
                arry.add(3, 0);
            } else {
                arry.add(3, distr);
            }

        }
        // 得到每个对象的不重复的数量
        s.setPrames(arry.toArray());// 将list转换为数组
        h = s;
    }
    return lists;

}
           
               
                                           
                       
                 
            
                     
             
               

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/70266.html

相关文章

  • Wizard 开源文档管理系统1.0发布啦

    摘要:总结如果你在为公司寻找一款开源免费的开发文档文档管理工具,不妨考虑一下项目,一定不会让你失望的。 Wizard 是一款开源文档管理系统,项目地址为 https://github.com/mylxsw/wizard。这个项目是 我 在2017年就开始开发的,起初只是想做一款能够在公司内部把Swagger文档管理起来的工具,但在这近两年的时间里,一直断断续续的为其添加各种功能,现在终于下决...

    cod7ce 评论0 收藏0
  • 【效率专精系列】善用API统一描述语言提升RestAPI开发效率

    摘要:其标准为前身是,提供强大的在线编辑功能,包括语法高亮错误提示自动完成实时预览,并且支持用户以格式撰写导入导出转换文档。 团队内部RestAPI开发采用设计驱动开发的模式,即使用API设计文档解耦前端和后端的开发过程,双方只在联调与测试时耦合。在实际开发和与前端合作的过程中,受限于众多因素的影响,开发效率还有进一步提高的空间。本文的目的是优化工具链支持,减少一部分重复和枯燥的劳动。 现状...

    tianyu 评论0 收藏0
  • 敏捷开发中的文档:要不要写?怎么写?

    摘要:但这并不意味着敏捷开发完全抛弃文档,敏捷开发遵循轻文档,重沟通的原则。把功能点拆分,导入到项目管理软件中,相关人员只需要按照需求目录一条条执行即可,不再需要一页一页的看了。如今的任务看板和燃尽图已经由实物形式转变为项目管理软件。 我们比较熟知的软件项目管理方法是瀑布。其基本流程是需求-> 设计->开发->测试。基本假设只要把每一个环节都做正确,那么最终得到的结果也是正确的。瀑布开发有非...

    zzir 评论0 收藏0
  • 前端学习资源汇总

    摘要:建立该仓库的目的主要是整理收集学习资源,统一管理,方便随时查找。目前整合的学习资源只是前端方向的,可能会存在漏缺比较好的资源,需要慢慢的完善它,欢迎在该上补充资源或者提供宝贵的建议。 说明 平时的学习资源都比较的凌乱,看到好的资源都是直接收藏在浏览器的收藏夹中,这样其实并不方便,整理在云笔记上,也不方便查看修改记录,索性就整理在 github 上并开源出来,希望帮助大家能够更快的找到需...

    SnaiLiu 评论0 收藏0
  • 开发人员常用框架文档整理及中文翻译

    摘要:开发人员常用的框架文档及中文翻译,包含系列文档,日志,,,,数据库,,等最新官方文档以及对应的中文翻译。其它如果你有针对此网站好的建议或意见,也欢迎提更多的文档和更多的文档版本支持 开发人员常用的框架文档及中文翻译,包含 Spring 系列文档(Spring, Spring Boot, Spring Cloud, Spring Security, Spring Session),日志(...

    BingqiChen 评论0 收藏0

发表评论

0条评论

张巨伟

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<