codegeneratorserviceimpl.java

来自「本源码为教学管理信息系统」· Java 代码 · 共 68 行

JAVA
68
字号
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 + =
减小字号Ctrl + -
显示快捷键?