样品变更数量时,序号跟着变的规则

dev
swj 3 years ago
parent 9a04f1c97e
commit f7e8d3bb52
  1. 1
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/SimpleRel.java
  2. 52
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/SimpleRelController.java
  3. 12
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java

@ -44,5 +44,6 @@ public class SimpleRel extends BaseEntity implements Serializable {
private Integer isDeleted;
private Integer sort;
}

@ -24,6 +24,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author swj
@ -50,38 +51,41 @@ public class SimpleRelController extends BladeController {
@PostMapping("/update")
public void update(@RequestBody SimpleRel simpleRel) {
// 0.数据准备:检验编号
String experieNum = simpleRel.getExamineExperieNum().substring(0, 13);
// 1.修改样品关联
simpleRelService.updateById(simpleRel);
// 2.查所有的样品关联
LambdaQueryWrapper<SimpleRel> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SimpleRel::getEntrustId, simpleRel.getEntrustId());
wrapper.eq(SimpleRel::getStatus, 0);
wrapper.orderByAsc(SimpleRel::getSort);
List<SimpleRel> rels = simpleRelService.list(wrapper);
LambdaQueryWrapper<Simple> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(Simple::getEntrustId, simpleRel.getEntrustId());
List<Simple> simples = simpleService.list(wrapper1);
int a = 1;
if (simples.size() > 0) {
a = simples.size() + 1;
}
String s = simpleRel.getExamineExperieNum().substring(0, 13);
// 实验检测编号
for (SimpleRel rel : rels) {
String num = "";
for (Integer i = 0; i < rel.getExamineNum(); i++) {
num += s + a + ",";
a++;
// 3.开始计算
int num = 1;
Map<Integer, List<SimpleRel>> collect = rels.stream().collect(Collectors.groupingBy(SimpleRel::getSort));
for (int i = 0; i < collect.size(); i++) {
List<SimpleRel> currSimpleRels = collect.get(i);
// 实验的
for (SimpleRel currRel : currSimpleRels) {
String examineExperieNum = "";
for (Integer j = 0; j < currRel.getExamineNum(); j++) {
examineExperieNum += experieNum + num + ",";
num ++;
}
currRel.setExamineExperieNum(examineExperieNum);
}
rel.setExamineExperieNum(num);
}
// 留样检测编号
for (SimpleRel rel : rels) {
String num = "";
for (Integer i = 0; i < rel.getReagentNum(); i++) {
num += s + a + ",";
a++;
// 留样的
for (SimpleRel currRel : currSimpleRels) {
String reagentNum = "";
for (Integer k = 0; k < currRel.getReagentNum(); k++) {
reagentNum += experieNum + num + ",";
num ++;
}
currRel.setReagentExperieNum(reagentNum);
}
rel.setReagentExperieNum(num);
}
// 4.修改
simpleRelService.updateBatchById(rels);
}

@ -197,12 +197,9 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
StringBuilder simpleName = new StringBuilder();
Integer simpleCount = 0;
List<Map<String, Object>> list = entrust.getSimpleNames();
int sum = 1;
for (Map<String, Object> map : list) {
Integer count = (Integer) map.get("simpleCount");
sum += count;
}
// 样品排序
int sort = 1;
for (Map<String, Object> map : list) {
// 样品名称
String name = (String) map.get("simpleName");
@ -224,17 +221,16 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
}
simpleRel.setSimpleName(name);
simpleRel.setReagentNum(1);
// simpleRel.setReagentExperieNum(s + sum);
// sum++;
simpleRel.setReagentExperieNum(s + ((a - 1) * 2 + i + 1 + count));
simpleRel.setExamineNum(1);
// simpleRel.setExamineExperieNum(s + (i + a));
simpleRel.setExamineExperieNum(s + ((a - 1) * 2 + i + 1));
simpleRel.setRecessiveNum((i + a) + "");
simpleRel.setOriginalNum((i + a) + "");
simpleRel.setStatus(0);
simpleRel.setSort(sort);
rels.add(simpleRel);
}
sort ++;
}
simpleRelService.saveBatch(rels);

Loading…
Cancel
Save