Merge remote-tracking branch 'origin/master'

master
杨海航 4 days ago
commit 20c8fe60ba
  1. 498
      pom.xml
  2. 8
      src/main/java/digital/laboratory/platform/entrustment/controller/CaseEventController.java
  3. 38
      src/main/java/digital/laboratory/platform/entrustment/controller/EntrustApproveRecordController.java
  4. 16
      src/main/java/digital/laboratory/platform/entrustment/controller/EntrustMaterialCheckoutResultController.java
  5. 16
      src/main/java/digital/laboratory/platform/entrustment/controller/EntrustmentController.java
  6. 23
      src/main/java/digital/laboratory/platform/entrustment/convert/EntrustApproveRecordConvert.java
  7. 9
      src/main/java/digital/laboratory/platform/entrustment/dto/ApprovedUpdateEntrustDTO.java
  8. 7
      src/main/java/digital/laboratory/platform/entrustment/dto/UpdateCaseAndEntrustTypeDTO.java
  9. 59
      src/main/java/digital/laboratory/platform/entrustment/entity/EntrustApproveRecord.java
  10. 7
      src/main/java/digital/laboratory/platform/entrustment/entity/EntrustMaterialCheckoutResult.java
  11. 13
      src/main/java/digital/laboratory/platform/entrustment/entity/Entrustment.java
  12. 5
      src/main/java/digital/laboratory/platform/entrustment/entity/EntrustmentIdentificationMaterial.java
  13. 43
      src/main/java/digital/laboratory/platform/entrustment/enums/EntrustBiologyType.java
  14. 33
      src/main/java/digital/laboratory/platform/entrustment/enums/EntrustStatisticType.java
  15. 29
      src/main/java/digital/laboratory/platform/entrustment/mapper/EntrustApproveRecordMapper.java
  16. 15
      src/main/java/digital/laboratory/platform/entrustment/mapper/EntrustMaterialCheckoutResultMapper.java
  17. 22
      src/main/java/digital/laboratory/platform/entrustment/query/EntrustMaterialCheckoutResultQuery.java
  18. 31
      src/main/java/digital/laboratory/platform/entrustment/service/EntrustApproveRecordService.java
  19. 17
      src/main/java/digital/laboratory/platform/entrustment/service/EntrustMaterialCheckoutResultService.java
  20. 6
      src/main/java/digital/laboratory/platform/entrustment/service/EntrustmentService.java
  21. 24
      src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustAlterApplyServiceImpl.java
  22. 70
      src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustApproveRecordServiceImpl.java
  23. 75
      src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustMaterialCheckoutResultServiceImpl.java
  24. 6
      src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentIdentificationMaterialServiceImpl.java
  25. 24
      src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentServiceImpl.java
  26. 7
      src/main/java/digital/laboratory/platform/entrustment/vo/CaseEventVO.java
  27. 17
      src/main/java/digital/laboratory/platform/entrustment/vo/EntrustAlterApplyVO.java
  28. 83
      src/main/java/digital/laboratory/platform/entrustment/vo/EntrustApproveRecordVO.java
  29. 11
      src/main/java/digital/laboratory/platform/entrustment/vo/EntrustMaterialCheckoutResultVO.java
  30. 7
      src/main/java/digital/laboratory/platform/entrustment/vo/EntrustmentVO.java
  31. 7
      src/main/resources/mapper/EntrustAlterApplyMapper.xml
  32. 50
      src/main/resources/mapper/EntrustApproveRecordMapper.xml
  33. 44
      src/main/resources/mapper/EntrustMaterialCheckoutResultMapper.xml
  34. 310
      src/main/resources/mapper/EntrustmentMapper.xml

@ -1,255 +1,261 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>digital.laboratory.platform</groupId>
<artifactId>DigitalLaboratoryPlatform</artifactId>
<version>2022.10.11-snapshots</version>
</parent>
<artifactId>dlp-entrustment</artifactId>
<packaging>jar</packaging>
<description>送检受理</description>111
<properties>
<dlp.version>2022.10.11-snapshots</dlp.version>
<cloud.alibaba.version>2021.1</cloud.alibaba.version>
<fastexcel.version>1.0.0</fastexcel.version>
</properties>
<dependencies>
<!--注册中心客户端-->
<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${cloud.alibaba.version}</version>
</dependency>
<!--配置中心客户端-->
<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${cloud.alibaba.version}</version>
</dependency>
<!-- swagger -->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-common-swagger</artifactId>
</dependency>
<!--断路器依赖-->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-common-feign</artifactId>
<version>${dlp.version}</version>
</dependency>
<!--security-->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-common-security</artifactId>
<version>${dlp.version}</version>
</dependency>
<!--JDBC相关-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- 数据库 mysql依赖 -->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector-java.version}</version>
</dependency>
<!--undertow容器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
<!-- log -->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-common-log</artifactId>
<version>${dlp.version}</version>
</dependency>
<!-- 业务数据的依赖 -->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-admin-api</artifactId>
<version>${dlp.version}</version>
</dependency>
<!-- 污水系统api-->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-sewage-api</artifactId>
<version>${dlp.version}</version>
</dependency>
<!-- 第三方系统集成api工具类-->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-othersys-api</artifactId>
<version>${dlp.version}</version>
</dependency>
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-common-oss</artifactId>
<version>${dlp.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-common-remote-word2pdf</artifactId>
<version>${dlp.version}</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/cglib/cglib-nodep -->
<!-- 主要使用 beanToMap -->
<!-- <dependency>-->
<!-- <groupId>cglib</groupId>-->
<!-- <artifactId>cglib-nodep</artifactId>-->
<!-- <version>3.3.0</version>-->
<!-- </dependency>-->
<!-- poi-tl word 模板处理器 http://deepoove.com/poi-tl -->
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.12.0</version>
</dependency>
<!-- Spring EL表达式作为模板处理语言 -->
<!-- <dependency>-->
<!-- <groupId>org.springframework</groupId>-->
<!-- <artifactId>spring-expression</artifactId>-->
<!-- <version>5.3.18</version>-->
<!-- </dependency>-->
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>fr.opensagres.xdocreport</groupId>-->
<!-- <artifactId>fr.opensagres.poi.xwpf.converter.pdf-gae</artifactId>-->
<!-- <version>2.0.3</version>-->
<!-- </dependency>-->
<!-- mybatis 字段类型处理器TypeHandler -->
<!-- <dependency>-->
<!-- <groupId>com.fasterxml.jackson.datatype</groupId>-->
<!-- <artifactId>jackson-datatype-jsr310</artifactId>-->
<!-- <version>2.12.5</version>-->
<!-- </dependency>-->
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.9</version>
</dependency>
<!-- 模板引擎: 生成打印标签 -->
<dependency>
<artifactId>velocity</artifactId>
<groupId>org.apache.velocity</groupId>
<version>${velocity.version}</version>
</dependency>
<!-- for MockMultipartFile-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
<!-- seata分布式事务-->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-common-seata</artifactId>
<version>${dlp.version}</version>
</dependency>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>digital.laboratory.platform</groupId>
<artifactId>DigitalLaboratoryPlatform</artifactId>
<version>2022.10.11-snapshots</version>
</parent>
<artifactId>dlp-entrustment</artifactId>
<packaging>jar</packaging>
<description>送检受理</description>
<properties>
<dlp.version>2022.10.11-snapshots</dlp.version>
<cloud.alibaba.version>2021.1</cloud.alibaba.version>
<fastexcel.version>1.0.0</fastexcel.version>
</properties>
<dependencies>
<!--注册中心客户端-->
<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${cloud.alibaba.version}</version>
</dependency>
<!--配置中心客户端-->
<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${cloud.alibaba.version}</version>
</dependency>
<!-- swagger -->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-common-swagger</artifactId>
</dependency>
<!--断路器依赖-->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-common-feign</artifactId>
<version>${dlp.version}</version>
</dependency>
<!--security-->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-common-security</artifactId>
<version>${dlp.version}</version>
</dependency>
<!--JDBC相关-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- 数据库 mysql依赖 -->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector-java.version}</version>
</dependency>
<!--undertow容器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
<!-- log -->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-common-log</artifactId>
<version>${dlp.version}</version>
</dependency>
<!-- 业务数据的依赖 -->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-admin-api</artifactId>
<version>${dlp.version}</version>
</dependency>
<!-- 污水系统api-->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-sewage-api</artifactId>
<version>${dlp.version}</version>
</dependency>
<!-- 第三方系统集成api工具类-->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-othersys-api</artifactId>
<version>${dlp.version}</version>
</dependency>
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-common-oss</artifactId>
<version>${dlp.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-common-remote-word2pdf</artifactId>
<version>${dlp.version}</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/cglib/cglib-nodep -->
<!-- 主要使用 beanToMap -->
<!-- <dependency>-->
<!-- <groupId>cglib</groupId>-->
<!-- <artifactId>cglib-nodep</artifactId>-->
<!-- <version>3.3.0</version>-->
<!-- </dependency>-->
<!-- poi-tl word 模板处理器 http://deepoove.com/poi-tl -->
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.12.0</version>
</dependency>
<!-- Spring EL表达式作为模板处理语言 -->
<!-- <dependency>-->
<!-- <groupId>org.springframework</groupId>-->
<!-- <artifactId>spring-expression</artifactId>-->
<!-- <version>5.3.18</version>-->
<!-- </dependency>-->
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>fr.opensagres.xdocreport</groupId>-->
<!-- <artifactId>fr.opensagres.poi.xwpf.converter.pdf-gae</artifactId>-->
<!-- <version>2.0.3</version>-->
<!-- </dependency>-->
<!-- mybatis 字段类型处理器TypeHandler -->
<!-- <dependency>-->
<!-- <groupId>com.fasterxml.jackson.datatype</groupId>-->
<!-- <artifactId>jackson-datatype-jsr310</artifactId>-->
<!-- <version>2.12.5</version>-->
<!-- </dependency>-->
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.9</version>
</dependency>
<!-- 模板引擎: 生成打印标签 -->
<dependency>
<artifactId>velocity</artifactId>
<groupId>org.apache.velocity</groupId>
<version>${velocity.version}</version>
</dependency>
<!-- for MockMultipartFile-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
<!-- seata分布式事务-->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-common-seata</artifactId>
<version>${dlp.version}</version>
</dependency>
<!--加入aop 注解模块-->
<dependency>
<groupId>digital.laboratory.platform</groupId>
<artifactId>dlp-common-aop</artifactId>
<version>2022.10.11-snapshots</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgument>-Xlint:unchecked</compilerArgument>
</configuration>
<version>3.8.1</version>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>timestamp-property</id>
<goals>
<goal>timestamp-property</goal>
</goals>
<configuration>
<name>timestamp</name>
<pattern>yyyy-MM-dd HH:mm:ss</pattern>
<locale>zh_CN</locale>
<timeZone>Asia/Shanghai</timeZone>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-resource-one</id>
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/../../out</outputDirectory>
<resources>
<resource>
<directory>${basedir}/target</directory>
<includes>
<include>${project.artifactId}.jar</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgument>-Xlint:unchecked</compilerArgument>
</configuration>
<version>3.8.1</version>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>timestamp-property</id>
<goals>
<goal>timestamp-property</goal>
</goals>
<configuration>
<name>timestamp</name>
<pattern>yyyy-MM-dd HH:mm:ss</pattern>
<locale>zh_CN</locale>
<timeZone>Asia/Shanghai</timeZone>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-resource-one</id>
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/../../out</outputDirectory>
<resources>
<resource>
<directory>${basedir}/target</directory>
<includes>
<include>${project.artifactId}.jar</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</plugins>
</build>
</project>

@ -61,11 +61,17 @@ import java.util.Map;
@RequestMapping("/papp/entrustment/case")
@Api(tags = "001-案件管理")
public class CaseEventController {
private final CaseEventService caseEventService;
private final CaseEvidenceService caseEvidenceService;
private final EntrustmentService entrustmentService;
private final EntrustmentIdentificationMaterialService entrustmentIdentificationMaterialService;
private final RemoteOrgService remoteOrgService;
private final OssFile ossFile;
@ -90,6 +96,7 @@ public class CaseEventController {
Entrustment one = entrustmentService.getOne(Wrappers.<Entrustment>lambdaQuery().eq(Entrustment::getCaseId, id));
cevo.setEntrustmentType(one.getEntrustmentType());
cevo.setType(one.getType());
return R.ok(cevo);
}
@ -235,6 +242,7 @@ public class CaseEventController {
entrustmentService.update(Wrappers.<Entrustment>lambdaUpdate()
.eq(Entrustment::getId, dto.getEntrustId())
.set(Entrustment::getEntrustmentType, dto.getEntrustmentType())
.set(StrUtil.isNotBlank(dto.getType()), Entrustment::getType, dto.getType())
);
}
return R.ok(caseEvent, "保存案件信息成功");

@ -0,0 +1,38 @@
package digital.laboratory.platform.entrustment.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import digital.laboratory.platform.common.core.util.R;
import digital.laboratory.platform.entrustment.query.BaseQuery;
import digital.laboratory.platform.entrustment.service.EntrustApproveRecordService;
import digital.laboratory.platform.entrustment.vo.EntrustApproveRecordVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 委托审核记录
*
* @author chenjiangbao
* @describe 委托审核记录
*/
@RestController
@RequestMapping("/papp/entrustApproveRecord")
@Api(tags = "018-委托审核记录")
public class EntrustApproveRecordController {
@Resource
private EntrustApproveRecordService entrustApproveRecordService;
@ApiOperation("分页查询-委托审核记录")
@PostMapping("/page")
public R<IPage<EntrustApproveRecordVO>> page(@RequestBody BaseQuery query) {
IPage<EntrustApproveRecordVO> page = entrustApproveRecordService.voPage(query);
return R.ok(page);
}
}

@ -1,11 +1,15 @@
package digital.laboratory.platform.entrustment.controller;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import digital.laboratory.platform.common.core.exception.CheckedException;
import digital.laboratory.platform.common.core.util.R;
import digital.laboratory.platform.entrustment.convert.EntrustMaterialCheckoutResultConvert;
import digital.laboratory.platform.entrustment.dto.EntrustMaterialCheckoutResultDTO;
import digital.laboratory.platform.entrustment.query.BaseQuery;
import digital.laboratory.platform.entrustment.query.EntrustMaterialCheckoutResultQuery;
import digital.laboratory.platform.entrustment.service.EntrustMaterialCheckoutResultService;
import digital.laboratory.platform.entrustment.vo.EntrustMaterialCheckoutResultVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@ -52,6 +56,18 @@ public class EntrustMaterialCheckoutResultController {
return success ? R.ok("保存检出得定性定量结果成功!") : R.ok("保存检出得定性定量结果失败!");
}
@ApiOperation("检出得定性定量结果分页查询")
@GetMapping("/page")
public R<IPage<EntrustMaterialCheckoutResultVO>> page(EntrustMaterialCheckoutResultQuery query) {
IPage<EntrustMaterialCheckoutResultVO> voiPage;
try {
voiPage = entrustMaterialCheckoutResultService.voiPage(query);
} catch (CheckedException e) {
return R.failed(e.getMessage());
}
return R.ok(voiPage);
}
@ApiOperation("导出检材检出结果的excel表格")
@PostMapping("/exportExcel")
public void exportExcel(@RequestBody List<String> entrustIds, HttpServletResponse response) {

@ -22,6 +22,7 @@ import digital.laboratory.platform.entrustment.entity.CaseEvent;
import digital.laboratory.platform.entrustment.entity.Entrustment;
import digital.laboratory.platform.entrustment.enums.EntrustmentStatusConstants;
import digital.laboratory.platform.entrustment.service.CaseEventService;
import digital.laboratory.platform.entrustment.service.EntrustMaterialCheckoutResultService;
import digital.laboratory.platform.entrustment.service.EntrustmentService;
import digital.laboratory.platform.entrustment.vo.CaseEventVO;
import digital.laboratory.platform.entrustment.vo.EntrustmentVO;
@ -80,6 +81,8 @@ public class EntrustmentController {
private final RemoteOrgService remoteOrgService;
private final EntrustMaterialCheckoutResultService entrustMaterialCheckoutResultService;
//private final RestTemplate restTemplate;
// /**
@ -157,7 +160,8 @@ public class EntrustmentController {
@RequestParam(value = "submitter", required = false) String submitter,
@RequestParam(value = "checkCandidateUser", required = false) String checkCandidateUser,
@RequestParam(value = "checkUser", required = false) String checkUser,
@RequestParam(value = "dataSources", required = false) Integer dataSources) {
@RequestParam(value = "dataSources", required = false) Integer dataSources,
@RequestParam(value = "checkoutQuery", required = false, defaultValue = "0") Integer checkoutQuery) {
String orgId = null;
DLPUser dlpUser = SecurityUtils.getUser();
System.out.println(String.format("getEntrustmentPage 用户 %s 的 id=%s [%s]", dlpUser.getUsername(), dlpUser.getId(), (dlpUser.isStaff()) ? "鉴定机构员工" : "普通用户"));
@ -186,10 +190,16 @@ public class EntrustmentController {
.eq(StrUtil.isNotBlank(caseId), "e.case_id", caseId)
.in((statuses != null) && (statuses.size() > 0), "e.status", statuses)
.eq(dataSources != null, "e.data_sources", dataSources)
.inSql(checkoutQuery.equals(1), "e.id", "SELECT entrust_id FROM b_entrust_material_checkout_result") // 筛选检材检出结果记录不为0 的委托
.like(StrUtil.isNotBlank(caseName), "c.case_name", caseName)
.orderByDesc(statuses != null && statuses.size() > 0 && statuses.get(0) == 9, "CAST(SUBSTRING(e.accept_no, 1,4) AS UNSIGNED)", "CAST(SUBSTRING(e.accept_no, 6) AS UNSIGNED)")
.orderByDesc(statuses != null && statuses.size() > 0 && statuses.get(0) == 7, "CAST(SUBSTRING(e.entrustment_no, 4,4) AS UNSIGNED)", "CAST(SUBSTRING(e.entrustment_no, 9) AS UNSIGNED)")
);
if (checkoutQuery.equals(1)) {
thePage.getRecords().forEach(record -> {
record.setCheckoutResultStr(entrustMaterialCheckoutResultService.buildEntrustMaterialCheckoutResultStr(record.getId()));
});
}
} else {
//-- 当前用户是普通用户, 不是鉴定中心员工
System.out.println(String.format("用户 %s 的 id=%s, 不是鉴定机构员工", dlpUser.getUsername(), dlpUser.getId()));
@ -2107,8 +2117,8 @@ public class EntrustmentController {
* @return
*/
@GetMapping("/getBookNameByEntrustId")
public R getBookNameByEntrustId(String entrustId, String whatBook) {
String fileOssPath = entrustmentService.getBookNameByEntrustId(entrustId, whatBook);
public R getBookNameByEntrustId(String entrustId, String whatBook, String docType) {
String fileOssPath = entrustmentService.getBookNameByEntrustId(entrustId, whatBook, docType);
Assert.notBlank(fileOssPath, "获取文书失败,请检查参数");
String docId = IdWorker.get32UUID();
String dataInfo = docId + "#" + fileOssPath;

@ -0,0 +1,23 @@
package digital.laboratory.platform.entrustment.convert;
import digital.laboratory.platform.entrustment.entity.EntrustApproveRecord;
import digital.laboratory.platform.entrustment.vo.EntrustApproveRecordVO;
/**
* 委托审核记录 实体 vo dto等对象转换
*/
public class EntrustApproveRecordConvert {
public static EntrustApproveRecordVO entityToVO(EntrustApproveRecord entity) {
EntrustApproveRecordVO entrustApproveRecordVO = new EntrustApproveRecordVO();
entrustApproveRecordVO.setId(entity.getId());
entrustApproveRecordVO.setEntrustId(entity.getEntrustId());
entrustApproveRecordVO.setApproveType(entity.getApproveType());
entrustApproveRecordVO.setComments(entity.getComments());
entrustApproveRecordVO.setUserId(entity.getUserId());
entrustApproveRecordVO.setOrgId(entity.getOrgId());
entrustApproveRecordVO.setApproveTime(entity.getApproveTime());
return entrustApproveRecordVO;
}
}

@ -1,5 +1,6 @@
package digital.laboratory.platform.entrustment.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import digital.laboratory.platform.sys.entity.DrugLite;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -7,6 +8,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
import java.util.List;
@Data
@ -21,6 +23,13 @@ public class ApprovedUpdateEntrustDTO {
@NotBlank(message = "关联的委托id不能为空!")
private String entrustId;
@ApiModelProperty(value="委托日期, 鉴定委托书打印日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime entrustmentTime;
@ApiModelProperty(value = "案件名称")
private String caseName;
@ApiModelProperty(value = "案件简要")
private String caseBrief;

@ -96,4 +96,11 @@ public class UpdateCaseAndEntrustTypeDTO {
@ApiModelProperty(value="委托类型: 0=常规毒品, 1=生物样本")
private Integer entrustmentType;
/**
* 20250121 新增的一个委托类型选择生物样本类型后需要区分是 0 委托1 初筛 2 两社人员 3 其他人员 常规毒品 0 委托 1 初筛其他的不需要区分
* 存字符串不用code表达
*/
@ApiModelProperty("新增的一个委托类型,选择生物样本类型后需要区分是 0 委托、1 初筛、 2 两社人员、 3 其他人员, 常规毒品 0 委托 1 初筛,其他的不需要区分")
private String type;
}

@ -0,0 +1,59 @@
package digital.laboratory.platform.entrustment.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import lombok.Data;
/**
* 委托审核记录
* @TableName b_entrust_approve_record
*/
@Data
@TableName(value ="b_entrust_approve_record")
public class EntrustApproveRecord extends BaseEntity {
/**
* 主键标识
*/
@TableId(value = "ID", type = IdType.ASSIGN_ID)
private String id;
/**
* 审核关联的委托id
*/
private String entrustId;
/**
* 审核类型 目前 0 代表 审核不通过
*/
private Integer approveType;
/**
* 意见
*/
private String comments;
/**
* 用户id
*/
private String userId;
/**
* 机构id
*/
private String orgId;
/**
* 审核时间
*/
private LocalDateTime approveTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
import digital.laboratory.platform.sys.entity.DrugLite;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ -25,6 +26,12 @@ public class EntrustMaterialCheckoutResult extends BaseEntity {
@TableId(value = "entrust_material_id", type = IdType.ASSIGN_ID)
private String id;
/**
* 委托检材id
*/
@ApiModelProperty(value = "委托id")
private String entrustId;
/**
* 定性结果
*/

@ -53,7 +53,7 @@ public class Entrustment extends BaseEntity {
private String entrustmentNo;
/**
* 委托类型: 0=正常司法鉴定委托, 1=案前委托
* 委托类型: 0=常规毒品, 1=生物样本
*/
@ApiModelProperty(value="委托类型: 0=常规毒品, 1=生物样本")
private Integer entrustmentType;
@ -80,8 +80,8 @@ public class Entrustment extends BaseEntity {
* 委托日期, 鉴定委托书打印日期
*/
@ApiModelProperty(value="委托日期, 鉴定委托书打印日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate entrustmentTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime entrustmentTime;
/**
* 委托提交者, 后期可能会转给其他人user_id
@ -746,7 +746,12 @@ public class Entrustment extends BaseEntity {
@ApiModelProperty(value="是否退回(0:未退回,-1:已退回)")
private Integer returnOrNot;
/**
* 20250121 新增的一个委托类型选择生物样本类型后需要区分是 0 委托1 初筛 2 两社人员 3 其他人员 常规毒品 0 委托 1 初筛其他的不需要区分
* 存字符串不用code表达
*/
@ApiModelProperty("新增的一个委托类型,选择生物样本类型后需要区分是 0 委托、1 初筛、 2 两社人员、 3 其他人员, 常规毒品 0 委托 1 初筛,其他的不需要区分")
private String type;
}

@ -551,6 +551,11 @@ public class EntrustmentIdentificationMaterial extends BaseEntity {
@ApiModelProperty(value = "检材备注--贵阳新增需求")
private String remark;
@ApiModelProperty(value = "检材年龄,用于后续统计各年龄阶段的数据--贵阳新增需求")
private Integer materialAge;
@ApiModelProperty(value = "生物检材类型, 目前区分毛发和尿液--贵阳新增需求")
private String biologyType;
/*****************************************************************************************/
public String getOrderNo1() {

@ -0,0 +1,43 @@
package digital.laboratory.platform.entrustment.enums;
import cn.hutool.core.collection.CollUtil;
import lombok.Getter;
import java.util.List;
@Getter
public enum EntrustBiologyType {
HAIR(0, "毛发", CollUtil.newArrayList("黑色头发", "毛发")),
URINE(1, "尿液", CollUtil.newArrayList("黄色尿液")),
OTHER(2, "其他", CollUtil.newArrayList()),
;
private final Integer code;
private final String desc;
private final List<String> alias;
EntrustBiologyType(Integer code, String desc, List<String> alias) {
this.code = code;
this.desc = desc;
this.alias = alias;
}
// 根据名称或别名判断是否存在对应枚举
public static EntrustBiologyType isExist(String desc) {
for (EntrustBiologyType entrustStatisticType : values()) {
// 先匹配描述字段
if (entrustStatisticType.getDesc().equals(desc)) {
return entrustStatisticType;
}
// 然后匹配别名
if (entrustStatisticType.getAlias().contains(desc)) {
return entrustStatisticType;
}
}
return OTHER;
}
}

@ -0,0 +1,33 @@
package digital.laboratory.platform.entrustment.enums;
import lombok.Getter;
@Getter
public enum EntrustStatisticType {
ENTRUST(0, "委托"),
SCREEN(1, "初筛"),
SOCIETY(2, "两社人员"),
OTHER(3, "其他人员")
;
private final Integer code;
private final String desc;
EntrustStatisticType(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
// 根据名称判断是否存在对应枚举
public static EntrustStatisticType isExist(String desc) {
for (EntrustStatisticType entrustStatisticType : values()) {
if (entrustStatisticType.getDesc().equals(desc)) {
return entrustStatisticType;
}
}
throw new IllegalArgumentException("No enum constant with desc: " + desc);
}
}

@ -0,0 +1,29 @@
package digital.laboratory.platform.entrustment.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import digital.laboratory.platform.entrustment.entity.EntrustAlterApply;
import digital.laboratory.platform.entrustment.entity.EntrustApproveRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import digital.laboratory.platform.entrustment.vo.EntrustApproveRecordVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author ChenJiangBao
* @description 针对表b_entrust_approve_record(委托审核记录)的数据库操作Mapper
* @createDate 2025-01-23 09:26:25
* @Entity digital.laboratory.platform.entrustment.entity.EntrustApproveRecord
*/
@Mapper
public interface EntrustApproveRecordMapper extends BaseMapper<EntrustApproveRecord> {
IPage<EntrustApproveRecordVO> voPage(Page<EntrustApproveRecord> page, @Param(Constants.WRAPPER) Wrapper<EntrustApproveRecord> qw);
}

@ -1,8 +1,18 @@
package digital.laboratory.platform.entrustment.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import digital.laboratory.platform.entrustment.entity.EntrustMaterialCheckoutResult;
import digital.laboratory.platform.entrustment.entity.Entrustment;
import digital.laboratory.platform.entrustment.vo.EntrustMaterialCheckoutResultVO;
import digital.laboratory.platform.entrustment.vo.EntrustmentVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author ChenJiangBao
@ -13,6 +23,11 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface EntrustMaterialCheckoutResultMapper extends BaseMapper<EntrustMaterialCheckoutResult> {
IPage<EntrustMaterialCheckoutResultVO> getEntrustMaterialCheckoutResultVOPage(@Param("page") IPage<EntrustMaterialCheckoutResult> page, @Param(Constants.WRAPPER) Wrapper<EntrustMaterialCheckoutResult> qw);
List<EntrustMaterialCheckoutResultVO> voList(@Param(Constants.WRAPPER) Wrapper<EntrustMaterialCheckoutResult> qw);
}

@ -0,0 +1,22 @@
package digital.laboratory.platform.entrustment.query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 委托中检材检出结果消息 查询对象分页查询列表查询
*
* @author Chen
* @since 1.0.0 2025-02-18
*/
@Data
@ApiModel(description = "委托中检材检出结果消息 查询对象(分页查询、列表查询)")
public class EntrustMaterialCheckoutResultQuery extends BaseQuery {
@ApiModelProperty("委托id")
private String entrustId;
}

@ -0,0 +1,31 @@
package digital.laboratory.platform.entrustment.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import digital.laboratory.platform.entrustment.entity.EntrustApproveRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import digital.laboratory.platform.entrustment.entity.Entrustment;
import digital.laboratory.platform.entrustment.query.BaseQuery;
import digital.laboratory.platform.entrustment.vo.EntrustApproveRecordVO;
import digital.laboratory.platform.sewage.entity.UpdateInfo;
/**
* @author ChenJiangBao
* @description 针对表b_entrust_approve_record(委托审核记录)的数据库操作Service
* @createDate 2025-01-23 09:26:25
*/
public interface EntrustApproveRecordService extends IService<EntrustApproveRecord> {
/**
* 分页查询-委托审核记录
* @param query
* @return
*/
IPage<EntrustApproveRecordVO> voPage(BaseQuery query);
/**
* 保存审核不通过记录
* @param entrust
* @param pi
*/
void saveRecord(Entrustment entrust, UpdateInfo pi);
}

@ -1,8 +1,11 @@
package digital.laboratory.platform.entrustment.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import digital.laboratory.platform.entrustment.dto.EntrustMaterialCheckoutResultDTO;
import digital.laboratory.platform.entrustment.entity.EntrustMaterialCheckoutResult;
import digital.laboratory.platform.entrustment.query.EntrustMaterialCheckoutResultQuery;
import digital.laboratory.platform.entrustment.vo.EntrustMaterialCheckoutResultVO;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@ -15,6 +18,14 @@ import java.util.List;
*/
public interface EntrustMaterialCheckoutResultService extends IService<EntrustMaterialCheckoutResult> {
/**
* 构建委托材料检验结果字符串
*
* @param entrustId 委托ID
* @return 委托材料检验结果字符串
*/
String buildEntrustMaterialCheckoutResultStr(String entrustId);
/**
* 根据DTO保存检材得检出结果信息
* @param dto 检出DTO
@ -30,4 +41,10 @@ public interface EntrustMaterialCheckoutResultService extends IService<EntrustMa
*/
void exportExcel(List<String> entrustIds, HttpServletResponse response) throws IOException;
/**
* vo 分页对象
* @param query
* @return
*/
IPage<EntrustMaterialCheckoutResultVO> voiPage(EntrustMaterialCheckoutResultQuery query);
}

@ -83,12 +83,14 @@ public interface EntrustmentService extends IService<Entrustment> {
//生成鉴定事项确认书
Boolean generateIdentifyItemsBook(String entrustId);
/**
*获取文书名称
* 获取文书名称
*
* @param entrustId
* @param whatBook entrust-委托书 identItemBook-鉴定事项确认书 identfyBook-鉴定书
* @param docType
* @return
*/
String getBookNameByEntrustId(String entrustId,String whatBook);
String getBookNameByEntrustId(String entrustId, String whatBook, String docType);
/**
* 构建鉴定要求

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import digital.laboratory.platform.common.aop.annotation.DlpResultProc;
import digital.laboratory.platform.common.core.constant.OSSDirectoryConstants;
import digital.laboratory.platform.common.core.exception.ValidateCodeException;
import digital.laboratory.platform.common.mybatis.security.service.DLPUser;
@ -52,9 +53,6 @@ public class EntrustAlterApplyServiceImpl extends ServiceImpl<EntrustAlterApplyM
@Resource
private OssFile ossFile;
@Resource
private CommonFeignService commonFeignService;
@Resource
private CaseEventService caseEventService;
@ -66,6 +64,7 @@ public class EntrustAlterApplyServiceImpl extends ServiceImpl<EntrustAlterApplyM
@Override
@DlpResultProc
public IPage<EntrustAlterApplyVO> voPage(EntrustAlterApplyQuery query) {
DLPUser user = SecurityUtils.getUser();
if (!user.isStaff()) {
@ -83,6 +82,7 @@ public class EntrustAlterApplyServiceImpl extends ServiceImpl<EntrustAlterApplyM
* @return
*/
@Override
@DlpResultProc
public EntrustAlterApplyVO save(EntrustAlterApplyDTO dto) {
// 对当前委托进行校验,如果有关联该委托的申请信息,判断状态如果不是已完成则提示先完成当前申请
if (isApplying(dto.getEntrustId())) {
@ -208,7 +208,10 @@ public class EntrustAlterApplyServiceImpl extends ServiceImpl<EntrustAlterApplyM
// 提取委托id
String entrustId = entrustment.getId();
CaseEvent oldCaseInfo = caseEventService.getById(entrustment.getCaseId());
caseEventService.update(Wrappers.<CaseEvent>lambdaUpdate().eq(CaseEvent::getId, entrustment.getCaseId()).set(CaseEvent::getCaseBrief, dto.getCaseBrief()));
caseEventService.update(Wrappers.<CaseEvent>lambdaUpdate().eq(CaseEvent::getId, entrustment.getCaseId())
.set(CaseEvent::getCaseBrief, dto.getCaseBrief())
.set(CaseEvent::getCaseName, dto.getCaseName())
);
// 添加更新记录 | <br> 代表换行
LocalDateTime opDate = null; // 操作的时间,这里也用来标识是否有更新
if (!oldCaseInfo.getCaseBrief().equals(dto.getCaseBrief())) {
@ -229,7 +232,8 @@ public class EntrustAlterApplyServiceImpl extends ServiceImpl<EntrustAlterApplyM
opDate
);
entrustmentIdentificationMaterialService.updateBatchById(entrustmentIdentificationMaterialList);
// 3. 更新委托鉴定要求
// 3. 更新委托鉴定要求和委托时间
entrustment.setEntrustmentTime(dto.getEntrustmentTime()); // 修改委托时间
updateEntrustmentRequirement(entrustment, dto.getEntrustRequirement(), updateRecordBuilder, opDate);
// 如果确认完成,则删除鉴定事项确认书和委托书,并更新申请状态为已完成
if (dto.getFinished()) {
@ -424,11 +428,11 @@ public class EntrustAlterApplyServiceImpl extends ServiceImpl<EntrustAlterApplyM
*/
private void fillVOInfo(EntrustAlterApplyVO e) {
e.setStatusName(EntrustAlterApplyStatus.fromStatus(e.getStatus()).getDesc());
e.setApplicantName(commonFeignService.remoteGetUserById(e.getApplicant()).getName());
if (StrUtil.isNotBlank(e.getReviewer())) {
e.setReviewerName(commonFeignService.remoteGetUserById(e.getReviewer()).getName());
}
e.setApplyOrgName(commonFeignService.remoteGetSysOrg(e.getApplyOrgId()).getName());
// e.setApplicantName(commonFeignService.remoteGetUserById(e.getApplicant()).getName());
// if (StrUtil.isNotBlank(e.getReviewer())) {
// e.setReviewerName(commonFeignService.remoteGetUserById(e.getReviewer()).getName());
// }
// e.setApplyOrgName(commonFeignService.remoteGetSysOrg(e.getApplyOrgId()).getName());
}
}

@ -0,0 +1,70 @@
package digital.laboratory.platform.entrustment.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import digital.laboratory.platform.common.aop.annotation.DlpResultProc;
import digital.laboratory.platform.entrustment.entity.EntrustApproveRecord;
import digital.laboratory.platform.entrustment.entity.Entrustment;
import digital.laboratory.platform.entrustment.query.BaseQuery;
import digital.laboratory.platform.entrustment.service.EntrustApproveRecordService;
import digital.laboratory.platform.entrustment.mapper.EntrustApproveRecordMapper;
import digital.laboratory.platform.entrustment.vo.EntrustApproveRecordVO;
import digital.laboratory.platform.sewage.entity.UpdateInfo;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/**
* @author ChenJiangBao
* @description 针对表b_entrust_approve_record(委托审核记录)的数据库操作Service实现
* @createDate 2025-01-23 09:26:25
*/
@Service
public class EntrustApproveRecordServiceImpl extends ServiceImpl<EntrustApproveRecordMapper, EntrustApproveRecord>
implements EntrustApproveRecordService{
/**
* 分页查询-委托审核记录
* @param query
* @return
*/
@Override
@DlpResultProc
public IPage<EntrustApproveRecordVO> voPage(BaseQuery query) {
QueryWrapper<EntrustApproveRecord> queryWrapper = appendQueryCriteria(query);
return baseMapper.voPage(new Page<>(query.getCurrent(), query.getSize()), queryWrapper);
}
/**
* 保存审核不通过记录
* @param entrust
* @param pi
*/
@Override
public void saveRecord(Entrustment entrust, UpdateInfo pi) {
EntrustApproveRecord entrustApproveRecord = new EntrustApproveRecord();
entrustApproveRecord.setApproveTime(LocalDateTime.now());
entrustApproveRecord.setApproveType(0);
entrustApproveRecord.setEntrustId(entrust.getId());
entrustApproveRecord.setComments(pi.getComments());
entrustApproveRecord.setUserId(pi.getUserId());
entrustApproveRecord.setOrgId(pi.getOrgId());
this.save(entrustApproveRecord);
}
private QueryWrapper<EntrustApproveRecord> appendQueryCriteria(BaseQuery query) {
QueryWrapper<EntrustApproveRecord> queryWrapper = new QueryWrapper<>();
queryWrapper.like(StrUtil.isNotBlank(query.getKeywords()), "c.case_name", query.getKeywords());
queryWrapper.ge(query.getStartDate() != null, "ear.approve_time", query.getStartDate());
queryWrapper.le(query.getEndDate() != null, "ear.approve_time", query.getEndDate());
queryWrapper.orderByDesc("ear.approve_time");
return queryWrapper;
}
}

@ -1,7 +1,10 @@
package digital.laboratory.platform.entrustment.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import digital.laboratory.platform.common.core.exception.CheckedException;
import digital.laboratory.platform.entrustment.convert.DrugLiteConvert;
@ -13,14 +16,17 @@ import digital.laboratory.platform.entrustment.entity.Entrustment;
import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial;
import digital.laboratory.platform.entrustment.enums.EntrustmentStatusConstants;
import digital.laboratory.platform.entrustment.mapper.EntrustMaterialCheckoutResultMapper;
import digital.laboratory.platform.entrustment.query.EntrustMaterialCheckoutResultQuery;
import digital.laboratory.platform.entrustment.service.CommonFeignService;
import digital.laboratory.platform.entrustment.service.EntrustMaterialCheckoutResultService;
import digital.laboratory.platform.entrustment.service.EntrustmentIdentificationMaterialService;
import digital.laboratory.platform.entrustment.service.EntrustmentService;
import digital.laboratory.platform.entrustment.vo.EntrustMaterialCheckoutResultVO;
import digital.laboratory.platform.sys.entity.Area;
import digital.laboratory.platform.sys.entity.DrugLite;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -29,10 +35,7 @@ import java.io.IOException;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -54,6 +57,40 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
@Resource
private CommonFeignService commonFeignService;
/**
* 构建委托材料检验结果字符串
*
* @param entrustId 委托ID
* @return 委托材料检验结果字符串
*/
@Override
public String buildEntrustMaterialCheckoutResultStr(String entrustId) {
// 先获取检材列表
List<EntrustmentIdentificationMaterial> materialList = entrustmentIdentificationMaterialService.list(Wrappers.<EntrustmentIdentificationMaterial>lambdaQuery().eq(EntrustmentIdentificationMaterial::getEntrustmentId, entrustId));
Map<String, EntrustmentIdentificationMaterial> materialMap = materialList.stream().collect(Collectors.toMap(EntrustmentIdentificationMaterial::getId, Function.identity()));
// 获取检测结果
List<EntrustMaterialCheckoutResult> checkoutResultList = super.list(Wrappers.<EntrustMaterialCheckoutResult>lambdaQuery().eq(EntrustMaterialCheckoutResult::getEntrustId, entrustId));
if (CollUtil.isEmpty(checkoutResultList)) {
return "";
}
List<String> resultStrList = new ArrayList<>();
// 对检测结果进行分组
Map<String, List<EntrustMaterialCheckoutResult>> checkoutResultGroupMap = checkoutResultList.stream().collect(Collectors.groupingBy(item -> DrugLiteConvert.joiningDrugListNameToStr(item.getQualitativeResult(), "、")));
checkoutResultGroupMap.forEach((key, value) -> {
StringBuilder builder = new StringBuilder();
builder
.append(value.stream().map(item -> materialMap.get(item.getId()).getOrderNo1()).collect(Collectors.joining("、")))
.append(" : [")
.append(key)
.append("]");
resultStrList.add(builder.toString());
});
return resultStrList.stream().sorted().collect(Collectors.joining("\n"));
}
/**
* 根据DTO保存检材得检出结果信息
* @param dto 检出DTO
@ -79,6 +116,7 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
}
EntrustMaterialCheckoutResult entrustMaterialCheckoutResult = EntrustMaterialCheckoutResultConvert.dtoToEntity(dto);
entrustMaterialCheckoutResult.setId(id);
entrustMaterialCheckoutResult.setEntrustId(identificationMaterial.getEntrustmentId());
if (super.count(Wrappers.<EntrustMaterialCheckoutResult>lambdaQuery().eq(EntrustMaterialCheckoutResult::getId, id)) <= 0) {
// throw new CheckedException(String.format("检材编号 [%s] 的检材检出结果已经存在!", identificationMaterial.getImNo()));
success = super.save(entrustMaterialCheckoutResult);
@ -143,6 +181,35 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
buildExcel(response, checkoutResultExcelDTOS);
}
/**
* vo 分页对象
* @param query
* @return
*/
@Override
public IPage<EntrustMaterialCheckoutResultVO> voiPage(EntrustMaterialCheckoutResultQuery query) {
IPage<EntrustMaterialCheckoutResult> page = this.page(
new Page<>(query.getCurrent(), query.getSize()),
Wrappers.<EntrustMaterialCheckoutResult>lambdaQuery()
.eq(StrUtil.isNotBlank(query.getEntrustId()), EntrustMaterialCheckoutResult::getEntrustId, query.getEntrustId())
.orderByDesc(EntrustMaterialCheckoutResult::getUpdateTime)
);
IPage<EntrustMaterialCheckoutResultVO> voPage = new Page<>();
BeanUtils.copyProperties(page, voPage, "records");
List<EntrustMaterialCheckoutResult> records = page.getRecords();
if (CollUtil.isNotEmpty(records)) {
List<EntrustmentIdentificationMaterial> entrustmentIdentificationMaterials = entrustmentIdentificationMaterialService.list(Wrappers.<EntrustmentIdentificationMaterial>lambdaQuery().in(EntrustmentIdentificationMaterial::getId, records.stream().map(EntrustMaterialCheckoutResult::getId).collect(Collectors.toSet())));
Map<String, EntrustmentIdentificationMaterial> materialMap = entrustmentIdentificationMaterials.stream().collect(Collectors.toMap(EntrustmentIdentificationMaterial::getId, Function.identity()));
List<EntrustMaterialCheckoutResultVO> entrustMaterialCheckoutResultVOS = records.stream().map(record -> {
EntrustMaterialCheckoutResultVO entrustMaterialCheckoutResultVO = EntrustMaterialCheckoutResultConvert.entityToVO(record);
entrustMaterialCheckoutResultVO.setName(materialMap.get(record.getId()).getName());
return entrustMaterialCheckoutResultVO;
}).collect(Collectors.toList());
voPage.setRecords(entrustMaterialCheckoutResultVOS);
}
return voPage;
}
/**
* 构建并输出Excel文件
*

@ -25,6 +25,7 @@ import digital.laboratory.platform.common.security.util.SecurityUtils;
import digital.laboratory.platform.entrustment.dto.PrintDTO;
import digital.laboratory.platform.entrustment.entity.*;
import digital.laboratory.platform.entrustment.enums.AnalysisOptionEnums;
import digital.laboratory.platform.entrustment.enums.EntrustBiologyType;
import digital.laboratory.platform.entrustment.enums.EntrustmentStatusConstants;
import digital.laboratory.platform.entrustment.handler.AppStartupRunner;
import digital.laboratory.platform.entrustment.mapper.EntrustmentIdentificationMaterialMapper;
@ -1184,6 +1185,10 @@ public class EntrustmentIdentificationMaterialServiceImpl extends ServiceImpl<En
Integer currentEntrustMaterialCount = (int) this.count(Wrappers.<EntrustmentIdentificationMaterial>lambdaQuery()
.eq(EntrustmentIdentificationMaterial::getEntrustmentId, entrustment.getId()));
for (EntrustmentIdentificationMaterial identificationMaterial : identificationMaterialList) {
// 先提前根据性状设置生物类型 -》 只正对生物样本数据
if (identificationMaterial.getTypeName().equals("生物样本") || identificationMaterial.getType().equals("1")) {
identificationMaterial.setBiologyType(EntrustBiologyType.isExist(identificationMaterial.getFormName()).getDesc());
}
if (StringUtils.isNotBlank(identificationMaterial.getId()) && StringUtils.isNotBlank(identificationMaterial.getSample1No())) {
identificationMaterial = this.putUpdateById(identificationMaterial, dlpUser);
} else {
@ -1266,7 +1271,6 @@ public class EntrustmentIdentificationMaterialServiceImpl extends ServiceImpl<En
identificationMaterial.setSample1RepeatWeigh(identificationMaterial.getQuantity());
identificationMaterial.setSample2RepeatWeigh(null);
//判断检材的重量不能大于物证的重量 暂不判断,因为可能单位不统一
if (this.save(identificationMaterial)) {
// 新增检材记录成功

@ -146,6 +146,9 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
@Resource
private RemoteFeatureAnalysis remoteFeatureAnalysis;
@Resource
private EntrustApproveRecordService entrustApproveRecordService;
// /**
// * 审核人员由委托创建者选择。如果 true, 前台在委托提交审核前, 弹出界面让委托人选择审核者; 如果 false, 由系统自动选择审核者。
@ -373,13 +376,13 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
@Override
public List<SysUser> taskAvailableUserList_Approve() {
R<List<SysUser>> r = remoteUserService.innerGetUsersByPermission(CommonConstants.ORG_TREE_ROOT_ID, Arrays.asList(new String[]{"EntrustmentApprove"}));
R<List<SysUser>> r = remoteUserService.innerGetUsersByPermission(CommonConstants.ORG_TREE_ROOT_ID, Collections.singletonList("EntrustmentApprove"));
return r.getData();
}
@Override
public List<SysUser> taskAvailableUserList_Confirm(String clientOrgId) {
R<List<SysUser>> r = remoteUserService.innerGetUsersByPermission(clientOrgId, Arrays.asList(new String[]{"EntrustmentConfirm"}));
R<List<SysUser>> r = remoteUserService.innerGetUsersByPermission(clientOrgId, Collections.singletonList("EntrustmentConfirm"));
return r.getData();
}
@ -934,7 +937,7 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
}
executeCount++;
}
;
sbMaterialName.delete(sbMaterialName.length() - 1, sbMaterialName.length());
String req1 = "对" + sbMaterialName.toString() + "中是否含有";
String req2 = sbDrugDes.toString();
@ -968,16 +971,17 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
*
* @param entrustId
* @param whatBook entrust-委托书 identItemBook-鉴定事项确认书 identfyBook-鉴定书
* @param docType 该参数只有用于委托书上
* @return
*/
@Override
public String getBookNameByEntrustId(String entrustId, String whatBook) {
public String getBookNameByEntrustId(String entrustId, String whatBook, String docType) {
//先判断需要的文书是否在OSS上存在,如果存在,直接返回地址,如果不存在,则需要生成
String retBookName = "";
Entrustment entrustment = this.getById(entrustId);
switch (whatBook) {
case "entrust":
retBookName = OSSDirectoryConstants.DOCUMENT_ENTRUSTMENT_DIRECTORY + "/" + entrustId + "/" + "鉴定委托书-" + entrustment.getEntrustmentNo() + ".pdf";
retBookName = OSSDirectoryConstants.DOCUMENT_ENTRUSTMENT_DIRECTORY + "/" + entrustId + "/" + "鉴定委托书-" + entrustment.getEntrustmentNo() + ("docx".equals(docType) ? ".docx" : ".pdf");
break;
case "identItemBook":
retBookName = OSSDirectoryConstants.IDENTIFY_BOOK_DIRECTORY + "/" + entrustment.getId() + "/" + "鉴定事项确认书-" + entrustment.getEntrustmentNo() + ".docx";
@ -1607,7 +1611,7 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
dlpUser.getOrgName(),
"审核不通过",
opCode, entrustment.getStatus(), false, entrust.getCheckComments());
entrustApproveRecordService.saveRecord(entrust, pi);
pis.add(pi);
}
// entrustment.setProcessInfo(pis);
@ -2052,6 +2056,7 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
updateWrapper.set("deliver_time", entrustment.getDeliverTime());
updateWrapper.set("entrustment_time", LocalDateTime.now());
updateWrapper.set("deliver_submitter", entrustment.getDeliverSubmitter());
updateWrapper.set("status", entrustment.getStatus());
@ -2137,7 +2142,7 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
//Map<String, Object> dm = BeanMap.create(ev); //ClassUtils.objectToMap(ev);
Map<String, Object> dm = ClassUtils.objectToMap(ev);
if (ev.getEntrustmentTime() == null) {
ev.setEntrustmentTime(LocalDate.now());
ev.setEntrustmentTime(LocalDateTime.now());
UpdateWrapper<Entrustment> updateWrapper = new UpdateWrapper<Entrustment>();
updateWrapper.eq("id", ev.getId()); // 查询条件是 id 相等
@ -2654,7 +2659,7 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
Map<String, Object> dm = ClassUtils.objectToMap(ev);
if (ev.getEntrustmentTime() == null) {
ev.setEntrustmentTime(LocalDate.now());
ev.setEntrustmentTime(LocalDateTime.now());
UpdateWrapper<Entrustment> updateWrapper = new UpdateWrapper<Entrustment>();
updateWrapper.eq("id", ev.getId()); // 查询条件是 id 相等
@ -3324,6 +3329,7 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT, entrustmentList2.size(), "待受理 (大数据平台)"));
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT, entrustmentList3.size(), String.format("已受理 (%s)", EntrustMarkConstants.PUBLIC_SECURITY_BUREAU)));
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT, entrustmentList4.size(), "已受理 (大数据平台)"));
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT, this.list(Wrappers.<Entrustment>lambdaQuery().inSql(Entrustment::getId, "SELECT entrust_id FROM b_entrust_material_checkout_result")).size(), "检测结果"));
markersVOS.add(new MarkersVO(EntrustMarkConstants.REVIEW_OR_APPROVAL,
this.list(new LambdaQueryWrapper<Entrustment>()
.in(Entrustment::getStatus, integers1)
@ -3491,7 +3497,7 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
@Override
public boolean alertTimeFiledInfoByEntrustDate(Entrustment entrustment) {
Entrustment entrust = super.getById(entrustment.getId());
LocalDate entrustTime = entrust.getEntrustmentTime();
LocalDateTime entrustTime = entrust.getEntrustmentTime();
if (entrustTime == null) {
throw new ValidateCodeException("该委托信息中的委托时间为空!");
}

@ -30,4 +30,11 @@ public class CaseEventVO extends CaseEvent {
@ApiModelProperty(value="委托类型: 0=常规毒品, 1=生物样本")
private Integer entrustmentType;
/**
* 20250121 新增的一个委托类型选择生物样本类型后需要区分是 0 委托1 初筛 2 两社人员 3 其他人员 常规毒品 0 委托 1 初筛其他的不需要区分
* 存字符串不用code表达
*/
@ApiModelProperty("新增的一个委托类型,选择生物样本类型后需要区分是 0 委托、1 初筛、 2 两社人员、 3 其他人员, 常规毒品 0 委托 1 初筛,其他的不需要区分")
private String type;
}

@ -1,10 +1,9 @@
package digital.laboratory.platform.entrustment.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
import digital.laboratory.platform.common.aop.annotation.DlpFeign;
import digital.laboratory.platform.sys.feign.RemoteOrgService;
import digital.laboratory.platform.sys.feign.RemoteUserService;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -52,6 +51,7 @@ public class EntrustAlterApplyVO {
* 申请人名称
*/
@ApiModelProperty(value = "申请人名称")
@DlpFeign(feignClient = RemoteUserService.class, methodName = "innerGetById", params = {"applicant"}, resultField = "name")
private String applicantName;
/**
@ -76,10 +76,11 @@ public class EntrustAlterApplyVO {
* 申请单位名称
*/
@ApiModelProperty(value = "申请单位名称")
@DlpFeign(feignClient = RemoteOrgService.class, methodName = "getById", params = {"applyOrgId"}, resultField = "name")
private String applyOrgName;
/**
* 审核人id
* 审核人id
*/
@ApiModelProperty(value = "审核人id ")
private String reviewer;
@ -88,6 +89,7 @@ public class EntrustAlterApplyVO {
* 审核人名字
*/
@ApiModelProperty(value = "审核人名字 ")
@DlpFeign(feignClient = RemoteUserService.class, methodName = "innerGetById", params = {"reviewer"}, resultField = "name")
private String reviewerName;
/**
@ -114,6 +116,9 @@ public class EntrustAlterApplyVO {
@ApiModelProperty(value = "更新操作记录,记录着更改前的信息和更改后的信息")
private String updateRecord;
@ApiModelProperty(value="委托类型: 0=常规毒品, 1=生物样本")
private Integer entrustmentType;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
@ -160,4 +165,4 @@ public class EntrustAlterApplyVO {
sb.append("]");
return sb.toString();
}
}
}

@ -0,0 +1,83 @@
package digital.laboratory.platform.entrustment.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import digital.laboratory.platform.common.aop.annotation.DlpFeign;
import digital.laboratory.platform.sys.feign.RemoteOrgService;
import digital.laboratory.platform.sys.feign.RemoteUserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 委托审核记录
* @TableName b_entrust_approve_record
*/
@Data
@TableName(value ="b_entrust_approve_record")
public class EntrustApproveRecordVO {
/**
* 主键标识
*/
@ApiModelProperty("主键标识")
private String id;
/**
* 审核关联的委托id
*/
@ApiModelProperty("审核关联的委托id")
private String entrustId;
@ApiModelProperty(value="委托类型: 0=常规毒品, 1=生物样本")
private Integer entrustmentType;
@ApiModelProperty("委托单位名称")
private String clientOrgName;
@ApiModelProperty("案件名称")
private String caseName;
/**
* 审核类型 目前 0 代表 审核不通过
*/
@ApiModelProperty("审核类型, 目前 0 代表 审核不通过")
private Integer approveType;
/**
* 意见
*/
@ApiModelProperty("审核意见")
private String comments;
/**
* 用户id
*/
@ApiModelProperty("审核用户id")
private String userId;
@ApiModelProperty("审核用户姓名")
@DlpFeign(feignClient = RemoteUserService.class, methodName = "innerGetById", params = {"userId"}, resultField = "name")
private String userName;
/**
* 机构id
*/
@ApiModelProperty("审核机构id")
private String orgId;
@ApiModelProperty("审核机构名称")
@DlpFeign(feignClient = RemoteOrgService.class, methodName = "getById", params = {"orgId"}, resultField = "name")
private String orgName;
/**
* 审核时间
*/
@ApiModelProperty("审核时间")
private LocalDateTime approveTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

@ -23,9 +23,15 @@ public class EntrustMaterialCheckoutResultVO {
/**
* 委托检材id
*/
@ApiModelProperty("委托id")
@ApiModelProperty(value = "委托id")
private String entrustId;
/**
* 检材名称
*/
@ApiModelProperty(value = "检材名称")
private String name;
/**
* 定性结果
*/
@ -50,4 +56,7 @@ public class EntrustMaterialCheckoutResultVO {
@ApiModelProperty("检出结果的备注信息")
private String checkoutRemark;
@ApiModelProperty(value = "委托检材顺序号,由系统根据录入顺序生成")
private Integer orderNo;
}

@ -2,6 +2,7 @@ package digital.laboratory.platform.entrustment.vo;
import digital.laboratory.platform.entrustment.entity.Entrustment;
import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@ -39,5 +40,11 @@ public class EntrustmentVO extends Entrustment {
String happenTime;//案发时间
@ApiModelProperty("委托关联的检出有多少检出的数量")
private Integer checkoutResultCount;
@ApiModelProperty("委托关联的检出有多少检出信息字符串")
private String checkoutResultStr;
private List<EntrustmentIdentificationMaterial> materialList;//检材列表
}

@ -31,7 +31,12 @@
<!-- 连接委托表查询委托案件名称-->
<sql id="getVOSQL">
SELECT eaa.*, ce.case_name, ce.id as case_id FROM
SELECT
eaa.*,
ce.case_name,
ce.id as case_id,
e.entrustment_type
FROM
b_entrust_alter_apply eaa
LEFT JOIN b_entrustment e ON eaa.entrust_id = e.id
LEFT JOIN b_case_event ce ON ce.id = e.case_id

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="digital.laboratory.platform.entrustment.mapper.EntrustApproveRecordMapper">
<resultMap id="BaseResultMap" type="digital.laboratory.platform.entrustment.entity.EntrustApproveRecord">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="entrustId" column="entrust_id" jdbcType="VARCHAR"/>
<result property="approveType" column="approve_type" jdbcType="TINYINT"/>
<result property="comments" column="comments" jdbcType="VARCHAR"/>
<result property="userId" column="user_id" jdbcType="VARCHAR"/>
<result property="orgId" column="org_id" jdbcType="VARCHAR"/>
<result property="approveTime" column="approve_time" jdbcType="TIMESTAMP"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
ear.id,
ear.entrust_id,
ear.approve_type,
ear.comments,
ear.user_id,
ear.org_id,
ear.approve_time,
ear.create_time,
ear.create_by,
ear.update_time,
ear.update_by
</sql>
<sql id="EntrustApproveRecordVOSQL">
SELECT
<include refid="Base_Column_List"></include>,
c.case_name,
e.client_org_name,
e.entrustment_type
FROM b_entrust_approve_record ear
LEFT JOIN b_entrustment e ON e.id = ear.entrust_id
LEFT JOIN b_case_event c on e.case_id = c.id
</sql>
<select id="voPage" resultType="digital.laboratory.platform.entrustment.vo.EntrustApproveRecordVO">
<include refid="EntrustApproveRecordVOSQL"></include>
${ew.customSqlSegment}
</select>
</mapper>

@ -6,6 +6,7 @@
<resultMap id="BaseResultMap" type="digital.laboratory.platform.entrustment.entity.EntrustMaterialCheckoutResult">
<id property="id" column="entrust_material_id" jdbcType="VARCHAR"/>
<result property="entrustId" column="entrust_id" jdbcType="VARCHAR"/>
<result property="qualitativeResult" column="qualitative_result" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
<result property="quantitativeResult" column="quantitative_result" jdbcType="VARCHAR"/>
<result property="otherResult" column="other_result" jdbcType="VARCHAR"/>
@ -15,14 +16,41 @@
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
</resultMap>
<resultMap id="EntrustMaterialCheckoutResultVO" type="digital.laboratory.platform.entrustment.vo.EntrustMaterialCheckoutResultVO" extends="BaseResultMap">
<result property="name" column ="name"/>
<result property="orderNo" column ="order_no"/>
</resultMap>
<sql id="Base_Column_List">
entrust_material_id,
qualitative_result,
quantitative_result,
other_result,
create_time,
create_by,
update_time,
update_by
emr.entrust_material_id,
emr.entrust_id,
emr.qualitative_result,
emr.quantitative_result,
emr.other_result,
emr.create_time,
emr.create_by,
emr.update_time,
emr.update_by
</sql>
<sql id="getEntrustMaterialCheckoutResultVO">
SELECT
<include refid="Base_Column_List"/>,
em.name,
em.entrustment_id,
em.order_no
FROM b_entrust_material_checkout_result emr
LEFT JOIN b_entrustment_identification_material em
ON emr.entrust_material_id = em.id
</sql>
<select id="getEntrustMaterialCheckoutResultVOPage" resultMap="EntrustMaterialCheckoutResultVO" resultType="digital.laboratory.platform.entrustment.vo.EntrustMaterialCheckoutResultVO">
<include refid="getEntrustMaterialCheckoutResultVO"/>
${ew.customSqlSegment}
</select>
<select id="voList" resultMap="EntrustMaterialCheckoutResultVO" resultType="digital.laboratory.platform.entrustment.vo.EntrustMaterialCheckoutResultVO">
<include refid="getEntrustMaterialCheckoutResultVO"/>
${ew.customSqlSegment}
</select>
</mapper>

@ -121,8 +121,7 @@
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="returnOrNot" column="return_or_not"/>
<result property="type" column="type"/>
</resultMap>
<resultMap id="entrustmentVO" type="digital.laboratory.platform.entrustment.vo.EntrustmentVO" extends="entrustmentMap">
@ -148,92 +147,230 @@
</resultMap>
<sql id="BaseColumnList" >
e.id,
e.case_id,
e.entrustment_no,
e.third_sys_entrust_no,
e.entrustment_type,
e.business_type,
e.process_instance_id,
e.identification_id,
e.entrustment_time,
e.submitter,
e.submit_time,
e.client_org_id,
e.client_org_name,
e.client_address,
e.client_postcode,
e.client_tel,
e.client_fax,
e.identification_domain,
e.identification_org_name,
e.qualitative_analysis,
e.quantitative_analysis,
e.other_identification_requests,
e.candidate_drugs,
e.is_client_specified_method,
e.client_specified_method,
e.destructive_analysis,
e.other_identification_notes,
e.reidentification,
e.old_identification_org_name,
e.old_identification_document,
e.old_identification_result,
e.reidentification_reason,
e.avoid_identifier,
e.specified_identifier,
e.other_agreement,
e.comments,
e.check_candidate_user,
e.check_claim_user,
e.check_claim_time,
e.check_user,
e.check_time,
e.check_comments,
e.check_times,
e.check_all_identification_material_confirmed,
e.approve_candidate_user,
e.approve_claim_user,
e.approve_claim_time,
e.approve_user,
e.approve_time,
e.approve_comments,
e.approve_times,
e.deliver_confirm_user,
e.deliver_confirm_time,
e.deliver_confirm_comments,
e.deliver_time,
e.deliver_submitter,
e.deliverer1_name,
e.deliverer1_position,
e.deliverer1_cert,
e.deliverer1_id,
e.deliverer1_phone,
e.deliverer2_name,
e.deliverer2_position,
e.deliverer2_cert,
e.deliverer2_id,
e.deliverer2_phone,
e.accept_claim_user,
e.accept_claim_time,
e.accept_no,
e.accept_user,
e.accept_time,
e.accept_comments,
e.identification_items_confirm_printed,
e.process_info,
e.report_receive_mode,
e.report_receiver1_user_id,
e.report_receiver1_name,
e.report_receiver1_position,
e.report_receiver1_cert,
e.report_receiver1_id,
e.report_receiver1_phone,
e.report_receiver2_user_id,
e.report_receiver2_name,
e.report_receiver2_position,
e.report_receiver2_cert,
e.report_receiver2_id,
e.report_receiver2_phone,
e.report_sender_user_id,
e.report_sent_time,
e.report_receiver1_signature,
e.report_receiver2_signature,
e.sample_receive_mode,
e.sample_receiver1_user_id,
e.sample_receiver1_name,
e.sample_receiver1_position,
e.sample_receiver1_cret,
e.sample_receiver1_id,
e.sample_receiver1_phone,
e.sample_receiver2_user_id,
e.sample_receiver2_name,
e.sample_receiver2_position,
e.sample_receiver2_cret,
e.sample_receiver2_id,
e.sample_receiver2_phone,
e.sample_sender_user_id,
e.sample_sent_time,
e.sample_receiver1_person_signature,
e.sample_receiver2_person_signnature,
e.status,
e.previous_status,
e.create_time,
e.create_by,
e.update_time,
e.update_by,
e.entrustment_letter_path,
e.identification_items_confirm_path,
e.transfer_status,
e.transfer_oper_signnature,
e.transfer_get_signnature,
e.transfer_name,
e.transfer_no,
e.accept_need_professional,
e.data_sources,
e.accept_no_third_sys,
e.entrust_requirement,
e.post_address,
e.return_or_not,
e.is_trans,
e.type
</sql>
<sql id="getEntrustmentVOSQL">
SELECT e.*,
c.case_name,
c.case_no,
c.case_brief,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.submitter
) AS submitter_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.check_claim_user
) AS check_claim_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.check_user
) AS check_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.approve_claim_user
) AS approve_claim_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.approve_user
) AS approve_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.deliver_confirm_user
) AS deliver_confirm_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.deliver_submitter
) AS deliver_submitter_name,
-- (
-- SELECT user.name
-- FROM dlp_base.sys_user user
-- WHERE user.user_id=e.accept_claim_user
-- ) AS accept_claim_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.accept_user
) AS accept_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.report_sender_user_id
) AS report_sender_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.sample_sender_user_id
) AS sample_sender_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.create_by
) AS create_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.update_by
) AS update_user_name,
SELECT
<include refid="BaseColumnList"></include>,
c.case_name,
c.case_no,
c.case_brief,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.submitter
) AS submitter_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.check_claim_user
) AS check_claim_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.check_user
) AS check_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.approve_claim_user
) AS approve_claim_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.approve_user
) AS approve_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.deliver_confirm_user
) AS deliver_confirm_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.deliver_submitter
) AS deliver_submitter_name,
-- (
-- SELECT user.name
-- FROM dlp_base.sys_user user
-- WHERE user.user_id=e.accept_claim_user
-- ) AS accept_claim_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.accept_user
) AS accept_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.report_sender_user_id
) AS report_sender_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.sample_sender_user_id
) AS sample_sender_user_name,
(
SELECT COUNT(*)
FROM b_entrustment_identification_material eim
WHERE eim.entrustment_id=e.id
) AS identification_material_count,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.create_by
) AS create_user_name,
(
SELECT user.name
FROM dlp_base.sys_user user
WHERE user.user_id=e.update_by
) AS update_user_name,
(
select identification_no
from b_identification i
where i.id = e.identification_id
) as identification_no
(
SELECT COUNT(*)
FROM b_entrustment_identification_material eim
WHERE eim.entrustment_id=e.id
) AS identification_material_count,
(
select identification_no
from b_identification i
where i.id = e.identification_id
) as identification_no,
(
SELECT COUNT(*) FROM b_entrust_material_checkout_result emr WHERE emr.entrust_id = e.id
) AS checkout_result_count
FROM b_entrustment e
LEFT JOIN b_case_event c on e.case_id=c.id
FROM b_entrustment e
LEFT JOIN b_case_event c on e.case_id=c.id
</sql>
<!-- 取委托列表分页 -->
@ -283,6 +420,9 @@
where d.id = #{id}
</select>
<!-- 根据检材结果获取委托列表 -->
<select id="getEntrustmentVOListByResult" resultMap="entrustmentVO">
<include refid="getEntrustmentVOSQL"/>
LEFT JOIN b_entrust_material_checkout_result emr ON e.id = emr.entrustment_id
</select>
</mapper>

Loading…
Cancel
Save