|
|
@ -38,12 +38,8 @@ import java.io.File;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
import java.util.concurrent.locks.Lock;
|
|
|
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
import static cn.estsh.i3plus.platform.common.util.CommonConstWords.REDIS_PREFIX_LOCK_GET_ORDER_NO;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* @Description :系统单号规则管理服务
|
|
|
|
* @Description :系统单号规则管理服务
|
|
|
|
* @Reference :
|
|
|
|
* @Reference :
|
|
|
@ -393,21 +389,15 @@ public class SysOrderNoRuleController extends CoreBaseController {
|
|
|
|
@GetMapping(value = "/get-order-no/{code}")
|
|
|
|
@GetMapping(value = "/get-order-no/{code}")
|
|
|
|
@ApiOperation(value = "根据单号规则代码,生成单号")
|
|
|
|
@ApiOperation(value = "根据单号规则代码,生成单号")
|
|
|
|
public ResultBean<SysOrderNoRule> getOrderNo(@PathVariable("code") String code) {
|
|
|
|
public ResultBean<SysOrderNoRule> getOrderNo(@PathVariable("code") String code) {
|
|
|
|
Lock lock = redisCore.getLock(REDIS_PREFIX_LOCK_GET_ORDER_NO);
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
ValidatorBean.checkNotNull(code, "code不能为空");
|
|
|
|
ValidatorBean.checkNotNull(code, "code不能为空");
|
|
|
|
|
|
|
|
|
|
|
|
// 获取锁
|
|
|
|
|
|
|
|
lock.tryLock(10, TimeUnit.SECONDS);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SysOrderNoRule sysOrderNoRule = synchronizedService.nextOrderNo(code);
|
|
|
|
SysOrderNoRule sysOrderNoRule = synchronizedService.nextOrderNo(code);
|
|
|
|
return ResultBean.success("操作成功").setResultObject(sysOrderNoRule).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
|
|
|
|
return ResultBean.success("操作成功").setResultObject(sysOrderNoRule).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
|
|
|
|
} catch (ImppBusiException busExcep) {
|
|
|
|
} catch (ImppBusiException busExcep) {
|
|
|
|
return ResultBean.fail(busExcep);
|
|
|
|
return ResultBean.fail(busExcep);
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
|
|
|
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
lock.unlock();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -420,22 +410,16 @@ public class SysOrderNoRuleController extends CoreBaseController {
|
|
|
|
@GetMapping(value = "/get-order-no/{code}/{num}")
|
|
|
|
@GetMapping(value = "/get-order-no/{code}/{num}")
|
|
|
|
@ApiOperation(value = "根据单号规则代码,生成单号")
|
|
|
|
@ApiOperation(value = "根据单号规则代码,生成单号")
|
|
|
|
public ResultBean<String> getOrderNo(@PathVariable("code") String code,@PathVariable("num") Integer num) {
|
|
|
|
public ResultBean<String> getOrderNo(@PathVariable("code") String code,@PathVariable("num") Integer num) {
|
|
|
|
Lock lock = redisCore.getLock(REDIS_PREFIX_LOCK_GET_ORDER_NO);
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
ValidatorBean.checkNotNull(code, "code不能为空");
|
|
|
|
ValidatorBean.checkNotNull(code, "code不能为空");
|
|
|
|
ValidatorBean.checkNotZero(num,"次数不能为零");
|
|
|
|
ValidatorBean.checkNotZero(num,"次数不能为零");
|
|
|
|
|
|
|
|
|
|
|
|
// 获取锁
|
|
|
|
|
|
|
|
lock.tryLock(10, TimeUnit.SECONDS);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<String> orderNoList = synchronizedService.nextOrderNo(code,num).stream().map(SysOrderNoRule::getOrderNo).collect(Collectors.toList());
|
|
|
|
List<String> orderNoList = synchronizedService.nextOrderNo(code,num).stream().map(SysOrderNoRule::getOrderNo).collect(Collectors.toList());
|
|
|
|
return ResultBean.success("操作成功").setResultList(orderNoList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
|
|
|
|
return ResultBean.success("操作成功").setResultList(orderNoList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
|
|
|
|
} catch (ImppBusiException busExcep) {
|
|
|
|
} catch (ImppBusiException busExcep) {
|
|
|
|
return ResultBean.fail(busExcep);
|
|
|
|
return ResultBean.fail(busExcep);
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
|
|
|
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
lock.unlock();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|