Ver código fonte

试验需求优化

chenr 3 meses atrás
pai
commit
6f551e22e3

+ 28 - 2
blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialNumberRuleController.java

@@ -30,6 +30,7 @@ import org.springblade.business.dto.TrialNumberRuleDTO;
 import org.springblade.business.mapper.TrialNumberRuleMapper;
 import org.springblade.business.vo.TrialNumberRuleVO1;
 import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
@@ -50,6 +51,7 @@ import org.springblade.core.boot.ctrl.BladeController;
 import java.io.FileNotFoundException;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -108,6 +110,14 @@ public class TrialNumberRuleController extends BladeController {
 	@ApiOperation(value = "新增", notes = "传入trialNumberRule")
 	public R<String> save(@Valid @RequestBody TrialNumberRule trialNumberRule) {
         Integer maxSort=trialNumberRuleMapper.selectMaxSort(trialNumberRule.getProjectId(),trialNumberRule.getContractId(),trialNumberRule.getType());
+        List<TrialNumberRule> rules = trialNumberRuleMapper.selectList(Wrappers.<TrialNumberRule>query().lambda().eq(TrialNumberRule::getProjectId, trialNumberRule.getProjectId()).eq(TrialNumberRule::getContractId, trialNumberRule.getContractId()).eq(TrialNumberRule::getType, trialNumberRule.getType()));
+        if(!rules.isEmpty()){
+            for (TrialNumberRule rule : rules) {
+                if(Objects.equals(rule.getRule(), trialNumberRule.getRule())){
+                    throw new ServiceException("已存在相同的编号规则");
+                }
+            }
+        }
         trialNumberRule.setSort(maxSort+1);
         if(trialNumberRule.getContractId()==null||trialNumberRule.getContractId()==0L){
             trialNumberRule.setStatus(1);
@@ -115,7 +125,9 @@ public class TrialNumberRuleController extends BladeController {
             trialNumberRule.setStatus(2);
         }
         trialNumberRuleService.save(trialNumberRule);
-        trialNumberRuleService.clearTrialNumber(trialNumberRule.getProjectId(),trialNumberRule.getContractId(),trialNumberRule.getType());
+        if(trialNumberRule.getContractId()!=0L){
+            trialNumberRuleService.clearTrialNumber(trialNumberRule.getProjectId(),trialNumberRule.getContractId(),trialNumberRule.getType());
+        }
         Map<String, String> map = trialNumberRuleService.getTrialNumber(trialNumberRule.getProjectId(),trialNumberRule.getContractId(), trialNumberRule.getType(), null, false);
 		return R.data(map.get("trialNumber"));
 	}
@@ -127,10 +139,22 @@ public class TrialNumberRuleController extends BladeController {
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入trialNumberRule")
 	public R<String> update(@Valid @RequestBody TrialNumberRule trialNumberRule) {
+        List<TrialNumberRule> rules = trialNumberRuleMapper.selectList(Wrappers.<TrialNumberRule>query().lambda().eq(TrialNumberRule::getProjectId, trialNumberRule.getProjectId()).eq(TrialNumberRule::getContractId, trialNumberRule.getContractId()).eq(TrialNumberRule::getType, trialNumberRule.getType()));
+        if(!rules.isEmpty()){
+            for (TrialNumberRule rule : rules) {
+                if(Objects.equals(rule.getRule(), trialNumberRule.getRule())&&!Objects.equals(rule.getId(), trialNumberRule.getId())){
+                    throw new ServiceException("已存在相同的编号规则");
+                }
+            }
+        }
         if(trialNumberRule.getRule()==6){
+            //查出流水号规则
             TrialNumberRule trialNumberRule1 = trialNumberRuleService.getById(trialNumberRule.getId());
+            //如果是合同段的规则
             if(trialNumberRule.getContractId()!=null&&trialNumberRule.getContractId()!=0L){
+                //并且数据填充发生改变
                 if(!StringUtils.equals(trialNumberRule1.getData(),trialNumberRule.getData())){
+                    //将自增表的数据删除
                     trialNumberRuleMapper.updateAutoIncrement(trialNumberRule.getId());
                 }
             }
@@ -151,7 +175,9 @@ public class TrialNumberRuleController extends BladeController {
             trialNumberRules.get(i).setSort(i+1);
         }
         trialNumberRuleService.saveOrUpdateBatch(trialNumberRules);
-        trialNumberRuleService.clearTrialNumber(trialNumberRules.get(0).getProjectId(),trialNumberRules.get(0).getContractId(),trialNumberRules.get(0).getType());
+        if(trialNumberRules.get(0).getContractId()!=0L){
+            trialNumberRuleService.clearTrialNumber(trialNumberRules.get(0).getProjectId(),trialNumberRules.get(0).getContractId(),trialNumberRules.get(0).getType());
+        }
         Map<String, String> map = trialNumberRuleService.getTrialNumber(trialNumberRules.get(0).getProjectId(),trialNumberRules.get(0).getContractId(), trialNumberRules.get(0).getType(), null, false);
         return R.data(map.get("trialNumber"));
 	}

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialNumberRuleMapper.xml

@@ -20,7 +20,7 @@
         <result column="is_auto_increment" property="isAutoIncrement"/>
     </resultMap>
     <update id="updateAutoIncrement">
-        update u_trial_number_rule set is_deleted=0 where number_rule_id = #{id}
+        update u_trial_auto_number set is_deleted=1 where number_rule_id = #{id}
     </update>
 
 

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialNumberRuleServiceImpl.java

@@ -171,7 +171,7 @@ public class TrialNumberRuleServiceImpl extends BaseServiceImpl<TrialNumberRuleM
                         }
                     }
                       if (isSaveRedis) {
-                        bladeRedis.setEx("trialAutoNumber:" + contractId + ":" + type + ":" + nodeId + ":" + "lock:" + autoIncrementNumber , autoIncrementNumber,30 * 60 * 1000L);
+                        bladeRedis.setEx("trialAutoNumber:" + contractId + ":" + type + ":" + nodeId + ":" + "lock:" + autoIncrementNumber , autoIncrementNumber,10 * 60 * 1000L);
                       }
                     map.put("autoIncrementNumber",autoIncrementNumber);
                     trialNumber.append(autoIncrementNumber);