记录今日较大的点。

参考文章:
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>

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

  1. Java后台生成图表——主代码(折线图,饼状图,柱状图,-》并产出图片PDF或其他格式的图片内容)

    声明: 本文采用的数据均来源于网络,本人只用于学习记录,若有侵权,还望能及时联系. Maven 的 POM 依赖 <!--必要--><!--用于jfreechart生成图片 --&g ...

  2. Java后台生成Excel表格

    Java后台生成Excel表格 功能简述 需求 目标 实现 1.首先在项目中导入jxl相关jar包,并引入 2.编写代码 3.结果 后记 功能简述 由于公司业务需求,我需要实现一个完全通过Java后台 ...

  3. java后台生成echarts图表

    java后台生成echarts图表 最近博主在做一个项目,需要后台出图和前端echarts一样的图,比如折线图和柱状图. 经过一番整理,顺利实现了该功能,特此分享,需要白嫖的,拿走不谢. 直接上效果图 ...

  4. java后台生成并下载二维码

    java后台生成并下载二维码(以二进制流的形式输出) 前提业务要求:前台页面展示数据,有下载按钮,点击下载,下载对应数据的二维码. 在pom.xml文件中添加依赖 <dependency> ...

  5. java后台生成的Excel文件并通过浏览器下载

    java后台生成Excel文件需要引入poi, 以下是poi的pom可以引入自己的项目里面去 <dependency><groupId>org.apache.poi</g ...

  6. java后台生成二维码以及页面显示二维码方式

    上篇文章已经说明并发布了后台生成二维码工具类,大家可以直接去看或者去拿. 地址:最简单实用的java生成二维码工具 现在呢说明页面上展示二维码的两种方式: 1.使用img标签的src来请求生成二维码, ...

  7. java后台生成含有echarts图表的报告并发送邮件

    无头浏览器使用 业务场景, 有一个报告的预览页面,这个页面中含有echarts图表,点击下载报告之后,调用echarts的getDataURL()方法将图片数据传到后台,在后台生成word或者pdf. ...

  8. uniapp使用unipush推送及java后台推送代码(含本地打包apk使用unipush推送)

    你懂的,又是项目用到了,作为程序猿义无反顾需要定时 "进化" ,硬头皮去写,虽然曾经作为android开发者写了很多的推送,但是uniapp的推送也是有所差异的,记录一下,以后留用 ...

  9. Java后台生成二维码

    今天做了一下生成二维码的两种方式 第一种就是前台调用接口去生成二维码,第二种就是后台生成二维码 既然我们是后台开发人员,我这里就写后台代码了,后台代码实现很简单,说白了大家调用一个工具类就OK啦. 工 ...

  10. java自动生成数据库代码

    自从学习计算机以来,学习了很多知识,都是从网上学习的,特别感谢网络,经常自比网络的boy, 现在把我过去做的工具共享出来,希望给大家的工作与学习带来帮助. webtool自动生成数据库代码,支持mys ...

最新文章

  1. Android 占位符 %1$s %1$d
  2. WinAPI: CreateDirectoryEx - 根据模版建立文件夹
  3. python完全新手教程-Python完全新手教程
  4. 原子变量、锁、内存屏障,写得非常好!
  5. css深入理解之overflow
  6. python 3.6.5编译安装_Centos7下编译安装python3.6.5
  7. 为什么采用4~20mA的电流来传输模拟量?(转)
  8. 环境变量PATH cp命令 mv命令 文档查看cat/more/less/head/tail
  9. win10+VS2013+OPENCV如何配置于仕琪人脸检测算法
  10. LayerCAM:Exploring Hierarchical Class Activation Maps for Localization
  11. 解决移动浏览器不能正确转化时间
  12. 光驱动器类有哪些最新发表的毕业论文呢?
  13. SSO (Single Sign On)
  14. 最简单的http文件服务器
  15. php zend optimizer 解密,PHP反编译工具(Mr.DeZend GUI)下载 v1.0
  16. JESD204B高速AD开发(一)基于FPGA的LMK04821时钟芯片设计
  17. Magisk 保留root升级系统(亲测小米)
  18. 黑马培训的点滴(前端)
  19. SSIS中刷新Power BI数据集
  20. 我肝了2个月,为你整理了Java并发编程手册

热门文章

  1. php商品详情页页面代码,商品详情页是怎么生成的?
  2. 土地利用转移矩阵--更新中
  3. HEVC中四叉树划分详解
  4. 区块链之门 | Reach on Conflux 2021 黑客松开赛
  5. 《多媒体技术与应用》练习题
  6. 银行软开开发篇[转]
  7. mysql用reader读取空数据时报错的处理
  8. W32Dasm缓冲区溢出分析【转载】
  9. devexpress gridview属性详细(全部属性以及常用属性)
  10. Download Software Top 10