1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package com.ruoyi.base.service.impl;
- import cn.hutool.core.date.DateUtil;
- import com.ruoyi.base.domain.SysIdsequence;
- import com.ruoyi.base.mapper.SysIdsequenceMapper;
- import com.ruoyi.base.service.SysIdsequenceService;
- import com.ruoyi.base.utils.CommonUtils;
- import com.ruoyi.common.utils.DateUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.Date;
- /**
- * Created by IntelliJ IDEA.
- * User: andy.qu
- * Date: 2022/3/4
- */
- @Service
- public class SysIdsequenceServiceImpl implements SysIdsequenceService {
- @Autowired
- private SysIdsequenceMapper sysIdsequenceMapper;
- @Override
- public String generateId(String idName) {
- while (true) {
- SysIdsequence sysIdsequence = sysIdsequenceMapper.selectByIdname(idName);
- if (sysIdsequence == null) {
- return null;
- }
- String prefix;
- String dateStr = "";
- if(!StringUtils.isEmpty(sysIdsequence.getDateFormat()) && (sysIdsequence.getDateFormat().equals("YYYYMMDD") || sysIdsequence.getDateFormat().equals("YYMMDD"))){
- prefix = sysIdsequence.getPrefix() + DateUtils.parseDateToStr("yMMdd",new Date());
- dateStr = DateUtils.parseDateToStr("yMMdd",new Date());
- }else {
- prefix = sysIdsequence.getPrefix();
- }
- int index = 0;
- if(sysIdsequence.getDateFormat() == null || sysIdsequence.getDateFormat().equals("") || dateStr.equals(sysIdsequence.getDateMax())){
- index = sysIdsequence.getIdSequence() == null ? 0 : sysIdsequence.getIdSequence().intValue();
- }
- String resultNo = "";
- if(!StringUtils.isEmpty(prefix)){
- resultNo = prefix + CommonUtils.lpad((index+1)+"",sysIdsequence.getLength().intValue(),"0");
- }else {
- resultNo = (index+1)+"";
- }
- boolean isOk = sysIdsequenceMapper.updateByVersion(idName,dateStr,sysIdsequence.getIdSequence().intValue(),index+1);
- if(isOk){
- return resultNo;
- }
- }
- }
- @Override
- public String getCurrent(String idName) {
- SysIdsequence sysIdsequence = sysIdsequenceMapper.selectByIdname(idName);
- String prefix;
- String dateStr = "";
- if(!StringUtils.isEmpty(sysIdsequence.getDateFormat()) && (sysIdsequence.getDateFormat().equals("YYYYMMDD") || sysIdsequence.getDateFormat().equals("YYMMDD"))){
- prefix = sysIdsequence.getPrefix() + DateUtil.format(new Date(),"yMMdd");
- dateStr = DateUtil.format(new Date(),"yMMdd");
- }else {
- prefix = sysIdsequence.getPrefix();
- }
- int index = 0;
- if(sysIdsequence.getDateFormat() == null || sysIdsequence.getDateFormat().equals("") || dateStr.equals(sysIdsequence.getDateMax())){
- index = sysIdsequence.getIdSequence() == null ? 0 : sysIdsequence.getIdSequence().intValue();
- }
- String resultNo = "";
- if(!StringUtils.isEmpty(prefix)){
- resultNo = prefix + CommonUtils.lpad((index+1)+"",sysIdsequence.getLength().intValue(),"0");
- }else {
- resultNo = (index+1)+"";
- }
- return resultNo;
- }
- }
|