Compare commits

..

212 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
wxr
da9db180ca Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-11-07 14:27:12 +08:00
wxr
182a1fb4a6 委托单报告数据查询 2025-11-07 14:02:38 +08:00
FCL
9ffc32d964 feat:通用权限配置模块;报告类型增加权限配置参数 2025-11-07 11:24:22 +08:00
wxr
c7bcf07f72 质控数据保存 2025-11-07 09:58:38 +08:00
wxr
d51637e44a 质控样移除 2025-11-06 19:52:27 +08:00
wxr
23ee4831c7 任务分配调整 2025-11-06 16:47:36 +08:00
FCL
dd2b7ac290 feat:删除旧版代码 2025-11-06 16:41:25 +08:00
FCL
f13681ca8a 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/ErrorCodeConstants.java
2025-11-06 16:26:57 +08:00
FCL
6551a18d28 feat:代码生成 2025-11-06 16:26:06 +08:00
wxr
a3cd8a0a55 任务分配修改 2025-11-06 15:16:26 +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
wxr
9eb42b930f 空白样检测项目配置 2025-11-05 18:27:17 +08:00
wxr
4440288479 新增空白样与质控样 2025-11-05 18:18:11 +08:00
wxr
78d80280e3 Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-11-05 17:39:20 +08:00
FCL
dafdefd378 fix:报告数据微调 2025-11-05 17:22:03 +08:00
FCL
166cb7304f fix:被驳回的报告重新发起流程 2025-11-05 17:05:52 +08:00
wxr
fb8706441b fix 2025-11-05 16:53:15 +08:00
FCL
fc0d3f5da4 fix:报告数据细节调整 2025-11-05 15:36:08 +08:00
FCL
a4105aef49 feat:报告数据算法调整 2025-11-05 15:29:18 +08:00
wxr
09ca90355d 字段修改 2025-11-04 19:35:23 +08:00
FCL
b3e11fe92e Merge remote-tracking branch 'origin/test' into test 2025-11-04 18:05:20 +08:00
FCL
536f971e8e feat:tio集群逻辑优化 2025-11-04 18:05:11 +08:00
wxr
56807cfdcf 质控样业务数据 2025-11-04 17:48:46 +08:00
FCL
e75217009f Merge remote-tracking branch 'origin/test' into test 2025-11-04 08:41:22 +08:00
wxr
9fb261cf12 任务分配空白样 2025-11-03 21:16:24 +08:00
FCL
b2e275a2d8 fix:报告流程回调优化 2025-11-03 14:00:36 +08:00
FCL
d218383a9a fix:报告流程回调优化 2025-11-03 11:54:58 +08:00
FCL
a084efdcdd fix:报告编制数据过滤优化 2025-10-31 17:15:21 +08:00
wxr
04d9746fb7 单杯判定 2025-10-31 13:45:03 +08:00
wxr
8fa9f5fc69 交叉审批修改 2025-10-31 09:34:37 +08:00
wxr
308e2781bf 结果判定上报修改 2025-10-31 09:23:58 +08:00
wxr
7221f6bf1b 委托登记添加委托来源查询条件 2025-10-31 08:57:11 +08:00
wxr
4c9a4959c8 来样品位配置 2025-10-30 18:16:46 +08:00
FCL
3782b3a7c6 doc:电子用印接口文档(草稿) 2025-10-30 18:06:28 +08:00
wxr
b75c389b84 委托单号根据配置来源于字段或生成规则生成 2025-10-30 16:58:22 +08:00
wxr
7375539ede 结果报出添加两个字段 2025-10-30 16:46:09 +08:00
wxr
d3ea0b5d31 交叉审核bug修复 2025-10-30 16:17:55 +08:00
chenbowen
b0c4a773af ZT 远程仓库依赖强制更新 2025-10-29 18:23:27 +08:00
FCL
966d8a3cf7 feat:databus服务调试 2025-10-29 17:57:05 +08:00
FCL
c90169ab00 feat:报告签名处理 2025-10-29 17:27:51 +08:00
FCL
defb49748f Merge remote-tracking branch 'origin/test' into test 2025-10-29 15:27:32 +08:00
FCL
92529782f8 feat:报告流程回调、手写签名 2025-10-29 15:27:03 +08:00
wxr
b60630b2cd 报出结果修改 2025-10-29 11:54:03 +08:00
wxr
abd0ff713e 复检结果查询优化 2025-10-29 10:06:35 +08:00
wxr
313e80b1b2 结果报送初步成功 2025-10-29 09:12:25 +08:00
wxr
e225f7c1d1 Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-10-28 21:09:41 +08:00
wxr
52cff53c8f Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-10-28 15:40:22 +08:00
wxr
0435209d34 fix 2025-10-28 15:40:09 +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
738 changed files with 42624 additions and 2743 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

Binary file not shown.

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。

View File

@@ -0,0 +1,290 @@
# 检验检测模块 IWork电子用印后回调
**简介**:检测报告在用印环节会调用iwork接口发起用印流程。iwork在用印完毕后调用接口返回结果。
**基础地址**
测试系统地址http://172.16.46.63:30081/admin-api/databus/api/portal
生产系统地址:待定
**版本**:V1
## 1.总体说明
先调用【上传附件】接口,上传盖章后的文件。然后调用【用印回调】接口,返回用印结果。接口调用时需要进行签名和加密,详见【接口签名】章节。
## 2.上传附件接口
**接口地址**:`/qms_uploadAtt/v1`
**请求方式**:`POST`
**请求数据类型**:`application/json`
**请求参数**:
| 参数名称 | 参数说明 | 数据类型 | 是否必须 |
|---------------|---------------|--------|------|
| base64Content | 文件内容 | string | 是 |
| fileName | 文件名称 | string | 是 |
| directory | 文件目录 | long | 否 |
| encrypt | 是否加密默认false | bool | 否 |
**响应参数**:
| 参数名称 | 参数说明 | 类型 |
|----------------------|---------|----------------|
| code | 返回代码 | integer(int32) |
| msg | 返回处理消息 | string |
| data | 返回数据对象 | object |
| $\qquad$ id | id | string |
| $\qquad$ path | 文件存储路径 | string |
| $\qquad$ name | 文件名 | string |
| $\qquad$ url | 文件访问url | string |
| $\qquad$ previewUrl | 文件预览url | string |
| $\qquad$ isEncrypted | 是否加密 | bool |
| $\qquad$ type | 类型 | string |
| $\qquad$ size | 大小 | long |
| $\qquad$ createTime | 创建时间 | 时间戳 |
## 3.用印回调接口
**接口地址**:`/qms_sealReply/v1`
**请求方式**:`POST`
**请求数据类型**:`application/json`
**请求参数**:
| 参数名称 | 参数说明 | 请求类型 | 是否必须 |
|------------|----------------|--------|------|
| mainId | 报告id | string | 是 |
| fileIds | 附件id多值用半角逗号分隔 | string | 是 |
**响应参数**:
| 参数名称 | 参数说明 | 类型 |
|----------------------|-----------------|----------------|
| code | 错误码0-成功,其他值-失败 | integer(int32) |
| msg | 返回处理消息 | string |
## 4.接口签名
接口签名和加密参考以下代码:
APP_ID和APP_SECRET请联系相关人员获取
```java
public class ApiForIworkExample {
public static final String TIMESTAMP = Long.toString(System.currentTimeMillis());
private static final String APP_ID = "";
private static final String APP_SECRET = "";
private static final String ENCRYPTION_TYPE = CryptoSignatureUtils.ENCRYPT_TYPE_AES;
private static final String TARGET_API = "http://172.16.46.63:30081/admin-api/databus/api/portal/";
private static final HttpClient HTTP_CLIENT = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(5)).build();
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
private static final PrintStream OUT = buildConsolePrintStream();
public static final String ZT_APP_ID = "ZT-App-Id";
public static final String ZT_TIMESTAMP = "ZT-Timestamp";
public static final String ZT_NONCE = "ZT-Nonce";
public static final String ZT_SIGNATURE = "ZT-Signature";
public static final String ZT_AUTH_TOKEN = "ZT-Auth-Token";
public static final String CONTENT_TYPE = "Content-Type";
private ApiForIworkExample() {}
public static void main(String[] args) throws Exception {
executePostExample();
}
private static void executePostExample() throws Exception {
Map<String, Object> queryParams = new LinkedHashMap<>();
JSONObject jsonObject = new JSONObject();
jsonObject.put("mainId", "1983446576685900000");
jsonObject.put("fileIds", "1983446576685900001,1983446576685900002");
String bodyJson = jsonObject.toJSONString();
Map<String, Object> bodyParams = parseBodyJson(bodyJson);
String signature = generateSignature(queryParams, bodyParams);
String url = TARGET_API + "qms_sealReply/v1";
URI requestUri = buildUri(url, queryParams);
String nonce = randomNonce();
String cipherBody = encryptPayload(bodyJson);
OUT.println("原始 Request Body: " + bodyJson);
OUT.println("加密 Request Body: " + cipherBody);
HttpRequest request = HttpRequest.newBuilder(requestUri)
.timeout(Duration.ofSeconds(10))
.header(ZT_APP_ID, APP_ID)
.header(ZT_TIMESTAMP, TIMESTAMP)
.header(ZT_NONCE, nonce)
.header(ZT_SIGNATURE, signature)
// .header(ZT_AUTH_TOKEN, "82e5c281ddfa4386988fa4074e8794d7")
.header(CONTENT_TYPE, "application/json")
.POST(HttpRequest.BodyPublishers.ofString(cipherBody, StandardCharsets.UTF_8))
.build();
HttpResponse<String> response = HTTP_CLIENT.send(request, HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8));
printResponse(response);
}
private static String encryptPayload(String plaintext) {
try {
return CryptoSignatureUtils.encrypt(plaintext, APP_SECRET, ENCRYPTION_TYPE);
} catch (Exception ex) {
throw new IllegalStateException("Failed to encrypt request body", ex);
}
}
private static void printResponse(HttpResponse<String> response) {
OUT.println("HTTP Status: " + response.statusCode());
String cipherText = response.body();
OUT.println("加密 Response: " + cipherText);
String plain = tryDecrypt(cipherText);
OUT.println("原始 Response: " + normalizePotentialMojibake(plain));
}
private static String randomNonce() {
return UUID.randomUUID().toString().replace("-", "");
}
private static URI buildUri(String baseUrl, Map<String, Object> queryParams) {
if (queryParams == null || queryParams.isEmpty()) {
return URI.create(baseUrl);
}
StringBuilder builder = new StringBuilder(baseUrl);
builder.append(baseUrl.contains("?") ? '&' : '?');
boolean first = true;
for (Map.Entry<String, Object> entry : queryParams.entrySet()) {
if (!first) {
builder.append('&');
}
first = false;
builder.append(URLEncoder.encode(entry.getKey(), StandardCharsets.UTF_8));
builder.append('=');
builder.append(URLEncoder.encode(String.valueOf(entry.getValue()), StandardCharsets.UTF_8));
}
return URI.create(builder.toString());
}
private static String generateSignature(Map<String, Object> queryParams, Map<String, Object> bodyParams) {
TreeMap<String, Object> sorted = new TreeMap<>();
if (queryParams != null) {
queryParams.forEach((key, value) -> sorted.put(key, normalizeValue(value)));
}
if (bodyParams != null) {
bodyParams.forEach((key, value) -> sorted.put(key, normalizeValue(value)));
}
sorted.put(ZT_APP_ID, APP_ID);
sorted.put(ZT_TIMESTAMP, TIMESTAMP);
StringBuilder canonical = new StringBuilder();
sorted.forEach((key, value) -> {
if (value == null) {
return;
}
if (canonical.length() > 0) {
canonical.append('&');
}
canonical.append(key).append('=').append(value);
});
OUT.println("原始 签名串: " + canonical);
String md5Hex = md5Hex(canonical.toString());
OUT.println("原始签名: " + md5Hex);
return md5Hex;
}
private static Object normalizeValue(Object value) {
if (value == null) {
return null;
}
if (value instanceof Map || value instanceof Iterable) {
try {
return OBJECT_MAPPER.writeValueAsString(value);
} catch (JsonProcessingException ignored) {
return value.toString();
}
}
return value;
}
private static Map<String, Object> parseBodyJson(String bodyJson) {
if (bodyJson == null || bodyJson.isBlank()) {
return Map.of();
}
try {
return OBJECT_MAPPER.readValue(bodyJson, new TypeReference<Map<String, Object>>() { });
} catch (IOException ex) {
throw new IllegalArgumentException("Failed to parse request body JSON", ex);
}
}
private static String md5Hex(String input) {
try {
MessageDigest digest = MessageDigest.getInstance("MD5");
byte[] bytes = digest.digest(input.getBytes(StandardCharsets.UTF_8));
StringBuilder hex = new StringBuilder(bytes.length * 2);
for (byte b : bytes) {
String segment = Integer.toHexString(b & 0xFF);
if (segment.length() == 1) {
hex.append('0');
}
hex.append(segment);
}
return hex.toString();
} catch (NoSuchAlgorithmException ex) {
throw new IllegalStateException("MD5 algorithm not available", ex);
}
}
private static String tryDecrypt(String cipherText) {
if (cipherText == null || cipherText.isBlank()) {
return cipherText;
}
try {
// Databus 会在凭证开启加密时返回密文,这里做一次解密展示真实响应。
return CryptoSignatureUtils.decrypt(cipherText, APP_SECRET, ENCRYPTION_TYPE);
} catch (Exception ex) {
return "<unable to decrypt> " + ex.getMessage();
}
}
// 解决控制台打印 乱码问题
private static String normalizePotentialMojibake(String value) {
if (value == null || value.isEmpty()) {
return value;
}
long suspectCount = value.chars().filter(ch -> ch >= 0x80 && ch <= 0xFF).count();
long highCount = value.chars().filter(ch -> ch > 0xFF).count();
if (suspectCount > 0 && highCount == 0) {
try {
byte[] decoded = value.getBytes(StandardCharsets.ISO_8859_1);
String converted = new String(decoded, StandardCharsets.UTF_8);
if (converted.chars().anyMatch(ch -> ch > 0xFF)) {
return converted;
}
} catch (Exception ignored) {
return value;
}
}
return value;
}
/**
* 输出流编码与当前控制台保持一致,避免中文字符再次出现编码差异。
*/
private static PrintStream buildConsolePrintStream() {
try {
String consoleEncoding = System.getProperty("sun.stdout.encoding");
if (consoleEncoding != null && !consoleEncoding.isBlank()) {
return new PrintStream(System.out, true, Charset.forName(consoleEncoding));
}
return new PrintStream(System.out, true, Charset.defaultCharset());
} catch (Exception ignored) {
return System.out;
}
}
}
```

Binary file not shown.

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

@@ -114,10 +114,14 @@ zt:
- ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求
- ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求
swagger:
title: 管理后台
description: 提供管理员管理的所有功能
title: Qms 模块
description: 提供 Qms 管理的所有功能
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

@@ -46,6 +46,7 @@ public interface ErrorCodeConstants {
ErrorCode CONFIG_STANDARD_SAMPLE_PROJECT_NOT_EXISTS = new ErrorCode(1_032_050_000, "标准样检测项目配置不存在");
ErrorCode CONFIG_SUB_SAMPLE_PARENT_NOT_EXISTS = new ErrorCode(1_032_050_000, "分样配置不存在");
ErrorCode CONFIG_SUB_SAMPLE_PARENT_METHOD_NOT_EXISTS = new ErrorCode(1_032_050_000, "分样与检测方法配置不存在");
//ErrorCode CONFIG_SUB_SAMPLE_PARENT_RECHECK_NOT_EXISTS = new ErrorCode(1_032_050_000, "分样与复检配置不存在");
ErrorCode CONFIG_SUB_SAMPLE_METHOD_NOT_EXISTS = new ErrorCode(1_032_050_000, "子样与检测方法配置不存在");
ErrorCode CONFIG_SUB_SAMPLE_NOT_EXISTS = new ErrorCode(1_032_050_000, "子样配置不存在");
ErrorCode CONFIG_SAMPLE_REPORT_NOT_EXISTS = new ErrorCode(1_032_050_000, "样品报表关系不存在");
@@ -53,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 +63,10 @@ public interface ErrorCodeConstants {
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, "检测标准明细不存在");
ErrorCode MATERIAL_ASSAY_STANDARD_NOT_EXISTS = new ErrorCode(1_032_050_000, "检测标准不存在");
@@ -68,6 +74,7 @@ public interface ErrorCodeConstants {
ErrorCode MATERIAL_ASSAY_STANDARD_FORECAST_PROJECT_NOT_EXISTS = new ErrorCode(1_032_050_000, "物料检测标准来样品位配置不存在");
ErrorCode CONFIG_SAMPLE_HANDOVER_NOT_EXISTS = new ErrorCode(1_032_050_000, "样品交接配置不存在");
ErrorCode CONFIG_USER_SIGNATURE_NOT_EXISTS = new ErrorCode(1_032_050_000, "手写签名不存在");
//dictionary
ErrorCode DICTIONARY_SAMPLE_FLOW_NODE_NOT_EXISTS = new ErrorCode(1_032_050_000, "样品流程节点字典不存在");
@@ -75,6 +82,14 @@ public interface ErrorCodeConstants {
ErrorCode DICTIONARY_PROJECT_NOT_EXISTS = new ErrorCode(1_032_050_000, "检测项目字典不存在");
ErrorCode DICTIONARY_SAMPLE_TYPE_NOT_EXISTS = new ErrorCode(1_032_050_000, "样品类型字典不存在");
ErrorCode CONFIG_QC_SAMPLE_METHOD_NOT_EXISTS = new ErrorCode(1_032_050_000, "质控样与检测方法配置不存在");
ErrorCode CONFIG_QC_STANDARD_SAMPLE_NOT_EXISTS = new ErrorCode(1_032_050_000, "质控与定值样关系不存在");
ErrorCode CONFIG_QC_SAMPLE_METHOD_PARAMETER_NOT_EXISTS = new ErrorCode(1_032_050_000, "质控样检测方法参数配置不存在");
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, "委检登记业务不存在");
ErrorCode BUSINESS_SAMPLE_ENTRUST_DETAIL_NOT_EXISTS = new ErrorCode(1_032_100_000, "委检登记样品明细不存在");
@@ -88,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, "检测任务分配业务不存在");
@@ -102,12 +118,32 @@ 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, "分样复检业务数据不存在");
ErrorCode BUSINESS_QC_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "质控样业务不存在");
ErrorCode BUSINESS_QC_PROJECT_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "质控样检测项目数据业务不存在");
ErrorCode BUSINESS_QC_PARAMETER_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "质控样检测参数数据业务不存在");
ErrorCode BUSINESS_QC_MANAGEMENT_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "质控管理样检测任务数据,管理样、标准样不存在");
ErrorCode BUSINESS_QC_MANAGEMENT_PROJECT_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "质控样检测项目数据业务不存在");
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, "荧光采集记录不存在");
//检测报告
ErrorCode REPORT_DOCUMENT_MAIN_NOT_EXISTS = new ErrorCode(1_032_100_000, "检测报告业务不存在");
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, "样品调拨明细不存在");
/*=================================resource 资源管理 1_032_150_000 ~ 1_032_199_999 ==================================*/
ErrorCode DEVICE_INFOMATION_NOT_EXISTS = new ErrorCode(1_032_150_000, "设备_设备信息不存在");
@@ -116,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

@@ -7,6 +7,17 @@ public class QmsBpmConstant {
* */
public static final String BPM_CALLBACK_BEAN_NAME = "bpmCallbackBean";
/**
* 流程回调时使用的ActivityId Key
* */
public static final String BPM_CALLBACK_ACTIVITY_ID = "bpmCallbackActivityId";
public static final String BPM_FIELD_EXTENSIONS = "bpmFieldExtensions";
public static final String BPM_FIRST_ACTIVITY_FLAG = "firstActivityFlag";
public static final String BPM_LAST_ACTIVITY_FLAG = "lastActivityFlag";
//驳回标记前缀
public static final String BPM_CALLBACK_RETURN_FLAG_PREFIX_KEY = "RETURN_FLAG_";
/**
* 流程回调时使用的beanName Key
* */

View File

@@ -83,6 +83,9 @@ 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";
@@ -136,4 +154,60 @@ public interface QmsCommonConstant {
/** 平行 **/
String ASSAY_TYPE_SINGLE_PARALLEL = "single_parallel";
/** 配料 **/
String ASSAY_PROJECT_USAGE_INGREDIENT = "ingredient";
/** 报出 **/
String ASSAY_PROJECT_USAGE_REPORT = "report";
/** 配料和报出 **/
String ASSAY_PROJECT_USAGE_INGREDIENT_REPORT = "ingredient_report";
/** 品质控制 **/
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

@@ -0,0 +1,24 @@
package com.zt.plat.module.qms.enums;
/**
* 权限模块常量
*/
public interface QmsPermissionConstant {
//目标权限类型-角色
String TARGET_TYPE_ROLE = "role";
//目标权限类型-用户
String TARGET_TYPE_USER = "user";
//目标权限类型-部门
String TARGET_TYPE_DEPT = "dept";
//目标权限类型-自定义
String TARGET_TYPE_CUSTOM = "custom";
//======================各业务模块权限常量=============================
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

@@ -80,9 +80,9 @@ public class BusinessAssayTaskController implements BusinessControllerMarker {
@Operation(summary = "获得检测任务分配业务")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
//@PreAuthorize("@ss.hasPermission('qms:business-assay-task:query')")
public CommonResult<BusinessAssayTaskRespVO> getBusinessAssayTask(@RequestParam("id") Long id) {
BusinessAssayTaskDO businessAssayTask = businessAssayTaskService.getBusinessAssayTask(id);
return success(BeanUtils.toBean(businessAssayTask, BusinessAssayTaskRespVO.class));
public CommonResult<BusinessAssayTaskExtendRespVO> getBusinessAssayTask(@RequestParam("id") Long id) {
BusinessAssayTaskExtendRespVO businessAssayTask = businessAssayTaskService.getBusinessAssayTask(id);
return success(businessAssayTask);
}
@GetMapping("/page")
@@ -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

@@ -0,0 +1,114 @@
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.BusinessQCCoefficientDataDO;
import com.zt.plat.module.qms.business.bus.service.BusinessQCCoefficientDataService;
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-qc-coefficient-data")
@Validated
public class BusinessQCCoefficientDataController implements BusinessControllerMarker {
@Resource
private BusinessQCCoefficientDataService businessQCCoefficientDataService;
@PostMapping("/create")
@Operation(summary = "创建质控样检测系数任务数据,空白样、标样")
@PreAuthorize("@ss.hasPermission('qms:business-QC-coefficient-data:create')")
public CommonResult<BusinessQCCoefficientDataRespVO> createBusinessQCCoefficientData(@Valid @RequestBody BusinessQCCoefficientDataSaveReqVO createReqVO) {
return success(businessQCCoefficientDataService.createBusinessQCCoefficientData(createReqVO));
}
@PostMapping("/update")
@Operation(summary = "更新质控样检测系数任务数据,空白样、标样")
// @PreAuthorize("@ss.hasPermission('qms:business-QC-coefficient-data:update')")
public CommonResult<Boolean> updateBusinessQCCoefficientData(@Valid @RequestBody BusinessQCCoefficientDataSaveReqVO updateReqVO) {
businessQCCoefficientDataService.updateBusinessQCCoefficientData(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除质控样检测系数任务数据,空白样、标样")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('qms:business-QC-coefficient-data:delete')")
public CommonResult<Boolean> deleteBusinessQCCoefficientData(@RequestParam("id") Long id) {
businessQCCoefficientDataService.deleteBusinessQCCoefficientData(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除质控样检测系数任务数据,空白样、标样")
@PreAuthorize("@ss.hasPermission('qms:business-QC-coefficient-data:delete')")
public CommonResult<Boolean> deleteBusinessQCCoefficientDataList(@RequestBody BatchDeleteReqVO req) {
businessQCCoefficientDataService.deleteBusinessQCCoefficientDataListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得质控样检测系数任务数据,空白样、标样")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('qms:business-QC-coefficient-data:query')")
public CommonResult<BusinessQCCoefficientDataRespVO> getBusinessQCCoefficientData(@RequestParam("id") Long id) {
BusinessQCCoefficientDataDO businessQCCoefficientData = businessQCCoefficientDataService.getBusinessQCCoefficientData(id);
return success(BeanUtils.toBean(businessQCCoefficientData, BusinessQCCoefficientDataRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得质控样检测系数任务数据,空白样、标样分页")
@PreAuthorize("@ss.hasPermission('qms:business-QC-coefficient-data:query')")
public CommonResult<PageResult<BusinessQCCoefficientDataRespVO>> getBusinessQCCoefficientDataPage(@Valid BusinessQCCoefficientDataPageReqVO pageReqVO) {
PageResult<BusinessQCCoefficientDataDO> pageResult = businessQCCoefficientDataService.getBusinessQCCoefficientDataPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessQCCoefficientDataRespVO.class));
}
@GetMapping("/list")
@Operation(summary = "获得质控样检测系数任务数据,空白样、标样分页")
// @PreAuthorize("@ss.hasPermission('qms:business-QC-coefficient-data:query')")
public CommonResult<List<BusinessQCCoefficientDataRespVO>> getBusinessQCCoefficientDataPage(@Valid BusinessQCCoefficientDataReqVO reqVO) {
List<BusinessQCCoefficientDataDO> pageResult = businessQCCoefficientDataService.getBusinessQCCoefficientDataList(reqVO);
return success(BeanUtils.toBean(pageResult, BusinessQCCoefficientDataRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出质控样检测系数任务数据,空白样、标样 Excel")
@PreAuthorize("@ss.hasPermission('qms:business-QC-coefficient-data:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessQCCoefficientDataExcel(@Valid BusinessQCCoefficientDataPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessQCCoefficientDataDO> list = businessQCCoefficientDataService.getBusinessQCCoefficientDataPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "质控样检测系数任务数据,空白样、标样.xls", "数据", BusinessQCCoefficientDataRespVO.class,
BeanUtils.toBean(list, BusinessQCCoefficientDataRespVO.class));
}
}

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.BusinessQCCoefficientParameterDataDO;
import com.zt.plat.module.qms.business.bus.service.BusinessQCCoefficientParameterDataService;
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-qc-coefficient-parameter-data")
@Validated
public class BusinessQCCoefficientParameterDataController implements BusinessControllerMarker {
@Resource
private BusinessQCCoefficientParameterDataService businessQCCoefficientParameterDataService;
@PostMapping("/create")
@Operation(summary = "创建质控样检测系数参数业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-coefficient-parameter-data:create')")
public CommonResult<BusinessQCCoefficientParameterDataRespVO> createBusinessQCCoefficientParameterData(@Valid @RequestBody BusinessQCCoefficientParameterDataSaveReqVO createReqVO) {
return success(businessQCCoefficientParameterDataService.createBusinessQCCoefficientParameterData(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新质控样检测系数参数业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-coefficient-parameter-data:update')")
public CommonResult<Boolean> updateBusinessQCCoefficientParameterData(@Valid @RequestBody BusinessQCCoefficientParameterDataSaveReqVO updateReqVO) {
businessQCCoefficientParameterDataService.updateBusinessQCCoefficientParameterData(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除质控样检测系数参数业务")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('qms:business-QC-coefficient-parameter-data:delete')")
public CommonResult<Boolean> deleteBusinessQCCoefficientParameterData(@RequestParam("id") Long id) {
businessQCCoefficientParameterDataService.deleteBusinessQCCoefficientParameterData(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除质控样检测系数参数业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-coefficient-parameter-data:delete')")
public CommonResult<Boolean> deleteBusinessQCCoefficientParameterDataList(@RequestBody BatchDeleteReqVO req) {
businessQCCoefficientParameterDataService.deleteBusinessQCCoefficientParameterDataListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得质控样检测系数参数业务")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('qms:business-QC-coefficient-parameter-data:query')")
public CommonResult<BusinessQCCoefficientParameterDataRespVO> getBusinessQCCoefficientParameterData(@RequestParam("id") Long id) {
BusinessQCCoefficientParameterDataDO businessQCCoefficientParameterData = businessQCCoefficientParameterDataService.getBusinessQCCoefficientParameterData(id);
return success(BeanUtils.toBean(businessQCCoefficientParameterData, BusinessQCCoefficientParameterDataRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得质控样检测系数参数业务分页")
@PreAuthorize("@ss.hasPermission('qms:business-QC-coefficient-parameter-data:query')")
public CommonResult<PageResult<BusinessQCCoefficientParameterDataRespVO>> getBusinessQCCoefficientParameterDataPage(@Valid BusinessQCCoefficientParameterDataPageReqVO pageReqVO) {
PageResult<BusinessQCCoefficientParameterDataDO> pageResult = businessQCCoefficientParameterDataService.getBusinessQCCoefficientParameterDataPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessQCCoefficientParameterDataRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出质控样检测系数参数业务 Excel")
@PreAuthorize("@ss.hasPermission('qms:business-QC-coefficient-parameter-data:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessQCCoefficientParameterDataExcel(@Valid BusinessQCCoefficientParameterDataPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessQCCoefficientParameterDataDO> list = businessQCCoefficientParameterDataService.getBusinessQCCoefficientParameterDataPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "质控样检测系数参数业务.xls", "数据", BusinessQCCoefficientParameterDataRespVO.class,
BeanUtils.toBean(list, BusinessQCCoefficientParameterDataRespVO.class));
}
}

View File

@@ -0,0 +1,113 @@
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.BusinessQCDataDO;
import com.zt.plat.module.qms.business.bus.service.BusinessQCDataService;
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-qc-data")
@Validated
public class BusinessQCDataController implements BusinessControllerMarker {
@Resource
private BusinessQCDataService businessQCDataService;
@PostMapping("/create")
@Operation(summary = "创建质控样业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-data:create')")
public CommonResult<BusinessQCDataRespVO> createBusinessQCData(@Valid @RequestBody BusinessQCDataSaveReqVO createReqVO) {
return success(businessQCDataService.createBusinessQCData(createReqVO));
}
@PostMapping("/update")
@Operation(summary = "更新质控样业务")
//@PreAuthorize("@ss.hasPermission('qms:business-QC-data:update')")
public CommonResult<Boolean> updateBusinessQCData(@Valid @RequestBody BusinessQCDataSaveReqVO updateReqVO) {
businessQCDataService.updateBusinessQCData(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除质控样业务")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('qms:business-QC-data:delete')")
public CommonResult<Boolean> deleteBusinessQCData(@RequestParam("id") Long id) {
businessQCDataService.deleteBusinessQCData(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除质控样业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-data:delete')")
public CommonResult<Boolean> deleteBusinessQCDataList(@RequestBody BatchDeleteReqVO req) {
businessQCDataService.deleteBusinessQCDataListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得质控样业务")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('qms:business-QC-data:query')")
public CommonResult<BusinessQCDataRespVO> getBusinessQCData(@RequestParam("id") Long id) {
BusinessQCDataDO businessQCData = businessQCDataService.getBusinessQCData(id);
return success(BeanUtils.toBean(businessQCData, BusinessQCDataRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得质控样业务分页")
@PreAuthorize("@ss.hasPermission('qms:business-QC-data:query')")
public CommonResult<PageResult<BusinessQCDataExtendRespVO>> getBusinessQCDataPage(@Valid BusinessQCDataPageReqVO pageReqVO) {
PageResult<BusinessQCDataExtendRespVO> pageResult = businessQCDataService.getBusinessQCDataPage(pageReqVO);
return success(pageResult);
}
@GetMapping("/list")
@Operation(summary = "获得质控样业务列表")
public CommonResult<List<BusinessQCDataExtendRespVO>> getBusinessQCDataList(BusinessQCDataReqVO reqVO) {
List<BusinessQCDataExtendRespVO> list = businessQCDataService.getBusinessQCDataList(reqVO);
return success(list);
}
@GetMapping("/export-excel")
@Operation(summary = "导出质控样业务 Excel")
@PreAuthorize("@ss.hasPermission('qms:business-QC-data:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessQCDataExcel(@Valid BusinessQCDataPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessQCDataExtendRespVO> list = businessQCDataService.getBusinessQCDataPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "质控样业务.xls", "数据", BusinessQCDataRespVO.class,
BeanUtils.toBean(list, BusinessQCDataRespVO.class));
}
}

View File

@@ -0,0 +1,114 @@
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.BusinessQCManagementDataDO;
import com.zt.plat.module.qms.business.bus.service.BusinessQCManagementDataService;
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-qc-management-data")
@Validated
public class BusinessQCManagementDataController implements BusinessControllerMarker {
@Resource
private BusinessQCManagementDataService businessQCManagementDataService;
@PostMapping("/create")
@Operation(summary = "创建质控管理样检测任务数据,管理样、标准样")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-data:create')")
public CommonResult<BusinessQCManagementDataRespVO> createBusinessQCManagementData(@Valid @RequestBody BusinessQCManagementDataSaveReqVO createReqVO) {
return success(businessQCManagementDataService.createBusinessQCManagementData(createReqVO));
}
@PostMapping("/update")
@Operation(summary = "更新质控管理样检测任务数据,管理样、标准样")
// @PreAuthorize("@ss.hasPermission('qms:business-QC-management-data:update')")
public CommonResult<Boolean> updateBusinessQCManagementData(@Valid @RequestBody BusinessQCManagementDataSaveReqVO updateReqVO) {
businessQCManagementDataService.updateBusinessQCManagementData(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除质控管理样检测任务数据,管理样、标准样")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-data:delete')")
public CommonResult<Boolean> deleteBusinessQCManagementData(@RequestParam("id") Long id) {
businessQCManagementDataService.deleteBusinessQCManagementData(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除质控管理样检测任务数据,管理样、标准样")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-data:delete')")
public CommonResult<Boolean> deleteBusinessQCManagementDataList(@RequestBody BatchDeleteReqVO req) {
businessQCManagementDataService.deleteBusinessQCManagementDataListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得质控管理样检测任务数据,管理样、标准样")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-data:query')")
public CommonResult<BusinessQCManagementDataRespVO> getBusinessQCManagementData(@RequestParam("id") Long id) {
BusinessQCManagementDataDO businessQCManagementData = businessQCManagementDataService.getBusinessQCManagementData(id);
return success(BeanUtils.toBean(businessQCManagementData, BusinessQCManagementDataRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得质控管理样检测任务数据,管理样、标准样分页")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-data:query')")
public CommonResult<PageResult<BusinessQCManagementDataRespVO>> getBusinessQCManagementDataPage(@Valid BusinessQCManagementDataPageReqVO pageReqVO) {
PageResult<BusinessQCManagementDataDO> pageResult = businessQCManagementDataService.getBusinessQCManagementDataPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessQCManagementDataRespVO.class));
}
@GetMapping("/list")
@Operation(summary = "获得质控管理样检测任务数据,管理样、标准样列表")
// @PreAuthorize("@ss.hasPermission('qms:business-QC-management-data:query')")
public CommonResult<List<BusinessQCManagementDataRespVO>> getBusinessQCManagementDataList(@Valid BusinessQCManagementDataReqVO reqVO) {
List<BusinessQCManagementDataDO> pageResult = businessQCManagementDataService.getBusinessQCManagementDataList(reqVO);
return success(BeanUtils.toBean(pageResult, BusinessQCManagementDataRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出质控管理样检测任务数据,管理样、标准样 Excel")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-data:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessQCManagementDataExcel(@Valid BusinessQCManagementDataPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessQCManagementDataDO> list = businessQCManagementDataService.getBusinessQCManagementDataPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "质控管理样检测任务数据,管理样、标准样.xls", "数据", BusinessQCManagementDataRespVO.class,
BeanUtils.toBean(list, BusinessQCManagementDataRespVO.class));
}
}

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.BusinessQCManagementParameterDataDO;
import com.zt.plat.module.qms.business.bus.service.BusinessQCManagementParameterDataService;
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-qc-management-parameter-data")
@Validated
public class BusinessQCManagementParameterDataController implements BusinessControllerMarker {
@Resource
private BusinessQCManagementParameterDataService businessQCManagementParameterDataService;
@PostMapping("/create")
@Operation(summary = "创建质控样检测参数数据业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-parameter-data:create')")
public CommonResult<BusinessQCManagementParameterDataRespVO> createBusinessQCManagementParameterData(@Valid @RequestBody BusinessQCManagementParameterDataSaveReqVO createReqVO) {
return success(businessQCManagementParameterDataService.createBusinessQCManagementParameterData(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新质控样检测参数数据业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-parameter-data:update')")
public CommonResult<Boolean> updateBusinessQCManagementParameterData(@Valid @RequestBody BusinessQCManagementParameterDataSaveReqVO updateReqVO) {
businessQCManagementParameterDataService.updateBusinessQCManagementParameterData(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除质控样检测参数数据业务")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-parameter-data:delete')")
public CommonResult<Boolean> deleteBusinessQCManagementParameterData(@RequestParam("id") Long id) {
businessQCManagementParameterDataService.deleteBusinessQCManagementParameterData(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除质控样检测参数数据业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-parameter-data:delete')")
public CommonResult<Boolean> deleteBusinessQCManagementParameterDataList(@RequestBody BatchDeleteReqVO req) {
businessQCManagementParameterDataService.deleteBusinessQCManagementParameterDataListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得质控样检测参数数据业务")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-parameter-data:query')")
public CommonResult<BusinessQCManagementParameterDataRespVO> getBusinessQCManagementParameterData(@RequestParam("id") Long id) {
BusinessQCManagementParameterDataDO businessQCManagementParameterData = businessQCManagementParameterDataService.getBusinessQCManagementParameterData(id);
return success(BeanUtils.toBean(businessQCManagementParameterData, BusinessQCManagementParameterDataRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得质控样检测参数数据业务分页")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-parameter-data:query')")
public CommonResult<PageResult<BusinessQCManagementParameterDataRespVO>> getBusinessQCManagementParameterDataPage(@Valid BusinessQCManagementParameterDataPageReqVO pageReqVO) {
PageResult<BusinessQCManagementParameterDataDO> pageResult = businessQCManagementParameterDataService.getBusinessQCManagementParameterDataPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessQCManagementParameterDataRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出质控样检测参数数据业务 Excel")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-parameter-data:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessQCManagementParameterDataExcel(@Valid BusinessQCManagementParameterDataPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessQCManagementParameterDataDO> list = businessQCManagementParameterDataService.getBusinessQCManagementParameterDataPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "质控样检测参数数据业务.xls", "数据", BusinessQCManagementParameterDataRespVO.class,
BeanUtils.toBean(list, BusinessQCManagementParameterDataRespVO.class));
}
}

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.BusinessQCManagementProjectDataDO;
import com.zt.plat.module.qms.business.bus.service.BusinessQCManagementProjectDataService;
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-qc-management-project-data")
@Validated
public class BusinessQCManagementProjectDataController implements BusinessControllerMarker {
@Resource
private BusinessQCManagementProjectDataService businessQCManagementProjectDataService;
@PostMapping("/create")
@Operation(summary = "创建质控样检测项目数据业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-project-data:create')")
public CommonResult<BusinessQCManagementProjectDataRespVO> createBusinessQCManagementProjectData(@Valid @RequestBody BusinessQCManagementProjectDataSaveReqVO createReqVO) {
return success(businessQCManagementProjectDataService.createBusinessQCManagementProjectData(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新质控样检测项目数据业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-project-data:update')")
public CommonResult<Boolean> updateBusinessQCManagementProjectData(@Valid @RequestBody BusinessQCManagementProjectDataSaveReqVO updateReqVO) {
businessQCManagementProjectDataService.updateBusinessQCManagementProjectData(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除质控样检测项目数据业务")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-project-data:delete')")
public CommonResult<Boolean> deleteBusinessQCManagementProjectData(@RequestParam("id") Long id) {
businessQCManagementProjectDataService.deleteBusinessQCManagementProjectData(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除质控样检测项目数据业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-project-data:delete')")
public CommonResult<Boolean> deleteBusinessQCManagementProjectDataList(@RequestBody BatchDeleteReqVO req) {
businessQCManagementProjectDataService.deleteBusinessQCManagementProjectDataListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得质控样检测项目数据业务")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-project-data:query')")
public CommonResult<BusinessQCManagementProjectDataRespVO> getBusinessQCManagementProjectData(@RequestParam("id") Long id) {
BusinessQCManagementProjectDataDO businessQCManagementProjectData = businessQCManagementProjectDataService.getBusinessQCManagementProjectData(id);
return success(BeanUtils.toBean(businessQCManagementProjectData, BusinessQCManagementProjectDataRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得质控样检测项目数据业务分页")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-project-data:query')")
public CommonResult<PageResult<BusinessQCManagementProjectDataRespVO>> getBusinessQCManagementProjectDataPage(@Valid BusinessQCManagementProjectDataPageReqVO pageReqVO) {
PageResult<BusinessQCManagementProjectDataDO> pageResult = businessQCManagementProjectDataService.getBusinessQCManagementProjectDataPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessQCManagementProjectDataRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出质控样检测项目数据业务 Excel")
@PreAuthorize("@ss.hasPermission('qms:business-QC-management-project-data:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessQCManagementProjectDataExcel(@Valid BusinessQCManagementProjectDataPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessQCManagementProjectDataDO> list = businessQCManagementProjectDataService.getBusinessQCManagementProjectDataPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "质控样检测项目数据业务.xls", "数据", BusinessQCManagementProjectDataRespVO.class,
BeanUtils.toBean(list, BusinessQCManagementProjectDataRespVO.class));
}
}

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.BusinessQCParameterDataDO;
import com.zt.plat.module.qms.business.bus.service.BusinessQCParameterDataService;
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-qc-parameter-data")
@Validated
public class BusinessQCParameterDataController implements BusinessControllerMarker {
@Resource
private BusinessQCParameterDataService businessQCParameterDataService;
@PostMapping("/create")
@Operation(summary = "创建质控样检测参数数据业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-parameter-data:create')")
public CommonResult<BusinessQCParameterDataRespVO> createBusinessQCParameterData(@Valid @RequestBody BusinessQCParameterDataSaveReqVO createReqVO) {
return success(businessQCParameterDataService.createBusinessQCParameterData(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新质控样检测参数数据业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-parameter-data:update')")
public CommonResult<Boolean> updateBusinessQCParameterData(@Valid @RequestBody BusinessQCParameterDataSaveReqVO updateReqVO) {
businessQCParameterDataService.updateBusinessQCParameterData(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除质控样检测参数数据业务")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('qms:business-QC-parameter-data:delete')")
public CommonResult<Boolean> deleteBusinessQCParameterData(@RequestParam("id") Long id) {
businessQCParameterDataService.deleteBusinessQCParameterData(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除质控样检测参数数据业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-parameter-data:delete')")
public CommonResult<Boolean> deleteBusinessQCParameterDataList(@RequestBody BatchDeleteReqVO req) {
businessQCParameterDataService.deleteBusinessQCParameterDataListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得质控样检测参数数据业务")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('qms:business-QC-parameter-data:query')")
public CommonResult<BusinessQCParameterDataRespVO> getBusinessQCParameterData(@RequestParam("id") Long id) {
BusinessQCParameterDataDO businessQCParameterData = businessQCParameterDataService.getBusinessQCParameterData(id);
return success(BeanUtils.toBean(businessQCParameterData, BusinessQCParameterDataRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得质控样检测参数数据业务分页")
@PreAuthorize("@ss.hasPermission('qms:business-QC-parameter-data:query')")
public CommonResult<PageResult<BusinessQCParameterDataRespVO>> getBusinessQCParameterDataPage(@Valid BusinessQCParameterDataPageReqVO pageReqVO) {
PageResult<BusinessQCParameterDataDO> pageResult = businessQCParameterDataService.getBusinessQCParameterDataPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessQCParameterDataRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出质控样检测参数数据业务 Excel")
@PreAuthorize("@ss.hasPermission('qms:business-QC-parameter-data:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessQCParameterDataExcel(@Valid BusinessQCParameterDataPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessQCParameterDataDO> list = businessQCParameterDataService.getBusinessQCParameterDataPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "质控样检测参数数据业务.xls", "数据", BusinessQCParameterDataRespVO.class,
BeanUtils.toBean(list, BusinessQCParameterDataRespVO.class));
}
}

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.BusinessQCProjectDataDO;
import com.zt.plat.module.qms.business.bus.service.BusinessQCProjectDataService;
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-qc-project-data")
@Validated
public class BusinessQCProjectDataController implements BusinessControllerMarker {
@Resource
private BusinessQCProjectDataService businessQCProjectDataService;
@PostMapping("/create")
@Operation(summary = "创建质控样检测项目数据业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-project-data:create')")
public CommonResult<BusinessQCProjectDataRespVO> createBusinessQCProjectData(@Valid @RequestBody BusinessQCProjectDataSaveReqVO createReqVO) {
return success(businessQCProjectDataService.createBusinessQCProjectData(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新质控样检测项目数据业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-project-data:update')")
public CommonResult<Boolean> updateBusinessQCProjectData(@Valid @RequestBody BusinessQCProjectDataSaveReqVO updateReqVO) {
businessQCProjectDataService.updateBusinessQCProjectData(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除质控样检测项目数据业务")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('qms:business-QC-project-data:delete')")
public CommonResult<Boolean> deleteBusinessQCProjectData(@RequestParam("id") Long id) {
businessQCProjectDataService.deleteBusinessQCProjectData(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除质控样检测项目数据业务")
@PreAuthorize("@ss.hasPermission('qms:business-QC-project-data:delete')")
public CommonResult<Boolean> deleteBusinessQCProjectDataList(@RequestBody BatchDeleteReqVO req) {
businessQCProjectDataService.deleteBusinessQCProjectDataListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得质控样检测项目数据业务")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('qms:business-QC-project-data:query')")
public CommonResult<BusinessQCProjectDataRespVO> getBusinessQCProjectData(@RequestParam("id") Long id) {
BusinessQCProjectDataDO businessQCProjectData = businessQCProjectDataService.getBusinessQCProjectData(id);
return success(BeanUtils.toBean(businessQCProjectData, BusinessQCProjectDataRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得质控样检测项目数据业务分页")
@PreAuthorize("@ss.hasPermission('qms:business-QC-project-data:query')")
public CommonResult<PageResult<BusinessQCProjectDataRespVO>> getBusinessQCProjectDataPage(@Valid BusinessQCProjectDataPageReqVO pageReqVO) {
PageResult<BusinessQCProjectDataDO> pageResult = businessQCProjectDataService.getBusinessQCProjectDataPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessQCProjectDataRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出质控样检测项目数据业务 Excel")
@PreAuthorize("@ss.hasPermission('qms:business-QC-project-data:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessQCProjectDataExcel(@Valid BusinessQCProjectDataPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessQCProjectDataDO> list = businessQCProjectDataService.getBusinessQCProjectDataPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "质控样检测项目数据业务.xls", "数据", BusinessQCProjectDataRespVO.class,
BeanUtils.toBean(list, BusinessQCProjectDataRespVO.class));
}
}

View File

@@ -0,0 +1,196 @@
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 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;
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.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;
@Tag(name = "管理后台 - 样品调拨")
@RestController
@RequestMapping("/qms/business-sample-dispatch")
@Validated
public class BusinessSampleDispatchController implements BusinessControllerMarker {
@Resource private BusinessSampleDispatchService businessSampleDispatchService;
@Resource private BusinessSampleDispatchDetailService businessSampleDispatchDetailService;
@Resource private BusinessSubSampleService businessSubSampleService;
@Resource private ConfigWarehouseLocationService configWarehouseLocationService;
@PostMapping("/createTempData")
@Operation(summary = "创建临时数据")
public CommonResult<BusinessSampleDispatchRespVO> createTempData() {
BusinessSampleDispatchSaveReqVO vo = new BusinessSampleDispatchSaveReqVO();
vo.setCancelStatus("-1");
return success(businessSampleDispatchService.createBusinessSampleDispatch(vo));
}
@PutMapping("/update")
@Operation(summary = "更新样品调拨")
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)
// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:delete')")
public CommonResult<Boolean> deleteBusinessSampleDispatch(@RequestParam("id") Long id) {
businessSampleDispatchService.deleteBusinessSampleDispatch(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除样品调拨")
@PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:delete')")
public CommonResult<Boolean> deleteBusinessSampleDispatchList(@RequestBody BatchDeleteReqVO req) {
businessSampleDispatchService.deleteBusinessSampleDispatchListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得样品调拨")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:query')")
public CommonResult<BusinessSampleDispatchRespVO> getBusinessSampleDispatch(@RequestParam("id") Long id) {
BusinessSampleDispatchDO businessSampleDispatch = businessSampleDispatchService.getBusinessSampleDispatch(id);
return success(BeanUtils.toBean(businessSampleDispatch, BusinessSampleDispatchRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得样品调拨分页")
// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:query')")
public CommonResult<PageResult<BusinessSampleDispatchRespVO>> getBusinessSampleDispatchPage(@Valid BusinessSampleDispatchPageReqVO pageReqVO) {
PageResult<BusinessSampleDispatchDO> pageResult = businessSampleDispatchService.getBusinessSampleDispatchPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessSampleDispatchRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出样品调拨 Excel")
@PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessSampleDispatchExcel(@Valid BusinessSampleDispatchPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessSampleDispatchDO> list = businessSampleDispatchService.getBusinessSampleDispatchPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "样品调拨.xls", "数据", BusinessSampleDispatchRespVO.class,
BeanUtils.toBean(list, BusinessSampleDispatchRespVO.class));
}
}

View File

@@ -0,0 +1,133 @@
package com.zt.plat.module.qms.business.bus.controller.admin;
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;
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.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;
@Tag(name = "管理后台 - 样品调拨明细")
@RestController
@RequestMapping("/qms/business-sample-dispatch-detail")
@Validated
public class BusinessSampleDispatchDetailController implements BusinessControllerMarker {
@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 = "创建样品调拨明细")
// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:create')")
public CommonResult<BusinessSampleDispatchDetailRespVO> createBusinessSampleDispatchDetail(@Valid @RequestBody BusinessSampleDispatchDetailSaveReqVO createReqVO) {
return success(businessSampleDispatchDetailService.createBusinessSampleDispatchDetail(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新样品调拨明细")
// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:update')")
public CommonResult<Boolean> updateBusinessSampleDispatchDetail(@Valid @RequestBody BusinessSampleDispatchDetailSaveReqVO updateReqVO) {
businessSampleDispatchDetailService.updateBusinessSampleDispatchDetail(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除样品调拨明细")
@Parameter(name = "id", description = "编号", required = true)
// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:delete')")
public CommonResult<Boolean> deleteBusinessSampleDispatchDetail(@RequestParam("id") Long id) {
businessSampleDispatchDetailService.deleteBusinessSampleDispatchDetail(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除样品调拨明细")
@PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:delete')")
public CommonResult<Boolean> deleteBusinessSampleDispatchDetailList(@RequestBody BatchDeleteReqVO req) {
businessSampleDispatchDetailService.deleteBusinessSampleDispatchDetailListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得样品调拨明细")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:query')")
public CommonResult<BusinessSampleDispatchDetailRespVO> getBusinessSampleDispatchDetail(@RequestParam("id") Long id) {
BusinessSampleDispatchDetailDO businessSampleDispatchDetail = businessSampleDispatchDetailService.getBusinessSampleDispatchDetail(id);
return success(BeanUtils.toBean(businessSampleDispatchDetail, BusinessSampleDispatchDetailRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得样品调拨明细分页")
// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:query')")
public CommonResult<PageResult<BusinessSampleDispatchDetailExtendRespVO>> getBusinessSampleDispatchDetailPage(@Valid BusinessSampleDispatchDetailPageReqVO pageReqVO) {
PageResult<BusinessSampleDispatchDetailExtendRespVO> pageResult = businessSampleDispatchDetailService.getBusinessSampleDispatchDetailPage(pageReqVO);
return success(pageResult);
}
@GetMapping("/export-excel")
@Operation(summary = "导出样品调拨明细 Excel")
@PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessSampleDispatchDetailExcel(@Valid BusinessSampleDispatchDetailPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
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

@@ -1,8 +1,5 @@
package com.zt.plat.module.qms.business.bus.controller.admin;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessStandardSamplePageReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessStandardSampleRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessStandardSampleSaveReqVO;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@@ -92,6 +89,18 @@ public class BusinessStandardSampleController implements BusinessControllerMarke
return success(BeanUtils.toBean(pageResult, BusinessStandardSampleRespVO.class));
}
// @GetMapping("/getBusinessStandardSampleByConfigQCSampleMethodId")
// public CommonResult<?> getBusinessStandardSampleByConfigQCSampleMethodId(@RequestParam("configQCSampleMethodId") Long configQCSampleMethodId) {
// List<BusinessStandardSampleExtendRespVO> list = businessStandardSampleService.getBusinessStandardSampleByConfigQCSampleMethodId(configQCSampleMethodId);
// return success(list);
// }
@GetMapping("/getBusinessStandardSampleLeafList")
public CommonResult<?> getBusinessStandardSampleLeafList() {
List<BusinessStandardSampleExtendRespVO> list = businessStandardSampleService.getBusinessStandardSampleLeafList();
return success(list);
}
@GetMapping("/export-excel")
@Operation(summary = "导出标准样业务 Excel")
//@PreAuthorize("@ss.hasPermission('qms:business-standard-sample: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,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.BusinessSubSampleParentRecheckDO;
import com.zt.plat.module.qms.business.bus.service.BusinessSubSampleParentRecheckService;
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-parent-recheck")
@Validated
public class BusinessSubSampleParentRecheckController implements BusinessControllerMarker {
@Resource
private BusinessSubSampleParentRecheckService businessSubSampleParentRecheckService;
@PostMapping("/create")
@Operation(summary = "创建分样复检业务数据")
@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-parent-recheck:create')")
public CommonResult<BusinessSubSampleParentRecheckRespVO> createBusinessSubSampleParentRecheck(@Valid @RequestBody BusinessSubSampleParentRecheckSaveReqVO createReqVO) {
return success(businessSubSampleParentRecheckService.createBusinessSubSampleParentRecheck(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新分样复检业务数据")
@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-parent-recheck:update')")
public CommonResult<Boolean> updateBusinessSubSampleParentRecheck(@Valid @RequestBody BusinessSubSampleParentRecheckSaveReqVO updateReqVO) {
businessSubSampleParentRecheckService.updateBusinessSubSampleParentRecheck(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除分样复检业务数据")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-parent-recheck:delete')")
public CommonResult<Boolean> deleteBusinessSubSampleParentRecheck(@RequestParam("id") Long id) {
businessSubSampleParentRecheckService.deleteBusinessSubSampleParentRecheck(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除分样复检业务数据")
@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-parent-recheck:delete')")
public CommonResult<Boolean> deleteBusinessSubSampleParentRecheckList(@RequestBody BatchDeleteReqVO req) {
businessSubSampleParentRecheckService.deleteBusinessSubSampleParentRecheckListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得分样复检业务数据")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-parent-recheck:query')")
public CommonResult<BusinessSubSampleParentRecheckRespVO> getBusinessSubSampleParentRecheck(@RequestParam("id") Long id) {
BusinessSubSampleParentRecheckDO businessSubSampleParentRecheck = businessSubSampleParentRecheckService.getBusinessSubSampleParentRecheck(id);
return success(BeanUtils.toBean(businessSubSampleParentRecheck, BusinessSubSampleParentRecheckRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得分样复检业务数据分页")
@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-parent-recheck:query')")
public CommonResult<PageResult<BusinessSubSampleParentRecheckRespVO>> getBusinessSubSampleParentRecheckPage(@Valid BusinessSubSampleParentRecheckPageReqVO pageReqVO) {
PageResult<BusinessSubSampleParentRecheckDO> pageResult = businessSubSampleParentRecheckService.getBusinessSubSampleParentRecheckPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessSubSampleParentRecheckRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出分样复检业务数据 Excel")
@PreAuthorize("@ss.hasPermission('qms:business-sub-sample-parent-recheck:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessSubSampleParentRecheckExcel(@Valid BusinessSubSampleParentRecheckPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessSubSampleParentRecheckDO> list = businessSubSampleParentRecheckService.getBusinessSubSampleParentRecheckPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "分样复检业务数据.xls", "数据", BusinessSubSampleParentRecheckRespVO.class,
BeanUtils.toBean(list, BusinessSubSampleParentRecheckRespVO.class));
}
}

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;
@@ -18,9 +19,6 @@ import jakarta.annotation.Resource;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
import java.util.List;
import java.util.Map;
/**
* 分析审核
*/
@@ -28,7 +26,7 @@ import java.util.Map;
@RestController
@RequestMapping("/qms/bus/sample/analysis-audit")
@Validated
public class SampleAnalysisAuditController {
public class SampleAnalysisAuditController implements BusinessControllerMarker {
@Resource
private SampleAnalysisAuditService sampleAnalysisAuditService;
@@ -44,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,8 +7,10 @@ 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.BusinessAssayTaskAnalysisSampleProjectRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.service.SampleAnalysisService;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
@@ -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 ;
@@ -39,6 +41,24 @@ public class SampleAnalysisController {
return success("成功");
}
@GetMapping("/batchSampleAndQcAnalysisByTaskId")
public CommonResult<?> batchSampleAndQcAnalysisByTaskId(Long businessAssayTaskId) {
BusinessAssayTaskAnalysisSampleAndQcProjectRespVO businessAssayTaskAnalysisSampleAndQcProject = sampleAnalysisService.batchSampleAndQcAnalysisByTaskId(businessAssayTaskId);
return success(businessAssayTaskAnalysisSampleAndQcProject);
}
@PostMapping("/saveBatchSmpleAndQcAnalysis")
public CommonResult<?> saveBatchSmpleAndQcAnalysis(@RequestBody BusinessAssayTaskAnalysisSampleAndQcProjectRespVO vo) {
sampleAnalysisService.saveBatchSmpleAndQcAnalysis(vo);
return success("成功");
}
//下发配料
@PostMapping("/issuedIngredients")
public CommonResult<?> issuedIngredients(Long businessAssayTaskId) {
sampleAnalysisService.issuedIngredients(businessAssayTaskId);
return success("成功");
}
@PostMapping("/submitSampleAnalysisByTaskId")
public CommonResult<?> submitSampleAnalysisByTaskId(Long businessAssayTaskId) {
@@ -46,4 +66,16 @@ public class SampleAnalysisController {
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

@@ -14,9 +14,10 @@ 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.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.*;
@@ -33,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;

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;
@@ -47,136 +38,20 @@ public class SampleFlowController {
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

@@ -0,0 +1,87 @@
package com.zt.plat.module.qms.business.bus.controller.admin;
import org.springframework.validation.annotation.Validated;
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.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;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
import java.util.List;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 结果上报
*/
@Tag(name = "管理后台 - 结果上报")
@RestController
@RequestMapping("/qms/bus/sample/result-reporting")
@Validated
public class SampleResultReportingController implements BusinessControllerMarker {
@Resource
private SampleResultReportingService sampleResultReportingService;
//获取未上报的方法
@GetMapping("/getUnReportMethodGroupList")
public CommonResult<?> getUnReportMethodGroupList(BusinessSubParentSampleAssessmentGroupReqVO reqVO) {
List<BusinessSubParentSampleAssessmentGroupRespVO> list = sampleResultReportingService.getUnReportMethodGroupList(reqVO);
return success(list);
}
//获取方法对应的样品
@GetMapping("/getSampleResultReportingList")
public CommonResult<?> getSampleResultReportingList(BusinessSubParentSampleAssessmentGroupReqVO reqVO) {
JSONObject result = sampleResultReportingService.getSampleResultReportingList(reqVO);
return success(result);
}
//获取复检方法
@GetMapping("/getRecheckAssayMethodList")
public CommonResult<?> getRecheckMethodList(Long baseSampleId, Long businessSubParentSampleId, Long configAssayMethodId) {
List<RecheckSubSampleParentMethodRespVO> list = sampleResultReportingService.getRecheckAssayMethodList(baseSampleId, businessSubParentSampleId, configAssayMethodId);
return success(list);
}
//创建复检样
@PostMapping("/createRecheckSample")
public CommonResult<?> createRecheckSample(@RequestBody RecheckSubSampleParentCreateReqVO reqVO) {
sampleResultReportingService.createRecheckSample(reqVO);
return success("成功");
}
//上报
@PostMapping("/batchResultDataReporting")
public CommonResult<?> batchResultDataReporting(@RequestBody BatchResultDataReportingReqVO reqVO) {
sampleResultReportingService.batchResultDataReporting(reqVO);
return success("成功");
}
//结果单个结果查询
@GetMapping("/getSingleSampleResultReportingList")
public CommonResult<?> getSingleSampleResultReportingList(Long businessSubParentSampleId, Long configAssayMethodId) {
JSONObject result = sampleResultReportingService.getSingleSampleResultReportingList(businessSubParentSampleId, configAssayMethodId);
return success(result);
}
//修改结果
@PostMapping("/modifySampleResultReporting")
public CommonResult<?> modifySampleResultReporting(@RequestBody ModifySampleResultReportingReqVO reqVO) {
sampleResultReportingService.modifySampleResultReporting(reqVO);
return success("成功");
}
}

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;
@@ -39,9 +40,16 @@ public class SampleTaskAssignController {
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);
}
@@ -81,6 +89,18 @@ public class SampleTaskAssignController {
return success("成功");
}
@PostMapping("/createQcSample")
public CommonResult<?> createQcSample(@RequestBody CreateQcSampleReqVO req) {
sampleTaskAssignService.createQcSample(req);
return success("成功");
}
@PostMapping("/deleteQcSample")
public CommonResult<?> deleteQcSample(@RequestBody DeleteQcSampleReqVO req) {
sampleTaskAssignService.deleteQcSample(req);
return success("成功");
}
@PostMapping("/submitAssign")
public CommonResult<?> submitAssign(Long id) {
sampleTaskAssignService.submitAssign(id);

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

@@ -0,0 +1,13 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import java.util.List;
import lombok.Data;
@Data
public class BatchResultDataReportingReqVO {
private List<Long> businessSubParentSampleIds;
private Long configAssayMethodId;
}

View File

@@ -63,6 +63,19 @@ 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

@@ -22,6 +22,12 @@ public class BusinessAssayProjectDataPageReqVO extends PageParam {
@Schema(description = "检测项目字典ID,字典表【T_DIC_PRJ】", example = "19038")
private Long dictionaryProjectId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "")
private String value;
@@ -34,6 +40,9 @@ public class BusinessAssayProjectDataPageReqVO extends PageParam {
@Schema(description = "是否不参与超差判定")
private Integer isNotAssessment;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否启用")
private Integer isEnabled;

View File

@@ -28,6 +28,12 @@ public class BusinessAssayProjectDataReqVO {
@Schema(description = "检测项目字典ID,字典表【T_DIC_PRJ】", example = "5352")
private Long dictionaryProjectId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "")
private String value;
@@ -40,6 +46,9 @@ public class BusinessAssayProjectDataReqVO {
@Schema(description = "是否不参与超差判定")
private Integer isNotAssessment;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否启用")
private Integer isEnabled;
@@ -56,4 +65,8 @@ public class BusinessAssayProjectDataReqVO {
@Schema(description = "备注")
private String remark;
//========================扩展字段==================================
@Schema(description = "检测任务ID列表", example = "16505")
private List<Long> businessAssayTaskDataIdList;
}

View File

@@ -28,6 +28,12 @@ public class BusinessAssayProjectDataRespVO {
@ExcelProperty("检测项目字典ID,字典表【T_DIC_PRJ】")
private Long dictionaryProjectId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "")
@ExcelProperty("")
private String value;
@@ -44,6 +50,9 @@ public class BusinessAssayProjectDataRespVO {
@ExcelProperty("是否不参与超差判定")
private Integer isNotAssessment;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("是否启用")
private Integer isEnabled;

View File

@@ -38,6 +38,9 @@ public class BusinessAssayProjectDataSaveReqVO {
@NotNull(message = "是否不参与超差判定不能为空")
private Integer isNotAssessment;
@Schema(description = "方法检出下限值")
private String minimumLimitValue;
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否启用不能为空")
private Integer isEnabled;

View File

@@ -58,6 +58,9 @@ public class BusinessAssayReportDataPageReqVO extends PageParam {
//==================扩展字段===========
@Schema(description = "id列表")
private List<Long> idList;
@Schema(description = "样品名称")
private String sampleName;
@@ -67,4 +70,7 @@ public class BusinessAssayReportDataPageReqVO extends PageParam {
@Schema(description = "委托id列表")
private List<Long> businessSampleEntrustRegistrationIdList;
@Schema(description = "报告类型ID", example = "2124")
private Long reportDocumentTypeId;
}

View File

@@ -0,0 +1,67 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import java.time.LocalDateTime;
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;
/**
* 分配任务单 分析样品及质控样品检测项目
*/
@Data
public class BusinessAssayTaskAnalysisSampleAndQcProjectRespVO {
/** 分配任务单id **/
private Long businessAssayTaskId;
/** 任务分配单编号 **/
private String businessAssayTasNo;
/** 任务分配单名称 **/
private String businessAssayTasName;
/** 分析人员 **/
private String assayOperator;
/** 分析时间 **/
private LocalDateTime assayTime;
/** 检测方法id **/
private Long configAssayMethodId;
/** 检测方法名称 **/
private String configAssayMethodName;
/** 数据集key **/
private String dataCollectionKey;
/** 数据集id **/
private Long dataCollectionId;
/** 动态表单值 **/
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;
/** 分配任务的分析数据 **/
private List<BusinessAssayTaskAnalysisDataRespVO> assayTaskAnalysisDataList;
/** 检测方法分析项目补正系数 **/
private List<ConfigAssayMethodProjectCoefficientRespVO> configAssayMethodProjectCoefficientList;
/** 检测方法范围 **/
private List<ConfigAssayMethodProjectRangeRespVO> configAssayMethodProjectRangeList;
}

View File

@@ -4,7 +4,10 @@ import java.time.LocalDateTime;
import java.util.List;
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,12 +46,21 @@ 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;
/** 分析的数据 **/
private List<Map<String, Object>> datas;
/** 检测方法分析项目补正系数 **/
private List<ConfigAssayMethodProjectCoefficientRespVO> configAssayMethodProjectCoefficientList;
/** 检测方法范围 **/
private List<ConfigAssayMethodProjectRangeRespVO> configAssayMethodProjectRangeList;
}

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

@@ -18,6 +18,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

@@ -2,27 +2,34 @@ package com.zt.plat.module.qms.business.bus.controller.vo;
import lombok.Data;
/**
* <b>BusinessAssayTaskDataGroupRespVO</b>
* <p>
* 更新历史:
* <pre> 版本 更新时间 更新者 更新内容<hr/>
* V1.0 2025年9月20日 wxr Add</pre>
* <b>Copyright (C) 云南志者竟成科技有限公司</b>
* </p>
* @author 王兴荣<wxr@wangxingrong.com>
* @version V1.0
* @since 2025年9月20日
*/
@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;
@@ -89,4 +98,29 @@ 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

@@ -1,5 +1,10 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
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;
/**
@@ -20,6 +25,15 @@ public class BusinessAssayTaskExtendRespVO extends BusinessAssayTaskRespVO {
/** 分析方法名称 **/
private String configAssayMethodName;
@Schema(description = "检测方法配置名称及类别")
private String configAssayMethodNameAndCategory;
/** 分析方法对应的分析项目 **/
private String configAssayMethodProjectShowNames;
/** 分析任务数 **/
private Long assayTaskCount;
/** 质量控制分析方法 **/
private List<ConfigQCSampleMethodExtendRespVO> configQCSampleMethodList;
}

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

@@ -0,0 +1,85 @@
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 BusinessQCCoefficientDataPageReqVO extends PageParam {
@Schema(description = "样品编号")
private String sampleCode;
@Schema(description = "样品名称", example = "赵六")
private String sampleName;
@Schema(description = "检测方法配置ID", example = "31198")
private Long configAssayMethodId;
@Schema(description = "指派单ID", example = "28147")
private Long businessAssayTaskId;
@Schema(description = "定值样业务ID", example = "5300")
private Long businessStandardSampleId;
@Schema(description = "质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样", example = "21660")
private Long dictionaryBusinessId;
@Schema(description = "质控类型_Key,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
private String dictionaryBusinessKey;
@Schema(description = "检测项目")
private String assayProject;
@Schema(description = "分析部门ID", example = "12186")
private Long assayDepartmentId;
@Schema(description = "分析部门名称", example = "芋艿")
private String assayDepartmentName;
@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;
@Schema(description = "是否已分配任务")
private Integer isAssignTasked;
@Schema(description = "是否已上报")
private Integer isReported;
@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;
@Schema(description = "乐观锁", example = "6160")
private Integer updateCount;
@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

@@ -0,0 +1,85 @@
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 BusinessQCCoefficientDataReqVO {
@Schema(description = "样品编号")
private String sampleCode;
@Schema(description = "样品名称", example = "赵六")
private String sampleName;
@Schema(description = "检测方法配置ID", example = "31198")
private Long configAssayMethodId;
@Schema(description = "指派单ID", example = "28147")
private Long businessAssayTaskId;
@Schema(description = "定值样业务ID", example = "5300")
private Long businessStandardSampleId;
@Schema(description = "质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样", example = "21660")
private Long dictionaryBusinessId;
@Schema(description = "质控类型_Key,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
private String dictionaryBusinessKey;
@Schema(description = "检测项目")
private String assayProject;
@Schema(description = "分析部门ID", example = "12186")
private Long assayDepartmentId;
@Schema(description = "分析部门名称", example = "芋艿")
private String assayDepartmentName;
@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;
@Schema(description = "是否已分配任务")
private Integer isAssignTasked;
@Schema(description = "是否已上报")
private Integer isReported;
@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;
@Schema(description = "乐观锁", example = "6160")
private Integer updateCount;
@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

@@ -0,0 +1,105 @@
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 BusinessQCCoefficientDataRespVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19352")
@ExcelProperty("ID")
private Long id;
@Schema(description = "样品编号")
@ExcelProperty("样品编号")
private String sampleCode;
@Schema(description = "样品名称", example = "赵六")
@ExcelProperty("样品名称")
private String sampleName;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31198")
@ExcelProperty("检测方法配置ID")
private Long configAssayMethodId;
@Schema(description = "指派单ID", example = "28147")
@ExcelProperty("指派单ID")
private Long businessAssayTaskId;
@Schema(description = "定值样业务ID", example = "5300")
@ExcelProperty("定值样业务ID")
private Long businessStandardSampleId;
@Schema(description = "质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样", requiredMode = Schema.RequiredMode.REQUIRED, example = "21660")
@ExcelProperty("质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
private Long dictionaryBusinessId;
@Schema(description = "质控类型_Key,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
@ExcelProperty("质控类型_Key,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
private String dictionaryBusinessKey;
@Schema(description = "检测项目", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("检测项目")
private String assayProject;
@Schema(description = "分析部门ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12186")
@ExcelProperty("分析部门ID")
private Long assayDepartmentId;
@Schema(description = "分析部门名称", example = "芋艿")
@ExcelProperty("分析部门名称")
private String assayDepartmentName;
@Schema(description = "分析人")
@ExcelProperty("分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "10644")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
@ExcelProperty("分配任务时间")
private LocalDateTime assignTaskTime;
@Schema(description = "是否已分配任务")
@ExcelProperty("是否已分配任务")
private Integer isAssignTasked;
@Schema(description = "是否已上报")
@ExcelProperty("是否已上报")
private Integer isReported;
@Schema(description = "上报人")
@ExcelProperty("上报人")
private String reporter;
@Schema(description = "上报人ID", example = "2683")
private Long reporterId;
@Schema(description = "上报时间")
@ExcelProperty("上报时间")
private LocalDateTime reportTime;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "6160")
@ExcelProperty("乐观锁")
private Integer updateCount;
@Schema(description = "所属部门")
@ExcelProperty("所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@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 BusinessQCCoefficientDataSaveReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19352")
private Long id;
@Schema(description = "样品编号")
private String sampleCode;
@Schema(description = "样品名称", example = "赵六")
private String sampleName;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31198")
@NotNull(message = "检测方法配置ID不能为空")
private Long configAssayMethodId;
@Schema(description = "指派单ID", example = "28147")
private Long businessAssayTaskId;
@Schema(description = "定值样业务ID", example = "5300")
private Long businessStandardSampleId;
@Schema(description = "质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样", requiredMode = Schema.RequiredMode.REQUIRED, example = "21660")
@NotNull(message = "质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样不能为空")
private Long dictionaryBusinessId;
@Schema(description = "质控类型_Key,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
private String dictionaryBusinessKey;
@Schema(description = "检测项目")
private String assayProject;
@Schema(description = "分析部门ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12186")
@NotNull(message = "分析部门ID不能为空")
private Long assayDepartmentId;
@Schema(description = "分析部门名称", example = "芋艿")
private String assayDepartmentName;
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "10644")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
private LocalDateTime assignTaskTime;
@Schema(description = "是否已分配任务")
private Integer isAssignTasked;
@Schema(description = "是否已上报")
private Integer isReported;
@Schema(description = "上报人ID", example = "2683")
private Long reporterId;
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报时间")
private LocalDateTime reportTime;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "6160")
@NotNull(message = "乐观锁不能为空")
private Integer updateCount;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,47 @@
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 BusinessQCCoefficientParameterDataPageReqVO extends PageParam {
@Schema(description = "检测项目业务ID", example = "23013")
private Long businessQCCoefficientDataId;
@Schema(description = "质控样检测方法参数配置ID", example = "870")
private Long configQCSampleMethodParameterId;
@Schema(description = "参数ID,字典表【T_DIC_PRM】", example = "7977")
private Long dictionaryParameterId;
@Schema(description = "")
private String value;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", example = "2")
private String dataType;
@Schema(description = "小数位")
private Integer decimalPosition;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "乐观锁", example = "25016")
private Integer updateCount;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,47 @@
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 BusinessQCCoefficientParameterDataReqVO {
@Schema(description = "检测项目业务ID", example = "23013")
private Long businessQCCoefficientDataId;
@Schema(description = "质控样检测方法参数配置ID", example = "870")
private Long configQCSampleMethodParameterId;
@Schema(description = "参数ID,字典表【T_DIC_PRM】", example = "7977")
private Long dictionaryParameterId;
@Schema(description = "")
private String value;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", example = "2")
private String dataType;
@Schema(description = "小数位")
private Integer decimalPosition;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "乐观锁", example = "25016")
private Integer updateCount;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,59 @@
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 BusinessQCCoefficientParameterDataRespVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14408")
@ExcelProperty("ID")
private Long id;
@Schema(description = "检测项目业务ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23013")
@ExcelProperty("检测项目业务ID")
private Long businessQCCoefficientDataId;
@Schema(description = "质控样检测方法参数配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "870")
@ExcelProperty("质控样检测方法参数配置ID")
private Long configQCSampleMethodParameterId;
@Schema(description = "参数ID,字典表【T_DIC_PRM】", requiredMode = Schema.RequiredMode.REQUIRED, example = "7977")
@ExcelProperty("参数ID,字典表【T_DIC_PRM】")
private Long dictionaryParameterId;
@Schema(description = "")
@ExcelProperty("")
private String value;
@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 systemDepartmentCode;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "25016")
@ExcelProperty("乐观锁")
private Integer updateCount;
@Schema(description = "备注")
@ExcelProperty("备注")
private String remark;
}

View File

@@ -0,0 +1,47 @@
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.*;
@Schema(description = "管理后台 - 质控样检测系数参数业务新增/修改 Request VO")
@Data
public class BusinessQCCoefficientParameterDataSaveReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14408")
private Long id;
@Schema(description = "检测项目业务ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23013")
@NotNull(message = "检测项目业务ID不能为空")
private Long businessQCCoefficientDataId;
@Schema(description = "质控样检测方法参数配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "870")
@NotNull(message = "质控样检测方法参数配置ID不能为空")
private Long configQCSampleMethodParameterId;
@Schema(description = "参数ID,字典表【T_DIC_PRM】", requiredMode = Schema.RequiredMode.REQUIRED, example = "7977")
@NotNull(message = "参数ID,字典表【T_DIC_PRM】不能为空")
private Long dictionaryParameterId;
@Schema(description = "")
private String value;
@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 systemDepartmentCode;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "25016")
@NotNull(message = "乐观锁不能为空")
private Integer updateCount;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,8 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import lombok.Data;
@Data
public class BusinessQCDataExtendRespVO extends BusinessQCDataRespVO {
}

View File

@@ -0,0 +1,79 @@
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 BusinessQCDataPageReqVO extends PageParam {
@Schema(description = "样品编号")
private String sampleCode;
@Schema(description = "样品名称", example = "赵六")
private String sampleName;
@Schema(description = "检测方法配置ID", example = "8003")
private Long configAssayMethodId;
@Schema(description = "指派单ID", example = "29117")
private Long businessAssayTaskId;
@Schema(description = "定值样业务ID", example = "24895")
private Long businessStandardSampleId;
@Schema(description = "质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样", example = "9549")
private Long dictionaryBusinessId;
@Schema(description = "质控类型_Key,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
private String dictionaryBusinessKey;
@Schema(description = "检测项目")
private String assayProject;
@Schema(description = "分析部门ID", example = "29365")
private Long assayDepartmentId;
@Schema(description = "分析部门名称", example = "李四")
private String assayDepartmentName;
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分配任务时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] assignTaskTime;
@Schema(description = "是否已分配任务")
private Integer isAssignTasked;
@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 = "乐观锁", example = "24118")
private Integer updateCount;
@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

@@ -0,0 +1,79 @@
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 BusinessQCDataReqVO {
@Schema(description = "样品编号")
private String sampleCode;
@Schema(description = "样品名称", example = "赵六")
private String sampleName;
@Schema(description = "检测方法配置ID", example = "8003")
private Long configAssayMethodId;
@Schema(description = "指派单ID", example = "29117")
private Long businessAssayTaskId;
@Schema(description = "定值样业务ID", example = "24895")
private Long businessStandardSampleId;
@Schema(description = "质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样", example = "9549")
private Long dictionaryBusinessId;
@Schema(description = "质控类型_Key,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
private String dictionaryBusinessKey;
@Schema(description = "检测项目")
private String assayProject;
@Schema(description = "分析部门ID", example = "29365")
private Long assayDepartmentId;
@Schema(description = "分析部门名称", example = "李四")
private String assayDepartmentName;
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分配任务时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] assignTaskTime;
@Schema(description = "是否已分配任务")
private Integer isAssignTasked;
@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 = "乐观锁", example = "24118")
private Integer updateCount;
@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

@@ -0,0 +1,96 @@
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 BusinessQCDataRespVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8465")
@ExcelProperty("ID")
private Long id;
@Schema(description = "样品编号", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("样品编号")
private String sampleCode;
@Schema(description = "样品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@ExcelProperty("样品名称")
private String sampleName;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8003")
@ExcelProperty("检测方法配置ID")
private Long configAssayMethodId;
@Schema(description = "指派单ID", example = "29117")
@ExcelProperty("指派单ID")
private Long businessAssayTaskId;
@Schema(description = "定值样业务ID", example = "24895")
private Long businessStandardSampleId;
@Schema(description = "质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样", example = "9549")
private Long dictionaryBusinessId;
@Schema(description = "质控类型_Key,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
private String dictionaryBusinessKey;
@Schema(description = "检测项目", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("检测项目")
private String assayProject;
@Schema(description = "分析部门ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29365")
@ExcelProperty("分析部门ID")
private Long assayDepartmentId;
@Schema(description = "分析部门名称", example = "李四")
@ExcelProperty("分析部门名称")
private String assayDepartmentName;
@Schema(description = "分析人")
@ExcelProperty("分析人")
private String assayOperator;
@Schema(description = "分配任务时间")
@ExcelProperty("分配任务时间")
private LocalDateTime assignTaskTime;
@Schema(description = "是否已分配任务")
@ExcelProperty("是否已分配任务")
private Integer isAssignTasked;
@Schema(description = "是否已上报")
@ExcelProperty("是否已上报")
private Integer isReported;
@Schema(description = "上报人")
@ExcelProperty("上报人")
private String reporter;
@Schema(description = "上报时间")
@ExcelProperty("上报时间")
private LocalDateTime reportTime;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "24118")
@ExcelProperty("乐观锁")
private Integer updateCount;
@Schema(description = "所属部门")
@ExcelProperty("所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "备注")
@ExcelProperty("备注")
private String remark;
}

View File

@@ -0,0 +1,80 @@
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 BusinessQCDataSaveReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8465")
private Long id;
@Schema(description = "样品编号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "样品编号不能为空")
private String sampleCode;
@Schema(description = "样品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@NotNull(message = "样品名称不能为空")
private String sampleName;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8003")
@NotNull(message = "检测方法配置ID不能为空")
private Long configAssayMethodId;
@Schema(description = "指派单ID", example = "29117")
private Long businessAssayTaskId;
@Schema(description = "定值样业务ID", example = "24895")
private Long businessStandardSampleId;
@Schema(description = "质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样", example = "9549")
private Long dictionaryBusinessId;
@Schema(description = "质控类型_Key,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
private String dictionaryBusinessKey;
@Schema(description = "检测项目", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "检测项目不能为空")
private String assayProject;
@Schema(description = "分析部门ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29365")
@NotNull(message = "分析部门ID不能为空")
private Long assayDepartmentId;
@Schema(description = "分析部门名称", example = "李四")
private String assayDepartmentName;
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分配任务时间")
private LocalDateTime assignTaskTime;
@Schema(description = "是否已分配任务")
private Integer isAssignTasked;
@Schema(description = "是否已上报")
private Integer isReported;
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报时间")
private LocalDateTime reportTime;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "24118")
@NotNull(message = "乐观锁不能为空")
private Integer updateCount;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,85 @@
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 BusinessQCManagementDataPageReqVO extends PageParam {
@Schema(description = "样品编号")
private String sampleCode;
@Schema(description = "样品名称", example = "李四")
private String sampleName;
@Schema(description = "检测方法配置ID", example = "22240")
private Long configAssayMethodId;
@Schema(description = "指派单ID", example = "12452")
private Long businessAssayTaskId;
@Schema(description = "定值样业务ID", example = "29446")
private Long businessStandardSampleId;
@Schema(description = "质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样", example = "512")
private Long dictionaryBusinessId;
@Schema(description = "质控类型_Key,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
private String dictionaryBusinessKey;
@Schema(description = "检测项目")
private String assayProject;
@Schema(description = "分析部门ID", example = "21281")
private Long assayDepartmentId;
@Schema(description = "分析部门名称", example = "赵六")
private String assayDepartmentName;
@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;
@Schema(description = "是否已分配任务")
private Integer isAssignTasked;
@Schema(description = "是否已上报")
private Integer isReported;
@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;
@Schema(description = "乐观锁", example = "16695")
private Integer updateCount;
@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

@@ -0,0 +1,85 @@
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 BusinessQCManagementDataReqVO {
@Schema(description = "样品编号")
private String sampleCode;
@Schema(description = "样品名称", example = "李四")
private String sampleName;
@Schema(description = "检测方法配置ID", example = "22240")
private Long configAssayMethodId;
@Schema(description = "指派单ID", example = "12452")
private Long businessAssayTaskId;
@Schema(description = "定值样业务ID", example = "29446")
private Long businessStandardSampleId;
@Schema(description = "质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样", example = "512")
private Long dictionaryBusinessId;
@Schema(description = "质控类型_Key,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
private String dictionaryBusinessKey;
@Schema(description = "检测项目")
private String assayProject;
@Schema(description = "分析部门ID", example = "21281")
private Long assayDepartmentId;
@Schema(description = "分析部门名称", example = "赵六")
private String assayDepartmentName;
@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;
@Schema(description = "是否已分配任务")
private Integer isAssignTasked;
@Schema(description = "是否已上报")
private Integer isReported;
@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;
@Schema(description = "乐观锁", example = "16695")
private Integer updateCount;
@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

@@ -0,0 +1,105 @@
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 BusinessQCManagementDataRespVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31717")
@ExcelProperty("ID")
private Long id;
@Schema(description = "样品编号")
@ExcelProperty("样品编号")
private String sampleCode;
@Schema(description = "样品名称", example = "李四")
@ExcelProperty("样品名称")
private String sampleName;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22240")
@ExcelProperty("检测方法配置ID")
private Long configAssayMethodId;
@Schema(description = "指派单ID", example = "12452")
@ExcelProperty("指派单ID")
private Long businessAssayTaskId;
@Schema(description = "定值样业务ID", example = "29446")
@ExcelProperty("定值样业务ID")
private Long businessStandardSampleId;
@Schema(description = "质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样", requiredMode = Schema.RequiredMode.REQUIRED, example = "512")
@ExcelProperty("质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
private Long dictionaryBusinessId;
@Schema(description = "质控类型_Key,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
@ExcelProperty("质控类型_Key,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
private String dictionaryBusinessKey;
@Schema(description = "检测项目", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("检测项目")
private String assayProject;
@Schema(description = "分析部门ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21281")
@ExcelProperty("分析部门ID")
private Long assayDepartmentId;
@Schema(description = "分析部门名称", example = "赵六")
@ExcelProperty("分析部门名称")
private String assayDepartmentName;
@Schema(description = "分析人")
@ExcelProperty("分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "6498")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
@ExcelProperty("分配任务时间")
private LocalDateTime assignTaskTime;
@Schema(description = "是否已分配任务")
@ExcelProperty("是否已分配任务")
private Integer isAssignTasked;
@Schema(description = "是否已上报")
@ExcelProperty("是否已上报")
private Integer isReported;
@Schema(description = "上报人")
@ExcelProperty("上报人")
private String reporter;
@Schema(description = "上报人ID", example = "17517")
private Long reporterId;
@Schema(description = "上报时间")
@ExcelProperty("上报时间")
private LocalDateTime reportTime;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "16695")
@ExcelProperty("乐观锁")
private Integer updateCount;
@Schema(description = "所属部门")
@ExcelProperty("所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "备注")
@ExcelProperty("备注")
private String remark;
}

View File

@@ -0,0 +1,85 @@
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 BusinessQCManagementDataSaveReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31717")
private Long id;
@Schema(description = "样品编号")
private String sampleCode;
@Schema(description = "样品名称", example = "李四")
private String sampleName;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22240")
@NotNull(message = "检测方法配置ID不能为空")
private Long configAssayMethodId;
@Schema(description = "指派单ID", example = "12452")
private Long businessAssayTaskId;
@Schema(description = "定值样业务ID", example = "29446")
private Long businessStandardSampleId;
@Schema(description = "质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样", requiredMode = Schema.RequiredMode.REQUIRED, example = "512")
@NotNull(message = "质控类型_ID,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样不能为空")
private Long dictionaryBusinessId;
@Schema(description = "质控类型_Key,字典表【T_DIC_BSN】质控类型空白样、管理样、标准样、标样")
private String dictionaryBusinessKey;
@Schema(description = "检测项目", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "检测项目不能为空")
private String assayProject;
@Schema(description = "分析部门ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21281")
@NotNull(message = "分析部门ID不能为空")
private Long assayDepartmentId;
@Schema(description = "分析部门名称", example = "赵六")
private String assayDepartmentName;
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分析人ID", example = "6498")
private Long assayOperatorId;
@Schema(description = "分配任务时间")
private LocalDateTime assignTaskTime;
@Schema(description = "是否已分配任务")
private Integer isAssignTasked;
@Schema(description = "是否已上报")
private Integer isReported;
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报人ID", example = "17517")
private Long reporterId;
@Schema(description = "上报时间")
private LocalDateTime reportTime;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "16695")
@NotNull(message = "乐观锁不能为空")
private Integer updateCount;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,47 @@
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 BusinessQCManagementParameterDataPageReqVO extends PageParam {
@Schema(description = "检测项目业务ID", example = "23428")
private Long businessQCManagementProjectDataId;
@Schema(description = "检测方法分析项目参数配置表ID", example = "12018")
private Long configAssayMethodProjectParameterId;
@Schema(description = "参数ID,字典表【T_DIC_PRM】", example = "18162")
private Long dictionaryParameterId;
@Schema(description = "")
private String value;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", example = "2")
private String dataType;
@Schema(description = "小数位")
private Integer decimalPosition;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "乐观锁", example = "18772")
private Integer updateCount;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,47 @@
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 BusinessQCManagementParameterDataReqVO extends PageParam {
@Schema(description = "检测项目业务ID", example = "23428")
private Long businessQCManagementProjectDataId;
@Schema(description = "检测方法分析项目参数配置表ID", example = "12018")
private Long configAssayMethodProjectParameterId;
@Schema(description = "参数ID,字典表【T_DIC_PRM】", example = "18162")
private Long dictionaryParameterId;
@Schema(description = "")
private String value;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", example = "2")
private String dataType;
@Schema(description = "小数位")
private Integer decimalPosition;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "乐观锁", example = "18772")
private Integer updateCount;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,59 @@
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 BusinessQCManagementParameterDataRespVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23533")
@ExcelProperty("ID")
private Long id;
@Schema(description = "检测项目业务ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23428")
@ExcelProperty("检测项目业务ID")
private Long businessQCManagementProjectDataId;
@Schema(description = "检测方法分析项目参数配置表ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12018")
@ExcelProperty("检测方法分析项目参数配置表ID")
private Long configAssayMethodProjectParameterId;
@Schema(description = "参数ID,字典表【T_DIC_PRM】", requiredMode = Schema.RequiredMode.REQUIRED, example = "18162")
@ExcelProperty("参数ID,字典表【T_DIC_PRM】")
private Long dictionaryParameterId;
@Schema(description = "")
@ExcelProperty("")
private String value;
@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 systemDepartmentCode;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "18772")
@ExcelProperty("乐观锁")
private Integer updateCount;
@Schema(description = "备注")
@ExcelProperty("备注")
private String remark;
}

View File

@@ -0,0 +1,47 @@
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.*;
@Schema(description = "管理后台 - 质控样检测参数数据业务新增/修改 Request VO")
@Data
public class BusinessQCManagementParameterDataSaveReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23533")
private Long id;
@Schema(description = "检测项目业务ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23428")
@NotNull(message = "检测项目业务ID不能为空")
private Long businessQCManagementProjectDataId;
@Schema(description = "检测方法分析项目参数配置表ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12018")
@NotNull(message = "检测方法分析项目参数配置表ID不能为空")
private Long configAssayMethodProjectParameterId;
@Schema(description = "参数ID,字典表【T_DIC_PRM】", requiredMode = Schema.RequiredMode.REQUIRED, example = "18162")
@NotNull(message = "参数ID,字典表【T_DIC_PRM】不能为空")
private Long dictionaryParameterId;
@Schema(description = "")
private String value;
@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 systemDepartmentCode;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "18772")
@NotNull(message = "乐观锁不能为空")
private Integer updateCount;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,59 @@
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 BusinessQCManagementProjectDataPageReqVO extends PageParam {
@Schema(description = "检测任务ID", example = "940")
private Long businessQCManagementDataId;
@Schema(description = "检测方法分析项目配置ID", example = "413")
private Long configAssayMethodProjectId;
@Schema(description = "检测项目字典ID,字典表【T_DIC_PRJ】", example = "3746")
private Long dictionaryProjectId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出、quality_control-品质控制")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "")
private String value;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", example = "2")
private String dataType;
@Schema(description = "小数位")
private Integer decimalPosition;
@Schema(description = "是否不参与超差判定")
private Integer isNotAssessment;
@Schema(description = "是否启用")
private Integer isEnabled;
@Schema(description = "乐观锁", example = "10206")
private Integer updateCount;
@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

@@ -0,0 +1,59 @@
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 BusinessQCManagementProjectDataReqVO {
@Schema(description = "检测任务ID", example = "940")
private Long businessQCManagementDataId;
@Schema(description = "检测方法分析项目配置ID", example = "413")
private Long configAssayMethodProjectId;
@Schema(description = "检测项目字典ID,字典表【T_DIC_PRJ】", example = "3746")
private Long dictionaryProjectId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出、quality_control-品质控制")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "")
private String value;
@Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串int-整数decimal-小数,date-日期datetime-时间", example = "2")
private String dataType;
@Schema(description = "小数位")
private Integer decimalPosition;
@Schema(description = "是否不参与超差判定")
private Integer isNotAssessment;
@Schema(description = "是否启用")
private Integer isEnabled;
@Schema(description = "乐观锁", example = "10206")
private Integer updateCount;
@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

@@ -0,0 +1,75 @@
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 BusinessQCManagementProjectDataRespVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "6446")
@ExcelProperty("ID")
private Long id;
@Schema(description = "检测任务ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "940")
@ExcelProperty("检测任务ID")
private Long businessQCManagementDataId;
@Schema(description = "检测方法分析项目配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "413")
@ExcelProperty("检测方法分析项目配置ID")
private Long configAssayMethodProjectId;
@Schema(description = "检测项目字典ID,字典表【T_DIC_PRJ】", requiredMode = Schema.RequiredMode.REQUIRED, example = "3746")
@ExcelProperty("检测项目字典ID,字典表【T_DIC_PRJ】")
private Long dictionaryProjectId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出、quality_control-品质控制")
@ExcelProperty("用途,ingredient-配料、report-报出、ingredient_report-配料及报出、quality_control-品质控制")
private String usage;
@Schema(description = "符号,=、>、<、等")
@ExcelProperty("符号,=、>、<、等")
private String symbol;
@Schema(description = "")
@ExcelProperty("")
private String value;
@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 = "是否不参与超差判定", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("是否不参与超差判定")
private Integer isNotAssessment;
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("是否启用")
private Integer isEnabled;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "10206")
@ExcelProperty("乐观锁")
private Integer updateCount;
@Schema(description = "所属部门")
@ExcelProperty("所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "备注")
@ExcelProperty("备注")
private String remark;
}

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