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