SysIdsequenceServiceImpl.java 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package com.ruoyi.base.service.impl;
  2. import cn.hutool.core.date.DateUtil;
  3. import com.ruoyi.base.domain.SysIdsequence;
  4. import com.ruoyi.base.mapper.SysIdsequenceMapper;
  5. import com.ruoyi.base.service.SysIdsequenceService;
  6. import com.ruoyi.base.utils.CommonUtils;
  7. import com.ruoyi.common.utils.DateUtils;
  8. import org.apache.commons.lang3.StringUtils;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Service;
  11. import java.util.Date;
  12. /**
  13. * Created by IntelliJ IDEA.
  14. * User: andy.qu
  15. * Date: 2022/3/4
  16. */
  17. @Service
  18. public class SysIdsequenceServiceImpl implements SysIdsequenceService {
  19. @Autowired
  20. private SysIdsequenceMapper sysIdsequenceMapper;
  21. @Override
  22. public String generateId(String idName) {
  23. while (true) {
  24. SysIdsequence sysIdsequence = sysIdsequenceMapper.selectByIdname(idName);
  25. if (sysIdsequence == null) {
  26. return null;
  27. }
  28. String prefix;
  29. String dateStr = "";
  30. if(!StringUtils.isEmpty(sysIdsequence.getDateFormat()) && (sysIdsequence.getDateFormat().equals("YYYYMMDD") || sysIdsequence.getDateFormat().equals("YYMMDD"))){
  31. prefix = sysIdsequence.getPrefix() + DateUtils.parseDateToStr("yMMdd",new Date());
  32. dateStr = DateUtils.parseDateToStr("yMMdd",new Date());
  33. }else {
  34. prefix = sysIdsequence.getPrefix();
  35. }
  36. int index = 0;
  37. if(sysIdsequence.getDateFormat() == null || sysIdsequence.getDateFormat().equals("") || dateStr.equals(sysIdsequence.getDateMax())){
  38. index = sysIdsequence.getIdSequence() == null ? 0 : sysIdsequence.getIdSequence().intValue();
  39. }
  40. String resultNo = "";
  41. if(!StringUtils.isEmpty(prefix)){
  42. resultNo = prefix + CommonUtils.lpad((index+1)+"",sysIdsequence.getLength().intValue(),"0");
  43. }else {
  44. resultNo = (index+1)+"";
  45. }
  46. boolean isOk = sysIdsequenceMapper.updateByVersion(idName,dateStr,sysIdsequence.getIdSequence().intValue(),index+1);
  47. if(isOk){
  48. return resultNo;
  49. }
  50. }
  51. }
  52. @Override
  53. public String getCurrent(String idName) {
  54. SysIdsequence sysIdsequence = sysIdsequenceMapper.selectByIdname(idName);
  55. String prefix;
  56. String dateStr = "";
  57. if(!StringUtils.isEmpty(sysIdsequence.getDateFormat()) && (sysIdsequence.getDateFormat().equals("YYYYMMDD") || sysIdsequence.getDateFormat().equals("YYMMDD"))){
  58. prefix = sysIdsequence.getPrefix() + DateUtil.format(new Date(),"yMMdd");
  59. dateStr = DateUtil.format(new Date(),"yMMdd");
  60. }else {
  61. prefix = sysIdsequence.getPrefix();
  62. }
  63. int index = 0;
  64. if(sysIdsequence.getDateFormat() == null || sysIdsequence.getDateFormat().equals("") || dateStr.equals(sysIdsequence.getDateMax())){
  65. index = sysIdsequence.getIdSequence() == null ? 0 : sysIdsequence.getIdSequence().intValue();
  66. }
  67. String resultNo = "";
  68. if(!StringUtils.isEmpty(prefix)){
  69. resultNo = prefix + CommonUtils.lpad((index+1)+"",sysIdsequence.getLength().intValue(),"0");
  70. }else {
  71. resultNo = (index+1)+"";
  72. }
  73. return resultNo;
  74. }
  75. }