|
|
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
|
|
import com.ygtx.common.core.domain.entity.SysAutoCodePart;
|
|
|
import com.ygtx.common.core.domain.entity.SysAutoCodeResult;
|
|
|
import com.ygtx.common.enums.CycleMethodMnum;
|
|
|
+import com.ygtx.common.utils.StringUtils;
|
|
|
import com.ygtx.system.service.IAutoCodeResultService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.core.annotation.Order;
|
|
|
@@ -57,7 +58,7 @@ public class PartTypeSerialNoHandler implements PartTypeTemplate {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- List<SysAutoCodeResult> rs = getAutoCodeResult(sysAutoCodePart.getRuleId(),param,method);
|
|
|
+ List<SysAutoCodeResult> rs = getAutoCodeResult(sysAutoCodePart,param,method);
|
|
|
if(CollectionUtil.isNotEmpty(rs)){
|
|
|
//如果在编码记录表中有记录,则在最后一个流水号上加上步长,返回新的流水号
|
|
|
AutoCodeUtil.threadLocal.set(false);
|
|
|
@@ -72,7 +73,7 @@ public class PartTypeSerialNoHandler implements PartTypeTemplate {
|
|
|
|
|
|
//不循环方式
|
|
|
private String cycleN(SysAutoCodePart sysAutoCodePart){
|
|
|
- List<SysAutoCodeResult> rs = getAutoCodeResult(sysAutoCodePart.getRuleId(),"","");
|
|
|
+ List<SysAutoCodeResult> rs = getAutoCodeResult(sysAutoCodePart,"","");
|
|
|
if(CollectionUtil.isNotEmpty(rs)){
|
|
|
//存在记录则在当前记录加上步长
|
|
|
Integer lastSerialNo = rs.get(0).getLastSerialNo();
|
|
|
@@ -89,15 +90,18 @@ public class PartTypeSerialNoHandler implements PartTypeTemplate {
|
|
|
}
|
|
|
|
|
|
//从编码结果记录表中查找当前指定循环规则的流水号记录
|
|
|
- private List<SysAutoCodeResult> getAutoCodeResult(Long ruleId,String param,String cycleMethod){
|
|
|
+ private List<SysAutoCodeResult> getAutoCodeResult(SysAutoCodePart sysAutoCodePart,String param,String cycleMethod){
|
|
|
SysAutoCodeResult queryParam = new SysAutoCodeResult();
|
|
|
- queryParam.setRuleId(ruleId);//ruleId要一致
|
|
|
+ queryParam.setRuleId(sysAutoCodePart.getRuleId());//ruleId要一致
|
|
|
|
|
|
if(CycleMethodMnum.CYCLE_METHOD_OTHER.getCode().equals(cycleMethod)){
|
|
|
//如果循环方式是手工输入指定的字符
|
|
|
queryParam.setLastInputChar(param);
|
|
|
}else{
|
|
|
//如果循环方式是按格式化的日期
|
|
|
+ if(StringUtils.isNotEmpty(sysAutoCodePart.getInputCharacter())){
|
|
|
+ queryParam.setLastInputChar(sysAutoCodePart.getInputCharacter());
|
|
|
+ }
|
|
|
queryParam.setGenDate(param);//这里的param将按照 gen_date like #{param}+'%' 的方式进行模糊查询,数据库中记录的永远都是yyyMMddHHmmss格式的
|
|
|
}
|
|
|
return iAutoCodeResultService.list(queryParam);
|