|
|
|
|
@ -809,74 +809,132 @@ public class ExamineResultServiceImpl extends BaseServiceImpl<ExamineResultMappe |
|
|
|
|
examineService.updateById(examine); |
|
|
|
|
// 兰所单板----------------------------------------------------------------------------------------------------
|
|
|
|
|
if ("1".equals(split[1])) { |
|
|
|
|
Map<String, List<ExamineExcel>> groupMap = new HashMap<>(); |
|
|
|
|
// 组数
|
|
|
|
|
int group = 0; |
|
|
|
|
// 除9是否有余数
|
|
|
|
|
int size = (originRowDatas.size() + 1) % 9; |
|
|
|
|
if (size == 0) { |
|
|
|
|
group = (originRowDatas.size() + 1) / 9; |
|
|
|
|
} else { |
|
|
|
|
group = (originRowDatas.size() + 1) / 9 + 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < group; i++) { |
|
|
|
|
List<ExamineExcel> excels = new ArrayList<>(); |
|
|
|
|
for (int j = i * 8 + i; j < (i + 1) * 8 + i; j++) { |
|
|
|
|
ExamineExcel excel = originRowDatas.get(j); |
|
|
|
|
excels.add(excel); |
|
|
|
|
} |
|
|
|
|
groupMap.put((i + 1) + "", excels); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
String simpleName1 = examine.getSimpleName().split("-")[0]; |
|
|
|
|
|
|
|
|
|
String[] experieNum = examine.getExperieNum().split(","); |
|
|
|
|
|
|
|
|
|
// 结果resultList
|
|
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>(); |
|
|
|
|
DecimalFormat df = new DecimalFormat("#0.000"); |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < group; i++) { |
|
|
|
|
List<ExamineExcel> excels = groupMap.get(i + 1 + ""); |
|
|
|
|
// 获取4个抗原对照值
|
|
|
|
|
List<Double> list = new ArrayList<>(); |
|
|
|
|
list.add(Double.parseDouble(originRowDatas.get(4).getCode12())); |
|
|
|
|
list.add(Double.parseDouble(originRowDatas.get(5).getCode12())); |
|
|
|
|
list.add(Double.parseDouble(originRowDatas.get(6).getCode12())); |
|
|
|
|
list.add(Double.parseDouble(originRowDatas.get(7).getCode12())); |
|
|
|
|
list.add(Double.parseDouble(excels.get(4).getCode12())); |
|
|
|
|
list.add(Double.parseDouble(excels.get(5).getCode12())); |
|
|
|
|
list.add(Double.parseDouble(excels.get(6).getCode12())); |
|
|
|
|
list.add(Double.parseDouble(excels.get(7).getCode12())); |
|
|
|
|
List<Double> list1 = list.stream().sorted().collect(Collectors.toList()); |
|
|
|
|
DecimalFormat df = new DecimalFormat("#0.000"); |
|
|
|
|
// 对照平均值
|
|
|
|
|
Double avg = Double.valueOf(df.format((list1.get(1) + list1.get(2)) / 4)); |
|
|
|
|
// 对照平均值(临界值)
|
|
|
|
|
Double avg = Double.parseDouble(df.format((list1.get(1) + list1.get(2)) / 4)); |
|
|
|
|
|
|
|
|
|
// 成立条件判断
|
|
|
|
|
if (avg > 1.0 / 512 || avg < 1.0 / 2048) { |
|
|
|
|
throw new ServiceException("阳性对照条件不成立,请修改后重新上传!"); |
|
|
|
|
} |
|
|
|
|
// Map<String, Object> map = new HashMap<>();
|
|
|
|
|
// map.put("num", "临界值");
|
|
|
|
|
// map.put("log2", avg);
|
|
|
|
|
// map.put("result", " ");
|
|
|
|
|
// resultList.add(map);
|
|
|
|
|
|
|
|
|
|
// 结果resultList
|
|
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>(); |
|
|
|
|
for (int r = 0; r < 8; r++) { |
|
|
|
|
if (r > 0) { |
|
|
|
|
// 第1列
|
|
|
|
|
resultList.add(assumb(r, 1, originRowDatas.get(r).getCode1(), originRowDatas.get(r - 1).getCode1(), avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 1, excels.get(r).getCode1(), excels.get(r - 1).getCode1(), avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第2列
|
|
|
|
|
resultList.add(assumb(r, 2, originRowDatas.get(r).getCode2(), originRowDatas.get(r - 1).getCode2(), avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 2, excels.get(r).getCode2(), excels.get(r - 1).getCode2(), avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第3列
|
|
|
|
|
resultList.add(assumb(r, 3, originRowDatas.get(r).getCode3(), originRowDatas.get(r - 1).getCode3(), avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 3, excels.get(r).getCode3(), excels.get(r - 1).getCode3(), avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第4列
|
|
|
|
|
resultList.add(assumb(r, 4, originRowDatas.get(r).getCode4(), originRowDatas.get(r - 1).getCode4(), avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 4, excels.get(r).getCode4(), excels.get(r - 1).getCode4(), avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第5列
|
|
|
|
|
resultList.add(assumb(r, 5, originRowDatas.get(r).getCode5(), originRowDatas.get(r - 1).getCode5(), avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 5, excels.get(r).getCode5(), excels.get(r - 1).getCode5(), avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第6列
|
|
|
|
|
resultList.add(assumb(r, 6, originRowDatas.get(r).getCode6(), originRowDatas.get(r - 1).getCode6(), avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 6, excels.get(r).getCode6(), excels.get(r - 1).getCode6(), avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第7列
|
|
|
|
|
resultList.add(assumb(r, 7, originRowDatas.get(r).getCode7(), originRowDatas.get(r - 1).getCode7(), avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 7, excels.get(r).getCode7(), excels.get(r - 1).getCode7(), avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第8列
|
|
|
|
|
resultList.add(assumb(r, 8, originRowDatas.get(r).getCode8(), originRowDatas.get(r - 1).getCode8(), avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 8, excels.get(r).getCode8(), excels.get(r - 1).getCode8(), avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第9列
|
|
|
|
|
resultList.add(assumb(r, 9, originRowDatas.get(r).getCode9(), originRowDatas.get(r - 1).getCode9(), avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 9, excels.get(r).getCode9(), excels.get(r - 1).getCode9(), avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第10列
|
|
|
|
|
resultList.add(assumb(r, 10, originRowDatas.get(r).getCode10(), originRowDatas.get(r - 1).getCode10(), avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 10, excels.get(r).getCode10(), excels.get(r - 1).getCode10(), avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第11列
|
|
|
|
|
resultList.add(assumb(r, 11, originRowDatas.get(r).getCode11(), originRowDatas.get(r - 1).getCode11(), avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 11, excels.get(r).getCode11(), excels.get(r - 1).getCode11(), avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第12列
|
|
|
|
|
resultList.add(assumb(r, 12, originRowDatas.get(r).getCode12(), originRowDatas.get(r - 1).getCode12(), avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 12, excels.get(r).getCode12(), excels.get(r - 1).getCode12(), avg, simpleName1, experieNum, i)); |
|
|
|
|
} else { |
|
|
|
|
// 第1列
|
|
|
|
|
resultList.add(assumb(r, 1, originRowDatas.get(r).getCode1(), null, avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 1, excels.get(r).getCode1(), null, avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第2列
|
|
|
|
|
resultList.add(assumb(r, 2, originRowDatas.get(r).getCode2(), null, avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 2, excels.get(r).getCode2(), null, avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第3列
|
|
|
|
|
resultList.add(assumb(r, 3, originRowDatas.get(r).getCode3(), null, avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 3, excels.get(r).getCode3(), null, avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第4列
|
|
|
|
|
resultList.add(assumb(r, 4, originRowDatas.get(r).getCode4(), null, avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 4, excels.get(r).getCode4(), null, avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第5列
|
|
|
|
|
resultList.add(assumb(r, 5, originRowDatas.get(r).getCode5(), null, avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 5, excels.get(r).getCode5(), null, avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第6列
|
|
|
|
|
resultList.add(assumb(r, 6, originRowDatas.get(r).getCode6(), null, avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 6, excels.get(r).getCode6(), null, avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第7列
|
|
|
|
|
resultList.add(assumb(r, 7, originRowDatas.get(r).getCode7(), null, avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 7, excels.get(r).getCode7(), null, avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第8列
|
|
|
|
|
resultList.add(assumb(r, 8, originRowDatas.get(r).getCode8(), null, avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 8, excels.get(r).getCode8(), null, avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第9列
|
|
|
|
|
resultList.add(assumb(r, 9, originRowDatas.get(r).getCode9(), null, avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 9, excels.get(r).getCode9(), null, avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第10列
|
|
|
|
|
resultList.add(assumb(r, 10, originRowDatas.get(r).getCode10(), null, avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 10, excels.get(r).getCode10(), null, avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第11列
|
|
|
|
|
resultList.add(assumb(r, 11, originRowDatas.get(r).getCode11(), null, avg, simpleName1, experieNum)); |
|
|
|
|
resultList.add(assumb(r, 11, excels.get(r).getCode11(), null, avg, simpleName1, experieNum, i)); |
|
|
|
|
// 第12列
|
|
|
|
|
resultList.add(assumb(r, 12, originRowDatas.get(r).getCode12(), null, avg, simpleName1, experieNum)); |
|
|
|
|
} |
|
|
|
|
resultList.add(assumb(r, 12, excels.get(r).getCode12(), null, avg, simpleName1, experieNum, i)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// // 阳性对照值
|
|
|
|
|
// Map<String, Object> yangMap = new HashMap<>();
|
|
|
|
|
// yangMap.put("num", "阳性对照");
|
|
|
|
|
// if (avg == 1.0 / 512) {
|
|
|
|
|
// yangMap.put("log2", "1:512");
|
|
|
|
|
// } else if (avg < 1.0 / 512 && avg > 1.0 / 1024) {
|
|
|
|
|
// yangMap.put("log2", "1:720");
|
|
|
|
|
// } else if (avg == 1.0 / 1024) {
|
|
|
|
|
// yangMap.put("log2", "1:1024");
|
|
|
|
|
// } else if (avg < 1.0 / 1024 && avg > 1.0 / 2048) {
|
|
|
|
|
// yangMap.put("log2", "1:1440");
|
|
|
|
|
// } else if (avg == 1.0 / 2048) {
|
|
|
|
|
// yangMap.put("log2", "1:2048");
|
|
|
|
|
// }
|
|
|
|
|
// yangMap.put("result", "成立");
|
|
|
|
|
// resultList.add(yangMap);
|
|
|
|
|
// // 阴性对照值
|
|
|
|
|
// Map<String, Object> yinMap = new HashMap<>();
|
|
|
|
|
// yinMap.put("num", "阴性对照");
|
|
|
|
|
// yinMap.put("log2", "<1:8");
|
|
|
|
|
// yinMap.put("result", "成立");
|
|
|
|
|
// resultList.add(yinMap);
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<Map<String, Object>> mapList = new ArrayList<>(); |
|
|
|
|
@ -5282,11 +5340,11 @@ public class ExamineResultServiceImpl extends BaseServiceImpl<ExamineResultMappe |
|
|
|
|
/** |
|
|
|
|
* 组装每一个实验数据及结果map |
|
|
|
|
*/ |
|
|
|
|
private Map<String, Object> assumb(int row, int col, String value, String lastValue, Double avg, String simpleName1, String[] experieNums) { |
|
|
|
|
private Map<String, Object> assumb(int row, int col, String value, String lastValue, Double avg, String simpleName1, String[] experieNums, int group) { |
|
|
|
|
// row:行: 0-7
|
|
|
|
|
// col:列: 1-12
|
|
|
|
|
// 计算排序
|
|
|
|
|
int order = (row + 1) + (col - 1) * 8; |
|
|
|
|
int order = (group * 96) + (row + 1) + (col - 1) * 8; |
|
|
|
|
// 如果是前十列
|
|
|
|
|
if (col < 11) { |
|
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(value)) { |
|
|
|
|
@ -5318,7 +5376,7 @@ public class ExamineResultServiceImpl extends BaseServiceImpl<ExamineResultMappe |
|
|
|
|
map.put("value", value); |
|
|
|
|
map.put("log2", log); |
|
|
|
|
map.put("result", result); |
|
|
|
|
map.put("num", experieNums[col - 1]); |
|
|
|
|
map.put("num", experieNums[(group * 10) + col - 1]); |
|
|
|
|
return map; |
|
|
|
|
} else { |
|
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
|
|