diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Examine.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Examine.java index ae9f8a9..c4d9500 100644 --- a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Examine.java +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Examine.java @@ -231,4 +231,7 @@ public class Examine extends BaseEntity implements Serializable { //驳回原因 private String rejectReason; + + @TableField(exist = false) + private String instrumentId; } \ No newline at end of file diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineWay.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineWay.java index b96de3c..d3bbea6 100644 --- a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineWay.java +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineWay.java @@ -32,7 +32,7 @@ public class ExamineWay extends BaseEntity implements Serializable { private String operation; - private Long instrumentId; + private String instrumentId; /** * diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineController.java index c791533..8a53328 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineController.java @@ -153,6 +153,7 @@ public class ExamineController extends BladeController { examine.setContent(examineBasis.getContent()); //检验依据名称 examine.setExamineBasisName(examineBasis.getName()); + examine.setInstrumentId(examineWay.getInstrumentId()); } } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineItemController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineItemController.java index 48ca65b..83d8b9d 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineItemController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineItemController.java @@ -174,7 +174,7 @@ public class ExamineItemController extends BladeController { * 根据项目id获取对应试剂 */ @GetMapping("/getReagent") - public R> getReagent(String id, String name) throws Exception { + public R> getReagent(String id, String name, String reagentId) throws Exception { List reagentList = new ArrayList<>(); // 如果name不为空,用name模糊查询 if (StringUtils.isNotBlank(name)) { @@ -226,6 +226,13 @@ public class ExamineItemController extends BladeController { } reagentList.addAll(reagents); } + if (StringUtils.isNotEmpty(reagentId)) { + String[] split = reagentId.split(","); + for (String s : split) { + Reagent reagent = reagentService.getById(s); + reagentList.add(reagent); + } + } // String reagentId = examineItem.getReagentId(); // String[] split = reagentId.split(","); // for (String s : split) { diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineResultController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineResultController.java index de44e4f..ad5f939 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineResultController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineResultController.java @@ -789,7 +789,7 @@ public class ExamineResultController extends BladeController { map1.put("g" + (i + 1), mapList); } } - // 非洲猪瘟病毒cELISA抗体检测试剂盒 + // 非洲猪瘟病毒cELISA抗体检测试剂盒---百沃特(天津)生物技术有限公司 else if ("1580815808211578882".equals(reagentId)) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); @@ -883,6 +883,105 @@ public class ExamineResultController extends BladeController { map1.put("g" + (i + 1), mapList); } } + // 非洲猪瘟病毒cELISA抗体检测试剂盒---北京金诺百泰生物技术有限公司 + else if ("1570667398619656194".equals(reagentId)) { + for (int i = 0; i < group; i++) { + List>> mapList = new ArrayList<>(); + List excels = map.get(i + 1 + ""); + double code1 = Double.parseDouble(excels.get(0).getCode1()); + double code2 = Double.parseDouble(excels.get(1).getCode1()); + double code3 = Double.parseDouble(excels.get(2).getCode1()); + double code4 = Double.parseDouble(excels.get(3).getCode1()); + double v1 = (code1 + code2) / 2; + double v2 = (code3 + code4) / 2; + DecimalFormat df = new DecimalFormat("#0.000"); + for (int j = 0; j < excels.size(); j++) { + // 行标头:前端渲染需要A、B、C.... + String a = String.valueOf((char) (j + 65)); + + ExamineExcel examineExcel = excels.get(j);//取到一行记录 + int filedsLength = examineExcel.getClass().getDeclaredFields().length - 1; + + Map> map2 = new HashMap<>(); + + String SN = "0.00"; + for (int n = 1; n <= filedsLength; n++) { + String code; + switch (n) { + case 1: + code = examineExcel.getCode1(); + break; + case 2: + code = examineExcel.getCode2(); + break; + case 3: + code = examineExcel.getCode3(); + break; + case 4: + code = examineExcel.getCode4(); + break; + case 5: + code = examineExcel.getCode5(); + break; + case 6: + code = examineExcel.getCode6(); + break; + case 7: + code = examineExcel.getCode7(); + break; + case 8: + code = examineExcel.getCode8(); + break; + case 9: + code = examineExcel.getCode9(); + break; + case 10: + code = examineExcel.getCode10(); + break; + case 11: + code = examineExcel.getCode11(); + break; + case 12: + code = examineExcel.getCode12(); + break; + default: + code = "0"; + } + + Map 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) { + SN = df.format((Double.parseDouble(code) - v2) / (v1 - v2)); + } + mapResult.put("originResult", code); + mapResult.put("value", SN); + mapResult.put("num", "1"); + if (Double.parseDouble(SN) >= 0.5) { + mapResult.put("result", "阴性"); + } else if (Double.parseDouble(SN) <= 0.4) { + mapResult.put("result", "阳性"); + } else { + mapResult.put("result", "可疑"); + } + } else { + mapResult.put("originResult", code); + mapResult.put("num", ""); + } + } else { + mapResult.put("originResult", ""); + mapResult.put("num", ""); + } + mapResult.put("order", index + i * 96); + map2.put(a + n, mapResult); + list.add(mapResult); + } + mapList.add(map2); + } + map1.put("g" + (i + 1), mapList); + } + } // 非洲猪瘟病毒ELISA抗体检测试剂盒(北京金诺百泰生物技术有限公司) else if ("1570667729797705730".equals(reagentId)) { for (int i = 0; i < group; i++) { @@ -1269,7 +1368,7 @@ public class ExamineResultController extends BladeController { } } // 猪瘟病毒间接ELISA抗体检测试剂盒---北京明日达科技发展有限责任公司 - else if ("1".equals(reagentId)) { + else if ("1570671477110534145".equals(reagentId)) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); List excels = map.get(i + 1 + ""); @@ -1368,7 +1467,7 @@ public class ExamineResultController extends BladeController { } } // 猪繁殖与呼吸综合征病毒ELISA抗体检测试剂盒---武汉科前生物股份有限公司 - else if ("2".equals(reagentId)) { + else if ("1570295395605737473".equals(reagentId)) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); List excels = map.get(i + 1 + ""); @@ -1465,7 +1564,7 @@ public class ExamineResultController extends BladeController { } } // 猪伪狂犬病病毒ELISA抗体检测试剂盒---武汉科前生物股份有限公司 - else if ("3".equals(reagentId)) { + else if ("1570295846749270017".equals(reagentId)) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); List excels = map.get(i + 1 + ""); @@ -1561,7 +1660,7 @@ public class ExamineResultController extends BladeController { } } // 牛布鲁氏菌间接ELISA抗体检测试剂盒---浙江迪恩生物科技股份有限公司 - else if ("4".equals(reagentId)) { + else if ("1570297916894146562".equals(reagentId)) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); List excels = map.get(i + 1 + ""); @@ -1654,8 +1753,8 @@ public class ExamineResultController extends BladeController { map1.put("g" + (i + 1), mapList); } } - // 牛布鲁氏菌竞争ELISA抗体检测试剂盒---洛阳莱普生信息科技有限公司 - else if ("5".equals(reagentId)) { + // 牛布鲁氏菌竞争ELISA抗体检测试剂盒(牛)---洛阳莱普生信息科技有限公司 + else if ("1570664922961080322".equals(reagentId)) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); List excels = map.get(i + 1 + ""); @@ -1748,8 +1847,102 @@ public class ExamineResultController extends BladeController { map1.put("g" + (i + 1), mapList); } } + // 牛布鲁氏菌竞争ELISA抗体检测试剂盒(羊)---洛阳莱普生信息科技有限公司 + else if ("1570666622551781378".equals(reagentId)) { + for (int i = 0; i < group; i++) { + List>> mapList = new ArrayList<>(); + List 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; + DecimalFormat df = new DecimalFormat("#0.000"); + for (int j = 0; j < excels.size(); j++) { + // 行标头:前端渲染需要A、B、C.... + String a = String.valueOf((char) (j + 65)); + + ExamineExcel examineExcel = excels.get(j);//取到一行记录 + int filedsLength = examineExcel.getClass().getDeclaredFields().length - 1; + + Map> map2 = new HashMap<>(); + + String SN = "0.00"; + for (int n = 1; n <= filedsLength; n++) { + String code; + switch (n) { + case 1: + code = examineExcel.getCode1(); + break; + case 2: + code = examineExcel.getCode2(); + break; + case 3: + code = examineExcel.getCode3(); + break; + case 4: + code = examineExcel.getCode4(); + break; + case 5: + code = examineExcel.getCode5(); + break; + case 6: + code = examineExcel.getCode6(); + break; + case 7: + code = examineExcel.getCode7(); + break; + case 8: + code = examineExcel.getCode8(); + break; + case 9: + code = examineExcel.getCode9(); + break; + case 10: + code = examineExcel.getCode10(); + break; + case 11: + code = examineExcel.getCode11(); + break; + case 12: + code = examineExcel.getCode12(); + break; + default: + code = "0"; + } + + Map 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) { + SN = df.format(Double.parseDouble(code) / v1); + } + mapResult.put("originResult", code); + mapResult.put("value", Double.parseDouble(SN)); + mapResult.put("num", "1"); + if (Double.parseDouble(SN) < 0.3) { + mapResult.put("result", "阳性"); + } else { + mapResult.put("result", "阴性"); + } + } else { + mapResult.put("originResult", code); + mapResult.put("num", ""); + } + } else { + mapResult.put("originResult", ""); + mapResult.put("num", ""); + } + mapResult.put("order", index + i * 96); + map2.put(a + n, mapResult); + list.add(mapResult); + } + mapList.add(map2); + } + map1.put("g" + (i + 1), mapList); + } + } // 口蹄疫病毒非结构蛋白3ABC阻断ELISA抗体检测试剂盒---兰州兽研生物科技有限公司 - else if ("6".equals(reagentId)) { + else if ("1533624738296389636".equals(reagentId)) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); List excels = map.get(i + 1 + ""); @@ -1842,6 +2035,104 @@ public class ExamineResultController extends BladeController { map1.put("g" + (i + 1), mapList); } } + // 牛结核病γ-干扰素ELISA检测试剂盒---武汉科前生物股份有限公司 + else if ("1570297053211455490".equals(reagentId)) { + for (int i = 0; i < group; i++) { + List>> mapList = new ArrayList<>(); + List 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; + DecimalFormat df = new DecimalFormat("#0.000"); + for (int j = 0; j < excels.size(); j++) { + // 行标头:前端渲染需要A、B、C.... + String a = String.valueOf((char) (j + 65)); + + ExamineExcel examineExcel = excels.get(j);//取到一行记录 + int filedsLength = examineExcel.getClass().getDeclaredFields().length - 1; + + Map> map2 = new HashMap<>(); + + String PI = "0.00"; + for (int n = 1; n <= filedsLength; n++) { + String code; + switch (n) { + case 1: + code = examineExcel.getCode1(); + break; + case 2: + code = examineExcel.getCode2(); + break; + case 3: + code = examineExcel.getCode3(); + break; + case 4: + code = examineExcel.getCode4(); + break; + case 5: + code = examineExcel.getCode5(); + break; + case 6: + code = examineExcel.getCode6(); + break; + case 7: + code = examineExcel.getCode7(); + break; + case 8: + code = examineExcel.getCode8(); + break; + case 9: + code = examineExcel.getCode9(); + break; + case 10: + code = examineExcel.getCode10(); + break; + case 11: + code = examineExcel.getCode11(); + break; + case 12: + code = examineExcel.getCode12(); + break; + default: + code = "0"; + } + + Map 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); + } + 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("result", "阳性"); + } else { + mapResult.put("result", "阴性"); + } + } else { + mapResult.put("originResult", code); + mapResult.put("num", ""); + } + } else { + mapResult.put("originResult", ""); + mapResult.put("num", ""); + } + mapResult.put("order", index + i * 96); + map2.put(a + n, mapResult); + list.add(mapResult); + } + mapList.add(map2); + } + map1.put("g" + (i + 1), mapList); + } + } + // 无该试剂公式提示 + else { + throw new Exception("该试剂未维护公式计算,请联系相关开发人员!"); + } // for (int i = 0; i < group; i++) { diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java index c7c508d..9a1e409 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java @@ -14,10 +14,7 @@ import org.springblade.common.utils.ZipCompressUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.StringUtil; import org.springblade.lims.entry.*; -import org.springblade.lims.excel.ExamineTemplate2Excel; -import org.springblade.lims.excel.PCR2Excel; -import org.springblade.lims.excel.PCRExcel; -import org.springblade.lims.excel.XN2Excel; +import org.springblade.lims.excel.*; import org.springblade.lims.mapper.EntrustMapper; import org.springblade.lims.service.*; import org.springblade.core.mp.base.BaseServiceImpl; @@ -1157,6 +1154,7 @@ public class EntrustServiceImpl extends BaseServiceImpl Map result = new HashMap<>(); List> resultList1 = new ArrayList<>(); List> resultList2 = new ArrayList<>(); + List> resultList3 = new ArrayList<>(); String url = ""; // 检测数据 Examine examine = examineService.getById(examineId); @@ -2599,16 +2597,25 @@ public class EntrustServiceImpl extends BaseServiceImpl else { // 根据试剂给不同检测数值命名 if ("1580730163250188290".equals(examineResult.getReagentId()) + || "1570297916894146562".equals(examineResult.getReagentId()) || "1570667729797705730".equals(examineResult.getReagentId()) - || "1582988982068027393".equals(examineResult.getReagentId())){ + || "1570671477110534145".equals(examineResult.getReagentId()) + || "1582988982068027393".equals(examineResult.getReagentId())) { result.put("18", "S/P"); } else if ("1580815808211578882".equals(examineResult.getReagentId())) { result.put("18", "PI"); } else if ("1570666183341043714".equals(examineResult.getReagentId())) { result.put("18", "PB"); - } else if ("1570283733628678145".equals(examineResult.getReagentId())) { + } else if ("1570283733628678145".equals(examineResult.getReagentId()) + || "1533624738296389636".equals(examineResult.getReagentId())) { result.put("18", "阻断率"); - } else if ("1570296117147660290".equals(examineResult.getReagentId())) { + } else if ("1570295395605737473".equals(examineResult.getReagentId())) { + result.put("18", "KQ"); + } else if ("1570296117147660290".equals(examineResult.getReagentId()) + || "1570295846749270017".equals(examineResult.getReagentId()) + || "1570664922961080322".equals(examineResult.getReagentId()) + || "1570666622551781378".equals(examineResult.getReagentId()) + || "1570667398619656194".equals(examineResult.getReagentId())) { result.put("18", "S/N"); } else { result.put("18", "样品OD"); @@ -2616,22 +2623,22 @@ public class EntrustServiceImpl extends BaseServiceImpl if (list.size() % 96 == 0) { for (int i = 0; i < list.size() / 96; i++) { - double a1 = Double.parseDouble(list.get(i * 96).getOriginResult()); - double b1 = Double.parseDouble(list.get((i * 96) + 1).getOriginResult()); - String format = df.format((a1 + b1) / 2); - ExamineDataArrVO arrVO = new ExamineDataArrVO(); - arrVO.setNum("阴性对照平均OD值"); - arrVO.setValue(format); - arrVO.setResult(" "); - list1.add(arrVO); - double a2 = Double.parseDouble(list.get((i * 96) + 2).getOriginResult()); - double b2 = Double.parseDouble(list.get((i * 96) + 3).getOriginResult()); - String format1 = df.format((a2 + b2) / 2); - ExamineDataArrVO arrVO1 = new ExamineDataArrVO(); - arrVO1.setNum("阳性对照平均OD值"); - arrVO1.setValue(format1); - arrVO1.setResult(" "); - list1.add(arrVO1); +// double a1 = Double.parseDouble(list.get(i * 96).getOriginResult()); +// double b1 = Double.parseDouble(list.get((i * 96) + 1).getOriginResult()); +// String format = df.format((a1 + b1) / 2); +// ExamineDataArrVO arrVO = new ExamineDataArrVO(); +// arrVO.setNum("阴性对照平均OD值"); +// arrVO.setValue(format); +// arrVO.setResult(" "); +// list1.add(arrVO); +// double a2 = Double.parseDouble(list.get((i * 96) + 2).getOriginResult()); +// double b2 = Double.parseDouble(list.get((i * 96) + 3).getOriginResult()); +// String format1 = df.format((a2 + b2) / 2); +// ExamineDataArrVO arrVO1 = new ExamineDataArrVO(); +// arrVO1.setNum("阳性对照平均OD值"); +// arrVO1.setValue(format1); +// arrVO1.setResult(" "); +// list1.add(arrVO1); for (int j = 0; j < 96; j++) { ExamineDataArrVO vo = list.get((i * 96) + j); @@ -2642,22 +2649,22 @@ public class EntrustServiceImpl extends BaseServiceImpl } } else { for (int i = 0; i < list.size() / 96 + 1; i++) { - double a1 = Double.parseDouble(list.get(i * 96).getOriginResult()); - double b1 = Double.parseDouble(list.get((i * 96) + 1).getOriginResult()); - String format = df.format((a1 + b1) / 2); - ExamineDataArrVO arrVO = new ExamineDataArrVO(); - arrVO.setNum("阴性对照平均OD值"); - arrVO.setValue(format); - arrVO.setResult(" "); - list1.add(arrVO); - double a2 = Double.parseDouble(list.get((i * 96) + 2).getOriginResult()); - double b2 = Double.parseDouble(list.get((i * 96) + 3).getOriginResult()); - String format1 = df.format((a2 + b2) / 2); - ExamineDataArrVO arrVO1 = new ExamineDataArrVO(); - arrVO1.setNum("阳性对照平均OD值"); - arrVO1.setValue(format1); - arrVO1.setResult(" "); - list1.add(arrVO1); +// double a1 = Double.parseDouble(list.get(i * 96).getOriginResult()); +// double b1 = Double.parseDouble(list.get((i * 96) + 1).getOriginResult()); +// String format = df.format((a1 + b1) / 2); +// ExamineDataArrVO arrVO = new ExamineDataArrVO(); +// arrVO.setNum("阴性对照平均OD值"); +// arrVO.setValue(format); +// arrVO.setResult(" "); +// list1.add(arrVO); +// double a2 = Double.parseDouble(list.get((i * 96) + 2).getOriginResult()); +// double b2 = Double.parseDouble(list.get((i * 96) + 3).getOriginResult()); +// String format1 = df.format((a2 + b2) / 2); +// ExamineDataArrVO arrVO1 = new ExamineDataArrVO(); +// arrVO1.setNum("阳性对照平均OD值"); +// arrVO1.setValue(format1); +// arrVO1.setResult(" "); +// list1.add(arrVO1); for (int j = 0; j < 96; j++) { if ((i * 96) + j > list.size() - 1) { @@ -2783,6 +2790,9 @@ public class EntrustServiceImpl extends BaseServiceImpl } } } + + // 原始记录成立条件内容 + resultList3 = getCondition(list, i, df, s, startNum, endNum, examineResult.getReagentId(), resultList3); for (int j = 0; j < 10; j++) { int x = 0; Map map = new HashMap<>(); @@ -2926,6 +2936,9 @@ public class EntrustServiceImpl extends BaseServiceImpl } } } + + // 原始记录成立条件内容 + resultList3 = getCondition(list, i, df, s, startNum, endNum, examineResult.getReagentId(), resultList3); for (int j = 0; j < 10; j++) { int x = 0; Map map = new HashMap<>(); @@ -3015,6 +3028,7 @@ public class EntrustServiceImpl extends BaseServiceImpl } } result.put("list2", resultList2); + result.put("list3", resultList3); url = DictBizCache.getKey(DictBizEnum.PRINT_URL.getName(), "reportPrint"); } } @@ -3079,6 +3093,197 @@ public class EntrustServiceImpl extends BaseServiceImpl } } + /** + * 获取成立条件 + * @param list + * @param i + * @param df + * @param s + * @param startNum + * @param endNum + * @param reagentId + * @param resultList3 + */ + private List> getCondition(List list, int i, DecimalFormat df, String s, String startNum, String endNum, String reagentId, List> resultList3) { + // 阴性对照OD值 + double a1 = Double.parseDouble(list.get(i * 96).getOriginResult()); + double a2 = Double.parseDouble(list.get((i * 96) + 1).getOriginResult()); + // 阳性对照OD值 + double b1 = Double.parseDouble(list.get((i * 96) + 2).getOriginResult()); + double b2 = Double.parseDouble(list.get((i * 96) + 3).getOriginResult()); + double c1 = 0.00; + double c2 = 0.00; + + if (StringUtils.isNotBlank(list.get((i * 96) + 4).getOriginResult())) { + c1 = Double.parseDouble(list.get((i * 96) + 4).getOriginResult()); + } + if (StringUtils.isNotBlank(list.get((i * 96) + 5).getOriginResult())) { + c2 = Double.parseDouble(list.get((i * 96) + 5).getOriginResult()); + } + + // 阴性对照平均OD值 + String format = df.format((a1 + a2) / 2); + // 阳性对照平均OD值 + String format1 = df.format((b1 + b2) / 2); + + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + Map map3 = new HashMap<>(); + + map1.put("1", s + "(" + startNum + "-" + endNum + ")"); + map2.put("1", s + "(" + startNum + "-" + endNum + ")"); + + // 猪繁殖与呼吸综合征病毒抗体ELISA检测试剂盒---山东百邦世纪科技有限公司 + if ("1580030700969861121".equals(reagentId)) { + map1.put("2", "阴性对照OD平均值"); + map1.put("3", format); + map2.put("2", "阳性对照OD平均值"); + map2.put("3", format1); + } + // 伪狂犬病毒gE蛋白lgG抗体ELISA检测试剂盒---山东百邦世纪科技有限公司 + else if ("1580733683995009026".equals(reagentId)) { + map1.put("2", "阴性对照A值"); + map1.put("3", a1); + map1.put("4", a2); + map2.put("2", "阳性对照A值"); + map2.put("3", b1); + map2.put("4", b2); + } + // 非洲猪瘟病毒ELISA抗体检测试剂盒(哈尔滨维科生物技术有限公司) + else if ("1580730163250188290".equals(reagentId)) { + map1.put("2", "阴性对照OD平均值"); + map1.put("3", format); + map2.put("2", "阳性对照OD平均值"); + map2.put("3", format1); + } + // 小反刍兽疫病毒阻断ELISA抗体检测试剂盒---青岛立见生物科技有限公司 + else if ("1570666183341043714".equals(reagentId)) { + map1.put("2", "阴性对照血清阻断率"); + map1.put("3", df.format((100 - (Double.parseDouble(format) / ((c1 + c2) / 2))) * 100)); + map2.put("2", "阳性对照血清阻断率"); + map2.put("3", df.format((100 - (Double.parseDouble(format1) / ((c1 + c2) / 2))) * 100)); + } + // 非洲猪瘟病毒cELISA抗体检测试剂盒---百沃特(天津)生物技术有限公司 + else if ("1580815808211578882".equals(reagentId)) { + map1.put("2", "阴性对照OD值"); + map1.put("3", a1); + map1.put("4", a2); + map2.put("2", "阳性对照PI值"); + map2.put("3", df.format((Double.parseDouble(format) - b1) / Double.parseDouble(format))); + map2.put("4", df.format((Double.parseDouble(format) - b2) / Double.parseDouble(format))); + } + // 非洲猪瘟病毒cELISA抗体检测试剂盒---北京金诺百泰生物技术有限公司 + else if ("1570667398619656194".equals(reagentId)) { + map1.put("2", "阴性对照平均OD值"); + map1.put("3", format); + map2.put("2", "阳性对照P/N平均值"); + map2.put("3", df.format(Double.parseDouble(format1) / Double.parseDouble(format))); + } + // 非洲猪瘟病毒ELISA抗体检测试剂盒(北京金诺百泰生物技术有限公司) + else if ("1570667729797705730".equals(reagentId)) { + map1.put("2", "阴性对照OD平均值"); + map1.put("3", format); + map2.put("2", "阳性对照OD平均值"); + map2.put("3", format1); + } + // 猪繁殖与呼吸综合征病毒间接ELISA抗体检测试剂盒---深圳市易瑞生物技术股份有限公司 + else if ("1582988982068027393".equals(reagentId)) { + map1.put("2", "阴性对照OD值"); + map1.put("3", a1); + map1.put("4", a2); + map2.put("2", "阳性对照OD值"); + map2.put("3", b1); + map2.put("4", b2); + } + // 猪瘟病毒阻断ELISA抗体检测试剂盒(武汉科前生物股份有限公司) + else if ("1570283733628678145".equals(reagentId)) { + map1.put("2", "阴性对照OD平均值"); + map1.put("3", format); + map2.put("2", "阳性对照OD值阻断率"); + map2.put("3", df.format((1 - (b1 / Double.parseDouble(format))) * 100) + "%"); + map2.put("4", df.format((1 - (b2 / Double.parseDouble(format))) * 100) + "%"); + } + // 猪伪狂犬病病毒gE蛋白ELISA抗体检测试剂盒(武汉科前生物股份有限公司) + else if ("1570296117147660290".equals(reagentId)) { + map1.put("2", "阳性对照OD值"); + map1.put("3", b1); + map1.put("4", b2); + map2.put("2", "阴性对照OD平均值与阳性对照OD平均值之差"); + map2.put("3", Math.abs(Double.parseDouble(format) - Double.parseDouble(format1))); + } + // 猪瘟病毒间接ELISA抗体检测试剂盒---北京明日达科技发展有限责任公司 + else if ("1570671477110534145".equals(reagentId)) { + map1.put("2", "阴性对照OD值"); + map1.put("3", a1); + map1.put("4", a2); + map2.put("2", "阳性对照OD值"); + map2.put("3", b1); + map2.put("4", b2); + } + // 猪繁殖与呼吸综合征病毒ELISA抗体检测试剂盒---武汉科前生物股份有限公司 + else if ("1570295395605737473".equals(reagentId)) { + map1.put("2", "阴性对照OD值"); + map1.put("3", a1); + map1.put("4", a2); + map2.put("2", "阳性对照OD值"); + map2.put("3", b1); + map2.put("4", b2); + } + // 猪伪狂犬病病毒ELISA抗体检测试剂盒---武汉科前生物股份有限公司 + else if ("1570295846749270017".equals(reagentId)) { + map1.put("2", "阴性对照OD平均值"); + map1.put("3", format); + map2.put("2", "阳性对照OD平均值"); + map2.put("3", format1); + } + // 牛布鲁氏菌间接ELISA抗体检测试剂盒---浙江迪恩生物科技股份有限公司 + else if ("1570297916894146562".equals(reagentId)) { + map1.put("2", "阴性对照OD平均值"); + map1.put("3", format); + map2.put("2", "阳性对照OD平均值"); + map2.put("3", format1); + map3.put("1", s + "(" + startNum + "-" + endNum + ")"); + map3.put("2", "阴性对照平均OD值/阳性对照平均OD值"); + map3.put("3", df.format(Double.parseDouble(format) / Double.parseDouble(format1) * 100) + "%"); + map3.put("5","成立"); + resultList3.add(map3); + } + // 牛布鲁氏菌竞争ELISA抗体检测试剂盒(牛)---洛阳莱普生信息科技有限公司 + else if ("1570664922961080322".equals(reagentId)) { + map1.put("2", "阳性对照OD平均值"); + map1.put("3", format1); + map2.put("2", "阴性对照平均OD值-阳性对照平均OD值"); + map2.put("3", Double.parseDouble(format) - Double.parseDouble(format1)); + } + // 牛布鲁氏菌竞争ELISA抗体检测试剂盒(羊)---洛阳莱普生信息科技有限公司 + else if ("1570666622551781378".equals(reagentId)) { + map1.put("2", "阳性对照OD平均值"); + map1.put("3", format1); + map2.put("2", "阴性对照平均OD值-阳性对照平均OD值"); + map2.put("3", Double.parseDouble(format) - Double.parseDouble(format1)); + } + // 口蹄疫病毒非结构蛋白3ABC阻断ELISA抗体检测试剂盒---兰州兽研生物科技有限公司 + else if ("1533624738296389636".equals(reagentId)) { + map1.put("2", "阴性对照平均OD值"); + map1.put("3", format); + map2.put("2", "弱阳性对照血清阻断率"); + map2.put("3", df.format((1 - (c1 / Double.parseDouble(format))) * 100) + "%"); + map2.put("4", df.format((1 - (c2 / Double.parseDouble(format))) * 100) + "%"); + map3.put("1", s + "(" + startNum + "-" + endNum + ")"); + map3.put("2", "阳性对照血清阻断率"); + map3.put("3", df.format((1 - (b1 / Double.parseDouble(format))) * 100) + "%"); + map3.put("4", df.format((1 - (b2 / Double.parseDouble(format))) * 100) + "%"); + map3.put("5", "成立"); + resultList3.add(map3); + } + + map1.put("5", "成立"); + map2.put("5", "成立"); + resultList3.add(map1); + resultList3.add(map2); + return resultList3; + } + /** * 计算检测编号前缀 */ diff --git a/script/incrementSQL/lims-system b/script/incrementSQL/lims-system index 4f17375..22becb4 100644 --- a/script/incrementSQL/lims-system +++ b/script/incrementSQL/lims-system @@ -10,26 +10,15 @@ ALTER TABLE `lims_system`.`f_etask` ADD COLUMN `back_cross_time` datetime(0) NULL DEFAULT NULL COMMENT '任务书回交日期' AFTER `task_issued_by`, ADD COLUMN `back_cross_recipient_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务书回交接收人' AFTER `back_cross_time`; - - - - - - - - - - - - - - - - - - - - - - - +2022年10月25日15:01:36 +INSERT INTO `lims`.`blade_dict_biz` (`id`, `tenant_id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_sealed`, `is_deleted`) VALUES (1584778262532464641, '704067', 0, 'animal_species', '-1', '动物种类', 29, '用于试剂管理项目管理', 0, 0); +INSERT INTO `lims`.`blade_dict_biz` (`id`, `tenant_id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_sealed`, `is_deleted`) VALUES (1584778461078233089, '704067', 0, 'test_type', '-1', '检测类型', 30, '试剂管理项目管理', 0, 0); +INSERT INTO `lims`.`blade_dict_biz` (`id`, `tenant_id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_sealed`, `is_deleted`) VALUES (1584778821314420737, '704067', 1584778262532464641, 'animal_species', '1', '猪', 1, '', 0, 0); +INSERT INTO `lims`.`blade_dict_biz` (`id`, `tenant_id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_sealed`, `is_deleted`) VALUES (1584778908132319233, '704067', 1584778262532464641, 'animal_species', '2', '牛', 2, '', 0, 0); +INSERT INTO `lims`.`blade_dict_biz` (`id`, `tenant_id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_sealed`, `is_deleted`) VALUES (1584778972263227393, '704067', 1584778262532464641, 'animal_species', '3', '羊', 3, '', 0, 0); +INSERT INTO `lims`.`blade_dict_biz` (`id`, `tenant_id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_sealed`, `is_deleted`) VALUES (1584779030169788418, '704067', 1584778262532464641, 'animal_species', '4', '鸡', 4, '', 0, 0); +INSERT INTO `lims`.`blade_dict_biz` (`id`, `tenant_id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_sealed`, `is_deleted`) VALUES (1584779292917768194, '704067', 1584778461078233089, 'test_type', '1', '核酸检测', 1, '', 0, 0); +INSERT INTO `lims`.`blade_dict_biz` (`id`, `tenant_id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_sealed`, `is_deleted`) VALUES (1584779359485566978, '704067', 1584778461078233089, 'test_type', '2', '抗体检测', 2, '', 0, 0); +INSERT INTO `lims`.`blade_dict_biz` (`id`, `tenant_id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_sealed`, `is_deleted`) VALUES (1584801246257225729, '704067', 0, 'reagent_type', '-1', '试剂类型', 31, '', 0, 0); +INSERT INTO `lims`.`blade_dict_biz` (`id`, `tenant_id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_sealed`, `is_deleted`) VALUES (1584801323033960450, '704067', 1584801246257225729, 'reagent_type', '1', '实验试剂', 1, '', 0, 0); +INSERT INTO `lims`.`blade_dict_biz` (`id`, `tenant_id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_sealed`, `is_deleted`) VALUES (1584801376469393410, '704067', 1584801246257225729, 'reagent_type', '2', '提取试剂', 2, '', 0, 0);