From 050be6c90f69f4b5e83d0581c93d0db05a73873a Mon Sep 17 00:00:00 2001 From: litao Date: Thu, 22 Sep 2022 17:13:30 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E6=98=BE=E6=80=A7=E5=8E=9F?= =?UTF-8?q?=E5=A7=8B=E7=BC=96=E5=8F=B7=202.=E4=BF=AE=E6=94=B9=E5=A7=94?= =?UTF-8?q?=E6=89=98=E5=8D=95=E7=8A=B6=E6=80=81=EF=BC=88=E7=BC=96=E5=88=B6?= =?UTF-8?q?=E3=80=81=E5=AE=A1=E6=A0=B8=E3=80=81=E5=AE=A1=E6=89=B9=EF=BC=89?= =?UTF-8?q?=EF=BC=8C=E6=89=93=E5=8D=B0=E7=94=9F=E6=88=90=E7=94=B5=E5=AD=90?= =?UTF-8?q?=E7=AD=BE=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/springblade/lims/entry/Entrust.java | 19 ++++ .../lims/controller/EntrustController.java | 35 +++++--- .../controller/ExamineResultController.java | 38 ++++---- .../lims/controller/SimpleRelController.java | 33 ++++++- .../lims/service/impl/EntrustServiceImpl.java | 90 +++++++++++++++---- 5 files changed, 168 insertions(+), 47 deletions(-) diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Entrust.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Entrust.java index 8eb4f9f..cbf8362 100644 --- a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Entrust.java +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Entrust.java @@ -177,4 +177,23 @@ public class Entrust extends BaseEntity implements Serializable { // 备注(报告发送方式其他) private String remarks; + + // 编制人 + private String organizationBy; + + // 编制时间 + private Date organizationDate; + + // 审核人 + private String verifyBy; + + // 审核时间 + private Date verifyDate; + + // 审批人 + private String approvalBy; + + // 审批时间 + private Date approvalDate; + } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java index 5068961..833fcba 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java @@ -870,6 +870,18 @@ public class EntrustController extends BladeController { @PostMapping("/updateEntrust") @ApiOperation(value = "更改委托单", notes = "更改委托单") public boolean updateEntrust(@RequestBody Entrust entry) { + if (entry.getEntrustStatus() != null && "5".equals(entry.getEntrustStatus())) { + entry.setOrganizationBy(AuthUtil.getUserId().toString()); + entry.setOrganizationDate(new Date()); + } + if (entry.getEntrustStatus() != null && "6".equals(entry.getEntrustStatus())) { + entry.setVerifyBy(AuthUtil.getUserId().toString()); + entry.setVerifyDate(new Date()); + } + if (entry.getEntrustStatus() != null && "7".equals(entry.getEntrustStatus())) { + entry.setApprovalBy(AuthUtil.getUserId().toString()); + entry.setApprovalDate(new Date()); + } return service.updateById(entry); } @@ -1175,17 +1187,17 @@ public class EntrustController extends BladeController { if (tgNum == list.size()) { Entrust entrust1 = service.getById(examine.getEntrustId()); if ("0".equals(entrust1.getIsGenreport())) { - entrust1.setEntrustStatus("6"); + entrust1.setEntrustStatus("8"); } else { entrust1.setEntrustStatus("4"); // 发送提示消息 - List userList = userClient.listDeptUserByCurrentUser("1542115329594114049").getData(); - if (userList != null) { - for (User user : userList) { - messageClient.event(SysTypeEnum.INFORM.getValue(), "生成报告", - "你有新的委托单报告待生成,请及时查看", 1, 5, user.getId().toString(), "/plugin/workflow/process/entrust"); - } - } +// List userList = userClient.listDeptUserByCurrentUser("1542115329594114049").getData(); +// if (userList != null) { +// for (User user : userList) { +// messageClient.event(SysTypeEnum.INFORM.getValue(), "生成报告", +// "你有新的委托单报告待生成,请及时查看", 1, 5, user.getId().toString(), "/plugin/workflow/process/entrust"); +// } +// } } service.updateById(entrust1); } @@ -1368,8 +1380,11 @@ public class EntrustController extends BladeController { * 14.检测报告打印 */ @GetMapping("/print") - public void print(String id, HttpServletResponse response) throws IOException { - service.print(id, response); + public void print(Entrust entrust, HttpServletResponse response) throws IOException { + if (entrust.getEntrustStatus() != null && "8".equals(entrust.getEntrustStatus())) { + service.updateById(entrust); + } + service.print(entrust.getId().toString(), response); } 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 9f33a3c..59e7485 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 @@ -186,28 +186,28 @@ public class ExamineResultController extends BladeController { List>> mapList = new ArrayList<>(); List excels = map.get(i + 1 + ""); //解析info,确定参数x的值和其它相对不变的参数 - Map params = new HashMap<>(); //存放解析出的参数 + Map params = new HashMap<>(); //存放解析出的参数 Integer xStart = 0; Integer xEnd = 0; //解析参数 Set strings = info.keySet(); String x = ""; - for(String s: strings){ + for (String s : strings) { String para = info.get(s); - if (para.split("-").length > 1){//可变参数 + if (para.split("-").length > 1) {//可变参数 String[] xs = para.split("-"); - xStart = Integer.parseInt(xs[0]); + xStart = Integer.parseInt(xs[0]); xEnd = Integer.parseInt(xs[1]); x = s; - }else{//相对固定的参数 + } else {//相对固定的参数 Integer order = Integer.valueOf(para); - params.put(s,StringUtil.isBlank(getCode(excels,order)) ? "0" : getCode(excels,order)); + params.put(s, StringUtil.isBlank(getCode(excels, order)) ? "0" : getCode(excels, order)); } } //按照列循环每一版的数据 - for (int m = 0; m < excels.size(); m++){ + for (int m = 0; m < excels.size(); m++) { String a = ""; if (m == 0) { a = "A"; @@ -237,10 +237,10 @@ public class ExamineResultController extends BladeController { int filedsLength = examineExcel.getClass().getDeclaredFields().length - 1; Map> map2 = new HashMap<>(); - for(int n = 1; n <= filedsLength; n++){ + for (int n = 1; n <= filedsLength; n++) { System.out.println(n); String code; - switch (n){ + switch (n) { case 1: code = examineExcel.getCode1(); break; @@ -281,28 +281,28 @@ public class ExamineResultController extends BladeController { code = "0"; } Map mapResult = new HashMap<>(); - int index = (n -1) * 8 + m + 1; //n是列,m是行 ,我们定义index是一列列的定义 - System.out.println("code的值==" + code + ",列n ==" + n+",行m="+m); + int index = (n - 1) * 8 + m + 1; //n是列,m是行 ,我们定义index是一列列的定义 + System.out.println("code的值==" + code + ",列n ==" + n + ",行m=" + m); System.out.println("-------------------"); - if (StringUtil.isNoneBlank(code)){ - if(xStart <= index && index <= xEnd){ - params.put(x,code); + if (StringUtil.isNoneBlank(code)) { + if (xStart <= index && index <= xEnd) { + params.put(x, code); String value = FormulaTool.getResult(reg, params); mapResult.put("originResult", examineExcel.getCode1()); - mapResult.put("value", "0E-10".equals(value) ? "0": value); + mapResult.put("value", "0E-10".equals(value) ? "0" : value); if (Double.parseDouble(value) >= 0.4) { mapResult.put("result", "阳性"); } else { mapResult.put("result", "阴性"); } } - }else { - if(xStart <= index && index <= xEnd){ + } else { + if (xStart <= index && index <= xEnd) { mapResult.put("originResult", ""); mapResult.put("num", ""); } } - mapResult.put("order",index + i*96); + mapResult.put("order", index + i * 96); map2.put(a + n, mapResult); list.add(mapResult); mapList.add(map2); @@ -350,7 +350,7 @@ public class ExamineResultController extends BladeController { return R.data(map1); } catch (ArrayIndexOutOfBoundsException e) { throw new RuntimeException("分配样品数量与检测样品数量不一致!"); - }catch(Exception e1){ + } catch (Exception e1) { throw new RuntimeException("算术异常,请检查实验数据!"); } } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/SimpleRelController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/SimpleRelController.java index 058f0f7..a0a3832 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/SimpleRelController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/SimpleRelController.java @@ -1,6 +1,7 @@ package org.springblade.lims.controller; +import com.alibaba.nacos.common.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; @@ -152,7 +153,7 @@ public class SimpleRelController extends BladeController { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(SimpleRel::getEntrustId, simpleRel.getEntrustId()); List rels = simpleRelService.list(wrapper); - if (rels != null && rels.size() > 0) { + if (CollectionUtils.isNotEmpty(rels)) { for (SimpleRel rel : rels) { String[] split = rel.getOriginalNum().split("-"); rel.setOriginalNum(simpleRel.getName() + "-" + split[split.length - 1]); @@ -161,4 +162,34 @@ public class SimpleRelController extends BladeController { return R.status(simpleRelService.updateBatchById(rels)); } + /** + * 修改显性原始编号 + */ + @PostMapping("/updateOriginal") + public R updateOriginal(@RequestBody SimpleRel simpleRel) throws Exception { + // 判断要修改的显性原始编号不能和其他现有的显性原始编号重复 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SimpleRel::getEntrustId, simpleRel.getEntrustId()); + wrapper.eq(SimpleRel::getOriginalNum, simpleRel.getOriginalNum()); + int count = simpleRelService.count(wrapper); + // 如果有相同的,抛异常提示 + if (count > 0) { + throw new Exception("目标原始编号和现有原始编号重复,请检查!"); + } + + // 先查所有要修改的这条原始编号相同的样品数据 + wrapper.clear(); + wrapper.eq(SimpleRel::getEntrustId, simpleRel.getEntrustId()); + wrapper.eq(SimpleRel::getRecessiveNum, simpleRel.getRecessiveNum()); + List simpleRelList = simpleRelService.list(wrapper); + + // 如果不为空,修改所有显性原始编号 + if (CollectionUtils.isNotEmpty(simpleRelList)) { + for (SimpleRel rel : simpleRelList) { + rel.setOriginalNum(simpleRel.getOriginalNum()); + } + } + return R.status(simpleRelService.updateBatchById(simpleRelList)); + } + } \ No newline at end of file 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 1a35ef6..5db1d38 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 @@ -12,6 +12,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.poi.xwpf.usermodel.XWPFDocument; 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; @@ -895,8 +896,8 @@ public class EntrustServiceImpl extends BaseServiceImpl response.setContentType("application/octet-stream"); response.setHeader("content-disposition", "attachment;filename=12344.docx"); doc.write(response.getOutputStream()); - entrust.setEntrustStatus("6"); - this.updateById(entrust); +// entrust.setEntrustStatus("8"); +// this.updateById(entrust); } catch (Exception e) { e.printStackTrace(); } finally { @@ -971,23 +972,78 @@ public class EntrustServiceImpl extends BaseServiceImpl result1.put("experieDate", format3.format(taskBlueprint.getCreateTime())); result1.put("remark", entrust.getRemark()); result1.put("resultList1", ItemAndAllList); - // 盖章图片 - ImageEntity farView = new ImageEntity(); - farView.setHeight(80);//设置高度 - farView.setWidth(80);//设置宽度 - farView.setType(ImageEntity.Data);//类型 + // 图片路劲 String path = sysClient.getParamValue("electronic_signature_real_path").getData(); - String pictureName = sysClient.getParamValue("seal_picture_path").getData(); - String s1 = path + pictureName; - FileInputStream fis = null; - try { - fis = new FileInputStream(new File(s1)); - byte[] bytes = readInputStream(fis); - farView.setData(bytes); - } catch (Exception e) { - e.printStackTrace(); + // 编制人签名 + if (StringUtil.isBlank(entrust.getOrganizationBy())) { + User user = userClient.userInfoById(Long.parseLong(entrust.getOrganizationBy())).getData(); + ImageEntity farView = new ImageEntity(); + farView.setHeight(50);//设置高度 + farView.setWidth(90);//设置宽度 + farView.setType(ImageEntity.Data);//类型 + String s1 = path + user.getElectronicSignature(); + FileInputStream fis = null; + try { + fis = new FileInputStream(new File(s1)); + byte[] bytes = readInputStream(fis); + farView.setData(bytes); + } catch (Exception e) { + e.printStackTrace(); + } + result1.put("1", farView); } - result1.put("11", farView); + // 审核人签名 + if (StringUtil.isBlank(entrust.getVerifyBy())) { + User user = userClient.userInfoById(Long.parseLong(entrust.getVerifyBy())).getData(); + ImageEntity farView = new ImageEntity(); + farView.setHeight(50);//设置高度 + farView.setWidth(90);//设置宽度 + farView.setType(ImageEntity.Data);//类型 + String s1 = path + user.getElectronicSignature(); + FileInputStream fis = null; + try { + fis = new FileInputStream(new File(s1)); + byte[] bytes = readInputStream(fis); + farView.setData(bytes); + } catch (Exception e) { + e.printStackTrace(); + } + result1.put("2", farView); + } + // 审批人签名 + if (StringUtil.isBlank(entrust.getApprovalBy())) { + User user = userClient.userInfoById(Long.parseLong(entrust.getApprovalBy())).getData(); + ImageEntity farView = new ImageEntity(); + farView.setHeight(50);//设置高度 + farView.setWidth(90);//设置宽度 + farView.setType(ImageEntity.Data);//类型 + String s1 = path + user.getElectronicSignature(); + FileInputStream fis = null; + try { + fis = new FileInputStream(new File(s1)); + byte[] bytes = readInputStream(fis); + farView.setData(bytes); + } catch (Exception e) { + e.printStackTrace(); + } + result1.put("3", farView); + } + // 盖章图片 +// ImageEntity farView = new ImageEntity(); +// farView.setHeight(80);//设置高度 +// farView.setWidth(80);//设置宽度 +// farView.setType(ImageEntity.Data);//类型 +// String pictureName = sysClient.getParamValue("seal_picture_path").getData(); +// String s1 = path + pictureName; +// FileInputStream fis = null; +// try { +// fis = new FileInputStream(new File(s1)); +// byte[] bytes = readInputStream(fis); +// farView.setData(bytes); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// result1.put("11", farView); return result1; }