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 >= #{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);
}