下面做代码实例,在信息生成时可调用该方法,自动生成编号,进行有序化管理
具体效果如图所示,可以适用与各种场景

/**
     * 员工编号生成工具
     * @return
     */
    public static String HrNumber(){
        //初始化
        String Max_code = "";
        String comment_code = "";
        HrStaffRecord hsr = new HrStaffRecord();
        //获取当前最大的员工编号 下面为sql实例,可以用其他方法代替
        //select * from hr_staff_record where sr_number = (select MAX(sr_number) from hr_staff_record)
        List<HrStaffRecord> list = hrFbillnoUtils.hrStaffRecordService.queryMaxCode(hsr);
        if (list.size() > 0){
            Max_code = (String) list.get(0).getSrNumber();
        }
        //时间字符串产生方式
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
        //组成流水号前的一部分
        String uid_pfix = format.format(new Date());
        //判断数据库中是否有数据
        if (Max_code != null && Max_code.contains(uid_pfix)){
            //从字符串FYHP202108080001截取后四位
            String uid_end = Max_code.substring(12,16);
            //将String类型的0001转换成int类型的1
            int endNum = Integer.parseInt(uid_end);
            //将1变为1000x x=1+X
            int tmpNum = 10000 + endNum + 1;
            //将tmpNum前面的1去掉
            comment_code = "FYHP" + uid_pfix + HrFbillnoUtils.subStr("" + tmpNum,1);
        }else {
            comment_code = "FYHP" + uid_pfix + "0001";
        }
        return comment_code;
    };

编号类型可以自由组合,方便大家使用,有那些不清晰的,大家可以留言,互相学习,互相进步。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐