From b10504aed59dc83d52a8eba4c38bcc46fb830cdc Mon Sep 17 00:00:00 2001 From: swj <1211312234@qq.com> Date: Sat, 24 Sep 2022 20:04:44 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=88=97=E8=A1=A8=E6=89=80?= =?UTF-8?q?=E6=9C=89=E7=8A=B6=E6=80=81=E6=80=BB=E6=95=B0=E9=87=8F=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98=20+=20=E6=A0=B7?= =?UTF-8?q?=E5=93=81=E6=95=B0=E5=80=BC=E6=9C=AA=E5=A1=AB=E5=86=99=E6=8A=9B?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E6=8F=90=E7=A4=BA=20+=20=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E9=98=B4=E6=80=A7=E3=80=81=E9=98=B3=E6=80=A7=E6=A0=B7=E5=93=81?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E7=94=A8=E4=BA=8E=E6=89=93=E5=8D=B0=20+=20?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E5=BA=94=E5=AE=9E=E9=AA=8C=E6=A0=B7=E5=93=81?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E5=92=8C=E5=AE=9E=E9=99=85=E6=A0=B7=E5=93=81?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E6=98=AF=E5=90=A6=E7=9B=B8=E7=AD=89=20+=20?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E5=85=B0=E6=89=80=E5=A4=9A=E7=89=88=E5=92=8C?= =?UTF-8?q?=E9=9D=9E=E5=85=B0=E6=89=80=E6=97=B6=E7=BB=99=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E9=98=B4=E9=98=B3=E6=80=A7=E6=95=B0=E9=87=8F?= =?UTF-8?q?=20+=20=E8=A7=A3=E5=86=B3=E4=B8=80=E4=B8=AA=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=A4=9A=E4=B8=AA=E8=A7=92=E8=89=B2=E6=97=B6=E8=AE=BF=E9=97=AE?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A8=E6=8A=A5=E9=94=99=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goods/controller/ApplyController.java | 2 +- .../controller/ExamineResultController.java | 50 +++++++++++++++++-- .../lims/service/impl/EntrustServiceImpl.java | 20 ++++++-- .../user/service/impl/UserServiceImpl.java | 24 +++++---- 4 files changed, 76 insertions(+), 20 deletions(-) diff --git a/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/ApplyController.java b/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/ApplyController.java index 467264c..5a80e7d 100644 --- a/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/ApplyController.java +++ b/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/ApplyController.java @@ -71,7 +71,7 @@ public class ApplyController extends BladeController { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(apply); if ("1".equals(apply.getIsGetAll())) { if (apply.getStatus() == null) { - wrapper.in(Apply::getStatus, 1, 3, 4); + wrapper.in(Apply::getStatus, 1, 2, 3, 4); } } 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 79741fa..3023c1a 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 @@ -826,17 +826,20 @@ public class ExamineResultController extends BladeController { /** * 布鲁氏杆菌Excel解析数据 */ - private R blsExcel(MultipartFile file, String examineId) { + private R blsExcel(MultipartFile file, String examineId) throws Exception { Examine examine = examineService.getById(examineId); List read = ExcelUtil.read(file, ExamineTemplate2Excel.class); if (read != null && read.size() > 0) { // 布鲁氏杆菌抗体检测(平板凝集) + // TODO 需要换掉硬编码 ↓ if (examine.getExamineItemId() == 1544979879090921474L) { for (ExamineTemplate2Excel excel : read) { if ("+".equals(excel.getValue())) { excel.setResult("阳性"); } else if ("-".equals(excel.getValue())) { excel.setResult("阴性"); + } else if (excel.getValue() == null || "".equals(excel.getValue())) { + throw new Exception("有样品未填写的对应的结果!"); } } } @@ -849,6 +852,8 @@ public class ExamineResultController extends BladeController { excel.setResult("可疑"); } else if ("-".equals(excel.getValue())) { excel.setResult("阴性"); + } else if (excel.getValue() == null || "".equals(excel.getValue())) { + throw new Exception("有样品未填写的对应的结果!"); } } } @@ -875,7 +880,7 @@ public class ExamineResultController extends BladeController { /** * 口蹄疫Excel解析数据 */ - private R ktyExcel(MultipartFile file, String examineId) { + private R ktyExcel(MultipartFile file, String examineId) throws Exception { List originRowDatas = ExcelUtil.read(file, ExamineExcel.class); String[] split = examineId.split(","); Examine examine = examineService.getById(split[0]); @@ -960,6 +965,11 @@ public class ExamineResultController extends BladeController { } } + // 判断应实验样品数量和实际样品数量是否相等 + if (experieNum.length != mapList.size()) { + throw new Exception("分配样品数量与检测样品数量不一致!"); + } + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ExamineResult::getExamineId, examine.getId()); ExamineResult result = service.getOne(wrapper); @@ -982,6 +992,8 @@ public class ExamineResultController extends BladeController { } // 兰所多板---------------------------------------------------------------------------------------------------- else if ("2".equals(split[1])) { + int yinCount = 0; + int yangCount = 0; Map>>> resultMap = new HashMap<>(); // 以组为维度的所有数据:<1:行...>、<2:行...> Map> groupsMap = new HashMap<>(); @@ -995,6 +1007,7 @@ public class ExamineResultController extends BladeController { // 用于存放每个格子的值,有顺序,无规则 List> allDatas = new ArrayList<>(); List> allData = new ArrayList<>(); + int simpleCount = 0; // 按照公式计算实验数据并返回;两板对照:取偶数组去循环做参照,+1组做对照 // 参照组:2n 、对照组:2n + 1 for (int group = 0; group < groupCount / 2; group++) { @@ -1069,15 +1082,26 @@ public class ExamineResultController extends BladeController { data1.put("log2", isPig ? "≥1:64" : "≥1:128"); data1.put("result", "阳性"); allDatas.add(data1); + yangCount ++; + simpleCount ++; } else { data1.put("log2", isPig ? "<1:64" : "<1:128"); data1.put("result", "阴性"); allDatas.add(data1); + yinCount ++; + simpleCount ++; } } } } + // 判断应实验样品数量和实际样品数量是否相等 + System.out.println(experieNum.length + "experieNum.length_________________________________________________"); + System.out.println(simpleCount + "simpleCount_____________________________________________________________"); + if (experieNum.length != simpleCount) { + throw new Exception("分配样品数量与检测样品数量不一致!"); + } + // 新增或修改Result数据 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ExamineResult::getExamineId, examine.getId()); @@ -1095,10 +1119,16 @@ public class ExamineResultController extends BladeController { examineResult.setExamineDataArr(JSON.toJSONString(allDatas)); service.save(examineResult); } - return R.data(resultMap); + Map realResultMap = new HashMap<>(); + realResultMap.put("data", resultMap); + realResultMap.put("yinCount", yinCount); + realResultMap.put("yangCount", yangCount); + return R.data(realResultMap); } // 非兰所,11列也是样品 --------------------------------------------------------------------------------------- else { + int yinCount = 0; + int yangCount = 0; Map>>> resultMap = new HashMap<>(); // 以组为维度的所有数据:<1:行...>、<2:行...> Map> groupsMap = new HashMap<>(); @@ -1187,14 +1217,22 @@ public class ExamineResultController extends BladeController { data1.put("log2", isPig ? "≥1:64" : "≥1:128"); data1.put("result", "阳性"); allDatas.add(data1); + yangCount ++; } else { data1.put("log2", isPig ? "<1:64" : "<1:128"); data1.put("result", "阴性"); allDatas.add(data1); + yinCount ++; } } } } + + // 判断应实验样品数量和实际样品数量是否相等 + if (experieNum.length != allDatas.size()) { + throw new Exception("分配样品数量与检测样品数量不一致!"); + } + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ExamineResult::getExamineId, examine.getId()); ExamineResult result = service.getOne(wrapper); @@ -1211,7 +1249,11 @@ public class ExamineResultController extends BladeController { examineResult.setExamineDataArr(JSON.toJSONString(allDatas)); service.save(examineResult); } - return R.data(resultMap); + Map realResultMap = new HashMap<>(); + realResultMap.put("data", resultMap); + realResultMap.put("yinCount", yinCount); + realResultMap.put("yangCount", yangCount); + return R.data(realResultMap); } } 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 10c4e42..80da5ec 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 @@ -1358,10 +1358,10 @@ public class EntrustServiceImpl extends BaseServiceImpl for (int i = 0; i < arrVOList.size() / 2; i++) { Map map = new HashMap<>(); map.put("num1", arrVOList.get(i).getExperieNum()); - map.put("value1", arrVOList.get(i).getCtValue()); + map.put("value1", replaceNullBySpace(arrVOList.get(i).getCtValue())); map.put("result1", arrVOList.get(i).getValue()); map.put("num2", arrVOList.get(arrVOList.size() / 2 + i).getExperieNum()); - map.put("value2", arrVOList.get(arrVOList.size() / 2 + i).getCtValue()); + map.put("value2", replaceNullBySpace(arrVOList.get(arrVOList.size() / 2 + i).getCtValue())); map.put("result2", arrVOList.get(arrVOList.size() / 2 + i).getValue()); resultList1.add(map); } @@ -1369,11 +1369,11 @@ public class EntrustServiceImpl extends BaseServiceImpl for (int i = 0; i < arrVOList.size() / 2 + 1; i++) { Map map = new HashMap<>(); map.put("num1", arrVOList.get(i).getExperieNum()); - map.put("value1", arrVOList.get(i).getCtValue()); + map.put("value1", replaceNullBySpace(arrVOList.get(i).getCtValue())); map.put("result1", arrVOList.get(i).getValue()); if (i < arrVOList.size() / 2) { map.put("num2", arrVOList.get(arrVOList.size() / 2 + i + 1).getExperieNum()); - map.put("value2", arrVOList.get(arrVOList.size() / 2 + i + 1).getCtValue()); + map.put("value2", replaceNullBySpace(arrVOList.get(arrVOList.size() / 2 + i + 1).getCtValue())); map.put("result2", arrVOList.get(arrVOList.size() / 2 + i + 1).getValue()); } resultList1.add(map); @@ -2933,6 +2933,18 @@ public class EntrustServiceImpl extends BaseServiceImpl } } + /** + * 通过空格替换null + * @param ctValue + * @return + */ + private String replaceNullBySpace(String ctValue) { + if (ctValue == null || ctValue.equals("null")) { + return " "; + } + return ctValue; + } + @Override public void simpleRegisterPrint(String id, HttpServletResponse response) { Map result = new HashMap<>(); diff --git a/lab-service/lab-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java b/lab-service/lab-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java index ca0334a..5516b82 100644 --- a/lab-service/lab-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java +++ b/lab-service/lab-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java @@ -196,20 +196,22 @@ public class UserServiceImpl extends BaseServiceImpl implement @Override public IPage selectUserPage(IPage page, User user, Long deptId, String tenantId) { + String roleIdsTemp = AuthUtil.getUser().getRoleId(); + String[] roleIds = roleIdsTemp.split(","); List deptIdList = SysCache.getDeptChildIds(deptId); - String data = sysClient.getRoleAlias(Long.valueOf(AuthUtil.getUser().getRoleId())).getData(); - // 那系统参数角色别名 - String roleAlais = sysClient.getParamValue("hide_role_alias").getData(); List userIds = new ArrayList<>(); - if (!roleAlais.equals(data)) { - String roleId = sysClient.getRoleIdByAlias(tenantId, roleAlais).getData(); - String roleName = sysClient.getRoleName(Long.valueOf(roleId)).getData(); - System.out.println("roleName: " + roleName); - List users = listRolebyId(roleName); - List collect = users.stream().map(User::getId).collect(Collectors.toList()); - userIds.addAll(collect); + for (String myRoleId : roleIds) { + String data = sysClient.getRoleAlias(Long.valueOf(myRoleId)).getData(); + // 拿系统参数角色别名 + String roleAlais = sysClient.getParamValue("hide_role_alias").getData(); + if (!roleAlais.equals(data)) { + String roleId = sysClient.getRoleIdByAlias(tenantId, roleAlais).getData(); + String roleName = sysClient.getRoleName(Long.valueOf(roleId)).getData(); + List users = listRolebyId(roleName); + List collect = users.stream().map(User::getId).collect(Collectors.toList()); + userIds.addAll(collect); + } } - System.out.println("userIds: " + userIds); return page.setRecords(baseMapper.selectUserPage(page, user, deptIdList, tenantId, userIds)); }