Compare commits

...

78 Commits

Author SHA1 Message Date
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
chenbowen
d814fae16d 1. 升级私有包版本 2025-11-19 14:48:09 +08:00
FCL
e6113058c0 fix:子样查询修改 2025-11-19 09:55:48 +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
200 changed files with 7109 additions and 1337 deletions

View File

@@ -11,7 +11,7 @@ metadata:
description: DESC_PLACEHOLDER description: DESC_PLACEHOLDER
rollout.kubernetes.io/change-cause: "DESC_PLACEHOLDER:VERSION_PLACEHOLDER" rollout.kubernetes.io/change-cause: "DESC_PLACEHOLDER:VERSION_PLACEHOLDER"
spec: spec:
replicas: 1 replicas: 2
selector: selector:
matchLabels: matchLabels:
app: qms-server app: qms-server
@@ -74,3 +74,13 @@ spec:
port: 9999 port: 9999
targetPort: 9999 targetPort: 9999
nodePort: 30194 nodePort: 30194
- name: websocket-8320
protocol: TCP
port: 8320
targetPort: 8320
nodePort: 30320
- name: tcp-8330
protocol: TCP
port: 8330
targetPort: 8330
nodePort: 30330

14
pom.xml
View File

@@ -17,7 +17,7 @@
<url>https://github.com/YunaiV/ruoyi-vue-pro</url> <url>https://github.com/YunaiV/ruoyi-vue-pro</url>
<properties> <properties>
<revision>3.0.43</revision> <revision>3.0.45</revision>
<!-- Maven 相关 --> <!-- Maven 相关 -->
<java.version>17</java.version> <java.version>17</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.source>${java.version}</maven.compiler.source>
@@ -177,8 +177,8 @@
<config.server-addr>172.16.46.63:30848</config.server-addr> <config.server-addr>172.16.46.63:30848</config.server-addr>
<config.namespace>dev</config.namespace> <config.namespace>dev</config.namespace>
<config.group>DEFAULT_GROUP</config.group> <config.group>DEFAULT_GROUP</config.group>
<config.username/> <config.username>nacos</config.username>
<config.password/> <config.password>P@ssword25</config.password>
<config.version>1.0.0</config.version> <config.version>1.0.0</config.version>
</properties> </properties>
</profile> </profile>
@@ -190,8 +190,8 @@
<config.server-addr>172.16.46.63:30848</config.server-addr> <config.server-addr>172.16.46.63:30848</config.server-addr>
<config.namespace>prod</config.namespace> <config.namespace>prod</config.namespace>
<config.group>DEFAULT_GROUP</config.group> <config.group>DEFAULT_GROUP</config.group>
<config.username/> <config.username>nacos</config.username>
<config.password/> <config.password>P@ssword25</config.password>
<config.version>1.0.0</config.version> <config.version>1.0.0</config.version>
</properties> </properties>
</profile> </profile>
@@ -203,8 +203,8 @@
<config.server-addr>172.16.46.63:30848</config.server-addr> <config.server-addr>172.16.46.63:30848</config.server-addr>
<config.namespace>local</config.namespace> <config.namespace>local</config.namespace>
<config.group>DEFAULT_GROUP</config.group> <config.group>DEFAULT_GROUP</config.group>
<config.username/> <config.username>nacos</config.username>
<config.password/> <config.password>P@ssword25</config.password>
<config.version>1.0.0</config.version> <config.version>1.0.0</config.version>
</properties> </properties>
</profile> </profile>

View File

@@ -1,5 +1,6 @@
ARG BASE_IMAGE=172.16.46.66:10043/base-service/skywalking-agent-jre:9.7.0 FROM 172.16.46.66:10043/base-service/report-base:x86_64-ubuntu_22-jre21-2.0.0
FROM ${BASE_IMAGE} #ARG BASE_IMAGE=172.16.46.66:10043/base-service/skywalking-agent-jre:9.7.0
#FROM ${BASE_IMAGE}
RUN mkdir -p /appdata/server RUN mkdir -p /appdata/server
WORKDIR /appdata/server WORKDIR /appdata/server
## 将后端项目的 Jar 文件,复制到镜像中 ## 将后端项目的 Jar 文件,复制到镜像中
@@ -8,10 +9,10 @@ COPY ./target/qms-server.jar app.jar
## 设置 TZ 时区 ## 设置 TZ 时区
ENV TZ=Asia/Shanghai ENV TZ=Asia/Shanghai
ENV JAVA_OPTS="-Xms512m -Xmx512m" ENV JAVA_OPTS="-Xms512m -Xmx512m"
ENV SW_AGENT_HOME=/opt/skywalking/agent #ENV SW_AGENT_HOME=/opt/skywalking/agent
ENV SW_AGENT_NAME=qms-server #ENV SW_AGENT_NAME=qms-server
ENV SW_AGENT_COLLECTOR_BACKEND_SERVICES=172.16.46.63:30201 #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}" #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 EXPOSE 48205

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:: prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE::
timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟 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 # 数据库索引

File diff suppressed because it is too large Load Diff

View File

@@ -87,7 +87,7 @@ public interface ErrorCodeConstants {
ErrorCode CONFIG_PERMISSION_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_PERMISSION_DUPLICATE = new ErrorCode(1_032_050_000, "权限配置数据有误");
ErrorCode CONFIG_WAREHOUSE_LOCATION_NOT_EXISTS = 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, "库位编码重复,请检查库位数据,或联系管理员处理"); ErrorCode CONFIG_WAREHOUSE_LOCATION_CODE_DUPLICATE = new ErrorCode(1_032_050_000, "库位编码重复,请检查!");
/*=================================bus 检验业务 1_032_100_000 ~ 1_032_149_999==================================*/ /*=================================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_REGISTRATION_NOT_EXISTS = new ErrorCode(1_032_100_000, "委检登记业务不存在");
@@ -102,7 +102,8 @@ public interface ErrorCodeConstants {
ErrorCode BUSINESS_ASSAY_TASK_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "子样检测任务业务不存在"); 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_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_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_NOT_EXISTS = new ErrorCode(1_032_100_000, "样品交接单业务不存在");
ErrorCode BUSINESS_SAMPLE_HANDOVER_DETAIL_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, "检测任务分配业务不存在"); ErrorCode BUSINESS_ASSAY_TASK_NOT_EXISTS = new ErrorCode(1_032_100_000, "检测任务分配业务不存在");
@@ -116,6 +117,7 @@ public interface ErrorCodeConstants {
ErrorCode BUSINESS_STANDARD_SAMPLE_PROJECT_NOT_EXISTS = new ErrorCode(1_032_100_000, "标准样检测项目业务不存在"); 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_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_SUB_SAMPLE_PARENT_RECHECK_NOT_EXISTS = new ErrorCode(1_032_100_000, "分样复检业务数据不存在");
@@ -147,6 +149,9 @@ public interface ErrorCodeConstants {
ErrorCode MATERIAL_INFOMATION_NOT_EXISTS = new ErrorCode(1_032_150_000, "试剂耗材不存在"); ErrorCode MATERIAL_INFOMATION_NOT_EXISTS = new ErrorCode(1_032_150_000, "试剂耗材不存在");
ErrorCode MATERIAL_PRODUCT_NOT_EXISTS = new ErrorCode(1_032_150_000, "试剂耗材大类不存在"); 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, "物料通用流程不存在");
/*================================= tx 1_032_200_000 ~ 1_032_249_999 ==================================*/ /*================================= tx 1_032_200_000 ~ 1_032_249_999 ==================================*/

View File

@@ -122,6 +122,9 @@ public interface QmsCommonConstant {
/** 分析收样 **/ /** 分析收样 **/
String FLOW_NODE_ANALYSIS_RECEIVE = "flw_analysis_receive"; 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_ANALYSIS_SEND = "flw_analysis_send";
@@ -154,10 +157,41 @@ public interface QmsCommonConstant {
/** 品质控制 **/ /** 品质控制 **/
String ASSAY_PROJECT_USAGE_QUALITY_CONTROL = "quality_control"; 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 CHECKED = "checked";
/** 检验完成状态-未完成 **/ /** 检验完成状态-未完成 **/
String UNCHECKED = "unchecked"; String UNCHECKED = "unchecked";
/** 自动 **/
String AUTOMATIC = "automatic";
/** 手动 **/
String MANUAL = "manual";
/** 样品库操作类型: 归库、调拨、下架 **/
String SAMPLE_STORAGE_OPERATION_TYPE_STORAGE = "storage";
String SAMPLE_STORAGE_OPERATION_TYPE_TRANSFER = "dispatch";
String SAMPLE_STORAGE_OPERATION_TYPE_TAKEN_OFF = "take_off";
/** 允许提交 **/
String ALLOW_SUBMIT = "allow_submit";
} }

View File

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

View File

@@ -1,12 +1,16 @@
package com.zt.plat.module.qms.business.bus.controller.admin; package com.zt.plat.module.qms.business.bus.controller.admin;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchPageReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchRespVO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDetailDO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchSaveReqVO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO; 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.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 com.zt.plat.module.qms.enums.QmsCommonConstant;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@@ -46,7 +50,9 @@ public class BusinessSampleDispatchController implements BusinessControllerMarke
@Resource private BusinessSampleDispatchService businessSampleDispatchService; @Resource private BusinessSampleDispatchService businessSampleDispatchService;
@Resource private BusinessSampleDispatchDetailService businessSampleDispatchDetailService;
@Resource private BusinessSubSampleService businessSubSampleService; @Resource private BusinessSubSampleService businessSubSampleService;
@Resource private ConfigWarehouseLocationService configWarehouseLocationService;
@PostMapping("/createTempData") @PostMapping("/createTempData")
@Operation(summary = "创建临时数据") @Operation(summary = "创建临时数据")
@@ -60,6 +66,7 @@ public class BusinessSampleDispatchController implements BusinessControllerMarke
@Operation(summary = "更新样品调拨") @Operation(summary = "更新样品调拨")
public CommonResult<Boolean> updateBusinessSampleDispatch(@Valid @RequestBody BusinessSampleDispatchSaveReqVO updateReqVO) { public CommonResult<Boolean> updateBusinessSampleDispatch(@Valid @RequestBody BusinessSampleDispatchSaveReqVO updateReqVO) {
updateReqVO.setCancelStatus("0"); updateReqVO.setCancelStatus("0");
updateReqVO.setFlowStatus(QmsCommonConstant.NOT_START);
businessSampleDispatchService.updateBusinessSampleDispatch(updateReqVO); businessSampleDispatchService.updateBusinessSampleDispatch(updateReqVO);
return success(true); return success(true);
} }
@@ -67,19 +74,35 @@ public class BusinessSampleDispatchController implements BusinessControllerMarke
@PostMapping("/addOrRemoveSample") @PostMapping("/addOrRemoveSample")
@Operation(summary = "增加或移除样品") @Operation(summary = "增加或移除样品")
public CommonResult<Boolean> addOrRemoveSample(@Valid @RequestBody BusinessSampleDispatchSaveReqVO updateReqVO) { public CommonResult<Boolean> addOrRemoveSample(@Valid @RequestBody BusinessSampleDispatchSaveReqVO updateReqVO) {
businessSampleDispatchService.addOrRemoveSample(updateReqVO); businessSampleDispatchService.addOrRemoveSample(updateReqVO, true);
return success(true); return success(true);
} }
@PostMapping("/addBySampleCode") @PostMapping("/addBySampleReturnCode")
@Operation(summary = "增加或移除样品") @Operation(summary = "按归库码增加样品")
public CommonResult<Boolean> addBySampleCode(HttpServletRequest request) { public CommonResult<Boolean> addBySampleReturnCode(@RequestBody JSONObject param) {
String id = request.getParameter("id"); String id = param.getString("id");
String sampleCode = request.getParameter("sampleCode"); String sampleReturnCode = param.getString("sampleReturnCode");
BusinessSubSampleDO businessSubSampleDO = businessSubSampleService.getBySampleCode(sampleCode); 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) if(businessSubSampleDO == null)
return CommonResult.error(BUSINESS_SUB_SAMPLE_NOT_EXISTS.getCode(), "未查询到此样品!"); 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(); String returnStatus = businessSubSampleDO.getReturnStatus();
if(!QmsCommonConstant.COMPLETED.equals(returnStatus)){ if(!QmsCommonConstant.COMPLETED.equals(returnStatus)){
return CommonResult.error(BUSINESS_SUB_SAMPLE_NOT_EXISTS.getCode(), "样品状态为:"+returnStatus+",不能调拨!"); return CommonResult.error(BUSINESS_SUB_SAMPLE_NOT_EXISTS.getCode(), "样品状态为:"+returnStatus+",不能调拨!");
@@ -88,12 +111,19 @@ public class BusinessSampleDispatchController implements BusinessControllerMarke
if("1".equals(dispatchStatus)){ if("1".equals(dispatchStatus)){
return CommonResult.error(BUSINESS_SUB_SAMPLE_NOT_EXISTS.getCode(), "样品已被调拨:请归还后再调拨!"); 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<>(); List<Long> sampleIds = new ArrayList<>();
sampleIds.add(businessSubSampleDO.getId()); sampleIds.add(businessSubSampleDO.getId());
BusinessSampleDispatchSaveReqVO updateReqVO = new BusinessSampleDispatchSaveReqVO(); BusinessSampleDispatchSaveReqVO updateReqVO = new BusinessSampleDispatchSaveReqVO();
updateReqVO.setId(Long.valueOf(id)); updateReqVO.setId(Long.valueOf(id));
updateReqVO.setAddSubSampleIds(sampleIds); updateReqVO.setAddSubSampleIds(sampleIds);
businessSampleDispatchService.addOrRemoveSample(updateReqVO); businessSampleDispatchService.addOrRemoveSample(updateReqVO, false);
return success(true); return success(true);
} }

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