feat:单号生成功能优化

yun-zuoyi
汪云昊 5 years ago
parent 29f40a4dc7
commit 137a14133f

@ -161,6 +161,12 @@ public interface ICoreMemTreeService {
@ApiOperation(value = "查询功能子节点",notes = "根据用户ID 查询功能树") @ApiOperation(value = "查询功能子节点",notes = "根据用户ID 查询功能树")
List<SysMenu> packTreeSysMenuByUserId(Long userId); List<SysMenu> packTreeSysMenuByUserId(Long userId);
/**
* ID ID
* @param userId
* @param parentId
* @return
*/
@ApiOperation(value = "查询功能子节点",notes = "根据用户ID 和 节点ID 查询功能树") @ApiOperation(value = "查询功能子节点",notes = "根据用户ID 和 节点ID 查询功能树")
List<SysMenu> packTreeSysMenuByUserIdAndParentId(Long userId,Long parentId); List<SysMenu> packTreeSysMenuByUserIdAndParentId(Long userId,Long parentId);

@ -46,6 +46,15 @@ public interface ISysOrderNoRuleService {
@ApiOperation(value = "根据id查询单号规则") @ApiOperation(value = "根据id查询单号规则")
SysOrderNoRule getSysOrderNoRuleById(Long id); SysOrderNoRule getSysOrderNoRuleById(Long id);
/**
* code
* @param code code
* @return
*/
@ApiOperation(value = "根据code查询单号规则")
SysOrderNoRule getSysOrderNoRuleByCode(String code);
/** /**
* *
* @param sysOrderNoRule * @param sysOrderNoRule
@ -57,19 +66,11 @@ public interface ISysOrderNoRuleService {
/** /**
* *
* @param code * @param orderNoRule
* @return
*/
@ApiOperation(value = "根据code查询最新单号规则")
SysOrderNoRule doGetSysOrderNoRuleCode(String code);
/**
*
* @param code
* @return * @return
*/ */
@ApiOperation(value = "根据code查询最新单号规则") @ApiOperation(value = "根据单号代码获取单号信息")
List<SysOrderNoRule> doGetSysOrderNoRuleByCodeAndNum(String code,int num); List<SysOrderNoRule> doGetSysOrderNoRuleByNum(SysOrderNoRule orderNoRule,int num);
/** /**
* id * id
@ -100,4 +101,10 @@ public interface ISysOrderNoRuleService {
*/ */
@ApiOperation(value = "批量添加编号规则") @ApiOperation(value = "批量添加编号规则")
void insertSysOrderNoRuleList(List sysOrderNoRuleList); void insertSysOrderNoRuleList(List sysOrderNoRuleList);
/**
*
* @param sysOrderNoRule
*/
void detachSysOrderNoRule(SysOrderNoRule sysOrderNoRule);
} }

@ -2,7 +2,6 @@ package cn.estsh.i3plus.core.apiservice.controller.base;
import cn.estsh.i3plus.core.api.iservice.base.ISynchronizedService; import cn.estsh.i3plus.core.api.iservice.base.ISynchronizedService;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService; import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService;
import cn.estsh.i3plus.core.api.iservice.busi.*; import cn.estsh.i3plus.core.api.iservice.busi.*;
import cn.estsh.i3plus.core.apiservice.util.SysUserPasswordUtil; import cn.estsh.i3plus.core.apiservice.util.SysUserPasswordUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
@ -32,19 +31,15 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authc.*; import org.apache.shiro.authc.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.*; import java.util.*;
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_BATCH_GET_ORDER_NO;
import static cn.estsh.i3plus.platform.common.util.CommonConstWords.REDIS_PREFIX_LOCK_GET_ORDER_NO;
/** /**
* @Description : * @Description :
* @Reference : * @Reference :
@ -66,12 +61,6 @@ public class WhiteController extends CoreBaseController {
private ISysLocaleResourceService sysLocaleResourceService; private ISysLocaleResourceService sysLocaleResourceService;
@Autowired @Autowired
private ISystemLoginService systemLoginService;
@Autowired
private ISysOrderNoRuleService sysOrderNoRuleService;
@Autowired
private ISysUserService userService; private ISysUserService userService;
@Autowired @Autowired
@ -110,6 +99,9 @@ public class WhiteController extends CoreBaseController {
@Resource(name= CommonConstWords.IMPP_REDIS_SESSION) @Resource(name= CommonConstWords.IMPP_REDIS_SESSION)
private ImppRedis redisSession; private ImppRedis redisSession;
@Autowired
private RabbitTemplate rabbitTemplate;
@GetMapping(value = "/sys-locale-language/list") @GetMapping(value = "/sys-locale-language/list")
@ApiOperation(value = "查询可用语言",notes = "查询可用语言") @ApiOperation(value = "查询可用语言",notes = "查询可用语言")
@ -407,21 +399,15 @@ public class WhiteController extends CoreBaseController {
@GetMapping(value = "/sys-order-no-rule/get-order-no/{code}") @GetMapping(value = "/sys-order-no-rule/get-order-no/{code}")
@ApiOperation(value = "根据单号规则代码,生成单号") @ApiOperation(value = "根据单号规则代码,生成单号")
public ResultBean getOrderNo(@PathVariable("code") String code) { public ResultBean getOrderNo(@PathVariable("code") String code) {
Lock lock = redisCore.getFairLock(REDIS_PREFIX_LOCK_GET_ORDER_NO);
try { try {
ValidatorBean.checkNotNull(code, "code不能为空"); ValidatorBean.checkNotNull(code, "code不能为空");
// 获取锁
lock.lock();
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();
} }
} }
@ -435,22 +421,16 @@ public class WhiteController extends CoreBaseController {
@GetMapping(value = "/sys-order-no-rule/get-order-no/{code}/{num}") @GetMapping(value = "/sys-order-no-rule/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.getFairLock(REDIS_PREFIX_LOCK_BATCH_GET_ORDER_NO);
try { try {
ValidatorBean.checkNotNull(code, "code不能为空"); ValidatorBean.checkNotNull(code, "code不能为空");
ValidatorBean.checkNotZero(num, "次数不能为零"); ValidatorBean.checkNotZero(num, "次数不能为零");
// 获取锁
lock.tryLock(15, 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();
} }
} }
@ -652,4 +632,9 @@ public class WhiteController extends CoreBaseController {
} }
} }
@GetMapping(value = "/send-test-mq")
@ApiOperation(value = "测试发送mq", notes = "测试发送mq")
public void sendTestMq(String paramStr) {
rabbitTemplate.convertAndSend(PlatformConstWords.QUEUE_IMPP_DEMO, paramStr);
}
} }

@ -2,12 +2,22 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.base;
import cn.estsh.i3plus.core.api.iservice.base.ISynchronizedService; import cn.estsh.i3plus.core.api.iservice.base.ISynchronizedService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysOrderNoRuleService; import cn.estsh.i3plus.core.api.iservice.busi.ISysOrderNoRuleService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule; import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List; import java.util.List;
import static cn.estsh.i3plus.platform.common.util.CommonConstWords.REDIS_PREFIX_LOCK_GET_ORDER_NO;
/** /**
* @Description : * @Description :
* @Reference : * @Reference :
@ -21,9 +31,21 @@ public class SynchronizedService implements ISynchronizedService {
@Autowired @Autowired
private ISysOrderNoRuleService sysOrderNoRuleService; private ISysOrderNoRuleService sysOrderNoRuleService;
@Resource(name = CommonConstWords.IMPP_REDIS_RES)
private ImppRedis redisRes;
@Override @Override
public synchronized SysOrderNoRule nextOrderNo(String code) { public synchronized SysOrderNoRule nextOrderNo(String code) {
return sysOrderNoRuleService.doGetSysOrderNoRuleCode(code); List<SysOrderNoRule> list = nextOrderNo(code, NumberUtils.INTEGER_ONE);
if (CollectionUtils.isEmpty(list)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("[" + code + "] 生成失败")
.setErrorSolution("请重新输入规则代码")
.build();
}
return list.stream().findFirst().get();
} }
/** /**
@ -35,6 +57,34 @@ public class SynchronizedService implements ISynchronizedService {
*/ */
@Override @Override
public synchronized List<SysOrderNoRule> nextOrderNo(String code, int num) { public synchronized List<SysOrderNoRule> nextOrderNo(String code, int num) {
return sysOrderNoRuleService.doGetSysOrderNoRuleByCodeAndNum(code,num); String redisKey = REDIS_PREFIX_LOCK_GET_ORDER_NO + ":" + code;
//先拿规则
SysOrderNoRule codeRole = sysOrderNoRuleService.getSysOrderNoRuleByCode(code);
if (codeRole == null) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("[" + code + "]规则代码不存在存在")
.setErrorSolution("请重新输入规则代码")
.build();
} else if (codeRole.getOrderNoRuleStatus() == CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("[" + code + "]单号规则已禁用")
.setErrorSolution("请重新输入规则代码")
.build();
}
sysOrderNoRuleService.detachSysOrderNoRule(codeRole);
Long incr = codeRole.getSerialNoIncrement() * num;
//缓存增加
//先判断redis是否存在如果不存在则用默认初始值+步长*数量,如果存在,则添加步长 * 数量
codeRole.setSerialNo(redisRes.putObjAdditational(redisKey, codeRole.getSerialNo(), incr)-incr);
// 生成单号更缓存
return sysOrderNoRuleService.doGetSysOrderNoRuleByNum(codeRole, num);
} }
} }

@ -6,6 +6,8 @@ import cn.estsh.i3plus.pojo.base.enumutil.ModelEnumUtil;
import cn.estsh.i3plus.pojo.model.platform.CommonTreeModel; import cn.estsh.i3plus.pojo.model.platform.CommonTreeModel;
import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.i3plus.pojo.platform.bean.*;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -24,6 +26,8 @@ import java.util.stream.Collectors;
@Service @Service
public class CoreMemTreeService implements ICoreMemTreeService { public class CoreMemTreeService implements ICoreMemTreeService {
public static final Logger LOGGER = LoggerFactory.getLogger(CoreMemTreeService.class);
@Autowired @Autowired
private IPersonnelService personnelService; private IPersonnelService personnelService;
@ -623,16 +627,31 @@ public class CoreMemTreeService implements ICoreMemTreeService {
return packTreeSysMenuByUserIdAndParentId(userId, CommonEnumUtil.PARENT.DEFAULT.getValue()); return packTreeSysMenuByUserIdAndParentId(userId, CommonEnumUtil.PARENT.DEFAULT.getValue());
} }
/**
* ID ID
* @param userId
* @param parentId
* @return
*/
@Override @Override
public List<SysMenu> packTreeSysMenuByUserIdAndParentId(Long userId, Long parentId) { public List<SysMenu> packTreeSysMenuByUserIdAndParentId(Long userId, Long parentId) {
// 查询用户关联角色
long startTime = System.currentTimeMillis();
List<SysRefUserRole> roleList = personnelService.findSysRefUserRole(userId); List<SysRefUserRole> roleList = personnelService.findSysRefUserRole(userId);
long roleTime = System.currentTimeMillis();
LOGGER.info("查询用户所关联的角色信息耗时:{}",roleTime - startTime);
if (roleList != null && roleList.size() > 0) { if (roleList != null && roleList.size() > 0) {
// 查询角色关联菜单
List<SysRefRoleMenu> refRoleMenuList = personnelService.findSysRefRoleMenuByRefUserRole(roleList); List<SysRefRoleMenu> refRoleMenuList = personnelService.findSysRefRoleMenuByRefUserRole(roleList);
long refRoleMenuTime = System.currentTimeMillis();
LOGGER.info("查询角色关联菜单:{}",refRoleMenuTime - roleTime);
if (refRoleMenuList != null && refRoleMenuList.size() > 0) { if (refRoleMenuList != null && refRoleMenuList.size() > 0) {
List<SysMenu> menuList = menuService.findAll(); List<SysMenu> menuList = menuService.findAll();
// 构建菜单树
List<SysMenu> menuRootTree = packTreeSysMenu(menuList, parentId); List<SysMenu> menuRootTree = packTreeSysMenu(menuList, parentId);
//
return packTreeSysMenuBySysRefRoleMenu(menuRootTree, refRoleMenuList); return packTreeSysMenuBySysRefRoleMenu(menuRootTree, refRoleMenuList);
} }
} }

@ -15,7 +15,6 @@ import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule;
import cn.estsh.i3plus.pojo.platform.repository.SysOrderNoRuleRepository; import cn.estsh.i3plus.pojo.platform.repository.SysOrderNoRuleRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -78,6 +77,17 @@ public class SysOrderNoRuleService implements ISysOrderNoRuleService {
return sysOrderNoRuleRDao.getById(id); return sysOrderNoRuleRDao.getById(id);
} }
/**
* code
*
* @param code code
* @return
*/
@Override
public SysOrderNoRule getSysOrderNoRuleByCode(String code) {
return sysOrderNoRuleRDao.getByProperty("orderNoRuleCode",code);
}
@Override @Override
public ListPager querySysOrderNoRuleByPager(SysOrderNoRule sysOrderNoRule, Pager pager) { public ListPager querySysOrderNoRuleByPager(SysOrderNoRule sysOrderNoRule, Pager pager) {
if (sysOrderNoRule == null) { if (sysOrderNoRule == null) {
@ -90,77 +100,32 @@ public class SysOrderNoRuleService implements ISysOrderNoRuleService {
} }
} }
@Override
@ApiOperation(value = "根据code查询最新单号规则")
public synchronized SysOrderNoRule doGetSysOrderNoRuleCode(String code) {
SysOrderNoRule sysOrderNoRule = sysOrderNoRuleRDao.getByProperty("orderNoRuleCode", code);
if (sysOrderNoRule == null) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("[" + code + "]规则代码不存在存在")
.setErrorSolution("请重新输入规则代码")
.build();
} else if (sysOrderNoRule.getOrderNoRuleStatus() == CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("[" + code + "]单号规则已禁用")
.setErrorSolution("请重新输入规则代码")
.build();
} else {
sysOrderNoRule = OrderNoMakeUtil.next(sysOrderNoRule);
sysOrderNoRuleRDao.update(sysOrderNoRule);
return sysOrderNoRule;
}
}
/** /**
* *
* *
* @param code * @param sysOrderNoRule
* @param num * @param num
* @return * @return
*/ */
@Override @Override
public synchronized List<SysOrderNoRule> doGetSysOrderNoRuleByCodeAndNum(String code, int num) { public synchronized List<SysOrderNoRule> doGetSysOrderNoRuleByNum(SysOrderNoRule sysOrderNoRule, int num) {
SysOrderNoRule sysOrderNoRule = sysOrderNoRuleRDao.getByProperty("orderNoRuleCode", code);
sysOrderNoRuleRDao.detachObject(sysOrderNoRule);
List<SysOrderNoRule> resultList = new ArrayList<>(); List<SysOrderNoRule> resultList = new ArrayList<>();
try {
if (sysOrderNoRule == null) { for (int i = 0; i < num; i++) {
throw ImppExceptionBuilder.newInstance() sysOrderNoRule = OrderNoMakeUtil.next(CloneTool.clone(sysOrderNoRule));
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) resultList.add(sysOrderNoRule);
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) }
.setErrorDetail("[" + code + "]规则代码不存在存在") }catch (Exception e){
.setErrorSolution("请重新输入规则代码") LOGGER.error("单号生成异常:",e);
.build();
} else if (sysOrderNoRule.getOrderNoRuleStatus() == CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION.getCode())
.setErrorDetail("[" + code + "]单号规则已禁用") .setErrorDetail("单号生成异常 %s",e.getMessage())
.setErrorSolution("请重新输入规则代码")
.build(); .build();
} else {
try {
for (int i = 0; i < num; i++) {
sysOrderNoRule = OrderNoMakeUtil.next((SysOrderNoRule) CloneTool.clone(sysOrderNoRule));
resultList.add(sysOrderNoRule);
}
}catch (Exception e){
LOGGER.error("单号生成异常:",e);
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION.getCode())
.setErrorDetail("单号生成异常 %s",e.getMessage())
.build();
}
sysOrderNoRuleRDao.update(sysOrderNoRule);
return resultList;
} }
sysOrderNoRuleRDao.update(sysOrderNoRule);
return resultList;
} }
@Override @Override
@ -185,5 +150,13 @@ public class SysOrderNoRuleService implements ISysOrderNoRuleService {
sysOrderNoRuleRDao.saveAll(sysOrderNoRuleList); sysOrderNoRuleRDao.saveAll(sysOrderNoRuleList);
} }
/**
* @param sysOrderNoRule
*/
@Override
public void detachSysOrderNoRule(SysOrderNoRule sysOrderNoRule) {
sysOrderNoRuleRDao.detachObject(sysOrderNoRule);
}
} }

@ -167,7 +167,6 @@ public class TestTransService implements ITestTransService {
@Override @Override
public void insertRedis() { public void insertRedis() {
sysDepartmentRDao.insert(new SysDepartment());
for (int i = 0; i < 1000; i++) { for (int i = 0; i < 1000; i++) {
imppRedis.putObject(i + "", i); imppRedis.putObject(i + "", i);
} }

@ -164,8 +164,8 @@ public class CloneTool {
* @throws IllegalAccessException * @throws IllegalAccessException
* @throws InstantiationException * @throws InstantiationException
*/ */
public static Object clone(Object value) throws IllegalAccessException, InstantiationException { public static <T> T clone(T value) throws IllegalAccessException, InstantiationException {
return clone(value,1); return (T) clone(value,1);
} }
/** /**
@ -175,8 +175,8 @@ public class CloneTool {
* @throws IllegalAccessException * @throws IllegalAccessException
* @throws InstantiationException * @throws InstantiationException
*/ */
public static Object deepClone(Object value) throws IllegalAccessException, InstantiationException { public static <T> T deepClone(T value) throws IllegalAccessException, InstantiationException {
return clone(value,-1); return (T) clone(value,-1);
} }

@ -103,6 +103,7 @@ public class NoSqlPack {
result.andStringEquals("remoteIp",bean.getRemoteIp()); result.andStringEquals("remoteIp",bean.getRemoteIp());
// result.andStringEquals("requestUrl",bean.getRequestUrl()); // result.andStringEquals("requestUrl",bean.getRequestUrl());
result.andTextLike("requestUrl",bean.getRequestUrl()); result.andTextLike("requestUrl",bean.getRequestUrl());
result.andStringLike("userLoginName",bean.getUserLoginName());
result.andStringEquals("createUser",bean.getCreateUser()); result.andStringEquals("createUser",bean.getCreateUser());
result.andStringLike("operateMessage",bean.getOperateMessage()); result.andStringLike("operateMessage",bean.getOperateMessage());
result.andStringDateTimeBetween("createDatetime",bean.getCreateDateTimeStart(),bean.getCreateDateTimeEnd()); result.andStringDateTimeBetween("createDatetime",bean.getCreateDateTimeStart(),bean.getCreateDateTimeEnd());

@ -1,16 +1,14 @@
package cn.estsh.i3plus.core.apiservice.util; package cn.estsh.i3plus.core.apiservice.util;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule; import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule;
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 com.alibaba.fastjson.JSON;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;
/** /**
* @Description : * @Description :
@ -59,7 +57,7 @@ public class OrderNoMakeUtil {
orderNoRule.setSerialNo(orderNoRule.getSerialNo() + orderNoRule.getSerialNoIncrement()); orderNoRule.setSerialNo(orderNoRule.getSerialNo() + orderNoRule.getSerialNoIncrement());
} }
} else { } else {
orderNoRule.setSerialNo(orderNoRule.getSerialNoSeed()); orderNoRule.setSerialNo(orderNoRule.getSerialNoSeed() * orderNoRule.getSerialNoIncrement());
} }
replace(orderNo, PlatformConstWords.SERIAL_NO, String.format(serialNoFormatStr, orderNoRule.getSerialNo())); replace(orderNo, PlatformConstWords.SERIAL_NO, String.format(serialNoFormatStr, orderNoRule.getSerialNo()));

Loading…
Cancel
Save