Compare commits

..

166 Commits

Author SHA1 Message Date
wxr
dd6df68061 升级liteflow及处理荧光数据上传 2025-12-12 08:48:36 +08:00
FCL
468e939ab1 Merge remote-tracking branch 'origin/test' into test 2025-12-11 17:53:16 +08:00
FCL
90b0aa5202 feat:报告转pdf、发起iwork流程。 开发中 2025-12-11 17:52:59 +08:00
yd
33543e5330 fix:物料管理业务逻辑修改。新增库存数据统计查询 2025-12-11 16:32:57 +08:00
yd
6a3d585802 feat:新增盘点表数据 2025-12-10 14:47:46 +08:00
禁止呵呵
9eec0bb05e feat:领用出库、同意出库 2025-12-09 21:19:31 +08:00
禁止呵呵
8fd750a82f Merge remote-tracking branch 'origin/test' into test 2025-12-09 16:10:46 +08:00
禁止呵呵
2790ed7ea1 feat:库存查询,库存记录查询、入库记录查询 2025-12-09 16:10:37 +08:00
FCL
9f4369bcb2 fix:报告纵表细节调整 2025-12-09 15:46:00 +08:00
FCL
920292cfac feat:报告数据算法逻辑调整;增加分页逻辑 2025-12-09 14:39:13 +08:00
禁止呵呵
1187038ba8 feat:库存管理 2025-12-09 09:39:07 +08:00
禁止呵呵
e2678fe7b4 Merge remote-tracking branch 'origin/test' into test 2025-12-09 09:29:22 +08:00
禁止呵呵
c1b975cca0 feat:入库、批量入库 2025-12-09 09:29:14 +08:00
FCL
b7f30012c8 feat:报告数据算法逻辑调整 2025-12-08 17:50:15 +08:00
FCL
000cfca842 feat:报告数据算法逻辑调整 2025-12-08 10:27:36 +08:00
wxr
6b006513af 分析班组添加是否送样标识 2025-12-05 18:32:54 +08:00
禁止呵呵
f2571944c1 fix:版本管理模块字段修改 2025-12-05 17:32:14 +08:00
禁止呵呵
8e3994b6a8 Merge remote-tracking branch 'origin/test' into test 2025-12-05 17:23:52 +08:00
禁止呵呵
c7f3bc0a46 fix:版本管理模块文件名修改,字段修改,版本查询条件修改 2025-12-05 17:23:41 +08:00
wxr
54bc4b8b37 检测方法及委检登记-已提交列表,数据状态问题修复 2025-12-05 17:13:59 +08:00
FCL
d0ee704939 doc:iWork集成说明 2025-12-05 14:50:57 +08:00
yd
9cf4af15c2 feat:物料管理出库相关 2025-12-05 13:47:41 +08:00
yd
ac308f30a2 feat:物料管理盘点相关 2025-12-05 11:48:40 +08:00
yd
60b2761b2c Merge remote-tracking branch 'origin/test' into test 2025-12-04 20:14:33 +08:00
yd
a17621b0dd feat:客户端版本管理 2025-12-04 20:14:24 +08:00
wxr
9ec70c1721 结果判定等处理 2025-12-04 18:17:57 +08:00
FCL
3a5f6994a7 Merge remote-tracking branch 'origin/test' into test 2025-12-04 15:11:27 +08:00
FCL
b355668284 fix:报告编制,增加委托过滤,按报表类型过滤可选委托 2025-12-04 15:11:12 +08:00
wxr
8d75bc0765 任务流程状态及委托登记统计 2025-12-04 14:29:32 +08:00
wxr
0b44562b58 交叉审核退回,分析查询不到数据 2025-12-04 11:39:16 +08:00
wxr
90a1dfbd37 Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-12-04 11:02:56 +08:00
wxr
61d91d29b0 结果报送条件查询等 2025-12-04 11:02:50 +08:00
FCL
d84f1adf65 Merge remote-tracking branch 'origin/test' into test 2025-12-04 10:38:02 +08:00
FCL
4b9d27e8fc feat:更新tio,支持redis指定用户名 2025-12-04 10:37:59 +08:00
wxr
d41f69cc51 Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-12-04 10:03:43 +08:00
wxr
15621a9a56 中心交接-扫码收样添加 收样并送样 2025-12-04 10:03:32 +08:00
FCL
06be110e5d Merge remote-tracking branch 'origin/test' into test 2025-12-04 08:58:25 +08:00
FCL
ae0f0d79c5 feat:供应商管理代码生成 2025-12-04 08:58:02 +08:00
wxr
93cf620376 简码编密跳过等 2025-12-03 20:39:40 +08:00
wxr
be89a965d8 排序等bug修复 2025-12-03 16:17:50 +08:00
yd
8fa69a0906 Merge remote-tracking branch 'origin/test' into test 2025-12-03 14:24:57 +08:00
yd
3bb70a94f2 feat:物料管理部分菜单 2025-12-03 14:24:40 +08:00
wxr
433ac9124b Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-12-03 11:02:42 +08:00
wxr
3285e6050a 检验委托任务添加修改 2025-12-03 11:02:20 +08:00
yd
c68c7cfbf2 Merge branch 'lims_dev' of https://git.will-way.cn/zgty/zt-qms into test 2025-12-03 08:58:06 +08:00
wxr
04596350b6 添加委托来源与类型关系表 2025-12-03 08:41:01 +08:00
yd
927731c217 feat:物料通用流程 2025-12-02 16:42:26 +08:00
wxr
2b60bd7c7b 委托登记修改 2025-12-02 10:53:11 +08:00
FCL
9a2b45e29c fix:存放位置编码重复校验 2025-12-01 16:07:59 +08:00
wxr
7c7e7b4761 分析取S值,参数修改 2025-12-01 15:31:40 +08:00
FCL
39d720c1df fix:业务参数字典权限调整 2025-11-28 17:43:12 +08:00
FCL
d6fc03b199 fix:自动火试金接口签名测试 2025-11-28 17:07:40 +08:00
FCL
04ac449897 feat:自动火试金接口签名测试 2025-11-28 16:47:23 +08:00
FCL
eff36758c2 fix:设备接口,取消部分权限 2025-11-28 16:47:05 +08:00
FCL
cb50244685 Merge branch 'refs/heads/zt-test' into test 2025-11-28 15:13:41 +08:00
FCL
246e6391b8 fix:检测标准细节优化 2025-11-28 15:09:53 +08:00
wxr
4c129dee4e 结果判定分析方法为0还显示,处理。 2025-11-28 11:22:41 +08:00
wxr
63fc44a7d1 Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-11-28 10:49:08 +08:00
wxr
9a4e50b081 商检委托,S值检查bug修复 2025-11-28 10:49:00 +08:00
FCL
7f1c4dd8c4 fix:Dict注解优化 2025-11-28 09:04:01 +08:00
wxr
7a03bc6293 Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-11-27 18:23:45 +08:00
wxr
171de4c8d4 分析样顺序调整 2025-11-27 18:23:34 +08:00
FCL
60bc01201b fix:样品调拨细节修复 2025-11-27 18:10:35 +08:00
FCL
8fdeb65895 Merge remote-tracking branch 'origin/test' into test 2025-11-27 17:33:35 +08:00
FCL
41b4e53db1 fix:测试问题修复:样品库、报告 2025-11-27 17:33:31 +08:00
wxr
600e8bcd92 分析项目根据字典id过滤 2025-11-27 17:30:18 +08:00
wxr
353a6dcb3e 样品分析获取修改 2025-11-27 16:27:09 +08:00
wxr
ab505189f3 商检样S值分样判定bug修复 2025-11-27 15:45:45 +08:00
wxr
3b306b4137 Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-11-27 14:16:56 +08:00
wxr
9b99e41676 下发配料添加检查是否都存在配料必填数据 2025-11-27 14:16:44 +08:00
FCL
1dbbeba233 Merge remote-tracking branch 'origin/test' into test 2025-11-27 11:42:19 +08:00
FCL
b92d61648f fix:样品库接口调整 2025-11-27 11:42:14 +08:00
wxr
b85eb7ea91 原始记录单,无数据时bug修复 2025-11-27 10:19:53 +08:00
wxr
76069855ec 新增内部简码标签打印数据查询 2025-11-27 09:44:08 +08:00
wxr
ea948a70bc 镜像名称修改 2025-11-26 19:31:05 +08:00
wxr
e133ec82c8 样品接收查询修改 2025-11-26 17:59:27 +08:00
wxr
be75cb4cf9 结果报送,bug修复 2025-11-26 16:09:25 +08:00
wxr
b320d36181 Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-11-26 15:01:29 +08:00
FCL
172f04a260 fix:样品库接口调整 2025-11-26 12:00:22 +08:00
wxr
821ce6a7cf Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-11-26 10:43:01 +08:00
FCL
c7fe2db73c fix:样品库接口调整 2025-11-26 10:38:57 +08:00
wxr
984ae17431 Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-11-26 10:25:24 +08:00
wxr
4fd689c530 分析任务加上分析人员id。自动配料根据分析人员id查询用户数据,设置分析人账号。 2025-11-26 10:25:13 +08:00
FCL
2c377a76ec fix:样品库接口调整 2025-11-26 09:38:43 +08:00
FCL
2f71bc7fb1 Merge remote-tracking branch 'origin/test' into test 2025-11-26 09:16:46 +08:00
wxr
30ce46ce4d qms发布 2025-11-26 09:15:18 +08:00
FCL
d25658f202 Merge remote-tracking branch 'origin/test' into test
# Conflicts:
#	zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsCommonConstant.java
2025-11-26 08:44:33 +08:00
chenbowen
8aa329d989 1. 同步 nacos 配置到业务系统 2025-11-25 18:54:38 +08:00
FCL
a3a31d8600 fix:样品库接口调整 2025-11-25 18:21:59 +08:00
wxr
daafd3ae37 fix 2025-11-25 17:37:10 +08:00
wxr
91df898e09 自动火试金配料接口 2025-11-25 14:46:36 +08:00
FCL
baa7884fd7 fix:报告明细数据接口改造,修改“固定列”的处理逻辑 2025-11-25 14:09:46 +08:00
FCL
c522cf5f8f Merge branch 'zt-test' into test 2025-11-25 09:59:43 +08:00
chenbowen
46aa2c9692 1. 修复升级私有包版本错误 2025-11-25 09:54:37 +08:00
chenbowen
411983986f 1. 升级私有包版本 2025-11-25 09:38:20 +08:00
FCL
94757f31de Merge branch 'zt-test' into test 2025-11-25 09:36:47 +08:00
FCL
42afe2adb3 feat:qms阶段性提交:检验流程调整、报告、样品库等 2025-11-25 09:36:22 +08:00
FCL
5657f8cf09 feat:qms阶段性提交:检验流程调整、报告、样品库等 2025-11-25 09:34:25 +08:00
wxr
a49bee0abd Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-11-25 09:17:53 +08:00
wxr
d0673f36b1 自动火试金接口-未完 2025-11-25 09:17:39 +08:00
FCL
eaea741480 Merge remote-tracking branch 'origin/test' into test 2025-11-24 18:11:54 +08:00
FCL
44a6e11803 fix:样品库联调调整 2025-11-24 18:11:49 +08:00
wxr
cc79a15a16 参数错误修改 2025-11-24 15:07:02 +08:00
wxr
1e82c22284 超差判定修改 2025-11-24 14:50:13 +08:00
wxr
c2d067e47c Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-11-24 10:31:53 +08:00
wxr
92ec9454ba 结果判定修改 2025-11-24 10:26:51 +08:00
FCL
57041e4adc Merge remote-tracking branch 'origin/test' into test 2025-11-21 16:15:15 +08:00
FCL
a8580e1e30 fix:报告、样品库等细节 2025-11-21 16:14:58 +08:00
FCL
82934c153d fix:qms启动2个实例 2025-11-21 13:35:32 +08:00
wxr
87fbd54692 fix 2025-11-21 11:35:10 +08:00
wxr
918f8465a9 修改T_BSN_SB_PRN_SMP_ASMT表名到T_BSN_SB_PRN_SMP_ASMT_PRJ 2025-11-21 11:34:56 +08:00
wxr
5ef620fa9a 修改表名T_BSN_SB_SMP_ASMT到T_BSN_SB_SMP_ASMT_PRJ 2025-11-21 10:44:16 +08:00
wxr
2b45f932dc 查询修改 2025-11-21 10:31:23 +08:00
wxr
6ca60e94cd 报表模板取消标记。BusinessControllerMarker 2025-11-20 18:08:18 +08:00
wxr
8b3bfe2083 添加班组送样 2025-11-20 17:50:19 +08:00
FCL
9037a27cb8 fix:报告细节 2025-11-19 18:09:02 +08:00
FCL
a26327d4e7 Merge remote-tracking branch 'origin/test' into test 2025-11-19 17:31:46 +08:00
FCL
3028d478fe fix:报告配置、权限细节调整 2025-11-19 17:31:36 +08:00
wxr
c6c44828e0 方法变更样品查询 2025-11-19 17:18:32 +08:00
wxr
1f8aebf598 Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-11-19 17:04:28 +08:00
wxr
caba1edf4c 子样字段添加及查询修改 2025-11-19 17:04:21 +08:00
FCL
3c70d53533 fix:报告数据报错修复;增加固定字段的数据方式 2025-11-19 16:10:18 +08:00
chenbowen
d814fae16d 1. 升级私有包版本 2025-11-19 14:48:09 +08:00
FCL
0e07b41c22 fix:样品库细节调整 2025-11-19 14:21:11 +08:00
FCL
e6113058c0 fix:子样查询修改 2025-11-19 09:55:48 +08:00
wxr
5ec35399de 子样查询修改 2025-11-19 09:53:03 +08:00
chenbowen
49b6f956ff 1. 新增 qms 绑定端口 2025-11-18 18:03:31 +08:00
FCL
d80d5da026 feat:部署调试 2025-11-18 17:51:11 +08:00
FCL
c3f891095f feat:部署调试 2025-11-18 17:48:06 +08:00
FCL
ac2295cac9 feat:阶段性代码合并 2025-11-18 10:59:14 +08:00
FCL
36289be12b Merge branch 'refs/heads/zt-test' into test
# Conflicts:
#	pom.xml
#	zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java
#	zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsCommonConstant.java
2025-11-18 10:21:01 +08:00
wxr
c858ecf8b4 fix 2025-11-17 21:01:39 +08:00
wxr
18e4245eff 荧光数据错误修复 2025-11-17 20:38:23 +08:00
wxr
376902462b 时间格式化bug修复 2025-11-17 20:12:15 +08:00
FCL
c80aeece47 Merge remote-tracking branch 'origin/test' into test 2025-11-17 16:57:42 +08:00
FCL
12cd5a4d94 feat:样品库接口调整 2025-11-17 16:57:37 +08:00
wxr
524ea2687f 荧光线查询等修改 2025-11-17 16:44:09 +08:00
wxr
24a6e95f26 数据退回等bug修复 2025-11-17 10:00:15 +08:00
wxr
dddf21c94f 配料下发 2025-11-15 17:50:08 +08:00
wxr
6e3e604fca 荧光数据接口 2025-11-15 13:48:47 +08:00
FCL
4394c4ecf8 Merge remote-tracking branch 'origin/test' into test 2025-11-13 17:48:51 +08:00
FCL
e0f6d288b1 feat:样品库功能,开发基本完成,需进一步调细节。 报告数据微调 2025-11-13 17:48:34 +08:00
wxr
6e0886ca5b 荧光采集 2025-11-13 13:54:28 +08:00
wxr
c79590d36e 简码生成标签打印 2025-11-12 13:56:57 +08:00
wxr
6e39ca51c5 单样分析结果查询等 2025-11-11 20:57:56 +08:00
wxr
0c13b35433 分析保存等修改 2025-11-11 17:43:41 +08:00
wxr
398fd2d303 交叉审核 2025-11-10 20:40:45 +08:00
wxr
d7554b49dc 委托登记报表特殊处理日期格式给到锐浪报表 2025-11-10 20:10:38 +08:00
wxr
d9d63ab587 处理空白样样品编号为null导致bug 2025-11-10 18:16:48 +08:00
FCL
3afd68cbfe Merge remote-tracking branch 'origin/test' into test 2025-11-10 18:04:58 +08:00
FCL
174f720f65 doc:文档更新 2025-11-10 18:04:12 +08:00
wxr
f2fe7455ed 交叉审核报表查询 2025-11-10 10:45:19 +08:00
wxr
3129b88a21 Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-11-07 16:15:29 +08:00
wxr
95b7b6e011 标签打印接口 2025-11-07 16:15:17 +08:00
FCL
52ab580346 feat:报告类型发起权限 2025-11-07 15:26:15 +08:00
chenbowen
3e40ed2e61 1. 调整业务 pod 资源检查的延时 2025-11-06 14:04:30 +08:00
chenbowen
4897329644 1. 新增物料相关接口
2. 修复部分服务因为包名设置错误导致无法采集日志的错误
2025-11-06 13:41:56 +08:00
chenbowen
498dd4cd8d 1. 修复 base 编译错误
2. build 追加 skywalking 集成
2025-11-06 09:23:42 +08:00
chenbowen
b0c4a773af ZT 远程仓库依赖强制更新 2025-10-29 18:23:27 +08:00
chenbowen
1dc0671cf0 更新版本 2025-10-28 14:10:51 +08:00
chenbowen
b629e0358a 调整业务服务的时区 2025-10-27 11:41:18 +08:00
chenbowen
5b32ff274f 模块独立命名 2025-10-22 16:06:27 +08:00
chenbowen
11cb3426d4 更改 qms 的冲突端口 2025-10-21 15:34:23 +08:00
chenbowen
f9740ed667 更改 qms 的冲突端口 2025-10-21 11:35:29 +08:00
FCL
ba4b7239ac fix:qms-api调整 2025-10-21 11:14:10 +08:00
chenbowen
e80a5437df 升级版本 2025-10-15 16:15:46 +08:00
544 changed files with 27554 additions and 3017 deletions

View File

@@ -11,7 +11,7 @@ metadata:
description: DESC_PLACEHOLDER
rollout.kubernetes.io/change-cause: "DESC_PLACEHOLDER:VERSION_PLACEHOLDER"
spec:
replicas: 1
replicas: 2
selector:
matchLabels:
app: qms-server
@@ -23,18 +23,21 @@ spec:
containers:
- name: qms-server
image: 172.16.46.66:10043/yudao/qms-server:VERSION_PLACEHOLDER
env:
- name: TZ
value: Asia/Shanghai
readinessProbe:
httpGet:
path: /actuator/health
port: 48104
initialDelaySeconds: 10
initialDelaySeconds: 50
periodSeconds: 5
failureThreshold: 3
livenessProbe:
httpGet:
path: /actuator/health
port: 48104
initialDelaySeconds: 30
initialDelaySeconds: 50
periodSeconds: 10
failureThreshold: 5
resources:
@@ -61,11 +64,23 @@ spec:
selector:
app: qms-server
ports:
- protocol: TCP
- name: http-health
protocol: TCP
port: 48104
targetPort: 48104
nodePort: 30100
- protocol: TCP
- name: tcp-9999
protocol: TCP
port: 9999
targetPort: 9999
nodePort: 30200
nodePort: 30194
- name: websocket-8320
protocol: TCP
port: 8320
targetPort: 8320
nodePort: 30320
- name: tcp-8330
protocol: TCP
port: 8330
targetPort: 8330
nodePort: 30330

View File

@@ -0,0 +1,158 @@
[Seata分布式事务集成参考.md](Seata%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1%E9%9B%86%E6%88%90%E5%8F%82%E8%80%83.md)# Seata 分布式事务集成参考
## 一、架构说明
### 多环境 Seata 配置管理
所有环境的 Seata 配置统一通过 Nacos 管理,本地配置文件不包含 Seata 配置。
```
├── dev 环境: base-server-dev.yaml (dev_tx_group, namespace: dev)
├── test 环境: base-server-test.yaml (test_tx_group, namespace: test)
└── prod 环境: base-server-prod.yaml (prod_tx_group, namespace: prod)
Seata Server: 172.16.46.63:30088
```
### 为什么使用 IP 直连?
Nacos 的 namespace 隔离机制导致不同命名空间的应用无法跨 namespace 发现服务。Seata Server 通过 IP 直连(`registry.type=file`)避免此限制,所有环境共享同一个 Seata Server通过不同的 `tx-service-group` 实现逻辑隔离。
---
## 二、Nacos 配置
在对应环境的 Nacos 配置中心创建配置文件。以 `base-server-dev.yaml` 为例(其他环境只需修改 `tx-service-group`
```yaml
seata:
enabled: true
application-id: base-server
tx-service-group: dev_tx_group
enable-auto-data-source-proxy: true
data-source-proxy-mode: AT
registry:
type: file
config:
type: file
service:
vgroupMapping:
default_tx_group: default
dev_tx_group: default
test_tx_group: default
prod_tx_group: default
default:
grouplist: 172.16.46.63:30088
client:
tm:
defaultGlobalTransactionTimeout: 60000
undo:
logTable: undo_log
dataValidation: true
logSerialization: jackson
```
---
## 三、业务集成步骤
### 步骤 1在 pom.xml 中添加依赖
Seata 2.4.0 版本已在 `zt-dependencies` 中统一管理。业务模块只需在 `pom.xml` 中添加:
```xml
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
</dependency>
```
版本号会从 `zt-dependencies` 继承。
### 步骤 2创建 undo_log 表
在业务数据库执行:
```sql
CREATE TABLE "UNDO_LOG" (
"BRANCH_ID" BIGINT NOT NULL,
"XID" VARCHAR(128) NOT NULL,
"CONTEXT" VARCHAR(128) NOT NULL,
"ROLLBACK_INFO" BLOB NOT NULL,
"LOG_STATUS" INT NOT NULL,
"LOG_CREATED" DATETIME DEFAULT SYSDATE,
"LOG_MODIFIED" DATETIME DEFAULT SYSDATE,
PRIMARY KEY ("BRANCH_ID")
);
CREATE UNIQUE INDEX "UX_UNDO_LOG" ON "UNDO_LOG" ("XID", "BRANCH_ID");
```
### 步骤 3在 Service 方法上添加 @GlobalTransactional 注解
```java
import io.seata.spring.annotation.GlobalTransactional;
@Service
public class OrderServiceImpl implements OrderService {
@GlobalTransactional(name = "create-order", rollbackFor = Exception.class)
@Override
public Long createOrder(OrderCreateReqVO req) {
// 本地操作
orderMapper.insert(order);
// 跨服务调用自动参与分布式事务
inventoryApi.deduct(productId, quantity);
return order.getId();
}
}
```
**说明**:
- 只在事务发起方添加注解
- 被调用的其他服务自动参与,无需额外配置
- Seata 自动通过 HTTP Header 传递事务 ID
---
## 四、配置汇总
| 配置项 | 开发环境 | 测试环境 | 生产环境 |
|--------|---------|---------|---------|
| **tx-service-group** | `dev_tx_group` | `test_tx_group` | `prod_tx_group` |
| **Nacos 命名空间** | `hwc` | `test` | `prod` |
| **Seata Server** | `172.16.46.63:30088` | `172.16.46.63:30088` | `172.16.46.63:30088` |
---
## 五、其他事务模式
当前配置默认使用 **AT 模式**自动事务模式。Seata 还支持其他事务模式,需要业务自己实现:
### TCC 模式
需要实现 Try、Confirm、Cancel 三个业务方法,使用 `@TwoPhaseBusinessAction` 注解标记。详见官方文档。
### Saga 模式
需要定义 Saga 流程和状态机。详见官方文档。
### XA 模式
需要数据库支持 XA 事务,配置中修改 `data-source-proxy-mode: XA`
**详见**: https://seata.apache.org/zh-cn/docs/overview/what-is-seata
---
## 六、Seata 控制台
**地址**: `http://172.16.46.63:30087`
可查看全局事务、分支事务、全局锁等监控信息。
---
**官方文档**: https://seata.apache.org/zh-cn/docs/overview/what-is-seata

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,212 @@
# 计量单位转换业务使用文档
## 一、系统概述
计量单位转换提供统一的计量单位转换服务,支持同一量纲内的单位自动转换。采用**单向配置、双向生效**机制,只需配置"非基准单位 → 基准单位"的转换规则,自动推导反向和间接转换。
**核心特性**
- 单向配置、双向生效的转换机制
- 支持按单位ID、符号、名称进行转换
- 高精度计算,支持批量操作
- 跨模块统一服务
## 二、内容配置
### 2.1 管理菜单路径
后台管理 → 基础管理 → 计量单位 → 计量单位管理
### 2.2 配置功能
#### 计量量纲管理
- **功能**:创建和管理不同的量纲类型(如重量、长度、体积等)
- **操作**:新增量纲、编辑量纲信息、删除量纲
- **每个量纲只能设置一个基准单位**
#### 计量单位管理
- **功能**:创建和管理具体的计量单位
- **操作**:新增单位、编辑单位信息、删除单位
- **关联量纲**:将单位归属到具体的量纲下
#### 转换规则配置
- **功能**:配置单位间的转换规则
- **配置原则**:只需配置"非基准单位 → 基准单位"
- **自动推导**:系统自动推导反向转换和间接转换
### 2.3 配置建议
1. **量纲规划**:提前规划好业务需要的量纲类型
2. **基准单位选择**:选择业务中最常用、最稳定的单位作为基准
3. **转换规则**:优先使用整数转换系数,提高计算精度
4. **定期校验**:使用转换路径校验功能确保配置正确性
5. **转换完整性校验**:系统提供同一量纲内所有单位能否互相转换的校验功能,确保转换配置的完整性
## 三、API接口清单
### 3.1 单位管理接口
| 接口 | 方法 | 路径 | 说明 | API文档 |
|------|------|------|------|---------|
| 获取量纲树 | GET | `/admin-api/base/unit-management/unit-quantity/tree` | 获取量纲和单位树形结构 | [文档](http://172.16.46.63:30081/doc.html#/base-server/%E7%AE%A1%E7%90%86%E5%90%8E%E5%8F%B0%20-%20%E8%AE%A1%E9%87%8F%E5%8D%95%E4%BD%8D%E9%87%8F/getUnitQuantityTree) |
| 获取单位列表 | GET | `/admin-api/base/unit-management/unt-info/page` | 获取单位列表(用于下拉选择) | [文档](http://172.16.46.63:30081/doc.html#/base-server/%E7%AE%A1%E7%90%86%E5%90%8E%E5%8F%B0%20-%20%E8%AE%A1%E9%87%8F%E5%8D%95%E4%BD%8D/getUntInfoPage) |
### 3.2 单位转换接口
| 接口 | 方法 | 路径 | 说明 | API文档 |
|------|------|------|------|---------|
| 按ID转换单位 | POST | `/admin-api/base/unit-management/unit-conversion/convert` | 通过单位ID转换 | [文档](http://172.16.46.63:30081/doc.html#/base-server/%E7%AE%A1%E7%90%86%E5%90%8E%E5%8F%B0%20-%20%E5%8D%95%E4%BD%8D%E8%BD%AC%E6%8D%A2/convert) |
| 按符号转换单位 | POST | `/admin-api/base/unit-management/unit-conversion/convert-by-symbol` | 通过单位符号转换 | [文档](http://172.16.46.63:30081/doc.html#/base-server/%E7%AE%A1%E7%90%86%E5%90%8E%E5%8F%B0%20-%20%E5%8D%95%E4%BD%8D%E8%BD%AC%E6%8D%A2/convertBySymbol) |
| 按名称转换单位 | POST | `/admin-api/base/unit-management/unit-conversion/convert-by-name` | 通过单位名称转换 | [文档](http://172.16.46.63:30081/doc.html#/base-server/%E7%AE%A1%E7%90%86%E5%90%8E%E5%8F%B0%20-%20%E5%8D%95%E4%BD%8D%E8%BD%AC%E6%8D%A2/convertByName) |
| 批量ID转换 | POST | `/admin-api/base/unit-management/unit-conversion/batch-convert` | 按ID批量转换 | [文档](http://172.16.46.63:30081/doc.html#/base-server/%E7%AE%A1%E7%90%86%E5%90%8E%E5%8F%B0%20-%20%E5%8D%95%E4%BD%8D%E8%BD%AC%E6%8D%A2/batchConvert) |
| 批量符号转换 | POST | `/admin-api/base/unit-management/unit-conversion/batch-convert-by-symbol` | 按符号批量转换 | [文档](http://172.16.46.63:30081/doc.html#/base-server/%E7%AE%A1%E7%90%86%E5%90%8E%E5%8F%B0%20-%20%E5%8D%95%E4%BD%8D%E8%BD%AC%E6%8D%A2/batchConvertBySymbol) |
| 批量名称转换 | POST | `/admin-api/base/unit-management/unit-conversion/batch-convert-by-name` | 按名称批量转换 | [文档](http://172.16.46.63:30081/doc.html#/base-server/%E7%AE%A1%E7%90%86%E5%90%8E%E5%8F%B0%20-%20%E5%8D%95%E4%BD%8D%E8%BD%AC%E6%8D%A2/batchConvertByName) |
---
## 三、后端业务调用示例
### base模块内使用
```java
@Service
public class PurchaseOrderServiceImpl {
@Resource
private UnitConversionService unitConversionService;
/**
* 处理采购订单,统一转换为千克计算
*/
public void processPurchaseOrder(PurchaseOrderSaveReqVO orderVO) {
for (PurchaseOrderDetailVO detail : orderVO.getDetails()) {
// 方式1按符号转换
UnitConvertBySymbolReqVO convertReq = new UnitConvertBySymbolReqVO();
convertReq.setSrcUnitSymbol(detail.getUnt());
convertReq.setTgtUnitSymbol("kg");
convertReq.setValue(detail.getQty());
convertReq.setPrecision(6);
UnitConvertRespVO result = unitConversionService.convertBySymbol(convertReq);
BigDecimal standardQuantity = result.getConvertedValue();
// 方式2按ID转换如果有单位ID
// UnitConvertReqVO convertReq = new UnitConvertReqVO();
// convertReq.setSrcUntId(detail.getUntId());
// convertReq.setTgtUntId(kgUnitId);
// ...
}
}
}
```
---
## 四、跨模块调用
### 4.1 直接Service调用推荐
在同一服务内直接注入使用:
```java
@Resource
private UnitConversionService unitConversionService;
```
### 4.2 跨服务调用(按需使用)
**1. 在 API 模块中定义 Feign 接口:**
```java
package com.zt.plat.module.base.api;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.base.enums.ApiConstants;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(name = ApiConstants.NAME)
@Tag(name = "RPC 服务 - 单位转换")
public interface UnitConversionApi {
String PREFIX = ApiConstants.PREFIX + "/unit-conversion";
@PostMapping(PREFIX + "/convert")
@Operation(summary = "按ID转换单位")
CommonResult<UnitConvertRespVO> convert(@RequestBody UnitConvertReqVO reqVO);
@PostMapping(PREFIX + "/convert-by-symbol")
@Operation(summary = "按符号转换单位")
CommonResult<UnitConvertRespVO> convertBySymbol(@RequestBody UnitConvertBySymbolReqVO reqVO);
}
```
**2. 在其他服务中调用:**
```java
@Service
public class PurchaseServiceImpl {
@Resource
private UnitConversionApi unitConversionApi;
public void processPurchase(PurchaseVO purchase) {
UnitConvertBySymbolReqVO convertReq = new UnitConvertBySymbolReqVO();
convertReq.setSrcUnitSymbol(purchase.getUnit());
convertReq.setTgtUnitSymbol("kg");
convertReq.setValue(purchase.getQuantity());
convertReq.setPrecision(6);
CommonResult<UnitConvertRespVO> result = unitConversionApi.convertBySymbol(convertReq);
if (result.isSuccess()) {
BigDecimal standardQty = result.getData().getConvertedValue();
// 业务处理
}
}
}
```
---
## 五、前端使用
### 5.1 基本API调用
```typescript
// 获取量纲树
export const getUnitQuantityTree = () => {
return request.get('/admin-api/base/unit-management/unit-quantity/tree')
}
// 获取单位列表
export const getUntInfoPage = (params: any) => {
return request.get('/admin-api/base/unit-management/unt-info/page', { params })
}
// 单位转换
export const convertUnitBySymbol = (data: any) => {
return request.post('/admin-api/base/unit-management/unit-conversion/convert-by-symbol', data)
}
```
---
## 六、常见问题
**Q1: 前端如何获取单位选项?**
A: 使用 `/admin-api/base/unit-management/unit-quantity/tree` 获取量纲树,然后根据选择的量纲调用 `/admin-api/base/unit-management/unt-info/page` 获取单位列表。
**Q2: 按ID转换和按符号转换哪个更好**
A: 按ID转换更稳定因为数据库ID不会变化。建议在前端保存单位ID在业务转换时使用ID调用。
**Q3: 跨服务调用需要特殊配置吗?**
A: 不需要项目已经统一配置好。所有Feign客户端都使用 `name = "base-server"`,路径使用 `/rpc-api` 前缀。
**Q4: 批量转换性能问题?**
A: 使用批量接口设置ignoreErrors=true。

21
pom.xml
View File

@@ -17,7 +17,7 @@
<url>https://github.com/YunaiV/ruoyi-vue-pro</url>
<properties>
<revision>3.0.42</revision>
<revision>3.0.45</revision>
<!-- Maven 相关 -->
<java.version>17</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
@@ -145,8 +145,13 @@
<name>中铜 ZStack 私服</name>
<url>http://172.16.46.63:30708/repository/test/</url>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
@@ -172,8 +177,8 @@
<config.server-addr>172.16.46.63:30848</config.server-addr>
<config.namespace>dev</config.namespace>
<config.group>DEFAULT_GROUP</config.group>
<config.username/>
<config.password/>
<config.username>nacos</config.username>
<config.password>P@ssword25</config.password>
<config.version>1.0.0</config.version>
</properties>
</profile>
@@ -185,8 +190,8 @@
<config.server-addr>172.16.46.63:30848</config.server-addr>
<config.namespace>prod</config.namespace>
<config.group>DEFAULT_GROUP</config.group>
<config.username/>
<config.password/>
<config.username>nacos</config.username>
<config.password>P@ssword25</config.password>
<config.version>1.0.0</config.version>
</properties>
</profile>
@@ -198,8 +203,8 @@
<config.server-addr>172.16.46.63:30848</config.server-addr>
<config.namespace>local</config.namespace>
<config.group>DEFAULT_GROUP</config.group>
<config.username/>
<config.password/>
<config.username>nacos</config.username>
<config.password>P@ssword25</config.password>
<config.version>1.0.0</config.version>
</properties>
</profile>

View File

@@ -1,4 +1,6 @@
FROM 172.16.46.66:10043/base-service/report-base:x86_64-ubuntu_22-jre21-2.0.0
#ARG BASE_IMAGE=172.16.46.66:10043/base-service/skywalking-agent-jre:9.7.0
#FROM ${BASE_IMAGE}
RUN mkdir -p /appdata/server
WORKDIR /appdata/server
## 将后端项目的 Jar 文件,复制到镜像中
@@ -6,9 +8,14 @@ COPY ./target/qms-server.jar app.jar
## 设置 TZ 时区
ENV TZ=Asia/Shanghai
ENV JAVA_OPTS="-Xms512m -Xmx512m"
#ENV SW_AGENT_HOME=/opt/skywalking/agent
#ENV SW_AGENT_NAME=qms-server
#ENV SW_AGENT_COLLECTOR_BACKEND_SERVICES=172.16.46.63:30201
#ENV AGENT_JAVA_OPTS="-javaagent:${SW_AGENT_HOME}/skywalking-agent.jar -Dskywalking.agent.service_name=${SW_AGENT_NAME} -Dskywalking.collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES}"
# 暴露端口
EXPOSE 48205
## 启动后端项目
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
CMD java ${AGENT_JAVA_OPTS} ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar app.jar

View File

@@ -0,0 +1,11 @@
call docker build -t zgty-qms:v6.0.0 .
call docker tag zgty-qms:v6.0.0 192.168.26.103:8075/zgty/zgty-qms:v6.0.0
call docker push 192.168.26.103:8075/zgty/zgty-qms:v6.0.0
call docker rmi 192.168.26.103:8075/zgty/zgty-qms:v6.0.0
call docker rmi zgty-qms:v6.0.0
pause

View File

@@ -105,3 +105,87 @@ justauth:
prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE::
timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟
--- #################### liteflow相关配置 ####################
liteflow:
#规则文件路径
rule-source: el_xml:com.zt.plat.module.qms.core.liteflow.parser.QmsXmlFlowELParser
#-----------------以下非必须-----------------
#liteflow是否开启默认为true
enable: true
#liteflow的banner打印是否开启默认为true
print-banner: true
#上下文的初始数量槽默认值为1024这个值不用刻意配置这个值会自动扩容
slot-size: 1024
#FlowExecutor的execute2Future的线程数默认为64
main-executor-works: 64
#FlowExecutor的execute2Future的自定义线程池BuilderLiteFlow提供了默认的Builder
main-executor-class: com.yomahub.liteflow.thread.LiteFlowDefaultMainExecutorBuilder
#自定义请求ID的生成类LiteFlow提供了默认的生成类
request-id-generator-class: com.yomahub.liteflow.flow.id.DefaultRequestIdGenerator
#全局异步节点线程池大小默认为64
global-thread-pool-size: 64
#全局异步节点线程池队列大小默认为512
global-thread-pool-queue-size: 512
#全局异步节点线程池自定义BuilderLiteFlow提供了默认的线程池Builder
global-thread-pool-executor-class: com.yomahub.liteflow.thread.LiteFlowDefaultGlobalExecutorBuilder
#异步线程最长的等待时间(只用于when)默认值为15000
when-max-wait-time: 15000
#异步线程最长的等待时间(只用于when)默认值为MILLISECONDS毫秒
when-max-wait-time-unit: MILLISECONDS
#每个WHEN是否用单独的线程池
when-thread-pool-isolate: false
#设置解析模式一共有三种模式PARSE_ALL_ON_START | PARSE_ALL_ON_FIRST_EXEC | PARSE_ONE_ON_FIRST_EXEC
parse-mode: PARSE_ONE_ON_FIRST_EXEC
#全局重试次数默认为0
retry-count: 0
#是否支持不同类型的加载方式混用默认为false
support-multiple-type: false
#全局默认节点执行器
node-executor-class: com.yomahub.liteflow.flow.executor.DefaultNodeExecutor
#是否打印执行中过程中的日志默认为true
print-execution-log: true
#是否开启本地文件监听默认为false
enable-monitor-file: false
#是否开启快速解析模式默认为false
fast-load: false
#是否开启Node节点实例ID持久化默认为false
enable-node-instance-id: false
#是否开启虚拟线程(只在JDK21+环境有效)默认为true
enable-virtual-thread: true
#简易监控配置选项
monitor:
#监控是否开启,默认不开启
enable-log: false
#监控队列存储大小默认值为200
queue-limit: 200
#监控一开始延迟多少执行默认值为300000毫秒也就是5分钟
delay: 300000
#监控日志打印每过多少时间执行一次默认值为300000毫秒也就是5分钟
period: 300000
zzjc:
druid:
sql-log: true
snowflake:
data-center-id: 30
tio:
server:
# port
port: 8320
# 心跳时间
heartbeat-timeout: 20000
websocket:
# enable websocket default false
enable: true
# websocket port
port: 8330
# 集群配置 默认关闭集群开启需要redis
cluster:
enabled: true
group: true
redis:
mode: single
ip: 172.16.46.63 # 地址
port: 30379 # 端口
database: 0 # 数据库索引

View File

@@ -56,6 +56,12 @@ spring:
database: 0 # 数据库索引
# password: 123456 # 密码,建议生产环境开启
--- #################### MQ 消息队列相关配置 ####################
# rocketmq 配置项,对应 RocketMQProperties 配置类
rocketmq:
name-server: 172.16.46.63:30876 # RocketMQ Namesrv
xxl:
job:
admin:
@@ -85,6 +91,32 @@ mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
justauth:
enabled: true
type:
DINGTALK: # 钉钉
client-id: dingvrnreaje3yqvzhxg
client-secret: i8E6iZyDvZj51JIb0tYsYfVQYOks9Cq1lgryEjFRqC79P3iJcrxEwT6Qk2QvLrLI
ignore-check-redirect-uri: true
WECHAT_ENTERPRISE: # 企业微信
client-id: wwd411c69a39ad2e54
client-secret: 1wTb7hYxnpT2TUbIeHGXGo7T0odav1ic10mLdyyATOw
agent-id: 1000004
ignore-check-redirect-uri: true
# noinspection SpringBootApplicationYaml
WECHAT_MINI_PROGRAM: # 微信小程序
client-id: ${dollar}{wx.miniapp.appid}
client-secret: ${dollar}{wx.miniapp.secret}
ignore-check-redirect-uri: true
ignore-check-state: true # 微信小程序,不会使用到 state所以不进行校验
WECHAT_MP: # 微信公众号
client-id: ${dollar}{wx.mp.app-id}
client-secret: ${dollar}{wx.mp.secret}
ignore-check-redirect-uri: true
cache:
type: REDIS
prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE::
timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟
# 芋道配置项,设置当前项目所有自定义的配置
zt:
@@ -95,3 +127,87 @@ zt:
access-log: # 访问日志的配置项
enable: true
--- #################### liteflow相关配置 ####################
liteflow:
#规则文件路径
rule-source: el_xml:com.zt.plat.module.qms.core.liteflow.parser.QmsXmlFlowELParser
#-----------------以下非必须-----------------
#liteflow是否开启默认为true
enable: true
#liteflow的banner打印是否开启默认为true
print-banner: true
#上下文的初始数量槽默认值为1024这个值不用刻意配置这个值会自动扩容
slot-size: 1024
#FlowExecutor的execute2Future的线程数默认为64
main-executor-works: 64
#FlowExecutor的execute2Future的自定义线程池BuilderLiteFlow提供了默认的Builder
main-executor-class: com.yomahub.liteflow.thread.LiteFlowDefaultMainExecutorBuilder
#自定义请求ID的生成类LiteFlow提供了默认的生成类
request-id-generator-class: com.yomahub.liteflow.flow.id.DefaultRequestIdGenerator
#全局异步节点线程池大小默认为64
global-thread-pool-size: 64
#全局异步节点线程池队列大小默认为512
global-thread-pool-queue-size: 512
#全局异步节点线程池自定义BuilderLiteFlow提供了默认的线程池Builder
global-thread-pool-executor-class: com.yomahub.liteflow.thread.LiteFlowDefaultGlobalExecutorBuilder
#异步线程最长的等待时间(只用于when)默认值为15000
when-max-wait-time: 15000
#异步线程最长的等待时间(只用于when)默认值为MILLISECONDS毫秒
when-max-wait-time-unit: MILLISECONDS
#每个WHEN是否用单独的线程池
when-thread-pool-isolate: false
#设置解析模式一共有三种模式PARSE_ALL_ON_START | PARSE_ALL_ON_FIRST_EXEC | PARSE_ONE_ON_FIRST_EXEC
parse-mode: PARSE_ONE_ON_FIRST_EXEC
#全局重试次数默认为0
retry-count: 0
#是否支持不同类型的加载方式混用默认为false
support-multiple-type: false
#全局默认节点执行器
node-executor-class: com.yomahub.liteflow.flow.executor.DefaultNodeExecutor
#是否打印执行中过程中的日志默认为true
print-execution-log: true
#是否开启本地文件监听默认为false
enable-monitor-file: false
#是否开启快速解析模式默认为false
fast-load: false
#是否开启Node节点实例ID持久化默认为false
enable-node-instance-id: false
#是否开启虚拟线程(只在JDK21+环境有效)默认为true
enable-virtual-thread: true
#简易监控配置选项
monitor:
#监控是否开启,默认不开启
enable-log: false
#监控队列存储大小默认值为200
queue-limit: 200
#监控一开始延迟多少执行默认值为300000毫秒也就是5分钟
delay: 300000
#监控日志打印每过多少时间执行一次默认值为300000毫秒也就是5分钟
period: 300000
zzjc:
druid:
sql-log: true
snowflake:
data-center-id: 30
tio:
server:
# port
port: 8320
# 心跳时间
heartbeat-timeout: 20000
websocket:
# enable websocket default false
enable: true
# websocket port
port: 8330
# 集群配置 默认关闭集群开启需要redis
cluster:
enabled: true
group: true
redis:
mode: single
ip: 172.16.46.63 # 地址
port: 30379 # 端口
database: 0 # 数据库索引

View File

@@ -119,5 +119,9 @@ zt:
version: ${zt.info.version}
tenant: # 多租户相关配置项
enable: true
ignore-urls:
- /admin-api/qms/system-version-management/get-by-platform/**
security:
permit-all-urls:
- /admin-api/qms/system-version-management/get-by-platform/**
debug: false

View File

@@ -54,6 +54,7 @@ public interface ErrorCodeConstants {
ErrorCode CONFIG_REPORT_TYPE_NOT_EXISTS = new ErrorCode(1_032_050_000, "报表类型配置不存在");
ErrorCode CONFIG_PROJECT_NOT_EXISTS = new ErrorCode(1_032_050_000, "检测项目配置不存在");
ErrorCode CONFIG_ENTRUST_SOURCE_NOT_EXISTS = new ErrorCode(1_032_050_000, "检验委托来源配置不存在");
ErrorCode CONFIG_ENTRUST_SOURCE_SAMPLE_TYPE_NOT_EXISTS = new ErrorCode(1_032_050_000, "检验委托来源与样品类型配置不存在");
ErrorCode CONFIG_BASE_SAMPLE_NOT_EXISTS = new ErrorCode(1_032_050_000, "主样配置不存在");
ErrorCode CONFIG_ASSAY_METHOD_PROJECT_PARAMETER_NOT_EXISTS = new ErrorCode(1_032_050_000, "检测方法分析项目参数配置不存在");
@@ -61,6 +62,10 @@ public interface ErrorCodeConstants {
ErrorCode CONFIG_SIMPLE_FLOW_RULE_NOT_EXISTS = new ErrorCode(1_032_050_000, "LiteFlow规则配置不存在");
ErrorCode CONFIG_SIMPLE_FLOW_CODE_NOT_EXISTS = new ErrorCode(1_032_050_000, "LiteFlow脚本配置不存在");
ErrorCode CONFIG_RULE_NOT_EXISTS = new ErrorCode(1_032_050_000, "规则配置不存在");
ErrorCode CONFIG_XRF_LINE_NOT_EXISTS = new ErrorCode(1_032_050_000, "荧光分析线不存在");
ErrorCode CONFIG_XRF_PROJECT_NOT_EXISTS = new ErrorCode(1_032_050_000, "荧光采集检测项目配置不存在");
ErrorCode CONFIG_XRF_CONVERSION_RATE_NOT_EXISTS = new ErrorCode(1_032_050_000, "荧光数据采集特殊检测项目转换率配置不存在");
ErrorCode BASE_SAMPLE_NOT_EXISTS = new ErrorCode(1_032_050_000, "样品大类管理不存在");
ErrorCode MATERIAL_ASSAY_STANDARD_DETAIL_NOT_EXISTS = new ErrorCode(1_032_050_000, "检测标准明细不存在");
@@ -83,6 +88,7 @@ public interface ErrorCodeConstants {
ErrorCode CONFIG_PERMISSION_NOT_EXISTS = new ErrorCode(1_032_050_000, "权限配置不存在");
ErrorCode CONFIG_PERMISSION_DUPLICATE = new ErrorCode(1_032_050_000, "权限配置数据有误");
ErrorCode CONFIG_WAREHOUSE_LOCATION_NOT_EXISTS = new ErrorCode(1_032_050_000, "存放位置不存在");
ErrorCode CONFIG_WAREHOUSE_LOCATION_CODE_DUPLICATE = new ErrorCode(1_032_050_000, "库位编码重复,请检查!");
/*=================================bus 检验业务 1_032_100_000 ~ 1_032_149_999==================================*/
ErrorCode BUSINESS_SAMPLE_ENTRUST_REGISTRATION_NOT_EXISTS = new ErrorCode(1_032_100_000, "委检登记业务不存在");
@@ -97,7 +103,8 @@ public interface ErrorCodeConstants {
ErrorCode BUSINESS_ASSAY_TASK_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "子样检测任务业务不存在");
ErrorCode BUSINESS_ASSAY_PROJECT_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "检测项目数据业务不存在");
ErrorCode BUSINESS_ASSAY_PARAMETER_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "检测参数数据业务不存在");
ErrorCode BUSINESS_SUB_SAMPLE_ASSESSMENT_NOT_EXISTS = new ErrorCode(1_032_100_000, "子样判定数据业务不存在");
ErrorCode BUSINESS_SUB_SAMPLE_ASSESSMENT_NOT_EXISTS = new ErrorCode(1_032_100_000, "子样判定业务不存在");
ErrorCode BUSINESS_SUB_SAMPLE_ASSESSMENT_PROJECT_NOT_EXISTS = new ErrorCode(1_032_100_000, "子样判定检测项目数据业务不存在");
ErrorCode BUSINESS_SAMPLE_HANDOVER_NOT_EXISTS = new ErrorCode(1_032_100_000, "样品交接单业务不存在");
ErrorCode BUSINESS_SAMPLE_HANDOVER_DETAIL_NOT_EXISTS = new ErrorCode(1_032_100_000, "样品交接明细不存在");
ErrorCode BUSINESS_ASSAY_TASK_NOT_EXISTS = new ErrorCode(1_032_100_000, "检测任务分配业务不存在");
@@ -111,6 +118,7 @@ public interface ErrorCodeConstants {
ErrorCode BUSINESS_STANDARD_SAMPLE_PROJECT_NOT_EXISTS = new ErrorCode(1_032_100_000, "标准样检测项目业务不存在");
ErrorCode BUSINESS_SUB_PARENT_SAMPLE_ASSESSMENT_NOT_EXISTS = new ErrorCode(1_032_100_000, "班组判定数据业务不存在");
ErrorCode BUSINESS_SUB_PARENT_SAMPLE_ASSESSMENT_PROJECT_NOT_EXISTS = new ErrorCode(1_032_100_000, "班组判定检测项目数据业务不存在");
ErrorCode BUSINESS_SUB_SAMPLE_PARENT_RECHECK_NOT_EXISTS = new ErrorCode(1_032_100_000, "分样复检业务数据不存在");
@@ -123,6 +131,8 @@ public interface ErrorCodeConstants {
ErrorCode BUSINESS_QC_MANAGEMENT_PARAMETER_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "质控样检测参数数据业务不存在");
ErrorCode BUSINESS_QC_COEFFICIENT_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "质控样检测系数任务数据,空白样、标样不存在");
ErrorCode BUSINESS_QC_COEFFICIENT_PARAMETER_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "质控样检测系数参数业务不存在");
ErrorCode BUSINESS_XRF_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "荧光采集记录不存在");
//检测报告
@@ -130,6 +140,7 @@ public interface ErrorCodeConstants {
ErrorCode REPORT_DOCUMENT_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "检测报告明细不存在");
ErrorCode REPORT_DOCUMENT_TYPE_NOT_EXISTS = new ErrorCode(1_032_100_000, "报告类型配置不存在");
ErrorCode REPORT_DOCUMENT_MAIN_CORRELATION_NOT_EXISTS = new ErrorCode(1_032_100_000, "报告主数据关系不存在");
ErrorCode REPORT_DOCUMENT_FILE_NOT_EXISTS = new ErrorCode(1_032_100_000, "检测报告附件不存在");
ErrorCode BUSINESS_SAMPLE_DISPATCH_NOT_EXISTS = new ErrorCode(1_032_100_000, "样品调拨不存在");
ErrorCode BUSINESS_SAMPLE_DISPATCH_DETAIL_NOT_EXISTS = new ErrorCode(1_032_100_000, "样品调拨明细不存在");
@@ -141,12 +152,38 @@ public interface ErrorCodeConstants {
ErrorCode MATERIAL_PRODUCT_NOT_EXISTS = new ErrorCode(1_032_150_000, "试剂耗材大类不存在");
ErrorCode MATERIAL_LIFECYCLE_DETAIL_NOT_EXISTS = new ErrorCode(1_032_150_000, "物料通用流程明细不存在");
ErrorCode MATERIAL_LIFECYCLE_NOT_EXISTS = new ErrorCode(1_032_150_000, "物料通用流程不存在");
ErrorCode MATERIAL_BATCH_NOT_EXISTS = new ErrorCode(1_032_150_000, "物料批次不存在");
ErrorCode MATERIAL_BATCH_ASSIGN_NOT_EXISTS = new ErrorCode(1_032_150_000, "物料批次分发不存在");
ErrorCode MATERIAL_INVENTORY_INBOUND_NOT_EXISTS = new ErrorCode(1_032_150_000, "入库,出库不存在");
ErrorCode MATERIAL_INVENTORY_INBOUND_DETAIL_NOT_EXISTS = new ErrorCode(1_032_150_000, "入库明细,出库明细等不存在");
ErrorCode SYSTEM_VERSION_MANAGEMENT_NOT_EXISTS = new ErrorCode(1_032_150_000, "客户端版本管理不存在");
ErrorCode MATERIAL_LOCATION_NOT_EXISTS = new ErrorCode(1_032_150_000, "存放位置不存在");
ErrorCode MATERIAL_INVENTORY_CHECK_NOT_EXISTS = new ErrorCode(1_032_150_000, "库存盘点不存在");
ErrorCode MATERIAL_INVENTORY_CHECK_BATCH_NOT_EXISTS = new ErrorCode(1_032_150_000, "库存盘点项不存在");
ErrorCode MATERIAL_INVENTORY_CHECK_DETAIL_NOT_EXISTS = new ErrorCode(1_032_150_000, "库存盘点明细不存在");
ErrorCode MATERIAL_INVENTORY_OUTBOUND_NOT_EXISTS = new ErrorCode(1_032_150_000, "出库不存在");
ErrorCode MATERIAL_INVENTORY_OUTBOUND_DETAIL_NOT_EXISTS = new ErrorCode(1_032_150_000, "出库明细,出库明细,含领用出库、退货出库、盘亏出库、销毁出库等不存在");
/*================================= tx 1_032_200_000 ~ 1_032_249_999 ==================================*/
/*================================= office 办公 1_032_250_000 ~ 1_032_299_999 ==================================*/
ErrorCode SUPPLIER_NOT_EXISTS = new ErrorCode(1_032_250_000, "供应商不存在");
ErrorCode SUPPLIER_PROPERTIES_NOT_EXISTS = new ErrorCode(1_032_250_000, "供应商属性不存在");
ErrorCode SUPPLIER_EVALUATION_NOT_EXISTS = new ErrorCode(1_032_250_000, "供应商评价不存在");
ErrorCode SUPPLIER_EVALUATION_AT_NOT_EXISTS = new ErrorCode(1_032_250_000, "供应商评价关系不存在");
/*================================= dzj 大质检 1_032_300_000 ~ 1_032_349_999 ==================================*/

View File

@@ -82,7 +82,10 @@ public interface QmsCommonConstant {
/** 已完成 **/
String COMPLETED = "completed";
/** 已下架 **/
String TAKEN_OFF = "taken_off";
/** 分配任务 **/
String TASK_ASSIGN = "task_assign";
@@ -104,6 +107,15 @@ public interface QmsCommonConstant {
/** 检验委托 **/
String ENTRUST_INSPECTION = "entrust_inspection";
/** 委托样品类型: 委检样 **/
String ENTRUST_COMMISSION_INSPECTION_SAMPLE = "commissionInspectionSample";
/** 委托样品类型: 商检分析样 **/
String ENTRUST_INSPECTION_ANALYSIS_SAMPLE = "inspectionAnalysisSample";
/** 委托样品类型: 商检综合 **/
String ENTRUST_COMPREHENSIVE_INSPECTION_SAMPLE = "comprehensiveInspectionSample";
/** 中心收样 **/
String FLOW_NODE_CENTER_RECEIVE = "flw_center_receive";
@@ -119,12 +131,18 @@ public interface QmsCommonConstant {
/** 分析收样 **/
String FLOW_NODE_ANALYSIS_RECEIVE = "flw_analysis_receive";
/** 分析 **/
String FLOW_NODE_ANALYSIS = "flw_analysis";
/** 分析送样 **/
String FLOW_NODE_ANALYSIS_SEND = "flw_analysis_send";
/** 班组送样 **/
String FLOW_NODE_TEAM_SEND = "flw_team_send";
/** 样品归库 **/
String FLOW_SAMPLE_STORAGE = "flw_sample_storage";
/** 结束 **/
String FLOW_NODE_END = "flw_end";
@@ -148,10 +166,48 @@ public interface QmsCommonConstant {
/** 品质控制 **/
String ASSAY_PROJECT_USAGE_QUALITY_CONTROL = "quality_control";
/** 结果判定-初始值 **/
String ASMT_INITIAL = "initial";
/** 结果判定-待上报 **/
String ASMT_PENDING_REPORT = "pending_report";
/** 结果判定-待判定 **/
String ASMT_PENDING_ASSESSMENT = "pending_assessment";
/** 结果判定-复测中 **/
String ASMT_RE_INSPECTED = "re_inspected";
/** 结果判定-已上报 */
String ASMT_REPORTED = "reported";
/** 检验完成状态-完成 **/
String CHECKED = "checked";
/** 检验完成状态-未完成 **/
String UNCHECKED = "unchecked";
/** 数据回报状态 未回报 **/
String UNRETURNED = "unreturned";
/** 自动 **/
String AUTOMATIC = "automatic";
/** 手动 **/
String MANUAL = "manual";
/** 样品库操作类型: 归库、调拨、下架 **/
String SAMPLE_STORAGE_OPERATION_TYPE_STORAGE = "storage";
String SAMPLE_STORAGE_OPERATION_TYPE_TRANSFER = "dispatch";
String SAMPLE_STORAGE_OPERATION_TYPE_TAKEN_OFF = "take_off";
/** 允许提交 **/
String ALLOW_SUBMIT = "allow_submit";
}

View File

@@ -17,7 +17,8 @@ public interface QmsPermissionConstant {
String TARGET_TYPE_CUSTOM = "custom";
//======================各业务模块权限常量=============================
//报告发起权限
String REPORT_DOCUMENT_TYPE_START = "report_document_type_start";
String REPORT_DOCUMENT_TYPE_START = "report_document_type_start"; //报告发起权限
String SAMPLE_WAREHOUSE_ADMIN = "sample_warehouse_admin"; //样品库管理员
}

View File

@@ -0,0 +1,21 @@
package com.zt.plat.module.qms.enums;
/**
* 权限模块常量
*/
public interface QmsWarehouseLocationConstant {
//数据类型
String DATA_TYPE_LOCATION = "库位";
String DATA_TYPE_WAREHOUSE = "仓库";
//仓库分类
String WAREHOUSE_TYPE_SAMPLE = "样品库";
String WAREHOUSE_TYPE_MATERIAL = "物料试剂";
//样品下架操作方式
String SAMPLE_TAKE_OFF_ACTION_WAY_SAMPLE = "sample";
String SAMPLE_TAKE_OFF_ACTION_WAY_LOCATION = "warehouseLocation";
}

View File

@@ -17,7 +17,8 @@
QMS模块。
</description>
<properties>
<zzjc.tio.version>3.9.1.v20251013-RELEASE</zzjc.tio.version>
<zzjc.tio.version>3.9.1.v20251204-RELEASE</zzjc.tio.version>
<liteflow.version>2.15.2</liteflow.version>
</properties>
<dependencies>
<!-- Spring Cloud 基础 -->
@@ -141,27 +142,27 @@
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>liteflow-spring-boot-starter</artifactId>
<version>2.15.1</version>
<version>${liteflow.version}</version>
</dependency>
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>liteflow-script-javax-pro</artifactId>
<version>2.15.1</version>
<version>${liteflow.version}</version>
</dependency>
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>liteflow-script-groovy</artifactId>
<version>2.15.1</version>
<version>${liteflow.version}</version>
</dependency>
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>liteflow-script-qlexpress</artifactId>
<version>2.15.1</version>
<version>${liteflow.version}</version>
</dependency>
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>liteflow-script-graaljs</artifactId>
<version>2.15.1</version>
<version>${liteflow.version}</version>
</dependency>
<!-- pdfbox -->

View File

@@ -93,6 +93,14 @@ public class BusinessAssayTaskController implements BusinessControllerMarker {
return success(pageResult);
}
@GetMapping("/list")
@Operation(summary = "获得检测任务分配业务分页")
//@PreAuthorize("@ss.hasPermission('qms:business-assay-task:query')")
public CommonResult<List<BusinessAssayTaskExtendRespVO>> getBusinessAssayTaskList(@Valid BusinessAssayTaskPageReqVO reqVO) {
List<BusinessAssayTaskExtendRespVO> listResult = businessAssayTaskService.getBusinessAssayTaskList(reqVO);
return success(listResult);
}
@GetMapping("/export-excel")
@Operation(summary = "导出检测任务分配业务 Excel")
//@PreAuthorize("@ss.hasPermission('qms:business-assay-task:export')")

View File

@@ -87,9 +87,9 @@ public class BusinessAssayTaskDetailController implements BusinessControllerMark
@GetMapping("/page")
@Operation(summary = "获得检测任务分配明细分页")
//@PreAuthorize("@ss.hasPermission('qms:business-assay-task-detail:query')")
public CommonResult<PageResult<BusinessAssayTaskDetailRespVO>> getBusinessAssayTaskDetailPage(@Valid BusinessAssayTaskDetailPageReqVO pageReqVO) {
PageResult<BusinessAssayTaskDetailDO> pageResult = businessAssayTaskDetailService.getBusinessAssayTaskDetailPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessAssayTaskDetailRespVO.class));
public CommonResult<PageResult<BusinessAssayTaskDetailExtendRespVO>> getBusinessAssayTaskDetailPage(@Valid BusinessAssayTaskDetailPageReqVO pageReqVO) {
PageResult<BusinessAssayTaskDetailExtendRespVO> pageResult = businessAssayTaskDetailService.getBusinessAssayTaskDetailPage(pageReqVO);
return success(pageResult);
}
@GetMapping("/list")
@@ -107,7 +107,7 @@ public class BusinessAssayTaskDetailController implements BusinessControllerMark
public void exportBusinessAssayTaskDetailExcel(@Valid BusinessAssayTaskDetailPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessAssayTaskDetailDO> list = businessAssayTaskDetailService.getBusinessAssayTaskDetailPage(pageReqVO).getList();
List<BusinessAssayTaskDetailExtendRespVO> list = businessAssayTaskDetailService.getBusinessAssayTaskDetailPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "检测任务分配明细.xls", "数据", BusinessAssayTaskDetailRespVO.class,
BeanUtils.toBean(list, BusinessAssayTaskDetailRespVO.class));

View File

@@ -1,8 +1,16 @@
package com.zt.plat.module.qms.business.bus.controller.admin;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchPageReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchSaveReqVO;
import com.alibaba.fastjson.JSONObject;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDetailDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
import com.zt.plat.module.qms.business.bus.service.BusinessSampleDispatchDetailService;
import com.zt.plat.module.qms.business.bus.service.BusinessSubSampleService;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigWarehouseLocationPageReqVO;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigWarehouseLocationRespVO;
import com.zt.plat.module.qms.business.config.service.ConfigWarehouseLocationService;
import com.zt.plat.module.qms.enums.QmsCommonConstant;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@@ -29,6 +37,7 @@ import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.BUSINESS_SUB_SAMPLE_NOT_EXISTS;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDO;
import com.zt.plat.module.qms.business.bus.service.BusinessSampleDispatchService;
@@ -40,24 +49,102 @@ import com.zt.plat.module.qms.business.bus.service.BusinessSampleDispatchService
public class BusinessSampleDispatchController implements BusinessControllerMarker {
@Resource
private BusinessSampleDispatchService businessSampleDispatchService;
@Resource private BusinessSampleDispatchService businessSampleDispatchService;
@Resource private BusinessSampleDispatchDetailService businessSampleDispatchDetailService;
@Resource private BusinessSubSampleService businessSubSampleService;
@Resource private ConfigWarehouseLocationService configWarehouseLocationService;
@PostMapping("/create")
@Operation(summary = "创建样品调拨")
// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:create')")
public CommonResult<BusinessSampleDispatchRespVO> createBusinessSampleDispatch(@Valid @RequestBody BusinessSampleDispatchSaveReqVO createReqVO) {
return success(businessSampleDispatchService.createBusinessSampleDispatch(createReqVO));
@PostMapping("/createTempData")
@Operation(summary = "创建临时数据")
public CommonResult<BusinessSampleDispatchRespVO> createTempData() {
BusinessSampleDispatchSaveReqVO vo = new BusinessSampleDispatchSaveReqVO();
vo.setCancelStatus("-1");
return success(businessSampleDispatchService.createBusinessSampleDispatch(vo));
}
@PutMapping("/update")
@Operation(summary = "更新样品调拨")
// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:update')")
public CommonResult<Boolean> updateBusinessSampleDispatch(@Valid @RequestBody BusinessSampleDispatchSaveReqVO updateReqVO) {
updateReqVO.setCancelStatus("0");
updateReqVO.setFlowStatus(QmsCommonConstant.NOT_START);
businessSampleDispatchService.updateBusinessSampleDispatch(updateReqVO);
return success(true);
}
@PostMapping("/addOrRemoveSample")
@Operation(summary = "增加或移除样品")
public CommonResult<Boolean> addOrRemoveSample(@Valid @RequestBody BusinessSampleDispatchSaveReqVO updateReqVO) {
businessSampleDispatchService.addOrRemoveSample(updateReqVO, true);
return success(true);
}
@PostMapping("/addBySampleReturnCode")
@Operation(summary = "按归库码增加样品")
public CommonResult<Boolean> addBySampleReturnCode(@RequestBody JSONObject param) {
String id = param.getString("id");
String sampleReturnCode = param.getString("sampleReturnCode");
String warehouseCode = param.getString("warehouseCode");
if(ObjectUtils.isEmpty(warehouseCode)){
return CommonResult.error(BUSINESS_SUB_SAMPLE_NOT_EXISTS.getCode(), "请选择仓库,再扫描样品!");
}
BusinessSubSampleDO businessSubSampleDO = businessSubSampleService.getBySampleReturnCode(sampleReturnCode);
if(businessSubSampleDO == null)
return CommonResult.error(BUSINESS_SUB_SAMPLE_NOT_EXISTS.getCode(), "未查询到此样品!");
//判断样品状态、库位
// String sampleWarehouseCode = businessSubSampleDO.getWarehouseCode(); //todo 判断库位
ConfigWarehouseLocationPageReqVO warehouseReqVO = new ConfigWarehouseLocationPageReqVO();
warehouseReqVO.setId(businessSubSampleDO.getConfigWarehouseLocationInfomationId());
PageResult<ConfigWarehouseLocationRespVO> warehousePage = configWarehouseLocationService.getConfigWarehouseLocationPage(warehouseReqVO);
if(warehousePage.getTotal() == 0){
return CommonResult.error(BUSINESS_SUB_SAMPLE_NOT_EXISTS.getCode(), "未查询到样品所在仓库,请检查样品码是否正确!");
}
ConfigWarehouseLocationRespVO warehouse = warehousePage.getList().get(0);
if(!warehouseCode.equals(warehouse.getWarehouseCode())){
return CommonResult.error(BUSINESS_SUB_SAMPLE_NOT_EXISTS.getCode(), "此样品所在仓库为:"+warehouse.getWarehouseName()+",请检查样品码是否正确!");
}
String returnStatus = businessSubSampleDO.getReturnStatus();
if(!QmsCommonConstant.COMPLETED.equals(returnStatus)){
return CommonResult.error(BUSINESS_SUB_SAMPLE_NOT_EXISTS.getCode(), "样品状态为:"+returnStatus+",不能调拨!");
}
String dispatchStatus = businessSubSampleDO.getDispatchStatus();
if("1".equals(dispatchStatus)){
return CommonResult.error(BUSINESS_SUB_SAMPLE_NOT_EXISTS.getCode(), "样品已被调拨:请归还后再调拨!");
}
BusinessSampleDispatchDetailPageReqVO reqVO = new BusinessSampleDispatchDetailPageReqVO();
reqVO.setParentId(Long.valueOf(id));
reqVO.setSampleReturnCode(sampleReturnCode);
PageResult<BusinessSampleDispatchDetailExtendRespVO> pageDetailList = businessSampleDispatchDetailService.getBusinessSampleDispatchDetailPage(reqVO);
if(pageDetailList.getTotal() > 0){
return CommonResult.error(BUSINESS_SUB_SAMPLE_NOT_EXISTS.getCode(), "次样品已添加,请勿重复添加!");
}
List<Long> sampleIds = new ArrayList<>();
sampleIds.add(businessSubSampleDO.getId());
BusinessSampleDispatchSaveReqVO updateReqVO = new BusinessSampleDispatchSaveReqVO();
updateReqVO.setId(Long.valueOf(id));
updateReqVO.setAddSubSampleIds(sampleIds);
businessSampleDispatchService.addOrRemoveSample(updateReqVO, false);
return success(true);
}
@PostMapping("/createProcessInstance")
@Operation(summary = "发起流程")
public CommonResult<BusinessSampleDispatchRespVO> createProcessInstance(@Valid @RequestBody BusinessSampleDispatchSaveReqVO vo) {
return businessSampleDispatchService.createProcessInstance(vo);
}
@PostMapping("/execDispatch")
@Operation(summary = "执行调拨")
public CommonResult<String> execDispatch(@Valid @RequestBody BusinessSampleDispatchSaveReqVO vo) {
return businessSampleDispatchService.execDispatch(vo);
}
@PostMapping("/execGiveback")
@Operation(summary = "调拨归还")
public CommonResult<String> execGiveback(@RequestBody JSONObject vo) {
return businessSampleDispatchService.execGiveback(vo);
}
@DeleteMapping("/delete")
@Operation(summary = "删除样品调拨")
@Parameter(name = "id", description = "编号", required = true)

View File

@@ -1,8 +1,10 @@
package com.zt.plat.module.qms.business.bus.controller.admin;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailPageReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailSaveReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
import com.zt.plat.module.qms.business.bus.service.BusinessSubSampleService;
import com.zt.plat.module.qms.enums.QmsCommonConstant;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@@ -29,6 +31,8 @@ import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.BUSINESS_SAMPLE_DISPATCH_DETAIL_NOT_EXISTS;
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.BUSINESS_SUB_SAMPLE_NOT_EXISTS;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDetailDO;
import com.zt.plat.module.qms.business.bus.service.BusinessSampleDispatchDetailService;
@@ -40,8 +44,28 @@ import com.zt.plat.module.qms.business.bus.service.BusinessSampleDispatchDetailS
public class BusinessSampleDispatchDetailController implements BusinessControllerMarker {
@Resource
private BusinessSampleDispatchDetailService businessSampleDispatchDetailService;
@Resource private BusinessSampleDispatchDetailService businessSampleDispatchDetailService;
@Resource private BusinessSubSampleService businessSubSampleService;
@GetMapping("/searchBySampleCode")
@Operation(summary = "扫码查询待归还样品")
public CommonResult<BusinessSampleDispatchDetailExtendRespVO> searchBySampleCode(HttpServletRequest request) {
String sampleReturnCode = request.getParameter("sampleReturnCode");
if(ObjectUtils.isEmpty(sampleReturnCode))
return CommonResult.error(BUSINESS_SAMPLE_DISPATCH_DETAIL_NOT_EXISTS.getCode(), "请输入样品编号!");
BusinessSampleDispatchDetailPageReqVO reqVO = new BusinessSampleDispatchDetailPageReqVO();
reqVO.setSampleReturnCode(sampleReturnCode);
reqVO.setBorrowStatus("1");
reqVO.setGivebackStatus("0");
PageResult<BusinessSampleDispatchDetailExtendRespVO> pageResult = businessSampleDispatchDetailService.getBusinessSampleDispatchDetailPage(reqVO);
if(pageResult.getTotal() == 0)
return CommonResult.error(BUSINESS_SAMPLE_DISPATCH_DETAIL_NOT_EXISTS.getCode(), "未查询到此样品!");
if(pageResult.getList().size() > 1)
return CommonResult.error(BUSINESS_SAMPLE_DISPATCH_DETAIL_NOT_EXISTS.getCode(), "样品编号重复,请联系管理员检查数据!");
BusinessSampleDispatchDetailExtendRespVO businessSampleDispatchDetailExtendRespVO = pageResult.getList().get(0);
return success(businessSampleDispatchDetailExtendRespVO);
}
@PostMapping("/create")
@Operation(summary = "创建样品调拨明细")
@@ -88,9 +112,9 @@ public class BusinessSampleDispatchDetailController implements BusinessControlle
@GetMapping("/page")
@Operation(summary = "获得样品调拨明细分页")
// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:query')")
public CommonResult<PageResult<BusinessSampleDispatchDetailRespVO>> getBusinessSampleDispatchDetailPage(@Valid BusinessSampleDispatchDetailPageReqVO pageReqVO) {
PageResult<BusinessSampleDispatchDetailDO> pageResult = businessSampleDispatchDetailService.getBusinessSampleDispatchDetailPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessSampleDispatchDetailRespVO.class));
public CommonResult<PageResult<BusinessSampleDispatchDetailExtendRespVO>> getBusinessSampleDispatchDetailPage(@Valid BusinessSampleDispatchDetailPageReqVO pageReqVO) {
PageResult<BusinessSampleDispatchDetailExtendRespVO> pageResult = businessSampleDispatchDetailService.getBusinessSampleDispatchDetailPage(pageReqVO);
return success(pageResult);
}
@GetMapping("/export-excel")
@@ -100,7 +124,7 @@ public class BusinessSampleDispatchDetailController implements BusinessControlle
public void exportBusinessSampleDispatchDetailExcel(@Valid BusinessSampleDispatchDetailPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessSampleDispatchDetailDO> list = businessSampleDispatchDetailService.getBusinessSampleDispatchDetailPage(pageReqVO).getList();
List<BusinessSampleDispatchDetailExtendRespVO> list = businessSampleDispatchDetailService.getBusinessSampleDispatchDetailPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "样品调拨明细.xls", "数据", BusinessSampleDispatchDetailRespVO.class,
BeanUtils.toBean(list, BusinessSampleDispatchDetailRespVO.class));

View File

@@ -110,6 +110,9 @@ public class BusinessSampleEntrustRegistrationController implements BusinessCont
@GetMapping("/queryWaitingDataForReport")
@Operation(summary = "查询待编制数据")
public CommonResult<PageResult<BusinessSampleEntrustRegistrationExtendRespVO>> queryWaitingDataForReport(@Valid BusinessSampleEntrustRegistrationPageReqVO pageReqVO) {
Long configReportTypeId = pageReqVO.getConfigReportTypeId();
if(configReportTypeId == null)
return CommonResult.error(0, "缺少configReportTypeId参数请刷新后重试");
PageResult<BusinessSampleEntrustRegistrationExtendRespVO> result = businessSampleEntrustRegistrationService.queryWaitingDataForReport(pageReqVO);
return success(result);
}

View File

@@ -29,6 +29,7 @@ import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleHandoverDO;
import com.zt.plat.module.qms.business.bus.service.BusinessSampleHandoverService;
import com.alibaba.fastjson2.JSONObject;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
@@ -36,7 +37,7 @@ import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
@RestController
@RequestMapping("/qms/business-sample-handover")
@Validated
public class BusinessSampleHandoverController implements BusinessControllerMarker {
public class BusinessSampleHandoverController {
@Resource
@@ -84,6 +85,14 @@ public class BusinessSampleHandoverController implements BusinessControllerMarke
return success(BeanUtils.toBean(businessSampleHandover, BusinessSampleHandoverRespVO.class));
}
@GetMapping("/reportDetail")
@Operation(summary = "除样品交接详情数据")
public CommonResult<?> reportDetail(@RequestParam("id") Long id) {
JSONObject jsonObject = businessSampleHandoverService.reportDetail(id);
return success(jsonObject);
}
@GetMapping("/page")
@Operation(summary = "获得样品交接单业务分页")
//@PreAuthorize("@ss.hasPermission('qms:business-sample-handover:query')")

View File

@@ -92,6 +92,14 @@ public class BusinessSampleHandoverDetailController implements BusinessControlle
return success(BeanUtils.toBean(pageResult, BusinessSampleHandoverDetailRespVO.class));
}
@GetMapping("/takeOffPageList")
@Operation(summary = "获得样品交接明细分页")
//@PreAuthorize("@ss.hasPermission('qms:business-sample-handover-detail:query')")
public CommonResult<PageResult<BusinessSampleHandoverDetailRespVO>> takeOffPageList(@Valid BusinessSampleHandoverDetailPageReqVO pageReqVO) {
PageResult<BusinessSampleHandoverDetailRespVO> pageResult = businessSampleHandoverDetailService.takeOffPageList(pageReqVO);
return success(pageResult);
}
@GetMapping("/export-excel")
@Operation(summary = "导出样品交接明细 Excel")
//@PreAuthorize("@ss.hasPermission('qms:business-sample-handover-detail:export')")

View File

@@ -42,14 +42,14 @@ public class BusinessSubParentSampleAssessmentController implements BusinessCont
@PostMapping("/create")
@Operation(summary = "创建班组判定数据业务")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:create')")
@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:create')")
public CommonResult<BusinessSubParentSampleAssessmentRespVO> createBusinessSubParentSampleAssessment(@Valid @RequestBody BusinessSubParentSampleAssessmentSaveReqVO createReqVO) {
return success(businessSubParentSampleAssessmentService.createBusinessSubParentSampleAssessment(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新班组判定数据业务")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:update')")
@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:update')")
public CommonResult<Boolean> updateBusinessSubParentSampleAssessment(@Valid @RequestBody BusinessSubParentSampleAssessmentSaveReqVO updateReqVO) {
businessSubParentSampleAssessmentService.updateBusinessSubParentSampleAssessment(updateReqVO);
return success(true);
@@ -58,7 +58,7 @@ public class BusinessSubParentSampleAssessmentController implements BusinessCont
@DeleteMapping("/delete")
@Operation(summary = "删除班组判定数据业务")
@Parameter(name = "id", description = "编号", required = true)
//@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:delete')")
@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:delete')")
public CommonResult<Boolean> deleteBusinessSubParentSampleAssessment(@RequestParam("id") Long id) {
businessSubParentSampleAssessmentService.deleteBusinessSubParentSampleAssessment(id);
return success(true);
@@ -67,7 +67,7 @@ public class BusinessSubParentSampleAssessmentController implements BusinessCont
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除班组判定数据业务")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:delete')")
@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:delete')")
public CommonResult<Boolean> deleteBusinessSubParentSampleAssessmentList(@RequestBody BatchDeleteReqVO req) {
businessSubParentSampleAssessmentService.deleteBusinessSubParentSampleAssessmentListByIds(req.getIds());
return success(true);
@@ -76,7 +76,7 @@ public class BusinessSubParentSampleAssessmentController implements BusinessCont
@GetMapping("/get")
@Operation(summary = "获得班组判定数据业务")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:query')")
@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:query')")
public CommonResult<BusinessSubParentSampleAssessmentRespVO> getBusinessSubParentSampleAssessment(@RequestParam("id") Long id) {
BusinessSubParentSampleAssessmentDO businessSubParentSampleAssessment = businessSubParentSampleAssessmentService.getBusinessSubParentSampleAssessment(id);
return success(BeanUtils.toBean(businessSubParentSampleAssessment, BusinessSubParentSampleAssessmentRespVO.class));
@@ -84,7 +84,7 @@ public class BusinessSubParentSampleAssessmentController implements BusinessCont
@GetMapping("/page")
@Operation(summary = "获得班组判定数据业务分页")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:query')")
@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:query')")
public CommonResult<PageResult<BusinessSubParentSampleAssessmentRespVO>> getBusinessSubParentSampleAssessmentPage(@Valid BusinessSubParentSampleAssessmentPageReqVO pageReqVO) {
PageResult<BusinessSubParentSampleAssessmentDO> pageResult = businessSubParentSampleAssessmentService.getBusinessSubParentSampleAssessmentPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessSubParentSampleAssessmentRespVO.class));
@@ -92,7 +92,7 @@ public class BusinessSubParentSampleAssessmentController implements BusinessCont
@GetMapping("/export-excel")
@Operation(summary = "导出班组判定数据业务 Excel")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:export')")
@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessSubParentSampleAssessmentExcel(@Valid BusinessSubParentSampleAssessmentPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {

View File

@@ -0,0 +1,106 @@
package com.zt.plat.module.qms.business.bus.controller.admin;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.constraints.*;
import jakarta.validation.*;
import jakarta.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
import com.zt.plat.framework.common.pojo.PageParam;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleAssessmentProjectDO;
import com.zt.plat.module.qms.business.bus.service.BusinessSubParentSampleAssessmentProjectService;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
@Tag(name = "管理后台 - 班组判定检测项目数据业务")
@RestController
@RequestMapping("/qms/business-sub-parent-sample-assessment-project")
@Validated
public class BusinessSubParentSampleAssessmentProjectController implements BusinessControllerMarker {
@Resource
private BusinessSubParentSampleAssessmentProjectService businessSubParentSampleAssessmentProjectService;
@PostMapping("/create")
@Operation(summary = "创建班组判定检测项目数据业务")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:create')")
public CommonResult<BusinessSubParentSampleAssessmentProjectRespVO> createBusinessSubParentSampleAssessment(@Valid @RequestBody BusinessSubParentSampleAssessmentProjectSaveReqVO createReqVO) {
return success(businessSubParentSampleAssessmentProjectService.createBusinessSubParentSampleAssessment(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新班组判定检测项目数据业务")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:update')")
public CommonResult<Boolean> updateBusinessSubParentSampleAssessment(@Valid @RequestBody BusinessSubParentSampleAssessmentProjectSaveReqVO updateReqVO) {
businessSubParentSampleAssessmentProjectService.updateBusinessSubParentSampleAssessment(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除班组判定检测项目数据业务")
@Parameter(name = "id", description = "编号", required = true)
//@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:delete')")
public CommonResult<Boolean> deleteBusinessSubParentSampleAssessment(@RequestParam("id") Long id) {
businessSubParentSampleAssessmentProjectService.deleteBusinessSubParentSampleAssessment(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除班组判定检测项目数据业务")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:delete')")
public CommonResult<Boolean> deleteBusinessSubParentSampleAssessmentList(@RequestBody BatchDeleteReqVO req) {
businessSubParentSampleAssessmentProjectService.deleteBusinessSubParentSampleAssessmentListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得班组判定检测项目数据业务")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:query')")
public CommonResult<BusinessSubParentSampleAssessmentProjectRespVO> getBusinessSubParentSampleAssessment(@RequestParam("id") Long id) {
BusinessSubParentSampleAssessmentProjectDO businessSubParentSampleAssessment = businessSubParentSampleAssessmentProjectService.getBusinessSubParentSampleAssessment(id);
return success(BeanUtils.toBean(businessSubParentSampleAssessment, BusinessSubParentSampleAssessmentProjectRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得班组判定检测项目数据业务分页")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:query')")
public CommonResult<PageResult<BusinessSubParentSampleAssessmentProjectRespVO>> getBusinessSubParentSampleAssessmentPage(@Valid BusinessSubParentSampleAssessmentProjectPageReqVO pageReqVO) {
PageResult<BusinessSubParentSampleAssessmentProjectDO> pageResult = businessSubParentSampleAssessmentProjectService.getBusinessSubParentSampleAssessmentPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessSubParentSampleAssessmentProjectRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出班组判定检测项目数据业务 Excel")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessSubParentSampleAssessmentExcel(@Valid BusinessSubParentSampleAssessmentProjectPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessSubParentSampleAssessmentProjectDO> list = businessSubParentSampleAssessmentProjectService.getBusinessSubParentSampleAssessmentPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "班组判定检测项目数据业务.xls", "数据", BusinessSubParentSampleAssessmentProjectRespVO.class,
BeanUtils.toBean(list, BusinessSubParentSampleAssessmentProjectRespVO.class));
}
}

View File

@@ -1,8 +1,5 @@
package com.zt.plat.module.qms.business.bus.controller.admin;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubSampleAssessmentPageReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubSampleAssessmentRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubSampleAssessmentSaveReqVO;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@@ -32,7 +29,7 @@ import com.zt.plat.module.qms.business.bus.service.BusinessSubSampleAssessmentSe
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
@Tag(name = "管理后台 - 子样判定数据业务")
@Tag(name = "管理后台 - 子样判定业务")
@RestController
@RequestMapping("/qms/business-sub-sample-assessment")
@Validated
@@ -43,24 +40,24 @@ public class BusinessSubSampleAssessmentController implements BusinessController
private BusinessSubSampleAssessmentService businessSubSampleAssessmentService;
@PostMapping("/create")
@Operation(summary = "创建子样判定数据业务")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:create')")
@Operation(summary = "创建子样判定业务")
@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:create')")
public CommonResult<BusinessSubSampleAssessmentRespVO> createBusinessSubSampleAssessment(@Valid @RequestBody BusinessSubSampleAssessmentSaveReqVO createReqVO) {
return success(businessSubSampleAssessmentService.createBusinessSubSampleAssessment(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新子样判定数据业务")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:update')")
@Operation(summary = "更新子样判定业务")
@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:update')")
public CommonResult<Boolean> updateBusinessSubSampleAssessment(@Valid @RequestBody BusinessSubSampleAssessmentSaveReqVO updateReqVO) {
businessSubSampleAssessmentService.updateBusinessSubSampleAssessment(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除子样判定数据业务")
@Operation(summary = "删除子样判定业务")
@Parameter(name = "id", description = "编号", required = true)
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:delete')")
@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:delete')")
public CommonResult<Boolean> deleteBusinessSubSampleAssessment(@RequestParam("id") Long id) {
businessSubSampleAssessmentService.deleteBusinessSubSampleAssessment(id);
return success(true);
@@ -68,40 +65,40 @@ public class BusinessSubSampleAssessmentController implements BusinessController
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除子样判定数据业务")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:delete')")
@Operation(summary = "批量删除子样判定业务")
@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:delete')")
public CommonResult<Boolean> deleteBusinessSubSampleAssessmentList(@RequestBody BatchDeleteReqVO req) {
businessSubSampleAssessmentService.deleteBusinessSubSampleAssessmentListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得子样判定数据业务")
@Operation(summary = "获得子样判定业务")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:query')")
@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:query')")
public CommonResult<BusinessSubSampleAssessmentRespVO> getBusinessSubSampleAssessment(@RequestParam("id") Long id) {
BusinessSubSampleAssessmentDO businessSubSampleAssessment = businessSubSampleAssessmentService.getBusinessSubSampleAssessment(id);
return success(BeanUtils.toBean(businessSubSampleAssessment, BusinessSubSampleAssessmentRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得子样判定数据业务分页")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:query')")
@Operation(summary = "获得子样判定业务分页")
@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:query')")
public CommonResult<PageResult<BusinessSubSampleAssessmentRespVO>> getBusinessSubSampleAssessmentPage(@Valid BusinessSubSampleAssessmentPageReqVO pageReqVO) {
PageResult<BusinessSubSampleAssessmentDO> pageResult = businessSubSampleAssessmentService.getBusinessSubSampleAssessmentPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessSubSampleAssessmentRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出子样判定数据业务 Excel")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:export')")
@Operation(summary = "导出子样判定业务 Excel")
@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessSubSampleAssessmentExcel(@Valid BusinessSubSampleAssessmentPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessSubSampleAssessmentDO> list = businessSubSampleAssessmentService.getBusinessSubSampleAssessmentPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "子样判定数据业务.xls", "数据", BusinessSubSampleAssessmentRespVO.class,
ExcelUtils.write(response, "子样判定业务.xls", "数据", BusinessSubSampleAssessmentRespVO.class,
BeanUtils.toBean(list, BusinessSubSampleAssessmentRespVO.class));
}

View File

@@ -0,0 +1,108 @@
package com.zt.plat.module.qms.business.bus.controller.admin;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubSampleAssessmentProjectPageReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubSampleAssessmentProjectRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubSampleAssessmentProjectSaveReqVO;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.*;
import jakarta.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
import com.zt.plat.framework.common.pojo.PageParam;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAssessmentProjectDO;
import com.zt.plat.module.qms.business.bus.service.BusinessSubSampleAssessmentProjectService;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
@Tag(name = "管理后台 - 子样判定检测项目数据业务")
@RestController
@RequestMapping("/qms/business-sub-sample-assessment-project")
@Validated
public class BusinessSubSampleAssessmentProjectController implements BusinessControllerMarker {
@Resource
private BusinessSubSampleAssessmentProjectService businessSubSampleAssessmentProjectService;
@PostMapping("/create")
@Operation(summary = "创建子样判定检测项目数据业务")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:create')")
public CommonResult<BusinessSubSampleAssessmentProjectRespVO> createBusinessSubSampleAssessment(@Valid @RequestBody BusinessSubSampleAssessmentProjectSaveReqVO createReqVO) {
return success(businessSubSampleAssessmentProjectService.createBusinessSubSampleAssessment(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新子样判定检测项目数据业务")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:update')")
public CommonResult<Boolean> updateBusinessSubSampleAssessment(@Valid @RequestBody BusinessSubSampleAssessmentProjectSaveReqVO updateReqVO) {
businessSubSampleAssessmentProjectService.updateBusinessSubSampleAssessment(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除子样判定检测项目数据业务")
@Parameter(name = "id", description = "编号", required = true)
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:delete')")
public CommonResult<Boolean> deleteBusinessSubSampleAssessment(@RequestParam("id") Long id) {
businessSubSampleAssessmentProjectService.deleteBusinessSubSampleAssessment(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除子样判定检测项目数据业务")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:delete')")
public CommonResult<Boolean> deleteBusinessSubSampleAssessmentList(@RequestBody BatchDeleteReqVO req) {
businessSubSampleAssessmentProjectService.deleteBusinessSubSampleAssessmentListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得子样判定检测项目数据业务")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:query')")
public CommonResult<BusinessSubSampleAssessmentProjectRespVO> getBusinessSubSampleAssessment(@RequestParam("id") Long id) {
BusinessSubSampleAssessmentProjectDO businessSubSampleAssessment = businessSubSampleAssessmentProjectService.getBusinessSubSampleAssessment(id);
return success(BeanUtils.toBean(businessSubSampleAssessment, BusinessSubSampleAssessmentProjectRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得子样判定检测项目数据业务分页")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:query')")
public CommonResult<PageResult<BusinessSubSampleAssessmentProjectRespVO>> getBusinessSubSampleAssessmentPage(@Valid BusinessSubSampleAssessmentProjectPageReqVO pageReqVO) {
PageResult<BusinessSubSampleAssessmentProjectDO> pageResult = businessSubSampleAssessmentProjectService.getBusinessSubSampleAssessmentPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessSubSampleAssessmentProjectRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出子样判定检测项目数据业务 Excel")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-assessment:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessSubSampleAssessmentExcel(@Valid BusinessSubSampleAssessmentProjectPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessSubSampleAssessmentProjectDO> list = businessSubSampleAssessmentProjectService.getBusinessSubSampleAssessmentPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "子样判定检测项目数据业务.xls", "数据", BusinessSubSampleAssessmentProjectRespVO.class,
BeanUtils.toBean(list, BusinessSubSampleAssessmentProjectRespVO.class));
}
}

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.qms.business.bus.controller.admin;
import com.alibaba.fastjson.JSONObject;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
@@ -82,9 +83,19 @@ public class BusinessSubSampleController implements BusinessControllerMarker {
@Operation(summary = "获得子样业务")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample:query')")
public CommonResult<BusinessSubSampleRespVO> getBusinessSubSample(@RequestParam("id") Long id) {
BusinessSubSampleDO businessSubSample = businessSubSampleService.getBusinessSubSample(id);
return success(BeanUtils.toBean(businessSubSample, BusinessSubSampleRespVO.class));
public CommonResult<BusinessSubSampleExtendRespVO> getBusinessSubSample(@RequestParam("id") Long id) {
// BusinessSubSampleDO businessSubSample = businessSubSampleService.getBusinessSubSample(id);
// return success(BeanUtils.toBean(businessSubSample, BusinessSubSampleRespVO.class));
BusinessSubSampleExtendRespVO result = businessSubSampleService.getBusinessSubSample(id);
return success(result);
}
@GetMapping("/getPrintSubSample")
@Operation(summary = "获得打印子样业务")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
public CommonResult<BusinessSubSampleExtendRespVO> getPrintSubSample(@RequestParam("id") Long id) {
BusinessSubSampleExtendRespVO result = businessSubSampleService.getPrintSubSample(id);
return success(result);
}
@GetMapping("/list")
@@ -103,6 +114,28 @@ public class BusinessSubSampleController implements BusinessControllerMarker {
return success(pageResult);
}
@GetMapping("/page-analysis-group")
@Operation(summary = "获得子样分析部门分页")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample:query')")
public CommonResult<PageResult<BusinessSubSampleExtendRespVO>> getAnalysisGroupPage(@Valid BusinessSubSamplePageReqVO pageReqVO) {
PageResult<BusinessSubSampleExtendRespVO> pageResult = businessSubSampleService.getAnalysisGroupPage(pageReqVO);
return success(pageResult);
}
@GetMapping("/page-stock")
@Operation(summary = "查询样品库分页数据")
public CommonResult<PageResult<BusinessSubSampleExtendRespVO>> pageStock(@Valid BusinessSubSamplePageReqVO pageReqVO) {
PageResult<BusinessSubSampleExtendRespVO> pageResult = businessSubSampleService.getBusinessSubSamplePage(pageReqVO);
return success(pageResult);
}
@GetMapping("/selectPageForDispatch")
@Operation(summary = "查询可申请调拨子样")
public CommonResult<PageResult<BusinessSubSampleExtendRespVO>> selectPageForDispatch(@Valid BusinessSubSamplePageReqVO pageReqVO) {
PageResult<BusinessSubSampleExtendRespVO> pageResult = businessSubSampleService.selectPageForDispatch(pageReqVO);
return success(pageResult);
}
@GetMapping("/page-task")
@Operation(summary = "获得子样业务分页")
//@PreAuthorize("@ss.hasPermission('qms:business-sub-sample:query')")
@@ -139,4 +172,24 @@ public class BusinessSubSampleController implements BusinessControllerMarker {
BeanUtils.toBean(list, BusinessSubSampleRespVO.class));
}
@PostMapping("/execReturnToStock")
@Operation(summary = "样品归库")
public CommonResult<BusinessSubSampleRespVO> execReturnToStock(@Valid @RequestBody BusinessSubSampleSaveReqVO reqVO) {
return success(businessSubSampleService.execReturnToStock(reqVO));
}
@PostMapping("/execTakeOff")
@Operation(summary = "样品下架")
public CommonResult<Integer> execTakeOff(@RequestBody JSONObject reqVO) {
Integer count = businessSubSampleService.execTakeOff(reqVO);
return success(count);
}
@PostMapping("/execChangeLocation")
@Operation(summary = "库位变更")
public CommonResult<Integer> execChangeLocation(@RequestBody JSONObject reqVO) {
Integer count = businessSubSampleService.execChangeLocation(reqVO);
return success(count);
}
}

View File

@@ -0,0 +1,105 @@
package com.zt.plat.module.qms.business.bus.controller.admin;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.*;
import jakarta.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
import com.zt.plat.framework.common.pojo.PageParam;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessXRFDataDO;
import com.zt.plat.module.qms.business.bus.service.BusinessXRFDataService;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
@Tag(name = "管理后台 - 荧光采集记录")
@RestController
@RequestMapping("/qms/business-xrf-data")
@Validated
public class BusinessXRFDataController implements BusinessControllerMarker {
@Resource
private BusinessXRFDataService businessXRFDataService;
@PostMapping("/create")
@Operation(summary = "创建荧光采集记录")
@PreAuthorize("@ss.hasPermission('qms:business-XRF-data:create')")
public CommonResult<BusinessXRFDataRespVO> createBusinessXRFData(@Valid @RequestBody BusinessXRFDataSaveReqVO createReqVO) {
return success(businessXRFDataService.createBusinessXRFData(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新荧光采集记录")
@PreAuthorize("@ss.hasPermission('qms:business-XRF-data:update')")
public CommonResult<Boolean> updateBusinessXRFData(@Valid @RequestBody BusinessXRFDataSaveReqVO updateReqVO) {
businessXRFDataService.updateBusinessXRFData(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除荧光采集记录")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('qms:business-XRF-data:delete')")
public CommonResult<Boolean> deleteBusinessXRFData(@RequestParam("id") Long id) {
businessXRFDataService.deleteBusinessXRFData(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除荧光采集记录")
@PreAuthorize("@ss.hasPermission('qms:business-XRF-data:delete')")
public CommonResult<Boolean> deleteBusinessXRFDataList(@RequestBody BatchDeleteReqVO req) {
businessXRFDataService.deleteBusinessXRFDataListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得荧光采集记录")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('qms:business-XRF-data:query')")
public CommonResult<BusinessXRFDataRespVO> getBusinessXRFData(@RequestParam("id") Long id) {
BusinessXRFDataDO businessXRFData = businessXRFDataService.getBusinessXRFData(id);
return success(BeanUtils.toBean(businessXRFData, BusinessXRFDataRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得荧光采集记录分页")
@PreAuthorize("@ss.hasPermission('qms:business-XRF-data:query')")
public CommonResult<PageResult<BusinessXRFDataRespVO>> getBusinessXRFDataPage(@Valid BusinessXRFDataPageReqVO pageReqVO) {
PageResult<BusinessXRFDataDO> pageResult = businessXRFDataService.getBusinessXRFDataPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessXRFDataRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出荧光采集记录 Excel")
@PreAuthorize("@ss.hasPermission('qms:business-XRF-data:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessXRFDataExcel(@Valid BusinessXRFDataPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessXRFDataDO> list = businessXRFDataService.getBusinessXRFDataPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "荧光采集记录.xls", "数据", BusinessXRFDataRespVO.class,
BeanUtils.toBean(list, BusinessXRFDataRespVO.class));
}
}

View File

@@ -8,6 +8,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson2.JSONObject;
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.service.SampleAnalysisAuditService;
@@ -25,11 +26,11 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success;
@RestController
@RequestMapping("/qms/bus/sample/analysis-audit")
@Validated
public class SampleAnalysisAuditController {
public class SampleAnalysisAuditController implements BusinessControllerMarker {
@Resource
private SampleAnalysisAuditService sampleAnalysisAuditService;
/**
* 交叉审核
* @return
@@ -41,10 +42,8 @@ public class SampleAnalysisAuditController {
}
@GetMapping("/getSampleResultAssessmentList")
public CommonResult<JSONObject> getSampleResultAssessmentList(Long configAssayMethodId, String assessmentStatus) {
JSONObject result = sampleAnalysisAuditService.getSampleResultAssessmentList(configAssayMethodId, assessmentStatus);
public CommonResult<JSONObject> getSampleResultAssessmentList(BusinessAssayTaskDataReqVO reqVO) {
JSONObject result = sampleAnalysisAuditService.getSampleResultAssessmentList(reqVO);
return success(result);
}

View File

@@ -7,6 +7,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson2.JSONObject;
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.service.SampleAnalysisService;
@@ -22,7 +24,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success;
@RestController
@RequestMapping("/qms/bus/sample/analysis")
@Validated
public class SampleAnalysisController {
public class SampleAnalysisController implements BusinessControllerMarker {
@Resource
private SampleAnalysisService sampleAnalysisService ;
@@ -51,11 +53,29 @@ public class SampleAnalysisController {
return success("成功");
}
//下发配料
@PostMapping("/issuedIngredients")
public CommonResult<?> issuedIngredients(Long businessAssayTaskId) {
sampleAnalysisService.issuedIngredients(businessAssayTaskId);
return success("成功");
}
@PostMapping("/submitSampleAnalysisByTaskId")
public CommonResult<?> submitSampleAnalysisByTaskId(Long businessAssayTaskId) {
sampleAnalysisService.submitSampleAnalysisByTaskId(businessAssayTaskId);
return success("成功");
}
@GetMapping("/getSampleAnalysisDataByTaskDataId")
public CommonResult<?> getSampleAnalysisDataByTaskDataId(Long businessAssayTaskDataId) {
JSONObject json = sampleAnalysisService.getSampleAnalysisDataByTaskDataId(businessAssayTaskDataId);
return success(json);
}
@PostMapping("/rollbackAnalysisSample")
public CommonResult<?> rollbackAnalysisSample(@RequestBody BusinessAssayTaskBackSampleReqVO req) {
sampleAnalysisService.rollbackAnalysisSample(req);
return success("成功");
}
}

View File

@@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson2.JSONObject;
import com.yomahub.liteflow.core.FlowExecutor;
import com.yomahub.liteflow.flow.LiteflowResponse;
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
@@ -34,7 +34,7 @@ import jakarta.validation.Valid;
@RestController
@RequestMapping("/qms/bus/sample/entrust")
@Validated
public class SampleEntrustController {
public class SampleEntrustController implements BusinessControllerMarker {
@Resource
private FlowExecutor flowExecutor;
@@ -59,14 +59,6 @@ public class SampleEntrustController {
BusinessSampleEntrustRegistrationExtendRespVO sampleEntrustRegistration = sampleEntrustService.detail(id);
return success(sampleEntrustRegistration);
}
@GetMapping("/reportDetail")
@Operation(summary = "委托单详情数据")
public CommonResult<?> reportDetail(@RequestParam("id") Long id) {
JSONObject jsonObject = sampleEntrustService.reportDetail(id);
return success(jsonObject);
}
@PostMapping("/update")
@Operation(summary = "修改委托登记")

View File

@@ -1,39 +1,30 @@
package com.zt.plat.module.qms.business.bus.controller.admin;
import java.util.ArrayList;
import java.util.List;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
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 com.alibaba.fastjson2.JSON;
import com.yomahub.liteflow.core.FlowExecutor;
import com.yomahub.liteflow.flow.LiteflowResponse;
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.tenant.core.context.TenantContextHolder;
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleFlowInfo;
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleFlowParam;
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleFlowContext;
import com.zt.plat.module.qms.business.bus.service.SampleFlowService;
import com.zt.plat.module.qms.core.sampleflow.SampleFlowDefinition;
import com.zt.plat.module.qms.core.sampleflow.SampleFlowNode;
import com.zt.plat.module.qms.enums.QmsCommonConstant;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
import static com.zt.plat.framework.common.pojo.CommonResult.error;
@Tag(name = "管理后台 - 样品流转")
@RestController
@RequestMapping("/qms/bus/sample/flow")
@Validated
public class SampleFlowController {
public class SampleFlowController implements BusinessControllerMarker {
@Resource
private SampleFlowService sampleFlowService;
@@ -45,138 +36,22 @@ public class SampleFlowController {
public CommonResult<?> sampleFlow(@Validated @RequestBody SampleFlowParam sampleFlowParam) {
LiteflowResponse response = sampleFlowService.sampleFlow(sampleFlowParam);
return success(response.getContextBean(SampleFlowContext.class));
}
@GetMapping("/test")
public CommonResult<?> test() {
SampleFlowDefinition sampleFlowDefinition = new SampleFlowDefinition();
sampleFlowDefinition.setFlowKey("flw_sub_sample_process");
sampleFlowDefinition.setFlowName("子样样品流转流程");
List<SampleFlowNode> flowNodeList = new ArrayList<>();
SampleFlowNode zxr = new SampleFlowNode();
zxr.setNodeName("中心收样");
zxr.setNodeKey("flw_center_receive");
zxr.setSort(3100);
SampleFlowNode zxs = new SampleFlowNode();
zxs.setNodeName("中心送样");
zxs.setNodeKey("flw_center_send");
zxs.setSort(3200);
SampleFlowNode bzr = new SampleFlowNode();
bzr.setNodeName("班组收样");
bzr.setNodeKey("flw_team_receive");
bzr.setSort(3300);
SampleFlowNode ypbm = new SampleFlowNode();
ypbm.setNodeName("样品编密");
ypbm.setNodeKey("flw_sample_encrypt");
ypbm.setSort(3400);
// SampleFlowNode fxr = new SampleFlowNode();
// fxr.setNodeName("分析收样");
// fxr.setNodeKey("flw_analysis_receive");
// fxr.setSort(3500);
//
SampleFlowNode fx = new SampleFlowNode();
fx.setNodeName("样品分析");
fx.setNodeKey("flw_analysis");
fx.setSort(3550);
//
// SampleFlowNode fxs = new SampleFlowNode();
// fxs.setNodeName("分析送样");
// fxs.setNodeKey("flw_analysis_send");
// fxs.setSort(3600);
SampleFlowNode bzs = new SampleFlowNode();
bzs.setNodeName("班组送样");
bzs.setNodeKey("flw_team_send");
bzs.setSort(3700);
SampleFlowNode ypgk = new SampleFlowNode();
ypgk.setNodeName("样品归库");
ypgk.setNodeKey("flw_sample_storage");
ypgk.setSort(3800);
ypgk.setNextFlowNodeList(null);
flowNodeList.add(ypgk);
zxr.setNextFlowNodeList(new ArrayList<SampleFlowNode>() {
{
add(BeanUtils.toBean(zxs,SampleFlowNode.class).setIsDefault(true));
}
});
flowNodeList.add(zxr);
zxs.setNextFlowNodeList(new ArrayList<>() {{
add(BeanUtils.toBean(bzr,SampleFlowNode.class).setIsDefault(true));
}});
flowNodeList.add(zxs);
bzr.setNextFlowNodeList(new ArrayList<>() {{
add(BeanUtils.toBean(ypbm,SampleFlowNode.class).setCondition("subSampleEncrypt"));//样品需要编密并且没编密过
add(BeanUtils.toBean(fx,SampleFlowNode.class).setCondition("subSampleNotEncrypt"));//样品无需编密或样品已编密过
}});
flowNodeList.add(bzr);
ypbm.setNextFlowNodeList(new ArrayList<>() {{
add(BeanUtils.toBean(fx,SampleFlowNode.class).setIsDefault(true));
}});
flowNodeList.add(ypbm);
// fxr.setNextFlowNodeList(new ArrayList<>() {{
// add(BeanUtils.toBean(fxs,SampleFlowNode.class).setIsDefault(true));
// }});
// flowNodeList.add(fxr);
//
//
// fxs.setNextFlowNodeList(new ArrayList<>() {{
// add(BeanUtils.toBean(bzs,SampleFlowNode.class).setIsDefault(true).setCondition("当前部门任务已全部分析完"));
// }});
// flowNodeList.add(fxs);
fx.setNextFlowNodeList(new ArrayList<>() {{
add(BeanUtils.toBean(bzs,SampleFlowNode.class).setIsDefault(true).setCondition("当前部门任务已全部分析完"));
}});
flowNodeList.add(fx);
bzs.setNextFlowNodeList(new ArrayList<>() {{
add(BeanUtils.toBean(fx,SampleFlowNode.class).setCondition("样品当前分析班组结果超差,需要发起复检"));
add(BeanUtils.toBean(bzr,SampleFlowNode.class).setCondition("当前部门数据已全部判断上报"));
add(BeanUtils.toBean(ypgk,SampleFlowNode.class).setCondition("当前样品所有分析任务已全部上报完"));
}});
flowNodeList.add(bzs);
sampleFlowDefinition.setFlowNodeList(flowNodeList);
String jsonSampleFlowDefinition = JSON.toJSONString(sampleFlowDefinition);
System.out.println(jsonSampleFlowDefinition);
Long tenantId = TenantContextHolder.getRequiredTenantId();
List<SampleFlowInfo> sampleFlowInfoList = new ArrayList<>();
sampleFlowInfoList.add(new SampleFlowInfo().setId(1967550576457330690L).setIsWeighing(0));
SampleFlowParam sampleFlowParam = new SampleFlowParam();
sampleFlowParam.setSampleSourceType(2);
sampleFlowParam.setCurrentSampleFlowKey("P3000");
sampleFlowParam.setSampleFlowInfoList(sampleFlowInfoList);
LiteflowResponse response = flowExecutor.execute2Resp("sampleFlowChain" + tenantId, sampleFlowParam, SampleFlowContext.class);
if (response.isSuccess()) {
return success(response.getContextBean(SampleFlowContext.class));
} else {
return error(1_032_100_000, response.getMessage());
}
//return success(FlowBus.getNodeMap());
}
}
/**
* 中心收样并送样
* @param sampleFlowParam
* @return
*/
@PostMapping("/centerReceiveAndSend")
public CommonResult<?> centerReceiveAndSend(@Validated @RequestBody SampleFlowParam sampleFlowParam) {
//中心收样
sampleFlowParam.setCurrentSampleFlowKey(QmsCommonConstant.FLOW_NODE_CENTER_RECEIVE);
LiteflowResponse response = sampleFlowService.sampleFlow(sampleFlowParam);
//中心送样
sampleFlowParam.setCurrentSampleFlowKey(QmsCommonConstant.FLOW_NODE_CENTER_SEND);
sampleFlowParam.setSendSampleOper(null);
response = sampleFlowService.sampleFlow(sampleFlowParam);
return success(response.getContextBean(SampleFlowContext.class));
}
}

View File

@@ -0,0 +1,45 @@
package com.zt.plat.module.qms.business.bus.controller.admin;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson2.JSONObject;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.qms.business.bus.service.SampleAnalysisAuditService;
import com.zt.plat.module.qms.business.bus.service.SampleEntrustService;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.annotation.Resource;
/**
* 报表数据查询接口不继承BusinessControllerMarker
*/
@RestController
@RequestMapping("/qms/bus/sample/reporting-data-query")
public class SampleReportDataQueryController {
@Resource
private SampleEntrustService sampleEntrustService;
@Resource
private SampleAnalysisAuditService sampleAnalysisAuditService;
@GetMapping("/entrust-report-detail")
@Operation(summary = "委托单详情数据")
public CommonResult<?> reportDetail(@RequestParam("id") Long id) {
JSONObject jsonObject = sampleEntrustService.reportDetail(id);
return success(jsonObject);
}
@Operation(summary = "委托单详情数据")
@GetMapping("/crossAuditByTaskId")
public CommonResult<?> crossAuditByTaskId(Long businessAssayTaskId) {
JSONObject result = sampleAnalysisAuditService.crossAuditByTaskId(businessAssayTaskId);
return success(result);
}
}

View File

@@ -6,6 +6,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson2.JSONObject;
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.service.SampleResultReportingService;
@@ -16,7 +17,6 @@ import jakarta.annotation.Resource;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
import java.util.List;
import java.util.Map;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -29,22 +29,22 @@ import org.springframework.web.bind.annotation.RequestBody;
@RestController
@RequestMapping("/qms/bus/sample/result-reporting")
@Validated
public class SampleResultReportingController {
public class SampleResultReportingController implements BusinessControllerMarker {
@Resource
private SampleResultReportingService sampleResultReportingService;
//获取未上报的方法
@GetMapping("/getUnReportMethodGroupList")
public CommonResult<?> getUnReportMethodGroupList() {
List<BusinessSubParentSampleAssessmentGroupRespVO> list = sampleResultReportingService.getUnReportMethodGroupList();
public CommonResult<?> getUnReportMethodGroupList(BusinessSubParentSampleAssessmentGroupReqVO reqVO) {
List<BusinessSubParentSampleAssessmentGroupRespVO> list = sampleResultReportingService.getUnReportMethodGroupList(reqVO);
return success(list);
}
//获取方法对应的样品
@GetMapping("/getSampleResultReportingList")
public CommonResult<?> getSampleResultReportingList(Long configAssayMethodId) {
JSONObject result = sampleResultReportingService.getSampleResultReportingList(configAssayMethodId);
public CommonResult<?> getSampleResultReportingList(BusinessSubParentSampleAssessmentGroupReqVO reqVO) {
JSONObject result = sampleResultReportingService.getSampleResultReportingList(reqVO);
return success(result);
}

View File

@@ -11,6 +11,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success;
import java.util.List;
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
@@ -27,7 +28,7 @@ import jakarta.annotation.Resource;
@RestController
@RequestMapping("/qms/bus/sample/task-assign")
@Validated
public class SampleTaskAssignController {
public class SampleTaskAssignController implements BusinessControllerMarker {
@Resource
private SampleTaskAssignService sampleTaskAssignService;
@@ -38,10 +39,17 @@ public class SampleTaskAssignController {
List<AdminUserRespDTO> list = sampleTaskAssignService.getAssignUserList();
return success(list);
}
@Operation(description = "根据用户id获取用户信息")
@GetMapping("/getUserInfoById")
public CommonResult<?> getUserInfoById(Long userId) {
AdminUserRespDTO userRespDTO = sampleTaskAssignService.getUserInfoById(userId);
return success(userRespDTO);
}
@GetMapping("/getAssaySampleList")
public CommonResult<?> getAssaySampleList() {
List<UnAssignTaskedSubSampleRespVO> list = sampleTaskAssignService.getAssaySampleList();
public CommonResult<?> getAssaySampleList(BusinessAssayTaskDataReqVO reqVO) {
List<UnAssignTaskedSubSampleRespVO> list = sampleTaskAssignService.getAssaySampleList(reqVO);
return success(list);
}

View File

@@ -0,0 +1,155 @@
package com.zt.plat.module.qms.business.bus.controller.admin;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
import java.util.ArrayList;
import java.util.List;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson2.JSON;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.module.qms.core.sampleflow.SampleFlowDefinition;
import com.zt.plat.module.qms.core.sampleflow.SampleFlowNode;
@RestController
@RequestMapping("/qms/bus/test")
public class TestController {
@GetMapping("/testSampleFlow")
public CommonResult<?> testSampleFlow() {
SampleFlowDefinition sampleFlowDefinition = new SampleFlowDefinition();
sampleFlowDefinition.setFlowKey("flw_sub_sample_process");
sampleFlowDefinition.setFlowName("子样样品流转流程");
List<SampleFlowNode> flowNodeList = new ArrayList<>();
SampleFlowNode zxr = new SampleFlowNode();
zxr.setNodeName("中心收样");
zxr.setNodeKey("flw_center_receive");
zxr.setSort(3100);
SampleFlowNode zxs = new SampleFlowNode();
zxs.setNodeName("中心送样");
zxs.setNodeKey("flw_center_send");
zxs.setSort(3200);
SampleFlowNode bzr = new SampleFlowNode();
bzr.setNodeName("班组收样");
bzr.setNodeKey("flw_team_receive");
bzr.setSort(3300);
SampleFlowNode ypbm = new SampleFlowNode();
ypbm.setNodeName("样品编密");
ypbm.setNodeKey("flw_sample_encrypt");
ypbm.setSort(3400);
// SampleFlowNode fxr = new SampleFlowNode();
// fxr.setNodeName("分析收样");
// fxr.setNodeKey("flw_analysis_receive");
// fxr.setSort(3500);
//
SampleFlowNode fx = new SampleFlowNode();
fx.setNodeName("样品分析");
fx.setNodeKey("flw_analysis");
fx.setSort(3550);
//
// SampleFlowNode fxs = new SampleFlowNode();
// fxs.setNodeName("分析送样");
// fxs.setNodeKey("flw_analysis_send");
// fxs.setSort(3600);
SampleFlowNode bzs = new SampleFlowNode();
bzs.setNodeName("班组送样");
bzs.setNodeKey("flw_team_send");
bzs.setSort(3700);
SampleFlowNode ypgk = new SampleFlowNode();
ypgk.setNodeName("样品归库");
ypgk.setNodeKey("flw_sample_storage");
ypgk.setSort(3800);
ypgk.setNextFlowNodeList(null);
flowNodeList.add(ypgk);
zxr.setNextFlowNodeList(new ArrayList<SampleFlowNode>() {
private static final long serialVersionUID = 6146393613606839512L;
{
add(BeanUtils.toBean(zxs,SampleFlowNode.class).setIsDefault(true));
}
});
flowNodeList.add(zxr);
zxs.setNextFlowNodeList(new ArrayList<>() {
private static final long serialVersionUID = 5357543125760924047L;
{
add(BeanUtils.toBean(bzr,SampleFlowNode.class).setIsDefault(true));
}});
flowNodeList.add(zxs);
bzr.setNextFlowNodeList(new ArrayList<>() {
private static final long serialVersionUID = 6376704859477839016L;
{
add(BeanUtils.toBean(ypbm,SampleFlowNode.class).setCondition("subSampleEncrypt"));//样品需要编密并且没编密过
add(BeanUtils.toBean(fx,SampleFlowNode.class).setCondition("subSampleNotEncrypt"));//样品无需编密或样品已编密过
}});
flowNodeList.add(bzr);
ypbm.setNextFlowNodeList(new ArrayList<>() {
private static final long serialVersionUID = 1014984817516902869L;
{
add(BeanUtils.toBean(fx,SampleFlowNode.class).setIsDefault(true));
}});
flowNodeList.add(ypbm);
// fxr.setNextFlowNodeList(new ArrayList<>() {{
// add(BeanUtils.toBean(fxs,SampleFlowNode.class).setIsDefault(true));
// }});
// flowNodeList.add(fxr);
//
//
// fxs.setNextFlowNodeList(new ArrayList<>() {{
// add(BeanUtils.toBean(bzs,SampleFlowNode.class).setIsDefault(true).setCondition("当前部门任务已全部分析完"));
// }});
// flowNodeList.add(fxs);
fx.setNextFlowNodeList(new ArrayList<>() {
private static final long serialVersionUID = -610440034210287957L;
{
add(BeanUtils.toBean(bzs,SampleFlowNode.class).setIsDefault(true).setCondition("当前部门任务已全部分析完"));
}});
flowNodeList.add(fx);
bzs.setNextFlowNodeList(new ArrayList<>() {
private static final long serialVersionUID = -5057434004685743838L;
{
// add(BeanUtils.toBean(fx,SampleFlowNode.class).setCondition("样品当前分析班组结果超差,需要发起复检"));
add(BeanUtils.toBean(bzr,SampleFlowNode.class).setCondition("subSampleSelfReportedOthersPending"));//当前部门数据已全部判断上报
add(BeanUtils.toBean(ypgk,SampleFlowNode.class).setCondition("subSampleAlldeptAnalyzed"));//当前样品所有分析任务已全部上报完
}});
flowNodeList.add(bzs);
sampleFlowDefinition.setFlowNodeList(flowNodeList);
String jsonSampleFlowDefinition = JSON.toJSONString(sampleFlowDefinition);
System.out.println(jsonSampleFlowDefinition);
return success(jsonSampleFlowDefinition);
}
}

View File

@@ -62,7 +62,20 @@ public class BatchSampleAnalysisColumnRespVO implements Serializable {
@Schema(description = "单位")
private String unit;
/** 类型project元素parameter参数 **/
@Schema(description = "类型project元素parameter参数")
private String type;
@Schema(description = "填写方式")
private String fillingWay;
@Schema(description = "参数分组_ID")
private Long groupDictionaryBusinessId;
@Schema(description = "参数分组_Key")
private String groupDictionaryBusinessKey;
@Schema(description = "参数分组_Name")
private String groupDictionaryBusinessName;
}

View File

@@ -0,0 +1,12 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import lombok.Data;
@Data
public class BusinessAssayParameterDataExtendRespVO extends BusinessAssayParameterDataRespVO {
private String parameterName;
private String parameterKey;
}

View File

@@ -54,10 +54,19 @@ public class BusinessAssayProjectAndParameterRespVO implements Serializable {
@Schema(description = "元素或参数配置参数编号")
private Integer paramNo;
/** 类型(1元素2:参数) **/
@Schema(description = "类型project元素2:参数)")
/** 类型(project元素parameter:参数) **/
@Schema(description = "类型project元素parameter:参数)")
private String type;
@Schema(description = "填写方式")
private String fillingWay;
@Schema(description = "参数分组_ID")
private Long groupDictionaryBusinessId;
@Schema(description = "参数分组_Key")
private String groupDictionaryBusinessKey;
@Schema(description = "参数分组_Name")
private String groupDictionaryBusinessName;
}

View File

@@ -65,4 +65,8 @@ public class BusinessAssayProjectDataReqVO {
@Schema(description = "备注")
private String remark;
//========================扩展字段==================================
@Schema(description = "检测任务ID列表", example = "16505")
private List<Long> businessAssayTaskDataIdList;
}

View File

@@ -5,6 +5,7 @@ import java.util.List;
import com.zt.plat.module.qms.business.config.controller.vo.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
@@ -43,6 +44,13 @@ public class BusinessAssayTaskAnalysisSampleAndQcProjectRespVO {
/** 动态表单值 **/
private String formValue;
@Schema(description = "是否配料,1-是0-否")
private Integer isIngredients;
@Schema(description = "配料状态,初始状态-initial、等待配料-in_progress、可提交-allow_submit", example = "2")
private String ingredientsStatus;
/** 质量控制分析方法 **/
//private List<ConfigQCSampleMethodExtendRespVO> configQCSampleMethodList;

View File

@@ -6,6 +6,8 @@ import java.util.Map;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodProjectCoefficientRespVO;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodProjectRangeRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
@@ -43,6 +45,12 @@ public class BusinessAssayTaskAnalysisSampleProjectRespVO {
/** 动态表单值 **/
private String formValue;
@Schema(description = "是否配料,1-是0-否")
private Integer isIngredients;
@Schema(description = "配料状态,初始状态-initial、等待配料-in_progress、可提交-allow_submit", example = "2")
private String ingredientsStatus;
/** 分析的列 **/
private List<BatchSampleAnalysisColumnRespVO> columns;

View File

@@ -0,0 +1,20 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import java.util.List;
import lombok.Data;
@Data
public class BusinessAssayTaskBackSampleReqVO {
/**
* 任务明细id
*/
private List<Long> idList;
/**
* 退回描述
*/
private String backDesc;
}

View File

@@ -17,6 +17,12 @@ public class BusinessAssayTaskDataExtendRespVO extends BusinessAssayTaskDataResp
/** 分析方法名称 **/
@Schema(description = "分析方法名称")
private String configAssayMethodName;
@Schema(description = "检测方法配置名称及类别")
private String configAssayMethodNameAndCategory;
@Schema(description = "子样配置id")
private Long configSubSampleId;
@Schema(description = "样品名称")
private String sampleName;
@@ -26,4 +32,13 @@ public class BusinessAssayTaskDataExtendRespVO extends BusinessAssayTaskDataResp
@Schema(description = "分析编号")
private String sampleAssayCode;
@Schema(description = "任务单模板key")
private String configReportTemplateKey;
private Integer asmtIsReported;
private Integer asmtIsRecheck;
private String asmtReportedStatus;
}

View File

@@ -5,12 +5,31 @@ import lombok.Data;
@Data
public class BusinessAssayTaskDataGroupRespVO {
/** 方法id **/
private Long configAssayMethodId;
/** 方法名称 **/
private String configAssayMethodName;
/** 方法名称及类别 **/
private String configAssayMethodNameAndCategory;
private String assayType;
private Integer sampleTaskCount;
/** 判定未完 **/
private Integer asmtInitialCount;
/** 判定待上报 **/
private Integer asmtPendingReportCount;
/** 判定待判定 **/
private Integer asmtPendingAssessmentCount;
/** 判定复测 **/
private Integer asmtReInspectedCount;
/** 判定已上报 **/
private Integer asmtReportedCount;
}

View File

@@ -22,6 +22,9 @@ public class BusinessAssayTaskDataPageReqVO extends PageParam {
@Schema(description = "分样子样ID", example = "20464")
private Long businessSubSampleId;
@Schema(description = "分样子样判定ID", example = "14560")
private Long businessSubSampleAssessmentId;
@Schema(description = "检测方法配置ID", example = "9130")
private Long configAssayMethodId;
@@ -46,6 +49,9 @@ public class BusinessAssayTaskDataPageReqVO extends PageParam {
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "27835")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] assignTaskTime;
@@ -59,6 +65,9 @@ public class BusinessAssayTaskDataPageReqVO extends PageParam {
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报人ID", example = "15920")
private Long reporterId;
@Schema(description = "上报时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reportTime;
@@ -89,4 +98,8 @@ public class BusinessAssayTaskDataPageReqVO extends PageParam {
@Schema(description = "备注")
private String remark;
//===================================扩展字段===============================================
@Schema(description = "样品状态")
private String sampleStatus;
}

View File

@@ -22,6 +22,9 @@ public class BusinessAssayTaskDataReqVO {
@Schema(description = "分样子样ID", example = "20464")
private Long businessSubSampleId;
@Schema(description = "分样子样判定ID", example = "14560")
private Long businessSubSampleAssessmentId;
@Schema(description = "检测方法配置ID", example = "9130")
private Long configAssayMethodId;
@@ -46,6 +49,9 @@ public class BusinessAssayTaskDataReqVO {
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "27835")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] assignTaskTime;
@@ -59,6 +65,9 @@ public class BusinessAssayTaskDataReqVO {
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报人ID", example = "15920")
private Long reporterId;
@Schema(description = "上报时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reportTime;
@@ -88,5 +97,30 @@ public class BusinessAssayTaskDataReqVO {
@Schema(description = "备注")
private String remark;
//=== 扩展字段,判定上报状态
@Schema(description = "判定上报状态")
private String asmtReportedStatus;
@Schema(description = "样品状态")
private String sampleStatus;
@Schema(description = "检测方法配置名称")
private String configAssayMethodName;
@Schema(description = "检测方法配置名称及类别")
private String configAssayMethodNameAndCategory;
@Schema(description = "收样时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] sampleReceiveTime;
@Schema(description = "样品编号")
private String sampleCode;
@Schema(description = "分析编号")
private String sampleAssayCode;
@Schema(description = "归库编号")
private String sampleReturnCode;
}

View File

@@ -28,6 +28,9 @@ public class BusinessAssayTaskDataRespVO {
@ExcelProperty("分样子样ID")
private Long businessSubSampleId;
@Schema(description = "分样子样判定ID", example = "14560")
private Long businessSubSampleAssessmentId;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "9130")
@ExcelProperty("检测方法配置ID")
private Long configAssayMethodId;
@@ -60,6 +63,10 @@ public class BusinessAssayTaskDataRespVO {
@ExcelProperty("分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "27835")
@ExcelProperty("分析人ID")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
@ExcelProperty("分配任务时间")
private LocalDateTime assignTaskTime;
@@ -76,6 +83,10 @@ public class BusinessAssayTaskDataRespVO {
@ExcelProperty("上报人")
private String reporter;
@Schema(description = "上报人ID", example = "15920")
@ExcelProperty("上报人ID")
private Long reporterId;
@Schema(description = "上报时间")
@ExcelProperty("上报时间")
private LocalDateTime reportTime;

View File

@@ -2,9 +2,7 @@ package com.zt.plat.module.qms.business.bus.controller.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 子样检测任务业务新增/修改 Request VO")
@@ -26,6 +24,9 @@ public class BusinessAssayTaskDataSaveReqVO {
@NotNull(message = "分样子样ID不能为空")
private Long businessSubSampleId;
@Schema(description = "分样子样判定ID", example = "14560")
private Long businessSubSampleAssessmentId;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "9130")
@NotNull(message = "检测方法配置ID不能为空")
private Long configAssayMethodId;
@@ -56,6 +57,9 @@ public class BusinessAssayTaskDataSaveReqVO {
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "27835")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
private LocalDateTime assignTaskTime;
@@ -68,6 +72,9 @@ public class BusinessAssayTaskDataSaveReqVO {
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报人ID", example = "15920")
private Long reporterId;
@Schema(description = "上报时间")
private LocalDateTime reportTime;

View File

@@ -1,17 +1,41 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
/**
* <b>BusinessAssayTaskDetailExtendRespVO</b>
* <p>
* 更新历史:
* <pre> 版本 更新时间 更新者 更新内容<hr/>
* V1.0 2025年10月17日 wxr Add</pre>
* <b>Copyright (C) 云南志者竟成科技有限公司</b>
* </p>
* @author 王兴荣<wxr@wangxingrong.com>
* @version V1.0
* @since 2025年10月17日
*/
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class BusinessAssayTaskDetailExtendRespVO extends BusinessAssayTaskDetailRespVO {
@Schema(description = "分析编号")
private String sampleAssayCode;
@Schema(description = "样品主样ID", example = "23293")
private Long businessBaseSampleId;
@Schema(description = "样品分样ID", example = "15024")
private Long businessSubParentSampleId;
@Schema(description = "分样子样ID", example = "20464")
private Long businessSubSampleId;
@Schema(description = "检测方法配置ID", example = "9130")
private Long configAssayMethodId;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2")
private String taskType;
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", example = "2")
private String assayType;
@Schema(description = "检测项目")
private String assayProject;
@Schema(description = "分析部门ID", example = "16988")
private Long assayDepartmentId;
@Schema(description = "分析部门名称", example = "芋艿")
private String assayDepartmentName;
@Schema(description = "分析人")
private String assayOperator;
}

View File

@@ -4,6 +4,7 @@ import java.util.List;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigQCSampleMethodExtendRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
@@ -24,6 +25,9 @@ public class BusinessAssayTaskExtendRespVO extends BusinessAssayTaskRespVO {
/** 分析方法名称 **/
private String configAssayMethodName;
@Schema(description = "检测方法配置名称及类别")
private String configAssayMethodNameAndCategory;
/** 分析方法对应的分析项目 **/
private String configAssayMethodProjectShowNames;

View File

@@ -34,6 +34,9 @@ public class BusinessAssayTaskPageReqVO extends PageParam {
@Schema(description = "任务单分配人")
private String taskAssignOperator;
@Schema(description = "任务单分配人ID", example = "14545")
private Long taskAssignOperatorId;
@Schema(description = "任务单分配时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] taskAssignTime;
@@ -45,9 +48,18 @@ public class BusinessAssayTaskPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] taskAssignSubmitTime;
@Schema(description = "是否配料,1-是0-否")
private Integer isIngredients;
@Schema(description = "配料状态,初始状态-initial、等待配料-in_progress、可提交-allow_submit", example = "2")
private String ingredientsStatus;
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分析人", example = "17685")
private Long assayOperatorId;
@Schema(description = "分析时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] assayTime;
@@ -69,26 +81,13 @@ public class BusinessAssayTaskPageReqVO extends PageParam {
@Schema(description = "上报人")
private String reportOperator;
@Schema(description = "上报人ID", example = "7393")
private Long reportOperatorId;
@Schema(description = "任务单完成时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] taskFinishTime;
@Schema(description = "标样业务ID", example = "27168")
private Long standardSampleId;
@Schema(description = "标样编号")
private String standardSampleCode;
@Schema(description = "标准样类型ID", example = "11282")
private Long standardSampleTypeId;
@Schema(description = "质控样编号")
private String qualitySampleCode;
@Schema(description = "质控样分析时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] qualitySampleAssayTime;
@Schema(description = "流程实例id", example = "19026")
private Long flowInstanceId;
@@ -101,10 +100,10 @@ public class BusinessAssayTaskPageReqVO extends PageParam {
@Schema(description = "签名信息")
private String documentSignature;
@Schema(description = "完成状态,未开始-not_start、审核中-running、已退回-returned、已通过-approved", example = "2")
@Schema(description = "完成状态,未开始-not_start、审核中-in_progress、已退回-returned、已通过-completed", example = "2")
private String finishStatus;
@Schema(description = "流程状态,未开始-not_start、审核中-running、已退回-returned、已通过-approved", example = "1")
@Schema(description = "流程状态,未开始-not_start、审核中-in_progress、已退回-returned、已通过-completed", example = "1")
private String flowStatus;
@Schema(description = "所属部门")
@@ -117,4 +116,9 @@ public class BusinessAssayTaskPageReqVO extends PageParam {
@Schema(description = "备注")
private String remark;
@Schema(description = "不等于当前分析人")
private String neAssayOperator;
@Schema(description = "部门id")
private Long deptId;
}

View File

@@ -0,0 +1,118 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 检测任务分配业务分页 Request VO")
@Data
public class BusinessAssayTaskReqVO {
@Schema(description = "指派编号")
private String taskNo;
@Schema(description = "指派单名称", example = "张三")
private String taskName;
@Schema(description = "检测方法配置ID", example = "13609")
private Long configAssayMethodId;
@Schema(description = "任务单模板ID", example = "4389")
private Long configReportTemplateId;
@Schema(description = "任务单模板key")
private String configReportTemplateKey;
@Schema(description = "任务单来源,分配-task_assign、领取-task_claim", example = "1")
private String taskSourceType;
@Schema(description = "任务单分配人")
private String taskAssignOperator;
@Schema(description = "任务单分配人ID", example = "14545")
private Long taskAssignOperatorId;
@Schema(description = "任务单分配时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] taskAssignTime;
@Schema(description = "任务单分配状态,进行中-in_progress、已提交-submitted、作废-void", example = "2")
private String taskAssignStatus;
@Schema(description = "任务单分配提交时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] taskAssignSubmitTime;
@Schema(description = "是否配料,1-是0-否")
private Integer isIngredients;
@Schema(description = "配料状态,初始状态-initial、等待配料-in_progress、可提交-allow_submit", example = "2")
private String ingredientsStatus;
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分析人", example = "17685")
private Long assayOperatorId;
@Schema(description = "分析时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] assayTime;
@Schema(description = "分析提交时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] assaySubmitTime;
@Schema(description = "任务单分析状态,未开始-not_start、已保存- saved、 已提交-submitted", example = "1")
private String taskAssayStatus;
@Schema(description = "分析状态列表")
private List<String> taskAssayStatusList;
@Schema(description = "上报时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reportTime;
@Schema(description = "上报人")
private String reportOperator;
@Schema(description = "上报人ID", example = "7393")
private Long reportOperatorId;
@Schema(description = "任务单完成时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] taskFinishTime;
@Schema(description = "流程实例id", example = "19026")
private Long flowInstanceId;
@Schema(description = "顶部字段数据集ID,T_DAT_COLT_FLD", example = "9742")
private Long formDataCollectionId;
@Schema(description = "顶部字段值")
private String formValue;
@Schema(description = "签名信息")
private String documentSignature;
@Schema(description = "完成状态,未开始-not_start、审核中-in_progress、已退回-returned、已通过-completed", example = "2")
private String finishStatus;
@Schema(description = "流程状态,未开始-not_start、审核中-in_progress、已退回-returned、已通过-completed", example = "1")
private String flowStatus;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "备注")
private String remark;
}

View File

@@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import com.zt.plat.module.qms.core.aspect.annotation.Dict;
@Schema(description = "管理后台 - 检测任务分配业务 Response VO")
@Data
@@ -42,6 +43,10 @@ public class BusinessAssayTaskRespVO {
@ExcelProperty("任务单分配人")
private String taskAssignOperator;
@Schema(description = "任务单分配人ID", example = "14545")
@ExcelProperty("任务单分配人ID")
private Long taskAssignOperatorId;
@Schema(description = "任务单分配时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("任务单分配时间")
private LocalDateTime taskAssignTime;
@@ -54,10 +59,20 @@ public class BusinessAssayTaskRespVO {
@ExcelProperty("任务单分配提交时间")
private LocalDateTime taskAssignSubmitTime;
@Schema(description = "是否配料,1-是0-否")
private Integer isIngredients;
@Schema(description = "配料状态,初始状态-initial、等待配料-in_progress、可提交-allow_submit", example = "2")
private String ingredientsStatus;
@Schema(description = "分析人")
@ExcelProperty("分析人")
private String assayOperator;
@Schema(description = "分析人", example = "17685")
@ExcelProperty("分析人")
private Long assayOperatorId;
@Schema(description = "分析时间")
@ExcelProperty("分析时间")
private LocalDateTime assayTime;
@@ -78,30 +93,14 @@ public class BusinessAssayTaskRespVO {
@ExcelProperty("上报人")
private String reportOperator;
@Schema(description = "上报人ID", example = "7393")
@ExcelProperty("上报人ID")
private Long reportOperatorId;
@Schema(description = "任务单完成时间")
@ExcelProperty("任务单完成时间")
private LocalDateTime taskFinishTime;
@Schema(description = "标样业务ID", example = "27168")
@ExcelProperty("标样业务ID")
private Long standardSampleId;
@Schema(description = "标样编号")
@ExcelProperty("标样编号")
private String standardSampleCode;
@Schema(description = "标准样类型ID", example = "11282")
@ExcelProperty("标准样类型ID")
private Long standardSampleTypeId;
@Schema(description = "质控样编号")
@ExcelProperty("质控样编号")
private String qualitySampleCode;
@Schema(description = "质控样分析时间")
@ExcelProperty("质控样分析时间")
private LocalDateTime qualitySampleAssayTime;
@Schema(description = "流程实例id", example = "19026")
@ExcelProperty("流程实例id")
private Long flowInstanceId;
@@ -118,12 +117,13 @@ public class BusinessAssayTaskRespVO {
@ExcelProperty("签名信息")
private String documentSignature;
@Schema(description = "完成状态,未开始-not_start、审核中-running、已退回-returned、已通过-approved", example = "2")
@ExcelProperty("完成状态,未开始-not_start、审核中-running、已退回-returned、已通过-approved")
@Schema(description = "完成状态,未开始-not_start、审核中-in_progress、已退回-returned、已通过-completed", example = "2")
@ExcelProperty("完成状态,未开始-not_start、审核中-in_progress、已退回-returned、已通过-completed")
private String finishStatus;
@Schema(description = "流程状态,未开始-not_start、审核中-running、已退回-returned、已通过-approved", example = "1")
@ExcelProperty("流程状态,未开始-not_start、审核中-running、已退回-returned、已通过-approved")
@Dict(dicCode = "flow_status")
@Schema(description = "流程状态,未开始-not_start、审核中-in_progress、已退回-returned、已通过-completed", example = "1")
@ExcelProperty("流程状态,未开始-not_start、审核中-in_progress、已退回-returned、已通过-completed")
private String flowStatus;
@Schema(description = "所属部门")

View File

@@ -40,9 +40,11 @@ public class BusinessAssayTaskSaveReqVO {
private String taskSourceType;
@Schema(description = "任务单分配人", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "任务单分配人不能为空")
private String taskAssignOperator;
@Schema(description = "任务单分配人ID", example = "14545")
private Long taskAssignOperatorId;
@Schema(description = "任务单分配时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "任务单分配时间不能为空")
private LocalDateTime taskAssignTime;
@@ -55,9 +57,18 @@ public class BusinessAssayTaskSaveReqVO {
@ExcelProperty("任务单分配提交时间")
private LocalDateTime taskAssignSubmitTime;
@Schema(description = "是否配料,1-是0-否")
private Integer isIngredients;
@Schema(description = "配料状态,初始状态-initial、等待配料-in_progress、可提交-allow_submit", example = "2")
private String ingredientsStatus;
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分析人", example = "17685")
private Long assayOperatorId;
@Schema(description = "分析时间")
private LocalDateTime assayTime;
@@ -73,24 +84,12 @@ public class BusinessAssayTaskSaveReqVO {
@Schema(description = "上报人")
private String reportOperator;
@Schema(description = "上报人ID", example = "7393")
private Long reportOperatorId;
@Schema(description = "任务单完成时间")
private LocalDateTime taskFinishTime;
@Schema(description = "标样业务ID", example = "27168")
private Long standardSampleId;
@Schema(description = "标样编号")
private String standardSampleCode;
@Schema(description = "标准样类型ID", example = "11282")
private Long standardSampleTypeId;
@Schema(description = "质控样编号")
private String qualitySampleCode;
@Schema(description = "质控样分析时间")
private LocalDateTime qualitySampleAssayTime;
@Schema(description = "流程实例id", example = "19026")
private Long flowInstanceId;
@@ -103,10 +102,10 @@ public class BusinessAssayTaskSaveReqVO {
@Schema(description = "签名信息")
private String documentSignature;
@Schema(description = "完成状态,未开始-not_start、审核中-running、已退回-returned、已通过-approved", example = "2")
@Schema(description = "完成状态,未开始-not_start、审核中-in_progress、已退回-returned、已通过-completed", example = "2")
private String finishStatus;
@Schema(description = "流程状态,未开始-not_start、审核中-running、已退回-returned、已通过-approved", example = "1")
@Schema(description = "流程状态,未开始-not_start、审核中-in_progress、已退回-returned、已通过-completed", example = "1")
private String flowStatus;
@Schema(description = "所属部门")

View File

@@ -64,4 +64,16 @@ public class BusinessHandoverRecordSubPageReqVO extends PageParam {
@Schema(description = "备注")
private String remark;
//==============扩展字段================
private Long deptId;
@Schema(description = "分析编号")
private String sampleAssayCode;
@Schema(description = "归库编号")
private String sampleReturnCode;
@Schema(description = "样品名称")
private String sampleName;
}

View File

@@ -20,7 +20,7 @@ public class BusinessHandoverRecordSubSaveReqVO {
private Long businessSubSampleId;
@Schema(description = "样品流程配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "9154")
@NotNull(message = "样品流程配置ID不能为空")
// @NotNull(message = "样品流程配置ID不能为空")
private Long configSampleFlowId;
@Schema(description = "样品流程节点KEY", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -50,11 +50,11 @@ public class BusinessHandoverRecordSubSaveReqVO {
private Long operatorId;
@Schema(description = "送样人", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "送样人不能为空")
// @NotEmpty(message = "送样人不能为空")
private String sendSampleOperator;
@Schema(description = "收样人", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "收样人不能为空")
// @NotEmpty(message = "收样人不能为空")
private String receiveSampleOperator;
@Schema(description = "上一个交接记录ID", example = "5605")

View File

@@ -46,6 +46,9 @@ public class BusinessQCCoefficientDataPageReqVO extends PageParam {
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "10644")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] assignTaskTime;
@@ -59,6 +62,9 @@ public class BusinessQCCoefficientDataPageReqVO extends PageParam {
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报人ID", example = "2683")
private Long reporterId;
@Schema(description = "上报时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reportTime;

View File

@@ -46,6 +46,9 @@ public class BusinessQCCoefficientDataReqVO {
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "10644")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] assignTaskTime;
@@ -59,6 +62,9 @@ public class BusinessQCCoefficientDataReqVO {
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报人ID", example = "2683")
private Long reporterId;
@Schema(description = "上报时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reportTime;

View File

@@ -60,6 +60,9 @@ public class BusinessQCCoefficientDataRespVO {
@ExcelProperty("分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "10644")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
@ExcelProperty("分配任务时间")
private LocalDateTime assignTaskTime;
@@ -76,6 +79,9 @@ public class BusinessQCCoefficientDataRespVO {
@ExcelProperty("上报人")
private String reporter;
@Schema(description = "上报人ID", example = "2683")
private Long reporterId;
@Schema(description = "上报时间")
@ExcelProperty("上报时间")
private LocalDateTime reportTime;

View File

@@ -50,6 +50,9 @@ public class BusinessQCCoefficientDataSaveReqVO {
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "10644")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
private LocalDateTime assignTaskTime;
@@ -59,6 +62,9 @@ public class BusinessQCCoefficientDataSaveReqVO {
@Schema(description = "是否已上报")
private Integer isReported;
@Schema(description = "上报人ID", example = "2683")
private Long reporterId;
@Schema(description = "上报人")
private String reporter;

View File

@@ -46,6 +46,9 @@ public class BusinessQCManagementDataPageReqVO extends PageParam {
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "6498")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] assignTaskTime;
@@ -59,6 +62,9 @@ public class BusinessQCManagementDataPageReqVO extends PageParam {
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报人ID", example = "17517")
private Long reporterId;
@Schema(description = "上报时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reportTime;

View File

@@ -46,6 +46,9 @@ public class BusinessQCManagementDataReqVO {
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "6498")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] assignTaskTime;
@@ -59,6 +62,9 @@ public class BusinessQCManagementDataReqVO {
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报人ID", example = "17517")
private Long reporterId;
@Schema(description = "上报时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reportTime;

View File

@@ -60,6 +60,9 @@ public class BusinessQCManagementDataRespVO {
@ExcelProperty("分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "6498")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
@ExcelProperty("分配任务时间")
private LocalDateTime assignTaskTime;
@@ -76,6 +79,9 @@ public class BusinessQCManagementDataRespVO {
@ExcelProperty("上报人")
private String reporter;
@Schema(description = "上报人ID", example = "17517")
private Long reporterId;
@Schema(description = "上报时间")
@ExcelProperty("上报时间")
private LocalDateTime reportTime;

View File

@@ -51,6 +51,9 @@ public class BusinessQCManagementDataSaveReqVO {
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "6498")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
private LocalDateTime assignTaskTime;
@@ -63,6 +66,9 @@ public class BusinessQCManagementDataSaveReqVO {
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报人ID", example = "17517")
private Long reporterId;
@Schema(description = "上报时间")
private LocalDateTime reportTime;

View File

@@ -0,0 +1,35 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class BusinessSampleDispatchDetailExtendRespVO extends BusinessSampleDispatchDetailRespVO{
//样品编号
private String sampleCode;
//样品名称
private String sampleName;
//归库码
private String sampleReturnCode;
//归库状态
private String sampleReturnStatus;
//归库时间
private LocalDateTime sampleReturnTime;
//调拨状态
private String dispatchStatus;
//归库状态
private String returnStatus;
//库位编码
private String warehouseLocationCode;
//仓库名称
private String warehouseName;
}

View File

@@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import com.zt.plat.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -12,66 +13,41 @@ import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
@Data
public class BusinessSampleDispatchDetailPageReqVO extends PageParam {
@Schema(description = "主表数据id,支持", example = "10889")
@Schema(description = "父ID", example = "828")
private Long parentId;
@Schema(description = "业务数据ID", example = "10723")
@Schema(description = "子样数据ID", example = "828")
private Long businessSubSampleId;
@Schema(description = "领用人")
private String borrowUser;
@Schema(description = "领用人id", example = "11884")
@Schema(description = "领用人id", example = "22151")
private Long borrowUserId;
@Schema(description = "领用时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private Long[] borrowTime;
private LocalDateTime[] borrowTime;
@Schema(description = "领用状态,0-未领用1-已领用", example = "1")
private String borrowStatus;
@Schema(description = "归还人")
private String givebackUser;
@Schema(description = "归还人id", example = "30812")
@Schema(description = "归还人id", example = "23976")
private Long givebackUserId;
@Schema(description = "归还时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private Long[] givebackTime;
private LocalDateTime[] givebackTime;
@Schema(description = "申请部门")
private String applyDepartment;
@Schema(description = "申请部门id", example = "10703")
private Long applyDepartmentId;
@Schema(description = "申请时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] applyTime;
@Schema(description = "提交状态,0-未提交1-已提交", example = "2")
private String submitStatus;
@Schema(description = "审批状态,0-未审批1-已审批", example = "2")
private String approvalStatus;
@Schema(description = "归还状态,0-未归还1-已归还", example = "2")
private String givebackStatus;
@Schema(description = "使用状态", example = "2")
private String useStatus;
@Schema(description = "表单数据,表单数据")
private String formData;
@Schema(description = "表单模板,表单编辑器模板")
private String formTemplate;
@Schema(description = "流程实例id", example = "25078")
private String flowInstanceId;
@Schema(description = "流程审批状态", example = "1")
private String flowStatus;
@Schema(description = "审批意见")
private String opinion;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@@ -82,4 +58,17 @@ public class BusinessSampleDispatchDetailPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
//================================扩展字段=============================================
@Schema(description = "样品归库码")
private String sampleReturnCode;
@Schema(description = "idsList")
private List<Long> idList;
@Schema(description = "调拨状态")
private String dispatchStatus;
@Schema(description = "归库状态")
private String returnStatus;
}

View File

@@ -11,86 +11,54 @@ import com.alibaba.excel.annotation.*;
@ExcelIgnoreUnannotated
public class BusinessSampleDispatchDetailRespVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31752")
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "20771")
@ExcelProperty("主键")
private Long id;
@Schema(description = "主表数据id,支持", requiredMode = Schema.RequiredMode.REQUIRED, example = "10889")
@ExcelProperty("主表数据id,支持")
@Schema(description = "父ID", example = "828")
@ExcelProperty("父ID")
private Long parentId;
@Schema(description = "业务数据ID", example = "10723")
@ExcelProperty("业务数据ID")
@Schema(description = "子样数据ID", example = "828")
@ExcelProperty("子样数据ID")
private Long businessSubSampleId;
@Schema(description = "领用人")
@ExcelProperty("领用人")
private String borrowUser;
@Schema(description = "领用人id", example = "11884")
@Schema(description = "领用人id", example = "22151")
@ExcelProperty("领用人id")
private Long borrowUserId;
@Schema(description = "领用时间")
@ExcelProperty("领用时间")
private Long borrowTime;
private LocalDateTime borrowTime;
@Schema(description = "领用状态,0-未领用1-已领用", example = "1")
@ExcelProperty("领用状态,0-未领用1-已领用")
private String borrowStatus;
@Schema(description = "归还人")
@ExcelProperty("归还人")
private String givebackUser;
@Schema(description = "归还人id", example = "30812")
@Schema(description = "归还人id", example = "23976")
@ExcelProperty("归还人id")
private Long givebackUserId;
@Schema(description = "归还时间")
@ExcelProperty("归还时间")
private Long givebackTime;
private LocalDateTime givebackTime;
@Schema(description = "申请部门")
@ExcelProperty("申请部门")
private String applyDepartment;
@Schema(description = "申请部门id", example = "10703")
@ExcelProperty("申请部门id")
private Long applyDepartmentId;
@Schema(description = "申请时间")
@ExcelProperty("申请时间")
private LocalDateTime applyTime;
@Schema(description = "提交状态,0-未提交1-已提交", example = "2")
@ExcelProperty("提交状态,0-未提交1-已提交")
private String submitStatus;
@Schema(description = "审批状态,0-未审批1-已审批", example = "2")
@ExcelProperty("审批状态,0-未审批1-已审批")
private String approvalStatus;
@Schema(description = "归还状态,0-未归还1-已归还", example = "2")
@ExcelProperty("归还状态,0-未归还1-已归还")
private String givebackStatus;
@Schema(description = "使用状态", example = "2")
@ExcelProperty("使用状态")
private String useStatus;
@Schema(description = "表单数据,表单数据")
@ExcelProperty("表单数据,表单数据")
private String formData;
@Schema(description = "表单模板,表单编辑器模板")
@ExcelProperty("表单模板,表单编辑器模板")
private String formTemplate;
@Schema(description = "流程实例id", example = "25078")
@ExcelProperty("流程实例id")
private String flowInstanceId;
@Schema(description = "流程审批状态", example = "1")
@ExcelProperty("流程审批状态")
private String flowStatus;
@Schema(description = "审批意见")
@ExcelProperty("审批意见")
private String opinion;
@Schema(description = "所属部门")
@ExcelProperty("所属部门")
private String systemDepartmentCode;

View File

@@ -10,67 +10,42 @@ import java.time.LocalDateTime;
@Data
public class BusinessSampleDispatchDetailSaveReqVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31752")
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "20771")
private Long id;
@Schema(description = "主表数据id,支持", requiredMode = Schema.RequiredMode.REQUIRED, example = "10889")
@NotNull(message = "主表数据id,支持不能为空")
@Schema(description = "父ID", example = "828")
private Long parentId;
@Schema(description = "业务数据ID", example = "10723")
@Schema(description = "子样数据ID", example = "828")
private Long businessSubSampleId;
@Schema(description = "领用人")
private String borrowUser;
@Schema(description = "领用人id", example = "11884")
@Schema(description = "领用人id", example = "22151")
private Long borrowUserId;
@Schema(description = "领用时间")
private Long borrowTime;
private LocalDateTime borrowTime;
@Schema(description = "领用状态,0-未领用1-已领用", example = "1")
private String borrowStatus;
@Schema(description = "归还人")
private String givebackUser;
@Schema(description = "归还人id", example = "30812")
@Schema(description = "归还人id", example = "23976")
private Long givebackUserId;
@Schema(description = "归还时间")
private Long givebackTime;
private LocalDateTime givebackTime;
@Schema(description = "申请部门")
private String applyDepartment;
@Schema(description = "申请部门id", example = "10703")
private Long applyDepartmentId;
@Schema(description = "申请时间")
private LocalDateTime applyTime;
@Schema(description = "提交状态,0-未提交1-已提交", example = "2")
private String submitStatus;
@Schema(description = "审批状态,0-未审批1-已审批", example = "2")
private String approvalStatus;
@Schema(description = "归还状态,0-未归还1-已归还", example = "2")
private String givebackStatus;
@Schema(description = "使用状态", example = "2")
private String useStatus;
@Schema(description = "表单数据,表单数据")
private String formData;
@Schema(description = "表单模板,表单编辑器模板")
private String formTemplate;
@Schema(description = "流程实例id", example = "25078")
private String flowInstanceId;
@Schema(description = "流程审批状态", example = "1")
private String flowStatus;
@Schema(description = "审批意见")
private String opinion;
@Schema(description = "所属部门")
private String systemDepartmentCode;

View File

@@ -34,6 +34,9 @@ public class BusinessSampleDispatchPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] applyTime;
@Schema(description = "申请原因")
private String applyContent;
@Schema(description = "库管员")
private String warehouseUser;
@@ -61,6 +64,12 @@ public class BusinessSampleDispatchPageReqVO extends PageParam {
@Schema(description = "备注")
private String remark;
@Schema(description = "仓库名称")
private String warehouseName;
@Schema(description = "仓库编码")
private String warehouseCode;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import com.zt.plat.module.qms.core.aspect.annotation.Dict;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@@ -43,6 +44,10 @@ public class BusinessSampleDispatchRespVO {
@ExcelProperty("申请时间")
private LocalDateTime applyTime;
@Schema(description = "申请原因")
@ExcelProperty("申请原因")
private String applyContent;
@Schema(description = "库管员")
@ExcelProperty("库管员")
private String warehouseUser;
@@ -61,6 +66,7 @@ public class BusinessSampleDispatchRespVO {
@Schema(description = "流程审批状态", example = "1")
@ExcelProperty("流程审批状态")
@Dict(dicCode = "flow_status")
private String flowStatus;
@Schema(description = "完成状态", example = "1")
@@ -79,6 +85,14 @@ public class BusinessSampleDispatchRespVO {
@ExcelProperty("备注")
private String remark;
@Schema(description = "仓库名称")
@ExcelProperty("仓库名称")
private String warehouseName;
@Schema(description = "仓库编码")
@ExcelProperty("仓库编码")
private String warehouseCode;
@Schema(description = "创建时间")
@ExcelProperty("创建时间")
private LocalDateTime createTime;

View File

@@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDateTime;
import java.util.List;
@Schema(description = "管理后台 - 样品调拨新增/修改 Request VO")
@Data
@@ -33,6 +34,9 @@ public class BusinessSampleDispatchSaveReqVO {
@Schema(description = "申请时间")
private LocalDateTime applyTime;
@Schema(description = "申请原因")
private String applyContent;
@Schema(description = "库管员")
private String warehouseUser;
@@ -60,4 +64,18 @@ public class BusinessSampleDispatchSaveReqVO {
@Schema(description = "备注")
private String remark;
@Schema(description = "仓库名称")
private String warehouseName;
@Schema(description = "仓库编码")
private String warehouseCode;
//=========================扩展字段=======================================
@Schema(description = "新增子样id")
List<Long> addSubSampleIds;
@Schema(description = "移除明细id")
List<Long> removeDetailIds;
}

View File

@@ -1,15 +1,42 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import java.time.LocalDateTime;
import java.util.List;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class BusinessSampleEntrustDetailExtendRespVO extends BusinessSampleEntrustDetailRespVO {
/**
* 样品类型key
*/
private String sampleTypeDictionaryBusinessKey;
/** 样品大类名称 **/
private String baseSampleName;
/** 主样配置id **/
private Long configBaseSampleId;
/** 打印标签 **/
private String printTemplate;
@JsonSerialize(using = LocalDateTimeSerializer.class) // 序列化(响应)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(description = "任务结束时间(yyyy-MM-dd HH:mm:ss)")
private LocalDateTime createTime;
private List<BusinessSampleEntrustProjectExtendRespVO> sampleEntrustDetailProjectList;
}

View File

@@ -151,7 +151,12 @@ public class BusinessSampleEntrustRegistrationPageReqVO extends PageParam {
@Schema(description = "备注")
private String remark;
@Schema(description = "部门id")
private Long deptId;
//====================扩展字段======================
@Schema(description = "委托来源名称")
private String configEntrustSourceName;
@Schema(description = "报表配置id")
private Long configReportTypeId;
}

View File

@@ -6,6 +6,7 @@ import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import com.zt.plat.module.qms.core.aspect.annotation.Dict;
@Schema(description = "管理后台 - 委检登记业务 Response VO")
@Data
@@ -144,10 +145,12 @@ public class BusinessSampleEntrustRegistrationRespVO {
@ExcelProperty("数据校验状态,success-数据校验成功、fail-数据校验失败")
private String dataCheckStatus;
@Dict(dicCode = "entrust_assay_status")
@Schema(description = "检验状态,unchecked-未检验checked-已检验", example = "2")
@ExcelProperty("检验状态,unchecked-未检验checked-已检验")
private String assayStatus;
@Dict(dicCode = "entrust_data_status")
@Schema(description = "数据回报状态,unreturned-未回报returned-已回报", example = "1")
@ExcelProperty("数据回报状态,unreturned-未回报returned-已回报")
private String dataStatus;

View File

@@ -61,4 +61,19 @@ public class BusinessSampleHandoverDetailRespVO {
@ExcelProperty("备注")
private String remark;
//==================================扩展字段==================================
@Schema(description = "原样品编号")
@ExcelProperty("原样品编号")
private String originalSampleCode;
@Schema(description = "库位编码")
@ExcelProperty("归库时间")
private String warehouseLocationCode;
@Schema(description = "归库时间")
@ExcelProperty("归库时间")
private LocalDateTime returnTime;
}

View File

@@ -60,4 +60,6 @@ public class BusinessSampleHandoverPageReqVO extends PageParam {
@Schema(description = "备注")
private String remark;
private Long deptId;
}

View File

@@ -17,4 +17,7 @@ public class BusinessSubParentSampleAssessmentExtendRespVO extends BusinessSubPa
@Schema(description = "显示名称")
private String showName;
@Schema(description = "分析方法")
private String configAssayMethodName;
}

View File

@@ -0,0 +1,33 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class BusinessSubParentSampleAssessmentGroupReqVO {
@Schema(description = "分析方法id")
private Long configAssayMethodId;
@Schema(description = "分析方法名称")
private String configAssayMethodName;
@Schema(description = "检测方法配置名称及类别")
private String configAssayMethodNameAndCategory;
@Schema(description = "分析部门ID")
private Long assayDepartmentId;
@Schema(description = "分析部门名称")
private String assayDepartmentName;
@Schema(description = "收样时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] sampleReceiveTime;
}

View File

@@ -1,13 +1,25 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class BusinessSubParentSampleAssessmentGroupRespVO {
@Schema(description = "分析方法id")
private Long configAssayMethodId;
@Schema(description = "分析方法名称")
private String configAssayMethodName;
@Schema(description = "检测方法配置名称及类别")
private String configAssayMethodNameAndCategory;
@Schema(description = "分析部门ID")
private Long assayDepartmentId;
@Schema(description = "分析部门名称")
private String assayDepartmentName;
private Integer sampleCount;
}

View File

@@ -13,45 +13,21 @@ import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
@Data
public class BusinessSubParentSampleAssessmentPageReqVO extends PageParam {
@Schema(description = "样品分样ID", example = "23188")
@Schema(description = "样品分样ID", example = "25701")
private Long businessSubParentSampleId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", example = "17642")
private Long dictionaryProjectId;
@Schema(description = "检测方法分析项目配置ID", example = "7653")
private Long configAssayMethodProjectId;
@Schema(description = "检测方法配置ID", example = "16271")
@Schema(description = "检测方法配置ID", example = "13131")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2")
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "1")
private String taskType;
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", example = "1")
private String assayType;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", example = "2")
private String dataType;
@Schema(description = "小数位")
private Integer decimalPosition;
@Schema(description = "判定值")
private String assessmentValue;
@Schema(description = "判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差", example = "2")
@Schema(description = "判定状态,in_progress-进行中 normal-正常", example = "1")
private String assessmentStatus;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否已上报")
private Integer isReported;
@@ -62,6 +38,9 @@ public class BusinessSubParentSampleAssessmentPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reportTime;
@Schema(description = "结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改")
private String resultTreatmentWay;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@@ -69,7 +48,7 @@ public class BusinessSubParentSampleAssessmentPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "乐观锁", example = "16999")
@Schema(description = "乐观锁", example = "13008")
private Integer updateCount;
@Schema(description = "备注")

View File

@@ -0,0 +1,23 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class BusinessSubParentSampleAssessmentProjectExtendRespVO extends BusinessSubParentSampleAssessmentProjectRespVO {
@Schema(description = "检测项目key")
private String dictionaryProjectKey;
@Schema(description = "检测项目单位")
private String dictionaryProjectUnit;
@Schema(description = "检测项目缩写")
private String simpleName;
@Schema(description = "显示名称")
private String showName;
@Schema(description = "分析方法")
private String configAssayMethodName;
}

View File

@@ -0,0 +1,78 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.zt.plat.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 班组判定检测项目数据业务分页 Request VO")
@Data
public class BusinessSubParentSampleAssessmentProjectPageReqVO extends PageParam {
@Schema(description = "样品分样ID", example = "23188")
private Long businessSubParentSampleId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", example = "17642")
private Long dictionaryProjectId;
@Schema(description = "检测方法分析项目配置ID", example = "7653")
private Long configAssayMethodProjectId;
@Schema(description = "检测方法配置ID", example = "16271")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2")
private String taskType;
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", example = "1")
private String assayType;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", example = "2")
private String dataType;
@Schema(description = "小数位")
private Integer decimalPosition;
@Schema(description = "判定值")
private String assessmentValue;
@Schema(description = "判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差", example = "2")
private String assessmentStatus;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否已上报")
private Integer isReported;
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reportTime;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "乐观锁", example = "16999")
private Integer updateCount;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,94 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 班组判定检测项目数据业务 Response VO")
@Data
@ExcelIgnoreUnannotated
public class BusinessSubParentSampleAssessmentProjectRespVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5014")
@ExcelProperty("ID")
private Long id;
@Schema(description = "样品分样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23188")
@ExcelProperty("样品分样ID")
private Long businessSubParentSampleId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", requiredMode = Schema.RequiredMode.REQUIRED, example = "17642")
@ExcelProperty("检测项目ID,字典表【T_DIC_PRJ】")
private Long dictionaryProjectId;
@Schema(description = "检测方法分析项目配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7653")
@ExcelProperty("检测方法分析项目配置ID")
private Long configAssayMethodProjectId;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16271")
@ExcelProperty("检测方法配置ID")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2")
private String taskType;
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", example = "1")
private String assayType;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间")
private String dataType;
@Schema(description = "小数位")
@ExcelProperty("小数位")
private Integer decimalPosition;
@Schema(description = "判定值")
@ExcelProperty("判定值")
private String assessmentValue;
@Schema(description = "判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差")
private String assessmentStatus;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否已上报", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("是否已上报")
private Integer isReported;
@Schema(description = "上报人", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("上报人")
private String reporter;
@Schema(description = "上报时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("上报时间")
private LocalDateTime reportTime;
@Schema(description = "所属部门")
@ExcelProperty("所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "16999")
@ExcelProperty("乐观锁")
private Integer updateCount;
@Schema(description = "备注")
@ExcelProperty("备注")
private String remark;
}

View File

@@ -0,0 +1,84 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 班组判定检测项目数据业务新增/修改 Request VO")
@Data
public class BusinessSubParentSampleAssessmentProjectSaveReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5014")
private Long id;
@Schema(description = "样品分样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23188")
@NotNull(message = "样品分样ID不能为空")
private Long businessSubParentSampleId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", requiredMode = Schema.RequiredMode.REQUIRED, example = "17642")
@NotNull(message = "检测项目ID,字典表【T_DIC_PRJ】不能为空")
private Long dictionaryProjectId;
@Schema(description = "检测方法分析项目配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7653")
@NotNull(message = "检测方法分析项目配置ID不能为空")
private Long configAssayMethodProjectId;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16271")
@NotNull(message = "检测方法配置ID不能为空")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2")
private String taskType;
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", example = "1")
private String assayType;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotEmpty(message = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间不能为空")
private String dataType;
@Schema(description = "小数位")
private Integer decimalPosition;
@Schema(description = "判定值")
private String assessmentValue;
@Schema(description = "判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotEmpty(message = "判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差不能为空")
private String assessmentStatus;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否已上报", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否已上报不能为空")
private Integer isReported;
@Schema(description = "上报人", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "上报人不能为空")
private String reporter;
@Schema(description = "上报时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "上报时间不能为空")
private LocalDateTime reportTime;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "16999")
@NotNull(message = "乐观锁不能为空")
private Integer updateCount;
@Schema(description = "备注")
private String remark;
}

View File

@@ -12,69 +12,46 @@ import com.alibaba.excel.annotation.*;
@ExcelIgnoreUnannotated
public class BusinessSubParentSampleAssessmentRespVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5014")
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29068")
@ExcelProperty("ID")
private Long id;
@Schema(description = "样品分样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23188")
@Schema(description = "样品分样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25701")
@ExcelProperty("样品分样ID")
private Long businessSubParentSampleId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", requiredMode = Schema.RequiredMode.REQUIRED, example = "17642")
@ExcelProperty("检测项目ID,字典表【T_DIC_PRJ】")
private Long dictionaryProjectId;
@Schema(description = "检测方法分析项目配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7653")
@ExcelProperty("检测方法分析项目配置ID")
private Long configAssayMethodProjectId;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16271")
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13131")
@ExcelProperty("检测方法配置ID")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2")
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("任务类型,【字典】【jy_sample_task_type】常规、抽查...")
private String taskType;
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", example = "1")
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...")
private String assayType;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间")
private String dataType;
@Schema(description = "小数位")
@ExcelProperty("小数位")
private Integer decimalPosition;
@Schema(description = "判定值")
@ExcelProperty("判定值")
private String assessmentValue;
@Schema(description = "判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差")
@Schema(description = "判定状态,in_progress-进行中 normal-正常", example = "1")
@ExcelProperty("判定状态,in_progress-进行中 normal-正常")
private String assessmentStatus;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否已上报", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(description = "是否已上报")
@ExcelProperty("是否已上报")
private Integer isReported;
@Schema(description = "上报人", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(description = "上报人")
@ExcelProperty("上报人")
private String reporter;
@Schema(description = "上报时间", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(description = "上报时间")
@ExcelProperty("上报时间")
private LocalDateTime reportTime;
@Schema(description = "结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改")
@ExcelProperty("结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改")
private String resultTreatmentWay;
@Schema(description = "所属部门")
@ExcelProperty("所属部门")
private String systemDepartmentCode;
@@ -83,7 +60,7 @@ public class BusinessSubParentSampleAssessmentRespVO {
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "16999")
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "13008")
@ExcelProperty("乐观锁")
private Integer updateCount;

View File

@@ -11,70 +11,44 @@ import java.time.LocalDateTime;
@Data
public class BusinessSubParentSampleAssessmentSaveReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5014")
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29068")
private Long id;
@Schema(description = "样品分样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23188")
@Schema(description = "样品分样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25701")
@NotNull(message = "样品分样ID不能为空")
private Long businessSubParentSampleId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", requiredMode = Schema.RequiredMode.REQUIRED, example = "17642")
@NotNull(message = "检测项目ID,字典表【T_DIC_PRJ】不能为空")
private Long dictionaryProjectId;
@Schema(description = "检测方法分析项目配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7653")
@NotNull(message = "检测方法分析项目配置ID不能为空")
private Long configAssayMethodProjectId;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16271")
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13131")
@NotNull(message = "检测方法配置ID不能为空")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2")
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "任务类型,【字典】【jy_sample_task_type】常规、抽查...不能为空")
private String taskType;
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", example = "1")
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...不能为空")
private String assayType;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotEmpty(message = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间不能为空")
private String dataType;
@Schema(description = "小数位")
private Integer decimalPosition;
@Schema(description = "判定值")
private String assessmentValue;
@Schema(description = "判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotEmpty(message = "判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差不能为空")
@Schema(description = "判定状态,in_progress-进行中 normal-正常", example = "1")
private String assessmentStatus;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否已上报", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否已上报不能为空")
@Schema(description = "是否已上报")
private Integer isReported;
@Schema(description = "上报人", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "上报人不能为空")
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "上报时间不能为空")
@Schema(description = "上报时间")
private LocalDateTime reportTime;
@Schema(description = "结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改")
private String resultTreatmentWay;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "16999")
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "13008")
@NotNull(message = "乐观锁不能为空")
private Integer updateCount;

View File

@@ -31,6 +31,9 @@ public class BusinessSubSampleAnalysisGroupPageReqVO extends PageParam {
@Schema(description = "样品状态", example = "1")
private String sampleStatus;
@Schema(description = "是否送样")
private Integer isSend;
@Schema(description = "收样人")
private String sampleReceiver;

View File

@@ -40,6 +40,9 @@ public class BusinessSubSampleAnalysisGroupRespVO {
@ExcelProperty("样品状态")
private String sampleStatus;
@Schema(description = "是否送样")
private Integer isSend;
@Schema(description = "收样人")
@ExcelProperty("收样人")
private String sampleReceiver;

View File

@@ -37,6 +37,9 @@ public class BusinessSubSampleAnalysisGroupSaveReqVO {
@NotEmpty(message = "样品状态不能为空")
private String sampleStatus;
@Schema(description = "是否送样")
private Integer isSend;
@Schema(description = "收样人")
private String sampleReceiver;

View File

@@ -9,55 +9,37 @@ import java.time.LocalDateTime;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 子样判定数据业务分页 Request VO")
@Schema(description = "管理后台 - 子样判定业务分页 Request VO")
@Data
public class BusinessSubSampleAssessmentPageReqVO extends PageParam {
@Schema(description = "分样id")
@Schema(description = "样品分样ID", example = "29115")
private Long businessSubParentSampleId;
@Schema(description = "分样子样ID", example = "7025")
@Schema(description = "分样子样ID", example = "30256")
private Long businessSubSampleId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", example = "21744")
private Long dictionaryProjectId;
@Schema(description = "检测方法分析项目配置ID", example = "14847")
private Long configAssayMethodProjectId;
@Schema(description = "检测方法配置ID", example = "8091")
@Schema(description = "检测方法配置ID", example = "16304")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2")
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "1")
private String taskType;
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", example = "1")
private String assayType;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", example = "1")
private String dataType;
@Schema(description = "小数位")
private Integer decimalPosition;
@Schema(description = "判定值")
private String assessmentValue;
@Schema(description = "判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差", example = "1")
@Schema(description = "判定状态,in_progress-进行中 normal-正常exceeds_tolerance-超差", example = "2")
private String assessmentStatus;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否复测,1-是0-否")
private Integer isRecheck;
@Schema(description = "是否已上报")
@Schema(description = "是否已上报,1-是0-否")
private Integer isReported;
@Schema(description = "上报状态,初始状态-initial、待上报-pending_report、待判定-pending_assessment、已复检-re_inspected、已上报-reported", example = "1")
private String reportedStatus;
@Schema(description = "上报人")
private String reporter;
@@ -65,6 +47,9 @@ public class BusinessSubSampleAssessmentPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reportTime;
@Schema(description = "结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改")
private String resultTreatmentWay;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@@ -72,7 +57,7 @@ public class BusinessSubSampleAssessmentPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "乐观锁", example = "12836")
@Schema(description = "乐观锁", example = "6438")
private Integer updateCount;
@Schema(description = "备注")

View File

@@ -0,0 +1,24 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class BusinessSubSampleAssessmentProjectExtendRespVO extends BusinessSubSampleAssessmentProjectRespVO {
/** 分析方法名称 **/
@Schema(description = "分析方法名称")
private String configAssayMethodName;
@Schema(description = "检测项目key")
private String dictionaryProjectKey;
@Schema(description = "检测项目单位")
private String dictionaryProjectUnit;
@Schema(description = "检测项目缩写")
private String simpleName;
@Schema(description = "显示名称")
private String showName;
}

View File

@@ -0,0 +1,84 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.zt.plat.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 子样判定检测项目数据业务分页 Request VO")
@Data
public class BusinessSubSampleAssessmentProjectPageReqVO extends PageParam {
@Schema(description = "分样id")
private Long businessSubParentSampleId;
@Schema(description = "分样子样ID", example = "7025")
private Long businessSubSampleId;
@Schema(description = "分样子样判定ID", example = "14560")
private Long businessSubSampleAssessmentId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", example = "21744")
private Long dictionaryProjectId;
@Schema(description = "检测方法分析项目配置ID", example = "14847")
private Long configAssayMethodProjectId;
@Schema(description = "检测方法配置ID", example = "8091")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2")
private String taskType;
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", example = "1")
private String assayType;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", example = "1")
private String dataType;
@Schema(description = "小数位")
private Integer decimalPosition;
@Schema(description = "判定值")
private String assessmentValue;
@Schema(description = "判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差", example = "1")
private String assessmentStatus;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否已上报")
private Integer isReported;
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reportTime;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "乐观锁", example = "12836")
private Integer updateCount;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,103 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 子样判定检测项目数据业务 Response VO")
@Data
@ExcelIgnoreUnannotated
public class BusinessSubSampleAssessmentProjectRespVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23478")
@ExcelProperty("ID")
private Long id;
@Schema(description = "分样id")
private Long businessSubParentSampleId;
@Schema(description = "分样子样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7025")
@ExcelProperty("分样子样ID")
private Long businessSubSampleId;
@Schema(description = "分样子样判定ID", example = "14560")
@ExcelProperty("分样子样判定ID")
private Long businessSubSampleAssessmentId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", requiredMode = Schema.RequiredMode.REQUIRED, example = "21744")
@ExcelProperty("检测项目ID,字典表【T_DIC_PRJ】")
private Long dictionaryProjectId;
@Schema(description = "检测方法分析项目配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14847")
@ExcelProperty("检测方法分析项目配置ID")
private Long configAssayMethodProjectId;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8091")
@ExcelProperty("检测方法配置ID")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("任务类型,【字典】【jy_sample_task_type】常规、抽查...")
private String taskType;
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...")
private String assayType;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间")
private String dataType;
@Schema(description = "小数位")
@ExcelProperty("小数位")
private Integer decimalPosition;
@Schema(description = "判定值")
@ExcelProperty("判定值")
private String assessmentValue;
@Schema(description = "判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差", example = "1")
@ExcelProperty("判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差")
private String assessmentStatus;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否已上报", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("是否已上报")
private Integer isReported;
@Schema(description = "上报人", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("上报人")
private String reporter;
@Schema(description = "上报时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("上报时间")
private LocalDateTime reportTime;
@Schema(description = "所属部门", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "12836")
@ExcelProperty("乐观锁")
private Integer updateCount;
@Schema(description = "备注")
@ExcelProperty("备注")
private String remark;
}

View File

@@ -0,0 +1,90 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 子样判定检测项目数据业务新增/修改 Request VO")
@Data
public class BusinessSubSampleAssessmentProjectSaveReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23478")
private Long id;
@Schema(description = "分样id")
private Long businessSubParentSampleId;
@Schema(description = "分样子样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7025")
@NotNull(message = "分样子样ID不能为空")
private Long businessSubSampleId;
@Schema(description = "分样子样判定ID", example = "14560")
private Long businessSubSampleAssessmentId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", requiredMode = Schema.RequiredMode.REQUIRED, example = "21744")
@NotNull(message = "检测项目ID,字典表【T_DIC_PRJ】不能为空")
private Long dictionaryProjectId;
@Schema(description = "检测方法分析项目配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14847")
@NotNull(message = "检测方法分析项目配置ID不能为空")
private Long configAssayMethodProjectId;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8091")
@NotNull(message = "检测方法配置ID不能为空")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotEmpty(message = "任务类型,【字典】【jy_sample_task_type】常规、抽查...不能为空")
private String taskType;
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...不能为空")
private String assayType;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间不能为空")
private String dataType;
@Schema(description = "小数位")
private Integer decimalPosition;
@Schema(description = "判定值")
private String assessmentValue;
@Schema(description = "判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差", example = "1")
private String assessmentStatus;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否已上报", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否已上报不能为空")
private Integer isReported;
@Schema(description = "上报人", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "上报人不能为空")
private String reporter;
@Schema(description = "上报时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "上报时间不能为空")
private LocalDateTime reportTime;
@Schema(description = "所属部门", requiredMode = Schema.RequiredMode.REQUIRED)
private String systemDepartmentCode;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "12836")
private Integer updateCount;
@Schema(description = "备注")
private String remark;
}

View File

@@ -7,41 +7,28 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 子样判定数据业务 Response VO")
@Schema(description = "管理后台 - 子样判定业务 Response VO")
@Data
@ExcelIgnoreUnannotated
public class BusinessSubSampleAssessmentRespVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23478")
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5736")
@ExcelProperty("ID")
private Long id;
@Schema(description = "分样id")
@Schema(description = "样品分样ID", example = "29115")
@ExcelProperty("样品分样ID")
private Long businessSubParentSampleId;
@Schema(description = "分样子样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7025")
@Schema(description = "分样子样ID", example = "30256")
@ExcelProperty("分样子样ID")
private Long businessSubSampleId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", requiredMode = Schema.RequiredMode.REQUIRED, example = "21744")
@ExcelProperty("检测项目ID,字典表【T_DIC_PRJ】")
private Long dictionaryProjectId;
@Schema(description = "检测方法分析项目配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14847")
@ExcelProperty("检测方法分析项目配置ID")
private Long configAssayMethodProjectId;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8091")
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16304")
@ExcelProperty("检测方法配置ID")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("任务类型,【字典】【jy_sample_task_type】常规、抽查...")
private String taskType;
@@ -49,38 +36,33 @@ public class BusinessSubSampleAssessmentRespVO {
@ExcelProperty("分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...")
private String assayType;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间")
private String dataType;
@Schema(description = "小数位")
@ExcelProperty("小数位")
private Integer decimalPosition;
@Schema(description = "判定值")
@ExcelProperty("判定值")
private String assessmentValue;
@Schema(description = "判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差", example = "1")
@ExcelProperty("判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差")
@Schema(description = "判定状态,in_progress-进行中 normal-正常exceeds_tolerance-超差", example = "2")
@ExcelProperty("判定状态,in_progress-进行中 normal-正常exceeds_tolerance-超差")
private String assessmentStatus;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否复测,1-是0-否")
@ExcelProperty("是否复测,1-是0-否")
private Integer isRecheck;
@Schema(description = "是否已上报", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("是否已上报")
@Schema(description = "是否已上报,1-是0-否")
@ExcelProperty("是否已上报,1-是0-否")
private Integer isReported;
@Schema(description = "上报", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(description = "上报状态,初始状态-initial、待上报-pending_report、待判定-pending_assessment、已复检-re_inspected、已上报-reported", example = "1")
private String reportedStatus;
@Schema(description = "上报人")
@ExcelProperty("上报人")
private String reporter;
@Schema(description = "上报时间", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(description = "上报时间")
@ExcelProperty("上报时间")
private LocalDateTime reportTime;
@Schema(description = "所属部门", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(description = "结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改")
private String resultTreatmentWay;
@Schema(description = "所属部门")
@ExcelProperty("所属部门")
private String systemDepartmentCode;
@@ -88,7 +70,7 @@ public class BusinessSubSampleAssessmentRespVO {
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "12836")
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "6438")
@ExcelProperty("乐观锁")
private Integer updateCount;

View File

@@ -7,39 +7,24 @@ import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 子样判定数据业务新增/修改 Request VO")
@Schema(description = "管理后台 - 子样判定业务新增/修改 Request VO")
@Data
public class BusinessSubSampleAssessmentSaveReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23478")
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5736")
private Long id;
@Schema(description = "分样id")
@Schema(description = "样品分样ID", example = "29115")
private Long businessSubParentSampleId;
@Schema(description = "分样子样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7025")
@NotNull(message = "分样子样ID不能为空")
@Schema(description = "分样子样ID", example = "30256")
private Long businessSubSampleId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", requiredMode = Schema.RequiredMode.REQUIRED, example = "21744")
@NotNull(message = "检测项目ID,字典表【T_DIC_PRJ】不能为空")
private Long dictionaryProjectId;
@Schema(description = "检测方法分析项目配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14847")
@NotNull(message = "检测方法分析项目配置ID不能为空")
private Long configAssayMethodProjectId;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8091")
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16304")
@NotNull(message = "检测方法配置ID不能为空")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "任务类型,【字典】【jy_sample_task_type】常规、抽查...不能为空")
private String taskType;
@@ -47,38 +32,32 @@ public class BusinessSubSampleAssessmentSaveReqVO {
@NotEmpty(message = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...不能为空")
private String assayType;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间不能为空")
private String dataType;
@Schema(description = "小数位")
private Integer decimalPosition;
@Schema(description = "判定值")
private String assessmentValue;
@Schema(description = "判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差", example = "1")
@Schema(description = "判定状态,in_progress-进行中 normal-正常exceeds_tolerance-超差", example = "2")
private String assessmentStatus;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否复测,1-是0-否")
private Integer isRecheck;
@Schema(description = "是否已上报", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否已上报不能为空")
@Schema(description = "是否已上报,1-是0-否")
private Integer isReported;
@Schema(description = "上报", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "上报人不能为空")
@Schema(description = "上报状态,初始状态-initial、待上报-pending_report、待判定-pending_assessment、已复检-re_inspected、已上报-reported", example = "1")
private String reportedStatus;
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "上报时间不能为空")
@Schema(description = "上报时间")
private LocalDateTime reportTime;
@Schema(description = "所属部门", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(description = "结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改")
private String resultTreatmentWay;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "12836")
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "6438")
@NotNull(message = "乐观锁不能为空")
private Integer updateCount;
@Schema(description = "备注")

View File

@@ -1,7 +1,17 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import cn.hutool.core.collection.CollUtil;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -17,5 +27,70 @@ public class BusinessSubSampleExtendRespVO extends BusinessSubSampleRespVO {
@Schema(description = "子样检测方法")
private List<BusinessAssayTaskDataExtendRespVO> businessAssayTaskDataList;
@Schema(description = "分析班组")
private List<BusinessSubSampleAnalysisGroupRespVO> businessSubSampleAnalysisGroupList;
@Schema(description = "样品去向")
private String sampleDestination;
public String getSampleDestination() {
String _sampleDestination = null;
if (CollUtil.isNotEmpty(this.businessSubSampleAnalysisGroupList)) {
List<String> collect = this.businessSubSampleAnalysisGroupList.stream().filter(f -> f.getSampleStatus().equals("待收样")).map(m -> m.getAssayDepartmentName()).collect(Collectors.toList());
_sampleDestination = CollUtil.join(collect, ",");
}
if (StringUtils.isBlank(_sampleDestination)) {//所有分析班组已完成,去向显示为库名
_sampleDestination = this.getWarehouseName();
}
return _sampleDestination;
}
@Schema(description = "样品所在位置")
private String sampleLocation;
public String getSampleLocation() {
this.sampleLocation = null;
if (CollUtil.isNotEmpty(this.businessSubSampleAnalysisGroupList)) {
List<String> collect = this.businessSubSampleAnalysisGroupList.stream().filter(f -> f.getSampleStatus().equals("已收样")).map(m -> m.getAssayDepartmentName()).collect(Collectors.toList());
this.sampleLocation = CollUtil.join(collect, ",");
}
return this.sampleLocation;
}
@Schema(description = "分析部门id")
private Long assayDepartmentId;
@Schema(description = "分析部门名称")
private String assayDepartmentName;
@Schema(description = "是否已送样")
private Integer isSendSample;
@Schema(description = "是否打印")
private Integer isPrint;
@Schema(description = "样品标签打印模版")
private String printTemplate;
@Schema(description = "样品标签打印份数")
private Integer codePrintQuantity;
@Schema(description = "收样人")
private String sampleReceiver;
@Schema(description = "分析项目")
private String assayProject;
@JsonSerialize(using = LocalDateTimeSerializer.class) // 序列化(响应)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(description = "收样时间")
private LocalDateTime sampleReceiveTime;
@Schema(description = "库位编码")
private String warehouseLocationCode;
@Schema(description = "仓库名称")
private String warehouseName;
}

View File

@@ -1,12 +1,12 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.zt.plat.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -47,6 +47,9 @@ public class BusinessSubSamplePageReqVO extends PageParam {
@Schema(description = "归库编号")
private String sampleReturnCode;
@Schema(description = "是否已经生成归库编号,1-已生成0-未生成")
private Integer isGenerateReturnCode;
@Schema(description = "是否称重,1-启用0-不启用")
private Integer isWeighing;
@@ -99,6 +102,9 @@ public class BusinessSubSamplePageReqVO extends PageParam {
@Schema(description = "归库状态,【字典】【jy_sample_return_status】待归库、已归库、已调拨、已下架、待销毁、已销毁", example = "2")
private String returnStatus;
@Schema(description = "调拨状态")
private String dispatchStatus;
@Schema(description = "打印次数", example = "32651")
private Integer returnCodePrintCount;
@@ -128,4 +134,31 @@ public class BusinessSubSamplePageReqVO extends PageParam {
@Schema(description = "备注")
private String remark;
//=======================================扩展字段=======================================
@Schema(description = "分析部门id")
private Long assayDepartmentId;
@Schema(description = "分析部门名称")
private String assayDepartmentName;
@Schema(description = "分析部门状态")
private String assayDepartmentStatus;
@Schema(description = "是否已送样")
private Integer isSendSample;
@Schema(description = "样品流程节点KEY列表")
private List<String> sampleFlowNodeKeyList;
@Schema(description = "库位编码")
private String warehouseLocationCode;
@Schema(description = "仓库编码")
private String warehouseCode;
//是否过滤已申请调拨的数据: 1-是, 其他值:否
@Schema(description = "是否过滤已申请调拨的数据")
private String hideDispatchData;
}

View File

@@ -47,6 +47,9 @@ public class BusinessSubSampleReqVO {
@Schema(description = "归库编号")
private String sampleReturnCode;
@Schema(description = "是否已经生成归库编号,1-已生成0-未生成")
private Integer isGenerateReturnCode;
@Schema(description = "是否称重,1-启用0-不启用")
private Integer isWeighing;
@@ -99,6 +102,9 @@ public class BusinessSubSampleReqVO {
@Schema(description = "归库状态,【字典】【jy_sample_return_status】待归库、已归库、已调拨、已下架、待销毁、已销毁", example = "2")
private String returnStatus;
@Schema(description = "调拨状态")
private String dispatchStatus;
@Schema(description = "打印次数", example = "32651")
private Integer returnCodePrintCount;
@@ -128,4 +134,29 @@ public class BusinessSubSampleReqVO {
@Schema(description = "备注")
private String remark;
//=======================================扩展字段=======================================
@Schema(description = "分析部门id")
private Long assayDepartmentId;
@Schema(description = "分析部门名称")
private String assayDepartmentName;
@Schema(description = "分析部门状态")
private String assayDepartmentStatus;
@Schema(description = "样品流程节点KEY列表")
private List<String> sampleFlowNodeKeyList;
@Schema(description = "库位编码")
private String warehouseLocationCode;
@Schema(description = "仓库编码")
private String warehouseCode;
//是否过滤已申请调拨的数据: 1-是, 其他值:否
@Schema(description = "是否过滤已申请调拨的数据")
private String hideDispatchData;
}

Some files were not shown because too many files have changed in this diff Show More