Explorar o código

试验编号需求优化

chenr hai 3 meses
pai
achega
e01752dec8

+ 37 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialNumberRuleController.java

@@ -141,6 +141,43 @@ public class TrialNumberRuleController extends BladeController {
 		return R.data(map.get("trialNumber"));
 	}
 
+    @PostMapping("/submitList")
+    public R<String> saveList(@RequestBody List<TrialNumberRule>list){
+        List<TrialNumberRule> collect = list.stream().filter(rule -> rule.getRule() == 6).collect(Collectors.toList());
+        if(collect.size()>1){
+            throw new ServiceException("流水只保存一个,不可保存多个");
+        }
+        List<TrialNumberRule> rules = trialNumberRuleMapper.selectList(Wrappers.<TrialNumberRule>query().lambda().eq(TrialNumberRule::getProjectId, list.get(0).getProjectId()).eq(TrialNumberRule::getContractId, list.get(0).getContractId()).eq(TrialNumberRule::getType, list.get(0).getType()));
+        List<TrialNumberRule> collect1 = rules.stream().filter(rule -> rule.getRule() == 6).collect(Collectors.toList());
+        TrialNumberRule rule6 = null;
+        if(collect1.size()>0){
+            rule6=collect1.get(0);
+        }
+        for (TrialNumberRule rule : list) {
+            if(rule.getRule()==6){
+                if(StringUtils.isEmpty(rule.getData())){
+                    throw new ServiceException("数据填充不能为空");
+                }
+                String data = rule.getData();
+                if (!data.matches("\\d+")) {
+                    throw new ServiceException("数据填充只能为数字且不能有其他字符");
+                }
+                if(rule6!=null){
+                    if(rule.getId()!=null&&rule.getId().equals(rule6.getId())){
+                        if(rule.getContractId()!=null&&rule.getContractId()!=0L){
+                            if(!StringUtils.equals(rule.getData(),rule6.getData())){
+                                trialNumberRuleMapper.updateAutoIncrement(rule.getId());
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        trialNumberRuleService.saveOrUpdateBatch(list);
+        Map<String, String> map = trialNumberRuleService.getTrialNumber(list.get(0).getProjectId(),list.get(0).getContractId(), list.get(0).getType(), null, false);
+        return R.data(map.get("trialNumber"));
+    }
+
 	/**
 	 * 修改
 	 */