feat:单号生成功能优化

yun-zuoyi
汪云昊 5 years ago
parent 137a14133f
commit 7c88ff29d3

@ -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();
} }
} }
} }

@ -1,7 +1,7 @@
package cn.estsh.i3plus.core.apiservice.controller.busi; package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysToolTypeService; import cn.estsh.i3plus.core.api.iservice.busi.ISysToolTypeService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
@ -14,7 +14,6 @@ import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean; import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -55,8 +54,6 @@ public class SysToolTypeController extends CoreBaseController{
ValidatorBean.beginValid(toolType).notNull("name",toolType.getName()); ValidatorBean.beginValid(toolType).notNull("name",toolType.getName());
toolType.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode()); toolType.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode());
// 添加初始化
ConvertBean.modelInitialize(toolType, AuthUtil.getSessionUser());
toolTypeService.insertSysToolType(toolType); toolTypeService.insertSysToolType(toolType);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
@ -82,9 +79,6 @@ public class SysToolTypeController extends CoreBaseController{
// 条件校验 // 条件校验
ValidatorBean.beginValid(toolType).notNull("name",toolType.getName()); ValidatorBean.beginValid(toolType).notNull("name",toolType.getName());
// 添加初始化
ConvertBean.modelUpdate(toolType,user);
toolTypeService.updateSysToolType(toolType); toolTypeService.updateSysToolType(toolType);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){ }catch(ImppBusiException busExcep){

Loading…
Cancel
Save