2022年9月3日22:39:20

dev
litao 3 years ago
parent 397ec18b1b
commit d2f92e3e4b
  1. 1
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Examine.java
  2. 6
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineBasis.java
  3. 9
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineItem.java
  4. 3
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Instrument.java
  5. 16
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Reagent.java
  6. 5
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/SimpleRel.java
  7. 33
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/WayAndBasis.java
  8. 163
      lab-service-api/lab-user-api/lab-user-api.iml
  9. 9
      lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/ApplyController.java
  10. 15
      lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/GoodsController.java
  11. 22
      lab-service/lab-lims/pom.xml
  12. 24
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java
  13. 72
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineItemController.java
  14. 62
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineResultController.java
  15. 16
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineWayController.java
  16. 5
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/InstrumentController.java
  17. 25
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ReagentController.java
  18. 4
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/RepairApplicationController.java
  19. 15
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/SimpleRelController.java
  20. 10
      lab-service/lab-lims/src/main/java/org/springblade/lims/excel/XN2Excel.java
  21. 22
      lab-service/lab-lims/src/main/java/org/springblade/lims/excel/XNExcel.java
  22. 1
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/IEntrtrustService.java
  23. 490
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java
  24. 3
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/SimpleServiceImpl.java

@ -218,4 +218,5 @@ public class Examine extends BaseEntity implements Serializable {
@TableField(exist = false)
private String inputMode;
private String examineStatus;
}

@ -41,4 +41,10 @@ public class ExamineBasis extends BaseEntity implements Serializable {
*/
private Integer useCount;
/**
* 质量文件
*/
private Long qualityFileId;
private String qualityFileName;
}

@ -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<WayAndBasis> list;
}

@ -58,5 +58,6 @@ public class Instrument extends BaseEntity implements Serializable {
@TableField(exist = false)
private Date endTime;
}
private String instrumentStatus;
}

@ -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<Instrument> instrumentList;
}

@ -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;
}

@ -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;
}

@ -0,0 +1,163 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
<facet type="web" name="Web">
<configuration>
<webroots />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-cache:2.8.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-core-tool:2.8.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-core-launch:2.8.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:2.0.2" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.0.22.Final" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-undertow:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.undertow:undertow-core:2.0.33.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.xnio:xnio-api:3.3.8.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.jboss.xnio:xnio-nio:3.3.8.Final" level="project" />
<orderEntry type="library" name="Maven: io.undertow:undertow-servlet:2.0.33.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:1.0.2.Final" level="project" />
<orderEntry type="library" name="Maven: io.undertow:undertow-websockets-jsr:2.0.33.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.spec.javax.websocket:jboss-websocket-api_1.1_spec:1.1.4.Final" level="project" />
<orderEntry type="library" name="Maven: jakarta.servlet:jakarta.servlet-api:4.0.4" level="project" />
<orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.4" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:30.0-jre" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
<orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.5.0" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.4" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
<orderEntry type="library" name="Maven: io.protostuff:protostuff-core:1.6.0" level="project" />
<orderEntry type="library" name="Maven: io.protostuff:protostuff-api:1.6.0" level="project" />
<orderEntry type="library" name="Maven: io.protostuff:protostuff-runtime:1.6.0" level="project" />
<orderEntry type="library" name="Maven: io.protostuff:protostuff-collectionschema:1.6.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.11.4" level="project" />
<orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
<orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-auth:2.8.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-jwt:2.8.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.lettuce:lettuce-core:5.2.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.58.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.58.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.58.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.58.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.58.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.58.Final" level="project" />
<orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.3.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project" />
<orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt-impl:0.11.2" level="project" />
<orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt-api:0.11.2" level="project" />
<orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt-jackson:0.11.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-cache:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.12.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.12.1" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.25" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.retry:spring-retry:1.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-mybatis:2.8.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.2" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.0" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.6" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.6" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-typehandlers-jsr310:1.0.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.5" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-tenant:2.8.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:dynamic-datasource-spring-boot-starter:3.3.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-openfeign:2.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-context:2.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.59" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.59" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-openfeign-core:2.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form-spring:3.8.0" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form:3.8.0" level="project" />
<orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.3" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-commons:2.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-core:10.12" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-slf4j:10.12" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-hystrix:10.12" level="project" />
<orderEntry type="library" name="Maven: com.netflix.archaius:archaius-core:0.7.7" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: commons-configuration:commons-configuration:1.8" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-core:1.5.18" level="project" />
<orderEntry type="library" name="Maven: io.reactivex:rxjava:1.3.8" level="project" />
<orderEntry type="library" name="Maven: org.hdrhistogram:HdrHistogram:2.1.9" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.10.5" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.10.5" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.10.5" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.19" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.10.5" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.10.5" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.10.5" level="project" />
<orderEntry type="library" name="Maven: io.github.classgraph:classgraph:4.1.7" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:2.0.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:2.0.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.3.1.Final" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.6.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.springblade:blade-core-auto:2.8.1.RELEASE" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.18" level="project" />
</component>
</module>

@ -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<ApplyDetail> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ApplyDetail::getApplyId, apply.getId());
wrapper.isNotNull(ApplyDetail::getReturnTime);
// wrapper.isNotNull(ApplyDetail::getReturnTime);
List<ApplyDetail> applyDetails = applyDetailService.list(wrapper);
if (applyDetails != null && applyDetails.size() > 0) {
for (ApplyDetail detail : applyDetails) {

@ -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);
}
/**
* 导出
*/

@ -14,8 +14,22 @@
<version>${bladex.project.version}</version>
<packaging>jar</packaging>
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<!--word页码-->
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc.free</artifactId>
<version>3.9.0</version>
</dependency>
<!--打印-->
<dependency>
<groupId>cn.afterturn</groupId>
@ -122,12 +136,8 @@
</dependencies>
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<build>
<plugins>

@ -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() {
}
}

@ -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<ExamineItem> page = service.page(Condition.getPage(query), wrapper);
List<ExamineItem> items = page.getRecords();
if (items != null && items.size() > 0) {
for (ExamineItem item : items) {
if (item.getWayAndBasis() != null && !"".equals(item.getWayAndBasis())) {
List<WayAndBasis> 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<ExamineItem> page = service.page(Condition.getPage(query), wrapper);
List<ExamineItem> items = page.getRecords();
if (items != null && items.size() > 0) {
for (ExamineItem item : items) {
if (item.getWayAndBasis() != null && !"".equals(item.getWayAndBasis())) {
List<WayAndBasis> 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<WayAndBasis> 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<WayAndBasis> 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<Reagent> getReagent(String id) {
public R<List<Reagent>> getReagent(String id) {
ExamineItem examineItem = service.getById(id);
List<Reagent> reagentList = new ArrayList<>();
if (examineItem != null) {
String reagentId = examineItem.getReagentId();
String[] split = reagentId.split(",");
for (String s : split) {
List<Instrument> 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);
}
}

@ -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<Double> 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<Double> 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<XN2Excel> read = ExcelUtil.read(file, XN2Excel.class);
if (read != null && read.size() > 0) {
List<String> list = Arrays.asList("<1", "<1", "1", "2", "3");
List<String> 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<ExamineResult> 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<XNExcel> 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<ExamineOutExcel> list = new ArrayList<>(8);

@ -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);
}

@ -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);
}

@ -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<Reagent> page = service.page(Condition.getPage(query), wrapper);
List<Reagent> 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<Instrument> 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);
}
}

@ -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<User> 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));

@ -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<SimpleRel> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SimpleRel::getEntrustId, simpleRel.getEntrustId());
List<SimpleRel> 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));
}
}

@ -0,0 +1,10 @@
package org.springblade.lims.excel;
import lombok.Data;
@Data
public class XN2Excel extends XNExcel {
// 结果
private String value;
}

@ -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;
}

@ -36,4 +36,5 @@ public interface IEntrtrustService extends BaseService<Entrust> {
void simpleReceivePrint(String id, HttpServletResponse response);
void examineReportPrint(String id, HttpServletResponse response);
}

@ -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<EntrustMapper, Entrust>
@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<EntrustMapper, Entrust>
HashMap<String, Object> 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<EntrustMapper, Entrust>
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<EntrustMapper, Entrust>
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<EntrustMapper, Entrust>
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<EntrustMapper, Entrust>
}
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<ExamineTemplate2Excel> list = JSON.parseArray(examineResult.getExamineDataArr(), ExamineTemplate2Excel.class);
if (list.size() > 0) {
@ -633,7 +666,6 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
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<EntrustMapper, Entrust>
result.put("list", resultList1);
url = PCRreportPrint;
}
// XN检测
else if ("5".equals(byId.getInputMode())) {
List<XN2Excel> 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<String, Object> 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<String, Object> 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<String, Object> 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<EntrustMapper, Entrust>
// 模板地址
// 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<EntrustMapper, Entrust>
}
}
@Override
public void examineReportPrint(String id, HttpServletResponse response) {
List<Map<String, Object>> mapList = new ArrayList<>();
// 获取委托单下所有检测
LambdaQueryWrapper<Examine> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Examine::getEntrustId, id);
List<Examine> examineList = examineService.list(wrapper);
if (examineList != null && examineList.size() > 0) {
for (Examine examine : examineList) {
Map<String, Object> result = new HashMap<>();
List<Map<String, Object>> resultList = new ArrayList<>();
LambdaQueryWrapper<ExamineResult> 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<ExamineTemplate2Excel> list = JSON.parseArray(examineResult.getExamineDataArr(), ExamineTemplate2Excel.class);
if (list != null && list.size() > 0) {
for (ExamineTemplate2Excel excel : list) {
Map<String, Object> map = new HashMap<>();
LambdaQueryWrapper<Simple> 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<PCR2Excel> list = JSON.parseArray(examineResult.getExamineDataArr(), PCR2Excel.class);
if (list != null && list.size() > 0) {
for (PCR2Excel excel : list) {
Map<String, Object> map = new HashMap<>();
LambdaQueryWrapper<Simple> 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<XN2Excel> list = JSON.parseArray(examineResult.getExamineDataArr(), XN2Excel.class);
if (list != null && list.size() > 0) {
for (XN2Excel excel : list) {
Map<String, Object> map = new HashMap<>();
LambdaQueryWrapper<Simple> 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<ExamineDataArrVO> list = JSON.parseArray(examineResult.getExamineDataArr(), ExamineDataArrVO.class);
List<ExamineDataArrVO> list1 = new ArrayList<>();
// 普通检测原始记录
Collections.sort(list, new Comparator<ExamineDataArrVO>() {
@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<ExamineDataArrVO> voList = JSON.parseArray(examineResult.getOriginRecordResult(), ExamineDataArrVO.class);
Collections.sort(voList, new Comparator<ExamineDataArrVO>() {
@Override
public int compare(ExamineDataArrVO o1, ExamineDataArrVO o2) {
return o1.getOrder() - o2.getOrder();
}
});
List<Double> 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<Double> 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<String, Object> map = new HashMap<>();
LambdaQueryWrapper<Simple> 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<Double> 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<Double> 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<String, Object> map = new HashMap<>();
LambdaQueryWrapper<Simple> 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<Double> 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<Double> 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<String, Object> map = new HashMap<>();
LambdaQueryWrapper<Simple> 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<String, Object> map = new HashMap<>();
LambdaQueryWrapper<Simple> 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<EntrustMapper, Entrust>
// 检测编号前缀
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;

@ -102,7 +102,7 @@ public class SimpleServiceImpl extends BaseServiceImpl<SimpleMapper, Simple> imp
resultList.add(simple1);
}
}
this.saveBatch(resultList);
}
// 生成样品集编号
@ -150,6 +150,7 @@ public class SimpleServiceImpl extends BaseServiceImpl<SimpleMapper, Simple> imp
}
}
}
this.saveBatch(resultList);
simpleSetService.saveBatch(simpleSetList);
} catch (ParseException e) {
e.printStackTrace();

Loading…
Cancel
Save