|
|
|
|
@ -2039,9 +2039,9 @@ public class ExamineResultController extends BladeController { |
|
|
|
|
for (int i = 0; i < group; i++) { |
|
|
|
|
List<Map<String, Map<String, Object>>> mapList = new ArrayList<>(); |
|
|
|
|
List<ExamineExcel> excels = map.get(i + 1 + ""); |
|
|
|
|
double code1 = Double.parseDouble(excels.get(0).getCode1()); |
|
|
|
|
double code2 = Double.parseDouble(excels.get(1).getCode1()); |
|
|
|
|
double v1 = (code1 + code2) / 2; |
|
|
|
|
// double code1 = Double.parseDouble(excels.get(0).getCode1());
|
|
|
|
|
// double code2 = Double.parseDouble(excels.get(1).getCode1());
|
|
|
|
|
// double v1 = (code1 + code2) / 2;
|
|
|
|
|
DecimalFormat df = new DecimalFormat("#0.000"); |
|
|
|
|
for (int j = 0; j < excels.size(); j++) { |
|
|
|
|
// 行标头:前端渲染需要A、B、C....
|
|
|
|
|
@ -2052,61 +2052,115 @@ public class ExamineResultController extends BladeController { |
|
|
|
|
|
|
|
|
|
Map<String, Map<String, Object>> map2 = new HashMap<>(); |
|
|
|
|
|
|
|
|
|
String PI = "0.00"; |
|
|
|
|
// 一行有四组数据,一组数据对应一个样品,一个样品做三次实验,有三个结果(牛型PPD,禽型PPD,PBS抗原)
|
|
|
|
|
for (int n = 1; n <= filedsLength; n++) { |
|
|
|
|
int num; |
|
|
|
|
String code; |
|
|
|
|
String code1; |
|
|
|
|
String code2; |
|
|
|
|
String code3; |
|
|
|
|
switch (n) { |
|
|
|
|
case 1: |
|
|
|
|
code1 = examineExcel.getCode1(); |
|
|
|
|
code2 = examineExcel.getCode2(); |
|
|
|
|
code3 = examineExcel.getCode3(); |
|
|
|
|
code = examineExcel.getCode1(); |
|
|
|
|
num = 0; |
|
|
|
|
break; |
|
|
|
|
case 2: |
|
|
|
|
code1 = examineExcel.getCode1(); |
|
|
|
|
code2 = examineExcel.getCode2(); |
|
|
|
|
code3 = examineExcel.getCode3(); |
|
|
|
|
code = examineExcel.getCode2(); |
|
|
|
|
num = 0; |
|
|
|
|
break; |
|
|
|
|
case 3: |
|
|
|
|
code1 = examineExcel.getCode1(); |
|
|
|
|
code2 = examineExcel.getCode2(); |
|
|
|
|
code3 = examineExcel.getCode3(); |
|
|
|
|
code = examineExcel.getCode3(); |
|
|
|
|
num = 0; |
|
|
|
|
break; |
|
|
|
|
case 4: |
|
|
|
|
code1 = examineExcel.getCode4(); |
|
|
|
|
code2 = examineExcel.getCode5(); |
|
|
|
|
code3 = examineExcel.getCode6(); |
|
|
|
|
code = examineExcel.getCode4(); |
|
|
|
|
num = 1; |
|
|
|
|
break; |
|
|
|
|
case 5: |
|
|
|
|
code1 = examineExcel.getCode4(); |
|
|
|
|
code2 = examineExcel.getCode5(); |
|
|
|
|
code3 = examineExcel.getCode6(); |
|
|
|
|
code = examineExcel.getCode5(); |
|
|
|
|
num = 1; |
|
|
|
|
break; |
|
|
|
|
case 6: |
|
|
|
|
code1 = examineExcel.getCode4(); |
|
|
|
|
code2 = examineExcel.getCode5(); |
|
|
|
|
code3 = examineExcel.getCode6(); |
|
|
|
|
code = examineExcel.getCode6(); |
|
|
|
|
num = 1; |
|
|
|
|
break; |
|
|
|
|
case 7: |
|
|
|
|
code1 = examineExcel.getCode7(); |
|
|
|
|
code2 = examineExcel.getCode8(); |
|
|
|
|
code3 = examineExcel.getCode9(); |
|
|
|
|
code = examineExcel.getCode7(); |
|
|
|
|
num = 2; |
|
|
|
|
break; |
|
|
|
|
case 8: |
|
|
|
|
code1 = examineExcel.getCode7(); |
|
|
|
|
code2 = examineExcel.getCode8(); |
|
|
|
|
code3 = examineExcel.getCode9(); |
|
|
|
|
code = examineExcel.getCode8(); |
|
|
|
|
num = 2; |
|
|
|
|
break; |
|
|
|
|
case 9: |
|
|
|
|
code1 = examineExcel.getCode7(); |
|
|
|
|
code2 = examineExcel.getCode8(); |
|
|
|
|
code3 = examineExcel.getCode9(); |
|
|
|
|
code = examineExcel.getCode9(); |
|
|
|
|
num = 2; |
|
|
|
|
break; |
|
|
|
|
case 10: |
|
|
|
|
code1 = examineExcel.getCode10(); |
|
|
|
|
code2 = examineExcel.getCode11(); |
|
|
|
|
code3 = examineExcel.getCode12(); |
|
|
|
|
code = examineExcel.getCode10(); |
|
|
|
|
num = 3; |
|
|
|
|
break; |
|
|
|
|
case 11: |
|
|
|
|
code1 = examineExcel.getCode10(); |
|
|
|
|
code2 = examineExcel.getCode11(); |
|
|
|
|
code3 = examineExcel.getCode12(); |
|
|
|
|
code = examineExcel.getCode11(); |
|
|
|
|
num = 3; |
|
|
|
|
break; |
|
|
|
|
case 12: |
|
|
|
|
code1 = examineExcel.getCode10(); |
|
|
|
|
code2 = examineExcel.getCode11(); |
|
|
|
|
code3 = examineExcel.getCode12(); |
|
|
|
|
code = examineExcel.getCode12(); |
|
|
|
|
num = 3; |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
code1 = "0"; |
|
|
|
|
code2 = "0"; |
|
|
|
|
code3 = "0"; |
|
|
|
|
code = "0"; |
|
|
|
|
num = 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Map<String, Object> mapResult = new HashMap<>(); |
|
|
|
|
int index = (n - 1) * 8 + j + 1; //n是列,j是行 ,我们定义index是一列列的定义
|
|
|
|
|
if (StringUtil.isNoneBlank(code)) { |
|
|
|
|
if (j > 5 || n > 1) { |
|
|
|
|
if (v1 != 0) { |
|
|
|
|
PI = df.format((v1 - Double.parseDouble(code)) / v1); |
|
|
|
|
} |
|
|
|
|
if (StringUtil.isNoneBlank(code1) && StringUtil.isNoneBlank(code2) && StringUtil.isNoneBlank(code3)) { |
|
|
|
|
if (j > 1 || n > 3) { |
|
|
|
|
mapResult.put("originResult", code); |
|
|
|
|
mapResult.put("value", df.format(Double.parseDouble(PI) * 100) + "%"); |
|
|
|
|
mapResult.put("num", "1"); |
|
|
|
|
if (Double.parseDouble(PI) >= 0.5) { |
|
|
|
|
mapResult.put("value", code); |
|
|
|
|
int indexNum = (i * 32) + (num * 8 + j) - ((i + 1) * 2); |
|
|
|
|
mapResult.put("num", split[indexNum]); |
|
|
|
|
if (Double.parseDouble(code1) - Double.parseDouble(code3) >= 0.2 && Double.parseDouble(code1) - Double.parseDouble(code2) >= 0.2) { |
|
|
|
|
mapResult.put("result", "阳性"); |
|
|
|
|
} else { |
|
|
|
|
mapResult.put("result", "阴性"); |
|
|
|
|
@ -2133,7 +2187,6 @@ public class ExamineResultController extends BladeController { |
|
|
|
|
throw new Exception("该试剂未维护公式计算,请联系相关开发人员!"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// for (int i = 0; i < group; i++) {
|
|
|
|
|
// List<Map<String, Map<String, Object>>> mapList = new ArrayList<>();
|
|
|
|
|
// List<ExamineExcel> excels = map.get(i + 1 + "");
|
|
|
|
|
@ -2511,32 +2564,34 @@ public class ExamineResultController extends BladeController { |
|
|
|
|
// }
|
|
|
|
|
// map1.put("g" + (i + 1), mapList);
|
|
|
|
|
// }
|
|
|
|
|
// 不是该试剂的才去赋值检测编号
|
|
|
|
|
if (!"1570297053211455490".equals(reagentId)) { |
|
|
|
|
Collections.sort(list, new Comparator<Map<String, Object>>() { |
|
|
|
|
@Override |
|
|
|
|
public int compare(Map<String, Object> o1, Map<String, Object> o2) { |
|
|
|
|
Integer id1 = (Integer) o1.get("order"); |
|
|
|
|
Integer id2 = (Integer) o2.get("order"); |
|
|
|
|
// 升序
|
|
|
|
|
return id1.compareTo(id2); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
Collections.sort(list, new Comparator<Map<String, Object>>() { |
|
|
|
|
@Override |
|
|
|
|
public int compare(Map<String, Object> o1, Map<String, Object> o2) { |
|
|
|
|
Integer id1 = (Integer) o1.get("order"); |
|
|
|
|
Integer id2 = (Integer) o2.get("order"); |
|
|
|
|
// 升序
|
|
|
|
|
return id1.compareTo(id2); |
|
|
|
|
int numIndex = 0; |
|
|
|
|
for (Map<String, Object> stringObjectMap : list) { |
|
|
|
|
String num = (String) stringObjectMap.get("num"); |
|
|
|
|
if (num != null && !"".equals(num)) { |
|
|
|
|
num = split[numIndex]; |
|
|
|
|
stringObjectMap.put("num", num); |
|
|
|
|
numIndex++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
int numIndex = 0; |
|
|
|
|
for (Map<String, Object> stringObjectMap : list) { |
|
|
|
|
String num = (String) stringObjectMap.get("num"); |
|
|
|
|
if (num != null && !"".equals(num)) { |
|
|
|
|
num = split[numIndex]; |
|
|
|
|
stringObjectMap.put("num", num); |
|
|
|
|
numIndex++; |
|
|
|
|
// System.out.println("split.length: " + split.length);
|
|
|
|
|
// System.out.println("numIndex: " + numIndex);
|
|
|
|
|
// 判断分配样品数量与检测样品数量是否一致
|
|
|
|
|
if (split.length != numIndex) { |
|
|
|
|
throw new Exception("分配样品数量与检测样品数量不一致!"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
System.out.println("split.length: " + split.length); |
|
|
|
|
System.out.println("numIndex: " + numIndex); |
|
|
|
|
// 判断分配样品数量与检测样品数量是否一致
|
|
|
|
|
if (split.length != numIndex) { |
|
|
|
|
throw new Exception("分配样品数量与检测样品数量不一致!"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
LambdaQueryWrapper<ExamineResult> wrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
wrapper.eq(ExamineResult::getExamineId, examineId); |
|
|
|
|
|