|
@@ -1,14 +1,21 @@
|
|
|
package com.fjhx.service.apply.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fjhx.entity.apply.ApplyPurchase;
|
|
|
-import com.fjhx.params.apply.ApplyPurchaseVo;
|
|
|
import com.fjhx.mapper.apply.ApplyPurchaseMapper;
|
|
|
+import com.fjhx.params.apply.ApplyPurchaseVo;
|
|
|
import com.fjhx.service.apply.ApplyPurchaseService;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.fjhx.uitl.code.CodeEnum;
|
|
|
import com.fjhx.utils.wrapperUtil.IWrapper;
|
|
|
+import org.springblade.core.log.exception.ServiceException;
|
|
|
+import org.springblade.core.redis.lock.RedisLockClient;
|
|
|
+import org.springblade.core.secure.utils.AuthUtil;
|
|
|
+import org.springblade.core.tool.utils.Func;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
@@ -22,6 +29,11 @@ import java.util.Map;
|
|
|
@Service
|
|
|
public class ApplyPurchaseServiceImpl extends ServiceImpl<ApplyPurchaseMapper, ApplyPurchase> implements ApplyPurchaseService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private RedisLockClient redisLockClient;
|
|
|
+
|
|
|
+ private final String REDIS_LOCK_CACHE_KEY = "seq:lock:" + AuthUtil.getTenantId() + ":material:";
|
|
|
+
|
|
|
@Override
|
|
|
public Page<ApplyPurchase> getPage(Map<String, Object> condition) {
|
|
|
|
|
@@ -31,8 +43,32 @@ public class ApplyPurchaseServiceImpl extends ServiceImpl<ApplyPurchaseMapper, A
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void add(ApplyPurchaseVo applyPurchaseVo) {
|
|
|
- save(applyPurchaseVo);
|
|
|
+ public void add(List<ApplyPurchase> list) {
|
|
|
+ if (
|
|
|
+ !redisLockClient.lockFair(REDIS_LOCK_CACHE_KEY, () -> {
|
|
|
+ //获取编码
|
|
|
+ String code = CodeEnum.APPLY_PURCHASE.getCode();
|
|
|
+ //查询编码是否已存在
|
|
|
+ if (!checkCodeIsExist(null, code)) {
|
|
|
+ throw new ServiceException("后台自增编码存在重复,请重试或联系管理员!编码:" + code);
|
|
|
+ }
|
|
|
+ list.forEach(item -> {
|
|
|
+ item.setCode(code);
|
|
|
+ });
|
|
|
+ saveBatch(list);
|
|
|
+ return true;
|
|
|
+ })
|
|
|
+ ) {
|
|
|
+ throw new ServiceException("当前系统繁忙,请稍后重试!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private Boolean checkCodeIsExist(Long id, String code) {
|
|
|
+ List<ApplyPurchase> list = lambdaQuery().ne(Func.isNotEmpty(id), ApplyPurchase::getId, id).eq(ApplyPurchase::getCode, code).list();
|
|
|
+ if (Func.isNotEmpty(list)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
@Override
|