diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index ba4961b..b47d67f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -177,6 +177,9 @@ public class WhiteController extends CoreBaseController { @Autowired private ICoreMemTreeService memTreeService; + @Autowired + private ISysOrderNoRuleService sysOrderNoRuleService; + @Value(value = "${filter.ding.menu.parent.id}") private Long filterDingPmcParentMenuId; @@ -764,6 +767,47 @@ public class WhiteController extends CoreBaseController { } /** + * 新增单号规则 + * @param sysOrderNoRule 单号规则 + * @return 处理结果 + */ + @PostMapping(value = "/insert") + @ApiOperation(value = "新增单号规则") + public ResultBean insertSysOrderNoRule(SysOrderNoRule sysOrderNoRule) { + try { + // 添加校验 + validatorSysOrderNoRule(sysOrderNoRule); + + sysOrderNoRule.setOrderNoRuleStatus(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + sysOrderNoRule.setSerialNo(CommonEnumUtil.PARENT.DEFAULT.getValue()); + + sysOrderNoRuleService.insertSysOrderNoRule(sysOrderNoRule); + return ResultBean.success("操作成功").setResultObject(sysOrderNoRule).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + /** + * 对象添加校验 + * + * @param sysOrderNoRule 校验对象 + * @throws NoSuchFieldException + */ + private void validatorSysOrderNoRule(SysOrderNoRule sysOrderNoRule) throws NoSuchFieldException { + ValidatorBean.beginValid(sysOrderNoRule) + .notNull("name", sysOrderNoRule.getName()) + .notNull("orderNoRuleCode", sysOrderNoRule.getOrderNoRuleCode()) + .notNull("orderNoRule", sysOrderNoRule.getOrderNoRule()) + .checkNotZero("serialNoSeed", sysOrderNoRule.getSerialNoSeed()) + .checkNotZero("serialNoIncrement", sysOrderNoRule.getSerialNoIncrement()) + .checkNotZero("serialNoLength", sysOrderNoRule.getSerialNoLength()) + .checkNotZero("isCycle", sysOrderNoRule.getIsCycle()); + } + + /** * 根据单号规则代码,生成单号 * * @param code 单号规则代码 diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SynchronizedService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SynchronizedService.java index 091ef64..d1bffbe 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SynchronizedService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SynchronizedService.java @@ -8,6 +8,7 @@ import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ImppRedis; import org.apache.commons.collections.CollectionUtils; @@ -185,7 +186,9 @@ public class SynchronizedService implements ISynchronizedService { // 生成单号更缓存 return orderNoRuleList; - } catch (Exception e) { + } catch (ImppBusiException e) { + throw e; + } catch (Exception e) { LOGGER.error("生成单号失败,单号代码:{},num:{}", code, num, e); } finally { if (rLock.isHeldByCurrentThread()) {