编号或者编码自动生成

实际的项目中,客户提供的表单某个字段编码或者编号是有固定格式的,不能让客户自己每次都去填写,要自动生成。就比如合同编号。编码要求的格式如下图所示。

控制层代码:
String dateStr = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
String flowStatusStr = lizhiDealService.queryFlowStatusField(dateStr);
request.setAttribute("flowStatusStr",flowStatusStr);

 

service层代码:最主要的是三目运算符那里,通过for循环,三目运算符判断在前面加0直到得到需要的位数的字符串
@Override
public String queryFlowStatusField(String dateStr) {
    List<LizhiDeal> resList = lizhiDealDao.queryFlowStatusField(dateStr);

    String flowStatusStr = "";
    if (resList.size()>0) {
        String flowStatusField = resList.get(0).getFlowStatus();
        int flowStatusInt = Integer.parseInt(flowStatusField.substring(14));
        flowStatusInt++;
        flowStatusStr = String.valueOf(flowStatusInt);
        for (int i = 0; i < 4; i++) {
            flowStatusStr = flowStatusStr.length()<4?"0"+flowStatusStr:flowStatusStr;
        }
        flowStatusStr = "LZBL"+dateStr+flowStatusStr;
    }
    else {
        flowStatusStr = "LZBL"+dateStr+"0001";
    }
    return flowStatusStr;
}

 

dao层sql代码:排序很重要,根据降序排序,每次取最后一个
public List<LizhiDeal> queryFlowStatusField(String dateStr) {
    String sql = "select * from T_LIZHI_DEAL where flow_status like 'LZBL" + dateStr + "%' order by flow_status desc";
    List<LizhiDeal> list = this.getSession().createSQLQuery(sql).addEntity(LizhiDeal.class).list();
    return list;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值