Java后台生成NO2016012701(代码+年月日+流水号)这样的流水编号

记录今日较大的点。

参考文章:
https://blog.csdn.net/weixin_44538107/article/details/87740611
https://blog.csdn.net/jianqiangdexiaohai/article/details/81240176

项目过程中需要自动生成编号,不在数据库生成,而是在后台代码生成,根据客户对流水号的要求比较高并必须按照规范,而且组合起来清晰易懂并不会有重复。故参考了上述两篇文的代码后,结合自己的业务需要加以改编:
1 首先从数据库查询出已有的最大编号
2 拼成NO+当前时间格式的字符串
3 判断最大编号是否存在,最大编号中是否包含当天时间
4 如果最大编号不存在,则直接生成第一个编号NO201601270001
5 如果最大编号存在且包涵当天时间,则给最大编号加1,拼成编码

注意:以下代码演示里做的是OPP20190801 这样的生成,少了日子。

下面是Controller方法,由于两篇文章其中各自使用的Json类未知,所以 结合我的项目细节加以稍微的改编。项目是springboot加bootstrap+vue。在像上述文章做json数据传值时,结合自己项目的封装返回值R类型,故由前台发起请求,请求方法返回可json串到前台,在进行页面赋值。

@RequestMapping("/getCommentCode")
//@RequiresPermissions("tbusinesschance:save")
public R getCommentCode(){List<String> bhList  = new ArrayList<String>();String currentMonth = null;int month = Calendar.getInstance().get(Calendar.MONTH) + 1;if(month < 10) {currentMonth = "0" + month; } else {currentMonth = month + "";}List<TBusinesschanceEntity> partList = tBusinesschanceService.getPartList(currentMonth);for (TBusinesschanceEntity tBusinesschanceEntity : partList) {bhList.add(tBusinesschanceEntity.getBusinesschanceid());}String max_code = "";//最新编号String comment_code = "";//做好的编号if(bhList.size() > 0) {//得到该月最新(最大号)的一个编号max_code = bhList.get(0);}// 时间字符串产生方式SimpleDateFormat format = new SimpleDateFormat("yyyyMM");// 组合流水号前一部分,时间字符串,如:201907String bcid_pfix = format.format(new Date()); //判断数据库是否有数据if (max_code != null && max_code.contains(bcid_pfix)) {// 从OOP20190803 截取字符串最后2位,结果:03String uid_end = max_code.substring(9);//substring(8) // 把String类型的03转化为int类型的3int endNum = Integer.parseInt(uid_end); // 结果4int tmpNum =  endNum + 1; // 100 + 1 + 1 = 结果102//已经加了1        再给他在拼成OOP20190804comment_code = "OOP" + bcid_pfix + ("0" + tmpNum);} else {//数据库没数据时,输出OOP20190801comment_code = "OOP" + bcid_pfix + "01";}return R.ok().put("comment_code", comment_code);
}

Js代码
无参—Get请求
$("#businesschanceid").val(r.comment_code) ;值赋给页面

function getCommentCode(){$.ajax({type: "GET",url: baseURL + "tbusinesschance/getCommentCode",contentType: "application/json",//data: JSON.stringify(ids),success: function(r){if(r.code == 0){$("#businesschanceid").val(r.comment_code);}else{alert(r.msg);}}});
}

这样html页面定义的id 前后台交互。

这里再说下xml文件写sql语句 有个问题想说出来
开始,是仿照别人的抄来一段更改:

<select id="queryList" resultType="xxx.server.businesschance.entity.TBusinesschanceEntity">select * from t_businesschance bc<where>bc.`isdel`="1"1  	<if test="businesschanceid !=null and businesschanceid.trim() != ''">2	    	and bc.`businesschanceid like concat('%',#{value},'%')
------------------------------这里想要的效果是-----------------------------Controller传来的value(eg:07)   让businesschanceid 做模糊查询查询出所有是该位是07的编号。
可是不知test的值是否要与下面bc.`businesschanceid      #{value} 一样,所以不论怎么改,照网上
搜的更改方法改了_parameter 都是报	here is no getter for property named 'businesschanceid' in 'class xxx.User'。 实在xml里写sql语句不太会所以这里出错了好久。后来调整了sql的写法,然后就对了。</if></where><choose><when test="sidx != null and sidx.trim() != ''">order by ${sidx} ${order}</when><otherwise>order by id desc</otherwise></choose><if test="offset != null and limit != null">limit #{offset}, #{limit}</if></select>

以下是改后的sql

<!-- 查询编号集合 -->
<select id="getPartList" resultType="com.rlc.modules.server.businesschance.entity.TBusinesschanceEntity">select * from t_businesschance tbc<where>tbc.businesschanceid like concat('_______',#{value},'__') order by tbc.id desc
---------------------------不在这里用人家的模板,而是简单写了,就对了。不在报	 	here is no getter for property named 'businesschanceid' in xxx.xxx了
这里的这个错误如果有高手了解,还请告知以下。感谢!!!!!!!</where></select>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575545.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TFS架构

转载http://www.biaodianfu.com/taobao-tfs.html&#xff0c;感谢原作者标点符。 一、淘宝网的困境 对于淘宝网这样的大型电子商务网站&#xff0c;对于图片服务的要求特别的高。而且对于卖家来说&#xff0c;图片远胜于文字描述&#xff0c;因此卖家也格外看重图片的显示质量、…

(转载)WebStorm 2018.3.2 激活方式(永久)亲测好用!!!!!!

转载链接&#xff1a;https://blog.csdn.net/qq_31279347/article/details/85225234 前言&#xff1a; 总觉的注册码很费事&#xff0c;过一会儿就失效了&#xff0c;博主觉得还是打补丁的方式一劳永逸&#xff0c;很简单&#xff0c;两分钟。 博主版本如下&#xff1a; 第一…

Loaders

Loaders&#xff0c;获取数据的东西。 总体流程是&#xff1a;通过getLoaderManager().initLoader(0,null,this)获得Loader&#xff0c;如果没有&#xff0c;那么就会调用接口函数获取&#xff0c;注意&#xff1a;有ID&#xff0c;所以要在获取的接口函数里进行相应的选择。 会…

Linux内核模块开发常用内核接口

http://pan.baidu.com/s/1sjCqohv 转载于:https://www.cnblogs.com/pengdonglin137/p/3623827.html

vue 循环遍历 搜寻资料

写vue 循环遍历的 大全例子解释 转载连接 &#xff1a;https://www.cnblogs.com/xulei1992/p/6015416.html https://www.jqhtml.com/49765.html https://blog.csdn.net/qq_37591637/article/details/89072542 https://blog.csdn.net/zbw18297786698/article/details/6046673…

Qt 字符串QString arg()用法总结

原文&#xff1a;http://qimo601.iteye.com/blog/1420750 1、QString::arg()//用字符串变量参数依次替代字符串中最小数值 Cpp代码 QString i "iTest"; // current files number QString total "totalTest"; // number of files to pr…

安卓系统开机过程中logo和动画

安卓系统在开机过程中有多处会显示logo或动画&#xff0c;每个都会被next覆盖&#xff1a; boot这个是可选的&#xff0c;和硬件平台相关。boot运行过程非常短暂&#xff0c;显示logo也是一闪而过&#xff0c;所以一般不会使用。 kernel这个是内核提供的功能&#xff0c;和boot…

SVN登录时不断弹出用户名密码输入

** svn换了地址&#xff0c;所以重新定位&#xff0c;在输入账号时&#xff0c;重复报下图&#xff0c;也没有报错&#xff0c;所以就一直无效尝试。期间什么setting clear数据&#xff0c;注册表动文件&#xff0c;搜到的差不多都试了。始终一直报图一的结果。 然后最终结果…

Android Sqite数据库 6

想来想去又坑爹了,数据保存到json中去了,如何拿出来使用了,所以这一篇又要实现和上一篇相反的过程, 将Json转换成java各种对象: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Lan…

jqgrid 列表条件查询的几步关键操作

jqgrid列表条件查询 记录一下我自己老忘的几个点 这次记录一下使用jqgrid在列表查询时的关键点&#xff0c;过一段时间不用就是忘 1】在html页面用 v-model“q.xxx” xxx是在js处定义。 2】这是js里 在jqgrid查询列表时的模块使用postData 承载参数 3】 这是在定义vue对象时…

对计算机考研的认识

发信站: 北邮人论坛 (Wed Jun 1 15:09:43 2011), 站内 不在写具体的调剂问题&#xff0c;以免大家再骂我。只客观说明一下对计算机考研的看法。供后来人参考。 首先计算机考研是统考&#xff0c;所以大家不要在各个论坛问学校有没有辅导班之类的话题。其次&#xff0c;统…

radio 取值赋值 亲测有用实效

$(“input[name‘protocolType’][checked]”).val(); 取值 $(“input[name‘radioName’][value2]”).attr(“checked”,true); 赋值 注意 广泛搜到 $(“input[name‘radioName’][valuetest]”).attr(“checked”,true); 好像不及时起到作用

wireshark: there are no interfaces on which a capture can be done

权限问题&#xff0c;简单的直接sudo就行。 更安全的做法是&#xff1a; # chmod 4755 /usr/bin/dumpcap dumpcap的所在目录可用whereis命令查看。 转载于:https://www.cnblogs.com/duanguyuan/p/3628569.html

初识:windows下的免费 ssh 客户端工具

如果你的操作系统是 Windows&#xff0c;而你想要连接 Linux 服务器相互传送文件&#xff0c;那么你需要一个简称 SSH 的 Secure Shell 软件。实际上&#xff0c;SSH 是一个网络协议&#xff0c;它允许你通过网络连接到 Linux 和 Unix 服务器。SSH 使用公钥加密来认证远程的计算…

iOS开发之通知中心(NSNotificationCenter)

前言 面向对象的设计思想是把行为方法封装到每一个对象中&#xff0c;以用来增加代码的复用性。正是这种分散封装&#xff0c;增加了对象之间的相互关联&#xff0c;总是有很多的对象需要彼此了解以及相互操作&#xff01; 一个简单示例说明这种交互产生的对象之间的相互依赖&a…

基于AT89C51单片机的8位密码锁仿真与实物制作

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/88657969?spm1001.2014.3001.5503 源码获取 C 源码仿真图毕业设计实物制作步骤01 摘要 在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表…

笔记本 win7 装vs2010 报错 注册表 拒绝访问等

win7-64 本子 安装vs2010过程中&#xff1a; 弹框报错提示&#xff1a;错误写入注册表键&#xff1a;HKEY-CLASS-ROOTGSC RegSetValueEx 失败&#xff1b;代码5 拒绝访问 百度经验的注册表解决办法没试。手抖点了一下忽略竟然正常安装好了。。。。mpp

PuTTY配置

目录 1、作用&#xff1f; 2、中文问题解决 &#xff1f; 3、GUI支持&#xff1f; 4、使用密钥对实现安全快捷的无密码登陆? 5、操作习惯&#xff08;AltEnter全屏以及字体配置&#xff09; 6、附录&#xff08;sshd服务器配置&#xff09; 1、作用&#xff1f;PuTTY是一个Tel…

从无到有开发连麦直播技术点整理

最近在跟老师手下的项目&#xff0c;碰到流媒体&#xff0c;流媒体服务器&#xff0c;视频编码技术&#xff0c;推流&#xff0c;拉流等概念&#xff0c;看到本篇博客整理的概念很全面&#xff0c;很自信&#xff0c;故转发留存&#xff0c;感谢原博主。 关键字 采集、前处理、…

WPF: 使用CommandManager.InvalidateRequerySuggested手动更新Command状态

WPF判断命令&#xff08;Command&#xff09;是否能够执行是通过ICommand.CanExecute事件&#xff0c;在实际程序中路由命令一般是通过CommandBinding来使命令得到实际操作代码&#xff0c;但是这个CanExecute事件的调用是由WPF控制的&#xff0c;有些时候&#xff0c;比如命令…