`

地毯式矫正顺序号

 
阅读更多
    /**
     * 校正 list 中 数据的 序号,并返回id 合适的 顺序号
     *
     * @param tbl
     * @param list :相关记录的集合,每条记录是一个Map,顺序号字段的名字叫 numSort
     * @param id  : 记录ID
     * @param numSort : 记录指定的顺序号 (可能偏大,返回值是对它矫正后的值)
     * @return id 最后的顺序号
     */
    public int doSqlSort(String tbl, List<Map> list, int id, int numSort) {
        //集合为空
        if (list == null || list.isEmpty()) {
            return 1;
        }
        //集合不为空,对集合里面的顺序号进行地毯式矫正
        String sql = "update " + tbl + " set NUM_SORT=? where id=?";
        Object[] params = new Object[2];
        int newNumSort = 0; //记录应该的顺序号
        int len = list.size();
        for (int i = 0; i < len; i++) {
            Map map = list.get(i);
            ////System.out.println(" map.get(\"id\")= " +  map.get("id"));
            Number id2_number = (Number) map.get("id");
            Number numSort2_number = (Number) map.get("numSort");
            int id2 = id2_number.intValue();
            Integer numSort2 = numSort2_number.intValue();           
            //循环到的记录,不是 当前记录
            if (id2 != id) {
                newNumSort++;
                if (newNumSort == numSort) {
                    newNumSort++;
                }
            }   

            //记录的数据库中顺序号与新顺序号不相等,更新数据库         
            if (newNumSort != numSort2) {               
                params[0] = newNumSort;
                params[1] = id2;
                jdbcDao.doUpdate(sql, params);
            }
        }
        
        //特殊情况,numSort 要调整
        if (numSort > len || numSort == 0) {
            numSort = len;
            if (id == 0) {
                numSort = len + 1;
            }
        }

        //参数id那条记录 应该的 顺序号
        return numSort;
    }


    public void doSaveUpdate(ZzjzMoban zzjzMoban) {
        int id = zzjzMoban.getId();
        int numSort = zzjzMoban.getNumSort();
        String sql = "select id,numSort from zzjzMoban order by numSort";
        List<Map> list = super.getSqlItems(sql, null);
        numSort = super.doSqlSort("zzjzMoban", list, id, numSort); //校正序号
        zzjzMoban.setNumSort(numSort); //新的序号

        if (id == 0) {
            super.doSave(zzjzMoban);
        } else {
            ZzjzMoban moban2 = (ZzjzMoban) super.getPo(ZzjzMoban.class, id);
            moban2.setBrief(zzjzMoban.getBrief());
            moban2.setTitle(zzjzMoban.getTitle());
            moban2.setPhoto(zzjzMoban.getPhoto());
            moban2.setNumSort(zzjzMoban.getNumSort());
        }
    }
分享到:
评论

相关推荐

    车载式矫正装置的设计及应用

    【车载式矫正装置的设计及应用】是针对液压支架结构件焊接后变形问题,采用压力机设备进行矫正的技术探讨。矫正装置的设计重点在于提高矫正效率、保障安全性和方便移动。以下是该设计的关键知识点: 1. **矫正装置...

    钟摆式矫正器的技工制作图谱定义.pdf

    钟摆式矫正器是一种在正畸治疗中用于调整牙齿排列的工具,主要针对错牙合畸形伴有前牙拥挤的情况。这种矫正器的设计理念是通过推磨牙向远中移动,以创造额外的牙间隙,从而解决拥挤问题,同时保持牙弓的连续性和面部...

    畸变矫正 畸变矫正 畸变矫正

    畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正畸变矫正...

    matlab立体矫正和畸变矫正代码

    在图像处理领域,立体矫正和畸变矫正是非常重要的步骤,特别是在计算机视觉、机器学习和自动驾驶等应用中。本文将深入探讨这两个概念,并结合MATLAB代码进行解析。 首先,我们要理解什么是畸变矫正。在实际应用中,...

    【表盘识别】基于Hough变换实现指针式仪表识别(倾斜矫正).md

    【表盘识别】基于Hough变换实现指针式仪表识别(倾斜矫正)

    相机畸变矫正_附代码图片

    相机畸变矫正是一种在计算机视觉领域中常见的技术,主要用于消除由镜头特性引起的图像扭曲现象。在实际应用中,如无人机航拍、自动驾驶、监控系统等,高质量的图像矫正至关重要。OpenCV是一个强大的开源计算机视觉库...

    基于Opencv的文本扭曲矫正

    文本扭曲矫正,需要配合Opencv环境才能使用。本代码均已经通过调试,并完成效果验证和对外展示。本程序仅提供实现的主函数和基本思想,详细的函数源码,请咨询博主单独获取。 文本矫正一直是一个很难的课题,网上有...

    QingXie.zip_图像倾斜矫正_图像矫正_文本图像_文本矫正_矫正

    在图像处理领域,文本图像的倾斜矫正是一项重要的技术,它主要应用于文档扫描、OCR(光学字符识别)等场景,以确保图像中的文字可以被准确地读取和识别。本项目"QingXie.zip"提供的是一款用C++编程语言实现的图像...

    电脑时间矫正软件

    标题中的“电脑时间矫正软件”指的是用于调整和...综上所述,寻找一个“很简单”的电脑时间矫正软件,意味着用户希望该软件能够提供一键式操作,快速、准确地将电脑时间校准至国际标准时间,同时保持用户友好和安全。

    鱼眼相機矫正算法 包括棋盘格矫正法和经纬度矫正法 適合保安攝像機後處理的工具~

    鱼眼矫正算法2種方法 棋盘格矫正法 利用棋盘格进行标定, 然后计算鱼眼镜头的畸变系数以及内参, opencv中自带有fisheye模块, 可以直接根据棋盘格标定结果,采用cv2.fisheye.calibrate计算畸变系数以及内参, 然后...

    基于FPGA的图像畸变矫正算法研究.pdf

    基于 FPGA 的图像畸变矫正算法研究 本文主要研究了基于 FPGA 的图像畸变矫正算法。图像畸变矫正是机器视觉中一个非常重要的问题。在实际应用中,摄像头采集的图像通常存在畸变,影响着图像的质量和可靠性。为了解决...

    C#扫描图片矫正垂直.zip

    这个名为"C#扫描图片矫正垂直.zip"的压缩包提供了一个使用C#编程语言实现的解决方案,特别针对图片的垂直矫正问题。这里我们将深入探讨该主题,包括傅立叶变换在图像矫正中的应用以及如何通过C#来实现这一过程。 傅...

    guangliufa.rar_光流_光流 matlab_图像矫正_矫正_运动

    光流是一种描述图像序列中像素在时间上的运动轨迹的技术,它是计算机视觉领域中的一个重要概念,广泛应用于视频分析、目标跟踪、运动估计等多个方面。在本压缩包“guangliufa.rar”中,包含了关于光流算法的实现,...

    双目极线矫正matlab代码

    双目极线矫正matlab简单代码,套入即可

    unity仿射变换图形矫正demo

    Unity中的仿射变换是计算机图形学中的一个重要概念,它在3D游戏开发中扮演着关键角色,尤其是在图形矫正和图像处理方面。这个“unity仿射变换图形矫正demo”旨在通过实例帮助理解并应用这些概念。在Unity中,我们...

    OpenCV畸变矫正鱼眼畸变矫正demo

    在图像处理领域,"OpenCV畸变矫正鱼眼畸变矫正demo"是一个常见的实践项目,主要目的是通过使用OpenCV库来校正图像中的鱼眼畸变。鱼眼镜头由于其特殊的光学特性,拍摄出的图像会出现强烈的变形,尤其是在边缘部分。...

    A2 AC3Pass矫正

    标题"A2 AC3Pass矫正"涉及的是音频处理领域的一个特定技术,主要针对Creative Audigy2声卡用户。这个技术主要是为了解决AC3(Dolby Digital)音频在通过Audigy2声卡时可能出现的左声道延迟问题。"AC3Pass矫正"是一个...

    鱼眼图像畸变矫正

    标题中的“鱼眼图像畸变矫正”是指在计算机视觉领域中处理由鱼眼镜头拍摄的图像时,由于鱼眼镜头的特殊光学特性导致的图像严重扭曲现象。这种畸变使得图像边缘部分出现明显的曲率增大,严重影响了图像的正常观察和...

    桶形矫正算法

    ### 桶形矫正算法详解 #### 一、引言 在图像处理领域,相机镜头畸变是一个常见的问题,特别是当使用广角镜头时。畸变主要包括两种类型:径向畸变(包括桶形畸变和枕形畸变)和切向畸变。其中,桶形畸变是指图像...

    电信设备-双辊移动式金属带材中凹矫正装置.zip

    双辊移动式金属带材中凹矫正装置是一种专门用于处理金属带材形状问题的机械设备,它能够有效地修正带材中间凹陷的缺陷,确保材料的质量和后续加工的顺利进行。下面将详细探讨这个矫正装置的工作原理、结构组成以及其...

Global site tag (gtag.js) - Google Analytics