From d2f92e3e4b81cb1ad802b8225b77ce26b820fe6c Mon Sep 17 00:00:00 2001 From: litao Date: Sat, 3 Sep 2022 22:39:46 +0800 Subject: [PATCH] =?UTF-8?q?2022=E5=B9=B49=E6=9C=883=E6=97=A522:39:20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/springblade/lims/entry/Examine.java | 1 + .../springblade/lims/entry/ExamineBasis.java | 6 + .../springblade/lims/entry/ExamineItem.java | 9 + .../springblade/lims/entry/Instrument.java | 3 +- .../org/springblade/lims/entry/Reagent.java | 16 +- .../org/springblade/lims/entry/SimpleRel.java | 5 + .../springblade/lims/entry/WayAndBasis.java | 33 ++ lab-service-api/lab-user-api/lab-user-api.iml | 163 ++++++ .../goods/controller/ApplyController.java | 9 +- .../goods/controller/GoodsController.java | 15 + lab-service/lab-lims/pom.xml | 22 +- .../lims/controller/EntrustController.java | 24 + .../controller/ExamineItemController.java | 72 ++- .../controller/ExamineResultController.java | 62 ++- .../lims/controller/ExamineWayController.java | 16 +- .../lims/controller/InstrumentController.java | 5 +- .../lims/controller/ReagentController.java | 25 +- .../RepairApplicationController.java | 4 +- .../lims/controller/SimpleRelController.java | 15 + .../org/springblade/lims/excel/XN2Excel.java | 10 + .../org/springblade/lims/excel/XNExcel.java | 22 + .../lims/service/IEntrtrustService.java | 1 + .../lims/service/impl/EntrustServiceImpl.java | 490 +++++++++++++++++- .../lims/service/impl/SimpleServiceImpl.java | 3 +- 24 files changed, 963 insertions(+), 68 deletions(-) create mode 100644 lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/WayAndBasis.java create mode 100644 lab-service-api/lab-user-api/lab-user-api.iml create mode 100644 lab-service/lab-lims/src/main/java/org/springblade/lims/excel/XN2Excel.java create mode 100644 lab-service/lab-lims/src/main/java/org/springblade/lims/excel/XNExcel.java 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 28a7526..1cbe0f6 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 @@ -218,4 +218,5 @@ public class Examine extends BaseEntity implements Serializable { @TableField(exist = false) private String inputMode; + private String examineStatus; } \ No newline at end of file diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineBasis.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineBasis.java index ebfc91c..68f8de8 100644 --- a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineBasis.java +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineBasis.java @@ -41,4 +41,10 @@ public class ExamineBasis extends BaseEntity implements Serializable { */ private Integer useCount; + /** + * 质量文件 + */ + private Long qualityFileId; + private String qualityFileName; + } \ No newline at end of file diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineItem.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineItem.java index c86dfda..a2e15c7 100644 --- a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineItem.java +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineItem.java @@ -9,6 +9,7 @@ import org.springblade.core.mp.base.BaseEntity; import org.springframework.data.annotation.Id; import java.io.Serializable; +import java.util.List; /** * @author swj @@ -86,4 +87,12 @@ public class ExamineItem extends BaseEntity implements Serializable { * 使用次数 */ private Integer useCount; + + /** + * 检测方法和检测依据JSON + */ + private String wayAndBasis; + + @TableField(exist = false) + private List list; } diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Instrument.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Instrument.java index 60e75b1..b071290 100644 --- a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Instrument.java +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Instrument.java @@ -58,5 +58,6 @@ public class Instrument extends BaseEntity implements Serializable { @TableField(exist = false) private Date endTime; -} + private String instrumentStatus; +} \ No newline at end of file diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Reagent.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Reagent.java index 836f151..449ba75 100644 --- a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Reagent.java +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Reagent.java @@ -10,6 +10,7 @@ import org.springframework.data.annotation.Id; import java.io.Serializable; import java.util.Date; +import java.util.List; /** * @author swj @@ -41,12 +42,25 @@ public class Reagent extends BaseEntity implements Serializable { @JsonSerialize(nullsUsing = NullSerializer.class) public Integer type; - public String count; + public Integer count; @TableField(exist = false) private Date startTime; @TableField(exist = false) private Date endTime; + + // 操作步骤 + private String operationSteps; + // 操作步骤 + private String resultDeterminationMethod; + // 仪器设备id + private String instrumentId; + // 仪器设备名称 + private String instrumentName; + + @TableField(exist = false) + List instrumentList; + } diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/SimpleRel.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/SimpleRel.java index ca62721..2325f5e 100644 --- a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/SimpleRel.java +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/SimpleRel.java @@ -1,5 +1,7 @@ package org.springblade.lims.entry; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -45,5 +47,8 @@ public class SimpleRel extends BaseEntity implements Serializable { private Integer isDeleted; private Integer sort; + + @TableField(exist = false) + private String name; } diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/WayAndBasis.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/WayAndBasis.java new file mode 100644 index 0000000..8a9b94b --- /dev/null +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/WayAndBasis.java @@ -0,0 +1,33 @@ +package org.springblade.lims.entry; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; +import org.springframework.data.annotation.Id; + +import java.io.Serializable; + +/** + * @author swj + * @date 2022年6月2日15:34:17 + */ +@Data +public class WayAndBasis { + + /** + * 关联检验方法 + */ + private String examineWayId; + private String examineWayName; + + /** + * 关联检验依据 + */ + private String examineBasisId; + private String examineBasisName; + + +} diff --git a/lab-service-api/lab-user-api/lab-user-api.iml b/lab-service-api/lab-user-api/lab-user-api.iml new file mode 100644 index 0000000..44b9c88 --- /dev/null +++ b/lab-service-api/lab-user-api/lab-user-api.iml @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file 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 5eb5ff0..46bb9cb 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 @@ -243,9 +243,10 @@ public class ApplyController extends BladeController { for (ApplyDetail applyDetail : detailList) { applyDetail.setIsCk(1); applyDetail.setCkTime(new Date()); - Goods goods = goodsService.getById(applyDetail.getProductId()); - goods.setNum(goods.getNum() + (applyDetail.getApplyNum() - applyDetail.getOutNum())); - goodsService.updateById(goods); + applyDetail.setOutNum(applyDetail.getApplyNum()); +// Goods goods = goodsService.getById(applyDetail.getProductId()); +// goods.setNum(goods.getNum() + (applyDetail.getApplyNum() - applyDetail.getOutNum())); +// goodsService.updateById(goods); // applyDetail.setCkTime(new Date()); applyDetailService.updateById(applyDetail); } @@ -340,7 +341,7 @@ public class ApplyController extends BladeController { // 申领详情 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ApplyDetail::getApplyId, apply.getId()); - wrapper.isNotNull(ApplyDetail::getReturnTime); +// wrapper.isNotNull(ApplyDetail::getReturnTime); List applyDetails = applyDetailService.list(wrapper); if (applyDetails != null && applyDetails.size() > 0) { for (ApplyDetail detail : applyDetails) { diff --git a/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/GoodsController.java b/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/GoodsController.java index c3b2c91..3f7a534 100644 --- a/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/GoodsController.java +++ b/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/GoodsController.java @@ -43,6 +43,7 @@ import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; import java.util.*; /** @@ -225,9 +226,23 @@ public class GoodsController extends BladeController { goods.setNum(goodsNum -= report.getReportNum()); goodsService.updateById(goods); // 报损记录 + report.setScrapApplyerId(AuthUtil.getUserId()); + report.setScrapApplyerName(AuthUtil.getUserName()); + report.setScrapApplyerTime(LocalDateTime.now()); + report.setStatus(0); reportService.save(report); } + //报损确认 + @PostMapping("/reportConfirm") + public void reportConfirm(@RequestBody Report report) { + report.setScrapCheckerId(AuthUtil.getUserId()); + report.setScrapCheckerName(AuthUtil.getUserName()); + report.setScrapCheckerTime(LocalDateTime.now()); + report.setStatus(1); + reportService.updateById(report); + } + /** * 导出 */ diff --git a/lab-service/lab-lims/pom.xml b/lab-service/lab-lims/pom.xml index 7048ed2..9985e0f 100644 --- a/lab-service/lab-lims/pom.xml +++ b/lab-service/lab-lims/pom.xml @@ -14,8 +14,22 @@ ${bladex.project.version} jar + + + com.e-iceblue + http://repo.e-iceblue.cn/repository/maven-public/ + + + + + + e-iceblue + spire.doc.free + 3.9.0 + + cn.afterturn @@ -122,12 +136,8 @@ - - - com.e-iceblue - http://repo.e-iceblue.cn/repository/maven-public/ - - + + 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 b7d1ca1..00d8868 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 @@ -1,13 +1,24 @@ package org.springblade.lims.controller; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import cn.afterturn.easypoi.word.WordExportUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.spire.doc.Document; +import com.spire.doc.FieldType; +import com.spire.doc.FileFormat; +import com.spire.doc.HeaderFooter; +import com.spire.doc.documents.HorizontalAlignment; +import com.spire.doc.documents.Paragraph; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.lims.entry.*; import org.springblade.lims.service.*; @@ -1460,6 +1471,15 @@ public class EntrustController extends BladeController { } + /** + * 14.检测报告3打印 + */ + @GetMapping("/examineReportPrint") + public void examineReportPrint(String id, HttpServletResponse response) throws IOException { + service.examineReportPrint(id, response); + } + + /** * 根据委托单id获取所有检测(打印生成报告使用) */ @@ -1756,5 +1776,9 @@ public class EntrustController extends BladeController { return entrust; } + @GetMapping("/ceshi") + public void ceshi() { + + } } \ No newline at end of file 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 1454659..9dc045f 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 @@ -1,6 +1,7 @@ package org.springblade.lims.controller; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; @@ -12,11 +13,10 @@ import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.jackson.JsonUtil; import org.springblade.core.tool.utils.Func; import org.springblade.lims.entry.*; -import org.springblade.lims.service.IExamineBasisService; -import org.springblade.lims.service.IExamineItemService; -import org.springblade.lims.service.IReagentService; +import org.springblade.lims.service.*; import org.springframework.web.bind.annotation.*; import java.util.*; @@ -36,6 +36,12 @@ public class ExamineItemController extends BladeController { private final IReagentService reagentService; + private final IExamineWayService examineWayService; + + private final IExamineBasisService examineBasisService; + + private final IInstrumentService instrumentService; + /** * 分页 */ @@ -58,8 +64,16 @@ public class ExamineItemController extends BladeController { return R.data(entrustCustomerList); } } -// wrapper.orderByDesc(ExamineItem::getCreateTime); IPage page = service.page(Condition.getPage(query), wrapper); + List items = page.getRecords(); + if (items != null && items.size() > 0) { + for (ExamineItem item : items) { + if (item.getWayAndBasis() != null && !"".equals(item.getWayAndBasis())) { + List wayAndBases = JsonUtil.parseArray(item.getWayAndBasis(), WayAndBasis.class); + item.setList(wayAndBases); + } + } + } return R.data(page); } @@ -74,6 +88,15 @@ public class ExamineItemController extends BladeController { } wrapper.orderByDesc(ExamineItem::getCreateTime); IPage page = service.page(Condition.getPage(query), wrapper); + List items = page.getRecords(); + if (items != null && items.size() > 0) { + for (ExamineItem item : items) { + if (item.getWayAndBasis() != null && !"".equals(item.getWayAndBasis())) { + List wayAndBases = JsonUtil.parseArray(item.getWayAndBasis(), WayAndBasis.class); + item.setList(wayAndBases); + } + } + } return R.data(page); } @@ -83,6 +106,20 @@ public class ExamineItemController extends BladeController { @PostMapping("/update") @ApiOperation(value = "更改", notes = "更改") public R update(@RequestBody ExamineItem entry) { + List wayAndBases = entry.getList(); + if (wayAndBases != null && wayAndBases.size() > 0) { + for (WayAndBasis wayAndBase : wayAndBases) { + ExamineWay examineWay = examineWayService.getById(wayAndBase.getExamineWayId()); + if (examineWay != null) { + wayAndBase.setExamineWayName(examineWay.getName()); + } + ExamineBasis examineBasis = examineBasisService.getById(wayAndBase.getExamineBasisId()); + if (examineBasis != null) { + wayAndBase.setExamineBasisName(examineBasis.getName()); + } + } + entry.setWayAndBasis(JSON.toJSONString(entry.getList())); + } return R.data(service.updateById(entry)); } @@ -100,6 +137,20 @@ public class ExamineItemController extends BladeController { } } } + List wayAndBases = entry.getList(); + if (wayAndBases != null && wayAndBases.size() > 0) { + for (WayAndBasis wayAndBase : wayAndBases) { + ExamineWay examineWay = examineWayService.getById(wayAndBase.getExamineWayId()); + if (examineWay != null) { + wayAndBase.setExamineWayName(examineWay.getName()); + } + ExamineBasis examineBasis = examineBasisService.getById(wayAndBase.getExamineBasisId()); + if (examineBasis != null) { + wayAndBase.setExamineBasisName(examineBasis.getName()); + } + } + entry.setWayAndBasis(JSON.toJSONString(entry.getList())); + } entry.setCreateUser(null); entry.setUpdateUser(null); entry.setCreateTime(new Date()); @@ -121,17 +172,26 @@ public class ExamineItemController extends BladeController { * 根据项目id获取对应试剂 */ @GetMapping("/getReagent") - public List getReagent(String id) { + public R> getReagent(String id) { ExamineItem examineItem = service.getById(id); List reagentList = new ArrayList<>(); if (examineItem != null) { String reagentId = examineItem.getReagentId(); String[] split = reagentId.split(","); for (String s : split) { + List instrumentList = new ArrayList<>(); Reagent reagent = reagentService.getById(s); + if (reagent.getInstrumentId() != null && !"".equals(reagent.getInstrumentId())) { + String[] split1 = reagent.getInstrumentId().split(","); + for (String s1 : split1) { + Instrument instrument = instrumentService.getById(s1); + instrumentList.add(instrument); + } + } + reagent.setInstrumentList(instrumentList); reagentList.add(reagent); } } - return reagentList; + return R.data(reagentList); } } 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 039a0a3..c27de16 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 @@ -86,7 +86,7 @@ public class ExamineResultController extends BladeController { * 解析数据 */ @PostMapping("/excel") - public R excel(MultipartFile file, String examineId) { + public R excel(MultipartFile file, String examineId) throws Exception { Examine examine = examineService.getById(examineId); ExamineItem examineItem = examineItemService.getById(examine.getExamineItemId()); if ("2".equals(examineItem.getInputMode())) { @@ -95,6 +95,9 @@ public class ExamineResultController extends BladeController { return ktyExcel(file, examineId); } else if ("4".equals(examineItem.getInputMode())) { return pcrExcel(file, examineId); + } + else if ("5".equals(examineItem.getInputMode())) { + return xnExcel(file, examineId); } else { return ptExcel(file, examineId); } @@ -513,10 +516,10 @@ public class ExamineResultController extends BladeController { String[] experieNum = examine.getExperieNum().split(","); // 获取4个抗原对照值 List list = new ArrayList<>(); - list.add(Double.parseDouble(originRowDatas.get(3).getCode12())); - 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(read.get(4).getCode12())); + list.add(Double.parseDouble(read.get(5).getCode12())); + list.add(Double.parseDouble(read.get(6).getCode12())); + list.add(Double.parseDouble(read.get(7).getCode12())); List list1 = list.stream().sorted().collect(Collectors.toList()); DecimalFormat df = new DecimalFormat("#0.000"); // 对照平均值 @@ -961,6 +964,42 @@ public class ExamineResultController extends BladeController { return R.data(read); } + /** + * 血凝检测解析数据 + */ + private R xnExcel(MultipartFile file, String examineId) throws Exception { + List read = ExcelUtil.read(file, XN2Excel.class); + if (read != null && read.size() > 0) { + List list = Arrays.asList("<1", "<1", "1", "2", "3"); + List list2 = Arrays.asList("4", "5", "6", "≥6", "7", "8", "9", "≥10", ">=6", ">=10"); + for (XN2Excel excel : read) { + if (list.contains(excel.getCtValue())) { + excel.setValue("阴性"); + } else if (list2.contains(excel.getCtValue())) { + excel.setValue("阳性"); + } else { + throw new Exception("请输入正确格式的滴度Log2值,并重新上传!"); + } + } + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ExamineResult::getExamineId, examineId); + ExamineResult result = service.getOne(wrapper); + if (result != null) { + result.setOriginRecordData(JSON.toJSONString(read)); + result.setOriginRecordResult(JSON.toJSONString(read)); + result.setExamineDataArr(JSON.toJSONString(read)); + service.updateById(result); + } else { + ExamineResult examineResult = new ExamineResult(); + examineResult.setExamineId(Long.valueOf(examineId)); + examineResult.setOriginRecordData(JSON.toJSONString(read)); + examineResult.setOriginRecordResult(JSON.toJSONString(read)); + examineResult.setExamineDataArr(JSON.toJSONString(read)); + service.save(examineResult); + } + } + return R.data(read); + } /** * 组装每一个实验数据及结果map @@ -1122,6 +1161,19 @@ public class ExamineResultController extends BladeController { list.add(pcrExcel1); ExcelUtil.export(response, "结果模板", "结果模板", list, PCRExcel.class); } + // 血凝 + // PCR检测 + else if ("5".equals(examineItem.getInputMode())) { + String experieNum = examine.getExperieNum(); + List list = new ArrayList<>(); + String[] split = experieNum.split(","); + for (String s : split) { + XNExcel pcrExcel = new XNExcel(); + pcrExcel.setExperieNum(s); + list.add(pcrExcel); + } + ExcelUtil.export(response, "结果模板", "结果模板", list, XNExcel.class); + } // 普通检测 else { List list = new ArrayList<>(8); diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineWayController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineWayController.java index daeb822..4dfbc44 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineWayController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineWayController.java @@ -86,10 +86,10 @@ public class ExamineWayController extends BladeController { @PostMapping("/update") @ApiOperation(value = "更改", notes = "更改") public R update(@RequestBody ExamineWay entry) { - if (entry.getInstrumentId() != null) { - Instrument instrument = instrumentService.getById(entry.getInstrumentId()); - entry.setInstrumentName(instrument.getName()); - } +// if (entry.getInstrumentId() != null) { +// Instrument instrument = instrumentService.getById(entry.getInstrumentId()); +// entry.setInstrumentName(instrument.getName()); +// } return R.data(service.updateById(entry)); } @@ -106,10 +106,10 @@ public class ExamineWayController extends BladeController { } } } - if (entry.getInstrumentId() != null) { - Instrument instrument = instrumentService.getById(entry.getInstrumentId()); - entry.setInstrumentName(instrument.getName()); - } +// if (entry.getInstrumentId() != null) { +// Instrument instrument = instrumentService.getById(entry.getInstrumentId()); +// entry.setInstrumentName(instrument.getName()); +// } entry.setUseCount(0); return service.save(entry); } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/InstrumentController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/InstrumentController.java index fa7435f..1ef1582 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/InstrumentController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/InstrumentController.java @@ -86,7 +86,7 @@ public class InstrumentController extends BladeController { } /** - * + * 修改 */ @PostMapping("/update") @ApiOperation(value = "更改", notes = "更改") @@ -99,7 +99,7 @@ public class InstrumentController extends BladeController { } /** - * + * 新增 */ @PostMapping("/insert") public boolean insertExamine(@RequestBody Instrument entry) { @@ -107,7 +107,6 @@ public class InstrumentController extends BladeController { String name = userClient.userInfoById(entry.getSaveById()).getData().getName(); entry.setSaveByName(name); } - entry.setStatus(0); return service.save(entry); } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ReagentController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ReagentController.java index d308221..3bd5900 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ReagentController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ReagentController.java @@ -15,14 +15,13 @@ import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringUtil; -import org.springblade.lims.entry.ETask; -import org.springblade.lims.entry.ExamineBasis; -import org.springblade.lims.entry.ExamineWay; -import org.springblade.lims.entry.Reagent; +import org.springblade.lims.entry.*; import org.springblade.lims.service.IETaskService; +import org.springblade.lims.service.IInstrumentService; import org.springblade.lims.service.IReagentService; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; @@ -38,6 +37,8 @@ public class ReagentController extends BladeController { private final IReagentService service; + private final IInstrumentService instrumentService; + /** * 分页 */ @@ -56,6 +57,21 @@ public class ReagentController extends BladeController { } wrapper.orderByDesc(Reagent::getCreateTime); IPage page = service.page(Condition.getPage(query), wrapper); + List reagents = page.getRecords(); + if (reagents != null && reagents.size() > 0) { + for (Reagent reagent : reagents) { + String instrumentId = reagent.getInstrumentId(); + if (instrumentId != null && !"".equals(instrumentId)) { + String[] split = instrumentId.split(","); + List instrumentList = new ArrayList<>(); + for (String s : split) { + Instrument instrument = instrumentService.getById(s); + instrumentList.add(instrument); + } + reagent.setInstrumentList(instrumentList); + } + } + } return R.data(page); } @@ -100,4 +116,5 @@ public class ReagentController extends BladeController { wrapper.eq(Reagent::getIsDeleted, 0); return service.list(wrapper); } + } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/RepairApplicationController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/RepairApplicationController.java index a8d0551..711e93c 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/RepairApplicationController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/RepairApplicationController.java @@ -67,7 +67,7 @@ public class RepairApplicationController extends BladeController { // 修改设备状态为维修中 Instrument instrument = new Instrument(); instrument.setId(repairApplication.getInstrumentId()); - instrument.setStatus(2); + instrument.setInstrumentStatus("2"); instrumentService.updateById(instrument); // 发送提示消息 List userList = userClient.listDeptUserByCurrentUser(AuthUtil.getDeptId()).getData(); @@ -125,7 +125,7 @@ public class RepairApplicationController extends BladeController { // 修改设备状态为关机 Instrument instrument = new Instrument(); instrument.setId(repairApplication.getInstrumentId()); - instrument.setStatus(0); + instrument.setInstrumentStatus("0"); instrumentService.updateById(instrument); } return R.status(repairApplicationService.updateById(repairApplication)); 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 a9ec136..17356f5 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 @@ -146,4 +146,19 @@ public class SimpleRelController extends BladeController { wrapper1.eq(SimpleRel::getStatus, 0); return simpleRelService.page(Condition.getPage(query), wrapper1); } + + @PostMapping("/updateOriginalNum") + public R updateSimpleName(@RequestBody SimpleRel simpleRel) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SimpleRel::getEntrustId, simpleRel.getEntrustId()); + List rels = simpleRelService.list(wrapper); + if (rels != null && rels.size() > 0) { + for (SimpleRel rel : rels) { + String[] split = rel.getOriginalNum().split("-"); + rel.setOriginalNum(simpleRel.getName() + "-" + split[split.length - 1]); + } + } + return R.status(simpleRelService.updateBatchById(rels)); + } + } \ No newline at end of file diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/excel/XN2Excel.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/excel/XN2Excel.java new file mode 100644 index 0000000..4aa2be3 --- /dev/null +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/excel/XN2Excel.java @@ -0,0 +1,10 @@ +package org.springblade.lims.excel; + +import lombok.Data; + +@Data +public class XN2Excel extends XNExcel { + + // 结果 + private String value; +} diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/excel/XNExcel.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/excel/XNExcel.java new file mode 100644 index 0000000..a90c8d7 --- /dev/null +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/excel/XNExcel.java @@ -0,0 +1,22 @@ +package org.springblade.lims.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class XNExcel implements Serializable { + + private static final long serialVersionUID = 1L; + + @ColumnWidth(20) + @ExcelProperty("编号") + private String experieNum; + + @ColumnWidth(20) + @ExcelProperty("滴度Log2") + private String ctValue; + +} diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IEntrtrustService.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IEntrtrustService.java index 71749fb..07bf73c 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IEntrtrustService.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IEntrtrustService.java @@ -36,4 +36,5 @@ public interface IEntrtrustService extends BaseService { void simpleReceivePrint(String id, HttpServletResponse response); + void examineReportPrint(String id, HttpServletResponse response); } 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 6b8753e..601f9cf 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 @@ -13,6 +13,8 @@ import org.springblade.core.tool.api.R; 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.mapper.EntrustMapper; import org.springblade.lims.service.*; import org.springblade.core.mp.base.BaseServiceImpl; @@ -95,12 +97,18 @@ public class EntrustServiceImpl extends BaseServiceImpl @Value("${reportPrint}") private String reportPrint; + @Value("${examineReportPrint}") + private String examineReportPrint; + @Value("${BLSreportPrint}") private String BLSreportPrint; @Value("${PCRreportPrint}") private String PCRreportPrint; + @Value("${XNreportPrint}") + private String XNreportPrint; + @Value("${LDanreportPrint}") private String LDanreportPrint; @@ -317,21 +325,21 @@ public class EntrustServiceImpl extends BaseServiceImpl HashMap map = new HashMap<>(4); ExamineItem byId = null; if (examine.getExamineItemId() != null) { - byId = examineItemService.getById(Long.valueOf(examine.getExamineItemId())); + byId = examineItemService.getById(examine.getExamineItemId()); if (byId != null) { map.put("examineItem", byId.getName()); } } ExamineWay byId1 = null; if (examine.getExamineWayId() != null) { - byId1 = examineWayService.getById(Long.valueOf(examine.getExamineWayId())); + byId1 = examineWayService.getById(examine.getExamineWayId()); if (byId1 != null) { map.put("examineWay", byId1.getName()); } } ExamineBasis byId2 = null; if (examine.getExamineBasisId() != null) { - byId2 = examineBasisService.getById(Long.valueOf(examine.getExamineBasisId())); + byId2 = examineBasisService.getById(examine.getExamineBasisId()); if (byId2 != null) { map.put("examineBasis", byId2.getName()); } @@ -415,7 +423,23 @@ public class EntrustServiceImpl extends BaseServiceImpl result.put("remark", "备注");//??? result.put("resultList1", resultList1); result.put("resultList2", resultList2); - + // 盖章图片 + 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(); + } + result.put("11", farView); // String handleUrl = "C://Users//AAA//Desktop//烁今//打印模板//检测报告(模板).docx"; XWPFDocument doc = null; @@ -530,7 +554,6 @@ public class EntrustServiceImpl extends BaseServiceImpl farView.setWidth(90);//设置宽度 farView.setType(ImageEntity.Data);//类型 String s1 = path + user.getElectronicSignature(); - System.out.println(s1); FileInputStream fis = null; try { fis = new FileInputStream(new File(s1)); @@ -550,7 +573,6 @@ public class EntrustServiceImpl extends BaseServiceImpl farView1.setType(ImageEntity.Data);//类型 String s1 = path + user1.getElectronicSignature(); - System.out.println(s1); FileInputStream fis = null; try { fis = new FileInputStream(new File(s1)); @@ -561,9 +583,20 @@ public class EntrustServiceImpl extends BaseServiceImpl } result.put("15", farView1); } + // 校核时间 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日"); + if (examineResult.getVerificationTime() != null) { + String s1 = dateFormat.format(examineResult.getVerificationTime()); + result.put("16", s1); + } + // 检测时间 + if (examineResult.getInspectionTime() != null) { + String s1 = dateFormat.format(examineResult.getInspectionTime()); + result.put("17", s1); + } - // 如果是布鲁氏检测 // position1 + // 如果是布鲁氏检测 if ("2".equals(byId.getInputMode())) { List list = JSON.parseArray(examineResult.getExamineDataArr(), ExamineTemplate2Excel.class); if (list.size() > 0) { @@ -633,7 +666,6 @@ public class EntrustServiceImpl extends BaseServiceImpl farView1.setHeight(350);//设置高度 farView1.setWidth(550);//设置宽度 farView1.setType(ImageEntity.Data);//类型 - String s1 = path + picturePath; FileInputStream fis = null; try { @@ -668,6 +700,61 @@ public class EntrustServiceImpl extends BaseServiceImpl result.put("list", resultList1); url = PCRreportPrint; } + // XN检测 + else if ("5".equals(byId.getInputMode())) { + List list = JSON.parseArray(examineResult.getExamineDataArr(), XN2Excel.class); + if (list.size() > 0) { + if (list.size() % 3 == 0) { + for (int i = 0; i < list.size() / 3; i++) { + Map map = new HashMap<>(); + map.put("num1", list.get(i).getExperieNum()); + map.put("value1", list.get(i).getCtValue()); + map.put("result1", list.get(i).getValue()); + map.put("num2", list.get(list.size() / 3 + i).getExperieNum()); + map.put("value2", list.get(list.size() / 3 + i).getCtValue()); + map.put("result2", list.get(list.size() / 3 + i).getValue()); + map.put("num3", list.get(list.size() / 3 * 2 + i).getExperieNum()); + map.put("value3", list.get(list.size() / 3 * 2 + i).getCtValue()); + map.put("result3", list.get(list.size() / 3 * 2 + i).getValue()); + resultList1.add(map); + } + } else { + for (int i = 0; i < list.size() / 3 + 1; i++) { + if (list.size() % 3 == 1) { + Map map = new HashMap<>(); + map.put("num1", list.get(i).getExperieNum()); + map.put("value1", list.get(i).getCtValue()); + map.put("result1", list.get(i).getValue()); + if (i < list.size() / 3) { + map.put("num2", list.get(list.size() / 3 + i + 1).getExperieNum()); + map.put("value2", list.get(list.size() / 3 + i + 1).getCtValue()); + map.put("result2", list.get(list.size() / 3 + i + 1).getValue()); + map.put("num3", list.get(list.size() / 3 * 2 + i + 1).getExperieNum()); + map.put("value3", list.get(list.size() / 3 * 2 + i + 1).getCtValue()); + map.put("result3", list.get(list.size() / 3 * 2 + i + 1).getValue()); + } + resultList1.add(map); + } else if (list.size() % 3 == 2) { + Map map = new HashMap<>(); + map.put("num1", list.get(i).getExperieNum()); + map.put("value1", list.get(i).getCtValue()); + map.put("result1", list.get(i).getValue()); + map.put("num2", list.get(list.size() / 3 + i + 1).getExperieNum()); + map.put("value2", list.get(list.size() / 3 + i + 1).getCtValue()); + map.put("result2", list.get(list.size() / 3 + i + 1).getValue()); + if (i < list.size() / 3) { + map.put("num3", list.get(list.size() / 3 * 2 + i + 2).getExperieNum()); + map.put("value3", list.get(list.size() / 3 * 2 + i + 2).getCtValue()); + map.put("result3", list.get(list.size() / 3 * 2 + i + 2).getValue()); + } + resultList1.add(map); + } + } + } + } + result.put("list", resultList1); + url = XNreportPrint; + } // 普通和口蹄疫检测 else { DecimalFormat df = new DecimalFormat("#0.000"); @@ -1301,32 +1388,32 @@ public class EntrustServiceImpl extends BaseServiceImpl // 模板地址 // String handleUrl = "C://Users//AAA//Desktop//烁今//打印模板//检测报告2(模板).docx"; XWPFDocument doc = null; - FileOutputStream fos = null; +// FileOutputStream fos = null; try { doc = WordExportUtil.exportWord07(url, result); - fos = new FileOutputStream("C://Users//AAA//Desktop//shuojin//dayin//检测报告2.docx"); - String filename = "测试.docx"; +// fos = new FileOutputStream("C://Users//AAA//Desktop//shuojin//dayin//检测报告2.docx"); +// String filename = "测试.docx"; response.setContentType("application/octet-stream"); response.setHeader("content-disposition", "attachment;filename=12344.docx"); doc.write(response.getOutputStream()); } catch (Exception e) { e.printStackTrace(); } finally { - if (null != doc) { -// doc.close(); - try { - doc.write(fos); - } catch (IOException e) { - e.printStackTrace(); - } - } - if (null != fos) { - try { - fos.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } +// if (null != doc) { +//// doc.close(); +// try { +// doc.write(fos); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } +// if (null != fos) { +// try { +// fos.close(); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } if (null != doc) { try { doc.close(); @@ -1783,6 +1870,355 @@ public class EntrustServiceImpl extends BaseServiceImpl } } + @Override + public void examineReportPrint(String id, HttpServletResponse response) { + List> mapList = new ArrayList<>(); + // 获取委托单下所有检测 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Examine::getEntrustId, id); + List examineList = examineService.list(wrapper); + if (examineList != null && examineList.size() > 0) { + for (Examine examine : examineList) { + Map result = new HashMap<>(); + List> resultList = new ArrayList<>(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ExamineResult::getExamineId, examine.getId()); + // 检测结果 + ExamineResult examineResult = examineResultService.getOne(queryWrapper); + // 检测项目 + ExamineItem examineItem = examineItemService.getById(examine.getExamineItemId()); + result.put("name", examineItem.getName()); + + // 布鲁氏检测 + if ("2".equals(examineItem.getInputMode())) { + List list = JSON.parseArray(examineResult.getExamineDataArr(), ExamineTemplate2Excel.class); + if (list != null && list.size() > 0) { + for (ExamineTemplate2Excel excel : list) { + Map map = new HashMap<>(); + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(Simple::getExperieNum, excel.getExperieNum()); + Simple simple = simpleService.getOne(wrapper1); + if (simple != null) { + map.put("originalNum", simple.getOriginalNum()); + map.put("num", excel.getExperieNum()); + map.put("value", excel.getValue()); + map.put("result", excel.getResult()); + resultList.add(map); + } + } + result.put("list", resultList); + } + } + // PCR检测 + else if ("4".equals(examineItem.getInputMode())) { + List list = JSON.parseArray(examineResult.getExamineDataArr(), PCR2Excel.class); + if (list != null && list.size() > 0) { + for (PCR2Excel excel : list) { + Map map = new HashMap<>(); + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(Simple::getExperieNum, excel.getExperieNum()); + Simple simple = simpleService.getOne(wrapper1); + if (simple != null) { + map.put("originalNum", simple.getOriginalNum()); + map.put("num", excel.getExperieNum()); + map.put("value", excel.getCtValue()); + map.put("result", excel.getValue()); + resultList.add(map); + } + } + result.put("list", resultList); + } + } + // XN检测 + else if ("5".equals(examineItem.getInputMode())) { + List list = JSON.parseArray(examineResult.getExamineDataArr(), XN2Excel.class); + if (list != null && list.size() > 0) { + for (XN2Excel excel : list) { + Map map = new HashMap<>(); + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(Simple::getExperieNum, excel.getExperieNum()); + Simple simple = simpleService.getOne(wrapper1); + if (simple != null) { + map.put("originalNum", simple.getOriginalNum()); + map.put("num", excel.getExperieNum()); + map.put("value", excel.getCtValue()); + map.put("result", excel.getValue()); + resultList.add(map); + } + } + result.put("list", resultList); + } + } + // 普通和口蹄疫检测 + else { + DecimalFormat df = new DecimalFormat("#0.000"); + List list = JSON.parseArray(examineResult.getExamineDataArr(), ExamineDataArrVO.class); + List list1 = new ArrayList<>(); + // 普通检测原始记录 + Collections.sort(list, new Comparator() { + @Override + public int compare(ExamineDataArrVO o1, ExamineDataArrVO o2) { + return o1.getOrder() - o2.getOrder(); + } + }); + // position1 + if ("3".equals(examineItem.getInputMode())) { + // 口蹄疫兰所单板 + if ("1".equals(examine.getTemplateType())) { + List voList = JSON.parseArray(examineResult.getOriginRecordResult(), ExamineDataArrVO.class); + Collections.sort(voList, new Comparator() { + @Override + public int compare(ExamineDataArrVO o1, ExamineDataArrVO o2) { + return o1.getOrder() - o2.getOrder(); + } + }); + List doubles = new ArrayList<>(); + double a1 = Double.parseDouble(list.get(95).getValue()); + double a2 = Double.parseDouble(list.get(94).getValue()); + double a3 = Double.parseDouble(list.get(93).getValue()); + double a4 = Double.parseDouble(list.get(92).getValue()); + doubles.add(a1); + doubles.add(a2); + doubles.add(a3); + doubles.add(a4); + List collect = doubles.stream().sorted().collect(Collectors.toList()); + String format2 = df.format((collect.get(1) + collect.get(2)) / 4); + ExamineDataArrVO examineDataArrVO = new ExamineDataArrVO(); + examineDataArrVO.setNum("临界值"); + examineDataArrVO.setValue(format2); + examineDataArrVO.setResult(""); + list1.add(examineDataArrVO); + list1.addAll(voList); + + if (list1.size() > 0) { + for (ExamineDataArrVO excel : list) { + Map map = new HashMap<>(); + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(Simple::getExperieNum, excel.getNum()); + Simple simple = simpleService.getOne(wrapper1); + if (simple != null) { + map.put("originalNum", simple.getOriginalNum()); + map.put("num", excel.getNum()); + map.put("value", excel.getValue()); + map.put("result", excel.getResult()); + resultList.add(map); + } + } + result.put("list", resultList); + } + } + // 口蹄疫兰所多板 + else if ("2".equals(examine.getTemplateType())) { + if (list.size() > 0) { + for (int i = 0; i < list.size() / 96; i++) { + List doubles = new ArrayList<>(); + double a1 = Double.parseDouble(list.get((i + 1) * 96 - 1).getValue()); + double a2 = Double.parseDouble(list.get((i + 1) * 96 - 2).getValue()); + double a3 = Double.parseDouble(list.get((i + 1) * 96 - 3).getValue()); + double a4 = Double.parseDouble(list.get((i + 1) * 96 - 4).getValue()); + doubles.add(a1); + doubles.add(a2); + doubles.add(a3); + doubles.add(a4); + List collect = doubles.stream().sorted().collect(Collectors.toList()); + String format2 = df.format((collect.get(1) + collect.get(2)) / 4); + ExamineDataArrVO examineDataArrVO = new ExamineDataArrVO(); + examineDataArrVO.setNum("临界值"); + examineDataArrVO.setValue(""); + examineDataArrVO.setResult(format2); + list1.add(examineDataArrVO); + for (int j = 0; j < 96; j++) { + ExamineDataArrVO vo = list.get((i * 96) + j); + if (vo.getNum() != null) { + list1.add(vo); + } + } + } + } + + if (list1.size() > 0) { + for (ExamineDataArrVO excel : list) { + Map map = new HashMap<>(); + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(Simple::getExperieNum, excel.getNum()); + Simple simple = simpleService.getOne(wrapper1); + if (simple != null) { + map.put("originalNum", simple.getOriginalNum()); + map.put("num", excel.getNum()); + map.put("value", excel.getValue()); + map.put("result", excel.getResult()); + resultList.add(map); + } + } + result.put("list", resultList); + } + } + // 口蹄疫非兰所 + else { + if (list.size() > 0) { + for (int i = 0; i < list.size() / 96; i++) { + List doubles = new ArrayList<>(); + double a1 = Double.parseDouble(list.get((i + 1) * 96 - 1).getValue()); + double a2 = Double.parseDouble(list.get((i + 1) * 96 - 2).getValue()); + double a3 = Double.parseDouble(list.get((i + 1) * 96 - 3).getValue()); + double a4 = Double.parseDouble(list.get((i + 1) * 96 - 4).getValue()); + doubles.add(a1); + doubles.add(a2); + doubles.add(a3); + doubles.add(a4); + List collect = doubles.stream().sorted().collect(Collectors.toList()); + String format2 = df.format((collect.get(1) + collect.get(2)) / 4); + ExamineDataArrVO examineDataArrVO = new ExamineDataArrVO(); + examineDataArrVO.setNum("临界值"); + examineDataArrVO.setValue(""); + examineDataArrVO.setResult(format2); + list1.add(examineDataArrVO); + for (int j = 0; j < 96; j++) { + ExamineDataArrVO vo = list.get((i * 96) + j); + if (vo.getNum() != null) { + list1.add(vo); + } + } + } + } + + if (list1.size() > 0) { + for (ExamineDataArrVO excel : list) { + Map map = new HashMap<>(); + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(Simple::getExperieNum, excel.getNum()); + Simple simple = simpleService.getOne(wrapper1); + if (simple != null) { + map.put("originalNum", simple.getOriginalNum()); + map.put("num", excel.getNum()); + map.put("value", excel.getValue()); + map.put("result", excel.getResult()); + resultList.add(map); + } + } + result.put("list", resultList); + } + } + } + // 普通检测 + else { + 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); + list.get(i * 96).setNum("阴性对照平均OD值"); + list.get(i * 96).setValue(format); + list.get(i * 96).setResult(" "); + list1.add(list.get(i * 96)); + 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); + list.get((i * 96) + 1).setNum("阳性对照平均OD值"); + list.get((i * 96) + 1).setValue(format1); + list.get((i * 96) + 1).setResult(" "); + list1.add(list.get((i * 96) + 1)); + + for (int j = 0; j < 96; j++) { + if (j > 5) { + list1.add(list.get((i * 96) + j)); + } + } + } + } + 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); + list.get(i * 96).setNum("阴性对照平均OD值"); + list.get(i * 96).setValue(format); + list.get(i * 96).setResult(" "); + list1.add(list.get(i * 96)); + 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); + list.get((i * 96) + 1).setNum("阳性对照平均OD值"); + list.get((i * 96) + 1).setValue(format1); + list.get((i * 96) + 1).setResult(" "); + list1.add(list.get((i * 96) + 1)); + + for (int j = 0; j < 96; j++) { + if ((i * 96) + j > list.size() - 1) { + break; + } + if (j > 5) { + list1.add(list.get((i * 96) + j)); + } + } + } + } + + if (list1.size() > 0) { + for (ExamineDataArrVO excel : list) { + Map map = new HashMap<>(); + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(Simple::getExperieNum, excel.getNum()); + Simple simple = simpleService.getOne(wrapper1); + if (simple != null) { + map.put("originalNum", simple.getOriginalNum()); + map.put("num", excel.getNum()); + map.put("value", excel.getValue()); + map.put("result", excel.getResult()); + resultList.add(map); + } + } + result.put("list", resultList); + } + } + } + mapList.add(result); + } + } + + //模板地址 +// String handleUrl = "C://Users//AAA//Desktop//烁今//打印模板//留样处理(销毁)申请表(模板).docx"; + XWPFDocument doc = null; +// FileOutputStream fos = null; + try { + doc = WordExportUtil.exportWord07(examineReportPrint, mapList); +// fos = new FileOutputStream("C://Users//AAA//Desktop//shuojin//dayin//examineReportPrint01.docx"); +// String filename = "测试.docx"; + + response.setContentType("application/octet-stream"); + response.setHeader("content-disposition", "attachment;filename=12344.docx"); + + doc.write(response.getOutputStream()); + + + } catch (Exception e) { + e.printStackTrace(); + } finally { +// if (null != doc) { +//// doc.close(); +// try { +// doc.write(fos); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } +// if (null != fos) { +// try { +// fos.close(); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } + if (null != doc) { + try { + doc.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + /** * 根据网络图片URL转成字节数组(弃用) */ @@ -1856,7 +2292,7 @@ public class EntrustServiceImpl extends BaseServiceImpl // 检测编号前缀 String[] strings = entrust.getAcceptanceNum().split("-"); - String s = strings[1] + now.getYear() + month1 + day1 + hour1 + "-"; + String s = strings[1] + "-" + now.getYear() + month1 + day1 + hour1 + "-"; StringBuilder simpleName = new StringBuilder(); Integer simpleCount = 0; diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/SimpleServiceImpl.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/SimpleServiceImpl.java index 6c301eb..37ae985 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/SimpleServiceImpl.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/SimpleServiceImpl.java @@ -102,7 +102,7 @@ public class SimpleServiceImpl extends BaseServiceImpl imp resultList.add(simple1); } } - this.saveBatch(resultList); + } // 生成样品集编号 @@ -150,6 +150,7 @@ public class SimpleServiceImpl extends BaseServiceImpl imp } } } + this.saveBatch(resultList); simpleSetService.saveBatch(simpleSetList); } catch (ParseException e) { e.printStackTrace();