📄 codegeneratorserviceimpl.java
字号:
package com.wygl.dmwh.service;import com.wygl.service.AbstractService;/** * @author Administrator * 代码生成服务实现 */public class CodeGeneratorServiceImpl extends AbstractService implements CodeGeneratorService { public String generator(CodeParams codeParams) throws Exception { //1.根据当前层次levels和层次规则layerRule找出截取字符串,和当前层次位数 int levels = Integer.parseInt(codeParams.getLevels()); int curLayer = Integer.parseInt(codeParams.getLayerRule().substring(levels-1,levels)); String hqlString = ""; if(codeParams.getIsDept().equals("0")){ hqlString = "select max(codeTableEdit.code) from CodeTableEdit as codeTableEdit where codeTableEdit.codeType='"+codeParams.getCodeType()+"' and codeTableEdit.fatherCode = '"+codeParams.getFatherCode()+"' and codeTableEdit.dept_id='"+codeParams.getDept_id()+"'"; }else{ hqlString = "select max(codeTableEdit.code) from CodeTableEdit as codeTableEdit where codeTableEdit.codeType='"+codeParams.getCodeType()+"' and codeTableEdit.fatherCode = '"+codeParams.getFatherCode()+"'"; } //2.找出当前最大号 String maxCode = (String)dbDao.queryObjects(hqlString).get(0); if(maxCode==null) maxCode = "0"; //2.去掉前缀字符 String code = ""; String curCode = ""; if(maxCode.equals("0")){ code = "0"; curCode = "0"; }else{ if(codeParams.getPrefix().equals("")){ code = maxCode.substring(0); }else{ code = maxCode.substring(codeParams.getPrefix().length()-1); } curCode = code.substring(code.length()-curLayer); } //4.转换字符串为整形,并进行加1 String maxInt = "1"; if(curLayer==1){ if(curCode.equals("9")){ curCode = "a"; }else{ curCode = ""+(char)((int)(curCode.charAt(0)) + 1); } if(curCode.equals("z")) throw new Exception("超过最大限z!"); }else{ String suffix = ""; for(int i = 0;i<curLayer;i++){ suffix += "0"; } maxInt += suffix; curCode = Integer.toString(Integer.valueOf(curCode).intValue() + 1); if(Integer.parseInt(maxInt) <= Integer.parseInt(curCode)) throw new Exception("超过最大限"+maxInt+"!"); int length = curCode.length(); String prefix = ""; for(int i = 0;i<curLayer - length;i++){ prefix += "0"; } curCode = prefix + curCode; } curCode = codeParams.getFatherCode().substring(codeParams.getCodeType().length()) + curCode; return curCode; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -