java根据不同性质生成不同的编码(springboot+mybatis)

10 篇文章 0 订阅

java根据不同性质生成不同的编码

检测ZYJC+年份22+月份09+四位流水数字0001; 鉴定ZYJD+年份22+月份09+四位流水数字0001



首先根据给定形式进行拼接

检测ZYJC+年份22+月份09+四位流水数字0001:
先判断编号是否存在

//有值返回没值进行下一步操作
        if (pmsGongcheng.getWtbh() == null || pmsGongcheng.getWtbh().length()==0){

在判断工程性质是A类还是B类

 //判断工程性质是A类还是B类,0为A类,1为B类
            if (pmsGongcheng.getGcxz().equals("0")){}
            else if (pmsGongcheng.getGcxz().equals("1")){}

提示:以下是本篇文章正文内容,下面案例可供参考

一、A类编号的实现

代码如下:

if (pmsGongcheng.getGcxz().equals("0")){
                //获取最大编码
                String countNumber = pmsGongchengMapper.selectPmsGongchengByZYJCTime(simpleDateFormat.format(date));
                //拼接下一个委托编号并返回
                SimpleDateFormat years = new SimpleDateFormat("yy");//获取年后两位数
                SimpleDateFormat month = new SimpleDateFormat("MM");//获取月份
                String yearsTime = years.format(date);
                String monthTime = month.format(date);
                if (countNumber == null){
                    result = "0001";
                    wtbh = "ZYJC"+yearsTime+monthTime+result;
                    return wtbh;
                }else {
                    int i = Integer.parseInt(StringUtils.substring(countNumber, 8, 12));//ZYJC22090001
                    i++;
                    result = new DecimalFormat("0000").format(i);
                    wtbh = "ZYJC"+yearsTime+monthTime+result;
                    return wtbh;

                }
            }

二、B类编号的实现

代码如下:

else if (pmsGongcheng.getGcxz().equals("1")){
                //获取最大编码
                String countNumber = pmsGongchengMapper.selectPmsGongchengByZYJDTime(simpleDateFormat.format(date));
                //拼接下一个委托编号并返回
                SimpleDateFormat years = new SimpleDateFormat("yy");//获取年后两位数
                SimpleDateFormat month = new SimpleDateFormat("MM");//获取月份
                String yearsTime = years.format(date);
                String monthTime = month.format(date);
                if (countNumber == null){
                    result = "0001";
                    wtbh = "ZYJD"+yearsTime+monthTime+result;
                    return wtbh;
                }else{
                    int i = Integer.parseInt(StringUtils.substring(countNumber, 8, 12));//ZYJD22090001
                    i++;
                    result = new DecimalFormat("0000").format(i);
                    wtbh = "ZYJD"+yearsTime+monthTime+result;
                    return wtbh;
                }
            }

整个方法的实现

先在service实现层实现这个方法,再在insert方法中调用此方法:

serviceImpl中getwtbh()的方法实现

/**
     * 生成委托编号
     *
     * @param pmsGongcheng
     * @return 结果
     *
     *  2022-09-22 10:55
     */
     //其中PmsGongcheng是我的实体类,这里需要导入你自己需要的实体类
    public String getWtbh(PmsGongcheng pmsGongcheng){
         //初始化wtbh
        String wtbh = null;
        //有值返回,没值进行下一步操作
        if (pmsGongcheng.getWtbh() == null || pmsGongcheng.getWtbh().length()==0){
            String result;
            //获取时间并把时间修改成月初时间
            Date date = new Date();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-01 00:00:00");
            //判断工程性质是A类还是B类,0为A类,1为B类
            if (pmsGongcheng.getGcxz().equals("0")){
                //获取最大编码
                String countNumber = pmsGongchengMapper.selectPmsGongchengByZYJCTime(simpleDateFormat.format(date));
                //拼接下一个委托编号并返回
                SimpleDateFormat years = new SimpleDateFormat("yy");//获取年后两位数
                SimpleDateFormat month = new SimpleDateFormat("MM");//获取月份
                String yearsTime = years.format(date);
                String monthTime = month.format(date);
                //首先判断最大编码是否是空值,也就是数据库中是否有插入了wtbh这个数据,这个地方必须要判断,我在这里踩坑了,如果不判断,向新的数据库插入时会报sql语句错误,如果没有最大值,拼接第一条编码
                if (countNumber == null){
                    result = "0001";
                    wtbh = "ZYJC"+yearsTime+monthTime+result;
                    return wtbh;
                }else {
                //从第八位开始截取,即截取0001这个号码
                    int i = Integer.parseInt(StringUtils.substring(countNumber, 8, 12));//ZYJC22090001
                    i++;
                    result = new DecimalFormat("0000").format(i);
                    wtbh = "ZYJC"+yearsTime+monthTime+result;
                    return wtbh;

                }
            }
            else if (pmsGongcheng.getGcxz().equals("1")){
                //获取最大编码
                String countNumber = pmsGongchengMapper.selectPmsGongchengByZYJDTime(simpleDateFormat.format(date));
                //拼接下一个委托编号并返回
                SimpleDateFormat years = new SimpleDateFormat("yy");//获取年后两位数
                SimpleDateFormat month = new SimpleDateFormat("MM");//获取月份
                String yearsTime = years.format(date);
                String monthTime = month.format(date);
                if (countNumber == null){
                    result = "0001";
                    wtbh = "ZYJD"+yearsTime+monthTime+result;
                    return wtbh;
                }else{
                    int i = Integer.parseInt(StringUtils.substring(countNumber, 8, 12));//ZYJD22090001
                    i++;
                    result = new DecimalFormat("0000").format(i);
                    wtbh = "ZYJD"+yearsTime+monthTime+result;
                    return wtbh;
                }
            }
        }
        else if (pmsGongcheng.getWtbh()!= null){
            wtbh = pmsGongcheng.getWtbh();
        }

        return wtbh;
    }

mapper层的实现

    public String selectPmsGongchengByZYJCTime(String time);

    public String selectPmsGongchengByZYJDTime(String time);

xml层的实现,获取最大编码的sql语句为:

<select id="selectPmsGongchengByZYJCTime" resultType="java.lang.String">
<!--        select Max(wtbh) from pms_gongcheng where create_time &gt;= #{currentTime}-->
        SELECT MAX(wtbh) FROM pms_gongcheng where wtbh like concat('%','ZYJC', '%')
    </select>
    <select id="selectPmsGongchengByZYJDTime" resultType="java.lang.String">
        SELECT MAX(wtbh) FROM pms_gongcheng where wtbh like concat('%','ZYJD', '%')
    </select>

三。最后在插入方法中调用此方法

代码如下:

   /**
     * 新增工程
     * 
     * @param pmsGongcheng 工程
     * @return 结果
     */
    @Override
    public int insertPmsGongcheng(PmsGongcheng pmsGongcheng)
    {
        //设置委托编号的值  2022-09-21
        pmsGongcheng.setWtbh(getWtbh(pmsGongcheng));

        return pmsGongchengMapper.insertPmsGongcheng(pmsGongcheng);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值