# 贵阳禁毒委托新增需求文档

## 20241031-1 鉴定要求 要按照顺序来写

### 1 需求描述

如果出现1号和3号检出海洛因，2号检冰毒。应该就写成1、2号检材中是否含有海洛因、2号检材中是否含有冰毒xxx

### 2 具体实现

#### 2.1 在获取委托检材时，先根据受理序号进行升序排序，然后调用生成鉴定要求的方法

![](assets/3b1ec783dcfa2bf90764365a46b9bc20eaf2b3a3.jpg)

#### 2.2 在生成鉴定要求的方法的时候对检材分组，选择创建有序的LinkedHashMap来维持升序的顺序

![](assets/98f1d9d0b581e99c51e5b4b8492bb3cf1c5693e4.jpg)

### 3 效果

![](assets/6a3905bbe4241dc571c19d3f8631883d3140c9c9.jpg)

## 20241031-2 送检受理委托修改申请模块文档

### 1 需求描述

比如我是委托单位 我送检的时候写的检材要检依托咪酯，但是后面实验出来了，没有检出依托咪酯，只检出了美托咪酯。那么这边的工作人员就会喊委托单位修改委托书和鉴定事项确认书，把检定要求由依托咪酯全部改为美托咪酯

### 2 权限

| 序号  | 权限名称             | 权限标识                           | 权限描述                                  |
| --- | ---------------- | ------------------------------ | ------------------------------------- |
| 1   | 委托申请修改查询权限(列表查询) | EntrustAlterApplyQuery         | 委托申请修改查询权限(列表查询)，受理防可以查询全部，委托方只能看本单位的 |
| 2   | 保存或提交委托申请修改消息    | EntrustAlterApplySubmit        | 保存或提交委托申请修改消息-委托方                     |
| 3   | 修改委托申请修改消息       | EntrustAlterApplyEdit          | 修改委托申请修改消息-委托方（只能修改为提交审核的记录）          |
| 4   | 委托申请修改消息审核权限     | EntrustAlterApplyApprove       | 委托申请修改消息审核权限                          |
| 5   | 删除委托申请修改消息权限     | EntrustAlterApplyDelete        | 删除委托申请修改消息权限（只能修改为提交审核的记录）            |
| 6   | 委托申请修改消息修改委托信息   | EntrustAlterApplyUpdateEntrust | 委托申请修改消息修改委托案件简要、鉴定要求权限（申请通过后，申请方修改）  |

### 3 岗位

在角色岗位表中，建立了两个角色：

| 序号  | 角色名称          | 角色描述                                            | 拥有的权限（数字代表着上表的权限序号） |
| --- | ------------- | ----------------------------------------------- | ------------------- |
| 1   | 司法鉴定委托修改申请创建岗 | 当鉴定中心检出的物质和委托时的鉴定要求不一样，则会通知委托单位提出申请修改（应由委托人员担任） | 1，2，3，5，6           |
| 2   | 司法鉴定委托修改申请审核岗 | 由鉴定中心人员审核委托单位提出的申请修改记录，                         | 1，4                 |

### 4 申请流程

#### 申请方

1.进入委托列表，选择要进行申请修改的委托

![](assets/23929b532d89b59a6a2d3d1023e2ff39053f70cf.png)

![](assets/0b286fbd6dea94653bcfce8cfe54b204a9bfdb9b.jpg)

2.这里我们选择委托编号为 **WT-2024-150** 的委托进行申请修改

![](assets/d2616662cc02e12dc5543a2fcf75e889b5ed47ab.jpg)

3.点击申请按钮后，页面弹出申请弹框，在弹框中输入之所以申请的原因，然后确定提交

![](assets/c92d6c8bd703071efc6e9246152cef5f906c9b17.jpg)

提交后的页面

![](assets/89a9ce4fe9efab963722938e06d2f737502ee21b.png)

4.等待受理方进行审核，在委托申请修改记录列表里查看是否申请通过

![](assets/4171abd8c21b7d5d2c4d1e26b336e6de10394a28.jpg)

![](assets/d199c13d434ded35fbce2b5d8a7d32ba1b2e5284.png)

5,当审核通过后，点击记录进行修改

![](assets/88bceeb0c2e851a7b290a3b86cf28a5e69f605ee.jpg)

![](assets/4d57f3411a6d8f83a3851fee87bec5d699b72c69.png)

![](assets/19190f14d5c377f5a11846d8c8ab9f0e4cb9da78.jpg)

#### 受理方

1.受理方进入审核审批页面，进入委托修改审核列表

![](assets/72b4044f427fa855d2e5bc1159a80a225219a976.jpg)

![](assets/d6bd6935ceee90ad422764345bf60513fc968fd0.jpg)

2.选择要进行审核的记录，点击进行审核，进入委托详情

![](assets/94edfd8bdc65153e5fbee5d86dc3a23a86310733.jpg)

## 20241031-3 新增检材委托序号字段（imEntrustNumber）

#### 1 需求描述

我们现在要的这个编号，它这个编号一般默认会是1，2，3，4。但有时候检测就是同不同类型的多了，然后他们不能按顺序送，他们都是写成了1-2、1-5和2-3这种，默认1、2、3、4、5这种，然后要改也可以手动改

### 2 具体效果

#### 2.1 默认效果

![](assets/728c55a84c6f1e893c9f77622229b1428a42bfa4.jpg)

#### 2.2 手动填入效果

![](assets/3cfecf77a64c47b30c49e4199897636d9e49a60b.jpg)

## 20241112-1  当用户手动填入鉴定要求时，以用户填入的为准

### 1 原效果(自动生成)

![](assets/6a3905bbe4241dc571c19d3f8631883d3140c9c9.jpg)

### 2 目前如果用户没有填入则自动生成，否则以用户填入为准

## 20241112-2 需要增加的接口功能，能够在委托信息页面中，点击更新，然后将委托时间的年、月、日更新到其中的一些字段中

### 1 需求描述

 委托时间 就是他们的受理时间，所以在系统中的各种提交啊 审核啊 之类的时间都应该和这个委托时间对得上就是了 但是我们系统的委托时间是以我创建委托的时间来算的，所以要把这个时间改了，而且要改成一个我可以手动录入的时间

#### 1.1 首先要在录入委托时我要多录一个字段，委托时间，这个后面我录完了就可以去掉了，在我们系统中，这个字段的值有些数据会有，有些又没得，暂时不晓得原因

![](assets/89efbfbb60a227d57dcfe32007cc0c8ffaea1744.png)

#### 1.2 然后将前面委托时间，取年月日，来更新到这几个字段中，submit_time、check_claim_time、check_time、 approve_claim_time、approve_time、deliver_confirm_time、accept_claim_time、accept_time、create_time以及process_info字段中的time类型的数据

process_info：

```json
[
    {
        "comments": "",
        "orgName": "贵阳市公安局禁毒支队",
        "success": true,
        "opCode": 1,
        "userName": "贵州省贵阳市",
        "operation": "已创建",
        "userId": "808c4b5fdbd19e9c712c1977cb7a25b5",
        "orgId": "520100",
        "processTime": "2024-11-05 11:33:41",
        "status": 0
    },
    {
        "comments": "",
        "orgName": "贵阳市公安局禁毒支队",
        "success": true,
        "opCode": 1,
        "userName": "贵州省贵阳市",
        "operation": "已提交",
        "userId": "808c4b5fdbd19e9c712c1977cb7a25b5",
        "orgId": "520100",
        "processTime": "2024-11-05 11:34:19",
        "status": 1
    },
    {
        "comments": "",
        "orgName": "贵阳市禁毒实验室",
        "success": true,
        "opCode": 1,
        "userName": "简薇",
        "operation": "已审核",
        "userId": "f0720e5fce09b2e75fdb7bdfe0539e9f",
        "orgId": "0",
        "processTime": "2024-11-05 11:36:10",
        "status": 3
    },
    {
        "comments": "",
        "orgName": "贵阳市公安局禁毒支队",
        "success": true,
        "opCode": 1,
        "userName": "贵州省贵阳市",
        "operation": "已送检",
        "userId": "808c4b5fdbd19e9c712c1977cb7a25b5",
        "orgId": "520100",
        "processTime": "2024-11-05 11:36:50",
        "status": 6
    },
    {
        "comments": "",
        "opCode": 1,
        "operation": "已受理",
        "orgId": "0",
        "orgName": "贵阳市禁毒实验室",
        "processTime": "2024-11-07 09:33:18",
        "status": 9,
        "success": true,
        "userId": "f98ba4408b42a41984e2a34258f8acae",
        "userName": "张雪"
    }
]
```

这里面的所有包含时间的年月日都要改为和委托时间的年月日一致。

### 2 具体实现

主要通过调用LocalDateTime提供的api实现时间上的更新

![](assets/2024-11-21-11-23-41-image.png)

### 3 效果

#### 3.1 新增委托时，填写委托时间

![](assets/df21695909d139a312148e1ac19f3a237c1ff6e9.jpg)

#### 3.2 走到受理完成后，调用接口修改对应的时间字段信息

  ![](assets/9fed8590fb7063138a32e28ade303c96b1dbb6e2.jpg)

## 20241113-1 受理页面 提供一个修改检材受理编号的功能

### 1 需求描述

我们受理编号是先生成检材的，然后受理完后，再生成委托的。但是现在由于他们的初筛 也就是不走委托的案子也会占用受理编号。比如300个案子，299号是初筛 并没有出现在委托系统，那么委托系统看到的只有298号是最新的，受理新案子的时候会自动生成299-1的检材受理号，但是299他们已经分配给初筛的案子了，编号就冲突了。

然后提供一个修改受理编号的功能，只针对检材，把检材的受理编号改为300-1，那么下一个检材受理的时候自动就是300-2，受理完成后委托的受理编号也会自动变为300。

### 2 具体实现

`digital.laboratory.platform.entrustment.service.impl.AcceptServiceImpl`

![](assets/2024-11-21-11-35-01-image.png)

### 3 效果

#### 3.1 未修改前的数据信息

![](assets/2024-11-21-11-37-18-image.png)

#### 3.2 修改后的数据信息

![](assets/2024-11-21-11-38-26-image.png)

## 20241113-2 处理生成鉴定事项确认书和委托书当检材重量大于100保留1位小数，其他保留2位

### 1 效果

![](assets/2024-11-21-11-51-27-image.png)

## 20241113-3 生成委托编号这里，存在了WT-2024-10，这个语句查出来最大的编号还是2024-9

### 1 原因

因为委托编号字段是字符串类型，直接调用MAX函数进行排序，它是一个一个字符进行比较的，所以导致了最大的编号是2024-9

### 2 解决方案

对委托编号进行切割，保留 - 后的数据，然后转成数字在使用order by进行排序，只取一条

```sql
SELECT entrustment_no 
FROM b_entrustment 
WHERE entrustment_no LIKE 'wt-2024-%' 
ORDER BY CAST(SUBSTRING_INDEX(entrustment_no, '-', -1) AS UNSIGNED) 
DESC LIMIT 1;
```

## 20241119-1 委托申请时，添加可以修改委托鉴定要求

### 1 解决方案

通过在远接口添加参数解决

## 20241223-1 鉴定事项确认书需要委托单位打印，也就是委托单位需要在审核完成并委托送件后，同时能够打印委托书与确认书。

### 1 主要问题

目前主要是解决确认书生成数据缺失的问题，因为委托方在送检后，受理方可能还未受理，也就导致了数据缺失，生成失败的问题。

### 2 解决方案

在生成鉴定事项确认书时，在代码上进行逻辑判断，如果是在未受理前则不填充相关的受理数据，检材排序时使用生成的检材编号排序，受理后的逻辑不变。下面是修改后的代码

![](assets/2024-12-23-11-13-59-image.png)

![](assets/2024-12-23-11-14-56-image.png)

## 20241223-2 填报委托时的页面，还是需要在检材重量这一块满足他们的填写需求(100 以下保留两位小数，100以上保留一位小数)。

### 1 解决方案

添加自定义序列化器，返回给前端数据时格式化BigDecimal的值，下面是序列化器的实现和使用：

自定义序列化器

![](assets/2024-12-23-14-40-37-image.png)

用法

![](assets/2024-12-23-14-41-27-image.png)

## 20250102 在受理页面添加可以录入检材检出结果的功能



## 20250103 新增接口-判断当前委托保存的检材是否和用户当前页面填写的检材数量是否匹配，是则返回true,否返回false
