最新版本升级
This commit is contained in:
@@ -0,0 +1 @@
|
||||
restart.include.json=/com.alibaba.fastjson2.*.jar
|
||||
@@ -0,0 +1,86 @@
|
||||
# 数据源配置
|
||||
spring:
|
||||
datasource:
|
||||
type: com.alibaba.druid.pool.DruidDataSource
|
||||
driverClassName: org.postgresql.Driver
|
||||
druid:
|
||||
# 主库数据源
|
||||
master:
|
||||
url: jdbc:postgresql://192.168.10.240:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
|
||||
username: postgres
|
||||
password: root
|
||||
# 从库数据源
|
||||
slave:
|
||||
# 从数据源开关/默认关闭
|
||||
enabled: false
|
||||
url:
|
||||
username:
|
||||
password:
|
||||
# 初始连接数
|
||||
initialSize: 5
|
||||
# 最小连接池数量
|
||||
minIdle: 10
|
||||
# 最大连接池数量
|
||||
maxActive: 20
|
||||
# 配置获取连接等待超时的时间
|
||||
maxWait: 60000
|
||||
# 配置连接超时时间
|
||||
connectTimeout: 30000
|
||||
# 配置网络超时时间
|
||||
socketTimeout: 60000
|
||||
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
|
||||
timeBetweenEvictionRunsMillis: 60000
|
||||
# 配置一个连接在池中最小生存的时间,单位是毫秒
|
||||
minEvictableIdleTimeMillis: 300000
|
||||
# 配置一个连接在池中最大生存的时间,单位是毫秒
|
||||
maxEvictableIdleTimeMillis: 900000
|
||||
# 配置检测连接是否有效
|
||||
validationQuery: SELECT 1 # FROM DUAL
|
||||
testWhileIdle: true
|
||||
testOnBorrow: false
|
||||
testOnReturn: false
|
||||
webStatFilter:
|
||||
enabled: true
|
||||
statViewServlet:
|
||||
enabled: true
|
||||
# 设置白名单,不填则允许所有访问
|
||||
allow:
|
||||
url-pattern: /druid/*
|
||||
# 控制台管理用户名和密码
|
||||
login-username: openhis
|
||||
login-password: 123456
|
||||
filter:
|
||||
stat:
|
||||
enabled: true
|
||||
# 慢SQL记录
|
||||
log-slow-sql: true
|
||||
slow-sql-millis: 1000
|
||||
merge-sql: true
|
||||
wall:
|
||||
config:
|
||||
multi-statement-allow: true
|
||||
# redis 配置
|
||||
redis:
|
||||
# 地址
|
||||
host: 192.168.10.240
|
||||
port: 6379
|
||||
# 数据库索引
|
||||
database: 1
|
||||
# 密码
|
||||
password: redis
|
||||
# 连接超时时间
|
||||
timeout: 10s
|
||||
lettuce:
|
||||
pool:
|
||||
# 连接池中的最小空闲连接
|
||||
min-idle: 0
|
||||
# 连接池中的最大空闲连接
|
||||
max-idle: 8
|
||||
# 连接池的最大数据库连接数
|
||||
max-active: 8
|
||||
# #连接池最大阻塞等待时间(使用负值表示没有限制)
|
||||
max-wait: -1ms
|
||||
# 文言
|
||||
messages:
|
||||
basename: i18n/general_message/messages
|
||||
encoding: utf-8
|
||||
@@ -0,0 +1,87 @@
|
||||
# 数据源配置
|
||||
spring:
|
||||
datasource:
|
||||
type: com.alibaba.druid.pool.DruidDataSource
|
||||
driverClassName: org.postgresql.Driver
|
||||
druid:
|
||||
# 主库数据源
|
||||
master:
|
||||
url: jdbc:postgresql://60.188.247.175:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
|
||||
username: postgres
|
||||
password: root
|
||||
# 从库数据源
|
||||
slave:
|
||||
# 从数据源开关/默认关闭
|
||||
enabled: false
|
||||
url:
|
||||
username:
|
||||
password:
|
||||
# 初始连接数
|
||||
initialSize: 5
|
||||
# 最小连接池数量
|
||||
minIdle: 10
|
||||
# 最大连接池数量
|
||||
maxActive: 20
|
||||
# 配置获取连接等待超时的时间
|
||||
maxWait: 60000
|
||||
# 配置连接超时时间
|
||||
connectTimeout: 30000
|
||||
# 配置网络超时时间
|
||||
socketTimeout: 60000
|
||||
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
|
||||
timeBetweenEvictionRunsMillis: 60000
|
||||
# 配置一个连接在池中最小生存的时间,单位是毫秒
|
||||
minEvictableIdleTimeMillis: 300000
|
||||
# 配置一个连接在池中最大生存的时间,单位是毫秒
|
||||
maxEvictableIdleTimeMillis: 900000
|
||||
# 配置检测连接是否有效
|
||||
validationQuery: SELECT 1 # FROM DUAL
|
||||
testWhileIdle: true
|
||||
testOnBorrow: false
|
||||
testOnReturn: false
|
||||
webStatFilter:
|
||||
enabled: true
|
||||
statViewServlet:
|
||||
enabled: true
|
||||
# 设置白名单,不填则允许所有访问
|
||||
allow:
|
||||
url-pattern: /druid/*
|
||||
# 控制台管理用户名和密码
|
||||
login-username: openhis
|
||||
login-password: 123456
|
||||
filter:
|
||||
stat:
|
||||
enabled: true
|
||||
# 慢SQL记录
|
||||
log-slow-sql: true
|
||||
slow-sql-millis: 1000
|
||||
merge-sql: true
|
||||
wall:
|
||||
config:
|
||||
multi-statement-allow: true
|
||||
# redis 配置
|
||||
redis:
|
||||
# 地址
|
||||
host: 60.188.247.175
|
||||
# 端口,默认为6379
|
||||
port: 6379
|
||||
# 数据库索引
|
||||
database: 0
|
||||
# 密码
|
||||
password: redis
|
||||
# 连接超时时间
|
||||
timeout: 10s
|
||||
lettuce:
|
||||
pool:
|
||||
# 连接池中的最小空闲连接
|
||||
min-idle: 0
|
||||
# 连接池中的最大空闲连接
|
||||
max-idle: 8
|
||||
# 连接池的最大数据库连接数
|
||||
max-active: 8
|
||||
# #连接池最大阻塞等待时间(使用负值表示没有限制)
|
||||
max-wait: -1ms
|
||||
# 文言
|
||||
messages:
|
||||
basename: i18n/general_message/messages
|
||||
encoding: utf-8
|
||||
@@ -0,0 +1,87 @@
|
||||
# 数据源配置
|
||||
spring:
|
||||
datasource:
|
||||
type: com.alibaba.druid.pool.DruidDataSource
|
||||
driverClassName: org.postgresql.Driver
|
||||
druid:
|
||||
# 主库数据源
|
||||
master:
|
||||
url: jdbc:postgresql://192.168.30.199:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
|
||||
username: postgres
|
||||
password: root
|
||||
# 从库数据源
|
||||
slave:
|
||||
# 从数据源开关/默认关闭
|
||||
enabled: false
|
||||
url:
|
||||
username:
|
||||
password:
|
||||
# 初始连接数
|
||||
initialSize: 5
|
||||
# 最小连接池数量
|
||||
minIdle: 10
|
||||
# 最大连接池数量
|
||||
maxActive: 20
|
||||
# 配置获取连接等待超时的时间
|
||||
maxWait: 60000
|
||||
# 配置连接超时时间
|
||||
connectTimeout: 30000
|
||||
# 配置网络超时时间
|
||||
socketTimeout: 60000
|
||||
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
|
||||
timeBetweenEvictionRunsMillis: 60000
|
||||
# 配置一个连接在池中最小生存的时间,单位是毫秒
|
||||
minEvictableIdleTimeMillis: 300000
|
||||
# 配置一个连接在池中最大生存的时间,单位是毫秒
|
||||
maxEvictableIdleTimeMillis: 900000
|
||||
# 配置检测连接是否有效
|
||||
validationQuery: SELECT 1 # FROM DUAL
|
||||
testWhileIdle: true
|
||||
testOnBorrow: false
|
||||
testOnReturn: false
|
||||
webStatFilter:
|
||||
enabled: true
|
||||
statViewServlet:
|
||||
enabled: true
|
||||
# 设置白名单,不填则允许所有访问
|
||||
allow:
|
||||
url-pattern: /druid/*
|
||||
# 控制台管理用户名和密码
|
||||
login-username: openhis
|
||||
login-password: 123456
|
||||
filter:
|
||||
stat:
|
||||
enabled: true
|
||||
# 慢SQL记录
|
||||
log-slow-sql: true
|
||||
slow-sql-millis: 1000
|
||||
merge-sql: true
|
||||
wall:
|
||||
config:
|
||||
multi-statement-allow: true
|
||||
# redis 配置
|
||||
redis:
|
||||
# 地址
|
||||
host: 192.168.30.199
|
||||
# 端口,默认为6379
|
||||
port: 6379
|
||||
# 数据库索引
|
||||
database: 1
|
||||
# 密码
|
||||
password: redis
|
||||
# 连接超时时间
|
||||
timeout: 10s
|
||||
lettuce:
|
||||
pool:
|
||||
# 连接池中的最小空闲连接
|
||||
min-idle: 0
|
||||
# 连接池中的最大空闲连接
|
||||
max-idle: 8
|
||||
# 连接池的最大数据库连接数
|
||||
max-active: 8
|
||||
# #连接池最大阻塞等待时间(使用负值表示没有限制)
|
||||
max-wait: -1ms
|
||||
# 文言
|
||||
messages:
|
||||
basename: i18n/general_message/messages
|
||||
encoding: utf-8
|
||||
@@ -0,0 +1,87 @@
|
||||
# 数据源配置
|
||||
spring:
|
||||
datasource:
|
||||
type: com.alibaba.druid.pool.DruidDataSource
|
||||
driverClassName: org.postgresql.Driver
|
||||
druid:
|
||||
# 主库数据源
|
||||
master:
|
||||
url: jdbc:postgresql://192.168.1.123:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
|
||||
username: postgres
|
||||
password: root
|
||||
# 从库数据源
|
||||
slave:
|
||||
# 从数据源开关/默认关闭
|
||||
enabled: false
|
||||
url:
|
||||
username:
|
||||
password:
|
||||
# 初始连接数
|
||||
initialSize: 5
|
||||
# 最小连接池数量
|
||||
minIdle: 10
|
||||
# 最大连接池数量
|
||||
maxActive: 20
|
||||
# 配置获取连接等待超时的时间
|
||||
maxWait: 60000
|
||||
# 配置连接超时时间
|
||||
connectTimeout: 30000
|
||||
# 配置网络超时时间
|
||||
socketTimeout: 60000
|
||||
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
|
||||
timeBetweenEvictionRunsMillis: 60000
|
||||
# 配置一个连接在池中最小生存的时间,单位是毫秒
|
||||
minEvictableIdleTimeMillis: 300000
|
||||
# 配置一个连接在池中最大生存的时间,单位是毫秒
|
||||
maxEvictableIdleTimeMillis: 900000
|
||||
# 配置检测连接是否有效
|
||||
validationQuery: SELECT 1 # FROM DUAL
|
||||
testWhileIdle: true
|
||||
testOnBorrow: false
|
||||
testOnReturn: false
|
||||
webStatFilter:
|
||||
enabled: true
|
||||
statViewServlet:
|
||||
enabled: true
|
||||
# 设置白名单,不填则允许所有访问
|
||||
allow:
|
||||
url-pattern: /druid/*
|
||||
# 控制台管理用户名和密码
|
||||
login-username: openhis
|
||||
login-password: 123456
|
||||
filter:
|
||||
stat:
|
||||
enabled: true
|
||||
# 慢SQL记录
|
||||
log-slow-sql: true
|
||||
slow-sql-millis: 1000
|
||||
merge-sql: true
|
||||
wall:
|
||||
config:
|
||||
multi-statement-allow: true
|
||||
# redis 配置
|
||||
redis:
|
||||
# 地址
|
||||
host: 192.168.1.123
|
||||
# 端口,默认为6379
|
||||
port: 6379
|
||||
# 数据库索引
|
||||
database: 1
|
||||
# 密码
|
||||
password: redis
|
||||
# 连接超时时间
|
||||
timeout: 10s
|
||||
lettuce:
|
||||
pool:
|
||||
# 连接池中的最小空闲连接
|
||||
min-idle: 0
|
||||
# 连接池中的最大空闲连接
|
||||
max-idle: 8
|
||||
# 连接池的最大数据库连接数
|
||||
max-active: 8
|
||||
# #连接池最大阻塞等待时间(使用负值表示没有限制)
|
||||
max-wait: -1ms
|
||||
# 文言
|
||||
messages:
|
||||
basename: i18n/general_message/messages
|
||||
encoding: utf-8
|
||||
@@ -0,0 +1,87 @@
|
||||
# 数据源配置 农大
|
||||
spring:
|
||||
datasource:
|
||||
type: com.alibaba.druid.pool.DruidDataSource
|
||||
driverClassName: org.postgresql.Driver
|
||||
druid:
|
||||
# 主库数据源
|
||||
master:
|
||||
url: jdbc:postgresql://localhost:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
|
||||
username: postgres
|
||||
password: root
|
||||
# 从库数据源
|
||||
slave:
|
||||
# 从数据源开关/默认关闭
|
||||
enabled: false
|
||||
url:
|
||||
username:
|
||||
password:
|
||||
# 初始连接数
|
||||
initialSize: 5
|
||||
# 最小连接池数量
|
||||
minIdle: 10
|
||||
# 最大连接池数量
|
||||
maxActive: 20
|
||||
# 配置获取连接等待超时的时间
|
||||
maxWait: 60000
|
||||
# 配置连接超时时间
|
||||
connectTimeout: 30000
|
||||
# 配置网络超时时间
|
||||
socketTimeout: 60000
|
||||
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
|
||||
timeBetweenEvictionRunsMillis: 60000
|
||||
# 配置一个连接在池中最小生存的时间,单位是毫秒
|
||||
minEvictableIdleTimeMillis: 300000
|
||||
# 配置一个连接在池中最大生存的时间,单位是毫秒
|
||||
maxEvictableIdleTimeMillis: 900000
|
||||
# 配置检测连接是否有效
|
||||
validationQuery: SELECT 1 # FROM DUAL
|
||||
testWhileIdle: true
|
||||
testOnBorrow: false
|
||||
testOnReturn: false
|
||||
webStatFilter:
|
||||
enabled: true
|
||||
statViewServlet:
|
||||
enabled: true
|
||||
# 设置白名单,不填则允许所有访问
|
||||
allow:
|
||||
url-pattern: /druid/*
|
||||
# 控制台管理用户名和密码
|
||||
login-username: openhis
|
||||
login-password: 123456
|
||||
filter:
|
||||
stat:
|
||||
enabled: true
|
||||
# 慢SQL记录
|
||||
log-slow-sql: true
|
||||
slow-sql-millis: 1000
|
||||
merge-sql: true
|
||||
wall:
|
||||
config:
|
||||
multi-statement-allow: true
|
||||
# redis 配置
|
||||
redis:
|
||||
# 地址
|
||||
host: 127.0.0.1
|
||||
# 端口,默认为6379
|
||||
port: 6379
|
||||
# 数据库索引
|
||||
database: 1
|
||||
# 密码
|
||||
password: redis
|
||||
# 连接超时时间
|
||||
timeout: 10s
|
||||
lettuce:
|
||||
pool:
|
||||
# 连接池中的最小空闲连接
|
||||
min-idle: 0
|
||||
# 连接池中的最大空闲连接
|
||||
max-idle: 8
|
||||
# 连接池的最大数据库连接数
|
||||
max-active: 8
|
||||
# #连接池最大阻塞等待时间(使用负值表示没有限制)
|
||||
max-wait: -1ms
|
||||
# 文言
|
||||
messages:
|
||||
basename: i18n/general_message/messages
|
||||
encoding: utf-8
|
||||
@@ -0,0 +1,93 @@
|
||||
# 数据源配置
|
||||
spring:
|
||||
datasource:
|
||||
type: com.alibaba.druid.pool.DruidDataSource
|
||||
driverClassName: org.postgresql.Driver
|
||||
druid:
|
||||
# 主库数据源
|
||||
# master:
|
||||
# url: jdbc:postgresql://192.168.1.123:5432/openhistest?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
|
||||
# username: postgres
|
||||
# password: root
|
||||
|
||||
master:
|
||||
url: jdbc:postgresql://192.168.30.199:5432/openhistest?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
|
||||
username: postgres
|
||||
password: root
|
||||
# 从库数据源
|
||||
slave:
|
||||
# 从数据源开关/默认关闭
|
||||
enabled: false
|
||||
url:
|
||||
username:
|
||||
password:
|
||||
# 初始连接数
|
||||
initialSize: 5
|
||||
# 最小连接池数量
|
||||
minIdle: 10
|
||||
# 最大连接池数量
|
||||
maxActive: 20
|
||||
# 配置获取连接等待超时的时间
|
||||
maxWait: 60000
|
||||
# 配置连接超时时间
|
||||
connectTimeout: 30000
|
||||
# 配置网络超时时间
|
||||
socketTimeout: 60000
|
||||
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
|
||||
timeBetweenEvictionRunsMillis: 60000
|
||||
# 配置一个连接在池中最小生存的时间,单位是毫秒
|
||||
minEvictableIdleTimeMillis: 300000
|
||||
# 配置一个连接在池中最大生存的时间,单位是毫秒
|
||||
maxEvictableIdleTimeMillis: 900000
|
||||
# 配置检测连接是否有效
|
||||
validationQuery: SELECT 1 # FROM DUAL
|
||||
testWhileIdle: true
|
||||
testOnBorrow: false
|
||||
testOnReturn: false
|
||||
webStatFilter:
|
||||
enabled: true
|
||||
statViewServlet:
|
||||
enabled: true
|
||||
# 设置白名单,不填则允许所有访问
|
||||
allow:
|
||||
url-pattern: /druid/*
|
||||
# 控制台管理用户名和密码
|
||||
login-username: openhis
|
||||
login-password: 123456
|
||||
filter:
|
||||
stat:
|
||||
enabled: true
|
||||
# 慢SQL记录
|
||||
log-slow-sql: true
|
||||
slow-sql-millis: 1000
|
||||
merge-sql: true
|
||||
wall:
|
||||
config:
|
||||
multi-statement-allow: true
|
||||
# redis 配置
|
||||
redis:
|
||||
# 地址
|
||||
# host: 192.168.1.123
|
||||
host: 192.168.30.199
|
||||
# 端口,默认为6379
|
||||
port: 6379
|
||||
# 数据库索引
|
||||
database: 1
|
||||
# 密码
|
||||
password: redis
|
||||
# 连接超时时间
|
||||
timeout: 10s
|
||||
lettuce:
|
||||
pool:
|
||||
# 连接池中的最小空闲连接
|
||||
min-idle: 0
|
||||
# 连接池中的最大空闲连接
|
||||
max-idle: 8
|
||||
# 连接池的最大数据库连接数
|
||||
max-active: 8
|
||||
# #连接池最大阻塞等待时间(使用负值表示没有限制)
|
||||
max-wait: -1ms
|
||||
# 文言
|
||||
messages:
|
||||
basename: i18n/general_message/messages
|
||||
encoding: utf-8
|
||||
@@ -0,0 +1,131 @@
|
||||
# 项目相关配置
|
||||
core:
|
||||
# 名称
|
||||
name: OpenHis
|
||||
# 版本
|
||||
version: 0.0.1
|
||||
# 版权年份
|
||||
copyrightYear: 2025
|
||||
# 文件路径
|
||||
profile: D:/home/uploadPath
|
||||
# 获取ip地址开关
|
||||
addressEnabled: false
|
||||
# 验证码类型 math 数字计算 char 字符验证
|
||||
captchaType: math
|
||||
|
||||
# 开发环境配置
|
||||
server:
|
||||
# 服务器的HTTP端口,默认为18080
|
||||
port: 18080
|
||||
servlet:
|
||||
# 应用的访问路径
|
||||
context-path: /openhis
|
||||
tomcat:
|
||||
# tomcat的URI编码
|
||||
uri-encoding: UTF-8
|
||||
# 连接数满后的排队数,默认为100
|
||||
accept-count: 1000
|
||||
threads:
|
||||
# tomcat最大线程数,默认为200
|
||||
max: 800
|
||||
# Tomcat启动初始化的线程数,默认值10
|
||||
min-spare: 100
|
||||
|
||||
# 日志配置
|
||||
logging:
|
||||
level:
|
||||
com.openhis: debug
|
||||
org.springframework: warn
|
||||
|
||||
# 用户配置
|
||||
user:
|
||||
password:
|
||||
# 密码最大错误次数
|
||||
maxRetryCount: 5
|
||||
# 密码锁定时间(默认10分钟)
|
||||
lockTime: 10
|
||||
|
||||
# Spring配置
|
||||
spring:
|
||||
main:
|
||||
allow-circular-references: true
|
||||
# 资源信息
|
||||
messages:
|
||||
# 国际化资源文件路径
|
||||
basename: i18n/messages
|
||||
profiles:
|
||||
active: local # (天翼云)cloud (本地测试)test (本地)local (生产)prod (农大) nd (长大) cd
|
||||
# 文件上传
|
||||
servlet:
|
||||
multipart:
|
||||
# 单个文件大小
|
||||
max-file-size: 10MB
|
||||
# 设置总上传的文件大小
|
||||
max-request-size: 20MB
|
||||
# 服务模块
|
||||
devtools:
|
||||
restart:
|
||||
# 热部署开关
|
||||
enabled: true
|
||||
|
||||
# token配置
|
||||
token:
|
||||
# 令牌自定义标识
|
||||
header: Authorization
|
||||
# 令牌密钥
|
||||
secret: abcdefghijklmnopqrstuvwxyz
|
||||
# 令牌有效期(默认30分钟)
|
||||
expireTime: 1000
|
||||
|
||||
# MyBatis配置
|
||||
mybatis-plus:
|
||||
# 搜索指定包别名
|
||||
typeAliasesPackage: com.core.**.domain,com.openhis.**.domain
|
||||
# 配置mapper的扫描,找到所有的mapper.xml映射文件
|
||||
mapperLocations: classpath*:mapper/**/*Mapper.xml
|
||||
# 加载全局的配置文件
|
||||
configLocation: classpath:mybatis/mybatis-config.xml
|
||||
|
||||
# PageHelper分页插件
|
||||
pagehelper:
|
||||
#helperDialect: mysql
|
||||
supportMethodsArguments: true
|
||||
params: count=countSql
|
||||
# 分页插件会自动检测当前的数据库链接,自动选择合适的分页方式
|
||||
auto-dialect: true
|
||||
# 默认值为 false。设置为 true 时,允许在运行时根据多数据源自动识别对应方言的分页
|
||||
auto-runtime-dialect: true
|
||||
|
||||
# Swagger配置
|
||||
swagger:
|
||||
# 是否开启swagger
|
||||
enabled: true
|
||||
# 请求前缀
|
||||
pathMapping: /dev-api
|
||||
|
||||
# 防止XSS攻击
|
||||
xss:
|
||||
# 过滤开关
|
||||
enabled: true
|
||||
# 排除链接(多个用逗号分隔)
|
||||
excludes: /system/notice
|
||||
# 匹配链接
|
||||
urlPatterns: /system/*,/monitor/*,/tool/*
|
||||
|
||||
# flowable相关表
|
||||
flowable:
|
||||
# true 会对数据库中所有表进行更新操作。如果表不存在,则自动创建(建议开发时使用)
|
||||
database-schema-update: false
|
||||
# 关闭定时任务JOB
|
||||
async-executor-activate: false
|
||||
|
||||
# liteflow配置
|
||||
liteflow:
|
||||
#规则文件路径
|
||||
rule-source: config/flow.el.xml
|
||||
#liteflow是否开启,默认为true
|
||||
enable: true
|
||||
#liteflow的banner打印是否开启,默认为true
|
||||
print-banner: false
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
:::::::: ::::::::: :::::::::: :::: ::: ::: ::: ::::::::::: ::::::::
|
||||
:+: :+: :+: :+: :+: :+:+: :+: :+: :+: :+: :+: :+:
|
||||
+:+ +:+ +:+ +:+ +:+ :+:+:+ +:+ +:+ +:+ +:+ +:+
|
||||
+#+ +:+ +#++:++#+ +#++:++# +#+ +:+ +#+ +#++:++#++ +#+ +#++:++#++
|
||||
+#+ +#+ +#+ +#+ +#+ +#+#+# +#+ +#+ +#+ +#+
|
||||
#+# #+# #+# #+# #+# #+#+# #+# #+# #+# #+# #+#
|
||||
######## ### ########## ### #### ### ### ########### ########
|
||||
|
||||
Application Version: ${core.version}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<flow>
|
||||
<chain name="chain1">
|
||||
THEN(a, b, c);
|
||||
</chain>
|
||||
</flow>
|
||||
@@ -0,0 +1,6 @@
|
||||
#http.yml
|
||||
http:
|
||||
appId: "JLNYDX2611325"
|
||||
key: "e3d214e5b8414b583aefd287fd"
|
||||
url: "http://clydzp.chinaebill.cn:8001/medical-web"
|
||||
fixmedinsCode: "H22017200667"
|
||||
@@ -0,0 +1,53 @@
|
||||
#错误消息
|
||||
not.null=* 必须填写
|
||||
user.jcaptcha.error=验证码错误
|
||||
user.jcaptcha.expire=验证码已失效
|
||||
user.not.exists=用户不存在/密码错误
|
||||
user.password.not.match=用户不存在/密码错误
|
||||
user.password.retry.limit.count=密码输入错误{0}次
|
||||
user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定{1}分钟
|
||||
user.password.delete=对不起,您的账号已被删除
|
||||
user.blocked=用户已封禁,请联系管理员
|
||||
role.blocked=角色已封禁,请联系管理员
|
||||
login.blocked=很遗憾,访问IP已被列入系统黑名单
|
||||
user.logout.success=退出成功
|
||||
length.not.valid=长度必须在{min}到{max}个字符之间
|
||||
user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
|
||||
user.password.not.valid=* 5-50个字符
|
||||
user.email.not.valid=邮箱格式错误
|
||||
user.mobile.phone.number.not.valid=手机号格式错误
|
||||
user.login.success=登录成功
|
||||
user.register.success=注册成功
|
||||
user.notfound=请重新登录
|
||||
user.forcelogout=管理员强制退出,请重新登录
|
||||
user.unknown.error=未知错误,请重新登录
|
||||
##文件上传消息
|
||||
upload.exceed.maxSize=上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{0}MB!
|
||||
upload.filename.exceed.length=上传的文件名最长{0}个字符
|
||||
##权限
|
||||
no.permission=您没有数据的权限,请联系管理员添加权限 [{0}]
|
||||
no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}]
|
||||
no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}]
|
||||
no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
|
||||
no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
|
||||
no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
|
||||
apl.common.M00001={0}添加成功
|
||||
apl.common.M00002={0}保存成功
|
||||
apl.common.M00003={0}已经存在
|
||||
apl.common.M00004={0}操作成功
|
||||
apl.common.M00005={0}删除成功
|
||||
apl.common.M00006=操作失败,该数据已被他人删除,请刷新后重试
|
||||
apl.common.M00007=操作失败,该数据已被他人更改,请刷新后重试
|
||||
apl.common.M00008=请勿重复提交
|
||||
apl.common.M00009=查询成功
|
||||
apl.common.M00010=操作失败,请联系管理员
|
||||
apl.chargeRefund.M00001=该收费单相关{0}已经发出,请先退药后再进行退费
|
||||
apl.payment.M00001=各缴费渠道实收金额合计不等于实收金额
|
||||
apl.payment.M00002=实收金额合计不等于应收金额
|
||||
apl.payment.M00003=请选择支付方式
|
||||
apl.payment.M00004=查询成功
|
||||
apl.payment.M00005=操作失败,请联系管理员
|
||||
apl.payment.M00006=成功收费
|
||||
apl.payment.M00007=未查询到收费项目
|
||||
apl.payment.M00008=未查询到{0}账户信息
|
||||
apl.payment.M00009=未查询到收费项目,不需要转换账户
|
||||
@@ -0,0 +1,160 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<!-- 日志存放路径 -->
|
||||
<property name="log.path" value="/home/openhis/logs"/>
|
||||
<!-- 日志输出格式 -->
|
||||
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
|
||||
|
||||
<!-- 控制台输出 -->
|
||||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 系统日志输出 -->
|
||||
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/sys-info.log</file>
|
||||
<!-- 循环政策:基于时间创建日志文件 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- 日志文件名格式 -->
|
||||
<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
<!-- 日志最大的历史 60天 -->
|
||||
<maxHistory>60</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<!-- 过滤的级别 -->
|
||||
<level>INFO</level>
|
||||
<!-- 匹配时的操作:接收(记录) -->
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<!-- 不匹配时的操作:拒绝(不记录) -->
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/sys-error.log</file>
|
||||
<!-- 循环政策:基于时间创建日志文件 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- 日志文件名格式 -->
|
||||
<fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
<!-- 日志最大的历史 60天 -->
|
||||
<maxHistory>60</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<!-- 过滤的级别 -->
|
||||
<level>ERROR</level>
|
||||
<!-- 匹配时的操作:接收(记录) -->
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<!-- 不匹配时的操作:拒绝(不记录) -->
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- 用户访问日志输出 -->
|
||||
<appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/sys-user.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- 按天回滚 daily -->
|
||||
<fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
<!-- 日志最大的历史 60天 -->
|
||||
<maxHistory>60</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 新增专用日志Appender -->
|
||||
<appender name="YB_LOGS" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/yb-service.log</file> <!-- 日志文件名 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- 每天一个文件,保留60天 -->
|
||||
<fileNamePattern>${log.path}/yb-service.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
<maxHistory>60</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern> <!-- 使用统一日志格式 -->
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 在原有logger配置下方添加 -->
|
||||
<logger name="com.openhis.yb.service.YbManager" level="info" additivity="false">
|
||||
<appender-ref ref="YB_LOGS" />
|
||||
</logger>
|
||||
|
||||
<!-- 新增专用日志Appender -->
|
||||
<appender name="PAYMENT_LOGS" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/payment.log</file> <!-- 日志文件名 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- 每天一个文件,保留60天 -->
|
||||
<fileNamePattern>${log.path}/payment.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
<maxHistory>60</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern> <!-- 使用统一日志格式 -->
|
||||
</encoder>
|
||||
</appender>
|
||||
<!-- 在原有logger配置下方添加 -->
|
||||
<logger name="com.openhis.web.paymentmanage.appservice.impl.PaymentRecServiceImpl" level="info" additivity="false">
|
||||
<appender-ref ref="PAYMENT_LOGS" />
|
||||
</logger>
|
||||
|
||||
<!-- 新增专用日志Appender -->
|
||||
<appender name="E_INVOICE_LOGS" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/E_invoice.log</file> <!-- 日志文件名 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- 每天一个文件,保留60天 -->
|
||||
<fileNamePattern>${log.path}/E_invoice.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
<maxHistory>60</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern> <!-- 使用统一日志格式 -->
|
||||
</encoder>
|
||||
</appender>
|
||||
<!-- 在原有logger配置下方添加 -->
|
||||
<logger name="com.openhis.web.paymentmanage.appservice.impl.EleInvoiceServiceImpl" level="info" additivity="false">
|
||||
<appender-ref ref="E_INVOICE_LOGS" />
|
||||
</logger>
|
||||
|
||||
<!-- 系统模块日志级别控制 -->
|
||||
<logger name="com.core" level="info"/>
|
||||
<!-- Spring日志级别控制 -->
|
||||
<logger name="org.springframework" level="warn"/>
|
||||
|
||||
<root level="info">
|
||||
<appender-ref ref="console"/>
|
||||
</root>
|
||||
|
||||
<!--系统操作日志-->
|
||||
<root level="info">
|
||||
<appender-ref ref="YB_LOGS"/>
|
||||
<appender-ref ref="PAYMENT_LOGS"/>
|
||||
<appender-ref ref="file_info"/>
|
||||
<appender-ref ref="file_error"/>
|
||||
</root>
|
||||
|
||||
<!--系统用户操作日志-->
|
||||
<logger name="sys-user" level="info">
|
||||
<appender-ref ref="sys-user"/>
|
||||
</logger>
|
||||
|
||||
<logger name="YB_LOGS" level="info">
|
||||
<appender-ref ref="YB_LOGS"/>
|
||||
</logger>
|
||||
|
||||
<logger name="PAYMENT_LOGS" level="info">
|
||||
<appender-ref ref="PAYMENT_LOGS"/>
|
||||
</logger>
|
||||
|
||||
<logger name="E_INVOICE_LOGS" level="info">
|
||||
<appender-ref ref="E_INVOICE_LOGS"/>
|
||||
</logger>
|
||||
|
||||
</configuration>
|
||||
@@ -0,0 +1,488 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inventorymanage.mapper.InventoryDetailsMapper">
|
||||
|
||||
<select id="selectPurchaseInDetailsPage"
|
||||
resultType="com.openhis.web.inventorymanage.dto.InventoryDetailsPageDto">
|
||||
SELECT T7.id, --id
|
||||
T7.bus_no, --单据号
|
||||
T7.status_enum, --单据类型
|
||||
T7.item_table, --项目类型
|
||||
T7.item_no, --项目编码
|
||||
T7.item_name, --项目名称
|
||||
T7.item_volume, --规格
|
||||
T7.manufacturer_text, --厂家
|
||||
T7.lot_number, --产品批号
|
||||
T7.sup_name, --供应商
|
||||
T7.item_quantity, --采购数量
|
||||
T7.price, --采购单价
|
||||
T7.total_price, --合计金额
|
||||
T7.unit_code, --计量单位
|
||||
T7.org_name, --采购部门
|
||||
T7.purpose_location_id, --仓库
|
||||
T7.purpose_location_store_id, --货位
|
||||
T7.approval_time, --审批日期
|
||||
T7.expiration_time, --有效期
|
||||
T7.applicant_id, --制单人
|
||||
T7.approver_id --审批人
|
||||
FROM (SELECT T1.id, --id
|
||||
T1.bus_no, --单据号
|
||||
CASE T2.status_enum
|
||||
WHEN #{supplyStatus} THEN '已入库'
|
||||
ELSE '未入库' END AS status_enum, --单据类型
|
||||
T3.category_code AS item_table, --项目类型
|
||||
T1.item_id AS item_no, --项目编码
|
||||
T3.name AS item_name, --项目名称
|
||||
T4.total_volume AS item_volume, --规格
|
||||
T3.manufacturer_text, --厂家
|
||||
T1.lot_number, --产品批号
|
||||
T6.name AS sup_name, --供应商
|
||||
T1.item_quantity * T3.part_percent AS item_quantity, --采购数量
|
||||
T1.price, --采购单价
|
||||
T1.total_price, --合计金额
|
||||
T1.unit_code, --计量单位
|
||||
T5.name AS org_name, --采购部门
|
||||
T1.purpose_location_id, --仓库
|
||||
T1.purpose_location_store_id, --货位
|
||||
T1.approval_time, --审批日期
|
||||
T4.expiration_date AS expiration_time, --有效期
|
||||
T1.applicant_id, --制单人
|
||||
T1.approver_id --审批人
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T2
|
||||
ON T2.request_id = T1.id
|
||||
INNER JOIN med_medication_definition AS T3
|
||||
ON T3.id = T1.item_id
|
||||
INNER JOIN med_medication AS T4
|
||||
ON T4.medication_def_id = T3.id
|
||||
LEFT JOIN adm_organization AS T5
|
||||
ON T5.id = T4.org_id
|
||||
LEFT JOIN adm_supplier AS T6
|
||||
ON T6.id = T1.supplier_id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.type_enum = #{purchaseInventory}
|
||||
ORDER BY T1.bus_no desc) AS T7
|
||||
UNION
|
||||
SELECT T10.id, --id
|
||||
T10.bus_no, --单据号
|
||||
T10.status_enum, --单据类型
|
||||
T10.item_table, --项目类型
|
||||
T10.item_no, --项目编码
|
||||
T10.item_name, --项目名称
|
||||
T10.item_volume, --规格
|
||||
T10.manufacturer_text, --厂家
|
||||
T10.lot_number, --产品批号
|
||||
T10.sup_name, --供应商
|
||||
T10.item_quantity, --采购数量
|
||||
T10.price, --采购单价
|
||||
T10.total_price, --合计金额
|
||||
T10.unit_code, --计量单位
|
||||
T10.org_name, --采购部门
|
||||
T10.purpose_location_id, --仓库
|
||||
T10.purpose_location_store_id, --货位
|
||||
T10.approval_time, --审批日期
|
||||
T10.expiration_time, --有效期
|
||||
T10.applicant_id, --制单人
|
||||
T10.approver_id --审批人
|
||||
FROM (SELECT T1.id, --id
|
||||
T1.bus_no, --单据号
|
||||
CASE T2.status_enum
|
||||
WHEN #{supplyStatus} THEN '已入库'
|
||||
ELSE '未入库' END AS status_enum, --单据类型
|
||||
T8.category_code AS item_table, --项目类型
|
||||
T1.item_id AS item_no, --项目编码
|
||||
T8.name AS item_name, --项目名称
|
||||
T9.device_specifications AS item_volume, --规格
|
||||
T8.manufacturer_text, --厂家
|
||||
T1.lot_number, --产品批号
|
||||
T6.name AS sup_name, --供应商
|
||||
T1.item_quantity * T8.part_percent AS item_quantity, --采购数量
|
||||
T1.price, --采购单价
|
||||
T1.total_price, --合计金额
|
||||
T1.unit_code, --计量单位
|
||||
T5.name AS org_name, --采购部门
|
||||
T1.purpose_location_id, --仓库
|
||||
T1.purpose_location_store_id, --货位
|
||||
T1.approval_time, --审批日期
|
||||
T9.expiration_date AS expiration_time, --有效期
|
||||
T1.applicant_id, --制单人
|
||||
T1.approver_id --审批人
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T2
|
||||
ON T2.request_id = T1.id
|
||||
INNER JOIN adm_device_definition AS T8
|
||||
ON T8.id = T1.item_id
|
||||
INNER JOIN adm_device AS T9
|
||||
ON T9.device_def_id = T8.id
|
||||
LEFT JOIN adm_organization AS T5
|
||||
ON T5.id = T9.org_id
|
||||
LEFT JOIN adm_supplier AS T6
|
||||
ON T6.id = T1.supplier_id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.type_enum = #{purchaseInventory}
|
||||
ORDER BY T1.bus_no desc) AS T10
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="selectTransferDetailsPage"
|
||||
resultType="com.openhis.web.inventorymanage.dto.InventoryDetailsPageDto">
|
||||
SELECT T7.id, --id
|
||||
T7.bus_no, --单据号
|
||||
T7.status_enum, --单据类型
|
||||
T7.item_table, --项目类型
|
||||
T7.item_no, --项目编码
|
||||
T7.item_name, --项目名称
|
||||
T7.item_volume, --规格
|
||||
T7.lot_number, --产品批号
|
||||
T7.manufacturer_text, --厂家
|
||||
T7.item_quantity, --调拨数量
|
||||
T7.unit_code, --计量单位
|
||||
T7.price, --采购单价
|
||||
T7.total_price, --合计金额
|
||||
T7.source_type, --源仓库类型
|
||||
T7.source_location, --源仓库
|
||||
T7.source_location_store, --源货位
|
||||
T7.purpose_type, --目的仓库类型
|
||||
T7.purpose_location_id, --目的仓库
|
||||
T7.purpose_location_store_id, --目的货位
|
||||
T7.approval_time, --审批日期
|
||||
T7.expiration_time, --有效期
|
||||
T7.applicant_id, --制单人
|
||||
T7.approver_id --审批人
|
||||
FROM (SELECT T1.id, --id
|
||||
T1.bus_no, --单据号
|
||||
CASE T2.status_enum
|
||||
WHEN #{supplyStatus} THEN '已调拨'
|
||||
ELSE '未调拨' END AS status_enum, --单据类型
|
||||
T3.category_code AS item_table, --项目类型
|
||||
T1.item_id AS item_no, --项目编码
|
||||
T3.name AS item_name, --项目名称
|
||||
T4.total_volume AS item_volume, --规格
|
||||
T1.lot_number, --产品批号
|
||||
T3.manufacturer_text, --厂家
|
||||
T1.item_quantity, --采购数量(小)
|
||||
T3.min_unit_code AS unit_code, --计量单位(小)
|
||||
T1.price * T3.part_percent AS price, --采购单价(小)
|
||||
T1.total_price, --合计金额
|
||||
T1.source_type_enum AS source_type, --源仓库类型
|
||||
T5.name AS source_location, --源仓库
|
||||
T6.name AS source_location_store, --源货位
|
||||
T1.purpose_type_enum AS purpose_type, --目的仓库类型
|
||||
T1.purpose_location_id, --目的仓库
|
||||
T1.purpose_location_store_id, --目的货位
|
||||
T1.approval_time, --审批日期
|
||||
T4.expiration_date AS expiration_time, --有效期
|
||||
T1.applicant_id, --制单人
|
||||
T1.approver_id --审批人
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T2
|
||||
ON T2.request_id = T1.id
|
||||
INNER JOIN med_medication_definition AS T3
|
||||
ON T3.id = T1.item_id
|
||||
INNER JOIN med_medication AS T4
|
||||
ON T4.medication_def_id = T3.id
|
||||
LEFT JOIN adm_location AS T5
|
||||
ON T5.id = T1.source_location_id
|
||||
LEFT JOIN adm_location AS T6
|
||||
ON T6.id = T1.source_location_store_id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.type_enum = #{productTransfer}
|
||||
ORDER BY T1.bus_no desc) AS T7
|
||||
UNION
|
||||
SELECT T10.id, --id
|
||||
T10.bus_no, --单据号
|
||||
T10.status_enum, --单据类型
|
||||
T10.item_table, --项目类型
|
||||
T10.item_no, --项目编码
|
||||
T10.item_name, --项目名称
|
||||
T10.item_volume, --规格
|
||||
T10.lot_number, --产品批号
|
||||
T10.manufacturer_text, --厂家
|
||||
T10.item_quantity, --调拨数量
|
||||
T10.unit_code, --计量单位
|
||||
T10.price, --采购单价
|
||||
T10.total_price, --合计金额
|
||||
T10.source_type, --源仓库类型
|
||||
T10.source_location, --源仓库
|
||||
T10.source_location_store, --源货位
|
||||
T10.purpose_type, --目的仓库类型
|
||||
T10.purpose_location_id, --目的仓库
|
||||
T10.purpose_location_store_id, --目的货位
|
||||
T10.approval_time, --审批日期
|
||||
T10.expiration_time, --有效期
|
||||
T10.applicant_id, --制单人
|
||||
T10.approver_id --审批人
|
||||
FROM (SELECT T1.id, --id
|
||||
T1.bus_no, --单据号
|
||||
CASE T2.status_enum
|
||||
WHEN #{supplyStatus} THEN '已调拨'
|
||||
ELSE '未调拨' END AS status_enum, --单据类型
|
||||
T8.category_code AS item_table, --项目类型
|
||||
T1.item_id AS item_no, --项目编码
|
||||
T8.name AS item_name, --项目名称
|
||||
T9.device_specifications AS item_volume, --规格
|
||||
T1.lot_number, --产品批号
|
||||
T8.manufacturer_text, --厂家
|
||||
T1.item_quantity, --采购数量(小)
|
||||
T8.min_unit_code AS unit_code, --计量单位(小)
|
||||
T1.price * T8.part_percent AS price, --采购单价(小)
|
||||
T1.total_price, --合计金额
|
||||
T1.source_type_enum AS source_type, --源仓库类型
|
||||
T5.name AS source_location, --源仓库
|
||||
T6.name AS source_location_store, --源货位
|
||||
T1.purpose_type_enum AS purpose_type, --目的仓库类型
|
||||
T1.purpose_location_id, --目的仓库
|
||||
T1.purpose_location_store_id, --目的货位
|
||||
T1.approval_time, --审批日期
|
||||
T9.expiration_date AS expiration_time, --有效期
|
||||
T1.applicant_id, --制单人
|
||||
T1.approver_id --审批人
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T2
|
||||
ON T2.request_id = T1.id
|
||||
INNER JOIN adm_device_definition AS T8
|
||||
ON T8.id = T1.item_id
|
||||
INNER JOIN adm_device AS T9
|
||||
ON T9.device_def_id = T8.id
|
||||
LEFT JOIN adm_location AS T5
|
||||
ON T5.id = T1.source_location_id
|
||||
LEFT JOIN adm_location AS T6
|
||||
ON T6.id = T1.source_location_store_id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.type_enum = #{productTransfer}
|
||||
ORDER BY T1.bus_no desc) AS T10
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectRequisitionOutDetailsPage"
|
||||
resultType="com.openhis.web.inventorymanage.dto.InventoryDetailsPageDto">
|
||||
SELECT T7.id, --id
|
||||
T7.bus_no, --单据号
|
||||
T7.status_enum, --单据类型
|
||||
T7.item_table, --项目类型
|
||||
T7.item_no, --项目编码
|
||||
T7.item_name, --项目名称
|
||||
T7.item_volume, --规格
|
||||
T7.item_quantity, --领用数量
|
||||
T7.unit_code, --计量单位
|
||||
T7.lot_number, --产品批号
|
||||
T7.supply_bus_no, --采购批次流水号
|
||||
T7.purpose_location_id, --仓库
|
||||
T7.purpose_location_store_id, --货位
|
||||
T7.occurrence_time, --期望时间(制单时间)
|
||||
T7.approval_time, --审批日期
|
||||
T7.org_name, --领用部门
|
||||
T7.applicant_id, --制单人
|
||||
T7.approver_id --审批人
|
||||
FROM (SELECT T1.id, --id
|
||||
T1.bus_no, --单据号
|
||||
CASE T2.status_enum
|
||||
WHEN #{agree} THEN '已出库'
|
||||
ELSE '未出库' END AS status_enum, --单据类型
|
||||
T3.category_code AS item_table, --项目类型
|
||||
T1.item_id AS item_no, --项目编码
|
||||
T3.name AS item_name, --项目名称
|
||||
T4.total_volume AS item_volume, --规格
|
||||
T1.item_quantity AS item_quantity, --领用数量
|
||||
T1.unit_code, --计量单位
|
||||
T1.lot_number, --产品批号
|
||||
T5.bus_no AS supply_bus_no, --采购批次流水号
|
||||
T1.purpose_location_id, --仓库
|
||||
T1.purpose_location_store_id, --货位
|
||||
T1.occurrence_time, --期望时间(制单时间)
|
||||
T1.approval_time, --审批日期
|
||||
T6.name AS org_name, --领用部门
|
||||
T1.applicant_id, --制单人
|
||||
T1.approver_id --审批人
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T2
|
||||
ON T2.request_id = T1.id
|
||||
INNER JOIN med_medication_definition AS T3
|
||||
ON T3.id = T1.item_id
|
||||
INNER JOIN med_medication AS T4
|
||||
ON T4.medication_def_id = T3.id
|
||||
LEFT JOIN wor_supply_request AS T5
|
||||
ON T5.item_id = T1.item_id
|
||||
AND T5.lot_number = T1.lot_number
|
||||
AND T5.purpose_location_id = T1.purpose_location_id
|
||||
AND T5.purpose_location_store_id = T1.purpose_location_store_id
|
||||
LEFT JOIN adm_organization AS T6
|
||||
ON T6.id = T4.org_id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.type_enum = #{issueInventory}
|
||||
UNION
|
||||
SELECT T1.id, --id
|
||||
T1.bus_no, --单据号
|
||||
CASE T2.status_enum
|
||||
WHEN #{agree} THEN '已出库'
|
||||
ELSE '未出库' END AS status_enum, --单据类型
|
||||
T3.category_code AS item_table, --项目类型
|
||||
T1.item_id AS item_no, --项目编码
|
||||
T3.name AS item_name, --项目名称
|
||||
T4.total_volume AS item_volume, --规格
|
||||
T1.item_quantity AS item_quantity, --领用数量
|
||||
T1.unit_code, --计量单位
|
||||
T1.lot_number, --产品批号
|
||||
T5.bus_no AS supply_bus_no, --采购批次流水号
|
||||
T1.purpose_location_id, --仓库
|
||||
T1.purpose_location_store_id, --货位
|
||||
T1.occurrence_time, --期望时间(制单时间)
|
||||
T1.approval_time, --审批日期
|
||||
T6.name AS org_name, --领用部门
|
||||
T1.applicant_id, --制单人
|
||||
T1.approver_id --审批人
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T2
|
||||
ON T2.request_id = T1.id
|
||||
INNER JOIN adm_device_definition AS T3
|
||||
ON T3.id = T1.item_id
|
||||
INNER JOIN adm_device AS T4
|
||||
ON T4.device_def_id = T3.id
|
||||
LEFT JOIN wor_supply_request AS T5
|
||||
ON T5.item_id = T1.item_id
|
||||
AND T5.lot_number = T1.lot_number
|
||||
AND T5.purpose_location_id = T1.purpose_location_id
|
||||
AND T5.purpose_location_store_id = T1.purpose_location_store_id
|
||||
LEFT JOIN adm_organization AS T6
|
||||
ON T6.id = T4.org_id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.type_enum = #{issueInventory}
|
||||
ORDER BY T1.bus_no desc) AS T7
|
||||
ORDER BY T7.bus_no DESC
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectInventoryStockDetailsPage"
|
||||
resultType="com.openhis.web.inventorymanage.dto.InventoryDetailsPageDto">
|
||||
SELECT T6.id, --id
|
||||
T6.bus_no, --单据号
|
||||
T6.status_enum, --单据类型
|
||||
T6.item_table, --项目类型
|
||||
T6.item_no, --项目编码
|
||||
T6.item_name, --项目名称
|
||||
T6.item_volume, --规格
|
||||
T6.manufacturer_text, --厂家
|
||||
T6.lot_number, --产品批号
|
||||
T6.unit_code, --计量单位
|
||||
T6.before_stock_quantity, --盘前数量
|
||||
T6.after_stock_quantity, --盘后数量
|
||||
T6.loss_quantity, --盈亏数量
|
||||
T6.reason, --盈亏原因
|
||||
T6.purpose_type, --目的仓库类型
|
||||
T6.purpose_location_id, --目的仓库
|
||||
T6.purpose_location_store_id, --目的货位
|
||||
T6.approval_time, --审批日期
|
||||
T6.applicant_id, --制单人
|
||||
T6.approver_id --审批人
|
||||
FROM (SELECT T1.id, --id
|
||||
T1.bus_no, --单据号
|
||||
CASE
|
||||
WHEN T2.status_enum = #{agree} THEN '已盘点'
|
||||
WHEN T1.status_enum = #{approval} THEN '审核中'
|
||||
ELSE '待申请' END AS status_enum, --单据类型
|
||||
T3.category_code AS item_table, --项目类型
|
||||
T1.item_id AS item_no, --项目编码
|
||||
T3.name AS item_name, --项目名称
|
||||
T4.total_volume AS item_volume, --规格
|
||||
T3.manufacturer_text, --厂家
|
||||
T1.lot_number, --产品批号
|
||||
T3.min_unit_code AS unit_code, --计量单位(小)
|
||||
CASE T2.status_enum
|
||||
WHEN #{agree} THEN
|
||||
T5.quantity - T1.item_quantity
|
||||
ELSE
|
||||
T5.quantity
|
||||
END AS before_stock_quantity, --盘前数量(小)
|
||||
CASE T2.status_enum
|
||||
WHEN #{agree} THEN
|
||||
T5.quantity
|
||||
ELSE
|
||||
T5.quantity + T1.item_quantity
|
||||
END AS after_stock_quantity, --盘后数量(小)
|
||||
T1.item_quantity AS loss_quantity, --盈亏数量(小)
|
||||
T1.reason, --盈亏原因
|
||||
T1.purpose_type_enum AS purpose_type, --目的仓库类型
|
||||
T1.purpose_location_id, --目的仓库
|
||||
T1.purpose_location_store_id, --目的货位
|
||||
T1.approval_time, --审批日期
|
||||
T1.applicant_id, --制单人
|
||||
T1.approver_id --审批人
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T2
|
||||
ON T2.request_id = T1.id
|
||||
INNER JOIN med_medication_definition AS T3
|
||||
ON T3.id = T1.item_id
|
||||
INNER JOIN med_medication AS T4
|
||||
ON T4.medication_def_id = T3.id
|
||||
LEFT JOIN wor_inventory_item AS T5
|
||||
ON T5.item_id = T1.item_id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.type_enum = #{productStocktaking}
|
||||
ORDER BY T1.bus_no desc) AS T6
|
||||
UNION
|
||||
SELECT T9.id, --id
|
||||
T9.bus_no, --单据号
|
||||
T9.status_enum, --单据类型
|
||||
T9.item_table, --项目类型
|
||||
T9.item_no, --项目编码
|
||||
T9.item_name, --项目名称
|
||||
T9.item_volume, --规格
|
||||
T9.manufacturer_text, --厂家
|
||||
T9.lot_number, --产品批号
|
||||
T9.unit_code, --计量单位
|
||||
T9.before_stock_quantity, --盘前数量
|
||||
T9.after_stock_quantity, --盘后数量
|
||||
T9.loss_quantity, --盈亏数量
|
||||
T9.reason, --盈亏原因
|
||||
T9.purpose_type, --目的仓库类型
|
||||
T9.purpose_location_id, --目的仓库
|
||||
T9.purpose_location_store_id, --目的货位
|
||||
T9.approval_time, --审批日期
|
||||
T9.applicant_id, --制单人
|
||||
T9.approver_id --审批人
|
||||
FROM (SELECT T1.id, --id
|
||||
T1.bus_no, --单据号
|
||||
CASE
|
||||
WHEN T2.status_enum = #{agree} THEN '已盘点'
|
||||
WHEN T1.status_enum = #{approval} THEN '审核中'
|
||||
ELSE '待申请' END AS status_enum, --单据类型
|
||||
T7.category_code AS item_table, --项目类型
|
||||
T1.item_id AS item_no, --项目编码
|
||||
T7.name AS item_name, --项目名称
|
||||
T8.device_specifications AS item_volume, --规格
|
||||
T7.manufacturer_text, --厂家
|
||||
T1.lot_number, --产品批号
|
||||
T7.min_unit_code AS unit_code, --计量单位(小)
|
||||
CASE T2.status_enum
|
||||
WHEN #{agree} THEN
|
||||
T5.quantity - T1.item_quantity
|
||||
ELSE
|
||||
T5.quantity
|
||||
END AS before_stock_quantity, --盘前数量(小)
|
||||
CASE T2.status_enum
|
||||
WHEN #{agree} THEN
|
||||
T5.quantity
|
||||
ELSE
|
||||
T5.quantity + T1.item_quantity
|
||||
END AS after_stock_quantity, --盘后数量(小)
|
||||
T1.item_quantity AS loss_quantity, --盈亏数量(小)
|
||||
T1.reason, --盈亏原因
|
||||
T1.purpose_type_enum AS purpose_type, --目的仓库类型
|
||||
T1.purpose_location_id, --目的仓库
|
||||
T1.purpose_location_store_id, --目的货位
|
||||
T1.approval_time, --审批日期
|
||||
T1.applicant_id, --制单人
|
||||
T1.approver_id --审批人
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T2
|
||||
ON T2.request_id = T1.id
|
||||
INNER JOIN adm_device_definition AS T7
|
||||
ON T7.id = T1.item_id
|
||||
INNER JOIN adm_device AS T8
|
||||
ON T8.device_def_id = T7.id
|
||||
LEFT JOIN wor_inventory_item AS T5
|
||||
ON T5.item_id = T1.item_id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.type_enum = #{productStocktaking}
|
||||
ORDER BY T1.bus_no desc) AS T9
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,298 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inventorymanage.mapper.LossReportFormMapper">
|
||||
|
||||
<select id="selectLossReportFormPage"
|
||||
resultType="com.openhis.web.inventorymanage.dto.LossReportFormPageDto">
|
||||
SELECT T4.supply_bus_no, -- 单据号
|
||||
T4.type, -- 单据类型
|
||||
T4.status_enum, -- 单据状态
|
||||
T4.inventory_location_name, -- 盘点仓库
|
||||
T4.reported_loss_amount, -- 报损金额(总价)
|
||||
T4.applicant_id, -- 制单人(申请人)
|
||||
T4.approver_id, -- 审核人
|
||||
T4.approval_time, -- 审核日期
|
||||
T4.create_time, -- 制单时间
|
||||
T4.tenant_id -- 租户ID
|
||||
FROM (SELECT T1.bus_no AS supply_bus_no,
|
||||
T1.type_enum AS type,
|
||||
T1.status_enum,
|
||||
T4.name AS inventory_location_name,
|
||||
T2.reported_loss_amount,
|
||||
T1.applicant_id,
|
||||
T1.approver_id,
|
||||
MIN(T1.create_time) AS create_time,
|
||||
T1.approval_time,
|
||||
T1.tenant_id
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN (SELECT T3.bus_no,
|
||||
SUM(T3.total_price) AS reported_loss_amount
|
||||
FROM wor_supply_request AS T3
|
||||
GROUP BY T3.bus_no) AS T2
|
||||
ON T1.bus_no = T2.bus_no
|
||||
LEFT JOIN adm_location T4
|
||||
ON T1.purpose_location_id = T4.id
|
||||
WHERE T1.type_enum = #{lossReportForm}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.bus_no,
|
||||
T1.type_enum,
|
||||
T1.status_enum,
|
||||
T4.name,
|
||||
T2.reported_loss_amount,
|
||||
T1.applicant_id,
|
||||
T1.approver_id,
|
||||
T1.approval_time,
|
||||
T1.tenant_id
|
||||
ORDER BY T1.bus_no desc
|
||||
) AS T4
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectDetail" resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
|
||||
SELECT T1.id, --ID
|
||||
T1.bus_no AS supply_bus_no, --单据号
|
||||
T1.item_id, --物品编码
|
||||
T1.purpose_type_enum, --目的类型
|
||||
T1.purpose_location_id, --目的仓库
|
||||
T5."name" AS purpose_location_name, --目的仓库名称
|
||||
T6."name" AS purpose_location_store_name, --目的仓位
|
||||
T1.occurrence_time, --报损时间
|
||||
#{medicine} AS item_type, --药品类型
|
||||
T1.remake, --备注
|
||||
T2.bus_no AS item_bus_no, --项目编码
|
||||
T2."name" AS item_name, --名称
|
||||
T3.total_volume, --规格
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, -- 包装单位
|
||||
T2.min_unit_code, -- 最小单位
|
||||
T2.manufacturer_text, --生产厂商文本
|
||||
T4.lot_number, --产品批号
|
||||
T4.quantity AS total_quantity, --当前库存数量
|
||||
T1.item_quantity, --数量(报损数量)
|
||||
T11.amount AS price, --采购单价(大单位)
|
||||
T1.total_price, --总价(报损金额)
|
||||
T1.reason_code, --理由类型(报损原因)
|
||||
T1.reason, --理由(报损详细)
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.supplier_id, -- 供应商id
|
||||
T9."name" AS supplier_name, -- 供应商名称
|
||||
T2.part_percent --拆零比
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication T3
|
||||
ON T3.medication_def_id = T2.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item T4
|
||||
ON T1.item_id = T4.item_id
|
||||
AND T1.purpose_location_id = T4.location_id
|
||||
AND T1.lot_number = T4.lot_number
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.purpose_location_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_store_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T9
|
||||
ON T9.id = T1.supplier_id
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T4.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T4.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.id, --ID
|
||||
T1.bus_no AS supply_bus_no, --单据号
|
||||
T1.item_id, --物品编码
|
||||
T1.purpose_type_enum, --目的类型
|
||||
T1.purpose_location_id, --目的仓库
|
||||
T5."name" AS purpose_location_name, --目的仓库名称
|
||||
T6."name" AS purpose_location_store_name, --目的仓位
|
||||
T1.occurrence_time, --报损时间
|
||||
#{device} AS item_type, --器材类型
|
||||
T1.remake, --备注
|
||||
T7.bus_no AS item_bus_no, --项目编码
|
||||
T7."name" AS item_name, --名称
|
||||
T7."size" AS total_volume, --器材规格
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T7.unit_code, -- 包装单位
|
||||
T7.min_unit_code, -- 最小单位
|
||||
T7.manufacturer_text, --生产厂商文本
|
||||
T4.lot_number, --产品批号
|
||||
T4.quantity AS total_quantity, --当前库存数量
|
||||
T1.item_quantity, --数量(报损数量)
|
||||
T11.amount AS price, --采购单价(大单位)
|
||||
T1.total_price, --总价(报损金额)
|
||||
T1.reason_code, --理由类型(报损原因)
|
||||
T1.reason, --理由(报损详细)
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.supplier_id, -- 供应商id
|
||||
T9."name" AS supplier_name, -- 供应商名称
|
||||
T7.part_percent --拆零比
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN adm_device_definition T7
|
||||
ON T1.item_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item T4
|
||||
ON T1.item_id = T4.item_id
|
||||
AND T1.purpose_location_id = T4.location_id
|
||||
AND T1.lot_number = T4.lot_number
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.purpose_location_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_store_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T9
|
||||
ON T9.id = T1.supplier_id
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T4.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T4.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
<select id="getMonthlySettlementDetail" resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
|
||||
SELECT T1.id, --ID
|
||||
T1.bus_no AS supply_bus_no, --单据号
|
||||
T1.item_id, --物品编码
|
||||
T1.purpose_type_enum, --目的类型
|
||||
T1.purpose_location_id, --目的仓库
|
||||
T5."name" AS purpose_location_name, --目的仓库名称
|
||||
T6."name" AS purpose_location_store_name, --目的仓位
|
||||
T1.occurrence_time, --报损时间
|
||||
#{medicine} AS item_type, --药品类型
|
||||
T1.remake, --备注
|
||||
T2.bus_no AS item_bus_no, --项目编码
|
||||
T2."name" AS item_name, --名称
|
||||
T3.total_volume, --规格
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, -- 包装单位
|
||||
T2.min_unit_code, -- 最小单位
|
||||
T2.manufacturer_text, --生产厂商文本
|
||||
T4.lot_number, --产品批号
|
||||
T4.quantity AS total_quantity, --当前库存数量
|
||||
T1.item_quantity, --数量(报损数量)
|
||||
T11.amount AS price, --采购单价(大单位)
|
||||
T1.total_price, --总价(报损金额)
|
||||
T1.reason_code, --理由类型(报损原因)
|
||||
T1.reason, --理由(报损详细)
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.supplier_id, -- 供应商id
|
||||
T9."name" AS supplier_name, -- 供应商名称
|
||||
T2.part_percent --拆零比
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication T3
|
||||
ON T3.medication_def_id = T2.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item T4
|
||||
ON T1.item_id = T4.item_id
|
||||
AND T1.purpose_location_id = T4.location_id
|
||||
AND T1.lot_number = T4.lot_number
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.purpose_location_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_store_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T9
|
||||
ON T9.id = T1.supplier_id
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T4.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T4.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum = #{typeEnum}
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.id, --ID
|
||||
T1.bus_no AS supply_bus_no, --单据号
|
||||
T1.item_id, --物品编码
|
||||
T1.purpose_type_enum, --目的类型
|
||||
T1.purpose_location_id, --目的仓库
|
||||
T5."name" AS purpose_location_name, --目的仓库名称
|
||||
T6."name" AS purpose_location_store_name, --目的仓位
|
||||
T1.occurrence_time, --报损时间
|
||||
#{device} AS item_type, --器材类型
|
||||
T1.remake, --备注
|
||||
T7.bus_no AS item_bus_no, --项目编码
|
||||
T7."name" AS item_name, --名称
|
||||
T7."size" AS total_volume, --器材规格
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T7.unit_code, -- 包装单位
|
||||
T7.min_unit_code, -- 最小单位
|
||||
T7.manufacturer_text, --生产厂商文本
|
||||
T4.lot_number, --产品批号
|
||||
T4.quantity AS total_quantity, --当前库存数量
|
||||
T1.item_quantity, --数量(报损数量)
|
||||
T11.amount AS price, --采购单价(大单位)
|
||||
T1.total_price, --总价(报损金额)
|
||||
T1.reason_code, --理由类型(报损原因)
|
||||
T1.reason, --理由(报损详细)
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.supplier_id, -- 供应商id
|
||||
T9."name" AS supplier_name, -- 供应商名称
|
||||
T7.part_percent --拆零比
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN adm_device_definition T7
|
||||
ON T1.item_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item T4
|
||||
ON T1.item_id = T4.item_id
|
||||
AND T1.purpose_location_id = T4.location_id
|
||||
AND T1.lot_number = T4.lot_number
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.purpose_location_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_store_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T9
|
||||
ON T9.id = T1.supplier_id
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T4.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T4.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum = #{typeEnum}
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,523 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inventorymanage.mapper.ProductDetailsMapper">
|
||||
|
||||
<select id="selectProductDetailsPage"
|
||||
resultType="com.openhis.web.inventorymanage.dto.ProductDetailsPageDto">
|
||||
WITH latest_records AS (
|
||||
SELECT
|
||||
item_table,
|
||||
item_id,
|
||||
location_id,
|
||||
lot_number,
|
||||
trace_no,
|
||||
MAX(create_time) AS latest_time
|
||||
FROM
|
||||
adm_trace_no_manage
|
||||
WHERE delete_flag = '0'
|
||||
GROUP BY
|
||||
item_table,
|
||||
item_id,
|
||||
location_id,
|
||||
lot_number,
|
||||
trace_no
|
||||
)
|
||||
SELECT T6.id, --库存项目管理ID(停供用)
|
||||
T6.bus_no, --药品编码
|
||||
T6.medicine_name, --药品名称
|
||||
T6.py_str, --药品拼音
|
||||
T6.total_volume, --规格
|
||||
T6.chrgitm_lv, --医保等级
|
||||
T6.manufacturer_text, --厂家
|
||||
T6.lot_number, --批次号
|
||||
T6.category_code, --药品类型
|
||||
T6.item_type, --药品类型区分
|
||||
T6.part_percent, --拆零比
|
||||
T6.unit_code, --采购单位
|
||||
T6.quantity, --库存(小单位)
|
||||
T6.min_unit_code, --库存单位
|
||||
T6.price, --采购单价
|
||||
T6.production_date, --生产日期
|
||||
T6.expiration_date, --失效日期
|
||||
T6.remaining_days, --剩余天数
|
||||
T6.trace_no, --追溯码
|
||||
T6.status_enum, --药品状态(药品停用)
|
||||
T6.location_id,
|
||||
T6.location_name, --仓库
|
||||
T6.location_store_id,
|
||||
T6.location_store_name, --货位
|
||||
T6.form_enum, --仓库类型
|
||||
T6.supplier_id, --供应商
|
||||
T6.supply_name, --供应商名称
|
||||
T6.inventory_status_enum, --停供状态
|
||||
T6.dose_form_code, --剂型
|
||||
T6.approval_number, --批准文号/国药准字
|
||||
T6.retail_price, --零售价
|
||||
T6.tenant_id,
|
||||
T6.in_count,
|
||||
T6.out_count,
|
||||
T6.item_table,
|
||||
T6.item_id
|
||||
FROM (
|
||||
SELECT T1.id, --库存项目管理ID(停供用)
|
||||
T2.bus_no, --药品编码
|
||||
T2."name" AS medicine_name, --药品名称
|
||||
T2.py_str, --药品拼音
|
||||
T3.total_volume, --规格
|
||||
T2.chrgitm_lv, --医保等级
|
||||
T2.manufacturer_text, --厂家
|
||||
T1.lot_number, --批次号
|
||||
T2.category_code, --药品类型
|
||||
'0' AS item_type, --药品类型区分
|
||||
T2.part_percent, --拆零比
|
||||
T2.unit_code, --采购单位
|
||||
T1.quantity, --库存(小单位)
|
||||
T2.min_unit_code, --库存单位
|
||||
T1.price, --采购单价
|
||||
T1.production_date, --生产日期
|
||||
T1.expiration_date, --失效日期
|
||||
(T1.expiration_date::date - CURRENT_DATE) AS remaining_days, --剩余天数
|
||||
T1.trace_no, --追溯码
|
||||
T3.status_enum, --药品状态(药品停用)
|
||||
T1.location_id,
|
||||
T5."name" AS location_name, --仓库
|
||||
T1.location_store_id,
|
||||
T4."name" AS location_store_name, --货位
|
||||
T5.form_enum, --仓库类型
|
||||
T1.supplier_id, --供应商
|
||||
T8.name AS supply_name, --供应商名称
|
||||
T1.inventory_status_enum, --停供状态
|
||||
T3.dose_form_code, --剂型
|
||||
T2.approval_number, --批准文号/国药准字
|
||||
T10.amount AS retail_price, --零售价
|
||||
T1.tenant_id, --修复:添加逗号
|
||||
COALESCE(in_counts.in_count, 0) AS in_count,
|
||||
COALESCE(out_counts.out_count, 0) AS out_count,
|
||||
T1.item_table,
|
||||
T1.item_id
|
||||
FROM wor_inventory_item T1
|
||||
INNER JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication T3
|
||||
ON T2.id = T3.medication_def_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_location T4
|
||||
ON T1.location_store_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.location_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T8
|
||||
ON T1.supplier_id = T8.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition T9
|
||||
ON T9.instance_table = 'med_medication_definition'
|
||||
AND T9.instance_id = T2.id
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT amount
|
||||
FROM adm_charge_item_def_detail
|
||||
WHERE definition_id = T9.id
|
||||
AND condition_value = T1.lot_number
|
||||
AND condition_code = '1'--1:批号进价
|
||||
AND delete_flag = '0'
|
||||
ORDER BY create_time DESC
|
||||
LIMIT 1
|
||||
) T10 ON TRUE
|
||||
LEFT JOIN (
|
||||
SELECT ls.item_table,
|
||||
ls.item_id,
|
||||
ls.location_id,
|
||||
ls.lot_number,
|
||||
SUM(CASE WHEN T10.status_enum = '1' THEN 1 ELSE 0 END) AS in_count
|
||||
FROM latest_records ls
|
||||
LEFT JOIN adm_trace_no_manage T10
|
||||
ON T10.item_table = ls.item_table
|
||||
AND T10.item_id = ls.item_id
|
||||
AND T10.location_id = ls.location_id
|
||||
AND T10.lot_number = ls.lot_number
|
||||
AND T10.trace_no = ls.trace_no
|
||||
AND T10.create_time = ls.latest_time
|
||||
GROUP BY ls.item_table, ls.item_id, ls.location_id, ls.lot_number
|
||||
) in_counts
|
||||
ON T1.item_table = in_counts.item_table
|
||||
AND T1.item_id = in_counts.item_id
|
||||
AND T1.location_id = in_counts.location_id
|
||||
AND T1.lot_number = in_counts.lot_number
|
||||
LEFT JOIN (
|
||||
SELECT ls.item_table,
|
||||
ls.item_id,
|
||||
ls.location_id,
|
||||
ls.lot_number,
|
||||
SUM(CASE WHEN T10.status_enum = '2' THEN 1 ELSE 0 END) AS out_count
|
||||
FROM latest_records ls
|
||||
LEFT JOIN adm_trace_no_manage T10
|
||||
ON T10.item_table = ls.item_table
|
||||
AND T10.item_id = ls.item_id
|
||||
AND T10.location_id = ls.location_id
|
||||
AND T10.lot_number = ls.lot_number
|
||||
AND T10.trace_no = ls.trace_no
|
||||
AND T10.create_time = ls.latest_time
|
||||
GROUP BY ls.item_table, ls.item_id, ls.location_id, ls.lot_number
|
||||
) out_counts
|
||||
ON T1.item_table = out_counts.item_table
|
||||
AND T1.item_id = out_counts.item_id
|
||||
AND T1.location_id = out_counts.location_id
|
||||
AND T1.lot_number = out_counts.lot_number
|
||||
WHERE T1.delete_flag = '0'
|
||||
) AS T6
|
||||
${ew.customSqlSegment}
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT T7.id, --库存项目管理ID(停供用)
|
||||
T7.bus_no, --药品编码
|
||||
T7.medicine_name, --药品名称
|
||||
T7.py_str, --药品拼音
|
||||
T7.total_volume, --规格
|
||||
T7.chrgitm_lv, --医保等级
|
||||
T7.manufacturer_text, --厂家
|
||||
T7.lot_number, --批次号
|
||||
T7.category_code, --药品类型
|
||||
T7.item_type, --药品类型区分
|
||||
T7.part_percent, --拆零比
|
||||
T7.unit_code, --采购单位
|
||||
T7.quantity, --库存(小单位)
|
||||
T7.min_unit_code, --库存单位
|
||||
T7.price, --采购单价
|
||||
T7.production_date, --生产日期
|
||||
T7.expiration_date, --失效日期
|
||||
T7.remaining_days, --剩余天数
|
||||
T7.trace_no, --追溯码
|
||||
T7.status_enum, --药品状态(药品停用)
|
||||
T7.location_id,
|
||||
T7.location_name, --仓库
|
||||
T7.location_store_id,
|
||||
T7.location_store_name, --货位
|
||||
T7.form_enum, --仓库类型
|
||||
T7.supplier_id, --供应商
|
||||
T7.supply_name, --供应商名称
|
||||
T7.inventory_status_enum, --停供状态
|
||||
T7.dose_form_code, --剂型
|
||||
T7.approval_number, --批准文号/国药准字
|
||||
T7.retail_price, --零售价
|
||||
T7.tenant_id,
|
||||
T7.in_count,
|
||||
T7.out_count,
|
||||
T7.item_table,
|
||||
T7.item_id
|
||||
FROM (
|
||||
SELECT T1.id, --库存项目管理ID(停供用)
|
||||
T2.bus_no, --药品编码
|
||||
T2."name" AS medicine_name, --药品名称
|
||||
T2.py_str, --药品拼音
|
||||
T2.size AS total_volume, --规格
|
||||
T2.chrgitm_lv, --医保等级
|
||||
T2.manufacturer_text, --厂家
|
||||
T1.lot_number, --批次号
|
||||
T2.category_code, --药品类型
|
||||
'9' AS item_type, --药品类型区分
|
||||
T2.part_percent, --拆零比
|
||||
T2.unit_code, --采购单位
|
||||
T1.quantity, --库存(小单位)
|
||||
T2.min_unit_code, --库存单位
|
||||
T1.price, --采购单价
|
||||
T1.production_date, --生产日期
|
||||
T1.expiration_date, --失效日期
|
||||
(T1.expiration_date::date - CURRENT_DATE) AS remaining_days, --剩余天数
|
||||
T1.trace_no, --追溯码
|
||||
T2.status_enum, --药品状态(药品停用)
|
||||
T1.location_id,
|
||||
T5."name" AS location_name, --仓库
|
||||
T1.location_store_id,
|
||||
T4."name" AS location_store_name, --货位
|
||||
T5.form_enum, --仓库类型
|
||||
T1.supplier_id, --供应商
|
||||
T8.name AS supply_name, --供应商名称
|
||||
T1.inventory_status_enum, --停供状态
|
||||
'0' AS dose_form_code, --剂型
|
||||
T2.approval_number, --批准文号/国药准字
|
||||
T10.amount AS retail_price, --零售价
|
||||
T1.tenant_id, --修复:添加逗号
|
||||
COALESCE(in_counts.in_count, 0) AS in_count,
|
||||
COALESCE(out_counts.out_count, 0) AS out_count,
|
||||
T1.item_table,
|
||||
T1.item_id
|
||||
FROM wor_inventory_item T1
|
||||
INNER JOIN adm_device_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_location T4
|
||||
ON T1.location_store_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.location_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T8
|
||||
ON T1.supplier_id = T8.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition T9
|
||||
ON T9.instance_table = 'adm_device_definition'
|
||||
AND T9.instance_id = T2.id
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT amount
|
||||
FROM adm_charge_item_def_detail
|
||||
WHERE definition_id = T9.id
|
||||
AND condition_value = T1.lot_number
|
||||
AND condition_code = '1'--1:批号进价
|
||||
AND delete_flag = '0'
|
||||
ORDER BY create_time DESC
|
||||
LIMIT 1
|
||||
) T10 ON TRUE
|
||||
LEFT JOIN (
|
||||
SELECT ls.item_table,
|
||||
ls.item_id,
|
||||
ls.location_id,
|
||||
ls.lot_number,
|
||||
SUM(CASE WHEN T10.status_enum = '1' THEN 1 ELSE 0 END) AS in_count
|
||||
FROM latest_records ls
|
||||
LEFT JOIN adm_trace_no_manage T10
|
||||
ON T10.item_table = ls.item_table
|
||||
AND T10.item_id = ls.item_id
|
||||
AND T10.location_id = ls.location_id
|
||||
AND T10.lot_number = ls.lot_number
|
||||
AND T10.trace_no = ls.trace_no
|
||||
AND T10.create_time = ls.latest_time
|
||||
GROUP BY ls.item_table, ls.item_id, ls.location_id, ls.lot_number
|
||||
) in_counts
|
||||
ON T1.item_table = in_counts.item_table
|
||||
AND T1.item_id = in_counts.item_id
|
||||
AND T1.location_id = in_counts.location_id
|
||||
AND T1.lot_number = in_counts.lot_number
|
||||
LEFT JOIN (
|
||||
SELECT ls.item_table,
|
||||
ls.item_id,
|
||||
ls.location_id,
|
||||
ls.lot_number,
|
||||
SUM(CASE WHEN T10.status_enum = '2' THEN 1 ELSE 0 END) AS out_count
|
||||
FROM latest_records ls
|
||||
LEFT JOIN adm_trace_no_manage T10
|
||||
ON T10.item_table = ls.item_table
|
||||
AND T10.item_id = ls.item_id
|
||||
AND T10.location_id = ls.location_id
|
||||
AND T10.lot_number = ls.lot_number
|
||||
AND T10.trace_no = ls.trace_no
|
||||
AND T10.create_time = ls.latest_time
|
||||
GROUP BY ls.item_table, ls.item_id, ls.location_id, ls.lot_number
|
||||
) out_counts
|
||||
ON T1.item_table = out_counts.item_table
|
||||
AND T1.item_id = out_counts.item_id
|
||||
AND T1.location_id = out_counts.location_id
|
||||
AND T1.lot_number = out_counts.lot_number
|
||||
WHERE T1.delete_flag = '0'
|
||||
) AS T7
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectProductDetailsPageTotal"
|
||||
resultType="com.openhis.web.inventorymanage.dto.ProductDetailsTotalDto">
|
||||
SELECT
|
||||
ROUND( SUM ( sale_price ), 2 ) AS total_sale_price,--总零售价
|
||||
ROUND( SUM ( purchase_price ), 2 ) AS total_purchase_price --总进价
|
||||
FROM
|
||||
(
|
||||
<if test="itemType == 99 or itemType == 9">
|
||||
SELECT
|
||||
ROUND(SUM (ROUND( T4.amount, 2 ) * ( ROUND( T1.quantity, 2 ) / ROUND( T2.part_percent, 2 ) ) ),2 ) AS sale_price,
|
||||
ROUND(SUM (ROUND( T1.price, 2 ) * ( ROUND( T1.quantity, 2 ) / ROUND( T2.part_percent, 2 ) ) ),2 ) AS purchase_price
|
||||
FROM
|
||||
wor_inventory_item T1
|
||||
INNER JOIN adm_device_definition T2 ON T1.item_id = T2.ID
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition T3 ON T3.instance_table = 'adm_device_definition'
|
||||
AND T3.instance_id = T1.item_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN LATERAL ( SELECT amount FROM adm_charge_item_def_detail WHERE definition_id = T3.ID AND condition_value = T1.lot_number AND condition_code = '1' AND delete_flag = '0' ORDER BY create_time DESC LIMIT 1 ) T4 ON TRUE
|
||||
LEFT JOIN adm_supplier T5 ON T1.supplier_id = T5.ID
|
||||
AND T5.delete_flag = '0'
|
||||
<if test="sqlWhere != '' and sqlWhere != null">
|
||||
<where>
|
||||
${sqlWhere}
|
||||
</where>
|
||||
</if>
|
||||
</if>
|
||||
<if test="itemType == 99 ">
|
||||
UNION ALL
|
||||
</if>
|
||||
<if test="itemType == 99 or itemType == 0">
|
||||
SELECT
|
||||
ROUND(SUM (ROUND( T4.amount, 2 ) * ( ROUND( T1.quantity, 2 ) / ROUND( T2.part_percent, 2 ) ) ),2 ) AS sale_price,
|
||||
ROUND(SUM (ROUND( T1.price, 2 ) * ( ROUND( T1.quantity, 2 ) / ROUND( T2.part_percent, 2 ) ) ),2 ) AS purchase_price
|
||||
FROM
|
||||
wor_inventory_item T1
|
||||
INNER JOIN med_medication_definition T2 ON T1.item_id = T2.ID
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition T3 ON T3.instance_table = 'med_medication_definition'
|
||||
AND T3.instance_id = T1.item_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN LATERAL ( SELECT amount FROM adm_charge_item_def_detail WHERE definition_id = T3.ID AND condition_value = T1.lot_number AND condition_code = '1' AND delete_flag = '0' ORDER BY create_time DESC LIMIT 1 ) T4 ON TRUE
|
||||
LEFT JOIN adm_supplier T5 ON T1.supplier_id = T5.ID
|
||||
AND T5.delete_flag = '0'
|
||||
<if test="sqlWhere != '' and sqlWhere != null">
|
||||
<where>
|
||||
${sqlWhere}
|
||||
</where>
|
||||
</if>
|
||||
</if>
|
||||
)
|
||||
</select>
|
||||
<select id="selectExpirationWarning"
|
||||
resultType="com.openhis.web.inventorymanage.dto.ProductDetailsPageDto">
|
||||
select T6.category_code, --药品类型
|
||||
T6.item_type, --药品类型区分
|
||||
T6.bus_no, --药品编码
|
||||
T6.medicine_name, --药品名称
|
||||
T6.py_str, --药品拼音
|
||||
T6.total_volume, --规格
|
||||
T6.manufacturer_text, --厂家
|
||||
T6.lot_number, --批次号
|
||||
T6.production_date, --生产日期
|
||||
T6.expiration_date, --失效日期
|
||||
T6.remaining_days, --剩余天数
|
||||
T6.remaining_month, --剩余月数
|
||||
T6.quantity, --库存(小单位)
|
||||
T6.specification_quantity,--规格库存(小单位)
|
||||
T6.item_min_quantity, --最小库存警戒数量
|
||||
T6.item_max_quantity, --最大库存警戒数量
|
||||
T6.min_unit_code, --库存单位
|
||||
T6.status_enum, --药品状态(药品停用)
|
||||
T6.inventory_status_enum, --停供状态
|
||||
T6.tenant_id
|
||||
from (select T2.category_code, --药品类型
|
||||
'0' as item_type, --药品类型区分
|
||||
T2.bus_no, --药品编码
|
||||
T2."name" as medicine_name, --药品名称
|
||||
T2.py_str, --药品拼音
|
||||
T3.total_volume, --规格
|
||||
T2.manufacturer_text, --厂家
|
||||
T1.lot_number, --批次号
|
||||
T1.production_date, --生产日期
|
||||
T1.expiration_date, --失效日期
|
||||
(T1.expiration_date::date - CURRENT_DATE) as remaining_days, --剩余天数
|
||||
((EXTRACT(YEAR FROM T1.expiration_date) - EXTRACT(YEAR FROM CURRENT_DATE)) * 12
|
||||
+ (EXTRACT(MONTH FROM T1.expiration_date) -
|
||||
EXTRACT(MONTH FROM CURRENT_DATE))) as remaining_month, --剩余月数
|
||||
T1.quantity, --库存(小单位)
|
||||
COALESCE(CAST(T8.specification_quantity AS DECIMAL(18, 6)), 0.00) AS specification_quantity,--规格库存(小单位)
|
||||
T2.item_min_quantity * T2.part_percent AS item_min_quantity, --最小库存警戒数量
|
||||
T2.item_max_quantity * T2.part_percent AS item_max_quantity, --最大库存警戒数量
|
||||
T2.min_unit_code, --库存单位
|
||||
T3.status_enum, --药品状态(药品停用)
|
||||
T1.inventory_status_enum, --停供状态
|
||||
T1.tenant_id
|
||||
from wor_inventory_item T1
|
||||
inner join med_medication_definition T2
|
||||
on T1.item_id = T2.id
|
||||
and T2.delete_flag = '0'
|
||||
left join med_medication T3
|
||||
on T2.id = T3.medication_def_id
|
||||
and T3.delete_flag = '0'
|
||||
left join adm_location T4
|
||||
on T1.location_store_id = T4.id
|
||||
and T4.delete_flag = '0'
|
||||
left join adm_location T5
|
||||
on T1.location_id = T5.id
|
||||
and T5.delete_flag = '0'
|
||||
LEFT JOIN (SELECT i1.item_table,
|
||||
i1.item_id,
|
||||
COALESCE(CAST(SUM(i1.quantity) AS DECIMAL(18, 6)), 0.00) AS specification_quantity
|
||||
FROM wor_inventory_item i1
|
||||
LEFT JOIN med_medication_definition i2 ON i1.item_id = i2.ID
|
||||
AND i2.delete_flag = '0'
|
||||
WHERE i1.item_table = 'med_medication_definition'
|
||||
AND i1.delete_flag = '0'
|
||||
GROUP BY i1.item_table,
|
||||
i1.item_id) T8
|
||||
ON T8.item_table = 'med_medication_definition'
|
||||
AND T8.item_id = T2.ID
|
||||
where T1.delete_flag = '0'
|
||||
<if test="flg != null">
|
||||
and (T8.specification_quantity <![CDATA[ <= ]]> T2.item_min_quantity * T2.part_percent
|
||||
or T8.specification_quantity <![CDATA[ >= ]]> T2.item_max_quantity * T2.part_percent)
|
||||
</if>
|
||||
order by T2.bus_no ASC, --药品编码
|
||||
T2."name" ASC --药品名称
|
||||
) as T6
|
||||
${ew.customSqlSegment}
|
||||
union all
|
||||
select T7.category_code, --药品类型
|
||||
T7.item_type, --药品类型区分
|
||||
T7.bus_no, --药品编码
|
||||
T7.medicine_name, --药品名称
|
||||
T7.py_str, --药品拼音
|
||||
T7.total_volume, --规格
|
||||
T7.manufacturer_text, --厂家
|
||||
T7.lot_number, --批次号
|
||||
T7.production_date, --生产日期
|
||||
T7.expiration_date, --失效日期
|
||||
T7.remaining_days, --剩余天数
|
||||
T7.remaining_month, --剩余月数
|
||||
T7.quantity, --库存(小单位)
|
||||
T7.specification_quantity,--规格库存(小单位)
|
||||
T7.item_min_quantity, --最小库存警戒数量
|
||||
T7.item_max_quantity, --最大库存警戒数量
|
||||
T7.min_unit_code, --库存单位
|
||||
T7.status_enum, --药品状态(药品停用)
|
||||
T7.inventory_status_enum, --停供状态
|
||||
T7.tenant_id
|
||||
from (select T2.category_code, --药品类型
|
||||
'9' as item_type, --药品类型区分
|
||||
T2.bus_no, --药品编码
|
||||
T2."name" as medicine_name, --药品名称
|
||||
T2.py_str, --药品拼音
|
||||
T2.size as total_volume, --规格
|
||||
T2.manufacturer_text, --厂家
|
||||
T1.lot_number, --批次号
|
||||
T1.production_date, --生产日期
|
||||
T1.expiration_date, --失效日期
|
||||
(T1.expiration_date::date - CURRENT_DATE) as remaining_days, --剩余天数
|
||||
((EXTRACT(YEAR FROM T1.expiration_date) - EXTRACT(YEAR FROM CURRENT_DATE)) * 12
|
||||
+ (EXTRACT(MONTH FROM T1.expiration_date) -
|
||||
EXTRACT(MONTH FROM CURRENT_DATE))) as remaining_month, --剩余月数
|
||||
T1.quantity, --库存(小单位)
|
||||
COALESCE(CAST(T8.specification_quantity AS DECIMAL(18, 6)), 0.00) AS specification_quantity,--规格库存(小单位)
|
||||
T2.item_min_quantity * T2.part_percent AS item_min_quantity, --最小库存警戒数量
|
||||
T2.item_max_quantity * T2.part_percent AS item_max_quantity, --最大库存警戒数量
|
||||
T2.min_unit_code, --库存单位
|
||||
T2.status_enum, --药品状态(药品停用)
|
||||
T1.inventory_status_enum, --停供状态
|
||||
T1.tenant_id
|
||||
from wor_inventory_item T1
|
||||
inner join adm_device_definition T2
|
||||
on T1.item_id = T2.id
|
||||
and T2.delete_flag = '0'
|
||||
left join adm_location T4
|
||||
on T1.location_store_id = T4.id
|
||||
and T4.delete_flag = '0'
|
||||
left join adm_location T5
|
||||
on T1.location_id = T5.id
|
||||
and T5.delete_flag = '0'
|
||||
LEFT JOIN (SELECT i1.item_table,
|
||||
i1.item_id,
|
||||
COALESCE(CAST(SUM(i1.quantity) AS DECIMAL(18, 6)), 0.00) AS specification_quantity
|
||||
FROM wor_inventory_item i1
|
||||
LEFT JOIN adm_device_definition i2 ON i1.item_id = i2.ID
|
||||
AND i2.delete_flag = '0'
|
||||
WHERE i1.item_table = 'adm_device_definition'
|
||||
AND i1.delete_flag = '0'
|
||||
GROUP BY i1.item_table,
|
||||
i1.item_id) T8
|
||||
ON T8.item_table = 'adm_device_definition'
|
||||
AND T8.item_id = T2.ID
|
||||
where T1.delete_flag = '0'
|
||||
<if test="flg != null">
|
||||
and (T8.specification_quantity <![CDATA[ <= ]]> T2.item_min_quantity * T2.part_percent
|
||||
or T8.specification_quantity <![CDATA[ >= ]]> T2.item_max_quantity * T2.part_percent)
|
||||
</if>
|
||||
order by T2.bus_no ASC, --药品编码
|
||||
T2."name" ASC --药品名称
|
||||
) as T7
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,522 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inventorymanage.mapper.ProductStocktakingMapper">
|
||||
|
||||
<select id="selectStocktakingReceiptPage"
|
||||
resultType="com.openhis.web.inventorymanage.dto.ReceiptPageDto">
|
||||
SELECT T4.tenant_id,
|
||||
T4.supply_bus_no, --单据号
|
||||
T4.type_enum, --类型
|
||||
T4.status_enum, --状态
|
||||
T4.purpose_type_enum, --目的类型
|
||||
T4.purpose_location_id, --目的仓库
|
||||
T4.purpose_location_store_id, --目的仓位
|
||||
T4.breakeven_price, --盈亏金额
|
||||
T4.applicant_id, --申请人
|
||||
T4.approver_id, --审批人
|
||||
T4.create_time, -- 制单时间
|
||||
T4.approval_time --审批时间
|
||||
FROM (SELECT T1.tenant_id,
|
||||
T1.bus_no AS supply_bus_no,
|
||||
T1.type_enum,
|
||||
T1.status_enum,
|
||||
T1.purpose_type_enum,
|
||||
T1.purpose_location_id,
|
||||
T1.purpose_location_store_id,
|
||||
T2.breakeven_price,
|
||||
T1.applicant_id,
|
||||
T1.approver_id,
|
||||
MIN(T1.create_time) AS create_time,
|
||||
T1.approval_time
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN (SELECT T3.bus_no,
|
||||
SUM(T3.total_price) AS breakeven_price
|
||||
FROM wor_supply_request AS T3
|
||||
WHERE T3.delete_flag = '0'
|
||||
GROUP BY T3.bus_no) AS T2
|
||||
ON T1.bus_no = T2.bus_no
|
||||
WHERE T1.type_enum IN (#{productStocktaking}, #{BatchStocktaking})
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.tenant_id,
|
||||
T1.bus_no,
|
||||
T1.type_enum,
|
||||
T1.status_enum,
|
||||
T1.item_table,
|
||||
T1.purpose_type_enum,
|
||||
T1.purpose_location_id,
|
||||
T1.purpose_location_store_id,
|
||||
T2.breakeven_price,
|
||||
T1.applicant_id,
|
||||
T1.approver_id,
|
||||
T1.approval_time
|
||||
ORDER BY T1.bus_no desc
|
||||
) AS T4
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectDetail" resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
|
||||
SELECT T1.id, --ID
|
||||
T1.bus_no, --单据号
|
||||
T1.trace_no, --追溯码
|
||||
T1.item_id, --物品编码
|
||||
T1.purpose_type_enum, --目的类型
|
||||
T1.purpose_location_id, --目的仓库
|
||||
T7."name" AS purpose_location_name, -- 目的仓库
|
||||
T1.purpose_location_store_id, --目的仓位
|
||||
T1.occurrence_time, --期望时间(盘点日期)
|
||||
#{medicine} AS item_type, --药品类型
|
||||
T1.remake, --备注
|
||||
T2.bus_no AS item_bus_no, --项目编码
|
||||
T2."name" AS item_name, --名称
|
||||
T3.total_volume, --规格
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, --包装单位(大单位)
|
||||
T2.min_unit_code, --最小单位(小单位)
|
||||
T2.manufacturer_text, --生产厂商文本
|
||||
T4.lot_number, --产品批号
|
||||
T1.total_quantity, --实盘数量(常规单位)(小单位)
|
||||
T11.amount AS price, --采购单价(大单位)
|
||||
T1.item_quantity, --数量(盈亏数量)(小单位)
|
||||
T1.total_price, --总价(盈亏金额)
|
||||
T1.reason_code, --理由类型(盈亏原因)
|
||||
T1.reason, --理由(盈亏详细)
|
||||
T2.yb_no, --医保编码
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.supplier_id, -- 供应商id
|
||||
T8."name" AS supplier_name, -- 供应商名称
|
||||
T2.part_percent --拆零比
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN med_medication_definition AS T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T3
|
||||
ON T2.id = T3.medication_def_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item AS T4
|
||||
ON T1.item_id = T4.item_id
|
||||
AND T1.purpose_location_id = T4.location_id
|
||||
AND T1.lot_number = T4.lot_number
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_id = T7.id
|
||||
LEFT JOIN adm_supplier T8
|
||||
ON T8.id = T1.supplier_id
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T4.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T4.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.delete_flag = '0'
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
UNION
|
||||
SELECT T1.id,
|
||||
T1.bus_no,
|
||||
T1.trace_no,
|
||||
T1.item_id,
|
||||
T1.purpose_type_enum,
|
||||
T1.purpose_location_id,
|
||||
T7."name" AS purpose_location_name,
|
||||
T1.purpose_location_store_id,
|
||||
T1.occurrence_time,
|
||||
#{device} AS item_type,
|
||||
T1.remake,
|
||||
T5.bus_no AS item_bus_no,
|
||||
T5."name" AS item_name,
|
||||
T5."size" AS total_volume,
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T5.unit_code,
|
||||
T5.min_unit_code AS min_unit_code,
|
||||
T5.manufacturer_text,
|
||||
T4.lot_number,
|
||||
T1.total_quantity,
|
||||
T11.amount AS price, --采购单价(大单位)
|
||||
T1.item_quantity,
|
||||
T1.total_price,
|
||||
T1.reason_code,
|
||||
T1.reason,
|
||||
T5.yb_no,
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.supplier_id, -- 供应商id
|
||||
T8."name" AS supplier_name, -- 供应商名称
|
||||
T5.part_percent
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN adm_device_definition AS T5
|
||||
ON T1.item_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item AS T4
|
||||
ON T1.item_id = T4.item_id
|
||||
AND T1.purpose_location_id = T4.location_id
|
||||
AND T1.lot_number = T4.lot_number
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_id = T7.id
|
||||
LEFT JOIN adm_supplier T8
|
||||
ON T8.id = T1.supplier_id
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T4.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T4.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.delete_flag = '0'
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
</select>
|
||||
<select id="selectStocktakingReceiptDetail"
|
||||
resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
|
||||
SELECT T6.tenant_id,
|
||||
T6.id AS item_Id, --Id
|
||||
T6.bus_no AS item_bus_no, --编码
|
||||
T6.item_type, --药品类型
|
||||
T6.medication_type, -- 药品类型
|
||||
T6.item_name, --名称
|
||||
T6.total_volume, --规格
|
||||
T6.lot_number, --产品批号
|
||||
T6.yb_no, --医保编码
|
||||
T6.measurement_unit_code, -- 计量单位
|
||||
T6.unit_code, --药品单位(包装单位)(大单位)
|
||||
T6.min_unit_code, --最小单位(小单位)
|
||||
T6.part_percent, --拆零比
|
||||
T6.stocktaking_unit_code, --常规单位(小单位)
|
||||
T6.quantity AS total_quantity, --当前库存数量(常规单位)(小单位)
|
||||
T6.price, --采购单价(大单位)
|
||||
T6.manufacturer_text, --生产厂商文本
|
||||
T6.location_id AS purpose_location_id, --仓库
|
||||
T6.location_store_id AS purpose_location_store_id, --库位
|
||||
T6.supplier_id, -- 供应商id
|
||||
T6.supplier_name, -- 供应商名称
|
||||
T6.start_time, -- 生产日期
|
||||
T6.end_time, -- 有效期
|
||||
T6.form_enum AS purpose_type_enum --仓库类型
|
||||
FROM (SELECT T1.tenant_id,
|
||||
T2.id,
|
||||
T2.bus_no,
|
||||
#{medicine} AS medication_type,
|
||||
#{medicine} AS item_type,
|
||||
T2."name" AS item_name,
|
||||
T3.total_volume,
|
||||
T1.lot_number,
|
||||
T2.yb_no,
|
||||
T1.unit_code AS measurement_unit_code,
|
||||
T2.unit_code,
|
||||
T2.min_unit_code,
|
||||
T2.part_percent,
|
||||
T1.unit_code AS stocktaking_unit_code,
|
||||
T1.quantity,
|
||||
T11.amount AS price,
|
||||
T2.manufacturer_text,
|
||||
T1.location_id,
|
||||
T1.location_store_id,
|
||||
T1.supplier_id, -- 供应商id
|
||||
T7."name" AS supplier_name, -- 供应商名称
|
||||
T1.production_date AS start_time,
|
||||
T1.expiration_date AS end_time,
|
||||
T5.form_enum
|
||||
FROM wor_inventory_item T1
|
||||
LEFT JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication T3
|
||||
ON T2.id = T3.medication_def_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T5
|
||||
ON T5.id = T1.location_id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T7
|
||||
ON T7.id = T1.supplier_id
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T1.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T1.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.inventory_status_enum = #{inventoryStatusEnum}
|
||||
AND T1.location_id = #{sourceLocationId}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
UNION
|
||||
SELECT T4.tenant_id,
|
||||
T4.id,
|
||||
T4.bus_no,
|
||||
#{device} AS item_type,
|
||||
#{device} AS medication_type,
|
||||
T4."name" AS item_name,
|
||||
T4."size" AS total_volume,
|
||||
T1.lot_number,
|
||||
T4.yb_no,
|
||||
T1.unit_code AS measurement_unit_code,
|
||||
T4.unit_code,
|
||||
T4.min_unit_code,
|
||||
T4.part_percent,
|
||||
T1.unit_code AS stocktaking_unit_code,
|
||||
T1.quantity,
|
||||
T11.amount AS price,
|
||||
T4.manufacturer_text,
|
||||
T1.location_id,
|
||||
T1.location_store_id,
|
||||
T1.supplier_id, -- 供应商id
|
||||
T7."name" AS supplier_name, -- 供应商名称
|
||||
T1.production_date AS start_time,
|
||||
T1.expiration_date AS end_time,
|
||||
T5.form_enum
|
||||
FROM wor_inventory_item T1
|
||||
LEFT JOIN adm_device_definition T4
|
||||
ON T1.item_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T5.id = T1.location_id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T7
|
||||
ON T7.id = T1.supplier_id
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T1.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T1.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.inventory_status_enum = #{inventoryStatusEnum}
|
||||
AND T1.location_id = #{sourceLocationId}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
) AS T6
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectAutoStocktakingBatch"
|
||||
resultType="com.openhis.web.inventorymanage.dto.ProductStocktakingDto">
|
||||
SELECT T1.id,
|
||||
T1.item_table, --项目
|
||||
T2.id AS item_id, --项目id
|
||||
T1.unit_code AS unit_code,--物品计量单位
|
||||
0 AS item_quantity,--盈亏数量
|
||||
T1.quantity AS total_quantity,--合计数量
|
||||
T11.amount / T2.part_percent AS price,--单价
|
||||
0 AS total_price, -- 盈亏金额
|
||||
T5.form_enum AS purpose_type_enum,--目的仓库类型
|
||||
T1.location_id AS purpose_location_id,--目的仓库
|
||||
T1.location_store_id AS purpose_location_store_id,--目的仓位
|
||||
T1.supplier_id,--供应商
|
||||
T1.production_date AS start_time,--开始时间
|
||||
T1.expiration_date AS end_time,--结束时间
|
||||
T1.lot_number--产品批号
|
||||
FROM wor_inventory_item T1
|
||||
LEFT JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication T3
|
||||
ON T2.id = T3.medication_def_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T5
|
||||
ON T5.id = T1.location_id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T7
|
||||
ON T7.id = T1.supplier_id
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T1.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T1.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.inventory_status_enum = #{inventoryStatusEnum}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
UNION
|
||||
SELECT T1.id,
|
||||
T1.item_table, --项目
|
||||
T4.id AS item_id, --项目id
|
||||
T1.unit_code AS unit_code,--物品计量单位
|
||||
0 AS item_quantity,--盈亏数量
|
||||
T1.quantity AS total_quantity,--合计数量
|
||||
T11.amount / T4.part_percent AS price,--单价
|
||||
0 AS total_price, -- 盈亏金额
|
||||
T5.form_enum AS purpose_type_enum,--目的仓库类型
|
||||
T1.location_id AS purpose_location_id,--目的仓库
|
||||
T1.location_store_id AS purpose_location_store_id,--目的仓位
|
||||
T1.supplier_id,--供应商
|
||||
T1.production_date AS start_time,--开始时间
|
||||
T1.expiration_date AS end_time,--结束时间
|
||||
T1.lot_number--产品批号
|
||||
FROM wor_inventory_item T1
|
||||
LEFT JOIN adm_device_definition T4
|
||||
ON T1.item_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T5.id = T1.location_id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T7
|
||||
ON T7.id = T1.supplier_id
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T1.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T1.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.inventory_status_enum = #{inventoryStatusEnum}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
</select>
|
||||
<select id="getMonthlySettlementDetail" resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
|
||||
SELECT T1.id, --ID
|
||||
T1.bus_no, --单据号
|
||||
T1.trace_no, --追溯码
|
||||
T1.item_id, --物品编码
|
||||
T1.purpose_type_enum, --目的类型
|
||||
T1.purpose_location_id, --目的仓库
|
||||
T7."name" AS purpose_location_name, -- 目的仓库
|
||||
T1.purpose_location_store_id, --目的仓位
|
||||
T1.occurrence_time, --期望时间(盘点日期)
|
||||
#{medicine} AS item_type, --药品类型
|
||||
T1.remake, --备注
|
||||
T2.bus_no AS item_bus_no, --项目编码
|
||||
T2."name" AS item_name, --名称
|
||||
T3.total_volume, --规格
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, --包装单位(大单位)
|
||||
T2.min_unit_code, --最小单位(小单位)
|
||||
T2.manufacturer_text, --生产厂商文本
|
||||
T4.lot_number, --产品批号
|
||||
T1.total_quantity, --实盘数量(常规单位)(小单位)
|
||||
T11.amount AS price, --采购单价(大单位)
|
||||
T1.item_quantity, --数量(盈亏数量)(小单位)
|
||||
T1.total_price, --总价(盈亏金额)
|
||||
T1.reason_code, --理由类型(盈亏原因)
|
||||
T1.reason, --理由(盈亏详细)
|
||||
T2.yb_no, --医保编码
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.supplier_id, -- 供应商id
|
||||
T8."name" AS supplier_name, -- 供应商名称
|
||||
T2.part_percent --拆零比
|
||||
FROM
|
||||
<if test="endTime == null">
|
||||
wor_aut_supply_request AS T1
|
||||
</if>
|
||||
<if test="endTime != null">
|
||||
wor_supply_request AS T1
|
||||
</if>
|
||||
LEFT JOIN med_medication_definition AS T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T3
|
||||
ON T2.id = T3.medication_def_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item AS T4
|
||||
ON T1.item_id = T4.item_id
|
||||
AND T1.purpose_location_id = T4.location_id
|
||||
AND T1.lot_number = T4.lot_number
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_id = T7.id
|
||||
LEFT JOIN adm_supplier T8
|
||||
ON T8.id = T1.supplier_id
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T4.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T4.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
<if test="endTime == null">
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') = #{startTime}
|
||||
</if>
|
||||
<if test="endTime != null">
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
</if>
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.id,
|
||||
T1.bus_no,
|
||||
T1.trace_no,
|
||||
T1.item_id,
|
||||
T1.purpose_type_enum,
|
||||
T1.purpose_location_id,
|
||||
T7."name" AS purpose_location_name,
|
||||
T1.purpose_location_store_id,
|
||||
T1.occurrence_time,
|
||||
#{device} AS item_type,
|
||||
T1.remake,
|
||||
T5.bus_no AS item_bus_no,
|
||||
T5."name" AS item_name,
|
||||
T5."size" AS total_volume,
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T5.unit_code,
|
||||
T5.min_unit_code AS min_unit_code,
|
||||
T5.manufacturer_text,
|
||||
T4.lot_number,
|
||||
T1.total_quantity,
|
||||
T11.amount AS price, --采购单价(大单位)
|
||||
T1.item_quantity,
|
||||
T1.total_price,
|
||||
T1.reason_code,
|
||||
T1.reason,
|
||||
T5.yb_no,
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.supplier_id, -- 供应商id
|
||||
T8."name" AS supplier_name, -- 供应商名称
|
||||
T5.part_percent
|
||||
FROM
|
||||
<if test="endTime == null">
|
||||
wor_aut_supply_request AS T1
|
||||
</if>
|
||||
<if test="endTime != null">
|
||||
wor_supply_request AS T1
|
||||
</if>
|
||||
LEFT JOIN adm_device_definition AS T5
|
||||
ON T1.item_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item AS T4
|
||||
ON T1.item_id = T4.item_id
|
||||
AND T1.purpose_location_id = T4.location_id
|
||||
AND T1.lot_number = T4.lot_number
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_id = T7.id
|
||||
LEFT JOIN adm_supplier T8
|
||||
ON T8.id = T1.supplier_id
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T4.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T4.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
<if test="endTime == null">
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') = #{startTime}
|
||||
</if>
|
||||
<if test="endTime != null">
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
</if>
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,484 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inventorymanage.mapper.ProductTransferMapper">
|
||||
|
||||
<select id="selectProductTransferPage"
|
||||
resultType="com.openhis.web.inventorymanage.dto.ProductTransferPageDto">
|
||||
SELECT T2.supply_bus_no, -- 商品调拨单据号
|
||||
T2.item_table, -- 项目(药品类型)
|
||||
T2.status_enum, -- 单据状态
|
||||
T2.type_enum, -- 单据类型
|
||||
T2.source_location_id,
|
||||
T2.source_location_name, -- 源仓库名称
|
||||
T2.purpose_location_id,
|
||||
T2.purpose_location_name, -- 目的仓库名称
|
||||
T2.approver_id, -- 审批人ID
|
||||
T2.approval_time, -- 审批时间
|
||||
T2.applicant_id, -- 申请人ID
|
||||
T2.create_time, -- 制单时间
|
||||
T2.tenant_id -- 租户ID
|
||||
FROM (SELECT T1.bus_no AS supply_bus_no,
|
||||
T1.status_enum,
|
||||
T1.type_enum,
|
||||
T1.approver_id,
|
||||
T1.approval_time,
|
||||
T1.applicant_id,
|
||||
MIN(T1.create_time) AS create_time,
|
||||
T1.item_table,
|
||||
T1.source_location_id,
|
||||
T2."name" AS source_location_name, -- 源仓库
|
||||
T1.purpose_location_id,
|
||||
T3."name" AS purpose_location_name, -- 目的仓库
|
||||
T1.tenant_id -- 租户ID
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN adm_location T2
|
||||
ON T1.source_location_id = T2.id
|
||||
LEFT JOIN adm_location T3
|
||||
ON T1.purpose_location_id = T3.id
|
||||
WHERE T1.type_enum IN (#{productTransfer}, #{productBatchTransfer})
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.bus_no,
|
||||
T1.status_enum,
|
||||
T1.type_enum,
|
||||
T1.approver_id,
|
||||
T1.approval_time,
|
||||
T1.applicant_id,
|
||||
T1.item_table,
|
||||
T1.source_location_id,
|
||||
T2."name",
|
||||
T1.purpose_location_id,
|
||||
T3."name",
|
||||
T1.tenant_id
|
||||
ORDER BY T1.bus_no desc
|
||||
) AS T2
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectBatchTransferDetail" resultType="com.openhis.web.inventorymanage.dto.ProductTransferDetailDto">
|
||||
SELECT A.tenant_id,
|
||||
A.medication_type, -- 药品类型
|
||||
A.item_type, -- 药品类型
|
||||
A.name, -- 项目
|
||||
A.total_volume, -- 规格
|
||||
A.manufacturer, -- 生产厂家
|
||||
A.measurement_unit_code, -- 计量单位
|
||||
A.unit_code, -- 包装单位
|
||||
A.min_unit_code, -- 最小单位
|
||||
A.total_source_quantity, -- 源仓库库存数量
|
||||
A.total_purpose_quantity, -- 目的仓库库存数量
|
||||
A.item_quantity, -- 调拨数量
|
||||
A.price, -- 调拨单价
|
||||
A.lot_number, -- 产品批号
|
||||
A.start_time, -- 生产日期
|
||||
A.end_time, -- 有效期
|
||||
A.trace_no, -- 药品追溯码
|
||||
A.part_percent, -- 拆零比
|
||||
A.item_id, -- 项目id
|
||||
A.supplier_id, -- 供应商id
|
||||
A.supplier_name, -- 供应商名称
|
||||
A.packaging_levels -- 追溯码包装层级
|
||||
FROM (SELECT T1.tenant_id,
|
||||
#{medicine} AS medication_type,
|
||||
#{medicine} AS item_type,
|
||||
T1.name,
|
||||
T3.total_volume,
|
||||
T2.manufacturer_text AS manufacturer,
|
||||
T1.unit_code AS measurement_unit_code,
|
||||
T2.unit_code,
|
||||
T2.min_unit_code,
|
||||
T1.quantity AS total_source_quantity,
|
||||
(SELECT T7.quantity
|
||||
FROM wor_inventory_item T7
|
||||
WHERE T7.item_id = T1.item_id
|
||||
AND T7.lot_number = T1.lot_number
|
||||
AND T7.location_id = #{purposeLocationId}
|
||||
AND T7.inventory_status_enum = #{inventoryStatusEnum}
|
||||
AND T7.delete_flag = '0'
|
||||
) AS total_purpose_quantity,
|
||||
T1.quantity AS item_quantity,
|
||||
T8.amount AS price,
|
||||
T1.lot_number,
|
||||
T1.production_date AS start_time,
|
||||
T1.expiration_date AS end_time,
|
||||
T1.trace_no,
|
||||
T2.part_percent,
|
||||
T1.item_id,
|
||||
T1.supplier_id, -- 供应商id
|
||||
T4."name" AS supplier_name, -- 供应商名称
|
||||
T1.packaging_levels
|
||||
FROM wor_inventory_item T1
|
||||
LEFT JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication T3
|
||||
ON T2.id = T3.medication_def_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T4
|
||||
ON T4.id = T1.supplier_id
|
||||
LEFT JOIN adm_charge_item_definition AS T7
|
||||
ON T7.instance_id = T1.item_id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T8
|
||||
ON T8.definition_id = T7.id
|
||||
AND T8.delete_flag = '0'
|
||||
AND T8.condition_value = T1.lot_number
|
||||
AND T8.condition_code = '1'--1:批号进价
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.inventory_status_enum = #{inventoryStatusEnum}
|
||||
AND T1.location_id = #{sourceLocationId}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
UNION ALL
|
||||
SELECT T1.tenant_id,
|
||||
#{device} AS medication_type,
|
||||
#{device} AS item_type,
|
||||
T1.name,
|
||||
T5.size AS total_volume,
|
||||
T5.manufacturer_text AS manufacturer,
|
||||
T1.unit_code AS measurement_unit_code,
|
||||
T5.unit_code,
|
||||
T5.min_unit_code,
|
||||
T1.quantity AS total_source_quantity,
|
||||
(SELECT T8.quantity
|
||||
FROM wor_inventory_item T8
|
||||
WHERE T8.item_id = T1.item_id
|
||||
AND T8.lot_number = T1.lot_number
|
||||
AND T8.location_id = #{purposeLocationId}
|
||||
AND T8.inventory_status_enum = #{inventoryStatusEnum}
|
||||
AND T8.delete_flag = '0'
|
||||
) AS total_purpose_quantity,
|
||||
T1.quantity AS item_quantity,
|
||||
T8.amount AS price,
|
||||
T1.lot_number,
|
||||
T1.production_date AS start_time,
|
||||
T1.expiration_date AS end_time,
|
||||
T1.trace_no,
|
||||
T5.part_percent,
|
||||
T1.item_id,
|
||||
T1.supplier_id, -- 供应商id
|
||||
T4."name" AS supplier_name, -- 供应商名称
|
||||
T1.packaging_levels
|
||||
FROM wor_inventory_item T1
|
||||
LEFT JOIN adm_device_definition T5
|
||||
ON T1.item_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T4
|
||||
ON T4.id = T1.supplier_id
|
||||
LEFT JOIN adm_charge_item_definition AS T7
|
||||
ON T7.instance_id = T1.item_id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T8
|
||||
ON T8.definition_id = T7.id
|
||||
AND T8.delete_flag = '0'
|
||||
AND T8.condition_value = T1.lot_number
|
||||
AND T8.condition_code = '1'--1:批号进价
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.inventory_status_enum = #{inventoryStatusEnum}
|
||||
AND T1.location_id = #{sourceLocationId}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
) AS A
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectDetail" resultType="com.openhis.web.inventorymanage.dto.ProductTransferDetailDto">
|
||||
SELECT DISTINCT T1.id,
|
||||
T1.bus_no, -- 商品调拨单据号
|
||||
T1.apply_time, -- 申请时间
|
||||
T1.source_type_enum, -- 源仓库类型
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T5."name" AS source_location_name, -- 源仓库
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T6."name" AS source_location_store_name, -- 源仓位
|
||||
T1.purpose_type_enum, -- 目的仓库类型
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T7."name" AS purpose_location_name, -- 目的仓库
|
||||
T1.purpose_location_store_id, -- 目的货位ID
|
||||
T8."name" AS purpose_location_store_name, -- 目的货位
|
||||
#{medicine} AS item_type, -- 项目类型
|
||||
T2.name, -- 药品名称
|
||||
T3.total_volume, -- 规格
|
||||
T2.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
T4."name" AS supplier_name, -- 供应商名称
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, -- 包装单位
|
||||
T2.min_unit_code, -- 最小单位
|
||||
T1.item_quantity, -- 调拨数量
|
||||
T11.amount AS price, -- 采购单价
|
||||
T1.total_price, -- 总价
|
||||
T1.lot_number, -- 产品批号
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.trace_no, -- 追溯码
|
||||
T9.packaging_levels,
|
||||
T1.item_id, -- 项目id
|
||||
T2.part_percent, -- 拆零比
|
||||
T1.remake, -- 备注
|
||||
T9.quantity AS total_source_quantity, -- 库存数量(源库存)
|
||||
T12.quantity AS total_purpose_quantity -- 库存数量(目的库存)
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN med_medication T3
|
||||
ON T3.medication_def_id = T2.id
|
||||
LEFT JOIN adm_supplier T4
|
||||
ON T4.id = T1.supplier_id
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.source_location_id = T5.id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.source_location_store_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_id = T7.id
|
||||
LEFT JOIN adm_location T8
|
||||
ON T1.purpose_location_store_id = T8.id
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.source_location_id = T9.location_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T9.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T9.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
LEFT JOIN wor_inventory_item T12
|
||||
ON T1.item_id = T12.item_id
|
||||
AND T1.purpose_location_id = T12.location_id
|
||||
AND T12.lot_number = T1.lot_number
|
||||
AND T12.delete_flag = '0'
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT DISTINCT T1.id,
|
||||
T1.bus_no, -- 商品调拨单据号
|
||||
T1.apply_time, -- 申请时间
|
||||
T1.source_type_enum, -- 源仓库类型
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T5."name" AS source_location_name_location_name, -- 源仓库
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T6."name" AS source_location_name_location_store_name, -- 源仓位
|
||||
T1.purpose_type_enum, -- 目的仓库类型
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T7."name" AS purpose_location_name, -- 目的仓库
|
||||
T1.purpose_location_store_id, -- 目的货位ID
|
||||
T8."name" AS purpose_location_store_name, -- 目的货位
|
||||
#{device} AS item_type, -- 项目类型
|
||||
T2.name, -- 药品名称
|
||||
T2."size" AS total_volume, -- 规格
|
||||
T2.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
T4."name" AS supplier_name, -- 供应商名称
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, -- 包装单位
|
||||
T2.min_unit_code, -- 最小单位
|
||||
T1.item_quantity, -- 调拨数量
|
||||
T11.amount AS price, -- 采购单价
|
||||
T1.total_price, -- 总价
|
||||
T1.lot_number, -- 产品批号
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.trace_no, -- 追溯码
|
||||
T9.packaging_levels,
|
||||
T1.item_id, -- 项目id
|
||||
T2.part_percent, -- 拆零比
|
||||
T1.remake, -- 备注
|
||||
T9.quantity AS total_source_quantity, -- 总库存数量(源库存)
|
||||
T12.quantity AS total_purpose_quantity -- 总库存数量(目的库存)
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN adm_device_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN adm_supplier T4
|
||||
ON T4.id = T1.supplier_id
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.source_location_id = T5.id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.source_location_store_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_id = T7.id
|
||||
LEFT JOIN adm_location T8
|
||||
ON T1.purpose_location_store_id = T8.id
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.source_location_id = T9.location_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T9.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T9.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
LEFT JOIN wor_inventory_item T12
|
||||
ON T1.item_id = T12.item_id
|
||||
AND T1.purpose_location_id = T12.location_id
|
||||
AND T12.lot_number = T1.lot_number
|
||||
AND T12.delete_flag = '0'
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
<select id="getMonthlySettlementDetail" resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
|
||||
SELECT DISTINCT T1.id,
|
||||
T1.bus_no, -- 商品调拨单据号
|
||||
T1.occurrence_time, -- 制单时间
|
||||
T1.source_type_enum, -- 源仓库类型
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T5."name" AS source_location_name, -- 源仓库
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T6."name" AS source_location_store_name, -- 源仓位
|
||||
T1.purpose_type_enum, -- 目的仓库类型
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T7."name" AS purpose_location_name, -- 目的仓库
|
||||
T1.purpose_location_store_id, -- 目的货位ID
|
||||
T8."name" AS purpose_location_store_name, -- 目的货位
|
||||
#{medicine} AS item_type, -- 项目类型
|
||||
T2.name, -- 药品名称
|
||||
T3.total_volume, -- 规格
|
||||
T2.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
T4."name" AS supplier_name, -- 供应商名称
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, -- 包装单位
|
||||
T2.min_unit_code, -- 最小单位
|
||||
T1.item_quantity, -- 调拨数量
|
||||
T11.amount AS price, -- 采购单价
|
||||
T1.total_price, -- 总价
|
||||
T1.lot_number, -- 产品批号
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.trace_no, -- 追溯码
|
||||
T9.packaging_levels,
|
||||
T1.item_id, -- 项目id
|
||||
T2.part_percent, -- 拆零比
|
||||
T1.remake, -- 备注
|
||||
T9.quantity AS total_source_quantity, -- 库存数量(源库存)
|
||||
T12.quantity AS total_purpose_quantity -- 库存数量(目的库存)
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN med_medication T3
|
||||
ON T3.medication_def_id = T2.id
|
||||
LEFT JOIN adm_supplier T4
|
||||
ON T4.id = T1.supplier_id
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.source_location_id = T5.id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.source_location_store_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_id = T7.id
|
||||
LEFT JOIN adm_location T8
|
||||
ON T1.purpose_location_store_id = T8.id
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.source_location_id = T9.location_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T9.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T9.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
LEFT JOIN wor_inventory_item T12
|
||||
ON T1.item_id = T12.item_id
|
||||
AND T1.purpose_location_id = T12.location_id
|
||||
AND T12.lot_number = T1.lot_number
|
||||
AND T12.delete_flag = '0'
|
||||
WHERE <if test="inOutFlg == 1">
|
||||
T1.purpose_location_id = #{locationId}
|
||||
</if>
|
||||
<if test="inOutFlg == 2">
|
||||
T1.source_location_id = #{locationId}
|
||||
</if>
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT DISTINCT T1.id,
|
||||
T1.bus_no, -- 商品调拨单据号
|
||||
T1.occurrence_time, -- 制单时间
|
||||
T1.source_type_enum, -- 源仓库类型
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T5."name" AS source_location_name_location_name, -- 源仓库
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T6."name" AS source_location_name_location_store_name, -- 源仓位
|
||||
T1.purpose_type_enum, -- 目的仓库类型
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T7."name" AS purpose_location_name, -- 目的仓库
|
||||
T1.purpose_location_store_id, -- 目的货位ID
|
||||
T8."name" AS purpose_location_store_name, -- 目的货位
|
||||
#{device} AS item_type, -- 项目类型
|
||||
T2.name, -- 药品名称
|
||||
T2."size" AS total_volume, -- 规格
|
||||
T2.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
T4."name" AS supplier_name, -- 供应商名称
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, -- 包装单位
|
||||
T2.min_unit_code, -- 最小单位
|
||||
T1.item_quantity, -- 调拨数量
|
||||
T11.amount AS price, -- 采购单价
|
||||
T1.total_price, -- 总价
|
||||
T1.lot_number, -- 产品批号
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.trace_no, -- 追溯码
|
||||
T9.packaging_levels,
|
||||
T1.item_id, -- 项目id
|
||||
T2.part_percent, -- 拆零比
|
||||
T1.remake, -- 备注
|
||||
T9.quantity AS total_source_quantity, -- 总库存数量(源库存)
|
||||
T12.quantity AS total_purpose_quantity -- 总库存数量(目的库存)
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN adm_device_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN adm_supplier T4
|
||||
ON T4.id = T1.supplier_id
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.source_location_id = T5.id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.source_location_store_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_id = T7.id
|
||||
LEFT JOIN adm_location T8
|
||||
ON T1.purpose_location_store_id = T8.id
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.source_location_id = T9.location_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T9.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T9.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
LEFT JOIN wor_inventory_item T12
|
||||
ON T1.item_id = T12.item_id
|
||||
AND T1.purpose_location_id = T12.location_id
|
||||
AND T12.lot_number = T1.lot_number
|
||||
AND T12.delete_flag = '0'
|
||||
WHERE <if test="inOutFlg == 1">
|
||||
T1.purpose_location_id = #{locationId}
|
||||
</if>
|
||||
<if test="inOutFlg == 2">
|
||||
T1.source_location_id = #{locationId}
|
||||
</if>
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,254 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inventorymanage.mapper.PurchaseInventoryMapper">
|
||||
|
||||
<select id="selectInventoryReceiptPage"
|
||||
resultType="com.openhis.web.inventorymanage.dto.ReceiptPageDto">
|
||||
SELECT T2.supply_bus_no,
|
||||
T2.status_enum,
|
||||
T2.type_enum,
|
||||
T2.supplier_id,
|
||||
T2.approver_id,
|
||||
T2.approval_time,
|
||||
T2.applicant_id,
|
||||
T2.create_time,
|
||||
T2.practitioner_id,
|
||||
T2.item_table,
|
||||
T2.purpose_type_enum,
|
||||
CASE
|
||||
WHEN EXISTS (
|
||||
SELECT 1
|
||||
FROM wor_supply_request AS T3
|
||||
WHERE T3.original_bus_no = T2.supply_bus_no
|
||||
AND T3.delete_flag = '0'
|
||||
) THEN 1
|
||||
ELSE 0
|
||||
END AS return_status, --退库状态
|
||||
T2.tenant_id
|
||||
FROM (SELECT T1.bus_no AS supply_bus_no,
|
||||
T1.status_enum,
|
||||
T1.type_enum,
|
||||
T1.supplier_id,
|
||||
T1.approver_id,
|
||||
T1.approval_time,
|
||||
T1.applicant_id,
|
||||
MIN(T1.create_time) AS create_time,
|
||||
T1.practitioner_id,
|
||||
T1.item_table,
|
||||
T1.purpose_type_enum,
|
||||
T1.tenant_id
|
||||
FROM wor_supply_request AS T1
|
||||
WHERE type_enum = #{purchaseInventory}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.bus_no,
|
||||
T1.status_enum,
|
||||
T1.type_enum,
|
||||
T1.supplier_id,
|
||||
T1.approver_id,
|
||||
T1.approval_time,
|
||||
T1.applicant_id,
|
||||
T1.practitioner_id,
|
||||
T1.item_table,
|
||||
T1.purpose_type_enum,
|
||||
T1.tenant_id
|
||||
ORDER BY T1.bus_no desc
|
||||
) AS T2
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectDetail" resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
|
||||
SELECT T1.id,
|
||||
T1.bus_no,
|
||||
T1.item_quantity,
|
||||
T1.item_table,
|
||||
T1.unit_code,
|
||||
T1.remake,
|
||||
T1.purpose_type_enum,
|
||||
T1.apply_time,
|
||||
T1.lot_number,
|
||||
T1.trace_no,
|
||||
T1.invoice_no,
|
||||
T1.start_time,
|
||||
T1.end_time,
|
||||
T1.price,
|
||||
T1.total_price,
|
||||
T2."name" AS item_name,
|
||||
T2.id AS item_id,
|
||||
T2.part_percent,
|
||||
T2.manufacturer_text AS supplier_name,
|
||||
T3.total_volume,
|
||||
T5."name" AS practitioner_name,
|
||||
T6."name" AS purpose_location_name,
|
||||
T6."id" AS purpose_location_id,
|
||||
T7."name" AS purpose_location_store_name,
|
||||
(SELECT SUM(T9.quantity)
|
||||
FROM wor_inventory_item T9
|
||||
WHERE T9.item_id = T1.item_id
|
||||
AND T9.location_id = T1.purpose_location_id
|
||||
) AS total_quantity
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN med_medication T3
|
||||
ON T3.medication_def_id = T2.id
|
||||
LEFT JOIN adm_practitioner T5
|
||||
ON T1.practitioner_id = T5.id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.purpose_location_id = T9.location_id
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.id,
|
||||
T1.bus_no,
|
||||
T1.item_quantity,
|
||||
T1.item_table,
|
||||
T1.unit_code,
|
||||
T1.remake,
|
||||
T1.purpose_type_enum,
|
||||
T1.apply_time,
|
||||
T1.lot_number,
|
||||
T1.trace_no,
|
||||
T1.invoice_no,
|
||||
T1.start_time,
|
||||
T1.end_time,
|
||||
T1.price,
|
||||
T1.total_price,
|
||||
T8."name" AS item_name,
|
||||
T8.id AS item_id,
|
||||
T8.part_percent,
|
||||
T8.manufacturer_text AS supplier_name,
|
||||
T8."size" AS total_volume,
|
||||
T5."name" AS practitioner_name,
|
||||
T6."name" AS purpose_location_name,
|
||||
T6."id" AS purpose_location_id,
|
||||
T7."name" AS purpose_location_store_name,
|
||||
(SELECT SUM(T9.quantity)
|
||||
FROM wor_inventory_item T9
|
||||
WHERE T9.item_id = T1.item_id
|
||||
AND T9.location_id = T1.purpose_location_id
|
||||
) AS total_quantity
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN adm_device_definition T8
|
||||
ON T1.item_id = T8.id
|
||||
LEFT JOIN adm_practitioner T5
|
||||
ON T1.practitioner_id = T5.id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.purpose_location_id = T9.location_id
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
<select id="getMonthlySettlementDetail" resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
|
||||
SELECT T1.id,
|
||||
T1.bus_no,
|
||||
T1.item_quantity,
|
||||
T1.item_table,
|
||||
T1.unit_code,
|
||||
T1.remake,
|
||||
T1.purpose_type_enum,
|
||||
T1.occurrence_time,
|
||||
T1.lot_number,
|
||||
T1.trace_no,
|
||||
T1.invoice_no,
|
||||
T1.start_time,
|
||||
T1.end_time,
|
||||
T1.price,
|
||||
T1.total_price,
|
||||
T2."name" AS item_name,
|
||||
T2.id AS item_id,
|
||||
T2.part_percent,
|
||||
T2.manufacturer_text AS supplier_name,
|
||||
T3.total_volume,
|
||||
T5."name" AS practitioner_name,
|
||||
T6."name" AS purpose_location_name,
|
||||
T6."id" AS purpose_location_id,
|
||||
T7."name" AS purpose_location_store_name,
|
||||
(SELECT SUM(T9.quantity)
|
||||
FROM wor_inventory_item T9
|
||||
WHERE T9.item_id = T1.item_id
|
||||
AND T9.location_id = T1.purpose_location_id
|
||||
) AS total_quantity
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN med_medication T3
|
||||
ON T3.medication_def_id = T2.id
|
||||
LEFT JOIN adm_practitioner T5
|
||||
ON T1.practitioner_id = T5.id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.purpose_location_id = T9.location_id
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.id,
|
||||
T1.bus_no,
|
||||
T1.item_quantity,
|
||||
T1.item_table,
|
||||
T1.unit_code,
|
||||
T1.remake,
|
||||
T1.purpose_type_enum,
|
||||
T1.occurrence_time,
|
||||
T1.lot_number,
|
||||
T1.trace_no,
|
||||
T1.invoice_no,
|
||||
T1.start_time,
|
||||
T1.end_time,
|
||||
T1.price,
|
||||
T1.total_price,
|
||||
T8."name" AS item_name,
|
||||
T8.id AS item_id,
|
||||
T8.part_percent,
|
||||
T8.manufacturer_text AS supplier_name,
|
||||
T8."size" AS total_volume,
|
||||
T5."name" AS practitioner_name,
|
||||
T6."name" AS purpose_location_name,
|
||||
T6."id" AS purpose_location_id,
|
||||
T7."name" AS purpose_location_store_name,
|
||||
(SELECT SUM(T9.quantity)
|
||||
FROM wor_inventory_item T9
|
||||
WHERE T9.item_id = T1.item_id
|
||||
AND T9.location_id = T1.purpose_location_id
|
||||
) AS total_quantity
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN adm_device_definition T8
|
||||
ON T1.item_id = T8.id
|
||||
LEFT JOIN adm_practitioner T5
|
||||
ON T1.practitioner_id = T5.id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.purpose_location_id = T9.location_id
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,479 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inventorymanage.mapper.PurchaseReturnMapper">
|
||||
<select id="selectDetail" resultType="com.openhis.web.inventorymanage.dto.PurchaseReturnDetailDto">
|
||||
SELECT T1.bus_no,
|
||||
T1.original_bus_no,
|
||||
CASE
|
||||
WHEN T1.type_enum = #{purchaseReturn}
|
||||
THEN T1.item_quantity
|
||||
ELSE 0
|
||||
END AS item_quantity, --退库数量
|
||||
CASE
|
||||
WHEN T1.type_enum = #{purchaseReturn}
|
||||
THEN (
|
||||
SELECT COALESCE(SUM(T9.item_quantity), 0)
|
||||
FROM wor_supply_request AS T9
|
||||
WHERE T9.original_bus_no = T1.original_bus_no
|
||||
AND T9.item_id = T1.item_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
AND T9.status_enum = #{agree}
|
||||
)
|
||||
ELSE (
|
||||
SELECT COALESCE(SUM(T9.item_quantity), 0)
|
||||
FROM wor_supply_request AS T9
|
||||
WHERE T9.original_bus_no = T1.bus_no
|
||||
AND T9.item_id = T1.item_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
AND T9.status_enum = #{agree}
|
||||
)
|
||||
END AS returned_quantity, --已退数量
|
||||
CASE
|
||||
WHEN T1.type_enum = #{purchaseReturn}
|
||||
THEN T1.id
|
||||
ELSE NULL
|
||||
END AS id, --采购退货id
|
||||
CASE
|
||||
WHEN T1.type_enum = #{purchaseReturn}
|
||||
THEN NULL
|
||||
ELSE T1.id
|
||||
END AS purchase_id, --采购入库id
|
||||
T2.quantity AS quantity, --库存数量
|
||||
CASE
|
||||
WHEN T1.type_enum = #{purchaseReturn}
|
||||
THEN (
|
||||
SELECT T9.item_quantity
|
||||
FROM wor_supply_request AS T9
|
||||
WHERE T1.original_bus_no = T9.bus_no
|
||||
AND T9.item_id = T1.item_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
)
|
||||
ELSE T3.quantity
|
||||
END AS purchase_quantity, --采购数量
|
||||
T11.amount AS price, --采购单价
|
||||
CASE
|
||||
WHEN T1.type_enum = #{purchaseReturn}
|
||||
THEN (
|
||||
SELECT T9.unit_code
|
||||
FROM wor_supply_request AS T9
|
||||
WHERE T1.original_bus_no = T9.bus_no
|
||||
AND T9.item_id = T1.item_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
)
|
||||
ELSE T1.unit_code
|
||||
END AS purchase_unit_code, --采购单位
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T4.unit_code, -- 包装单位
|
||||
T4.min_unit_code, -- 最小单位
|
||||
T5."name" AS purpose_location_name, --仓库
|
||||
T6."name" AS purpose_location_store_name, --货位
|
||||
T4."name" AS item_name, --药品
|
||||
T1.lot_number, --批次号
|
||||
T1.reason, --退货原因
|
||||
T1.remake, --备注
|
||||
T1.item_id, --物品编码
|
||||
T1.purpose_location_id, --目的仓库ID
|
||||
T1.purpose_location_store_id, --目的货位ID
|
||||
T1.purpose_type_enum, -- 目的仓库类型
|
||||
T1.supplier_id, -- 供应商id
|
||||
T7."name" AS supplier_name, -- 供应商名称
|
||||
T8.total_volume, -- 规格
|
||||
T4.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
#{medicine} AS item_type,
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.invoice_no, -- 发票号
|
||||
T1.trace_no, -- 追溯码
|
||||
T2.packaging_levels, -- 追溯码包装层级
|
||||
CASE
|
||||
WHEN T1.type_enum = #{purchaseReturn}
|
||||
THEN T1.practitioner_id
|
||||
ELSE NULL
|
||||
END AS practitioner_id, --经手人
|
||||
T4.part_percent --拆零比
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN wor_inventory_item T2
|
||||
ON T1.item_id = T2.item_id
|
||||
AND T1.purpose_location_id = T2.location_id
|
||||
AND T1.lot_number = T2.lot_number
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN wor_supply_delivery T3
|
||||
ON T1.id = T3.request_id
|
||||
AND T3.delete_flag = '0'
|
||||
INNER JOIN med_medication_definition T4
|
||||
ON T1.item_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN med_medication T8
|
||||
ON T8.medication_def_id = T4.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.purpose_location_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_store_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T7
|
||||
ON T7.id = T1.supplier_id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T2.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T2.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.bus_no,
|
||||
T1.original_bus_no,
|
||||
CASE
|
||||
WHEN T1.type_enum = #{purchaseReturn}
|
||||
THEN T1.item_quantity
|
||||
ELSE NULL
|
||||
END AS item_quantity, --退库数量
|
||||
CASE
|
||||
WHEN T1.type_enum = #{purchaseReturn}
|
||||
THEN (
|
||||
SELECT COALESCE(SUM(T9.item_quantity), 0)
|
||||
FROM wor_supply_request AS T9
|
||||
WHERE T9.original_bus_no = T1.original_bus_no
|
||||
AND T9.item_id = T1.item_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
AND T9.status_enum = #{agree}
|
||||
)
|
||||
ELSE (
|
||||
SELECT COALESCE(SUM(T9.item_quantity), 0)
|
||||
FROM wor_supply_request AS T9
|
||||
WHERE T9.original_bus_no = T1.bus_no
|
||||
AND T9.item_id = T1.item_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
AND T9.status_enum = #{agree}
|
||||
)
|
||||
END AS returned_quantity, --已退数量
|
||||
CASE
|
||||
WHEN T1.type_enum = #{purchaseReturn}
|
||||
THEN T1.id
|
||||
ELSE NULL
|
||||
END AS id, --采购退货id
|
||||
CASE
|
||||
WHEN T1.type_enum = #{purchaseReturn}
|
||||
THEN NULL
|
||||
ELSE T1.id
|
||||
END AS purchase_id, --采购入库id
|
||||
T2.quantity AS quantity, --库存数量
|
||||
CASE
|
||||
WHEN T1.type_enum = #{purchaseReturn}
|
||||
THEN (
|
||||
SELECT T9.item_quantity
|
||||
FROM wor_supply_request AS T9
|
||||
WHERE T1.original_bus_no = T9.bus_no
|
||||
AND T9.item_id = T1.item_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
)
|
||||
ELSE T3.quantity
|
||||
END AS purchase_quantity, --采购数量
|
||||
T11.amount AS price, --采购单价
|
||||
CASE
|
||||
WHEN T1.type_enum = #{purchaseReturn}
|
||||
THEN (
|
||||
SELECT T9.unit_code
|
||||
FROM wor_supply_request AS T9
|
||||
WHERE T1.original_bus_no = T9.bus_no
|
||||
AND T9.item_id = T1.item_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
)
|
||||
ELSE T1.unit_code
|
||||
END AS purchase_unit_code, --采购单位
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T4.unit_code, -- 包装单位
|
||||
T4.min_unit_code, -- 最小单位
|
||||
T5."name" AS purpose_location_name, --仓库
|
||||
T6."name" AS purpose_location_store_name, --货位
|
||||
T4."name" AS item_name, --药品
|
||||
T1.lot_number, --批次号
|
||||
T1.reason, --退货原因
|
||||
T1.remake, --备注
|
||||
T1.item_id, --物品编码
|
||||
T1.purpose_location_id, --目的仓库ID
|
||||
T1.purpose_location_store_id, --目的货位ID
|
||||
T1.purpose_type_enum, -- 目的仓库类型
|
||||
T1.supplier_id, -- 供应商id
|
||||
T7."name" AS supplier_name, -- 供应商名称
|
||||
T4."size" AS total_volume, -- 规格
|
||||
T4.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
#{device} AS item_type,
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.invoice_no, -- 发票号
|
||||
T1.trace_no, -- 追溯码
|
||||
T2.packaging_levels, -- 追溯码包装层级
|
||||
CASE
|
||||
WHEN T1.type_enum = #{purchaseReturn}
|
||||
THEN T1.practitioner_id
|
||||
ELSE NULL
|
||||
END AS practitioner_id, --经手人
|
||||
T4.part_percent --拆零比
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN wor_inventory_item T2
|
||||
ON T2.item_id = T1.item_id
|
||||
AND T2.location_id = T1.purpose_location_id
|
||||
AND T2.lot_number = T1.lot_number
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN wor_supply_delivery T3
|
||||
ON T1.id = T3.request_id
|
||||
AND T3.delete_flag = '0'
|
||||
INNER JOIN adm_device_definition T4
|
||||
ON T1.item_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.purpose_location_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_store_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T7
|
||||
ON T7.id = T1.supplier_id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T2.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T2.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
<select id="selectGeneratedDetail"
|
||||
resultType="com.openhis.web.inventorymanage.dto.PurchaseReturnPageDto">
|
||||
SELECT T1.bus_no AS supply_bus_no,
|
||||
T1.status_enum,
|
||||
T1.type_enum,
|
||||
T1.supplier_id,
|
||||
T1.practitioner_id,
|
||||
T1.applicant_id,
|
||||
T1.approver_id,
|
||||
MIN(T1.create_time) AS create_time, -- 制单时间
|
||||
T1.approval_time
|
||||
FROM wor_supply_request AS T1
|
||||
WHERE T1.original_bus_no = #{busNo}
|
||||
AND T1.type_enum = #{purchaseReturn}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.bus_no,
|
||||
T1.status_enum,
|
||||
T1.type_enum,
|
||||
T1.supplier_id,
|
||||
T1.practitioner_id,
|
||||
T1.applicant_id,
|
||||
T1.approver_id,
|
||||
T1.approval_time
|
||||
ORDER BY T1.bus_no DESC
|
||||
</select>
|
||||
<select id="getMonthlySettlementDetail" resultType="com.openhis.web.inventorymanage.dto.PurchaseReturnDetailDto">
|
||||
SELECT T1.bus_no,
|
||||
T1.original_bus_no,
|
||||
T1.item_quantity AS item_quantity, --退库数量
|
||||
( SELECT COALESCE(SUM(T9.item_quantity), 0)
|
||||
FROM wor_supply_request AS T9
|
||||
WHERE T9.original_bus_no = T1.original_bus_no
|
||||
AND T9.item_id = T1.item_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
AND T9.status_enum = #{statusEnum}
|
||||
)
|
||||
AS returned_quantity, --已退数量
|
||||
T1.id , --采购退货id
|
||||
NULL AS purchase_id, --采购入库id
|
||||
T2.quantity AS quantity, --库存数量
|
||||
( SELECT T9.item_quantity
|
||||
FROM wor_supply_request AS T9
|
||||
WHERE T1.original_bus_no = T9.bus_no
|
||||
AND T9.item_id = T1.item_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
)
|
||||
AS purchase_quantity, --采购数量
|
||||
T11.amount AS price, --采购单价
|
||||
( SELECT T9.unit_code
|
||||
FROM wor_supply_request AS T9
|
||||
WHERE T1.original_bus_no = T9.bus_no
|
||||
AND T9.item_id = T1.item_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
) AS purchase_unit_code, --采购单位
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T4.unit_code, -- 包装单位
|
||||
T4.min_unit_code, -- 最小单位
|
||||
T5."name" AS purpose_location_name, --仓库
|
||||
T6."name" AS purpose_location_store_name, --货位
|
||||
T4."name" AS item_name, --药品
|
||||
T1.lot_number, --批次号
|
||||
T1.reason, --退货原因
|
||||
T1.remake, --备注
|
||||
T1.item_id, --物品编码
|
||||
T1.purpose_location_id, --目的仓库ID
|
||||
T1.purpose_location_store_id, --目的货位ID
|
||||
T1.purpose_type_enum, -- 目的仓库类型
|
||||
T1.supplier_id, -- 供应商id
|
||||
T7."name" AS supplier_name, -- 供应商名称
|
||||
T8.total_volume, -- 规格
|
||||
T4.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
#{medicine} AS item_type,
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.invoice_no, -- 发票号
|
||||
T1.trace_no, -- 追溯码
|
||||
T2.packaging_levels, -- 追溯码包装层级
|
||||
T1.practitioner_id , --经手人
|
||||
T1.occurrence_time,--制单日期
|
||||
T4.part_percent --拆零比
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN wor_inventory_item T2
|
||||
ON T1.item_id = T2.item_id
|
||||
AND T1.purpose_location_id = T2.location_id
|
||||
AND T1.lot_number = T2.lot_number
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN wor_supply_delivery T3
|
||||
ON T1.id = T3.request_id
|
||||
AND T3.delete_flag = '0'
|
||||
INNER JOIN med_medication_definition T4
|
||||
ON T1.item_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN med_medication T8
|
||||
ON T8.medication_def_id = T4.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.purpose_location_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_store_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T7
|
||||
ON T7.id = T1.supplier_id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T2.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T2.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.bus_no,
|
||||
T1.original_bus_no,
|
||||
T1.item_quantity AS item_quantity, --退库数量
|
||||
( SELECT COALESCE(SUM(T9.item_quantity), 0)
|
||||
FROM wor_supply_request AS T9
|
||||
WHERE T9.original_bus_no = T1.original_bus_no
|
||||
AND T9.item_id = T1.item_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
AND T9.status_enum = #{statusEnum}
|
||||
) AS returned_quantity, --已退数量
|
||||
T1.id , --采购退货id
|
||||
NULL AS purchase_id, --采购入库id
|
||||
T2.quantity AS quantity, --库存数量
|
||||
( SELECT T9.item_quantity
|
||||
FROM wor_supply_request AS T9
|
||||
WHERE T1.original_bus_no = T9.bus_no
|
||||
AND T9.item_id = T1.item_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
) AS purchase_quantity, --采购数量
|
||||
T11.amount AS price, --采购单价
|
||||
( SELECT T9.unit_code
|
||||
FROM wor_supply_request AS T9
|
||||
WHERE T1.original_bus_no = T9.bus_no
|
||||
AND T9.item_id = T1.item_id
|
||||
AND T9.lot_number = T1.lot_number
|
||||
AND T9.delete_flag = '0'
|
||||
) AS purchase_unit_code, --采购单位
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T4.unit_code, -- 包装单位
|
||||
T4.min_unit_code, -- 最小单位
|
||||
T5."name" AS purpose_location_name, --仓库
|
||||
T6."name" AS purpose_location_store_name, --货位
|
||||
T4."name" AS item_name, --药品
|
||||
T1.lot_number, --批次号
|
||||
T1.reason, --退货原因
|
||||
T1.remake, --备注
|
||||
T1.item_id, --物品编码
|
||||
T1.purpose_location_id, --目的仓库ID
|
||||
T1.purpose_location_store_id, --目的货位ID
|
||||
T1.purpose_type_enum, -- 目的仓库类型
|
||||
T1.supplier_id, -- 供应商id
|
||||
T7."name" AS supplier_name, -- 供应商名称
|
||||
T4."size" AS total_volume, -- 规格
|
||||
T4.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
#{device} AS item_type,
|
||||
T1.start_time, -- 开始时间
|
||||
T1.end_time, -- 结束时间
|
||||
T1.invoice_no, -- 发票号
|
||||
T1.trace_no, -- 追溯码
|
||||
T2.packaging_levels, -- 追溯码包装层级
|
||||
T1.practitioner_id, --经手人
|
||||
T1.occurrence_time,--制单日期
|
||||
T4.part_percent --拆零比
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN wor_inventory_item T2
|
||||
ON T2.item_id = T1.item_id
|
||||
AND T2.location_id = T1.purpose_location_id
|
||||
AND T2.lot_number = T1.lot_number
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN wor_supply_delivery T3
|
||||
ON T1.id = T3.request_id
|
||||
AND T3.delete_flag = '0'
|
||||
INNER JOIN adm_device_definition T4
|
||||
ON T1.item_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.purpose_location_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_store_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T7
|
||||
ON T7.id = T1.supplier_id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T10
|
||||
ON T10.instance_id = T2.item_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T11
|
||||
ON T11.definition_id = T10.id
|
||||
AND T11.delete_flag = '0'
|
||||
AND T11.condition_value = T2.lot_number
|
||||
AND T11.condition_code = '1'--1:批号进价
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,170 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inventorymanage.mapper.ReceiptApprovalMapper">
|
||||
|
||||
<select id="selectSupplyDetail" resultType="com.openhis.web.inventorymanage.dto.SupplyItemDetailDto">
|
||||
SELECT T1.id AS supply_id,
|
||||
T1.item_table,
|
||||
T1.item_id,
|
||||
T1.item_quantity,
|
||||
T1.total_quantity,
|
||||
T1.unit_code AS item_unit,
|
||||
T1.price,
|
||||
T1.total_price,
|
||||
T1.approver_id,
|
||||
T1.source_type_enum,
|
||||
T1.source_location_id,
|
||||
T1.source_location_store_id,
|
||||
T1.purpose_type_enum,
|
||||
T1.purpose_location_id,
|
||||
T1.purpose_location_store_id,
|
||||
T1.supplier_id,
|
||||
T1.lot_number,
|
||||
T1.trace_no,
|
||||
T1.trace_no_unit_code,
|
||||
T1.invoice_no,
|
||||
T1.bus_no,
|
||||
T1.start_time,
|
||||
T1.end_time,
|
||||
T1.id AS service_id,
|
||||
T2."name",
|
||||
T2.bus_no AS item_bus_no,
|
||||
T2.py_str,
|
||||
T2.wb_str,
|
||||
T2.unit_code,
|
||||
T2.min_unit_code,
|
||||
T2.part_percent,
|
||||
T2.category_code AS item_category,
|
||||
T2.yb_no,
|
||||
T2.rx_flag,
|
||||
T2.approval_number,
|
||||
T2.manufacturer_text,
|
||||
T6."name" AS supplier_name,
|
||||
T7."name" AS practitioner_name
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN wor_supply_delivery AS T5
|
||||
ON T1.id = T5.request_id
|
||||
AND T5.delete_flag = '0'
|
||||
INNER JOIN med_medication_definition AS T2
|
||||
ON T2.id = T1.item_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier AS T6
|
||||
ON T1.supplier_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T7
|
||||
ON T1.practitioner_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T5.status_enum = #{completed}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.id AS supply_id,
|
||||
T1.item_table,
|
||||
T1.item_id,
|
||||
T1.item_quantity,
|
||||
T1.total_quantity,
|
||||
T1.unit_code AS item_unit,
|
||||
T1.price,
|
||||
T1.total_price,
|
||||
T1.approver_id,
|
||||
T1.source_type_enum,
|
||||
T1.source_location_id,
|
||||
T1.source_location_store_id,
|
||||
T1.purpose_type_enum,
|
||||
T1.purpose_location_id,
|
||||
T1.purpose_location_store_id,
|
||||
T1.supplier_id,
|
||||
T1.lot_number,
|
||||
T1.trace_no,
|
||||
T1.trace_no_unit_code,
|
||||
T1.invoice_no,
|
||||
T1.bus_no,
|
||||
T1.start_time,
|
||||
T1.end_time,
|
||||
T1.id AS service_id,
|
||||
T3."name",
|
||||
T3.bus_no AS item_bus_no,
|
||||
T3.py_str,
|
||||
T3.wb_str,
|
||||
T3.unit_code,
|
||||
T3.min_unit_code,
|
||||
T3.part_percent,
|
||||
T3.category_code AS item_category,
|
||||
T3.yb_no,
|
||||
T3.rx_flag,
|
||||
T3.approval_number,
|
||||
T3.manufacturer_text,
|
||||
T6."name" AS supplier_name,
|
||||
T7."name" AS practitioner_name
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN wor_supply_delivery AS T5
|
||||
ON T1.id = T5.request_id
|
||||
INNER JOIN adm_device_definition AS T3
|
||||
ON T3.id = T1.item_id
|
||||
LEFT JOIN adm_supplier AS T6
|
||||
ON T1.supplier_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T7
|
||||
ON T1.practitioner_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T5.status_enum = #{completed}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
<select id="selectChargeDetail" resultType="com.openhis.web.inventorymanage.dto.ItemChargeDetailDto">
|
||||
SELECT T1.id AS definition_id,
|
||||
T1.instance_id,
|
||||
T1.charge_name,
|
||||
T1.price AS sell_price,
|
||||
T2.condition_code,
|
||||
T2.condition_value,
|
||||
T2.amount AS unit_price,
|
||||
T3.unit_code,
|
||||
T3.min_unit_code
|
||||
FROM adm_charge_item_definition AS T1
|
||||
LEFT JOIN adm_charge_item_def_detail AS T2
|
||||
ON T1.id = T2.definition_id
|
||||
LEFT JOIN med_medication_definition AS T3
|
||||
ON T1.instance_id = T3.id
|
||||
WHERE T1.instance_id IN
|
||||
<foreach collection="itemIdList" item="itemId" separator="," open="(" close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</select>
|
||||
<select id="selectReceiptPage" resultType="com.openhis.web.inventorymanage.dto.ReceiptPageDto">
|
||||
SELECT T2.supply_bus_no,
|
||||
T2.status_enum,
|
||||
T2.type_enum,
|
||||
T2.approver_id,
|
||||
T2.approval_time,
|
||||
T2.applicant_id,
|
||||
T2.apply_time,
|
||||
T2.practitioner_id,
|
||||
T2.tenant_id
|
||||
FROM (SELECT T1.bus_no AS supply_bus_no,
|
||||
T1.status_enum,
|
||||
T1.type_enum,
|
||||
T1.approver_id,
|
||||
T1.approval_time,
|
||||
T1.applicant_id,
|
||||
T1.apply_time,
|
||||
T1.practitioner_id,
|
||||
T1.tenant_id
|
||||
FROM wor_supply_request AS T1
|
||||
WHERE T1.status_enum IN (#{approval},#{agree},#{reject})
|
||||
AND T1.delete_flag != '1'
|
||||
GROUP BY T1.bus_no,
|
||||
T1.status_enum,
|
||||
T1.type_enum,
|
||||
T1.approver_id,
|
||||
T1.approval_time,
|
||||
T1.applicant_id,
|
||||
T1.apply_time,
|
||||
T1.practitioner_id,
|
||||
T1.tenant_id
|
||||
ORDER BY T1.apply_time desc
|
||||
) AS T2
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,351 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inventorymanage.mapper.RequisitionIssueMapper">
|
||||
<select id="selectRequisitionDepartment" resultType="com.openhis.web.inventorymanage.dto.IssueDepartmentDto">
|
||||
SELECT id AS location_id,--科室id
|
||||
name,--名称
|
||||
type_enum--科室
|
||||
FROM adm_organization
|
||||
WHERE type_enum = #{department}--科室类型
|
||||
AND delete_flag = '0'
|
||||
</select>
|
||||
<select id="selectRequisitionIssuePage"
|
||||
resultType="com.openhis.web.inventorymanage.dto.IssuePageDto">
|
||||
SELECT T2.supply_bus_no,--单据号
|
||||
T2.status_enum,--状态
|
||||
T2.approver_id,--审批人
|
||||
T2.approval_time,--审批时间
|
||||
T2.applicant_id,--申请人
|
||||
T2.create_time, -- 制单时间
|
||||
T2.practitioner_id,--经手人
|
||||
T2.tenant_id,--租户ID
|
||||
T2.purpose_location_id,--领用部门ID
|
||||
T2.location_name --领用部门名
|
||||
FROM (SELECT T1.bus_no AS supply_bus_no,
|
||||
T1.status_enum,
|
||||
T1.approver_id,
|
||||
T1.approval_time,
|
||||
T1.applicant_id,
|
||||
MIN(T1.create_time) AS create_time,
|
||||
T1.practitioner_id,
|
||||
T1.tenant_id,
|
||||
T1.purpose_location_id,--领用部门ID
|
||||
T4.name AS location_name
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN adm_location T3
|
||||
ON T1.source_location_id = T3.id
|
||||
LEFT JOIN adm_organization T4
|
||||
ON T1.purpose_location_id = T4.id
|
||||
WHERE T1.type_enum = #{issueInventory}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.bus_no,
|
||||
T1.status_enum,
|
||||
T1.approver_id,
|
||||
T1.approval_time,
|
||||
T1.applicant_id,
|
||||
T1.practitioner_id,
|
||||
T1.tenant_id,
|
||||
T1.purpose_location_id,
|
||||
T4.name
|
||||
ORDER BY T1.bus_no desc
|
||||
) AS T2
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="requisitionIssueDetail" resultType="com.openhis.web.inventorymanage.dto.IssueDetailDto">
|
||||
SELECT T1.id,
|
||||
T1.bus_no,--单据号
|
||||
T1.item_id,
|
||||
T1.item_quantity,--数量
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, -- 包装单位
|
||||
T2.min_unit_code, -- 最小单位
|
||||
T1.detail_json,--请求细节
|
||||
T1.purpose_type_enum,--目的类型
|
||||
#{medicine} AS item_type,--药品类型
|
||||
T1.apply_time,--申请时间
|
||||
T1.lot_number,--产品批号
|
||||
T1.trace_no,--追溯码
|
||||
T1.invoice_no,--发票号
|
||||
T1.start_time,--开始时间
|
||||
T1.end_time,--结束时间
|
||||
T13.amount AS price,--单价
|
||||
T1.total_price,--总价
|
||||
T2."name" AS item_name,--药品类型
|
||||
T2.part_percent,--拆零比
|
||||
T2."yb_no",--医保编码
|
||||
T3.total_volume,--规格
|
||||
T4."name" AS supplier_name,--供应商名称
|
||||
T2.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
T10.quantity AS total_quantity, -- 当前库存总数
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T1.purpose_location_store_id, -- 目的货位ID
|
||||
T6."name" AS source_location_name, -- 源仓库
|
||||
T7."name" AS source_location_store_name, -- 源仓位
|
||||
T8."name" AS purpose_location_name, -- 目的仓库
|
||||
T9."name" AS purpose_location_store_name, -- 目的货位
|
||||
T1.practitioner_id, -- 经办人
|
||||
T1.remake, -- 备注
|
||||
T11."name" AS practitioner_name -- 经办人名称
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN med_medication T3
|
||||
ON T3.medication_def_id = T2.id
|
||||
LEFT JOIN adm_supplier T4
|
||||
ON T4.id = T1.supplier_id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.source_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.source_location_store_id = T7.id
|
||||
LEFT JOIN adm_organization T8
|
||||
ON T1.purpose_location_id = T8.id
|
||||
LEFT JOIN adm_organization T9
|
||||
ON T1.purpose_location_store_id = T9.id
|
||||
LEFT JOIN wor_inventory_item T10
|
||||
ON T1.item_id = T10.item_id
|
||||
AND T1.source_location_id = T10.location_id
|
||||
AND T10.lot_number = T1.lot_number
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner T11
|
||||
ON T1.practitioner_id = T11.id
|
||||
LEFT JOIN adm_charge_item_definition AS T12
|
||||
ON T12.instance_id = T10.item_id
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T13
|
||||
ON T13.definition_id = T12.id
|
||||
AND T13.delete_flag = '0'
|
||||
AND T13.condition_value = T10.lot_number
|
||||
AND T13.condition_code = '1'--1:批号进价
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.id,
|
||||
T1.bus_no,
|
||||
T1.item_id,
|
||||
T1.item_quantity,
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, -- 包装单位
|
||||
T2.min_unit_code, -- 最小单位
|
||||
T1.detail_json,
|
||||
T1.purpose_type_enum,
|
||||
#{device} AS item_type, --耗材类型
|
||||
T1.apply_time,
|
||||
T1.lot_number,
|
||||
T1.trace_no,
|
||||
T1.invoice_no,
|
||||
T1.start_time,
|
||||
T1.end_time,
|
||||
T13.amount AS price,--单价
|
||||
T1.total_price,
|
||||
T2."name" AS item_name,
|
||||
T2.part_percent,
|
||||
T2."size" AS total_volume,
|
||||
T2."yb_no",
|
||||
T4."name" AS supplier_name,
|
||||
T2.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
T10.quantity AS total_quantity, -- 当前库存总数
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T1.purpose_location_store_id, -- 目的货位ID
|
||||
T6."name" AS source_location_name, -- 源仓库
|
||||
T7."name" AS source_location_store_name, -- 源仓位
|
||||
T8."name" AS purpose_location_name, -- 目的仓库
|
||||
T9."name" AS purpose_location_store_name, -- 目的货位
|
||||
T1.practitioner_id, -- 经办人
|
||||
T1.remake, -- 备注
|
||||
T11."name" AS practitioner_name -- 经办人名称
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN adm_device_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN adm_supplier T4
|
||||
ON T4.id = T1.supplier_id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.source_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.source_location_store_id = T7.id
|
||||
LEFT JOIN adm_organization T8
|
||||
ON T1.purpose_location_id = T8.id
|
||||
LEFT JOIN adm_organization T9
|
||||
ON T1.purpose_location_store_id = T9.id
|
||||
LEFT JOIN wor_inventory_item T10
|
||||
ON T1.item_id = T10.item_id
|
||||
AND T1.source_location_id = T10.location_id
|
||||
AND T10.lot_number = T1.lot_number
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner T11
|
||||
ON T1.practitioner_id = T11.id
|
||||
LEFT JOIN adm_charge_item_definition AS T12
|
||||
ON T12.instance_id = T10.item_id
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T13
|
||||
ON T13.definition_id = T12.id
|
||||
AND T13.delete_flag = '0'
|
||||
AND T13.condition_value = T10.lot_number
|
||||
AND T13.condition_code = '1'--1:批号进价
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
<select id="getMonthlySettlementDetail" resultType="com.openhis.web.inventorymanage.dto.IssueDetailDto">
|
||||
SELECT T1.id,
|
||||
T1.bus_no,--单据号
|
||||
T1.item_id,
|
||||
T1.item_quantity,--数量
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, -- 包装单位
|
||||
T2.min_unit_code, -- 最小单位
|
||||
T1.detail_json,--请求细节
|
||||
T1.purpose_type_enum,--目的类型
|
||||
#{medicine} AS item_type,--药品类型
|
||||
T1.apply_time,--申请时间
|
||||
T1.lot_number,--产品批号
|
||||
T1.trace_no,--追溯码
|
||||
T1.invoice_no,--发票号
|
||||
T1.start_time,--开始时间
|
||||
T1.end_time,--结束时间
|
||||
T13.amount AS price,--单价
|
||||
T1.total_price,--总价
|
||||
T2."name" AS item_name,--药品类型
|
||||
T2.part_percent,--拆零比
|
||||
T2."yb_no",--医保编码
|
||||
T3.total_volume,--规格
|
||||
T4."name" AS supplier_name,--供应商名称
|
||||
T2.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
T10.quantity AS total_quantity, -- 当前库存总数
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T1.purpose_location_store_id, -- 目的货位ID
|
||||
T6."name" AS source_location_name, -- 源仓库
|
||||
T7."name" AS source_location_store_name, -- 源仓位
|
||||
T8."name" AS purpose_location_name, -- 目的仓库
|
||||
T9."name" AS purpose_location_store_name, -- 目的货位
|
||||
T1.practitioner_id, -- 经办人
|
||||
T1.remake, -- 备注
|
||||
T1.occurrence_time,
|
||||
T11."name" AS practitioner_name -- 经办人名称
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN med_medication T3
|
||||
ON T3.medication_def_id = T2.id
|
||||
LEFT JOIN adm_supplier T4
|
||||
ON T4.id = T1.supplier_id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.source_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.source_location_store_id = T7.id
|
||||
LEFT JOIN adm_organization T8
|
||||
ON T1.purpose_location_id = T8.id
|
||||
LEFT JOIN adm_organization T9
|
||||
ON T1.purpose_location_store_id = T9.id
|
||||
LEFT JOIN wor_inventory_item T10
|
||||
ON T1.item_id = T10.item_id
|
||||
AND T1.source_location_id = T10.location_id
|
||||
AND T10.lot_number = T1.lot_number
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner T11
|
||||
ON T1.practitioner_id = T11.id
|
||||
LEFT JOIN adm_charge_item_definition AS T12
|
||||
ON T12.instance_id = T10.item_id
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T13
|
||||
ON T13.definition_id = T12.id
|
||||
AND T13.delete_flag = '0'
|
||||
AND T13.condition_value = T10.lot_number
|
||||
AND T13.condition_code = '1'--1:批号进价
|
||||
WHERE T1.source_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
<if test="endTime == null">
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') = #{startTime}
|
||||
</if>
|
||||
<if test="endTime != null">
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
</if>
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.id,
|
||||
T1.bus_no,
|
||||
T1.item_id,
|
||||
T1.item_quantity,
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, -- 包装单位
|
||||
T2.min_unit_code, -- 最小单位
|
||||
T1.detail_json,
|
||||
T1.purpose_type_enum,
|
||||
#{device} AS item_type, --耗材类型
|
||||
T1.apply_time,
|
||||
T1.lot_number,
|
||||
T1.trace_no,
|
||||
T1.invoice_no,
|
||||
T1.start_time,
|
||||
T1.end_time,
|
||||
T13.amount AS price,--单价
|
||||
T1.total_price,
|
||||
T2."name" AS item_name,
|
||||
T2.part_percent,
|
||||
T2."size" AS total_volume,
|
||||
T2."yb_no",
|
||||
T4."name" AS supplier_name,
|
||||
T2.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
T10.quantity AS total_quantity, -- 当前库存总数
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T1.purpose_location_store_id, -- 目的货位ID
|
||||
T6."name" AS source_location_name, -- 源仓库
|
||||
T7."name" AS source_location_store_name, -- 源仓位
|
||||
T8."name" AS purpose_location_name, -- 目的仓库
|
||||
T9."name" AS purpose_location_store_name, -- 目的货位
|
||||
T1.practitioner_id, -- 经办人
|
||||
T1.remake, -- 备注
|
||||
T1.occurrence_time,
|
||||
T11."name" AS practitioner_name -- 经办人名称
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN adm_device_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN adm_supplier T4
|
||||
ON T4.id = T1.supplier_id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.source_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.source_location_store_id = T7.id
|
||||
LEFT JOIN adm_organization T8
|
||||
ON T1.purpose_location_id = T8.id
|
||||
LEFT JOIN adm_organization T9
|
||||
ON T1.purpose_location_store_id = T9.id
|
||||
LEFT JOIN wor_inventory_item T10
|
||||
ON T1.item_id = T10.item_id
|
||||
AND T1.source_location_id = T10.location_id
|
||||
AND T10.lot_number = T1.lot_number
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner T11
|
||||
ON T1.practitioner_id = T11.id
|
||||
LEFT JOIN adm_charge_item_definition AS T12
|
||||
ON T12.instance_id = T10.item_id
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T13
|
||||
ON T13.definition_id = T12.id
|
||||
AND T13.delete_flag = '0'
|
||||
AND T13.condition_value = T10.lot_number
|
||||
AND T13.condition_code = '1'--1:批号进价
|
||||
WHERE T1.source_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,346 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inventorymanage.mapper.ReturnIssueMapper">
|
||||
<select id="selectReturnIssueDepartment" resultType="com.openhis.web.inventorymanage.dto.IssueDepartmentDto">
|
||||
SELECT id AS location_id,--科室id
|
||||
name,--名称
|
||||
type_enum--科室
|
||||
FROM adm_organization
|
||||
WHERE type_enum = #{department}--科室类型
|
||||
AND delete_flag = '0'
|
||||
</select>
|
||||
<select id="selectReturnIssuePage"
|
||||
resultType="com.openhis.web.inventorymanage.dto.IssuePageDto">
|
||||
SELECT T2.supply_bus_no,--单据号
|
||||
T2.status_enum,--状态
|
||||
T2.approver_id,--审批人
|
||||
T2.approval_time,--审批时间
|
||||
T2.applicant_id,--申请人
|
||||
T2.create_time, -- 制单时间
|
||||
T2.practitioner_id,--供应人
|
||||
T2.tenant_id,--租户ID
|
||||
T2.source_location_id,--领用部门ID
|
||||
T2.location_name --领用部门名
|
||||
FROM (SELECT T1.bus_no AS supply_bus_no,
|
||||
T1.status_enum,
|
||||
T1.approver_id,
|
||||
T1.approval_time,
|
||||
T1.applicant_id,
|
||||
MIN(T1.create_time) AS create_time,
|
||||
T1.practitioner_id,
|
||||
T1.tenant_id,
|
||||
T1.source_location_id,--领用部门ID
|
||||
T4.name AS location_name
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN adm_location T3
|
||||
ON T1.purpose_location_id = T3.id
|
||||
LEFT JOIN adm_organization T4
|
||||
ON T1.source_location_id = T4.id
|
||||
WHERE T1.type_enum = #{issueInventory}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.bus_no,
|
||||
T1.status_enum,
|
||||
T1.approver_id,
|
||||
T1.approval_time,
|
||||
T1.applicant_id,
|
||||
T1.practitioner_id,
|
||||
T1.tenant_id,
|
||||
T1.source_location_id,
|
||||
T4.name
|
||||
ORDER BY T1.bus_no desc
|
||||
) AS T2
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="returnIssueDetail" resultType="com.openhis.web.inventorymanage.dto.IssueDetailDto">
|
||||
SELECT T1.id,
|
||||
T1.bus_no,--单据号
|
||||
T1.item_id,
|
||||
T1.item_quantity,--数量
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, -- 包装单位
|
||||
T2.min_unit_code, -- 最小单位
|
||||
T1.detail_json,--请求细节
|
||||
T1.source_type_enum,--源仓库类型
|
||||
#{medicine} AS item_type,--药品类型
|
||||
T1.apply_time,--申请时间
|
||||
T1.lot_number,--产品批号
|
||||
T1.trace_no,--追溯码
|
||||
T1.invoice_no,--发票号
|
||||
T1.start_time,--开始时间
|
||||
T1.end_time,--结束时间
|
||||
T13.amount AS price,--单价
|
||||
T1.total_price,--总价
|
||||
T2."name" AS item_name,--药品名称
|
||||
T2.part_percent,--拆零比
|
||||
T2."yb_no",--医保编码
|
||||
T3.total_volume,--药品规格
|
||||
T4."name" AS supplier_name,--供应商名称
|
||||
T2.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
T1.practitioner_id, -- 经办人
|
||||
T5."name" AS practitioner_name,--经办人名称
|
||||
T10.quantity AS total_quantity, -- 当前库存总数
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T1.purpose_location_store_id, -- 目的货位ID
|
||||
T6."name" AS purpose_location_name, -- 目的仓库
|
||||
T7."name" AS purpose_location_store_name, -- 目的仓位
|
||||
T8."name" AS source_location_name, -- 源仓库
|
||||
T9."name" AS source_location_store_name, -- 源仓位
|
||||
T1.remake -- 备注
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN med_medication T3
|
||||
ON T3.medication_def_id = T2.id
|
||||
LEFT JOIN adm_supplier T4
|
||||
ON T4.id = T1.supplier_id
|
||||
LEFT JOIN adm_practitioner T5
|
||||
ON T1.practitioner_id = T5.id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
LEFT JOIN adm_organization T8
|
||||
ON T1.source_location_id = T8.id
|
||||
LEFT JOIN adm_organization T9
|
||||
ON T1.source_location_store_id = T9.id
|
||||
LEFT JOIN wor_inventory_item T10
|
||||
ON T1.item_id = T10.item_id
|
||||
AND T1.purpose_location_id = T10.location_id
|
||||
AND T10.lot_number = T1.lot_number
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T12
|
||||
ON T12.instance_id = T10.item_id
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T13
|
||||
ON T13.definition_id = T12.id
|
||||
AND T13.delete_flag = '0'
|
||||
AND T13.condition_value = T10.lot_number
|
||||
AND T13.condition_code = '1'--1:批号进价
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.id,
|
||||
T1.bus_no,
|
||||
T1.item_id,
|
||||
T1.item_quantity,
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, -- 包装单位
|
||||
T2.min_unit_code, -- 最小单位
|
||||
T1.detail_json,
|
||||
T1.source_type_enum,
|
||||
#{device} AS item_type, --耗材类型
|
||||
T1.apply_time,
|
||||
T1.lot_number,
|
||||
T1.trace_no,
|
||||
T1.invoice_no,
|
||||
T1.start_time,
|
||||
T1.end_time,
|
||||
T13.amount AS price,--单价
|
||||
T1.total_price,
|
||||
T2."name" AS item_name,--器材名称
|
||||
T2.part_percent,--拆零比
|
||||
T2."yb_no",--医保编码
|
||||
T2."size" AS total_volume,--包装规格
|
||||
T4."name" AS supplier_name,
|
||||
T2.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
T1.practitioner_id, -- 经办人
|
||||
T5."name" AS practitioner_name,
|
||||
T10.quantity AS total_quantity, -- 当前库存总数
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T1.purpose_location_store_id, -- 目的货位ID
|
||||
T6."name" AS source_location_name, -- 源仓库
|
||||
T7."name" AS source_location_store_name, -- 源仓位
|
||||
T8."name" AS purpose_location_name, -- 目的仓库
|
||||
T9."name" AS purpose_location_store_name, -- 目的货位
|
||||
T1.remake -- 备注
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN adm_device_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN adm_supplier T4
|
||||
ON T4.id = T1.supplier_id
|
||||
LEFT JOIN adm_practitioner T5
|
||||
ON T1.practitioner_id = T5.id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
LEFT JOIN adm_organization T8
|
||||
ON T1.source_location_id = T8.id
|
||||
LEFT JOIN adm_organization T9
|
||||
ON T1.source_location_store_id = T9.id
|
||||
LEFT JOIN wor_inventory_item T10
|
||||
ON T1.item_id = T10.item_id
|
||||
AND T1.purpose_location_id = T10.location_id
|
||||
AND T10.lot_number = T1.lot_number
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T12
|
||||
ON T12.instance_id = T10.item_id
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T13
|
||||
ON T13.definition_id = T12.id
|
||||
AND T13.delete_flag = '0'
|
||||
AND T13.condition_value = T10.lot_number
|
||||
AND T13.condition_code = '1'--1:批号进价
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
<select id="getMonthlySettlementDetail" resultType="com.openhis.web.inventorymanage.dto.IssueDetailDto">
|
||||
SELECT T1.id,
|
||||
T1.bus_no,--单据号
|
||||
T1.item_id,
|
||||
T1.item_quantity,--数量
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, -- 包装单位
|
||||
T2.min_unit_code, -- 最小单位
|
||||
T1.detail_json,--请求细节
|
||||
T1.source_type_enum,--源仓库类型
|
||||
#{medicine} AS item_type,--药品类型
|
||||
T1.apply_time,--申请时间
|
||||
T1.lot_number,--产品批号
|
||||
T1.trace_no,--追溯码
|
||||
T1.invoice_no,--发票号
|
||||
T1.start_time,--开始时间
|
||||
T1.end_time,--结束时间
|
||||
T13.amount AS price,--单价
|
||||
T1.total_price,--总价
|
||||
T2."name" AS item_name,--药品名称
|
||||
T2.part_percent,--拆零比
|
||||
T2."yb_no",--医保编码
|
||||
T3.total_volume,--药品规格
|
||||
T4."name" AS supplier_name,--供应商名称
|
||||
T2.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
T1.practitioner_id, -- 经办人
|
||||
T5."name" AS practitioner_name,--经办人名称
|
||||
T10.quantity AS total_quantity, -- 当前库存总数
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T1.purpose_location_store_id, -- 目的货位ID
|
||||
T6."name" AS purpose_location_name, -- 目的仓库
|
||||
T7."name" AS purpose_location_store_name, -- 目的仓位
|
||||
T8."name" AS source_location_name, -- 源仓库
|
||||
T9."name" AS source_location_store_name, -- 源仓位
|
||||
T1.occurrence_time,
|
||||
T1.remake -- 备注
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN med_medication T3
|
||||
ON T3.medication_def_id = T2.id
|
||||
LEFT JOIN adm_supplier T4
|
||||
ON T4.id = T1.supplier_id
|
||||
LEFT JOIN adm_practitioner T5
|
||||
ON T1.practitioner_id = T5.id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
LEFT JOIN adm_organization T8
|
||||
ON T1.source_location_id = T8.id
|
||||
LEFT JOIN adm_organization T9
|
||||
ON T1.source_location_store_id = T9.id
|
||||
LEFT JOIN wor_inventory_item T10
|
||||
ON T1.item_id = T10.item_id
|
||||
AND T1.purpose_location_id = T10.location_id
|
||||
AND T10.lot_number = T1.lot_number
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T12
|
||||
ON T12.instance_id = T10.item_id
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T13
|
||||
ON T13.definition_id = T12.id
|
||||
AND T13.delete_flag = '0'
|
||||
AND T13.condition_value = T10.lot_number
|
||||
AND T13.condition_code = '1'--1:批号进价
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.id,
|
||||
T1.bus_no,
|
||||
T1.item_id,
|
||||
T1.item_quantity,
|
||||
T1.unit_code AS measurement_unit_code, -- 物品计量单位
|
||||
T2.unit_code, -- 包装单位
|
||||
T2.min_unit_code, -- 最小单位
|
||||
T1.detail_json,
|
||||
T1.source_type_enum,
|
||||
#{device} AS item_type, --耗材类型
|
||||
T1.apply_time,
|
||||
T1.lot_number,
|
||||
T1.trace_no,
|
||||
T1.invoice_no,
|
||||
T1.start_time,
|
||||
T1.end_time,
|
||||
T13.amount AS price,--单价
|
||||
T1.total_price,
|
||||
T2."name" AS item_name,--器材名称
|
||||
T2.part_percent,--拆零比
|
||||
T2."yb_no",--医保编码
|
||||
T2."size" AS total_volume,--包装规格
|
||||
T4."name" AS supplier_name,
|
||||
T2.manufacturer_text AS manufacturer, -- 生产厂商
|
||||
T1.practitioner_id, -- 经办人
|
||||
T5."name" AS practitioner_name,
|
||||
T10.quantity AS total_quantity, -- 当前库存总数
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T1.purpose_location_store_id, -- 目的货位ID
|
||||
T6."name" AS source_location_name, -- 源仓库
|
||||
T7."name" AS source_location_store_name, -- 源仓位
|
||||
T8."name" AS purpose_location_name, -- 目的仓库
|
||||
T9."name" AS purpose_location_store_name, -- 目的货位
|
||||
T1.occurrence_time,
|
||||
T1.remake -- 备注
|
||||
FROM wor_supply_request T1
|
||||
LEFT JOIN adm_device_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN adm_supplier T4
|
||||
ON T4.id = T1.supplier_id
|
||||
LEFT JOIN adm_practitioner T5
|
||||
ON T1.practitioner_id = T5.id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
LEFT JOIN adm_organization T8
|
||||
ON T1.source_location_id = T8.id
|
||||
LEFT JOIN adm_organization T9
|
||||
ON T1.source_location_store_id = T9.id
|
||||
LEFT JOIN wor_inventory_item T10
|
||||
ON T1.item_id = T10.item_id
|
||||
AND T1.purpose_location_id = T10.location_id
|
||||
AND T10.lot_number = T1.lot_number
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T12
|
||||
ON T12.instance_id = T10.item_id
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T13
|
||||
ON T13.definition_id = T12.id
|
||||
AND T13.delete_flag = '0'
|
||||
AND T13.condition_value = T10.lot_number
|
||||
AND T13.condition_code = '1'--1:批号进价
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inventorymanage.mapper.TraceNoAppMapper">
|
||||
<select id="selectDetailsPage" resultType="com.openhis.web.inventorymanage.dto.TraceNoDetailsPageDto">
|
||||
SELECT T4.id,--ID
|
||||
T4.name,--药品名
|
||||
T4.location_id,--药房药库
|
||||
T4.location_name,
|
||||
T4.lot_number,--产品批号
|
||||
T4.trace_no,--追溯码
|
||||
T4.status_enum,--追溯码状态
|
||||
T4.unit_code,--追溯码单位
|
||||
T4.operation_type,--操作类型
|
||||
T4.item_type,--项目类型
|
||||
T4.create_time, --进出时间
|
||||
T4.tenant_id,
|
||||
T4.item_table,
|
||||
T4.item_id
|
||||
FROM (SELECT T1.id,--ID
|
||||
T2.name,--药品名
|
||||
T1.location_id,--药房药库
|
||||
T3.name AS location_name,
|
||||
T1.lot_number,--产品批号
|
||||
T1.trace_no,--追溯码
|
||||
T1.status_enum,--追溯码状态
|
||||
T1.unit_code,--追溯码单位
|
||||
T1.operation_type,--操作类型
|
||||
1 AS item_type,--项目类型
|
||||
T1.create_time, --进出时间
|
||||
T1.tenant_id,
|
||||
T1.item_table,
|
||||
T1.item_id
|
||||
FROM adm_trace_no_manage AS T1
|
||||
LEFT JOIN med_medication_definition AS T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T3
|
||||
ON T1.location_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
WHERE T1.item_table = 'med_medication_definition'
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.id,--ID
|
||||
T2.name,--药品名
|
||||
T1.location_id,--药房药库
|
||||
T3.name AS location_name,
|
||||
T1.lot_number,--产品批号
|
||||
T1.trace_no,--追溯码
|
||||
T1.status_enum,--追溯码状态
|
||||
T1.unit_code,--追溯码单位
|
||||
T1.operation_type,--操作类型
|
||||
2 AS item_type,--项目类型
|
||||
T1.create_time, --进出时间
|
||||
T1.tenant_id,
|
||||
T1.item_table,
|
||||
T1.item_id
|
||||
FROM adm_trace_no_manage AS T1
|
||||
LEFT JOIN adm_device_definition AS T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T3
|
||||
ON T1.location_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
WHERE T1.item_table = 'adm_device_definition'
|
||||
AND T1.delete_flag = '0') AS T4
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,307 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyDispensarymanage.mapper.PharmacyDispensaryCommonMapper">
|
||||
<select id="getMedicationInfo"
|
||||
resultType="com.openhis.web.pharmacyDispensarymanage.dto.PharmacyDispensaryMedicationInfoDto">
|
||||
SELECT T6.id,--物品id
|
||||
T6.bus_no,-- 药品编号
|
||||
T6.name,-- 物品名称
|
||||
T6.py_str,-- 拼音码
|
||||
T6.total_volume,--规格
|
||||
T6.unit_code,-- 包装单位
|
||||
T6.min_unit_code,--最小单位
|
||||
T6.part_percent,--拆零比
|
||||
T6.price,--进货单价
|
||||
T6.retailPrice,--零售价
|
||||
T6.manufacturer_text,-- 厂家/产地
|
||||
T6.approval_number,--批准文号
|
||||
T6.item_min_quantity, --库存最小警戒线
|
||||
T6.specification_inventory,--规格库存
|
||||
T6.batch_inventory,--批次库存
|
||||
T6.lot_number,
|
||||
T6.production_date,--生产日期
|
||||
T6.expiration_date,--失效日期
|
||||
<if test="locationId != null">
|
||||
T6.location_id,
|
||||
</if>
|
||||
T6.supplier_id,
|
||||
T6.tenant_id
|
||||
FROM (SELECT T1.id,--物品id
|
||||
T1.bus_no,-- 药品编号
|
||||
T1.name,-- 物品名称
|
||||
T1.py_str,-- 拼音码
|
||||
T2.total_volume,--规格
|
||||
T1.unit_code,-- 包装单位
|
||||
T1.min_unit_code,--最小单位
|
||||
T1.part_percent,--拆零比
|
||||
CASE
|
||||
WHEN T9.lot_number IS NULL THEN
|
||||
CASE T4.condition_value
|
||||
WHEN T1.min_unit_code THEN T4.amount * T1.part_percent
|
||||
ELSE T4.amount END
|
||||
ELSE CASE T4.condition_value
|
||||
WHEN T1.min_unit_code THEN T10.amount * T1.part_percent
|
||||
ELSE T10.amount END
|
||||
END AS price,--进货单价(大单位)
|
||||
CASE
|
||||
WHEN T9.lot_number IS NULL THEN
|
||||
CASE T5.condition_value
|
||||
WHEN T1.min_unit_code THEN T5.amount * T1.part_percent
|
||||
ELSE T5.amount END
|
||||
ELSE CASE T5.condition_value
|
||||
WHEN T1.min_unit_code THEN T11.amount * T1.part_percent
|
||||
ELSE T11.amount END
|
||||
END AS retailPrice,--零售价(大单位)
|
||||
T1.manufacturer_text,-- 厂家/产地
|
||||
T1.approval_number,--批准文号
|
||||
T1.item_min_quantity * T1.part_percent AS item_min_quantity, --库存最小警戒线(小单位)
|
||||
COALESCE(CAST(T8.specification_inventory AS DECIMAL(18, 6)), 0.00) AS specification_inventory,--规格库存(小单位)
|
||||
COALESCE(CAST(T9.batch_inventory AS DECIMAL(18, 6)), 0.00) AS batch_inventory,--批次库存(小单位)
|
||||
T9.lot_number,
|
||||
T7.production_date,--生产日期
|
||||
T7.expiration_date,--失效日期
|
||||
<if test="locationId != null">
|
||||
T7.location_id,
|
||||
</if>
|
||||
T7.supplier_id,
|
||||
T1.tenant_id
|
||||
FROM med_medication_definition AS T1
|
||||
LEFT JOIN med_medication AS T2
|
||||
ON T1.id = T2.medication_def_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition T3
|
||||
ON T3.instance_id = T1.id
|
||||
AND T3.instance_table = 'med_medication_definition'
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail T4
|
||||
ON T4.definition_id = T3.id
|
||||
AND T4.condition_code = '2'--2:采购价
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail T5
|
||||
ON T5.definition_id = T3.id
|
||||
AND T5.condition_code = '3'--2:单位
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item T7
|
||||
ON T7.item_table = 'med_medication_definition'
|
||||
AND T7.item_id = T1.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN (SELECT i1.item_table,
|
||||
i1.item_id,
|
||||
<if test="locationId != null">
|
||||
i1.location_id,
|
||||
</if>
|
||||
COALESCE(CAST(SUM(i1.quantity) AS DECIMAL(18, 6)), 0.00) AS specification_inventory
|
||||
FROM wor_inventory_item i1
|
||||
LEFT JOIN med_medication_definition i2 ON i1.item_id = i2.ID
|
||||
AND i2.delete_flag = '0'
|
||||
WHERE i1.item_table = 'med_medication_definition'
|
||||
AND i1.delete_flag = '0'
|
||||
GROUP BY i1.item_table,
|
||||
i1.item_id
|
||||
<if test="locationId != null">
|
||||
,i1.location_id
|
||||
</if>) T8
|
||||
ON T8.item_table = 'med_medication_definition'
|
||||
AND T8.item_id = T1.ID
|
||||
<if test="locationId != null">
|
||||
AND T8.location_id = T7.location_id
|
||||
</if>
|
||||
LEFT JOIN (SELECT i3.item_table,
|
||||
i3.item_id,
|
||||
i3.lot_number,
|
||||
<if test="locationId != null">
|
||||
i3.location_id,
|
||||
</if>
|
||||
COALESCE(CAST(SUM(i3.quantity) AS DECIMAL(18, 6)), 0.00) AS batch_inventory
|
||||
FROM wor_inventory_item i3
|
||||
LEFT JOIN med_medication_definition i4 ON i3.item_id = i4.ID
|
||||
AND i4.delete_flag = '0'
|
||||
WHERE i3.item_table = 'med_medication_definition'
|
||||
AND i3.delete_flag = '0'
|
||||
GROUP BY i3.item_table,
|
||||
i3.item_id,
|
||||
i3.lot_number
|
||||
<if test="locationId != null">
|
||||
,i3.location_id
|
||||
</if>) T9
|
||||
ON T9.item_table = 'med_medication_definition'
|
||||
AND T9.item_id = T1.ID
|
||||
AND T9.lot_number = T7.lot_number
|
||||
<if test="locationId != null">
|
||||
AND T9.location_id = T7.location_id
|
||||
</if>
|
||||
LEFT JOIN adm_charge_item_def_detail T10
|
||||
ON T10.definition_id = T3.id
|
||||
AND T10.condition_code = '1'--1:批号进价
|
||||
AND T10.condition_value = T9.lot_number
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail T11
|
||||
ON T11.definition_id = T3.id
|
||||
AND T11.condition_code = '5'--1:批号售价
|
||||
AND T11.condition_value = T9.lot_number
|
||||
AND T11.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="locationId != null">
|
||||
AND T7.location_id = #{locationId}
|
||||
</if>
|
||||
<!-- <if test="supplierId != null">-->
|
||||
<!-- AND T7.supplier_id = #{supplierId}-->
|
||||
<!-- </if>-->
|
||||
GROUP BY T1.id,
|
||||
T2.total_volume,
|
||||
T4.condition_value,
|
||||
T5.condition_value,
|
||||
T4.amount,
|
||||
T5.amount,
|
||||
T10.amount,
|
||||
T11.amount,
|
||||
T8.specification_inventory,
|
||||
T9.batch_inventory,
|
||||
T9.lot_number,
|
||||
<if test="locationId != null">
|
||||
T7.location_id,
|
||||
</if>
|
||||
T7.supplier_id,
|
||||
T7.production_date,
|
||||
T7.expiration_date
|
||||
<if test="supplierId != null">
|
||||
HAVING
|
||||
T8.specification_inventory <![CDATA[ <= ]]> (T1.item_min_quantity * T1.part_percent)
|
||||
</if>
|
||||
ORDER BY T1.bus_no) AS T6
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="getPage"
|
||||
resultType="com.openhis.web.pharmacyDispensarymanage.dto.PharmacyDispensaryDto">
|
||||
SELECT T4.tenant_id,
|
||||
T4.supply_bus_no, --单据号
|
||||
T4.type_enum, --类型
|
||||
T4.status_enum, --状态
|
||||
T4.supplier_id, --供应商
|
||||
T4.location_type_enum, --仓库类型
|
||||
T4.location_id, --仓库
|
||||
T4.applicant_id, --开单人
|
||||
T4.applicant_name, --开单人
|
||||
T4.approver_id, --审批人
|
||||
T4.apply_time, -- 制单时间
|
||||
T4.approval_time --审批时间
|
||||
FROM (SELECT T1.tenant_id,
|
||||
T1.bus_no AS supply_bus_no,
|
||||
T1.type_enum,
|
||||
T1.status_enum,
|
||||
T1.supplier_id,
|
||||
<if test="locationFlg != null">
|
||||
T1.source_type_enum AS location_type_enum,
|
||||
T1.source_location_id AS location_id,
|
||||
</if>
|
||||
<if test="locationFlg == null">
|
||||
T1.purpose_type_enum AS location_type_enum,
|
||||
T1.purpose_location_id AS location_id,
|
||||
</if>
|
||||
T1.applicant_id,
|
||||
T2.name AS applicant_name,
|
||||
T1.approver_id,
|
||||
T1.apply_time,
|
||||
T1.approval_time
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN adm_practitioner AS T2
|
||||
ON T2.id = T1.applicant_id
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="originalBusNoFlg != null">
|
||||
and original_bus_no = ''
|
||||
</if>
|
||||
GROUP BY T1.tenant_id,
|
||||
T1.bus_no,
|
||||
T1.type_enum,
|
||||
T1.status_enum,
|
||||
T1.supplier_id,
|
||||
<if test="locationFlg != null">
|
||||
T1.source_type_enum,
|
||||
T1.source_location_id,
|
||||
</if>
|
||||
<if test="locationFlg == null">
|
||||
T1.purpose_type_enum,
|
||||
T1.purpose_location_id,
|
||||
</if>
|
||||
T1.applicant_id,
|
||||
T2.name,
|
||||
T1.approver_id,
|
||||
T1.apply_time,
|
||||
T1.approval_time
|
||||
) AS T4
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="getDetailPage"
|
||||
resultType="com.openhis.web.pharmacyDispensarymanage.dto.PharmacyDispensaryDetailDto">
|
||||
SELECT T1.id, --ID
|
||||
T1.bus_no, --单据号
|
||||
T2.bus_no AS item_bus_no, --药品编码
|
||||
T1.item_id, --药品id
|
||||
T2.name AS item_name, --名称
|
||||
T3.total_volume, --规格
|
||||
T1.unit_code, --选择单位
|
||||
T2.unit_code AS max_unit_code, --常规单位
|
||||
T2.min_unit_code AS min_unit_code, --最小单位
|
||||
T2.part_percent, --拆零比
|
||||
T1.item_quantity, --数量
|
||||
T1.total_quantity, --合计数量
|
||||
T1.price, --采购单价
|
||||
T1.total_price, --采购总价
|
||||
T1.retail_price, --零售价
|
||||
T1.total_retail_price, --零价金额
|
||||
T2.manufacturer_text, --生产厂商文本
|
||||
T2.approval_number, --批准文号
|
||||
T1.remake, --备注
|
||||
T1.reason, --摘要(理由)
|
||||
T1.reason_code, --理由类型
|
||||
T1.batch_inventory, --批次库存
|
||||
T1.specification_inventory, --规格库存
|
||||
T1.applicant_id,--申请人
|
||||
T1.apply_time,--申请时间
|
||||
T1.approver_id,--审批人
|
||||
T1.approval_time,--审批时间
|
||||
T1.supplier_id,--供应商
|
||||
T4.phone,--供应商联系人
|
||||
T1.status_enum,
|
||||
T1.type_enum,
|
||||
T1.category_enum,--单据类型
|
||||
T1.source_type_enum, --源仓库类型
|
||||
T1.source_location_id, --源仓库
|
||||
T1.purpose_type_enum, --目的仓库类型
|
||||
T1.purpose_location_id, --目的仓库
|
||||
T1.practitioner_id,--仓库员
|
||||
T1.invoice_no,--发票号
|
||||
T1.lot_number,--产品批号
|
||||
T1.start_time,--开始时间
|
||||
T1.end_time,--结束时间
|
||||
T1.packaging_condition_enum,--包装情况
|
||||
T1.acceptance_result_enum,--验收结果
|
||||
T1.trace_no,--追溯码
|
||||
T1.trace_no_unit_code,--追溯码包装
|
||||
T1.occurrence_time,--禁用日期
|
||||
T1.tenant_id
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN med_medication_definition AS T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T3
|
||||
ON T2.id = T3.medication_def_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier AS T4
|
||||
ON T4.id = T1.supplier_id
|
||||
AND T4.delete_flag = '0'
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.id,
|
||||
T2.bus_no,
|
||||
T2.name,
|
||||
T2.unit_code,
|
||||
T2.min_unit_code,
|
||||
T3.total_volume,
|
||||
T2.part_percent,
|
||||
T2.manufacturer_text,
|
||||
T2.approval_number,
|
||||
T4.phone
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyDispensarymanage.mapper.PharmacyDispensaryDispensingOrderMapper">
|
||||
<select id="getInfo"
|
||||
resultType="com.openhis.web.pharmacyDispensarymanage.dto.PharmacyDispensaryDetailDto">
|
||||
SELECT string_agg(T1.id::text, ',' ORDER BY T1.id) AS dispense_ids,--药品发放id
|
||||
T1.status_enum,--发放状态
|
||||
CASE T3.category_enum
|
||||
WHEN 1 THEN 20
|
||||
WHEN 2 THEN 19 END AS category_enum, --分类
|
||||
T3.medication_id AS item_id,--物品编码
|
||||
T3.unit_code,--物品计量单位
|
||||
T3.quantity AS item_quantity,--数量
|
||||
T3.lot_number, --产品批号
|
||||
T3.perform_location AS source_location_id, --源仓库
|
||||
T4.organization_id AS purpose_location_id,--目的仓库
|
||||
T1.practitioner_id AS approver_id,--审批人
|
||||
T1.dispense_time AS approval_time, --审批时间
|
||||
T1.patient_id AS applicant_id,--申请人
|
||||
T3.req_authored_time AS apply_time --申请时间
|
||||
FROM med_medication_dispense AS T1
|
||||
INNER JOIN med_medication_request AS T3
|
||||
ON T1.med_req_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T2
|
||||
ON T3.medication_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter AS T4
|
||||
ON T3.encounter_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
WHERE T1.id IN
|
||||
<foreach collection="dispenseIdList" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND T1.status_enum = #{dispenseStatus}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.status_enum,
|
||||
T3.category_enum,
|
||||
T3.medication_id,
|
||||
T3.unit_code,
|
||||
T3.quantity,
|
||||
T3.lot_number,
|
||||
T3.perform_location,
|
||||
T4.organization_id,
|
||||
T1.practitioner_id,
|
||||
T1.dispense_time,
|
||||
T1.patient_id,
|
||||
T3.req_authored_time
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyDispensarymanage.mapper.PharmacyDispensaryProfitLossOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyDispensarymanage.mapper.PharmacyDispensaryRequisitionOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyDispensarymanage.mapper.PharmacyDispensaryReturnToWarehouseOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyDispensarymanage.mapper.PharmacyDispensaryStockInOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyDispensarymanage.mapper.PharmacyDispensaryStocktakingOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyDispensarymanage.mapper.PharmacyDispensaryTransferInOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyDispensarymanage.mapper.PharmacyDispensaryTransferOutOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,312 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyWarehousemanage.mapper.PharmacyWarehouseCommonMapper">
|
||||
<select id="getMedicationInfo"
|
||||
resultType="com.openhis.web.pharmacyWarehousemanage.dto.PharmacyWarehouseMedicationInfoDto">
|
||||
SELECT T6.id,--物品id
|
||||
T6.bus_no,-- 药品编号
|
||||
T6.name,-- 物品名称
|
||||
T6.py_str,-- 拼音码
|
||||
T6.total_volume,--规格
|
||||
T6.unit_code,-- 包装单位
|
||||
T6.min_unit_code,--最小单位
|
||||
T6.part_percent,--拆零比
|
||||
T6.price,--进货单价
|
||||
T6.retailPrice,--零售价
|
||||
T6.manufacturer_text,-- 厂家/产地
|
||||
T6.approval_number,--批准文号
|
||||
T6.item_min_quantity, --库存最小警戒线
|
||||
T6.specification_inventory,--规格库存
|
||||
<if test="locationId != null">
|
||||
T6.location_id,
|
||||
</if>
|
||||
<if test="supplierId == null">
|
||||
T6.batch_inventory,--批次库存
|
||||
T6.lot_number,
|
||||
T6.production_date,--生产日期
|
||||
T6.expiration_date,--失效日期
|
||||
</if>
|
||||
T6.supplier_id,
|
||||
T6.tenant_id
|
||||
FROM (SELECT T1.id,--物品id
|
||||
T1.bus_no,-- 药品编号
|
||||
T1.name,-- 物品名称
|
||||
T1.py_str,-- 拼音码
|
||||
T2.total_volume,--规格
|
||||
T1.unit_code,-- 包装单位
|
||||
T1.min_unit_code,--最小单位
|
||||
T1.part_percent,--拆零比
|
||||
CASE
|
||||
WHEN T7.supplier_id IS NULL THEN
|
||||
CASE T4.condition_value
|
||||
WHEN T1.min_unit_code THEN T4.amount * T1.part_percent
|
||||
ELSE T4.amount END
|
||||
ELSE CASE T4.condition_value
|
||||
WHEN T1.min_unit_code THEN T10.amount * T1.part_percent
|
||||
ELSE T10.amount END
|
||||
END AS price,--进货单价(大单位)
|
||||
CASE
|
||||
WHEN T7.supplier_id IS NULL THEN
|
||||
CASE T5.condition_value
|
||||
WHEN T1.min_unit_code THEN T5.amount * T1.part_percent
|
||||
ELSE T5.amount END
|
||||
ELSE CASE T5.condition_value
|
||||
WHEN T1.min_unit_code THEN T11.amount * T1.part_percent
|
||||
ELSE T11.amount END
|
||||
END AS retailPrice,--零售价(大单位)
|
||||
T1.manufacturer_text,-- 厂家/产地
|
||||
T1.approval_number,--批准文号
|
||||
T1.item_min_quantity * T1.part_percent AS item_min_quantity, --库存最小警戒线(小单位)
|
||||
COALESCE(CAST(T8.specification_inventory AS DECIMAL(18, 6)), 0.00) AS specification_inventory,--规格库存(小单位)
|
||||
<if test="supplierId == null">
|
||||
COALESCE(CAST(T9.batch_inventory AS DECIMAL(18, 6)), 0.00) AS batch_inventory,--批次库存(小单位)
|
||||
T7.lot_number,
|
||||
T7.production_date,--生产日期
|
||||
T7.expiration_date,--失效日期
|
||||
</if>
|
||||
<if test="locationId != null">
|
||||
T7.location_id,
|
||||
</if>
|
||||
T7.supplier_id,
|
||||
T1.tenant_id
|
||||
FROM med_medication_definition AS T1
|
||||
LEFT JOIN med_medication AS T2
|
||||
ON T1.id = T2.medication_def_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition T3
|
||||
ON T3.instance_id = T1.id
|
||||
AND T3.instance_table = 'med_medication_definition'
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail T4
|
||||
ON T4.definition_id = T3.id
|
||||
AND T4.condition_code = '2'--2:采购价
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail T5
|
||||
ON T5.definition_id = T3.id
|
||||
AND T5.condition_code = '3'--2:单位
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item T7
|
||||
ON T7.item_table = 'med_medication_definition'
|
||||
AND T7.item_id = T1.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN (SELECT i1.item_table,
|
||||
i1.item_id,
|
||||
<if test="locationId != null">
|
||||
i1.location_id,
|
||||
</if>
|
||||
COALESCE(CAST(SUM(i1.quantity) AS DECIMAL(18, 6)), 0.00) AS specification_inventory
|
||||
FROM wor_inventory_item i1
|
||||
LEFT JOIN med_medication_definition i2 ON i1.item_id = i2.ID
|
||||
AND i2.delete_flag = '0'
|
||||
WHERE i1.item_table = 'med_medication_definition'
|
||||
AND i1.delete_flag = '0'
|
||||
GROUP BY i1.item_table,
|
||||
i1.item_id
|
||||
<if test="locationId != null">
|
||||
,i1.location_id
|
||||
</if>) T8
|
||||
ON T8.item_table = 'med_medication_definition'
|
||||
AND T8.item_id = T1.ID
|
||||
<if test="locationId != null">
|
||||
AND T8.location_id = T7.location_id
|
||||
</if>
|
||||
LEFT JOIN (SELECT i3.item_table,
|
||||
i3.item_id,
|
||||
i3.lot_number,
|
||||
<if test="locationId != null">
|
||||
i3.location_id,
|
||||
</if>
|
||||
COALESCE(CAST(SUM(i3.quantity) AS DECIMAL(18, 6)), 0.00) AS batch_inventory
|
||||
FROM wor_inventory_item i3
|
||||
LEFT JOIN med_medication_definition i4 ON i3.item_id = i4.ID
|
||||
AND i4.delete_flag = '0'
|
||||
WHERE i3.item_table = 'med_medication_definition'
|
||||
AND i3.delete_flag = '0'
|
||||
GROUP BY i3.item_table,
|
||||
i3.item_id,
|
||||
i3.lot_number
|
||||
<if test="locationId != null">
|
||||
,i3.location_id
|
||||
</if>) T9
|
||||
ON T9.item_table = 'med_medication_definition'
|
||||
AND T9.item_id = T1.ID
|
||||
AND T9.lot_number = T7.lot_number
|
||||
<if test="locationId != null">
|
||||
AND T9.location_id = T7.location_id
|
||||
</if>
|
||||
LEFT JOIN adm_charge_item_def_detail T10
|
||||
ON T10.definition_id = T3.id
|
||||
AND T10.condition_code = '1'--1:批号进价
|
||||
AND T10.condition_value = T9.lot_number
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail T11
|
||||
ON T11.definition_id = T3.id
|
||||
AND T11.condition_code = '5'--1:批号售价
|
||||
AND T11.condition_value = T9.lot_number
|
||||
AND T11.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="locationId != null">
|
||||
AND T7.location_id = #{locationId}
|
||||
</if>
|
||||
GROUP BY T1.id,
|
||||
T2.total_volume,
|
||||
T4.condition_value,
|
||||
T5.condition_value,
|
||||
T4.amount,
|
||||
T5.amount,
|
||||
T10.amount,
|
||||
T11.amount,
|
||||
T8.specification_inventory,
|
||||
<if test="locationId != null">
|
||||
T7.location_id,
|
||||
</if>
|
||||
<if test="supplierId == null">
|
||||
T7.lot_number,
|
||||
T9.batch_inventory,
|
||||
T7.production_date,
|
||||
T7.expiration_date,
|
||||
</if>
|
||||
T7.supplier_id
|
||||
<if test="supplierId != null">
|
||||
HAVING
|
||||
T8.specification_inventory <![CDATA[ <= ]]> (T1.item_min_quantity * T1.part_percent)
|
||||
</if>
|
||||
ORDER BY T1.bus_no) AS T6
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="getPage"
|
||||
resultType="com.openhis.web.pharmacyWarehousemanage.dto.PharmacyWarehouseDto">
|
||||
SELECT T4.tenant_id,
|
||||
T4.supply_bus_no, --单据号
|
||||
T4.type_enum, --类型
|
||||
T4.status_enum, --状态
|
||||
T4.supplier_id, --供应商
|
||||
T4.location_type_enum, --仓库类型
|
||||
T4.location_id, --仓库
|
||||
T4.applicant_id, --开单人
|
||||
T4.applicant_name, --开单人
|
||||
T4.approver_id, --审批人
|
||||
T4.apply_time, -- 制单时间
|
||||
T4.approval_time --审批时间
|
||||
FROM (SELECT T1.tenant_id,
|
||||
T1.bus_no AS supply_bus_no,
|
||||
T1.type_enum,
|
||||
T1.status_enum,
|
||||
T1.supplier_id,
|
||||
<if test="locationFlg != null">
|
||||
T1.source_type_enum AS location_type_enum,
|
||||
T1.source_location_id AS location_id,
|
||||
</if>
|
||||
<if test="locationFlg == null">
|
||||
T1.purpose_type_enum AS location_type_enum,
|
||||
T1.purpose_location_id AS location_id,
|
||||
</if>
|
||||
T1.applicant_id,
|
||||
T2.name AS applicant_name,
|
||||
T1.approver_id,
|
||||
T1.apply_time,
|
||||
T1.approval_time
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN adm_practitioner AS T2
|
||||
ON T2.id = T1.applicant_id
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="originalBusNoFlg != null">
|
||||
and original_bus_no = ''
|
||||
</if>
|
||||
GROUP BY T1.tenant_id,
|
||||
T1.bus_no,
|
||||
T1.type_enum,
|
||||
T1.status_enum,
|
||||
T1.supplier_id,
|
||||
T1.source_type_enum,
|
||||
T1.source_location_id,
|
||||
<if test="locationFlg != null">
|
||||
T1.source_type_enum,
|
||||
T1.source_location_id,
|
||||
</if>
|
||||
<if test="locationFlg == null">
|
||||
T1.purpose_type_enum,
|
||||
T1.purpose_location_id,
|
||||
</if>
|
||||
T1.applicant_id,
|
||||
T2.name,
|
||||
T1.approver_id,
|
||||
T1.apply_time,
|
||||
T1.approval_time
|
||||
) AS T4
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="getDetailPage"
|
||||
resultType="com.openhis.web.pharmacyWarehousemanage.dto.PharmacyWarehouseDetailDto">
|
||||
SELECT T1.id, --ID
|
||||
T1.bus_no, --单据号
|
||||
T2.bus_no AS item_bus_no, --药品编码
|
||||
T1.item_id, --药品id
|
||||
T2.name AS item_name, --名称
|
||||
T3.total_volume, --规格
|
||||
T1.unit_code, --选择单位
|
||||
T2.unit_code AS max_unit_code, --常规单位
|
||||
T2.min_unit_code AS min_unit_code, --最小单位
|
||||
T2.part_percent, --拆零比
|
||||
T1.item_quantity, --数量
|
||||
T1.total_quantity, --合计数量
|
||||
T1.price, --采购单价
|
||||
T1.total_price, --采购总价
|
||||
T1.retail_price, --零售价
|
||||
T1.total_retail_price, --零价金额
|
||||
T2.manufacturer_text, --生产厂商文本
|
||||
T2.approval_number, --批准文号
|
||||
T1.remake, --备注
|
||||
T1.reason, --摘要(理由)
|
||||
T1.reason_code, --理由类型
|
||||
T1.batch_inventory, --批次库存
|
||||
T1.specification_inventory, --规格库存
|
||||
T1.applicant_id,--申请人
|
||||
T1.apply_time,--申请时间
|
||||
T1.approver_id,--审批人
|
||||
T1.approval_time,--审批时间
|
||||
T1.supplier_id,--供应商
|
||||
T4.phone,--供应商联系人
|
||||
T1.status_enum,
|
||||
T1.type_enum,
|
||||
T1.category_enum,--单据类型
|
||||
T1.source_type_enum, --源仓库类型
|
||||
T1.source_location_id, --源仓库
|
||||
T1.purpose_type_enum, --目的仓库类型
|
||||
T1.purpose_location_id, --目的仓库
|
||||
T1.practitioner_id,--仓库员
|
||||
T1.invoice_no,--发票号
|
||||
T1.lot_number,--产品批号
|
||||
T1.start_time,--开始时间
|
||||
T1.end_time,--结束时间
|
||||
T1.packaging_condition_enum,--包装情况
|
||||
T1.acceptance_result_enum,--验收结果
|
||||
T1.trace_no,--追溯码
|
||||
T1.trace_no_unit_code,--追溯码包装
|
||||
T1.occurrence_time,--禁用日期
|
||||
T1.tenant_id
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN med_medication_definition AS T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T3
|
||||
ON T2.id = T3.medication_def_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier AS T4
|
||||
ON T4.id = T1.supplier_id
|
||||
AND T4.delete_flag = '0'
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.id,
|
||||
T2.bus_no,
|
||||
T2.name,
|
||||
T2.unit_code,
|
||||
T2.min_unit_code,
|
||||
T3.total_volume,
|
||||
T2.part_percent,
|
||||
T2.manufacturer_text,
|
||||
T2.approval_number,
|
||||
T4.phone
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyWarehousemanage.mapper.PharmacyWarehouseDocumentManagementMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyWarehousemanage.mapper.PharmacyWarehouseProfitLossOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyWarehousemanage.mapper.PharmacyWarehousePurchaseOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyWarehousemanage.mapper.PharmacyWarehouseReturnOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyWarehousemanage.mapper.PharmacyWarehouseReturnToWarehouseOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyWarehousemanage.mapper.PharmacyWarehouseStockInOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyWarehousemanage.mapper.PharmacyWarehouseStockOutOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.pharmacyWarehousemanage.mapper.PharmacyWarehouseStocktakingOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,112 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.basedatamanage.mapper.PractitionerAppAppMapper">
|
||||
|
||||
<select id="getUserPractitionerPage" resultType="com.openhis.web.basedatamanage.dto.UserAndPractitionerDto">
|
||||
SELECT T3.tenant_id,
|
||||
T3.user_id,
|
||||
T3.practitioner_id,
|
||||
T3.py_str,
|
||||
T3.wb_str,
|
||||
T3.user_name,
|
||||
T3.nick_name,
|
||||
T3.email,
|
||||
T3.phonenumber,
|
||||
T3.sex,
|
||||
T3.status,
|
||||
T3.remark,
|
||||
T3.birth_date,
|
||||
T3.address,
|
||||
T3.yb_no,
|
||||
T3.org_id,
|
||||
T3.phar_prac_cert_no
|
||||
from (
|
||||
SELECT T1.tenant_id,
|
||||
T1.id AS practitioner_id,
|
||||
T1.user_id,
|
||||
T1.py_str,
|
||||
T1.wb_str,
|
||||
T2.user_name,
|
||||
T2.nick_name,
|
||||
T2.email,
|
||||
T2.phonenumber,
|
||||
T2.sex,
|
||||
T2.status,
|
||||
T2.remark,
|
||||
T1.birth_date,
|
||||
T1.address,
|
||||
T1.yb_no,
|
||||
T1.org_id,
|
||||
T1.phar_prac_cert_no
|
||||
FROM adm_practitioner AS T1
|
||||
LEFT JOIN sys_user AS T2 ON T2.user_id = T1.user_id
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0') AS T3
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getPractitionerRolesDtoList" resultType="com.openhis.web.basedatamanage.dto.PractitionerRolesDto">
|
||||
SELECT
|
||||
sr.role_id,
|
||||
sr.role_key AS role_code,
|
||||
sr.role_name,
|
||||
ap.ID AS practitioner_id
|
||||
FROM
|
||||
sys_role sr
|
||||
JOIN sys_user_role sur ON sr.role_id = sur.role_id
|
||||
JOIN adm_practitioner ap ON sur.user_id = ap.user_id
|
||||
WHERE
|
||||
ap.delete_flag = '0'
|
||||
<if test="practitionerIdList != null and !practitionerIdList.isEmpty()">
|
||||
AND ap.ID IN
|
||||
<foreach collection="practitionerIdList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="getOrgAndLocationDtoList" resultType="com.openhis.web.basedatamanage.dto.PractitionerOrgAndLocationDto">
|
||||
SELECT
|
||||
t1.practitioner_id,
|
||||
t1.role_code,
|
||||
t1.org_id,
|
||||
t1.location_id
|
||||
FROM
|
||||
adm_practitioner_role AS T1
|
||||
WHERE
|
||||
t1.delete_flag = '0'
|
||||
<if test="practitionerIdList != null and !practitionerIdList.isEmpty()">
|
||||
AND t1.practitioner_id IN
|
||||
<foreach collection="practitionerIdList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<delete id="delUserRole">
|
||||
delete
|
||||
from sys_user_role
|
||||
where user_id = #{userId}
|
||||
</delete>
|
||||
|
||||
<delete id="delPractitionerRole">
|
||||
delete
|
||||
from adm_practitioner_role
|
||||
where practitioner_id = #{practitionerId}
|
||||
</delete>
|
||||
|
||||
<select id="getSelectableOrgList" resultType="com.openhis.web.basedatamanage.dto.SelectableOrgDto">
|
||||
SELECT apr.org_id AS org_id,
|
||||
ao.NAME AS org_name
|
||||
FROM adm_practitioner_role AS apr
|
||||
INNER JOIN adm_organization AS ao ON ao.ID = apr.org_id
|
||||
AND ao.delete_flag = '0'
|
||||
WHERE apr.delete_flag = '0'
|
||||
AND apr.practitioner_id = #{practitionerId}
|
||||
GROUP BY apr.org_id,
|
||||
ao.NAME
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.basicservice.mapper.HealthcareServiceBizMapper">
|
||||
|
||||
<select id="getHealthcareServicePage" resultType="com.openhis.web.basicservice.dto.HealthcareServiceDto">
|
||||
SELECT T3.id,
|
||||
T3.tenant_id,
|
||||
T3.active_flag,
|
||||
T3.offered_org_id,
|
||||
T3.category_code,
|
||||
T3.type_code,
|
||||
T3.specialty_code,
|
||||
T3.location_id,
|
||||
T3.NAME,
|
||||
T3.COMMENT,
|
||||
T3.extra_details,
|
||||
T3.contact,
|
||||
T3.appointment_required_flag,
|
||||
T3.definition_id,
|
||||
T3.charge_name,
|
||||
T3.price,
|
||||
T3.activity_price
|
||||
FROM (
|
||||
SELECT T1.ID,
|
||||
T1.tenant_id,
|
||||
T1.active_flag,
|
||||
T1.offered_org_id,
|
||||
T1.category_code,
|
||||
T1.type_code,
|
||||
T1.specialty_code,
|
||||
T1.location_id,
|
||||
T1.NAME,
|
||||
T1.COMMENT,
|
||||
T1.extra_details,
|
||||
T1.contact,
|
||||
T1.appointment_required_flag,
|
||||
T2.ID AS definition_id,
|
||||
T2.charge_name,
|
||||
T2.price,
|
||||
COALESCE(activity_sum.price_sum, 0) AS activity_price
|
||||
FROM adm_healthcare_service AS T1
|
||||
LEFT JOIN adm_charge_item_definition AS T2 ON T2.instance_id = T1.ID
|
||||
AND T2.instance_table = #{tableName}
|
||||
LEFT JOIN (
|
||||
SELECT tad.item_no,
|
||||
SUM(acid.price) AS price_sum
|
||||
FROM tmp_activity_device AS tad
|
||||
JOIN adm_charge_item_definition AS acid ON acid.instance_id = tad.dev_act_id
|
||||
AND acid.delete_flag = '0'
|
||||
WHERE tad.delete_flag = '0'
|
||||
AND tad.dev_act_table = #{activityTableName}
|
||||
GROUP BY tad.item_no
|
||||
) AS activity_sum ON activity_sum.item_no = CAST(T1.ID AS TEXT)
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.active_flag = 1
|
||||
ORDER BY T1.create_time DESC
|
||||
) AS T3
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,677 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.catalogmanage.mapper.CatalogMapper">
|
||||
<select id="get1315Page" resultType="com.openhis.ybcatalog.domain.CatalogZySyndrome">
|
||||
SELECT
|
||||
T1.tcm_syndrome_id
|
||||
,T1.syndrome_class_code
|
||||
,T1.syndrome_class_name
|
||||
,T1.syndrome_property_code
|
||||
,T1.syndrome_property
|
||||
,T1.syndrome_type_code
|
||||
,T1.syndrome_type_name
|
||||
,T1.remark
|
||||
,T1.active_flag
|
||||
,T1.uni_record_id
|
||||
,T1.craet_time
|
||||
,T1.update_time
|
||||
,T1.version
|
||||
,T1.version_name
|
||||
FROM(
|
||||
SELECT
|
||||
tcm_syndrome_id
|
||||
,syndrome_class_code
|
||||
,syndrome_class_name
|
||||
,syndrome_property_code
|
||||
,syndrome_property
|
||||
,syndrome_type_code
|
||||
,syndrome_type_name
|
||||
,remark
|
||||
,active_flag
|
||||
,uni_record_id
|
||||
,craet_time
|
||||
,update_time
|
||||
,version
|
||||
,version_name
|
||||
FROM yb_catalog_zy_syndrome
|
||||
) AS T1
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="get1314Page" resultType="com.openhis.ybcatalog.domain.CatalogZyDiseaseDiagnosis">
|
||||
SELECT
|
||||
id
|
||||
,T1.category_code
|
||||
,T1.category_name
|
||||
,T1.specialty_system_category_code
|
||||
,T1.specialty_system_category_name
|
||||
,T1.disease_category_code
|
||||
,T1.disease_category_name
|
||||
,T1.remarks
|
||||
,T1.valid_flag
|
||||
,T1.unique_record_id
|
||||
,T1.create_time
|
||||
,T1.update_time
|
||||
,T1.version_number
|
||||
,T1.version_name
|
||||
FROM(
|
||||
SELECT
|
||||
id
|
||||
,category_code
|
||||
,category_name
|
||||
,specialty_system_category_code
|
||||
,specialty_system_category_name
|
||||
,disease_category_code
|
||||
,disease_category_name
|
||||
,remarks
|
||||
,valid_flag
|
||||
,unique_record_id
|
||||
,create_time
|
||||
,update_time
|
||||
,version_number
|
||||
,version_name
|
||||
FROM yb_catalog_zy_syndrome
|
||||
) AS T1
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="get1308Page" resultType="com.openhis.ybcatalog.domain.CatalogSurgeryStandardDirectory">
|
||||
SELECT
|
||||
id
|
||||
,T1.chapter
|
||||
,T1.chapter_code_range
|
||||
,T1.chapter_name
|
||||
,T1.category_code
|
||||
,T1.category_name
|
||||
,T1.subcategory_code
|
||||
,T1.subcategory_name
|
||||
,T1.item_code
|
||||
,T1.item_name
|
||||
,T1.operation_code
|
||||
,T1.operation_name
|
||||
,T1.usage_flag
|
||||
,T1.group_standard_operation_code
|
||||
,T1.group_standard_operation_name
|
||||
,T1.clinical_version_operation_code
|
||||
,T1.clinical_version_operation_name
|
||||
,T1.remarks
|
||||
,T1.valid_flag
|
||||
,T1.unique_record_id
|
||||
,T1.create_time
|
||||
,T1.update_time
|
||||
,T1.version_number
|
||||
,T1.version_name
|
||||
FROM(
|
||||
SELECT
|
||||
id
|
||||
,chapter
|
||||
,chapter_code_range
|
||||
,chapter_name
|
||||
,category_code
|
||||
,category_name
|
||||
,subcategory_code
|
||||
,subcategory_name
|
||||
,item_code
|
||||
,item_name
|
||||
,operation_code
|
||||
,operation_name
|
||||
,usage_flag
|
||||
,group_standard_operation_code
|
||||
,group_standard_operation_name
|
||||
,clinical_version_operation_code
|
||||
,clinical_version_operation_name
|
||||
,remarks
|
||||
,valid_flag
|
||||
,unique_record_id
|
||||
,create_time
|
||||
,update_time
|
||||
,version_number
|
||||
,version_name
|
||||
FROM yb_catalog_surgery_standard_directory
|
||||
) AS T1
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="get1307Page" resultType="com.openhis.ybcatalog.domain.CatalogWesternDisease">
|
||||
SELECT
|
||||
disease_id
|
||||
,T1.chapter
|
||||
,T1.chapter_code_range
|
||||
,T1.chapter_name
|
||||
,T1.section_code_range
|
||||
,T1.section_name
|
||||
,T1.category_code
|
||||
,T1.category_name
|
||||
,T1.subcategory_code
|
||||
,T1.subcategory_name
|
||||
,T1.diagnosis_code
|
||||
,T1.diagnosis_name
|
||||
,T1.usage_flag
|
||||
,T1.gb_diagnosis_code
|
||||
,T1.gb_diagnosis_name
|
||||
,T1.clinical_code
|
||||
,T1.clinical_name
|
||||
,T1.remarks
|
||||
,T1.valid_flag
|
||||
,T1.unique_record_id
|
||||
,T1.create_time
|
||||
,T1.update_time
|
||||
,T1.version_number
|
||||
,T1.version_name
|
||||
FROM(
|
||||
SELECT
|
||||
disease_id
|
||||
,chapter
|
||||
,chapter_code_range
|
||||
,chapter_name
|
||||
,section_code_range
|
||||
,section_name
|
||||
,category_code
|
||||
,category_name
|
||||
,subcategory_code
|
||||
,subcategory_name
|
||||
,diagnosis_code
|
||||
,diagnosis_name
|
||||
,usage_flag
|
||||
,gb_diagnosis_code
|
||||
,gb_diagnosis_name
|
||||
,clinical_code
|
||||
,clinical_name
|
||||
,remarks
|
||||
,valid_flag
|
||||
,unique_record_id
|
||||
,create_time
|
||||
,update_time
|
||||
,version_number
|
||||
,version_name
|
||||
FROM yb_catalog_western_disease
|
||||
) AS T1
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="get1306Page" resultType="com.openhis.ybcatalog.domain.CatalogMedicalConsumables">
|
||||
SELECT
|
||||
T1.medical_catalog_code
|
||||
,T1.consumable_name
|
||||
,T1.device_unique_id
|
||||
,T1.insurance_generic_code
|
||||
,T1.insurance_generic_name
|
||||
,T1.product_model
|
||||
,T1.spec_code
|
||||
,T1.specification
|
||||
,T1.consumable_category
|
||||
,T1.spec_model
|
||||
,T1.material_code
|
||||
,T1.material_type
|
||||
,T1.package_spec
|
||||
,T1.package_quantity
|
||||
,T1.package_material
|
||||
,T1.package_unit
|
||||
,T1.conversion_ratio
|
||||
,T1.min_usage_unit
|
||||
,T1.production_area_type
|
||||
,T1.production_area_name
|
||||
,T1.product_standard
|
||||
,T1.expiry_date
|
||||
,T1.structure_composition
|
||||
,T1.applicable_scope
|
||||
,T1.usage_method
|
||||
,T1.image_code
|
||||
,T1.quality_standard
|
||||
,T1.instructions
|
||||
,T1.proof_materials
|
||||
,T1.special_device_flag
|
||||
,T1.special_device_name
|
||||
,T1.kit_name
|
||||
,T1.kit_flag
|
||||
,T1.usage_restriction_flag
|
||||
,T1.insurance_restriction
|
||||
,T1.min_sale_unit
|
||||
,T1.high_value_flag
|
||||
,T1.medical_material_code
|
||||
,T1.implant_flag
|
||||
,T1.sterilization_flag
|
||||
,T1.sterilization_name
|
||||
,T1.implant_intervention_flag
|
||||
,T1.implant_intervention_name
|
||||
,T1.disposable_flag
|
||||
,T1.disposable_flag_name
|
||||
,T1.registrant_name
|
||||
,T1.start_date
|
||||
,T1.end_date
|
||||
,T1.device_management_category
|
||||
,T1.device_category_name
|
||||
,T1.registration_no
|
||||
,T1.registered_product_name
|
||||
,T1.structure_details
|
||||
,T1.other_content
|
||||
,T1.approval_date
|
||||
,T1.registrant_address
|
||||
,T1.cert_effective_start
|
||||
,T1.cert_effective_end
|
||||
,T1.manufacturer_code
|
||||
,T1.manufacturer_name
|
||||
,T1.production_address
|
||||
,T1.agent_company
|
||||
,T1.agent_address
|
||||
,T1.production_country
|
||||
,T1.service_agency
|
||||
,T1.cert_archive_path
|
||||
,T1.product_images
|
||||
,T1.valid_flag
|
||||
,T1.unique_record_id
|
||||
,T1.version_number
|
||||
,T1.version_name
|
||||
FROM(
|
||||
SELECT
|
||||
medical_catalog_code
|
||||
,T1.consumable_name
|
||||
,T1.device_unique_id
|
||||
,insurance_generic_code
|
||||
,insurance_generic_name
|
||||
,product_model
|
||||
,spec_code
|
||||
,specification
|
||||
,consumable_category
|
||||
,spec_model
|
||||
,material_code
|
||||
,material_type
|
||||
,package_spec
|
||||
,package_quantity
|
||||
,package_material
|
||||
,package_unit
|
||||
,conversion_ratio
|
||||
,min_usage_unit
|
||||
,production_area_type
|
||||
,production_area_name
|
||||
,product_standard
|
||||
,expiry_date
|
||||
,structure_composition
|
||||
,applicable_scope
|
||||
,usage_method
|
||||
,image_code
|
||||
,quality_standard
|
||||
,instructions
|
||||
,proof_materials
|
||||
,special_device_flag
|
||||
,special_device_name
|
||||
,kit_name
|
||||
,kit_flag
|
||||
,usage_restriction_flag
|
||||
,insurance_restriction
|
||||
,min_sale_unit
|
||||
,high_value_flag
|
||||
,medical_material_code
|
||||
,implant_flag
|
||||
,sterilization_flag
|
||||
,sterilization_name
|
||||
,implant_intervention_flag
|
||||
,implant_intervention_name
|
||||
,disposable_flag
|
||||
,disposable_flag_name
|
||||
,registrant_name
|
||||
,start_date
|
||||
,end_date
|
||||
,device_management_category
|
||||
,device_category_name
|
||||
,registration_no
|
||||
,registered_product_name
|
||||
,structure_details
|
||||
,other_content
|
||||
,approval_date
|
||||
,registrant_address
|
||||
,cert_effective_start
|
||||
,cert_effective_end
|
||||
,manufacturer_code
|
||||
,manufacturer_name
|
||||
,production_address
|
||||
,agent_company
|
||||
,agent_address
|
||||
,production_country
|
||||
,service_agency
|
||||
,cert_archive_path
|
||||
,product_images
|
||||
,valid_flag
|
||||
,unique_record_id
|
||||
,version_number
|
||||
,version_name
|
||||
FROM yb_catalog_medical_consumables
|
||||
) AS T1
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="get1305Page" resultType="com.openhis.ybcatalog.domain.CatalogMedicalService">
|
||||
SELECT
|
||||
T1.tenant_id
|
||||
,T1.medical_catalog_code
|
||||
,T1.billing_unit
|
||||
,T1.billing_unit_name
|
||||
,T1.medical_item_desc
|
||||
,T1.exclusion_content
|
||||
,T1.medical_item_connotation
|
||||
,T1.valid_flag
|
||||
,T1.remarks
|
||||
,T1.service_category
|
||||
,T1.medical_service_name
|
||||
,T1.project_description
|
||||
,T1.start_date
|
||||
,T1.end_date
|
||||
,T1.unique_record_id
|
||||
,T1.version_number
|
||||
,T1.version_name
|
||||
,T1.issuance_flag
|
||||
,T1.transfer_data_id
|
||||
,T1.effective_time
|
||||
,T1.expiry_time
|
||||
FROM(
|
||||
SELECT
|
||||
#{tenantId} AS tenant_id
|
||||
,medical_catalog_code
|
||||
,billing_unit
|
||||
,billing_unit_name
|
||||
,medical_item_desc
|
||||
,exclusion_content
|
||||
,medical_item_connotation
|
||||
,valid_flag
|
||||
,remarks
|
||||
,service_category
|
||||
,medical_service_name
|
||||
,project_description
|
||||
,start_date
|
||||
,end_date
|
||||
,unique_record_id
|
||||
,version_number
|
||||
,version_name
|
||||
,issuance_flag
|
||||
,transfer_data_id
|
||||
,effective_time
|
||||
,expiry_time
|
||||
-- 添加窗口函数用于分组内排序
|
||||
,ROW_NUMBER() OVER (
|
||||
PARTITION BY medical_catalog_code
|
||||
ORDER BY version_number DESC
|
||||
) AS row_num_max
|
||||
FROM yb_catalog_medical_service
|
||||
) AS T1
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="get1302Page" resultType="com.openhis.ybcatalog.domain.CatalogMedicalHerbInfo">
|
||||
SELECT
|
||||
T1.medical_catalog_code,
|
||||
T1.single_drug_name,
|
||||
T1.single_compound_flag,
|
||||
T1.quality_grade,
|
||||
T1.herbal_year,
|
||||
T1.medicinal_part,
|
||||
T1.safe_dosage,
|
||||
T1.conventional_usage,
|
||||
T1.properties_taste,
|
||||
T1.meridian_attribution,
|
||||
T1.species,
|
||||
T1.start_date,
|
||||
T1.end_date,
|
||||
T1.valid_flag,
|
||||
T1.unique_record_id,
|
||||
T1.create_time,
|
||||
T1.update_time,
|
||||
T1.version_number,
|
||||
T1.version_name,
|
||||
T1.herb_name,
|
||||
T1.indications,
|
||||
T1.processing_method,
|
||||
T1.efficacy_classification,
|
||||
T1.herb_source,
|
||||
T1.national_insurance_policy,
|
||||
T1.provincial_insurance_policy,
|
||||
T1.standard_name,
|
||||
T1.standard_page,
|
||||
T1.electronic_record,
|
||||
T1.issuance_flag,
|
||||
T1.transfer_data_id,
|
||||
T1.effective_time,
|
||||
T1.expiry_time
|
||||
FROM(
|
||||
SELECT
|
||||
medical_catalog_code,
|
||||
single_drug_name,
|
||||
single_compound_flag,
|
||||
quality_grade,
|
||||
herbal_year,
|
||||
medicinal_part,
|
||||
safe_dosage,
|
||||
conventional_usage,
|
||||
properties_taste,
|
||||
meridian_attribution,
|
||||
species,
|
||||
start_date,
|
||||
end_date,
|
||||
valid_flag,
|
||||
unique_record_id,
|
||||
create_time,
|
||||
update_time,
|
||||
version_number,
|
||||
version_name,
|
||||
herb_name,
|
||||
indications,
|
||||
processing_method,
|
||||
efficacy_classification,
|
||||
herb_source,
|
||||
national_insurance_policy,
|
||||
provincial_insurance_policy,
|
||||
standard_name,
|
||||
standard_page,
|
||||
electronic_record,
|
||||
issuance_flag,
|
||||
transfer_data_id,
|
||||
effective_time,
|
||||
expiry_time
|
||||
FROM
|
||||
yb_catalog_medical_herb_info
|
||||
) AS T1
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="get1301Page" resultType="com.openhis.ybcatalog.domain.CatalogDrugInfo">
|
||||
SELECT
|
||||
T1.tenant_id
|
||||
,T1.medical_catalog_code
|
||||
,T1.drug_trade_name
|
||||
,T1.generic_name_id
|
||||
,T1.drug_generic_name
|
||||
,T1.chemical_name
|
||||
,T1.alias
|
||||
,T1.english_name
|
||||
,T1.registered_name
|
||||
,T1.drug_supervision_code
|
||||
,T1.drug_form
|
||||
,T1.drug_form_name
|
||||
,T1.drug_category
|
||||
,T1.drug_category_name
|
||||
,T1.drug_specification
|
||||
,T1.drug_spec_code
|
||||
,T1.registered_form
|
||||
,T1.registered_spec
|
||||
,T1.registered_spec_code
|
||||
,T1.dosage
|
||||
,T1.frequency
|
||||
,T1.acid_base
|
||||
,T1.national_drug_code
|
||||
,T1.usage
|
||||
,T1.tcm_flag
|
||||
,T1.production_area_type
|
||||
,T1.production_area_name
|
||||
,T1.pricing_unit_type
|
||||
,T1.otc_flag
|
||||
,T1.otc_flag_name
|
||||
,T1.packaging_material
|
||||
,T1.packaging_material_name
|
||||
,T1.packaging_spec
|
||||
,T1.packaging_quantity
|
||||
,T1.function_indication
|
||||
,T1.administration_route
|
||||
,T1.instructions
|
||||
,T1.start_date
|
||||
,T1.end_date
|
||||
,T1.min_use_unit
|
||||
,T1.min_sale_unit
|
||||
,T1.min_measurement_unit
|
||||
,T1.min_package_quantity
|
||||
,T1.min_package_unit
|
||||
,T1.min_preparation_unit
|
||||
,T1.min_package_unit_name
|
||||
,T1.min_preparation_unit_name
|
||||
,T1.conversion_ratio
|
||||
,T1.shelf_life
|
||||
,T1.min_pricing_unit
|
||||
,T1.wubi_code
|
||||
,T1.pinyin_code
|
||||
,T1.repackager
|
||||
,T1.manufacturer_code
|
||||
,T1.manufacturer_name
|
||||
,T1.special_price_limit_flag
|
||||
,T1.special_drug_flag
|
||||
,T1.use_restriction
|
||||
,T1.use_restriction_flag
|
||||
,T1.registration_cert_no
|
||||
,T1.reg_cert_start_date
|
||||
,T1.reg_cert_end_date
|
||||
,T1.approval_no
|
||||
,T1.approval_start_date
|
||||
,T1.approval_end_date
|
||||
,T1.market_status
|
||||
,T1.market_status_name
|
||||
,T1.reg_document_archive
|
||||
,T1.supp_application_archive
|
||||
,T1.national_insurance_notes
|
||||
,T1.essential_drug_flag_name
|
||||
,T1.essential_drug_flag
|
||||
,T1.vat_adjustment_flag
|
||||
,T1.vat_adjustment_name
|
||||
,T1.listed_drug_flag
|
||||
,T1.negotiation_drug_flag
|
||||
,T1.negotiation_drug_name
|
||||
,T1.nhc_drug_code
|
||||
,T1.remarks
|
||||
,T1.valid_flag
|
||||
,T1.unique_record_id
|
||||
,T1.created_at
|
||||
,T1.updated_at
|
||||
,T1.version
|
||||
,T1.version_name
|
||||
,T1.pediatric_use
|
||||
,T1.company_name
|
||||
,T1.generic_evaluation_flag
|
||||
,T1.distribution_company
|
||||
,T1.distribution_contact
|
||||
,T1.distribution_auth_archive
|
||||
,T1.insurance_form
|
||||
,T1.insurance_class
|
||||
,T1.marketing_authorization_holder
|
||||
,T1.release_flag
|
||||
,T1.transmission_data_id
|
||||
,T1.valid_from
|
||||
,T1.valid_to
|
||||
FROM(
|
||||
SELECT
|
||||
#{tenantId} AS tenant_id
|
||||
,medical_catalog_code
|
||||
,drug_trade_name
|
||||
,generic_name_id
|
||||
,drug_generic_name
|
||||
,chemical_name
|
||||
,alias
|
||||
,english_name
|
||||
,registered_name
|
||||
,drug_supervision_code
|
||||
,drug_form
|
||||
,drug_form_name
|
||||
,drug_category
|
||||
,drug_category_name
|
||||
,drug_specification
|
||||
,drug_spec_code
|
||||
,registered_form
|
||||
,registered_spec
|
||||
,registered_spec_code
|
||||
,dosage
|
||||
,frequency
|
||||
,acid_base
|
||||
,national_drug_code
|
||||
,usage
|
||||
,tcm_flag
|
||||
,production_area_type
|
||||
,production_area_name
|
||||
,pricing_unit_type
|
||||
,otc_flag
|
||||
,otc_flag_name
|
||||
,packaging_material
|
||||
,packaging_material_name
|
||||
,packaging_spec
|
||||
,packaging_quantity
|
||||
,function_indication
|
||||
,administration_route
|
||||
,instructions
|
||||
,start_date
|
||||
,end_date
|
||||
,min_use_unit
|
||||
,min_sale_unit
|
||||
,min_measurement_unit
|
||||
,min_package_quantity
|
||||
,min_package_unit
|
||||
,min_preparation_unit
|
||||
,min_package_unit_name
|
||||
,min_preparation_unit_name
|
||||
,conversion_ratio
|
||||
,shelf_life
|
||||
,min_pricing_unit
|
||||
,wubi_code
|
||||
,pinyin_code
|
||||
,repackager
|
||||
,manufacturer_code
|
||||
,manufacturer_name
|
||||
,special_price_limit_flag
|
||||
,special_drug_flag
|
||||
,use_restriction
|
||||
,use_restriction_flag
|
||||
,registration_cert_no
|
||||
,reg_cert_start_date
|
||||
,reg_cert_end_date
|
||||
,approval_no
|
||||
,approval_start_date
|
||||
,approval_end_date
|
||||
,market_status
|
||||
,market_status_name
|
||||
,reg_document_archive
|
||||
,supp_application_archive
|
||||
,national_insurance_notes
|
||||
,essential_drug_flag_name
|
||||
,essential_drug_flag
|
||||
,vat_adjustment_flag
|
||||
,vat_adjustment_name
|
||||
,listed_drug_flag
|
||||
,negotiation_drug_flag
|
||||
,negotiation_drug_name
|
||||
,nhc_drug_code
|
||||
,remarks
|
||||
,valid_flag
|
||||
,unique_record_id
|
||||
,created_at
|
||||
,updated_at
|
||||
,version
|
||||
,version_name
|
||||
,pediatric_use
|
||||
,company_name
|
||||
,generic_evaluation_flag
|
||||
,distribution_company
|
||||
,distribution_contact
|
||||
,distribution_auth_archive
|
||||
,insurance_form
|
||||
,insurance_class
|
||||
,marketing_authorization_holder
|
||||
,release_flag
|
||||
,transmission_data_id
|
||||
,valid_from
|
||||
,valid_to
|
||||
-- 添加窗口函数用于分组内排序
|
||||
,ROW_NUMBER() OVER (
|
||||
PARTITION BY medical_catalog_code
|
||||
ORDER BY version DESC
|
||||
) AS row_num_max
|
||||
FROM yb_catalog_drug_info
|
||||
) AS T1
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,139 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.chargemanage.mapper.InpatientChargeAppMapper">
|
||||
|
||||
<select id="selectEncounterPatientPage"
|
||||
resultType="com.openhis.web.chargemanage.dto.EncounterPatientPageDto">
|
||||
SELECT T4.encounter_id,
|
||||
T4.encounter_bus_no,
|
||||
T4.patient_id,
|
||||
T4.reception_time,
|
||||
T4.patient_name,
|
||||
T4.patient_bus_no,
|
||||
T4.gender_enum,
|
||||
T4.birth_date,
|
||||
T4.id_card,
|
||||
T4.start_time,
|
||||
T4.patient_py_str,
|
||||
T4.patient_wb_str,
|
||||
T4.status_enum
|
||||
FROM (
|
||||
SELECT T1.id AS encounter_id,
|
||||
T1.bus_no AS encounter_bus_no,
|
||||
T1.patient_id,
|
||||
T1.reception_time,
|
||||
T1.delete_flag,
|
||||
T1.tenant_id,
|
||||
T2."name" AS patient_name,
|
||||
T2.bus_no AS patient_bus_no,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T1.start_time,
|
||||
T2.id_card,
|
||||
T2.py_str AS patient_py_str,
|
||||
T2.wb_str AS patient_wb_str,
|
||||
T3.status_enum
|
||||
FROM adm_encounter AS T1
|
||||
LEFT JOIN adm_patient AS T2
|
||||
ON T1.patient_id = T2.id
|
||||
INNER JOIN adm_charge_item AS T3
|
||||
ON T3.encounter_id = T1.id
|
||||
AND T3.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.class_enum = #{classEnum}
|
||||
GROUP BY T1.id,
|
||||
T1.bus_no,
|
||||
T1.patient_id,
|
||||
T1.reception_time,
|
||||
T1.delete_flag,
|
||||
T1.tenant_id,
|
||||
T2."name",
|
||||
T2.bus_no,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T2.id_card,
|
||||
T2.py_str,
|
||||
T2.wb_str,
|
||||
T3.status_enum
|
||||
ORDER BY T1.bus_no DESC
|
||||
) AS T4
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="selectEncounterPatientPrescription"
|
||||
resultType="com.openhis.web.chargemanage.dto.EncounterPatientPrescriptionDto">
|
||||
SELECT T1.encounter_id,
|
||||
T1.id,
|
||||
T1.patient_id,
|
||||
T1.context_enum,
|
||||
T1.status_enum,
|
||||
T1.requesting_org_id,
|
||||
T1.quantity_value,
|
||||
T1.quantity_unit,
|
||||
T1.unit_price,
|
||||
T1.total_price,
|
||||
T1.prescription_no,
|
||||
T1.bus_no,
|
||||
T1.entered_date,
|
||||
T1.account_id,
|
||||
T1.service_table,
|
||||
T5.enterer_id,
|
||||
T5.bill_date,
|
||||
T6.contract_no,
|
||||
T7.med_type_code,
|
||||
T8.contract_name,
|
||||
CASE
|
||||
WHEN T1.context_enum = #{activity} THEN T2."name"
|
||||
WHEN T1.context_enum = #{medication} THEN T3."name"
|
||||
WHEN T1.context_enum = #{device} THEN T4."name"
|
||||
END AS item_name,
|
||||
CASE
|
||||
WHEN T1.context_enum = #{activity} THEN T2.yb_no
|
||||
WHEN T1.context_enum = #{medication} THEN T3.yb_no
|
||||
WHEN T1.context_enum = #{device} THEN T4.yb_no
|
||||
END AS yb_no,
|
||||
CASE
|
||||
WHEN T1.context_enum = #{activity} THEN T2.id
|
||||
WHEN T1.context_enum = #{medication} THEN T3.id
|
||||
WHEN T1.context_enum = #{device} THEN T4.id
|
||||
END AS item_id
|
||||
FROM adm_charge_item AS T1
|
||||
LEFT JOIN wor_activity_definition AS T2
|
||||
ON T1.context_enum = #{activity}
|
||||
AND T1.product_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T3
|
||||
ON T1.context_enum = #{medication}
|
||||
AND T1.product_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition AS T4
|
||||
ON T1.context_enum = #{device}
|
||||
AND T1.product_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_reconciliation AS T5
|
||||
ON T1.id::TEXT = ANY(string_to_array(T5.charge_item_ids, ','))
|
||||
AND T5.delete_flag = '0'
|
||||
AND T5.status_enum = 1
|
||||
LEFT JOIN adm_account AS T6
|
||||
ON T1.account_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_diagnosis AS T7
|
||||
ON T1.encounter_id = T7.encounter_id
|
||||
AND T1.condition_id = T7.condition_id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN fin_contract AS T8
|
||||
ON T6.contract_no = T8.bus_no
|
||||
AND T8.delete_flag = '0'
|
||||
WHERE T1.encounter_id = #{encounterId}
|
||||
AND T1.status_enum IN (#{planned}
|
||||
, #{billable}
|
||||
, #{billed}
|
||||
, #{refunding}
|
||||
, #{refunded}
|
||||
, #{partRefund})
|
||||
AND T1.context_enum != #{register}
|
||||
AND T1.entered_date >= #{startTime}
|
||||
AND T1.entered_date <= #{endTime}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.chargemanage.mapper.OutpatientChargeAppMapper">
|
||||
|
||||
<select id="selectEncounterPatientPage"
|
||||
resultType="com.openhis.web.chargemanage.dto.EncounterPatientPageDto">
|
||||
SELECT T4.encounter_id,
|
||||
T4.encounter_bus_no,
|
||||
T4.patient_id,
|
||||
T4.reception_time,
|
||||
T4.patient_name,
|
||||
T4.patient_bus_no,
|
||||
T4.gender_enum,
|
||||
T4.birth_date,
|
||||
T4.id_card,
|
||||
T4.patient_py_str,
|
||||
T4.patient_wb_str,
|
||||
T4.status_enum
|
||||
FROM (
|
||||
SELECT T1.id AS encounter_id,
|
||||
T1.bus_no AS encounter_bus_no,
|
||||
T1.patient_id,
|
||||
T1.reception_time,
|
||||
T1.delete_flag,
|
||||
T1.tenant_id,
|
||||
T2."name" AS patient_name,
|
||||
T2.bus_no AS patient_bus_no,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T2.id_card,
|
||||
T2.py_str AS patient_py_str,
|
||||
T2.wb_str AS patient_wb_str,
|
||||
T3.status_enum
|
||||
FROM adm_encounter AS T1
|
||||
LEFT JOIN adm_patient AS T2
|
||||
ON T1.patient_id = T2.id
|
||||
INNER JOIN adm_charge_item AS T3
|
||||
ON T3.encounter_id = T1.id
|
||||
AND T3.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
GROUP BY T1.id,
|
||||
T1.bus_no,
|
||||
T1.patient_id,
|
||||
T1.reception_time,
|
||||
T1.delete_flag,
|
||||
T1.tenant_id,
|
||||
T2."name",
|
||||
T2.bus_no,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T2.id_card,
|
||||
T2.py_str,
|
||||
T2.wb_str,
|
||||
T3.status_enum
|
||||
ORDER BY T1.bus_no DESC
|
||||
) AS T4
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="selectEncounterPatientPrescription"
|
||||
resultType="com.openhis.web.chargemanage.dto.EncounterPatientPrescriptionDto">
|
||||
SELECT T1.encounter_id,
|
||||
T1.id,
|
||||
T1.patient_id,
|
||||
T1.context_enum,
|
||||
T1.status_enum,
|
||||
T1.requesting_org_id,
|
||||
T1.quantity_value,
|
||||
T1.quantity_unit,
|
||||
T1.unit_price,
|
||||
T1.total_price,
|
||||
T1.prescription_no,
|
||||
T1.bus_no,
|
||||
T1.entered_date,
|
||||
T1.account_id,
|
||||
T1.service_table,
|
||||
T5.enterer_id,
|
||||
T5.bill_date,
|
||||
T6.contract_no,
|
||||
T7.med_type_code,
|
||||
T8.contract_name,
|
||||
CASE WHEN T1.context_enum = #{activity} THEN T2."name"
|
||||
WHEN T1.context_enum = #{medication} THEN T3."name"
|
||||
WHEN T1.context_enum = #{device} THEN T4."name"
|
||||
END AS item_name,
|
||||
CASE WHEN T1.context_enum = #{activity} THEN T2.yb_no
|
||||
WHEN T1.context_enum = #{medication} THEN T3.yb_no
|
||||
WHEN T1.context_enum = #{device} THEN T4.yb_no
|
||||
END AS yb_no,
|
||||
CASE WHEN T1.context_enum = #{activity} THEN T2.id
|
||||
WHEN T1.context_enum = #{medication} THEN T3.id
|
||||
WHEN T1.context_enum = #{device} THEN T4.id
|
||||
END AS item_id
|
||||
FROM adm_charge_item AS T1
|
||||
LEFT JOIN wor_activity_definition AS T2
|
||||
ON T1.context_enum = #{activity}
|
||||
AND T1.product_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T3
|
||||
ON T1.context_enum = #{medication}
|
||||
AND T1.product_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition AS T4
|
||||
ON T1.context_enum = #{device}
|
||||
AND T1.product_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_reconciliation AS T5
|
||||
ON T1.id::TEXT = ANY(string_to_array(T5.charge_item_ids, ','))
|
||||
AND T5.delete_flag = '0'
|
||||
AND T5.status_enum = 1
|
||||
LEFT JOIN adm_account AS T6
|
||||
ON T1.account_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_diagnosis AS T7
|
||||
ON T1.encounter_id = T7.encounter_id
|
||||
AND T1.condition_id = T7.condition_id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN fin_contract AS T8
|
||||
ON T6.contract_no = T8.bus_no
|
||||
AND T8.delete_flag = '0'
|
||||
WHERE T1.encounter_id = #{encounterId}
|
||||
AND T1.status_enum IN (#{planned} ,#{billable} ,#{billed} ,#{refunding} ,#{refunded} ,#{partRefund})
|
||||
AND T1.context_enum != #{register}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.chargemanage.mapper.OutpatientPricingAppMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,475 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.chargemanage.mapper.OutpatientRefundAppMapper">
|
||||
<resultMap id="encounterPatientRefundMap"
|
||||
type="com.openhis.web.chargemanage.dto.EncounterPatientRefundDto">
|
||||
<!--患者退费项目信息-->
|
||||
<result property="paymentId" column="payment_id"/>
|
||||
<result property="entererId" column="enterer_id"/>
|
||||
<result property="encounterId" column="encounter_id"/>
|
||||
<result property="patientId" column="patient_id"/>
|
||||
<result property="prescriptionNo" column="prescription_no"/>
|
||||
<result property="busNo" column="bus_no"/>
|
||||
<result property="contractNo" column="contract_no"/>
|
||||
<result property="billDate" column="bill_date"/>
|
||||
<result property="chargeItemIds" column="charge_item_ids"/>
|
||||
<result property="itemName" column="item_name"/>
|
||||
<result property="orgName" column="org_name"/>
|
||||
<result property="entererName" column="enterer_name"/>
|
||||
<result property="chargeStatus" column="charge_status"/>
|
||||
<result property="paymentStatus" column="payment_status"/>
|
||||
<result property="dispenseStatus" column="dispense_status"/>
|
||||
<result property="serviceStatus" column="service_status"/>
|
||||
<result property="quantityValue" column="quantity_value"/>
|
||||
<result property="dispenseQuantity" column="dispense_quantity"/>
|
||||
<result property="quantityUnit" column="quantity_unit"/>
|
||||
<result property="unitPrice" column="unit_price"/>
|
||||
<result property="totalPrice" column="total_price"/>
|
||||
<result property="requestId" column="request_id"/>
|
||||
<result property="dispenseId" column="dispense_id"/>
|
||||
<result property="serviceTable" column="service_table"/>
|
||||
|
||||
<!--支付明细-->
|
||||
<collection property="paymentDetailList"
|
||||
ofType="com.openhis.yb.dto.PaymentDetailDto">
|
||||
<!--唯一值,避免相同数据合并-->
|
||||
<id column="payment_detail_id"/>
|
||||
<result property="payEnum" column="pay_enum"/>
|
||||
<!-- <result property="payLevelEnum" column="pay_level_enum"/>-->
|
||||
<result property="amount" column="amount"/>
|
||||
<result property="returnAmount" column="return_amount"/>
|
||||
<result property="chargeAmount" column="charge_amount"/>
|
||||
</collection>
|
||||
</resultMap>
|
||||
<select id="selectEncounterPatientPayment"
|
||||
resultType="com.openhis.web.chargemanage.dto.EncounterPatientPaymentDto">
|
||||
SELECT T1.id,
|
||||
T1.status_enum,
|
||||
T1.relation_id,
|
||||
T1.payment_no,
|
||||
T1.payment_enum,
|
||||
T1.location_id,
|
||||
T1.expiration_date,
|
||||
T1.tendered_amount,
|
||||
T1.returned_amount,
|
||||
T1.contract_no,
|
||||
T2.prescription_no,
|
||||
T2.account_id
|
||||
FROM fin_payment_reconciliation AS T1
|
||||
LEFT JOIN adm_charge_item AS T2
|
||||
-- 因为T2.id是long型,T1.charge_item_ids是例如 [1,2] 的string类型,所以需要先转类型再匹配
|
||||
ON T2.id::TEXT = ANY(string_to_array(T1.charge_item_ids, ','))
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE T1.encounter_id =#{encounterId}
|
||||
AND T1.status_enum IN (#{success})
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
<select id="selectRefundItem" resultType="com.openhis.web.chargemanage.dto.RefundItemDto">
|
||||
SELECT T1.id AS charge_item_id,
|
||||
T1.service_table,
|
||||
T1.service_id,
|
||||
T2.bus_no,
|
||||
T2.prescription_no,
|
||||
T2.quantity,
|
||||
T2.medication_id AS item_id,
|
||||
T2.unit_code,
|
||||
T1.unit_price,
|
||||
T1.total_price,
|
||||
T3.status_enum AS dispense_status,
|
||||
T3.not_performed_reason_enum AS not_performed_reason,
|
||||
0 AS service_status,
|
||||
T3.id AS dispense_id,
|
||||
T2.id AS request_id,
|
||||
T7.name AS item_name,
|
||||
T10.id AS payment_id,
|
||||
T1.status_enum AS refund_status
|
||||
FROM adm_charge_item AS T1
|
||||
LEFT JOIN med_medication_request AS T2
|
||||
ON T2.id = T1.service_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication_dispense AS T3
|
||||
ON T3.med_req_id = T2.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T7
|
||||
ON T1.product_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_reconciliation AS T10
|
||||
ON T1.id::TEXT = ANY(string_to_array(T10.charge_item_ids, ','))
|
||||
AND T10.delete_flag = '0'
|
||||
AND T10.status_enum = 1
|
||||
WHERE T1.service_table = #{medMedicationRequest}
|
||||
AND T1.delete_flag = '0'
|
||||
AND T2.refund_medicine_id IS NULL
|
||||
<if test="chargeItemIdList != null and !chargeItemIdList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="chargeItemIdList" item="chargeItemId" separator="," open="(" close=")">
|
||||
#{chargeItemId}
|
||||
</foreach>
|
||||
</if>
|
||||
UNION
|
||||
SELECT T1.id AS charge_item_id,
|
||||
T1.service_table,
|
||||
T1.service_id,
|
||||
T4.bus_no,
|
||||
T4.prescription_no,
|
||||
T4.quantity,
|
||||
T4.device_def_id AS item_id,
|
||||
T4.unit_code,
|
||||
T1.unit_price,
|
||||
T1.total_price,
|
||||
T5.status_enum AS dispense_status,
|
||||
T5.not_performed_reason_enum AS not_performed_reason,
|
||||
0 AS service_status,
|
||||
T5.id AS dispense_id,
|
||||
T4.id AS request_id,
|
||||
T8.name AS item_name,
|
||||
T10.id AS payment_id,
|
||||
T1.status_enum AS refund_status
|
||||
FROM adm_charge_item AS T1
|
||||
LEFT JOIN wor_device_request AS T4
|
||||
ON T4.id = T1.service_id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN wor_device_dispense AS T5
|
||||
ON T5.device_req_id = T4.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition AS T8
|
||||
ON T1.product_id = T8.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_reconciliation AS T10
|
||||
ON T1.id::TEXT = ANY(string_to_array(T10.charge_item_ids, ','))
|
||||
AND T10.delete_flag = '0'
|
||||
AND T10.status_enum = 1
|
||||
WHERE T1.service_table = #{worDeviceRequest}
|
||||
AND T4.refund_device_id IS NULL
|
||||
AND T1.delete_flag = '0'
|
||||
<if test="chargeItemIdList != null and !chargeItemIdList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="chargeItemIdList" item="chargeItemId" separator="," open="(" close=")">
|
||||
#{chargeItemId}
|
||||
</foreach>
|
||||
</if>
|
||||
UNION
|
||||
SELECT T1.id AS charge_item_id,
|
||||
T1.service_table,
|
||||
T1.service_id,
|
||||
T6.bus_no,
|
||||
T6.prescription_no,
|
||||
T6.quantity,
|
||||
T6.activity_id AS item_id,
|
||||
T6.unit_code,
|
||||
T1.unit_price,
|
||||
T1.total_price,
|
||||
0 AS dispense_status,
|
||||
null AS not_performed_reason,
|
||||
T6.status_enum AS service_status,
|
||||
null AS dispense_id,
|
||||
T6.id AS request_id,
|
||||
T9.name AS item_name,
|
||||
T10.id AS payment_id,
|
||||
T1.status_enum AS refund_status
|
||||
FROM adm_charge_item AS T1
|
||||
LEFT JOIN wor_service_request AS T6
|
||||
ON T6.id = T1.service_id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN wor_activity_definition AS T9
|
||||
ON T1.product_id = T9.id
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_reconciliation AS T10
|
||||
ON T1.id::TEXT = ANY(string_to_array(T10.charge_item_ids, ','))
|
||||
AND T10.delete_flag = '0'
|
||||
AND T10.status_enum = 1
|
||||
WHERE T1.service_table = #{worServiceRequest}
|
||||
AND T1.delete_flag = '0'
|
||||
<if test="chargeItemIdList != null and !chargeItemIdList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="chargeItemIdList" item="chargeItemId" separator="," open="(" close=")">
|
||||
#{chargeItemId}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
<select id="selectBilledEncounterPatientPage"
|
||||
resultType="com.openhis.web.chargemanage.dto.EncounterPatientPageDto">
|
||||
SELECT T8.encounter_id,
|
||||
T8.encounter_bus_no,
|
||||
T8.status_enum,
|
||||
T8.start_time,
|
||||
T8.patient_name,
|
||||
T8.patient_bus_no,
|
||||
T8.gender_enum,
|
||||
T8.birth_date,
|
||||
T8.id_card,
|
||||
T8.patient_py_str,
|
||||
T8.patient_wb_str,
|
||||
T8.type_code,
|
||||
T8.category_enum,
|
||||
T8.total_amount,
|
||||
T8.max_bill_date,
|
||||
T8.insurance_amount,
|
||||
T8.self_amount
|
||||
FROM (
|
||||
SELECT T1.id AS encounter_id,
|
||||
T1.bus_no AS encounter_bus_no,
|
||||
T1.start_time,
|
||||
T1.delete_flag,
|
||||
T1.tenant_id,
|
||||
T3.status_enum,
|
||||
T2."name" AS patient_name,
|
||||
T2.bus_no AS patient_bus_no,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T2.id_card,
|
||||
T2.py_str AS patient_py_str,
|
||||
T2.wb_str AS patient_wb_str,
|
||||
T4.type_code,
|
||||
T5.category_enum,
|
||||
SUM(T6.tendered_amount) AS total_amount,
|
||||
MAX(T6.bill_date) AS max_bill_date,
|
||||
CASE WHEN T7.account_code = #{insurance} THEN SUM(T7.amount) ELSE 0 END AS insurance_amount,
|
||||
CASE WHEN T7.account_code != #{insurance} THEN SUM(T7.amount) ELSE 0 END AS self_amount
|
||||
FROM adm_encounter AS T1
|
||||
LEFT JOIN adm_patient AS T2
|
||||
ON T1.patient_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item AS T3
|
||||
ON T3.encounter_id = T1.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_account AS T4
|
||||
ON T4.id = T3.account_id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN fin_contract AS T5
|
||||
ON T5.bus_no = T4.contract_no
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_reconciliation AS T6
|
||||
ON T6.encounter_id = T1.id
|
||||
AND T6.status_enum = 1
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_rec_detail AS T7
|
||||
ON T7.reconciliation_id = T6.id
|
||||
AND T7.delete_flag = '0'
|
||||
WHERE T3.status_enum IN (#{billed}, #{refunding}, #{refunded}, #{partRefund})
|
||||
AND T3.refund_id IS NULL
|
||||
AND T1.class_enum = #{amb}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.id,
|
||||
T1.bus_no,
|
||||
T1.start_time,
|
||||
T1.delete_flag,
|
||||
T1.tenant_id,
|
||||
T3.status_enum,
|
||||
T2."name",
|
||||
T2.bus_no,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T2.id_card,
|
||||
T2.py_str,
|
||||
T2.wb_str,
|
||||
T4.type_code,
|
||||
T5.category_enum,
|
||||
T7.account_code
|
||||
) AS T8
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY T8.max_bill_date DESC
|
||||
</select>
|
||||
<select id="selectEncounterPatientRefund" resultMap="encounterPatientRefundMap">
|
||||
SELECT aci.encounter_id,
|
||||
aci.bus_no,
|
||||
aci.status_enum AS charge_status,
|
||||
aci.quantity_unit,
|
||||
aci.quantity_value,
|
||||
aci.unit_price,
|
||||
aci.total_price,
|
||||
aci.service_table,
|
||||
mmr.prescription_no,
|
||||
mmr.id AS request_id,
|
||||
dis.status_enum AS dispense_status,
|
||||
0 AS service_status,
|
||||
dis.dispense_quantity,
|
||||
dis.id AS dispense_id,
|
||||
mmd."name" AS item_name,
|
||||
fpr.id AS payment_id,
|
||||
fpr.enterer_id,
|
||||
fpr.patient_id,
|
||||
fpr.status_enum AS payment_status,
|
||||
fpr.contract_no,
|
||||
fpr.bill_date,
|
||||
fpr.charge_item_ids,
|
||||
fprd.id AS payment_detail_id,
|
||||
fprd.target_enum,
|
||||
fprd.account_id,
|
||||
fprd.account_code,
|
||||
fprd.pay_enum,
|
||||
fprd.pay_level_enum,
|
||||
fprd.amount,
|
||||
fprd.return_amount,
|
||||
fprd.charge_amount,
|
||||
ao."name" AS org_name,
|
||||
ap."name" AS enterer_name
|
||||
FROM adm_charge_item aci
|
||||
LEFT JOIN med_medication_request mmr
|
||||
ON aci.service_id = mmr.refund_medicine_id
|
||||
AND mmr.refund_medicine_id IS NOT NULL
|
||||
AND mmr.delete_flag = '0'
|
||||
LEFT JOIN med_medication_dispense dis
|
||||
ON mmr.id = dis.med_req_id
|
||||
AND dis.delete_flag = '0'
|
||||
INNER JOIN med_medication_definition mmd
|
||||
ON aci.product_id = mmd.id
|
||||
AND mmd.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_reconciliation fpr
|
||||
ON aci.id::TEXT = ANY(string_to_array(fpr.charge_item_ids, ','))
|
||||
AND fpr.status_enum = 1
|
||||
AND fpr.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_rec_detail fprd
|
||||
ON fpr.id = fprd.reconciliation_id
|
||||
AND fprd.delete_flag = '0'
|
||||
LEFT JOIN adm_organization ao
|
||||
ON ao.id = aci.org_id
|
||||
AND ao.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner ap
|
||||
ON ap.id = fpr.enterer_id
|
||||
AND ap.delete_flag = '0'
|
||||
WHERE aci.encounter_id = #{encounterId}
|
||||
AND aci.status_enum IN (#{partRefund}
|
||||
, #{refunded}
|
||||
, #{refunding})
|
||||
AND aci.service_table = #{medMedicationRequest}
|
||||
AND aci.refund_id IS NULL
|
||||
AND aci.delete_flag = '0'
|
||||
AND TO_CHAR(fpr.bill_date
|
||||
, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{billDateSTime}
|
||||
AND #{billDateETime}
|
||||
UNION
|
||||
SELECT aci.encounter_id,
|
||||
aci.bus_no,
|
||||
aci.status_enum AS charge_status,
|
||||
aci.quantity_unit,
|
||||
aci.quantity_value,
|
||||
aci.unit_price,
|
||||
aci.total_price,
|
||||
aci.service_table,
|
||||
wdr.prescription_no,
|
||||
wdr.id AS request_id,
|
||||
wdd.status_enum AS dispense_status,
|
||||
0 AS service_status,
|
||||
wdd.dispense_quantity,
|
||||
wdd.id AS dispense_id,
|
||||
dev."name" AS item_name,
|
||||
fpr.id AS payment_id,
|
||||
fpr.enterer_id,
|
||||
fpr.patient_id,
|
||||
fpr.status_enum AS payment_status,
|
||||
fpr.contract_no,
|
||||
fpr.bill_date,
|
||||
fpr.charge_item_ids,
|
||||
fprd.id AS payment_detail_id,
|
||||
fprd.target_enum,
|
||||
fprd.account_id,
|
||||
fprd.account_code,
|
||||
fprd.pay_enum,
|
||||
fprd.pay_level_enum,
|
||||
fprd.amount,
|
||||
fprd.return_amount,
|
||||
fprd.charge_amount,
|
||||
ao."name" AS org_name,
|
||||
ap."name" AS enterer_name
|
||||
FROM adm_charge_item aci
|
||||
LEFT JOIN wor_device_request wdr
|
||||
ON aci.service_id = wdr.refund_device_id
|
||||
AND wdr.refund_device_id IS NOT NULL
|
||||
AND wdr.delete_flag = '0'
|
||||
LEFT JOIN wor_device_dispense wdd
|
||||
ON wdr.id = wdd.device_req_id
|
||||
AND wdd.delete_flag = '0'
|
||||
INNER JOIN adm_device_definition dev
|
||||
ON aci.product_id = dev.id
|
||||
AND dev.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_reconciliation fpr
|
||||
ON aci.id::TEXT = ANY(string_to_array(fpr.charge_item_ids, ','))
|
||||
AND fpr.status_enum = 1
|
||||
AND fpr.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_rec_detail fprd
|
||||
ON fpr.id = fprd.reconciliation_id
|
||||
AND fprd.delete_flag = '0'
|
||||
LEFT JOIN adm_organization ao
|
||||
ON ao.id = aci.org_id
|
||||
AND ao.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner ap
|
||||
ON ap.id = fpr.enterer_id
|
||||
AND ap.delete_flag = '0'
|
||||
WHERE aci.encounter_id = #{encounterId}
|
||||
AND aci.status_enum IN (#{partRefund}
|
||||
, #{refunded}
|
||||
, #{refunding})
|
||||
AND aci.service_table = #{worDeviceRequest}
|
||||
AND aci.refund_id IS NULL
|
||||
AND aci.delete_flag = '0'
|
||||
AND TO_CHAR(fpr.bill_date
|
||||
, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{billDateSTime}
|
||||
AND #{billDateETime}
|
||||
UNION
|
||||
SELECT aci.encounter_id,
|
||||
aci.bus_no,
|
||||
aci.status_enum AS charge_status,
|
||||
aci.quantity_unit,
|
||||
aci.quantity_value,
|
||||
aci.unit_price,
|
||||
aci.total_price,
|
||||
aci.service_table,
|
||||
wsr.prescription_no,
|
||||
wsr.id AS request_id,
|
||||
0 AS dispense_status,
|
||||
wsr.status_enum AS service_status,
|
||||
0 AS dispense_quantity,
|
||||
null AS dispense_id,
|
||||
wad."name" AS item_name,
|
||||
fpr.id AS payment_id,
|
||||
fpr.enterer_id,
|
||||
fpr.patient_id,
|
||||
fpr.status_enum AS payment_status,
|
||||
fpr.contract_no,
|
||||
fpr.bill_date,
|
||||
fpr.charge_item_ids,
|
||||
fprd.id AS payment_detail_id,
|
||||
fprd.target_enum,
|
||||
fprd.account_id,
|
||||
fprd.account_code,
|
||||
fprd.pay_enum,
|
||||
fprd.pay_level_enum,
|
||||
fprd.amount,
|
||||
fprd.return_amount,
|
||||
fprd.charge_amount,
|
||||
ao."name" AS org_name,
|
||||
ap."name" AS enterer_name
|
||||
FROM adm_charge_item aci
|
||||
LEFT JOIN wor_service_request wsr
|
||||
ON aci.service_id = wsr.id
|
||||
AND wsr.refund_service_id IS NOT NULL
|
||||
AND wsr.delete_flag = '0'
|
||||
INNER JOIN wor_activity_definition wad
|
||||
ON aci.product_id = wad.id
|
||||
AND wad.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_reconciliation fpr
|
||||
ON aci.id::TEXT = ANY(string_to_array(fpr.charge_item_ids,','))
|
||||
AND fpr.status_enum = 1
|
||||
AND fpr.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_rec_detail fprd
|
||||
ON fpr.id = fprd.reconciliation_id
|
||||
AND fprd.delete_flag = '0'
|
||||
LEFT JOIN adm_organization ao
|
||||
ON ao.id = aci.org_id
|
||||
AND ao.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner ap
|
||||
ON ap.id = fpr.enterer_id
|
||||
AND ap.delete_flag = '0'
|
||||
WHERE aci.encounter_id = #{encounterId}
|
||||
AND aci.status_enum IN (#{partRefund}
|
||||
, #{refunded}
|
||||
, #{refunding})
|
||||
AND aci.service_table = #{worServiceRequest}
|
||||
AND aci.refund_id IS NULL
|
||||
AND aci.delete_flag = '0'
|
||||
AND TO_CHAR(fpr.bill_date
|
||||
, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{billDateSTime}
|
||||
AND #{billDateETime}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,136 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.chargemanage.mapper.OutpatientRegistrationAppMapper">
|
||||
|
||||
<select id="getPractitionerMetadataPage" resultType="com.openhis.web.chargemanage.dto.PractitionerMetadata">
|
||||
SELECT T3.tenant_id,
|
||||
T3.ID,
|
||||
T3.NAME,
|
||||
T3.gender_enum,
|
||||
T3.py_str,
|
||||
T3.wb_str
|
||||
FROM (
|
||||
SELECT T1.tenant_id,
|
||||
T1.ID,
|
||||
T1.NAME,
|
||||
T1.gender_enum,
|
||||
T1.py_str,
|
||||
T1.wb_str
|
||||
FROM adm_practitioner AS T1
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND EXISTS(SELECT 1
|
||||
FROM adm_practitioner_role AS T2
|
||||
WHERE T2.practitioner_id = T1.ID
|
||||
AND T2.org_id = #{orgId}
|
||||
AND T2.ROLE_code = #{RoleCode})
|
||||
) AS T3
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getNumByPatientIdAndOrganizationId" resultType="Integer">
|
||||
SELECT COUNT
|
||||
(1)
|
||||
FROM adm_encounter
|
||||
WHERE delete_flag = '0'
|
||||
AND patient_id = #{patientId}
|
||||
AND service_type_id = #{serviceTypeId}
|
||||
AND status_enum != #{cancelled}
|
||||
AND create_time
|
||||
> CURRENT_DATE
|
||||
</select>
|
||||
|
||||
<select id="getCurrentDayEncounter" resultType="com.openhis.web.chargemanage.dto.CurrentDayEncounterDto">
|
||||
SELECT T9.tenant_id,
|
||||
T9.encounter_id,
|
||||
T9.organization_id,
|
||||
T9.organization_name,
|
||||
T9.healthcare_name,
|
||||
T9.practitioner_user_id,
|
||||
T9.practitioner_name,
|
||||
T9.contract_name,
|
||||
T9.patient_id,
|
||||
T9.patient_name,
|
||||
T9.gender_enum,
|
||||
T9.id_card,
|
||||
T9.status_enum,
|
||||
T9.register_time,
|
||||
T9.total_price,
|
||||
T9.account_name,
|
||||
T9.enterer_name,
|
||||
T9.charge_item_ids,
|
||||
T9.payment_id,
|
||||
T9.picture_url,
|
||||
T9.birth_date
|
||||
from (
|
||||
SELECT T1.tenant_id AS tenant_id,
|
||||
T1.id AS encounter_id,
|
||||
T1.organization_id AS organization_id,
|
||||
T2.NAME AS organization_name,
|
||||
T3.NAME AS healthcare_name,
|
||||
T5.user_id AS practitioner_user_id,
|
||||
T5.NAME AS practitioner_name,
|
||||
T7.contract_name AS contract_name,
|
||||
T8.id AS patient_id,
|
||||
T8.NAME AS patient_name,
|
||||
T8.gender_enum AS gender_enum,
|
||||
T8.id_card AS id_card,
|
||||
T1.status_enum AS status_enum,
|
||||
T1.create_time AS register_time,
|
||||
T10.total_price,
|
||||
T11."name" AS account_name,
|
||||
T12."name" AS enterer_name,
|
||||
T13.charge_item_ids,
|
||||
T13.id AS payment_id,
|
||||
ai.picture_url AS picture_url,
|
||||
T8.birth_date AS birth_date
|
||||
FROM adm_encounter AS T1
|
||||
LEFT JOIN adm_organization AS T2 ON T1.organization_id = T2.ID AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_healthcare_service AS T3 ON T1.service_type_id = T3.ID AND T3.delete_flag = '0'
|
||||
LEFT JOIN (
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT *,
|
||||
ROW_NUMBER() OVER (PARTITION BY encounter_id ORDER BY create_time ASC) AS rn
|
||||
FROM adm_encounter_participant
|
||||
WHERE delete_flag = '0'
|
||||
AND tenant_id = 1
|
||||
AND type_code = #{participantType}
|
||||
) t
|
||||
WHERE rn = 1
|
||||
) AS T4 ON T1.ID = T4.encounter_id
|
||||
LEFT JOIN adm_practitioner AS T5 ON T5.ID = T4.practitioner_id AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_account AS T6
|
||||
ON T1.ID = T6.encounter_id AND T6.delete_flag = '0' AND T6.encounter_flag = '1'
|
||||
LEFT JOIN fin_contract AS T7 ON T6.contract_no = T7.bus_no AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_patient AS T8 ON T1.patient_id = T8.ID AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item AS T10 ON T1.id = T10.encounter_id AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_account AS T11 ON T10.account_id = T11.id AND T11.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T12 ON T12.ID = T10.enterer_id AND T12.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_reconciliation T13
|
||||
ON T10.id::TEXT = ANY(string_to_array(T13.charge_item_ids,','))
|
||||
AND T13.delete_flag = '0'
|
||||
AND T13.status_enum = ${paymentStatus}
|
||||
LEFT JOIN adm_invoice AS ai
|
||||
ON ai.reconciliation_id = T13.id AND ai.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.class_enum = #{classEnum}
|
||||
-- AND T1.create_time
|
||||
-- > CURRENT_DATE
|
||||
AND T10.context_enum = #{register}
|
||||
) AS T9
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY T9.register_time DESC
|
||||
</select>
|
||||
|
||||
<select id="getTmpActivityList" resultType="com.openhis.web.personalization.dto.ActivityDeviceDto">
|
||||
SELECT dev_act_id,
|
||||
quantity
|
||||
FROM tmp_activity_device
|
||||
WHERE delete_flag = '0'
|
||||
AND item_no = #{itemId}
|
||||
AND dev_act_table = #{devActable}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,266 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.common.mapper.CommonAppMapper">
|
||||
|
||||
<select id="selectInventoryItemList" resultType="com.openhis.web.common.dto.InventoryItemDto">
|
||||
SELECT ii.tenant_id,
|
||||
ii.item_type,
|
||||
ii.category_code,
|
||||
ii.part_percent,
|
||||
ii.definition_id,
|
||||
ii.name,
|
||||
ii.item_bus_no,
|
||||
ii.py_str,
|
||||
ii.wb_str,
|
||||
ii.yb_no,
|
||||
ii.product_name,
|
||||
ii.unit_code,
|
||||
ii.min_unit_code,
|
||||
ii.manufacturer,
|
||||
ii.volume,
|
||||
ii.supplier,
|
||||
ii.item_table_name,
|
||||
ii.lot_number,
|
||||
ii.org_location_id,
|
||||
ii.purchase_amount
|
||||
FROM ( SELECT T1.tenant_id,
|
||||
#{medicine} AS item_type,
|
||||
T1.category_code AS category_code,
|
||||
T1.part_percent AS part_percent,
|
||||
T1.id AS definition_id,
|
||||
T1."name" AS "name",
|
||||
T1.bus_no AS item_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
T1.merchandise_name AS product_name,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.min_unit_code AS min_unit_code,
|
||||
T1.manufacturer_text AS manufacturer,
|
||||
T2.total_volume AS volume,
|
||||
T3."name" AS supplier,
|
||||
<choose>
|
||||
<when test="purchaseFlag != 1">
|
||||
T7.item_table AS item_table_name,
|
||||
T7.lot_number,
|
||||
T7.location_id AS org_location_id,
|
||||
NULL AS purchase_amount
|
||||
</when>
|
||||
<otherwise>
|
||||
NULL AS item_table_name,
|
||||
NULL AS lot_number,
|
||||
NULL AS org_location_id,
|
||||
T9.amount AS purchase_amount
|
||||
</otherwise>
|
||||
</choose>
|
||||
FROM med_medication_definition AS T1
|
||||
LEFT JOIN med_medication AS T2
|
||||
ON T2.medication_def_id = T1.ID
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier AS T3
|
||||
ON T3.ID = T1.supply_id
|
||||
AND T3.delete_flag = '0'
|
||||
<if test="purchaseFlag != 1">
|
||||
LEFT JOIN wor_inventory_item AS T7
|
||||
ON T7.item_id = T1.id
|
||||
AND T7.delete_flag = '0'
|
||||
</if>
|
||||
<if test="purchaseFlag != 0">
|
||||
LEFT JOIN adm_charge_item_definition AS T8
|
||||
ON T8.instance_id = T1.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T9
|
||||
ON T9.definition_id = T8.id
|
||||
AND T9.delete_flag = '0'
|
||||
</if>
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T2.status_enum != #{retired}
|
||||
<if test="purchaseFlag != 1">
|
||||
AND T7.item_id IS NOT NULL -- 确保连接有效性
|
||||
AND T7.item_table = #{medicationTableName}
|
||||
</if>
|
||||
<if test="purchaseFlag != 0">
|
||||
AND T9.condition_code = #{purchase}
|
||||
</if>
|
||||
UNION ALL
|
||||
SELECT T1.tenant_id,
|
||||
#{device} AS item_type,
|
||||
T1.category_code AS category_code,
|
||||
T1.part_percent AS part_percent,
|
||||
T1.id AS definition_id,
|
||||
T1."name" AS "name",
|
||||
T1.bus_no AS item_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
'' AS product_name,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.min_unit_code AS min_unit_code,
|
||||
T1.manufacturer_text AS manufacturer,
|
||||
T1."size" AS volume,
|
||||
T2."name" AS supplier,
|
||||
<choose>
|
||||
<when test="purchaseFlag != 1">
|
||||
T7.item_table AS item_table_name,
|
||||
T7.lot_number,
|
||||
T7.location_id AS org_location_id,
|
||||
NULL AS purchase_amount
|
||||
</when>
|
||||
<otherwise>
|
||||
NULL AS item_table_name,
|
||||
NULL AS lot_number,
|
||||
NULL AS org_location_id,
|
||||
T9.amount AS purchase_amount
|
||||
</otherwise>
|
||||
</choose>
|
||||
FROM adm_device_definition AS T1
|
||||
LEFT JOIN adm_supplier AS T2
|
||||
ON T2.ID = T1.supply_id
|
||||
AND T2.delete_flag = '0'
|
||||
<if test="purchaseFlag != 1">
|
||||
LEFT JOIN wor_inventory_item AS T7
|
||||
ON T7.item_id = T1.id
|
||||
AND T7.delete_flag = '0'
|
||||
</if>
|
||||
<if test="purchaseFlag != 0">
|
||||
LEFT JOIN adm_charge_item_definition AS T8
|
||||
ON T8.instance_id = T1.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T9
|
||||
ON T9.definition_id = T8.id
|
||||
AND T9.delete_flag = '0'
|
||||
</if>
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum != #{retired}
|
||||
<if test="purchaseFlag != 1">
|
||||
AND T7.item_id IS NOT NULL -- 确保连接有效性
|
||||
AND T7.item_table = #{deviceTableName}
|
||||
</if>
|
||||
<if test="purchaseFlag != 0">
|
||||
AND T9.condition_code = #{purchase}
|
||||
</if>
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectInventoryItemInfo" resultType="com.openhis.web.common.dto.LocationInventoryDto">
|
||||
SELECT T1.item_id,
|
||||
T1.item_table,
|
||||
SUM(CASE WHEN T1.location_id = #{objLocationId} THEN T1.quantity ELSE 0 END) AS obj_quantity,
|
||||
SUM(CASE WHEN T1.location_id = #{orgLocationId} THEN T1.quantity ELSE 0 END) AS org_quantity,
|
||||
T1.unit_code,
|
||||
T1.production_date,
|
||||
T1.lot_number,
|
||||
T1.expiration_date,
|
||||
MAX(T2."name") AS location_name,
|
||||
MAX(T3."name") AS location_store_name,
|
||||
T5.amount AS price,
|
||||
T1.supplier_id,
|
||||
CASE WHEN T1.item_table = #{medicationTableName}
|
||||
THEN ( SELECT T7.yb_no
|
||||
FROM med_medication_definition AS T7
|
||||
WHERE T1.item_id = T7.id
|
||||
AND T7.delete_flag = '0')
|
||||
WHEN T1.item_table = #{deviceTableName}
|
||||
THEN ( SELECT T8.yb_no
|
||||
FROM adm_device_definition AS T8
|
||||
WHERE T1.item_id = T8.id
|
||||
AND T8.delete_flag = '0'
|
||||
) ELSE null END AS yb_no, --医保编码
|
||||
CASE WHEN T1.item_table = #{medicationTableName}
|
||||
THEN ( SELECT T7.manufacturer_text
|
||||
FROM med_medication_definition AS T7
|
||||
WHERE T1.item_id = T7.id
|
||||
AND T7.delete_flag = '0')
|
||||
WHEN T1.item_table = #{deviceTableName}
|
||||
THEN ( SELECT T8.manufacturer_text
|
||||
FROM adm_device_definition AS T8
|
||||
WHERE T1.item_id = T8.id
|
||||
AND T8.delete_flag = '0')
|
||||
ELSE null END AS manufacturer,--生产厂家
|
||||
T6.name AS supplier_name
|
||||
FROM wor_inventory_item AS T1
|
||||
LEFT JOIN adm_location AS T2
|
||||
ON T2.id = T1.location_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T3
|
||||
ON T3.id = T1.location_store_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T4
|
||||
ON T4.instance_id = T1.item_id
|
||||
AND T4.delete_flag = '0'
|
||||
-- 使用子查询确保T5唯一记录 --
|
||||
LEFT JOIN (
|
||||
SELECT * FROM (
|
||||
SELECT definition_id,
|
||||
amount,
|
||||
ROW_NUMBER() OVER (PARTITION BY definition_id ORDER BY id DESC ) AS rn -- 按ID取最新记录,按需调整排序
|
||||
FROM adm_charge_item_def_detail
|
||||
WHERE delete_flag = '0'
|
||||
AND condition_code = '1'--1:批号进价
|
||||
) AS t
|
||||
WHERE rn = 1 -- 确保每个分组只取一条记录
|
||||
) AS T5 ON T5.definition_id = T4.id
|
||||
LEFT JOIN adm_supplier AS T6
|
||||
ON T6.id = T1.supplier_id
|
||||
AND T6.delete_flag = '0'
|
||||
WHERE T1.item_id = #{itemId}
|
||||
AND T1.inventory_status_enum != 3
|
||||
AND T1.delete_flag = '0'
|
||||
<choose>
|
||||
<when test="lotNumber != null">
|
||||
AND T1.lot_number = #{lotNumber}
|
||||
</when>
|
||||
</choose>
|
||||
<choose>
|
||||
<when test="objLocationId != null and objLocationId != ''">
|
||||
AND T1.location_id IN (#{orgLocationId}, #{objLocationId})
|
||||
</when>
|
||||
<otherwise>
|
||||
AND T1.location_id = #{orgLocationId}
|
||||
</otherwise>
|
||||
</choose>
|
||||
GROUP BY T1.item_id,
|
||||
T1.item_table,
|
||||
T1.unit_code,
|
||||
T1.production_date,
|
||||
T1.expiration_date,
|
||||
T1.lot_number,
|
||||
T5.amount,
|
||||
T1.supplier_id,
|
||||
T6.name
|
||||
ORDER BY T1.lot_number DESC
|
||||
</select>
|
||||
|
||||
<select id="getInfoByTraceNo" resultType="com.openhis.administration.domain.TraceNoManage">
|
||||
SELECT id,
|
||||
item_table,
|
||||
item_id,
|
||||
location_type_enum,
|
||||
location_id,
|
||||
location_store_id,
|
||||
lot_number,
|
||||
trace_no,
|
||||
status_enum,
|
||||
unit_code,
|
||||
operation_type,
|
||||
create_by,
|
||||
create_time,
|
||||
update_by,
|
||||
update_time,
|
||||
tenant_id,
|
||||
delete_flag
|
||||
FROM adm_trace_no_manage
|
||||
WHERE trace_no like #{traceNo}
|
||||
AND (trace_no) IN (
|
||||
SELECT trace_no
|
||||
FROM adm_trace_no_manage
|
||||
WHERE trace_no like #{traceNo}
|
||||
AND delete_flag = '0'
|
||||
GROUP BY trace_no
|
||||
HAVING SUM(CASE WHEN status_enum = 1 THEN 1 ELSE 0 END) > -- 进库次数
|
||||
SUM(CASE WHEN status_enum = 2 THEN 1 ELSE 0 END) -- 出库次数
|
||||
)
|
||||
AND delete_flag = '0'
|
||||
ORDER BY create_time DESC LIMIT 1
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,130 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.datadictionary.mapper.ActivityDefinitionManageMapper">
|
||||
<select id="getDiseaseTreatmentPage" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.datadictionary.dto.DiagnosisTreatmentDto">
|
||||
|
||||
SELECT
|
||||
T3.id,
|
||||
T3.category_code,
|
||||
T3.bus_no,
|
||||
T3.name,
|
||||
T3.py_str,
|
||||
T3.wb_str,
|
||||
T3.type_enum,
|
||||
T3.permitted_unit_code,
|
||||
T3.org_id,
|
||||
T3.location_id,
|
||||
T3.yb_flag,
|
||||
T3.yb_no,
|
||||
T3.yb_match_flag,
|
||||
T3.status_enum,
|
||||
T3.body_site_code,
|
||||
T3.specimen_code,
|
||||
T3.description_text,
|
||||
T3.rule_id,
|
||||
T3.tenant_id,
|
||||
T3.item_type_code,
|
||||
T3.yb_type,
|
||||
T3.retail_price,
|
||||
T3.maximum_retail_price,
|
||||
T3.chrgitm_lv,--医保等级
|
||||
T3.children_json,--子项json
|
||||
T3.pricing_flag--划价标记
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
T1.id,
|
||||
T1.category_code,
|
||||
T1.bus_no,
|
||||
T1.name,
|
||||
T1.py_str,
|
||||
T1.wb_str,
|
||||
T1.type_enum,
|
||||
T1.permitted_unit_code,
|
||||
T1.org_id,
|
||||
T1.location_id,
|
||||
T1.yb_flag,
|
||||
T1.yb_no,
|
||||
T1.yb_match_flag,
|
||||
T1.status_enum,
|
||||
T1.body_site_code,
|
||||
T1.specimen_code,
|
||||
T1.description_text,
|
||||
T1.rule_id,
|
||||
T1.tenant_id,
|
||||
T1.chrgitm_lv,--医保等级
|
||||
T2.type_code as item_type_code,
|
||||
T2.yb_type,
|
||||
T2.price as retail_price,--零售价
|
||||
( SELECT T4.amount
|
||||
FROM adm_charge_item_definition T5
|
||||
LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T5.id
|
||||
WHERE T4.condition_code = '4'--4:限制
|
||||
AND T5.instance_id = T1.id
|
||||
AND T5.instance_table = 'wor_activity_definition'
|
||||
) as maximum_retail_price,--最高零售价
|
||||
T1.children_json,--子项json
|
||||
T1.pricing_flag--划价标记
|
||||
FROM wor_activity_definition T1
|
||||
LEFT JOIN adm_charge_item_definition T2 ON T1.id = T2.instance_id
|
||||
<where>
|
||||
T1.delete_flag = '0'
|
||||
AND T2.instance_table = 'wor_activity_definition'
|
||||
</where>
|
||||
ORDER BY T1.bus_no DESC
|
||||
) AS T3
|
||||
${ew.customSqlSegment}
|
||||
|
||||
</select>
|
||||
|
||||
<select id="getDiseaseTreatmentOne" resultType="com.openhis.web.datadictionary.dto.DiagnosisTreatmentDto">
|
||||
SELECT
|
||||
T1.id,
|
||||
T1.category_code,
|
||||
T1.bus_no,
|
||||
T1.name,
|
||||
T1.py_str,
|
||||
T1.wb_str,
|
||||
T1.type_enum,
|
||||
T1.permitted_unit_code,
|
||||
T1.org_id,
|
||||
T1.location_id,
|
||||
T1.yb_flag,
|
||||
T1.yb_no,
|
||||
T1.yb_match_flag,
|
||||
T1.status_enum,
|
||||
T1.body_site_code,
|
||||
T1.specimen_code,
|
||||
T1.description_text,
|
||||
T1.rule_id,
|
||||
T1.tenant_id,
|
||||
T2.type_code as item_type_code,
|
||||
T2.yb_type,
|
||||
T2.price as retail_price,--零售价,
|
||||
( SELECT T4.amount
|
||||
FROM adm_charge_item_definition T5
|
||||
LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T5.id
|
||||
WHERE T4.condition_code = '4'--4:限制
|
||||
AND T5.instance_id = T1.id
|
||||
AND T5.instance_table = 'wor_activity_definition'
|
||||
) as maximum_retail_price,--最高零售价
|
||||
T1.chrgitm_lv,--医保等级
|
||||
T1.children_json,--子项json
|
||||
T1.pricing_flag--划价标记
|
||||
FROM wor_activity_definition T1
|
||||
LEFT JOIN adm_charge_item_definition T2 ON T1.id = T2.instance_id
|
||||
<where>
|
||||
T1.delete_flag = '0'
|
||||
AND T2.instance_table = 'wor_activity_definition'
|
||||
|
||||
<if test="id!= null">
|
||||
AND T1.id = #{id}
|
||||
</if>
|
||||
<if test="tenantId!= null">
|
||||
AND T1.tenant_id = #{tenantId}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,204 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.datadictionary.mapper.ChargeItemDefSearchMapper">
|
||||
<select id="getMedList" resultType="com.openhis.web.datadictionary.dto.ChargeItemDefPageDto">
|
||||
SELECT
|
||||
T5.id,
|
||||
T5.charge_name,
|
||||
T5.status_enum,
|
||||
T5.status_enum_text,
|
||||
T5.description,
|
||||
T5.effective_start,
|
||||
T5.effective_end,
|
||||
T5.instance_table,
|
||||
T5.price,
|
||||
T5.create_time,
|
||||
T5.update_time,
|
||||
T5.item_id,
|
||||
T5.condition_rule_id,
|
||||
T5.condition_value,
|
||||
T5.condition_code,
|
||||
T5.priority,
|
||||
T5.amount,
|
||||
T5.item_no,
|
||||
T5.py_str,
|
||||
T5.wb_str,
|
||||
T5.unit_code,
|
||||
T5.category_code,
|
||||
T5.part_percent,
|
||||
T5.total_volume,
|
||||
T5.lot_number
|
||||
FROM (
|
||||
SELECT
|
||||
T1.id,
|
||||
T1.charge_name,
|
||||
T1.status_enum,
|
||||
CASE
|
||||
WHEN T1.status_enum = 1 THEN '草稿'
|
||||
WHEN T1.status_enum = 2 THEN '有效'
|
||||
WHEN T1.status_enum = 3 THEN '停用'
|
||||
WHEN T1.status_enum = 4 THEN '未知'
|
||||
END AS status_enum_text,
|
||||
T1.description,
|
||||
T1.effective_start,
|
||||
T1.effective_end,
|
||||
T1.instance_table,
|
||||
T1.price,
|
||||
T1.create_time,
|
||||
T1.update_time,
|
||||
T2.id AS item_id,
|
||||
T2.condition_rule_id,
|
||||
T2.condition_value,
|
||||
T2.condition_code,
|
||||
T2.priority,
|
||||
T2.amount,
|
||||
T3.bus_no AS item_no,
|
||||
T3.py_str,
|
||||
T3.wb_str,
|
||||
T3.unit_code,
|
||||
T1.yb_type AS category_code,
|
||||
T3.part_percent,
|
||||
T4.total_volume,
|
||||
T4.lot_number
|
||||
FROM
|
||||
adm_charge_item_definition T1
|
||||
LEFT JOIN adm_charge_item_def_detail T2
|
||||
ON T1.id = T2.definition_id
|
||||
LEFT JOIN med_medication_definition T3
|
||||
ON T1.instance_id = T3.id
|
||||
LEFT JOIN med_medication T4
|
||||
ON T3.id = T4.medication_def_id
|
||||
ORDER BY T1.create_time DESC) T5
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="getDevList" resultType="com.openhis.web.datadictionary.dto.ChargeItemDefPageDto">
|
||||
SELECT
|
||||
T5.id,
|
||||
T5.charge_name,
|
||||
T5.status_enum,
|
||||
T5.status_enum_text,
|
||||
T5.description,
|
||||
T5.effective_start,
|
||||
T5.effective_end,
|
||||
T5.instance_table,
|
||||
T5.price,
|
||||
T5.create_time,
|
||||
T5.update_time,
|
||||
T5.item_id,
|
||||
T5.condition_rule_id,
|
||||
T5.condition_value,
|
||||
T5.condition_code,
|
||||
T5.priority,
|
||||
T5.amount,
|
||||
T5.item_no,
|
||||
T5.py_str,
|
||||
T5.wb_str,
|
||||
T5.unit_code,
|
||||
T5.category_code,
|
||||
T5.part_percent,
|
||||
T5.lot_number
|
||||
FROM (
|
||||
SELECT
|
||||
T1.id,
|
||||
T1.charge_name,
|
||||
T1.status_enum,
|
||||
CASE
|
||||
WHEN T1.status_enum = 1 THEN '草稿'
|
||||
WHEN T1.status_enum = 2 THEN '有效'
|
||||
WHEN T1.status_enum = 3 THEN '停用'
|
||||
WHEN T1.status_enum = 4 THEN '未知'
|
||||
END AS status_enum_text,
|
||||
T1.description,
|
||||
T1.effective_start,
|
||||
T1.effective_end,
|
||||
T1.instance_table,
|
||||
T1.price,
|
||||
T1.create_time,
|
||||
T1.update_time,
|
||||
T2.id AS item_id,
|
||||
T2.condition_rule_id,
|
||||
T2.condition_value,
|
||||
T2.condition_code,
|
||||
T2.priority,
|
||||
T2.amount,
|
||||
T3.bus_no AS item_no,
|
||||
T3.py_str,
|
||||
T3.wb_str,
|
||||
T3.unit_code AS unit_code,
|
||||
T1.yb_type AS category_code,
|
||||
T3.part_percent,
|
||||
T4.lot_number
|
||||
FROM
|
||||
adm_charge_item_definition T1
|
||||
LEFT JOIN adm_charge_item_def_detail T2
|
||||
ON T1.id = T2.definition_id
|
||||
LEFT JOIN adm_device_definition T3
|
||||
ON T1.instance_id = T3.id
|
||||
LEFT JOIN adm_device T4
|
||||
ON T3.id = T4.device_def_id
|
||||
ORDER BY T1.create_time DESC) T5
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="getActList" resultType="com.openhis.web.datadictionary.dto.ChargeItemDefPageDto">
|
||||
SELECT
|
||||
T5.id,
|
||||
T5.charge_name,
|
||||
T5.status_enum,
|
||||
T5.status_enum_text,
|
||||
T5.description,
|
||||
T5.effective_start,
|
||||
T5.effective_end,
|
||||
T5.instance_table,
|
||||
T5.price,
|
||||
T5.create_time,
|
||||
T5.update_time,
|
||||
T5.item_id,
|
||||
T5.condition_rule_id,
|
||||
T5.condition_value,
|
||||
T5.condition_code,
|
||||
T5.priority,
|
||||
T5.amount,
|
||||
T5.item_no,
|
||||
T5.py_str,
|
||||
T5.wb_str,
|
||||
T5.unit_code,
|
||||
T5.category_code
|
||||
FROM (
|
||||
SELECT
|
||||
T1.id,
|
||||
T1.charge_name,
|
||||
T1.status_enum,
|
||||
CASE
|
||||
WHEN T1.status_enum = 1 THEN '草稿'
|
||||
WHEN T1.status_enum = 2 THEN '有效'
|
||||
WHEN T1.status_enum = 3 THEN '停用'
|
||||
WHEN T1.status_enum = 4 THEN '未知'
|
||||
END AS status_enum_text,
|
||||
T1.description,
|
||||
T1.effective_start,
|
||||
T1.effective_end,
|
||||
T1.instance_table,
|
||||
T1.price,
|
||||
T1.create_time,
|
||||
T1.update_time,
|
||||
T2.id AS item_id,
|
||||
T2.condition_rule_id,
|
||||
T2.condition_value,
|
||||
T2.condition_code,
|
||||
T2.priority,
|
||||
T2.amount,
|
||||
T3.bus_no AS item_no,
|
||||
T3.py_str,
|
||||
T3.wb_str,
|
||||
T3.permitted_unit_code AS unit_code,
|
||||
T1.yb_type AS category_code
|
||||
FROM
|
||||
adm_charge_item_definition T1
|
||||
LEFT JOIN adm_charge_item_def_detail T2
|
||||
ON T1.id = T2.definition_id
|
||||
LEFT JOIN wor_activity_definition T3
|
||||
ON T1.instance_id = T3.id
|
||||
ORDER BY T1.create_time DESC) T5
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,180 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.datadictionary.mapper.DeviceManageMapper">
|
||||
<select id="getDevicePage" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.datadictionary.dto.DeviceManageDto">
|
||||
|
||||
SELECT
|
||||
T3.id,
|
||||
T3.bus_no,
|
||||
T3.name,
|
||||
T3.py_str,
|
||||
T3.wb_str,
|
||||
T3.category_code,
|
||||
T3.type_code,
|
||||
T3.unit_code,
|
||||
T3.size,
|
||||
T3.part_percent,
|
||||
T3.min_unit_code,
|
||||
T3.org_id,
|
||||
T3.location_id,
|
||||
T3.model_number,
|
||||
T3.hvcm_flag,
|
||||
T3.sales_unit_code,
|
||||
T3.approval_number,
|
||||
T3.yb_flag,
|
||||
T3.yb_no,
|
||||
T3.yb_org_no,
|
||||
T3.yb_match_flag,
|
||||
T3.status_enum,
|
||||
T3.manufacturer_id,
|
||||
T3.manufacturer_text,
|
||||
T3.supply_id,
|
||||
T3.description,
|
||||
T3.jurisdiction,
|
||||
T3.version,
|
||||
T3.substance_text,
|
||||
T3.allergen_flag,
|
||||
T3.tenant_id,
|
||||
T3.item_type_code,
|
||||
T3.yb_type,
|
||||
T3.rx_flag,--处方标志
|
||||
T3.chrgitm_lv,--医保等级
|
||||
T3.retail_price,
|
||||
T3.purchase_price,
|
||||
T3.maximum_retail_price
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
T1.id,
|
||||
T1.bus_no,
|
||||
T1.name,
|
||||
T1.py_str,
|
||||
T1.wb_str,
|
||||
T1.category_code,
|
||||
T1.type_code,
|
||||
T1.unit_code,
|
||||
T1.size,
|
||||
T1.part_percent,
|
||||
T1.min_unit_code,
|
||||
T1.org_id,
|
||||
T1.location_id,
|
||||
T1.model_number,
|
||||
T1.hvcm_flag,
|
||||
T1.sales_unit_code,
|
||||
T1.approval_number,
|
||||
T1.yb_flag,
|
||||
T1.yb_no,
|
||||
T1.yb_org_no,
|
||||
T1.yb_match_flag,
|
||||
T1.status_enum,
|
||||
T1.manufacturer_id,
|
||||
T1.manufacturer_text,
|
||||
T1.supply_id,
|
||||
T1.description,
|
||||
T1.jurisdiction,
|
||||
T1.version,
|
||||
T1.substance_text,
|
||||
T1.allergen_flag,
|
||||
T1.tenant_id,
|
||||
T1.rx_flag,--处方标志
|
||||
T1.chrgitm_lv,--医保等级
|
||||
T2.type_code as item_type_code,
|
||||
T2.yb_type,
|
||||
T2.price as retail_price,--零售价,
|
||||
( SELECT T4.amount
|
||||
FROM adm_charge_item_definition T5
|
||||
LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T5.id
|
||||
WHERE T4.condition_code = '2'--2:采购价
|
||||
AND T5.instance_id = T1.id
|
||||
AND T5.instance_table = 'adm_device_definition'
|
||||
) as purchase_price,--购入价
|
||||
( SELECT T4.amount
|
||||
FROM adm_charge_item_definition T5
|
||||
LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T5.id
|
||||
WHERE T4.condition_code = '4'--4:限制
|
||||
AND T5.instance_id = T1.id
|
||||
AND T5.instance_table = 'adm_device_definition'
|
||||
) as maximum_retail_price--最高零售价
|
||||
FROM adm_device_definition T1
|
||||
LEFT JOIN adm_charge_item_definition T2 ON T1.id = T2.instance_id
|
||||
<where>
|
||||
T1.delete_flag = '0'
|
||||
AND T2.instance_table = 'adm_device_definition'
|
||||
</where>
|
||||
ORDER BY T1.bus_no
|
||||
) AS T3
|
||||
${ew.customSqlSegment}
|
||||
|
||||
</select>
|
||||
|
||||
<select id="getOne" resultType="com.openhis.web.datadictionary.dto.DeviceManageDto">
|
||||
SELECT
|
||||
T1.id,
|
||||
T1.bus_no,
|
||||
T1.name,
|
||||
T1.py_str,
|
||||
T1.wb_str,
|
||||
T1.category_code,
|
||||
T1.type_code,
|
||||
T1.unit_code,
|
||||
T1.size,
|
||||
T1.part_percent,
|
||||
T1.min_unit_code,
|
||||
T1.org_id,
|
||||
T1.location_id,
|
||||
T1.model_number,
|
||||
T1.hvcm_flag,
|
||||
T1.sales_unit_code,
|
||||
T1.approval_number,
|
||||
T1.yb_flag,
|
||||
T1.yb_no,
|
||||
T1.yb_org_no,
|
||||
T1.yb_match_flag,
|
||||
T1.status_enum,
|
||||
T1.manufacturer_id,
|
||||
T1.manufacturer_text,
|
||||
T1.supply_id,
|
||||
T1.description,
|
||||
T1.jurisdiction,
|
||||
T1.version,
|
||||
T1.substance_text,
|
||||
T1.allergen_flag,
|
||||
T1.tenant_id,
|
||||
T1.rx_flag,--处方标志
|
||||
T1.chrgitm_lv,--医保等级
|
||||
T1.item_min_quantity,
|
||||
T1.item_max_quantity,
|
||||
T2.type_code as item_type_code,
|
||||
T2.yb_type,
|
||||
T2.price as retail_price,--零售价,
|
||||
( SELECT T4.amount
|
||||
FROM adm_charge_item_definition T5
|
||||
LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T5.id
|
||||
WHERE T4.condition_code = '2'--2:采购价
|
||||
AND T5.instance_id = T1.id
|
||||
AND T5.instance_table = 'adm_device_definition'
|
||||
) as purchase_price,--购入价
|
||||
( SELECT T4.amount
|
||||
FROM adm_charge_item_definition T5
|
||||
LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T5.id
|
||||
WHERE T4.condition_code = '4'--4:限制
|
||||
AND T5.instance_id = T1.id
|
||||
AND T5.instance_table = 'adm_device_definition'
|
||||
) as maximum_retail_price--最高零售价
|
||||
FROM adm_device_definition T1
|
||||
LEFT JOIN adm_charge_item_definition T2 ON T1.id = T2.instance_id
|
||||
<where>
|
||||
T1.delete_flag = '0'
|
||||
AND T2.instance_table = 'adm_device_definition'
|
||||
|
||||
<if test="id!= null">
|
||||
AND T1.id = #{id}
|
||||
</if>
|
||||
<if test="tenantId!= null">
|
||||
AND T1.tenant_id = #{tenantId}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.datadictionary.mapper.ItemDefinitionAppMapper">
|
||||
|
||||
<select id="getChargeItemInfo" resultType="com.openhis.web.datadictionary.dto.ItemDefinitionDto">
|
||||
SELECT
|
||||
cii.tenant_id,
|
||||
cii.ID,
|
||||
cii.charge_name,
|
||||
cii.status_enum,
|
||||
cii.org_id,
|
||||
cii.type_code,
|
||||
cii.yb_type,
|
||||
cii.instance_table,
|
||||
cii.price,
|
||||
cii.detail_count
|
||||
FROM
|
||||
(SELECT
|
||||
T1.tenant_id,
|
||||
T1.ID,
|
||||
T1.charge_name,
|
||||
T1.status_enum,
|
||||
T1.org_id,
|
||||
T1.type_code,
|
||||
T1.yb_type,
|
||||
T1.instance_table,
|
||||
T1.price,
|
||||
COUNT ( T2.ID ) AS detail_count
|
||||
FROM
|
||||
adm_charge_item_definition AS T1
|
||||
LEFT JOIN adm_charge_item_def_detail AS T2 ON T2.definition_id = T1.ID
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE
|
||||
T1.delete_flag = '0'
|
||||
<if test="chargeItemContext == 1 ">
|
||||
AND T1.instance_table = #{MED_MEDICATION_DEFINITION}
|
||||
</if>
|
||||
<if test="chargeItemContext == 2 ">
|
||||
AND T1.instance_table = #{ADM_DEVICE_DEFINITION}
|
||||
</if>
|
||||
<if test="chargeItemContext == 3 ">
|
||||
AND (T1.instance_table = #{WOR_ACTIVITY_DEFINITION} OR T1.instance_table = #{ADM_HEALTHCARE_SERVICE})
|
||||
</if>
|
||||
GROUP BY T1.tenant_id,
|
||||
T1.ID,
|
||||
T1.charge_name,
|
||||
T1.status_enum,
|
||||
T1.org_id,
|
||||
T1.type_code,
|
||||
T1.yb_type,
|
||||
T1.instance_table,
|
||||
T1.price
|
||||
) AS cii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getChargeItemInfoDetail" resultType="com.openhis.web.datadictionary.dto.ItemDefinitionDetailDto">
|
||||
SELECT condition_code,
|
||||
amount
|
||||
FROM adm_charge_item_def_detail
|
||||
WHERE delete_flag = '0'
|
||||
AND definition_id = #{id}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,355 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.datadictionary.mapper.MedicationManageSearchMapper">
|
||||
<!-- 药品信息分页查询-->
|
||||
<select id="getPage" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.datadictionary.dto.MedicationManageDto">
|
||||
SELECT
|
||||
T6.id,
|
||||
T6.medication_def_id,
|
||||
T6.status_enum,
|
||||
T6.org_id,
|
||||
T6.location_id,
|
||||
T6.dose_form_code,
|
||||
T6.total_volume,
|
||||
T6.ingredient_item,
|
||||
T6.active_flag,
|
||||
T6.lot_number,
|
||||
T6.effective_date,
|
||||
T6.expiration_date,
|
||||
T6.method_code,
|
||||
T6.rate_code,
|
||||
T6.dose,
|
||||
T6.dose_unit_code,
|
||||
T6.max_unit,
|
||||
T6.definition,
|
||||
T6.usage_limit,
|
||||
T6.ddd_code,
|
||||
T6.ddd_unit_code,
|
||||
T6.min_rate_code,
|
||||
T6.max_rate_code,
|
||||
T6.bus_no,
|
||||
T6.name,
|
||||
T6.domain_enum,
|
||||
T6.version,
|
||||
T6.name_en,
|
||||
T6.py_str,
|
||||
T6.wb_str,
|
||||
T6.category_code,
|
||||
T6.merchandise_name,
|
||||
T6.merchandise_py_str,
|
||||
T6.merchandise_wb_str,
|
||||
T6.unit_code,
|
||||
T6.comprised_text,
|
||||
T6.ingredient,
|
||||
T6.part_percent,
|
||||
T6.dose_from,
|
||||
T6.approval_number,
|
||||
T6.yb_match_flag,
|
||||
T6.yb_no,
|
||||
T6.pharmacology_category_code,
|
||||
T6.skin_test_flag,
|
||||
T6.inject_flag,
|
||||
T6.manufacturer_id,
|
||||
T6.manufacturer_text,
|
||||
T6.supply_id,
|
||||
T6.restricted_flag,
|
||||
T6.restricted_scope,
|
||||
T6.children_flag,
|
||||
T6.characteristic,
|
||||
T6.national_drug_code,
|
||||
T6.part_attribute_enum,
|
||||
T6.tho_part_attribute_enum,
|
||||
T6.antibiotic_code,
|
||||
T6.restricted_enum,
|
||||
T6.self_flag,
|
||||
T6.antibiotic_flag,
|
||||
T6.basic_flag,
|
||||
T6.remark,
|
||||
T6.item_min_quantity,--最小库存警戒数量(常规单位)
|
||||
T6.item_max_quantity,--最大库存警戒数量(常规单位)
|
||||
T6.yb_type,
|
||||
T6.type_code,
|
||||
T6.retail_price,
|
||||
T6.purchase_price,
|
||||
T6.retail_price,
|
||||
T6.chrgitm_lv,--医保等级
|
||||
T6.rx_flag,--处方标志
|
||||
T6.tenant_id
|
||||
FROM
|
||||
(
|
||||
SELECT T2.id,
|
||||
T2.medication_def_id,
|
||||
T2.status_enum,
|
||||
T2.org_id,
|
||||
T2.location_id,
|
||||
T2.dose_form_code,
|
||||
T2.total_volume,
|
||||
T2.ingredient_item,
|
||||
T2.active_flag,
|
||||
T2.lot_number,
|
||||
T2.effective_date,
|
||||
T2.expiration_date,
|
||||
T2.method_code,
|
||||
T2.rate_code,
|
||||
T2.dose,
|
||||
T2.dose_unit_code,
|
||||
T2.max_unit,
|
||||
T2.definition,
|
||||
T2.usage_limit,
|
||||
T2.ddd_code,
|
||||
T2.ddd_unit_code,
|
||||
T2.min_rate_code,
|
||||
T2.max_rate_code,
|
||||
T1.bus_no,
|
||||
T1.name,
|
||||
T1.domain_enum,
|
||||
T1.version,
|
||||
T1.name_en,
|
||||
T1.py_str,
|
||||
T1.wb_str,
|
||||
T1.category_code,
|
||||
T1.merchandise_name,
|
||||
T1.merchandise_py_str,
|
||||
T1.merchandise_wb_str,
|
||||
T1.unit_code,
|
||||
T1.comprised_text,
|
||||
T1.ingredient,
|
||||
T1.part_percent,
|
||||
T1.dose_from,
|
||||
T1.approval_number,
|
||||
T1.yb_match_flag,
|
||||
T1.yb_no,
|
||||
T1.pharmacology_category_code,
|
||||
T1.skin_test_flag,
|
||||
T1.inject_flag,
|
||||
T1.manufacturer_id,
|
||||
T1.manufacturer_text,
|
||||
T1.supply_id,
|
||||
T1.restricted_flag,
|
||||
T1.restricted_scope,
|
||||
T1.children_flag,
|
||||
T1.characteristic,
|
||||
T1.national_drug_code,
|
||||
T1.part_attribute_enum,
|
||||
T1.tho_part_attribute_enum,
|
||||
T1.antibiotic_code,
|
||||
T1.restricted_enum,
|
||||
T1.self_flag,
|
||||
T1.antibiotic_flag,
|
||||
T1.basic_flag,
|
||||
T1.remark,
|
||||
T1.item_min_quantity,--最小库存警戒数量(常规单位)
|
||||
T1.item_max_quantity,--最大库存警戒数量(常规单位)
|
||||
T5.yb_type,
|
||||
T5.type_code,
|
||||
T1.tenant_id,
|
||||
T1.chrgitm_lv,--医保等级
|
||||
T1.rx_flag,--处方标志
|
||||
T5.price as retail_price,--零售价
|
||||
(SELECT T7.amount
|
||||
FROM adm_charge_item_definition T5
|
||||
LEFT JOIN adm_charge_item_def_detail T7 ON T7.definition_id = T5.id
|
||||
WHERE T7.condition_code = '2'--2:采购价
|
||||
AND T5.instance_id = T2.medication_def_id
|
||||
AND T5.instance_table = 'med_medication_definition'
|
||||
) as purchase_price,--购入价
|
||||
(
|
||||
SELECT T7.amount
|
||||
FROM adm_charge_item_definition T5
|
||||
LEFT JOIN adm_charge_item_def_detail T7 ON T7.definition_id = T5.id
|
||||
WHERE T7.condition_code = '4'--4:限制
|
||||
AND T5.instance_id = T2.medication_def_id
|
||||
AND T5.instance_table = 'med_medication_definition'
|
||||
) as maximum_retail_price--最高零售价
|
||||
FROM med_medication_definition T1
|
||||
LEFT JOIN med_medication T2 ON T1.id = T2.medication_def_id AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition T5 ON T2.medication_def_id = T5.instance_id
|
||||
<where>
|
||||
T1.delete_flag = '0'
|
||||
AND T5.instance_table = 'med_medication_definition'
|
||||
</where>
|
||||
order by T2.status_enum ASC , T1.bus_no DESC
|
||||
) AS T6
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getOne" resultType="com.openhis.web.datadictionary.dto.MedicationManageDto">
|
||||
SELECT T2.id,
|
||||
T2.medication_def_id,
|
||||
T2.status_enum,
|
||||
T2.org_id,
|
||||
T2.location_id,
|
||||
T2.dose_form_code,
|
||||
T2.total_volume,
|
||||
T2.ingredient_item,
|
||||
T2.active_flag,
|
||||
T2.lot_number,
|
||||
T2.effective_date,
|
||||
T2.expiration_date,
|
||||
T2.method_code,
|
||||
T2.rate_code,
|
||||
T2.dose,
|
||||
T2.dose_unit_code,
|
||||
T2.max_unit,
|
||||
T2.definition,
|
||||
T2.usage_limit,
|
||||
T2.ddd_code,
|
||||
T2.ddd_unit_code,
|
||||
T2.min_rate_code,
|
||||
T2.max_rate_code,
|
||||
T1.bus_no,
|
||||
T1.name,
|
||||
T1.domain_enum,
|
||||
T1.version,
|
||||
T1.name_en,
|
||||
T1.py_str,
|
||||
T1.wb_str,
|
||||
T1.category_code,
|
||||
T1.merchandise_name,
|
||||
T1.merchandise_py_str,
|
||||
T1.merchandise_wb_str,
|
||||
T1.unit_code,
|
||||
T1.min_unit_code,
|
||||
T1.comprised_text,
|
||||
T1.ingredient,
|
||||
T1.part_percent,
|
||||
T1.dose_from,
|
||||
T1.approval_number,
|
||||
T1.yb_match_flag,
|
||||
T1.yb_no,
|
||||
T1.pharmacology_category_code,
|
||||
T1.skin_test_flag,
|
||||
T1.inject_flag,
|
||||
T1.manufacturer_id,
|
||||
T1.manufacturer_text,
|
||||
T1.supply_id,
|
||||
T1.restricted_flag,
|
||||
T1.restricted_scope,
|
||||
T1.children_flag,
|
||||
T1.characteristic,
|
||||
T1.national_drug_code,
|
||||
T1.part_attribute_enum,
|
||||
T1.tho_part_attribute_enum,
|
||||
T1.antibiotic_code,
|
||||
T1.restricted_enum,
|
||||
T1.self_flag,
|
||||
T1.antibiotic_flag,
|
||||
T1.basic_flag,
|
||||
T1.unit_conversion_ratio,--剂量单位换算比
|
||||
T1.chrgitm_lv,--医保等级
|
||||
T1.rx_flag,--处方标志
|
||||
T1.item_min_quantity,--最小库存警戒数量(常规单位)
|
||||
T1.item_max_quantity,--最大库存警戒数量(常规单位)
|
||||
T3.type_code,
|
||||
T3.yb_type,
|
||||
T3.price as retail_price,--零售价
|
||||
(SELECT T4.amount
|
||||
FROM adm_charge_item_definition T3
|
||||
LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T3.id
|
||||
WHERE T4.condition_code = '2'--2:采购价
|
||||
AND T3.instance_id = T2.medication_def_id
|
||||
AND T3.instance_table = 'med_medication_definition'
|
||||
) as purchase_price,--购入价
|
||||
(
|
||||
SELECT T4.amount
|
||||
FROM adm_charge_item_definition T3
|
||||
LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T3.id
|
||||
WHERE T4.condition_code = '4'--4:限制
|
||||
AND T3.instance_id = T2.medication_def_id
|
||||
AND T3.instance_table = 'med_medication_definition'
|
||||
) as maximum_retail_price--最高零售价
|
||||
FROM med_medication_definition T1
|
||||
LEFT JOIN med_medication T2 on T1.id = T2.medication_def_id
|
||||
LEFT JOIN adm_charge_item_definition T3 ON T2.medication_def_id = T3.instance_id
|
||||
<where>
|
||||
T1.delete_flag = '0'
|
||||
<if test="id!= null">
|
||||
AND T2.id = #{id}
|
||||
</if>
|
||||
<if test="tenantId!= null">
|
||||
AND T1.tenant_id = #{tenantId}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getList" resultType="com.openhis.web.datadictionary.dto.MedicationManageDto">
|
||||
SELECT T2.id,
|
||||
T2.medication_def_id,
|
||||
T2.status_enum,
|
||||
T2.org_id,
|
||||
T2.dose_form_code,
|
||||
T2.total_volume,
|
||||
T2.ingredient_item,
|
||||
T2.active_flag,
|
||||
T2.lot_number,
|
||||
T2.effective_date,
|
||||
T2.expiration_date,
|
||||
T2.method_code,
|
||||
T2.rate_code,
|
||||
T2.dose,
|
||||
T2.dose_unit_code,
|
||||
T2.max_unit,
|
||||
T2.definition,
|
||||
T1.bus_no,
|
||||
T1.name,
|
||||
T1.domain_enum,
|
||||
T1.version,
|
||||
T1.name_en,
|
||||
T1.py_str,
|
||||
T1.wb_str,
|
||||
T1.category_code,
|
||||
T1.merchandise_name,
|
||||
T1.merchandise_py_str,
|
||||
T1.merchandise_wb_str,
|
||||
T1.unit_code,
|
||||
T1.min_unit_code,
|
||||
T1.comprised_text,
|
||||
T1.ingredient,
|
||||
T1.part_percent,
|
||||
T1.dose_from,
|
||||
T1.approval_number,
|
||||
T1.yb_match_flag,
|
||||
T1.yb_no,
|
||||
T1.pharmacology_category_code,
|
||||
T1.skin_test_flag,
|
||||
T1.inject_flag,
|
||||
T1.manufacturer_id,
|
||||
T1.supply_id,
|
||||
T1.restricted_flag,
|
||||
T1.restricted_scope,
|
||||
T1.children_flag,
|
||||
T1.characteristic,
|
||||
T1.item_min_quantity,--最小库存警戒数量(常规单位)
|
||||
T1.item_max_quantity--最大库存警戒数量(常规单位)
|
||||
FROM med_medication_definition T1
|
||||
LEFT JOIN med_medication T2 on T1.id = T2.medication_def_id
|
||||
<where>
|
||||
T1.delete_flag = '0'
|
||||
<if test="searchKey!=null and searchKey!='' ">
|
||||
AND ( T1.name LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR
|
||||
T1.name_en LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR
|
||||
T1.merchandise_name LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR
|
||||
T1.bus_no LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR
|
||||
T1.py_str LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR
|
||||
T1.wb_str LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR
|
||||
T1.merchandise_py_str LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR
|
||||
T1.merchandise_wb_str LIKE CONCAT(CONCAT('%', #{searchKey}),'%'))
|
||||
</if>
|
||||
<if test="ybMatchFlag!= -1">
|
||||
AND T1.yb_match_flag = #{ybMatchFlag}
|
||||
</if>
|
||||
<if test="statusEnum!= -1">
|
||||
AND T2.status_enum = #{statusEnum}
|
||||
</if>
|
||||
<if test="categoryCode!=null and categoryCode!='' ">
|
||||
AND T1.category_code = #{categoryCode}
|
||||
</if>
|
||||
<if test="tenantId!= null">
|
||||
AND T1.tenant_id = #{tenantId}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY T1.bus_no
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,304 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.departmentmanage.mapper.DepartmentCommonMapper">
|
||||
<select id="getDeviceInfo"
|
||||
resultType="com.openhis.web.departmentmanage.dto.DepartmentDeviceInfoDto">
|
||||
SELECT T6.id,--物品id
|
||||
T6.bus_no,-- 药品编号
|
||||
T6.name,-- 物品名称
|
||||
T6.py_str,-- 拼音码
|
||||
T6.total_volume,--规格
|
||||
T6.unit_code,-- 包装单位
|
||||
T6.min_unit_code,--最小单位
|
||||
T6.part_percent,--拆零比
|
||||
T6.price,--进货单价
|
||||
T6.retailPrice,--零售价
|
||||
T6.manufacturer_text,-- 厂家/产地
|
||||
T6.approval_number,--批准文号
|
||||
T6.item_min_quantity, --库存最小警戒线
|
||||
T6.specification_inventory,--规格库存
|
||||
T6.batch_inventory,--批次库存
|
||||
T6.lot_number,
|
||||
T6.production_date,--生产日期
|
||||
T6.expiration_date,--失效日期
|
||||
<if test="locationId != null">
|
||||
T6.location_id,
|
||||
</if>
|
||||
T6.supplier_id,
|
||||
T6.tenant_id
|
||||
FROM (SELECT T1.id,--物品id
|
||||
T1.bus_no,-- 药品编号
|
||||
T1.name,-- 物品名称
|
||||
T1.py_str,-- 拼音码
|
||||
T1.size AS total_volume,--规格
|
||||
T1.unit_code,-- 包装单位
|
||||
T1.min_unit_code,--最小单位
|
||||
T1.part_percent,--拆零比
|
||||
CASE
|
||||
WHEN T9.lot_number IS NULL THEN
|
||||
CASE T4.condition_value
|
||||
WHEN T1.min_unit_code THEN T4.amount * T1.part_percent
|
||||
ELSE T4.amount END
|
||||
ELSE CASE T4.condition_value
|
||||
WHEN T1.min_unit_code THEN T10.amount * T1.part_percent
|
||||
ELSE T10.amount END
|
||||
END AS price,--进货单价(大单位)
|
||||
CASE
|
||||
WHEN T9.lot_number IS NULL THEN
|
||||
CASE T5.condition_value
|
||||
WHEN T1.min_unit_code THEN T5.amount * T1.part_percent
|
||||
ELSE T5.amount END
|
||||
ELSE CASE T5.condition_value
|
||||
WHEN T1.min_unit_code THEN T11.amount * T1.part_percent
|
||||
ELSE T11.amount END
|
||||
END AS retailPrice,--零售价(大单位)
|
||||
T1.manufacturer_text,-- 厂家/产地
|
||||
T1.approval_number,--批准文号
|
||||
T1.item_min_quantity * T1.part_percent AS item_min_quantity, --库存最小警戒线(小单位)
|
||||
COALESCE(CAST(T8.specification_inventory AS DECIMAL(18, 6)), 0.00) AS specification_inventory,--规格库存(小单位)
|
||||
COALESCE(CAST(T9.batch_inventory AS DECIMAL(18, 6)), 0.00) AS batch_inventory,--批次库存(小单位)
|
||||
T9.lot_number,
|
||||
T7.production_date,--生产日期
|
||||
T7.expiration_date,--失效日期
|
||||
<if test="locationId != null">
|
||||
T7.location_id,
|
||||
</if>
|
||||
T7.supplier_id,
|
||||
T1.tenant_id
|
||||
FROM adm_device_definition AS T1
|
||||
LEFT JOIN adm_device AS T2
|
||||
ON T1.id = T2.device_def_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition T3
|
||||
ON T3.instance_id = T1.id
|
||||
AND T3.instance_table = 'adm_device_definition'
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail T4
|
||||
ON T4.definition_id = T3.id
|
||||
AND T4.condition_code = '2'--2:采购价
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail T5
|
||||
ON T5.definition_id = T3.id
|
||||
AND T5.condition_code = '3'--2:单位
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item T7
|
||||
ON T7.item_table = 'adm_device_definition'
|
||||
AND T7.item_id = T1.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN (SELECT i1.item_table,
|
||||
i1.item_id,
|
||||
<if test="locationId != null">
|
||||
i1.location_id,
|
||||
</if>
|
||||
COALESCE(CAST(SUM(i1.quantity) AS DECIMAL(18, 6)), 0.00) AS specification_inventory
|
||||
FROM wor_inventory_item i1
|
||||
LEFT JOIN adm_device_definition i2 ON i1.item_id = i2.ID
|
||||
AND i2.delete_flag = '0'
|
||||
WHERE i1.item_table = 'adm_device_definition'
|
||||
AND i1.delete_flag = '0'
|
||||
GROUP BY i1.item_table,
|
||||
i1.item_id
|
||||
<if test="locationId != null">
|
||||
,i1.location_id
|
||||
</if>) T8
|
||||
ON T8.item_table = 'adm_device_definition'
|
||||
AND T8.item_id = T1.ID
|
||||
<if test="locationId != null">
|
||||
AND T8.location_id = T7.location_id
|
||||
</if>
|
||||
LEFT JOIN (SELECT i3.item_table,
|
||||
i3.item_id,
|
||||
i3.lot_number,
|
||||
<if test="locationId != null">
|
||||
i3.location_id,
|
||||
</if>
|
||||
COALESCE(CAST(SUM(i3.quantity) AS DECIMAL(18, 6)), 0.00) AS batch_inventory
|
||||
FROM wor_inventory_item i3
|
||||
LEFT JOIN adm_device_definition i4 ON i3.item_id = i4.ID
|
||||
AND i4.delete_flag = '0'
|
||||
WHERE i3.item_table = 'adm_device_definition'
|
||||
AND i3.delete_flag = '0'
|
||||
GROUP BY i3.item_table,
|
||||
i3.item_id,
|
||||
i3.lot_number
|
||||
<if test="locationId != null">
|
||||
,i3.location_id
|
||||
</if>) T9
|
||||
ON T9.item_table = 'adm_device_definition'
|
||||
AND T9.item_id = T1.ID
|
||||
AND T9.lot_number = T7.lot_number
|
||||
<if test="locationId != null">
|
||||
AND T9.location_id = T7.location_id
|
||||
</if>
|
||||
LEFT JOIN adm_charge_item_def_detail T10
|
||||
ON T10.definition_id = T3.id
|
||||
AND T10.condition_code = '1'--1:批号进价
|
||||
AND T10.condition_value = T9.lot_number
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail T11
|
||||
ON T11.definition_id = T3.id
|
||||
AND T11.condition_code = '5'--1:批号售价
|
||||
AND T11.condition_value = T9.lot_number
|
||||
AND T11.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="locationId != null">
|
||||
AND T7.location_id = #{locationId}
|
||||
</if>
|
||||
GROUP BY T1.id,
|
||||
T1.size,
|
||||
T4.condition_value,
|
||||
T5.condition_value,
|
||||
T4.amount,
|
||||
T5.amount,
|
||||
T10.amount,
|
||||
T11.amount,
|
||||
T8.specification_inventory,
|
||||
T9.batch_inventory,
|
||||
T9.lot_number,
|
||||
<if test="locationId != null">
|
||||
T7.location_id,
|
||||
</if>
|
||||
T7.supplier_id,
|
||||
T7.production_date,
|
||||
T7.expiration_date
|
||||
<if test="supplierId != null">
|
||||
HAVING
|
||||
T8.specification_inventory <![CDATA[ <= ]]> (T1.item_min_quantity * T1.part_percent)
|
||||
</if>
|
||||
ORDER BY T1.bus_no) AS T6
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="getPage"
|
||||
resultType="com.openhis.web.departmentmanage.dto.DepartmentDto">
|
||||
SELECT T4.tenant_id,
|
||||
T4.supply_bus_no, --单据号
|
||||
T4.type_enum, --类型
|
||||
T4.status_enum, --状态
|
||||
T4.supplier_id, --供应商
|
||||
T4.location_type_enum, --仓库类型
|
||||
T4.location_id, --仓库
|
||||
T4.applicant_id, --开单人
|
||||
T4.applicant_name, --开单人
|
||||
T4.approver_id, --审批人
|
||||
T4.apply_time, -- 制单时间
|
||||
T4.approval_time --审批时间
|
||||
FROM (SELECT T1.tenant_id,
|
||||
T1.bus_no AS supply_bus_no,
|
||||
T1.type_enum,
|
||||
T1.status_enum,
|
||||
T1.supplier_id,
|
||||
<if test="locationFlg != null">
|
||||
T1.source_type_enum AS location_type_enum,
|
||||
T1.source_location_id AS location_id,
|
||||
</if>
|
||||
<if test="locationFlg == null">
|
||||
T1.purpose_type_enum AS location_type_enum,
|
||||
T1.purpose_location_id AS location_id,
|
||||
</if>
|
||||
T1.applicant_id,
|
||||
T2.name AS applicant_name,
|
||||
T1.approver_id,
|
||||
T1.apply_time,
|
||||
T1.approval_time
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN adm_practitioner AS T2
|
||||
ON T2.id = T1.applicant_id
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="originalBusNoFlg != null">
|
||||
and original_bus_no = ''
|
||||
</if>
|
||||
GROUP BY T1.tenant_id,
|
||||
T1.bus_no,
|
||||
T1.type_enum,
|
||||
T1.status_enum,
|
||||
T1.supplier_id,
|
||||
<if test="locationFlg != null">
|
||||
T1.source_type_enum,
|
||||
T1.source_location_id,
|
||||
</if>
|
||||
<if test="locationFlg == null">
|
||||
T1.purpose_type_enum,
|
||||
T1.purpose_location_id,
|
||||
</if>
|
||||
T1.applicant_id,
|
||||
T2.name,
|
||||
T1.approver_id,
|
||||
T1.apply_time,
|
||||
T1.approval_time
|
||||
) AS T4
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="getDetailPage"
|
||||
resultType="com.openhis.web.departmentmanage.dto.DepartmentDetailDto">
|
||||
SELECT T1.id, --ID
|
||||
T1.bus_no, --单据号
|
||||
T2.bus_no AS item_bus_no, --药品编码
|
||||
T1.item_id, --药品id
|
||||
T2.name AS item_name, --名称
|
||||
T2.size AS total_volume, --规格
|
||||
T1.unit_code, --选择单位
|
||||
T2.unit_code AS max_unit_code, --常规单位
|
||||
T2.min_unit_code AS min_unit_code, --最小单位
|
||||
T2.part_percent, --拆零比
|
||||
T1.item_quantity, --数量
|
||||
T1.total_quantity, --合计数量
|
||||
T1.price, --采购单价
|
||||
T1.total_price, --采购总价
|
||||
T1.retail_price, --零售价
|
||||
T1.total_retail_price, --零价金额
|
||||
T2.manufacturer_text, --生产厂商文本
|
||||
T2.approval_number, --批准文号
|
||||
T1.remake, --备注
|
||||
T1.reason, --摘要(理由)
|
||||
T1.reason_code, --理由类型
|
||||
T1.batch_inventory, --批次库存
|
||||
T1.specification_inventory, --规格库存
|
||||
T1.applicant_id,--申请人
|
||||
T1.apply_time,--申请时间
|
||||
T1.approver_id,--审批人
|
||||
T1.approval_time,--审批时间
|
||||
T1.supplier_id,--供应商
|
||||
T4.phone,--供应商联系人
|
||||
T1.status_enum,
|
||||
T1.type_enum,
|
||||
T1.category_enum,--单据类型
|
||||
T1.source_type_enum, --源仓库类型
|
||||
T1.source_location_id, --源仓库
|
||||
T1.purpose_type_enum, --目的仓库类型
|
||||
T1.purpose_location_id, --目的仓库
|
||||
T1.practitioner_id,--仓库员
|
||||
T1.invoice_no,--发票号
|
||||
T1.lot_number,--产品批号
|
||||
T1.start_time,--开始时间
|
||||
T1.end_time,--结束时间
|
||||
T1.packaging_condition_enum,--包装情况
|
||||
T1.acceptance_result_enum,--验收结果
|
||||
T1.trace_no,--追溯码
|
||||
T1.trace_no_unit_code,--追溯码包装
|
||||
T1.occurrence_time,--禁用日期
|
||||
T1.tenant_id
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN adm_device_definition AS T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_device AS T3
|
||||
ON T2.id = T3.device_def_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier AS T4
|
||||
ON T4.id = T1.supplier_id
|
||||
AND T4.delete_flag = '0'
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.id,
|
||||
T2.bus_no,
|
||||
T2.name,
|
||||
T2.unit_code,
|
||||
T2.min_unit_code,
|
||||
T2.size,
|
||||
T2.part_percent,
|
||||
T2.manufacturer_text,
|
||||
T2.approval_number,
|
||||
T4.phone
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.departmentmanage.mapper.DepartmentIssuanceOrderMapper">
|
||||
<select id="getInfo"
|
||||
resultType="com.openhis.web.departmentmanage.dto.DepartmentDetailDto">
|
||||
SELECT string_agg(T1.id::text, ',' ORDER BY T1.id) AS dispense_ids,--药品发放id
|
||||
T1.status_enum,--发放状态
|
||||
CASE T3.category_enum
|
||||
WHEN 1 THEN 20
|
||||
WHEN 2 THEN 19 END AS category_enum, --分类
|
||||
T3.device_def_id AS item_id,--物品编码
|
||||
T3.unit_code,--物品计量单位
|
||||
T3.quantity AS item_quantity,--数量
|
||||
T3.lot_number, --产品批号
|
||||
T3.perform_location AS source_location_id, --源仓库
|
||||
T4.organization_id AS purpose_location_id,--目的仓库
|
||||
T1.performer_id AS approver_id,--审批人
|
||||
T1.dispense_time AS approval_time, --审批时间
|
||||
T1.patient_id AS applicant_id,--申请人
|
||||
T3.req_authored_time AS apply_time --申请时间
|
||||
FROM wor_device_dispense AS T1
|
||||
INNER JOIN wor_device_request AS T3
|
||||
ON T1.device_req_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition AS T2
|
||||
ON T3.device_def_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter AS T4
|
||||
ON T3.encounter_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
WHERE T1.id IN
|
||||
<foreach collection="dispenseIdList" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND T1.status_enum = #{dispenseStatus}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.status_enum,
|
||||
T3.category_enum,
|
||||
T3.device_def_id,
|
||||
T3.unit_code,
|
||||
T3.quantity,
|
||||
T3.lot_number,
|
||||
T3.perform_location,
|
||||
T4.organization_id,
|
||||
T1.performer_id,
|
||||
T1.dispense_time,
|
||||
T1.patient_id,
|
||||
T3.req_authored_time
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.departmentmanage.mapper.DepartmentProfitLossOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.departmentmanage.mapper.DepartmentRequisitionOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.departmentmanage.mapper.DepartmentReturnToWarehouseOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.departmentmanage.mapper.DepartmentStockInOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.departmentmanage.mapper.DepartmentStocktakingOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.departmentmanage.mapper.DepartmentTransferInOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.departmentmanage.mapper.DepartmentTransferOutOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,498 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.doctorstation.mapper.DoctorStationAdviceAppMapper">
|
||||
|
||||
<select id="getAdviceBaseInfo" resultType="com.openhis.web.doctorstation.dto.AdviceBaseDto">
|
||||
SELECT abi.tenant_id,
|
||||
abi.advice_type,
|
||||
abi.category_code,
|
||||
abi.pharmacology_category_code,
|
||||
abi.part_percent,
|
||||
abi.unit_conversion_ratio,
|
||||
abi.part_attribute_enum,
|
||||
abi.tho_part_attribute_enum,
|
||||
abi.skin_test_flag,
|
||||
abi.inject_flag,
|
||||
abi.advice_definition_id,
|
||||
abi.advice_name,
|
||||
abi.advice_bus_no,
|
||||
abi.py_str,
|
||||
abi.wb_str,
|
||||
abi.yb_no,
|
||||
abi.product_name,
|
||||
abi.activity_type,
|
||||
abi.unit_code,
|
||||
abi.min_unit_code,
|
||||
abi.volume,
|
||||
abi.method_code,
|
||||
abi.rate_code,
|
||||
abi.org_id,
|
||||
abi.location_id,
|
||||
abi.dose,
|
||||
abi.dose_unit_code,
|
||||
abi.supplier,
|
||||
abi.manufacturer,
|
||||
abi.charge_item_definition_id,
|
||||
abi.advice_table_name,
|
||||
abi.position_id,
|
||||
abi.restricted_flag,
|
||||
abi.restricted_scope
|
||||
from (
|
||||
<if test="adviceTypes == null or adviceTypes.contains(1)">
|
||||
SELECT T1.tenant_id,
|
||||
1 AS advice_type,
|
||||
T1.category_code AS category_code,
|
||||
T1.pharmacology_category_code AS pharmacology_category_code,
|
||||
T1.part_percent AS part_percent,
|
||||
T1.unit_conversion_ratio AS unit_conversion_ratio,
|
||||
T1.part_attribute_enum AS part_attribute_enum,
|
||||
T1.tho_part_attribute_enum AS tho_part_attribute_enum,
|
||||
T1.skin_test_flag AS skin_test_flag,
|
||||
T1.inject_flag AS inject_flag,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
T1.merchandise_name AS product_name,
|
||||
0 AS activity_type,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.min_unit_code AS min_unit_code,
|
||||
T2.total_volume AS volume,
|
||||
T2.method_code AS method_code,
|
||||
T2.rate_code AS rate_code,
|
||||
T2.org_id AS org_id,
|
||||
T2.location_id AS location_id,
|
||||
CAST(T2.dose AS TEXT) AS dose,
|
||||
T2.dose_unit_code AS dose_unit_code,
|
||||
T3.NAME AS supplier,
|
||||
T1.manufacturer_text AS manufacturer,
|
||||
T5.id AS charge_item_definition_id,
|
||||
T5.instance_table AS advice_table_name,
|
||||
T6.def_location_id AS position_id,
|
||||
t1.restricted_flag AS restricted_flag,
|
||||
t1.restricted_scope AS restricted_scope
|
||||
FROM med_medication_definition AS t1
|
||||
INNER JOIN med_medication AS T2 ON T2.medication_def_id = T1.ID
|
||||
AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum}
|
||||
LEFT JOIN adm_supplier AS T3
|
||||
ON T3.ID = T1.supply_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T5 ON T5.instance_id = T1.ID
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_organization_location AS T6
|
||||
ON T6.distribution_category_code = T1.category_code
|
||||
AND T6.delete_flag = '0' AND T6.organization_id = #{organizationId} AND
|
||||
(CURRENT_TIME :: time (6) BETWEEN T6.start_time AND T6.end_time)
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T2.status_enum = #{statusEnum}
|
||||
<if test="pricingFlag ==1">
|
||||
AND 1 = 2
|
||||
</if>
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T5.instance_table = #{medicationTableName}
|
||||
</if>
|
||||
|
||||
<if test="adviceTypes == null or adviceTypes.contains(1)">
|
||||
<if test="adviceTypes == null or adviceTypes.contains(2) or adviceTypes.contains(3)">UNION ALL</if>
|
||||
</if>
|
||||
|
||||
<if test="adviceTypes == null or adviceTypes.contains(2)">
|
||||
SELECT T1.tenant_id,
|
||||
2 AS advice_type,
|
||||
T1.category_code AS category_code,
|
||||
'' AS pharmacology_category_code,
|
||||
T1.part_percent AS part_percent,
|
||||
0 AS unit_conversion_ratio,
|
||||
null AS part_attribute_enum,
|
||||
null AS tho_part_attribute_enum,
|
||||
null AS skin_test_flag,
|
||||
null AS inject_flag,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
'' AS product_name,
|
||||
0 AS activity_type,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.min_unit_code AS min_unit_code,
|
||||
T1.SIZE AS volume,
|
||||
'' AS method_code,
|
||||
'' AS rate_code,
|
||||
T1.org_id AS org_id,
|
||||
T1.location_id AS location_id,
|
||||
'' AS dose,
|
||||
'' AS dose_unit_code,
|
||||
T2.NAME AS supplier,
|
||||
T1.manufacturer_text AS manufacturer,
|
||||
T4.id AS charge_item_definition_id,
|
||||
T4.instance_table AS advice_table_name,
|
||||
T5.def_location_id AS position_id,
|
||||
0 AS restricted_flag,
|
||||
'' AS restricted_scope
|
||||
FROM adm_device_definition AS T1
|
||||
LEFT JOIN adm_supplier AS T2
|
||||
ON T2.ID = T1.supply_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T4 ON T4.instance_id = T1.ID
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_organization_location AS T5 ON T5.distribution_category_code = T1.category_code
|
||||
AND T5.delete_flag = '0' AND T5.organization_id = #{organizationId} AND
|
||||
(CURRENT_TIME :: time (6) BETWEEN T5.start_time AND T5.end_time)
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T4.instance_table = #{deviceTableName}
|
||||
AND T1.category_code = #{singleUse}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
</if>
|
||||
|
||||
<if test="adviceTypes == null or adviceTypes.contains(2)">
|
||||
<if test="adviceTypes == null or adviceTypes.contains(3)">UNION ALL</if>
|
||||
</if>
|
||||
|
||||
<if test="adviceTypes == null or adviceTypes.contains(3)">
|
||||
SELECT T1.tenant_id,
|
||||
3 AS advice_type,
|
||||
T1.category_code AS category_code,
|
||||
'' AS pharmacology_category_code,
|
||||
1 AS part_percent,
|
||||
0 AS unit_conversion_ratio,
|
||||
null AS part_attribute_enum,
|
||||
null AS tho_part_attribute_enum,
|
||||
null AS skin_test_flag,
|
||||
null AS inject_flag,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
'' AS product_name,
|
||||
T1.type_enum AS activity_type,
|
||||
'' AS unit_code,
|
||||
'' AS min_unit_code,
|
||||
'' AS volume,
|
||||
'' AS method_code,
|
||||
'' AS rate_code,
|
||||
T1.org_id AS org_id,
|
||||
T1.location_id AS location_id,
|
||||
'' AS dose,
|
||||
'' AS dose_unit_code,
|
||||
'' AS supplier,
|
||||
'' AS manufacturer,
|
||||
T2.ID AS charge_item_definition_id,
|
||||
T2.instance_table AS advice_table_name,
|
||||
T3.organization_id AS position_id,
|
||||
0 AS restricted_flag,
|
||||
'' AS restricted_scope
|
||||
FROM wor_activity_definition AS T1
|
||||
LEFT JOIN adm_charge_item_definition AS T2
|
||||
ON T2.instance_id = T1.ID
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_organization_location AS T3 ON T3.activity_definition_id = T1.ID
|
||||
AND T3.delete_flag = '0' AND (CURRENT_TIME :: time (6) BETWEEN T3.start_time AND T3.end_time)
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="pricingFlag ==1">
|
||||
AND T1.pricing_flag = #{pricingFlag}
|
||||
</if>
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T2.instance_table = #{activityTableName}
|
||||
</if>
|
||||
) AS abi
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getAdviceInventory" resultType="com.openhis.web.doctorstation.dto.AdviceInventoryDto">
|
||||
SELECT
|
||||
T1.id AS inventory_id,
|
||||
T1.item_id,
|
||||
T1.item_table,
|
||||
T1.quantity,
|
||||
T1.unit_code,
|
||||
T1.lot_number,
|
||||
T1.price,
|
||||
T1.location_id,
|
||||
T1.location_store_id,
|
||||
T2.NAME AS location_name
|
||||
FROM
|
||||
wor_inventory_item AS T1
|
||||
LEFT JOIN adm_location AS T2 ON T2.ID = T1.location_id
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE
|
||||
T1.delete_flag = '0'
|
||||
<if test="locationId != null">
|
||||
AND T1.location_id = #{locationId}
|
||||
</if>
|
||||
<if test="adviceDefinitionIdList != null and !adviceDefinitionIdList.isEmpty()">
|
||||
AND T1.item_id IN
|
||||
<foreach collection="adviceDefinitionIdList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T1.inventory_status_enum = #{status}
|
||||
AND T1.expiration_date > NOW()
|
||||
AND T1.item_table IN ( ${SqlCondition} )
|
||||
order by T1.expiration_date
|
||||
</select>
|
||||
|
||||
<select id="getAdviceDraftInventory" resultType="com.openhis.web.doctorstation.dto.AdviceInventoryDto">
|
||||
SELECT #{medicationTableName} AS item_table,
|
||||
T1.medication_id AS item_id,
|
||||
T1.lot_number,
|
||||
T1.location_id,
|
||||
CASE
|
||||
WHEN T1.unit_code = T2.min_unit_code THEN
|
||||
T1.quantity
|
||||
ELSE T1.quantity * T2.part_percent
|
||||
END AS quantity,
|
||||
CASE
|
||||
WHEN T1.unit_code = T2.min_unit_code THEN
|
||||
T1.unit_code
|
||||
ELSE T2.min_unit_code
|
||||
END AS unit_code
|
||||
FROM med_medication_dispense AS T1
|
||||
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND NOW() < T1.limit_time
|
||||
AND (T1.status_enum = #{status1} OR T1.status_enum = #{status2})
|
||||
UNION ALL
|
||||
SELECT #{deviceTableName} AS item_table,
|
||||
T1.device_def_id AS item_id,
|
||||
T1.lot_number,
|
||||
T1.location_id,
|
||||
CASE
|
||||
WHEN T1.unit_code = T2.min_unit_code THEN
|
||||
T1.quantity
|
||||
ELSE T1.quantity * T2.part_percent
|
||||
END AS quantity,
|
||||
CASE
|
||||
WHEN T1.unit_code = T2.min_unit_code THEN
|
||||
T1.unit_code
|
||||
ELSE T2.min_unit_code
|
||||
END AS unit_code
|
||||
FROM wor_device_dispense AS T1
|
||||
LEFT JOIN adm_device_definition AS T2 ON T2.ID = T1.device_def_id
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND NOW() < T1.limit_time
|
||||
AND (T1.status_enum = #{status1} OR T1.status_enum = #{status2})
|
||||
</select>
|
||||
|
||||
<select id="getChildCharge" resultType="com.openhis.web.doctorstation.dto.AdvicePriceDto">
|
||||
SELECT
|
||||
T1.definition_id,
|
||||
T1.id AS definition_detail_id,
|
||||
T2.charge_name,
|
||||
T1.condition_value,
|
||||
T1.condition_code,
|
||||
T1.amount AS price
|
||||
FROM
|
||||
adm_charge_item_def_detail AS T1
|
||||
LEFT JOIN adm_charge_item_definition AS T2 ON T2.ID = T1.definition_id
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE
|
||||
T1.delete_flag = '0'
|
||||
AND T1.condition_code = #{conditionCode}
|
||||
<if test="chargeItemDefinitionIdList != null and !chargeItemDefinitionIdList.isEmpty()">
|
||||
AND T1.definition_id IN
|
||||
<foreach collection="chargeItemDefinitionIdList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
ORDER BY T1.priority DESC
|
||||
</select>
|
||||
|
||||
<select id="getMainCharge" resultType="com.openhis.web.doctorstation.dto.AdvicePriceDto">
|
||||
SELECT
|
||||
id AS definition_id,
|
||||
charge_name,
|
||||
price
|
||||
FROM
|
||||
adm_charge_item_definition
|
||||
WHERE
|
||||
delete_flag = '0'
|
||||
<if test="chargeItemDefinitionIdList != null and !chargeItemDefinitionIdList.isEmpty()">
|
||||
AND id IN
|
||||
<foreach collection="chargeItemDefinitionIdList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="getRequestBaseInfo" resultType="com.openhis.web.doctorstation.dto.RequestBaseDto">
|
||||
(SELECT 1 AS advice_type,
|
||||
T1.id AS request_id,
|
||||
T1.id || '-1' AS unique_key,
|
||||
T1.practitioner_id AS requester_id,
|
||||
T1.create_time AS request_time,
|
||||
CASE WHEN T1.practitioner_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
|
||||
T1.content_json AS content_json,
|
||||
T1.skin_test_flag AS skin_test_flag,
|
||||
T1.infusion_flag AS inject_flag,
|
||||
T1.group_id AS group_id,
|
||||
T2.NAME AS advice_name,
|
||||
T3.total_volume AS volume,
|
||||
T1.lot_number AS lot_number,
|
||||
T1.quantity AS quantity,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.status_enum AS status_enum,
|
||||
T1.method_code AS method_code,
|
||||
T1.rate_code AS rate_code,
|
||||
T1.dose AS dose,
|
||||
T1.dose_unit_code AS dose_unit_code,
|
||||
T4.id AS charge_item_id,
|
||||
T4.total_price AS total_price,
|
||||
T4.status_enum AS charge_status,
|
||||
al.id AS position_id,
|
||||
al.name AS position_name,
|
||||
T1.dispense_per_duration AS dispense_per_duration,
|
||||
T2.part_percent AS part_percent,
|
||||
ccd.name AS condition_definition_name,
|
||||
T1.sort_number AS sort_number
|
||||
FROM med_medication_request AS T1
|
||||
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T3 ON T3.medication_def_id = T2.ID
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item AS T4 ON T4.service_id = T1.ID AND T4.delete_flag = '0' AND
|
||||
T4.service_table = #{MED_MEDICATION_REQUEST}
|
||||
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS cc ON cc.id = T1.condition_id AND cc.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS ccd ON ccd.id = cc.definition_id
|
||||
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 0
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</if>
|
||||
<if test="historyFlag == '1'.toString()">
|
||||
AND T1.patient_id = #{patientId} AND T1.encounter_id != #{encounterId}
|
||||
</if>
|
||||
AND T1.refund_medicine_id IS NULL
|
||||
ORDER BY T1.status_enum,T1.sort_number,T1.group_id)
|
||||
UNION ALL
|
||||
(SELECT 2 AS advice_type,
|
||||
T1.id AS request_id,
|
||||
T1.id || '-2' AS unique_key,
|
||||
T1.requester_id AS requester_id,
|
||||
T1.create_time AS request_time,
|
||||
CASE WHEN T1.requester_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
|
||||
T1.content_json AS content_json,
|
||||
null AS skin_test_flag,
|
||||
null AS inject_flag,
|
||||
null AS group_id,
|
||||
T2.NAME AS advice_name,
|
||||
T2.SIZE AS volume,
|
||||
T1.lot_number AS lot_number,
|
||||
T1.quantity AS quantity,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.status_enum AS status_enum,
|
||||
'' AS method_code,
|
||||
T1.rate_code AS rate_code,
|
||||
NULL AS dose,
|
||||
'' AS dose_unit_code,
|
||||
T3.id AS charge_item_id,
|
||||
T3.total_price AS total_price,
|
||||
T3.status_enum AS charge_status,
|
||||
al.id AS position_id,
|
||||
al.name AS position_name,
|
||||
null AS dispense_per_duration,
|
||||
T2.part_percent AS part_percent,
|
||||
'' AS condition_definition_name,
|
||||
99 AS sort_number
|
||||
FROM wor_device_request AS T1
|
||||
LEFT JOIN adm_device_definition AS T2 ON T2.ID = T1.device_def_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item AS T3
|
||||
ON T3.service_id = T1.ID AND T3.delete_flag = '0' AND
|
||||
T3.service_table = #{WOR_DEVICE_REQUEST}
|
||||
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</if>
|
||||
<if test="historyFlag == '1'.toString()">
|
||||
AND T1.patient_id = #{patientId} AND T1.encounter_id != #{encounterId}
|
||||
</if>
|
||||
AND T1.refund_device_id IS NULL
|
||||
ORDER BY T1.status_enum)
|
||||
UNION ALL
|
||||
(SELECT 3 AS advice_type,
|
||||
T1.id AS request_id,
|
||||
T1.id || '-3' AS unique_key,
|
||||
T1.requester_id AS requester_id,
|
||||
T1.create_time AS request_time,
|
||||
CASE WHEN T1.requester_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
|
||||
T1.content_json AS content_json,
|
||||
null AS skin_test_flag,
|
||||
null AS inject_flag,
|
||||
null AS group_id,
|
||||
T2.NAME AS advice_name,
|
||||
'' AS volume,
|
||||
'' AS lot_number,
|
||||
T1.quantity AS quantity,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.status_enum AS status_enum,
|
||||
'' AS method_code,
|
||||
'' AS rate_code,
|
||||
NULL AS dose,
|
||||
'' AS dose_unit_code,
|
||||
T3.id AS charge_item_id,
|
||||
T3.total_price AS total_price,
|
||||
T3.status_enum AS charge_status,
|
||||
ao.id AS position_id,
|
||||
ao.name AS position_name,
|
||||
null AS dispense_per_duration,
|
||||
1 AS part_percent,
|
||||
'' AS condition_definition_name,
|
||||
99 AS sort_number
|
||||
FROM wor_service_request AS T1
|
||||
LEFT JOIN wor_activity_definition AS T2
|
||||
ON T2.ID = T1.activity_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item AS T3 ON T3.service_id = T1.ID AND T3.delete_flag = '0' AND
|
||||
T3.service_table = #{WOR_SERVICE_REQUEST}
|
||||
LEFT JOIN adm_organization AS ao ON ao.ID = T1.org_id AND ao.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.based_on_table is null
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</if>
|
||||
<if test="historyFlag == '1'.toString()">
|
||||
AND T1.patient_id = #{patientId} AND T1.encounter_id != #{encounterId}
|
||||
</if>
|
||||
ORDER BY T1.status_enum)
|
||||
</select>
|
||||
|
||||
<select id="getEncounterContract" resultType="com.openhis.web.doctorstation.dto.EncounterContractDto">
|
||||
SELECT aa.id AS account_id,
|
||||
fc.contract_name,
|
||||
fc.bus_no
|
||||
FROM adm_account aa
|
||||
LEFT JOIN fin_contract AS fc ON fc.bus_no = aa.contract_no
|
||||
AND fc.delete_flag = '0'
|
||||
WHERE aa.delete_flag = '0'
|
||||
AND aa.encounter_id = #{encounterId}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,158 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.doctorstation.mapper.DoctorStationChineseMedicalAppMapper">
|
||||
|
||||
<select id="getTcmEncounterDiagnosis" resultType="com.openhis.web.doctorstation.dto.DiagnosisQueryDto">
|
||||
SELECT T1.id AS encounter_diagnosis_id,
|
||||
T1.condition_id,
|
||||
T1.syndrome_group_no,
|
||||
T2.definition_id,
|
||||
T3.source_enum,
|
||||
T3.NAME,
|
||||
T1.maindise_flag,
|
||||
T1.diag_srt_no,
|
||||
T1.med_type_code,
|
||||
T2.verification_status_enum,
|
||||
T2.yb_no
|
||||
FROM adm_encounter_diagnosis AS T1
|
||||
LEFT JOIN cli_condition AS T2 ON T2.ID = T1.condition_id
|
||||
AND T2.delete_flag = '0' AND T2.tcm_flag = 1
|
||||
LEFT JOIN cli_condition_definition AS T3 ON t3.ID = T2.definition_id
|
||||
AND T3.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.tcm_flag = 1
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
ORDER BY T1.diag_srt_no
|
||||
</select>
|
||||
|
||||
<select id="getTcmRequestBaseInfo" resultType="com.openhis.web.doctorstation.dto.RequestBaseDto">
|
||||
SELECT 1 AS advice_type,
|
||||
T1.id AS request_id,
|
||||
T1.id || '-1' AS unique_key,
|
||||
T1.prescription_no AS prescription_no,
|
||||
T1.practitioner_id AS requester_id,
|
||||
T1.create_time AS request_time,
|
||||
CASE WHEN T1.practitioner_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
|
||||
T1.content_json AS content_json,
|
||||
T1.skin_test_flag AS skin_test_flag,
|
||||
T1.infusion_flag AS inject_flag,
|
||||
T1.group_id AS group_id,
|
||||
T2.NAME AS advice_name,
|
||||
T3.total_volume AS volume,
|
||||
T1.lot_number AS lot_number,
|
||||
T1.quantity AS quantity,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.status_enum AS status_enum,
|
||||
T1.method_code AS method_code,
|
||||
T1.rate_code AS rate_code,
|
||||
T1.dose AS dose,
|
||||
T1.dose_unit_code AS dose_unit_code,
|
||||
T4.id AS charge_item_id,
|
||||
T4.total_price AS total_price,
|
||||
T4.status_enum AS charge_status,
|
||||
al.id AS position_id,
|
||||
al.name AS position_name,
|
||||
T1.dispense_per_duration AS dispense_per_duration,
|
||||
T1.chinese_herbs_dose_quantity AS chinese_herbs_dose_quantity,
|
||||
T1.suffering_flag AS suffering_flag,
|
||||
T2.part_percent AS part_percent,
|
||||
ccd.name AS condition_definition_name
|
||||
FROM med_medication_request AS T1
|
||||
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T3 ON T3.medication_def_id = T2.ID
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item AS T4 ON T4.service_id = T1.ID AND T4.delete_flag = '0' AND
|
||||
T4.service_table = #{MED_MEDICATION_REQUEST}
|
||||
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS cc ON cc.id = T1.condition_id AND cc.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS ccd ON ccd.id = cc.definition_id
|
||||
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 1
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</if>
|
||||
<if test="historyFlag == '1'.toString()">
|
||||
AND T1.patient_id = #{patientId} AND T1.encounter_id != #{encounterId}
|
||||
</if>
|
||||
AND T1.refund_medicine_id IS NULL
|
||||
ORDER BY T1.group_id,T1.prescription_no, T1.status_enum
|
||||
</select>
|
||||
|
||||
<select id="getTcmRequestHistoryInfo" resultType="com.openhis.web.doctorstation.dto.RequestBaseDto">
|
||||
SELECT 1 AS advice_type,
|
||||
T1.id AS request_id,
|
||||
T1.id || '-1' AS unique_key,
|
||||
T1.prescription_no AS prescription_no,
|
||||
T1.practitioner_id AS requester_id,
|
||||
T1.create_time AS request_time,
|
||||
CASE WHEN T1.practitioner_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
|
||||
T1.content_json AS content_json,
|
||||
T1.skin_test_flag AS skin_test_flag,
|
||||
T1.infusion_flag AS inject_flag,
|
||||
T1.group_id AS group_id,
|
||||
T2.NAME AS advice_name,
|
||||
T3.total_volume AS volume,
|
||||
T1.lot_number AS lot_number,
|
||||
T1.quantity AS quantity,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.status_enum AS status_enum,
|
||||
T1.method_code AS method_code,
|
||||
T1.rate_code AS rate_code,
|
||||
T1.dose AS dose,
|
||||
T1.dose_unit_code AS dose_unit_code,
|
||||
T4.id AS charge_item_id,
|
||||
T4.total_price AS total_price,
|
||||
T4.status_enum AS charge_status,
|
||||
al.id AS position_id,
|
||||
al.name AS position_name,
|
||||
T1.dispense_per_duration AS dispense_per_duration,
|
||||
T1.chinese_herbs_dose_quantity AS chinese_herbs_dose_quantity,
|
||||
T1.suffering_flag AS suffering_flag,
|
||||
T2.part_percent AS part_percent,
|
||||
ccd.name AS condition_definition_name
|
||||
FROM med_medication_request AS T1
|
||||
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T3 ON T3.medication_def_id = T2.ID
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item AS T4 ON T4.service_id = T1.ID AND T4.delete_flag = '0' AND
|
||||
T4.service_table = #{MED_MEDICATION_REQUEST}
|
||||
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS cc ON cc.id = T1.condition_id AND cc.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS ccd ON ccd.id = cc.definition_id
|
||||
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 1
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</if>
|
||||
<if test="historyFlag == '1'.toString()">
|
||||
AND T1.patient_id = #{patientId} AND T1.encounter_id != #{encounterId}
|
||||
</if>
|
||||
AND T1.refund_medicine_id IS NULL
|
||||
ORDER BY T1.group_id,T1.prescription_no, T1.status_enum
|
||||
</select>
|
||||
|
||||
<select id="getConditionIds" resultType="long">
|
||||
SELECT condition_id
|
||||
FROM adm_encounter_diagnosis
|
||||
WHERE delete_flag = '0'
|
||||
AND syndrome_group_no = #{syndromeGroupNo}
|
||||
</select>
|
||||
|
||||
<select id="getAdviceNumByConditionIds" resultType="integer">
|
||||
SELECT
|
||||
count(1)
|
||||
FROM
|
||||
med_medication_request
|
||||
WHERE
|
||||
delete_flag = '0'
|
||||
<if test="conditionIds != null and !conditionIds.isEmpty()">
|
||||
AND condition_id IN
|
||||
<foreach collection="conditionIds" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,168 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.doctorstation.mapper.DoctorStationDiagnosisAppMapper">
|
||||
|
||||
<select id="getDiagnosisBelongBindingPage" resultType="com.openhis.web.doctorstation.dto.DiagnosisBelongBindingDto">
|
||||
SELECT T5.tenant_id,
|
||||
T5.ID,
|
||||
T5.object_id,
|
||||
T5.definition_id,
|
||||
T5.binding_enum,
|
||||
T5.definition_name,
|
||||
T5.object_name
|
||||
from (SELECT T1.tenant_id,
|
||||
T1.ID,
|
||||
T1.object_id,
|
||||
T1.definition_id,
|
||||
T1.binding_enum,
|
||||
T2.NAME AS definition_name,
|
||||
CASE
|
||||
WHEN T1.binding_enum = #{bindingType1} THEN
|
||||
T3.user_name
|
||||
WHEN T1.binding_enum = #{bindingType2} THEN
|
||||
T4.NAME
|
||||
END AS object_name
|
||||
FROM cli_diagnosis_belong_binding AS T1
|
||||
LEFT JOIN cli_condition_definition AS T2 ON T1.definition_id = T2.ID
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN sys_user AS T3 ON T1.binding_enum = #{bindingType1}
|
||||
AND T1.object_id = T3.user_id
|
||||
LEFT JOIN adm_organization AS T4 ON T1.binding_enum = #{bindingType2}
|
||||
AND T1.object_id = T4.ID
|
||||
WHERE T1.delete_flag = '0'
|
||||
ORDER BY object_name) AS T5
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getPatientHistoryList" resultType="com.openhis.web.doctorstation.dto.ConditionDefinitionMetadata">
|
||||
SELECT T1.ID AS definition_id,
|
||||
T1.source_enum,
|
||||
T1.condition_code,
|
||||
T1.NAME,
|
||||
T1.yb_flag,
|
||||
T1.yb_no,
|
||||
T1.yb_match_flag
|
||||
FROM cli_condition_definition AS T1
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND EXISTS(
|
||||
SELECT 1
|
||||
FROM cli_condition AS T2
|
||||
WHERE T2.delete_flag = '0'
|
||||
AND t2.tcm_flag = 0
|
||||
AND T2.definition_id IS NOT NULL
|
||||
AND T2.patient_id = #{patientId}
|
||||
AND T2.definition_id = T1.ID
|
||||
)
|
||||
</select>
|
||||
|
||||
<select id="getDoctorCommonUseList" resultType="com.openhis.web.doctorstation.dto.ConditionDefinitionMetadata">
|
||||
SELECT T1.ID AS definition_id,
|
||||
T1.source_enum,
|
||||
T1.condition_code,
|
||||
T1.NAME,
|
||||
T1.yb_flag,
|
||||
T1.yb_no,
|
||||
T1.yb_match_flag
|
||||
FROM cli_condition_definition AS T1
|
||||
JOIN (SELECT definition_id
|
||||
FROM cli_condition
|
||||
WHERE delete_flag = '0'
|
||||
AND tcm_flag = 0
|
||||
AND definition_id IS NOT NULL
|
||||
AND recorder_id = #{practitionerId}
|
||||
GROUP BY definition_id LIMIT 10) AS T2 ON T1.ID = T2.definition_id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
</select>
|
||||
|
||||
<select id="getUserPersonalList" resultType="com.openhis.web.doctorstation.dto.ConditionDefinitionMetadata">
|
||||
SELECT T2.ID,
|
||||
T2.definition_id,
|
||||
T1.source_enum,
|
||||
T1.condition_code,
|
||||
T1.NAME,
|
||||
T1.yb_flag,
|
||||
T1.yb_no,
|
||||
T1.yb_match_flag
|
||||
FROM cli_condition_definition AS T1
|
||||
JOIN (SELECT id, definition_id
|
||||
FROM cli_diagnosis_belong_binding
|
||||
WHERE delete_flag = '0'
|
||||
AND binding_enum = #{bindingEnum}
|
||||
AND object_id = #{userId}) AS T2 ON T1.ID = T2.definition_id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
</select>
|
||||
|
||||
<select id="getOrganizationList" resultType="com.openhis.web.doctorstation.dto.ConditionDefinitionMetadata">
|
||||
SELECT T2.ID,
|
||||
T2.definition_id,
|
||||
T1.source_enum,
|
||||
T1.condition_code,
|
||||
T1.NAME,
|
||||
T1.yb_flag,
|
||||
T1.yb_no,
|
||||
T1.yb_match_flag
|
||||
FROM cli_condition_definition AS T1
|
||||
JOIN (SELECT id, definition_id
|
||||
FROM cli_diagnosis_belong_binding
|
||||
WHERE delete_flag = '0'
|
||||
AND binding_enum = #{bindingEnum}
|
||||
<if test="currentUserOrganizationId != null">
|
||||
AND object_id = #{currentUserOrganizationId}
|
||||
</if>
|
||||
) AS T2 ON T1.ID = T2.definition_id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
</select>
|
||||
|
||||
<select id="getEncounterDiagnosis" resultType="com.openhis.web.doctorstation.dto.DiagnosisQueryDto">
|
||||
SELECT T1.id AS encounter_diagnosis_id,
|
||||
T1.condition_id,
|
||||
T2.definition_id,
|
||||
T3.source_enum,
|
||||
T3.NAME,
|
||||
T1.maindise_flag,
|
||||
T1.diag_srt_no,
|
||||
T1.med_type_code,
|
||||
T1.diagnosis_desc,
|
||||
T2.verification_status_enum,
|
||||
T2.yb_no
|
||||
FROM adm_encounter_diagnosis AS T1
|
||||
LEFT JOIN cli_condition AS T2 ON T2.ID = T1.condition_id
|
||||
AND T2.delete_flag = '0' AND T2.tcm_flag = 0
|
||||
LEFT JOIN cli_condition_definition AS T3 ON t3.ID = T2.definition_id
|
||||
AND T3.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.tcm_flag = 0
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</select>
|
||||
|
||||
<select id="getAdviceNumByConditionId" resultType="Integer">
|
||||
SELECT SUM
|
||||
(count_result) AS total_count
|
||||
FROM (
|
||||
SELECT COUNT
|
||||
(1) AS count_result
|
||||
FROM med_medication_request
|
||||
WHERE delete_flag = '0'
|
||||
AND condition_id = #{conditionId}
|
||||
UNION ALL
|
||||
SELECT COUNT
|
||||
(1)
|
||||
FROM wor_device_request
|
||||
WHERE delete_flag = '0'
|
||||
AND condition_id = #{conditionId}
|
||||
UNION ALL
|
||||
SELECT COUNT
|
||||
(1)
|
||||
FROM wor_service_request
|
||||
WHERE delete_flag = '0'
|
||||
AND condition_id = #{conditionId}
|
||||
) AS counts
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,494 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.doctorstation.mapper.DoctorStationElepPrescriptionMapper">
|
||||
<select id="selectCatalogDrugInfoByNo" resultType="com.openhis.ybcatalog.domain.CatalogDrugInfo">
|
||||
SELECT T1.medical_catalog_code,
|
||||
T1.drug_trade_name,
|
||||
T1.generic_name_id,
|
||||
T1.drug_generic_name,
|
||||
T1.chemical_name,
|
||||
T1.alias,
|
||||
T1.english_name,
|
||||
T1.registered_name,
|
||||
T1.drug_supervision_code,
|
||||
T1.drug_form,
|
||||
T1.drug_form_name,
|
||||
T1.drug_category,
|
||||
T1.drug_category_name,
|
||||
T1.drug_specification,
|
||||
T1.drug_spec_code,
|
||||
T1.registered_form,
|
||||
T1.registered_spec,
|
||||
T1.registered_spec_code,
|
||||
T1.dosage,
|
||||
T1.frequency,
|
||||
T1.acid_base,
|
||||
T1.national_drug_code,
|
||||
T1.usage,
|
||||
T1.tcm_flag,
|
||||
T1.production_area_type,
|
||||
T1.production_area_name,
|
||||
T1.pricing_unit_type,
|
||||
T1.otc_flag,
|
||||
T1.otc_flag_name,
|
||||
T1.packaging_material,
|
||||
T1.packaging_material_name,
|
||||
T1.packaging_spec,
|
||||
T1.packaging_quantity,
|
||||
T1.function_indication,
|
||||
T1.administration_route,
|
||||
T1.instructions,
|
||||
T1.start_date,
|
||||
T1.end_date,
|
||||
T1.min_use_unit,
|
||||
T1.min_sale_unit,
|
||||
T1.min_measurement_unit,
|
||||
T1.min_package_quantity,
|
||||
T1.min_package_unit,
|
||||
T1.min_preparation_unit,
|
||||
T1.min_package_unit_name,
|
||||
T1.min_preparation_unit_name,
|
||||
T1.conversion_ratio,
|
||||
T1.shelf_life,
|
||||
T1.min_pricing_unit,
|
||||
T1.wubi_code,
|
||||
T1.pinyin_code,
|
||||
T1.repackager,
|
||||
T1.manufacturer_code,
|
||||
T1.manufacturer_name,
|
||||
T1.special_price_limit_flag,
|
||||
T1.special_drug_flag,
|
||||
T1.use_restriction,
|
||||
T1.use_restriction_flag,
|
||||
T1.registration_cert_no,
|
||||
T1.reg_cert_start_date,
|
||||
T1.reg_cert_end_date,
|
||||
T1.approval_no,
|
||||
T1.approval_start_date,
|
||||
T1.approval_end_date,
|
||||
T1.market_status,
|
||||
T1.market_status_name,
|
||||
T1.reg_document_archive,
|
||||
T1.supp_application_archive,
|
||||
T1.national_insurance_notes,
|
||||
T1.essential_drug_flag_name,
|
||||
T1.essential_drug_flag,
|
||||
T1.vat_adjustment_flag,
|
||||
T1.vat_adjustment_name,
|
||||
T1.listed_drug_flag,
|
||||
T1.negotiation_drug_flag,
|
||||
T1.negotiation_drug_name,
|
||||
T1.nhc_drug_code,
|
||||
T1.remarks,
|
||||
T1.valid_flag,
|
||||
T1.unique_record_id,
|
||||
T1.created_at,
|
||||
T1.updated_at,
|
||||
T1.version,
|
||||
T1.version_name,
|
||||
T1.pediatric_use,
|
||||
T1.company_name,
|
||||
T1.generic_evaluation_flag,
|
||||
T1.distribution_company,
|
||||
T1.distribution_contact,
|
||||
T1.distribution_auth_archive,
|
||||
T1.insurance_form,
|
||||
T1.insurance_class,
|
||||
T1.marketing_authorization_holder,
|
||||
T1.release_flag,
|
||||
T1.transmission_data_id,
|
||||
T1.valid_from,
|
||||
T1.valid_to
|
||||
FROM yb_catalog_drug_info T1
|
||||
WHERE T1.medical_catalog_code = #{medicationNo}
|
||||
AND T1.version = #{version}
|
||||
AND T1.valid_flag = '1'
|
||||
</select>
|
||||
<select id="selectCatalogDrugInfo" resultType="com.openhis.ybcatalog.domain.CatalogDrugInfo">
|
||||
SELECT T3.medical_catalog_code,
|
||||
T3.drug_trade_name,
|
||||
T3.generic_name_id,
|
||||
T3.drug_generic_name,
|
||||
T3.chemical_name,
|
||||
T3.alias,
|
||||
T3.english_name,
|
||||
T3.registered_name,
|
||||
T3.drug_supervision_code,
|
||||
T3.drug_form,
|
||||
T3.drug_form_name,
|
||||
T3.drug_category,
|
||||
T3.drug_category_name,
|
||||
T3.drug_specification,
|
||||
T3.drug_spec_code,
|
||||
T3.registered_form,
|
||||
T3.registered_spec,
|
||||
T3.registered_spec_code,
|
||||
T3.dosage,
|
||||
T3.frequency,
|
||||
T3.acid_base,
|
||||
T3.national_drug_code,
|
||||
T3.usage,
|
||||
T3.tcm_flag,
|
||||
T3.production_area_type,
|
||||
T3.production_area_name,
|
||||
T3.pricing_unit_type,
|
||||
T3.otc_flag,
|
||||
T3.otc_flag_name,
|
||||
T3.packaging_material,
|
||||
T3.packaging_material_name,
|
||||
T3.packaging_spec,
|
||||
T3.packaging_quantity,
|
||||
T3.function_indication,
|
||||
T3.administration_route,
|
||||
T3.instructions,
|
||||
T3.start_date,
|
||||
T3.end_date,
|
||||
T3.min_use_unit,
|
||||
T3.min_sale_unit,
|
||||
T3.min_measurement_unit,
|
||||
T3.min_package_quantity,
|
||||
T3.min_package_unit,
|
||||
T3.min_preparation_unit,
|
||||
T3.min_package_unit_name,
|
||||
T3.min_preparation_unit_name,
|
||||
T3.conversion_ratio,
|
||||
T3.shelf_life,
|
||||
T3.min_pricing_unit,
|
||||
T3.wubi_code,
|
||||
T3.pinyin_code,
|
||||
T3.repackager,
|
||||
T3.manufacturer_code,
|
||||
T3.manufacturer_name,
|
||||
T3.special_price_limit_flag,
|
||||
T3.special_drug_flag,
|
||||
T3.use_restriction,
|
||||
T3.use_restriction_flag,
|
||||
T3.registration_cert_no,
|
||||
T3.reg_cert_start_date,
|
||||
T3.reg_cert_end_date,
|
||||
T3.approval_no,
|
||||
T3.approval_start_date,
|
||||
T3.approval_end_date,
|
||||
T3.market_status,
|
||||
T3.market_status_name,
|
||||
T3.reg_document_archive,
|
||||
T3.supp_application_archive,
|
||||
T3.national_insurance_notes,
|
||||
T3.essential_drug_flag_name,
|
||||
T3.essential_drug_flag,
|
||||
T3.vat_adjustment_flag,
|
||||
T3.vat_adjustment_name,
|
||||
T3.listed_drug_flag,
|
||||
T3.negotiation_drug_flag,
|
||||
T3.negotiation_drug_name,
|
||||
T3.nhc_drug_code,
|
||||
T3.remarks,
|
||||
T3.valid_flag,
|
||||
T3.unique_record_id,
|
||||
T3.created_at,
|
||||
T3.updated_at,
|
||||
T3.version,
|
||||
T3.version_name,
|
||||
T3.pediatric_use,
|
||||
T3.company_name,
|
||||
T3.generic_evaluation_flag,
|
||||
T3.distribution_company,
|
||||
T3.distribution_contact,
|
||||
T3.distribution_auth_archive,
|
||||
T3.insurance_form,
|
||||
T3.insurance_class,
|
||||
T3.marketing_authorization_holder,
|
||||
T3.release_flag,
|
||||
T3.transmission_data_id,
|
||||
T3.valid_from,
|
||||
T3.valid_to,
|
||||
T3.tenant_id
|
||||
FROM (SELECT T1.medical_catalog_code,
|
||||
T1.drug_trade_name,
|
||||
T1.generic_name_id,
|
||||
T1.drug_generic_name,
|
||||
T1.chemical_name,
|
||||
T1.alias,
|
||||
T1.english_name,
|
||||
T1.registered_name,
|
||||
T1.drug_supervision_code,
|
||||
T1.drug_form,
|
||||
T1.drug_form_name,
|
||||
T1.drug_category,
|
||||
T1.drug_category_name,
|
||||
T1.drug_specification,
|
||||
T1.drug_spec_code,
|
||||
T1.registered_form,
|
||||
T1.registered_spec,
|
||||
T1.registered_spec_code,
|
||||
T1.dosage,
|
||||
T1.frequency,
|
||||
T1.acid_base,
|
||||
T1.national_drug_code,
|
||||
T1.usage,
|
||||
T1.tcm_flag,
|
||||
T1.production_area_type,
|
||||
T1.production_area_name,
|
||||
T1.pricing_unit_type,
|
||||
T1.otc_flag,
|
||||
T1.otc_flag_name,
|
||||
T1.packaging_material,
|
||||
T1.packaging_material_name,
|
||||
T1.packaging_spec,
|
||||
T1.packaging_quantity,
|
||||
T1.function_indication,
|
||||
T1.administration_route,
|
||||
T1.instructions,
|
||||
T1.start_date,
|
||||
T1.end_date,
|
||||
T1.min_use_unit,
|
||||
T1.min_sale_unit,
|
||||
T1.min_measurement_unit,
|
||||
T1.min_package_quantity,
|
||||
T1.min_package_unit,
|
||||
T1.min_preparation_unit,
|
||||
T1.min_package_unit_name,
|
||||
T1.min_preparation_unit_name,
|
||||
T1.conversion_ratio,
|
||||
T1.shelf_life,
|
||||
T1.min_pricing_unit,
|
||||
T1.wubi_code,
|
||||
T1.pinyin_code,
|
||||
T1.repackager,
|
||||
T1.manufacturer_code,
|
||||
T1.manufacturer_name,
|
||||
T1.special_price_limit_flag,
|
||||
T1.special_drug_flag,
|
||||
T1.use_restriction,
|
||||
T1.use_restriction_flag,
|
||||
T1.registration_cert_no,
|
||||
T1.reg_cert_start_date,
|
||||
T1.reg_cert_end_date,
|
||||
T1.approval_no,
|
||||
T1.approval_start_date,
|
||||
T1.approval_end_date,
|
||||
T1.market_status,
|
||||
T1.market_status_name,
|
||||
T1.reg_document_archive,
|
||||
T1.supp_application_archive,
|
||||
T1.national_insurance_notes,
|
||||
T1.essential_drug_flag_name,
|
||||
T1.essential_drug_flag,
|
||||
T1.vat_adjustment_flag,
|
||||
T1.vat_adjustment_name,
|
||||
T1.listed_drug_flag,
|
||||
T1.negotiation_drug_flag,
|
||||
T1.negotiation_drug_name,
|
||||
T1.nhc_drug_code,
|
||||
T1.remarks,
|
||||
T1.valid_flag,
|
||||
T1.unique_record_id,
|
||||
T1.created_at,
|
||||
T1.updated_at,
|
||||
T1.version,
|
||||
T1.version_name,
|
||||
T1.pediatric_use,
|
||||
T1.company_name,
|
||||
T1.generic_evaluation_flag,
|
||||
T1.distribution_company,
|
||||
T1.distribution_contact,
|
||||
T1.distribution_auth_archive,
|
||||
T1.insurance_form,
|
||||
T1.insurance_class,
|
||||
T1.marketing_authorization_holder,
|
||||
T1.release_flag,
|
||||
T1.transmission_data_id,
|
||||
T1.valid_from,
|
||||
T1.valid_to,
|
||||
1 AS tenant_id
|
||||
FROM yb_catalog_drug_info T1
|
||||
INNER JOIN (
|
||||
SELECT medical_catalog_code, MAX(version) AS max_version
|
||||
FROM yb_catalog_drug_info
|
||||
WHERE valid_flag = '1'
|
||||
GROUP BY medical_catalog_code
|
||||
) T2
|
||||
ON T1.medical_catalog_code = T2.medical_catalog_code AND
|
||||
T1.version = T2.max_version
|
||||
WHERE T1.valid_flag = '1') AS T3
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectElepPrescriptionInfo" resultType="com.openhis.web.doctorstation.dto.ElepPrescriptionInfoDto">
|
||||
SELECT tenant_id,
|
||||
prescription_no, --处方号
|
||||
ipt_otp_no, --门诊号
|
||||
department_ward, --科室病区
|
||||
validity_days, --有效天数
|
||||
status_enum, --状态
|
||||
practitioner_name, --开方医生名
|
||||
prsc_dept_name, --开单科室
|
||||
MIN(prsc_time) AS prsc_time, --处方开立日期
|
||||
med_status, --取药状态
|
||||
extension_reason, --延长原因
|
||||
quash_reason, --撤销原因
|
||||
condition_name, --诊断名
|
||||
rx_type_code --处方类别
|
||||
FROM (SELECT T1.tenant_id,
|
||||
T1.prescription_no, --处方号
|
||||
T1.ipt_otp_no, --门诊号
|
||||
T1.department_ward, --科室病区
|
||||
T1.validity_days, --有效天数
|
||||
T1.status_enum, --状态
|
||||
T2.name AS practitioner_name, --开方医生名
|
||||
T3.name AS prsc_dept_name, --开单科室
|
||||
T1.issue_time AS prsc_time, --处方开立日期
|
||||
CASE
|
||||
WHEN (T4.rx_used_stas_codg IN ('1', '2')) THEN T4.rx_used_stas_name
|
||||
ELSE '未使用'
|
||||
END AS med_status, --取药状态
|
||||
T1.extension_reason, --延长原因
|
||||
T1.quash_reason, --撤销原因
|
||||
T6.name AS condition_name, --诊断名
|
||||
T1.rx_type_code --处方类别
|
||||
FROM elep_medication_request AS T1
|
||||
LEFT JOIN adm_practitioner AS T2
|
||||
ON T1.prescribing_dr_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T3
|
||||
ON T1.org_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN yb_elep_medresult_info AS T4
|
||||
ON T1.hi_rxno = T4.hi_rxno
|
||||
LEFT JOIN cli_condition AS T5
|
||||
ON T1.condition_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS T6
|
||||
ON T5.definition_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
WHERE T1.patient_id = #{patientId}
|
||||
AND T1.delete_flag = '0')
|
||||
GROUP BY tenant_id,
|
||||
prescription_no,
|
||||
ipt_otp_no,
|
||||
department_ward,
|
||||
validity_days,
|
||||
status_enum,
|
||||
practitioner_name,
|
||||
prsc_dept_name,
|
||||
med_status,
|
||||
extension_reason,
|
||||
quash_reason,
|
||||
condition_name,
|
||||
rx_type_code
|
||||
ORDER BY prsc_time DESC
|
||||
</select>
|
||||
<select id="selectMedicationInfo" resultType="com.openhis.web.doctorstation.dto.ElepMedicationInfoDto">
|
||||
SELECT T1.id,
|
||||
T2.medical_catalog_code AS medication_id, --药品id
|
||||
T2.registered_name AS medication_name, --药品名
|
||||
T2.drug_specification, --药品规格
|
||||
T2.manufacturer_name, --生产厂家
|
||||
T1.med_dosage, --药品剂量
|
||||
T1.med_dosage_unit_code, --药品剂量单位
|
||||
T1.med_frequency, --使用频次
|
||||
T1.med_route, --途径
|
||||
T1.quantity, --请求数量
|
||||
T1.unit_code, --请求单位
|
||||
T1.support_info, --支持用药信息
|
||||
T1.effective_dose_start, --服药时间(开始)
|
||||
T1.effective_dose_end, --服药时间(结束)
|
||||
T1.dispense_interval, --给药间隔
|
||||
T1.dispense_per_quantity, --单次发药数
|
||||
T1.dispense_per_duration, --每次发药供应天数
|
||||
T1.rx_type_code, --处方类别
|
||||
T1.rx_item_type_code, --处方项目类别
|
||||
T1.condition_id, --诊断id
|
||||
T1.version --药品版本号
|
||||
FROM elep_medication_request AS T1
|
||||
LEFT JOIN yb_catalog_drug_info AS T2
|
||||
ON T1.medication_id = T2.medical_catalog_code
|
||||
AND T1.version = T2.version
|
||||
WHERE T1.prescription_no = #{prescriptionNo}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.id,
|
||||
T2.medical_catalog_code,
|
||||
T2.registered_name,
|
||||
T2.drug_specification,
|
||||
T2.manufacturer_name,
|
||||
T1.med_dosage,
|
||||
T1.med_dosage_unit_code,
|
||||
T1.med_frequency,
|
||||
T1.med_route,
|
||||
T1.quantity,
|
||||
T1.unit_code,
|
||||
T1.support_info,
|
||||
T1.effective_dose_start,
|
||||
T1.effective_dose_end,
|
||||
T1.dispense_interval,
|
||||
T1.dispense_per_quantity,
|
||||
T1.dispense_per_duration,
|
||||
T1.rx_type_code,
|
||||
T1.rx_item_type_code,
|
||||
T1.condition_id,
|
||||
T1.version
|
||||
</select>
|
||||
<select id="selectSaveInfo" resultType="com.openhis.web.doctorstation.dto.ElepPrescriptionInfoParam">
|
||||
SELECT T7.id AS organization_id, --医院id
|
||||
T1.bus_no AS ipt_otp_no, --门诊/住院病历号
|
||||
CASE
|
||||
WHEN (T1.class_enum = '2') THEN T3.name
|
||||
WHEN (T1.class_enum = '1') THEN T5.name
|
||||
ELSE NULL
|
||||
END AS department_ward, --科室病区
|
||||
T6.insutype AS insurance_enum --医保类型
|
||||
--T8.id AS condition_id --诊断id
|
||||
FROM adm_encounter AS T1
|
||||
-- LEFT JOIN adm_encounter_diagnosis AS T2
|
||||
-- ON T2.encounter_id = T1.id
|
||||
-- AND T2.maindise_flag = '1'
|
||||
-- AND T2.delete_flag = '0'
|
||||
-- LEFT JOIN cli_condition AS T8
|
||||
-- ON T2.condition_id = T8.id
|
||||
-- AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T3
|
||||
ON T1.organization_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_location AS T4
|
||||
ON T4.encounter_id = T1.id
|
||||
AND T4.status_enum = '2'
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T5
|
||||
ON T5.id = T4.location_id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN yb_clinc_reg AS T6
|
||||
ON T6.ipt_otp_no = T1.bus_no
|
||||
LEFT JOIN adm_organization AS T7
|
||||
ON LEFT (T3.bus_no, 6) = T7.bus_no
|
||||
AND T7.type_enum = '1'
|
||||
AND T7.delete_flag = '0'
|
||||
WHERE T1.id = #{encounterId}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T7.id,
|
||||
T1.bus_no,
|
||||
T1.class_enum,
|
||||
T3.name,
|
||||
T5.name,
|
||||
T6.insutype
|
||||
-- T8.id
|
||||
</select>
|
||||
<!-- <select id="selectConditionInfo" resultType="com.openhis.web.doctorstation.dto.ElepPrescriptionInfoParam">-->
|
||||
<!-- SELECT T3.id AS condition_id, --诊断id-->
|
||||
<!-- T4.name AS condition_name --诊断名-->
|
||||
<!-- FROM adm_encounter AS T1-->
|
||||
<!-- LEFT JOIN adm_encounter_diagnosis AS T2-->
|
||||
<!-- ON T2.encounter_id = T1.id-->
|
||||
<!-- AND T2.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN cli_condition AS T3-->
|
||||
<!-- ON T2.condition_id = T3.id-->
|
||||
<!-- AND T3.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN cli_condition_definition AS T4-->
|
||||
<!-- ON T3.definition_id = T4.id-->
|
||||
<!-- AND T3.delete_flag = '0'-->
|
||||
<!-- WHERE T1.id = #{encounterId}-->
|
||||
<!-- AND T1.delete_flag = '0'-->
|
||||
<!-- GROUP BY T3.id,-->
|
||||
<!-- T4.name-->
|
||||
<!-- </select>-->
|
||||
</mapper>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.doctorstation.mapper.DoctorStationEmrAppMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,183 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.doctorstation.mapper.DoctorStationMainAppMapper">
|
||||
|
||||
<select id="getPatientInfo" resultType="com.openhis.web.doctorstation.dto.PatientInfoDto">
|
||||
SELECT
|
||||
T10.encounter_id,
|
||||
T10.patient_id,
|
||||
T10.patient_name,
|
||||
T10.gender_enum,
|
||||
T10.id_card,
|
||||
T10.phone,
|
||||
T10.birth_date,
|
||||
T10.status_enum,
|
||||
T10.allergy_history_flag,
|
||||
T10.account_id,
|
||||
T10.type_code,
|
||||
T10.contract_name,
|
||||
T10.org_id,
|
||||
T10.register_time,
|
||||
T10.reception_time,
|
||||
T10.practitioner_user_id,
|
||||
T10.jz_practitioner_user_id
|
||||
from
|
||||
(
|
||||
SELECT T1.tenant_id AS tenant_id,
|
||||
T1.ID AS encounter_id,
|
||||
T1.organization_id AS organization_id,
|
||||
T2.NAME AS organization_name,
|
||||
T3.NAME AS healthcare_name,
|
||||
T5.user_id AS practitioner_user_id,
|
||||
T5.NAME AS practitioner_name,
|
||||
ap.user_id AS jz_practitioner_user_id,
|
||||
ap.NAME AS jz_practitioner_name,
|
||||
T6.id AS account_id,
|
||||
T6.type_code AS type_code,
|
||||
T7.contract_name AS contract_name,
|
||||
T8.ID AS patient_id,
|
||||
T8.NAME AS patient_name,
|
||||
T8.gender_enum AS gender_enum,
|
||||
T8.id_card AS id_card,
|
||||
T8.phone AS phone,
|
||||
T8.birth_date AS birth_date,
|
||||
T1.status_enum AS status_enum,
|
||||
T1.create_time AS register_time,
|
||||
T1.reception_time AS reception_time,
|
||||
T1.organization_id AS org_id,
|
||||
CASE
|
||||
WHEN T9.patient_id IS NOT NULL THEN 1
|
||||
ELSE 0
|
||||
END AS allergy_history_flag
|
||||
FROM adm_encounter AS T1
|
||||
LEFT JOIN adm_organization AS T2 ON T1.organization_id = T2.ID AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_healthcare_service AS T3 ON T1.service_type_id = T3.ID AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_participant AS T4
|
||||
ON T1.ID = T4.encounter_id AND T4.type_code = #{participantType} AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T5 ON T5.ID = T4.practitioner_id AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_participant AS aep ON T1.ID = aep.encounter_id
|
||||
AND aep.type_code = #{participantType2}
|
||||
AND aep.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS ap ON ap.ID = aep.practitioner_id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN adm_account AS T6 ON T1.ID = T6.encounter_id AND T6.delete_flag = '0' and T6.encounter_flag = '1'
|
||||
LEFT JOIN fin_contract AS T7 ON T6.contract_no = T7.bus_no AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_patient AS T8 ON T1.patient_id = T8.ID AND T8.delete_flag = '0'
|
||||
LEFT JOIN cli_allergy_intolerance AS T9
|
||||
ON T1.patient_id = T9.patient_id AND T9.clinical_status_enum != #{ClinicalStatus} AND T9.delete_flag = '0'
|
||||
WHERE
|
||||
T1.delete_flag = '0'
|
||||
<!-- 当前登录账号ID 和 当前登录账号所属的科室ID 用于控制数据权限 -->
|
||||
<if test="userId != null and currentUserOrganizationId != null">
|
||||
AND ( T5.user_id = #{userId}
|
||||
OR (T1.organization_id = #{currentUserOrganizationId}) )
|
||||
</if>
|
||||
<if test="pricingFlag ==1">
|
||||
AND T1.status_enum != #{encounterStatus}
|
||||
</if>
|
||||
ORDER BY
|
||||
T1.create_time ) AS T10
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getPrescriptionPageInfo" resultType="com.openhis.web.doctorstation.dto.PrescriptionInfoBaseDto">
|
||||
SELECT ppi.prescription_no,
|
||||
ppi.encounter_id,
|
||||
ppi.patient_id,
|
||||
ppi.patient_name,
|
||||
ppi.birth_date,
|
||||
ppi.gender_enum,
|
||||
ppi.condition_definition_name,
|
||||
ppi.request_time,
|
||||
ppi.practitioner_id,
|
||||
ppi.practitioner_name,
|
||||
ppi.organization_id,
|
||||
ppi.bus_no,
|
||||
ppi.contract_name
|
||||
FROM (SELECT DISTINCT
|
||||
ON
|
||||
( mmr.prescription_no ) mmr.prescription_no, mmr.encounter_id,
|
||||
mmr.tenant_id,
|
||||
mmr.patient_id,
|
||||
ap.NAME AS patient_name,
|
||||
ap.birth_date AS birth_date,
|
||||
ap.gender_enum AS gender_enum,
|
||||
ccd.NAME AS condition_definition_name,
|
||||
mmr.create_time AS request_time,
|
||||
mmr.practitioner_id,
|
||||
aper.NAME AS practitioner_name,
|
||||
ae.organization_id,
|
||||
ae.bus_no,
|
||||
fc.contract_name
|
||||
FROM
|
||||
med_medication_request AS mmr
|
||||
LEFT JOIN adm_encounter AS ae
|
||||
ON ae.id = mmr.encounter_id AND ae.delete_flag = '0'
|
||||
LEFT JOIN adm_account AS aa ON aa.encounter_id = ae.id AND aa.delete_flag = '0' AND aa.encounter_flag = 1
|
||||
LEFT JOIN fin_contract AS fc ON fc.bus_no = aa.contract_no AND fc.delete_flag = '0'
|
||||
LEFT JOIN adm_patient AS ap
|
||||
ON ap.ID = mmr.patient_id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS cc ON cc.ID = mmr.condition_id
|
||||
AND cc.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS ccd ON ccd.ID = cc.definition_id
|
||||
LEFT JOIN adm_practitioner AS aper ON aper.ID = mmr.practitioner_id
|
||||
AND aper.delete_flag = '0'
|
||||
WHERE
|
||||
mmr.delete_flag = '0'
|
||||
AND (mmr.prescription_no LIKE 'P%'
|
||||
OR mmr.prescription_no LIKE 'C%')
|
||||
AND mmr.refund_medicine_id IS NULL
|
||||
ORDER BY
|
||||
mmr.prescription_no DESC) AS ppi
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getPrescriptionDetailInfo" resultType="com.openhis.web.doctorstation.dto.PrescriptionInfoDetailDto">
|
||||
SELECT mmr.prescription_no,
|
||||
mmr.ID AS request_id,
|
||||
mmr.practitioner_id AS requester_id,
|
||||
mmr.create_time AS request_time,
|
||||
mmr.group_id AS group_id,
|
||||
mmd.NAME AS advice_name,
|
||||
mm.total_volume AS volume,
|
||||
mmr.lot_number AS lot_number,
|
||||
mmr.quantity AS quantity,
|
||||
mmr.unit_code AS unit_code,
|
||||
mmr.status_enum AS status_enum,
|
||||
mmr.method_code AS method_code,
|
||||
mmr.rate_code AS rate_code,
|
||||
mmr.dose AS dose,
|
||||
mmr.dose_unit_code AS dose_unit_code,
|
||||
aci.ID AS charge_item_id,
|
||||
aci.total_price AS total_price,
|
||||
aci.status_enum AS charge_status,
|
||||
al.ID AS position_id,
|
||||
al.NAME AS position_name,
|
||||
mmr.dispense_per_duration AS dispense_per_duration,
|
||||
mmd.part_percent AS part_percent,
|
||||
ccd.NAME AS condition_definition_name
|
||||
FROM med_medication_request AS mmr
|
||||
LEFT JOIN med_medication_definition AS mmd ON mmd.ID = mmr.medication_id
|
||||
AND mmd.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS mm ON mm.medication_def_id = mmd.ID
|
||||
AND mm.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item AS aci ON aci.service_id = mmr.ID
|
||||
AND aci.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS al ON al.ID = mmr.perform_location
|
||||
AND al.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS cc ON cc.ID = mmr.condition_id
|
||||
AND cc.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS ccd ON ccd.ID = cc.definition_id
|
||||
WHERE mmr.delete_flag = '0'
|
||||
<if test="prescriptionNo != null">
|
||||
AND mmr.prescription_no = #{prescriptionNo}
|
||||
</if>
|
||||
<if test="encounterId != null">
|
||||
AND mmr.encounter_id = #{encounterId}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.doctorstation.mapper.DoctorStationPtDetailsAppMapper">
|
||||
<!-- 查询患者详情-->
|
||||
<select id="getPtDetailsList" resultType="com.openhis.web.doctorstation.dto.PatientDetailsDto">
|
||||
SELECT
|
||||
p.name,
|
||||
p.gender_enum,
|
||||
p.birth_date,
|
||||
p.phone,
|
||||
p.address,
|
||||
p.work_company,
|
||||
p.nationality_code,
|
||||
p.marital_status_enum,
|
||||
p.id_card,
|
||||
p.country_code,
|
||||
p.prfs_enum,
|
||||
p.link_name,
|
||||
p.link_relation_code,
|
||||
p.link_telcom,
|
||||
e.id,
|
||||
e.bus_no,
|
||||
e.patient_id,
|
||||
e.status_enum,
|
||||
e.class_enum,
|
||||
e.start_time,
|
||||
e.end_time,
|
||||
COALESCE(a.balance_amount, 0) AS balance_amount, -- 账户余额
|
||||
a.type_code, -- 账户类型
|
||||
(SELECT SUM(aci.total_price)
|
||||
FROM adm_charge_item aci
|
||||
WHERE aci.context_enum = #{contextMed} -- 1:药品
|
||||
AND aci.encounter_id = e.id
|
||||
--待收费,待结算,已结算
|
||||
AND aci.status_enum IN
|
||||
<foreach item="status" collection="statusList" open="(" separator="," close=")">
|
||||
#{status}
|
||||
</foreach>
|
||||
AND aci.delete_flag = '0'
|
||||
) AS total_medication_price, -- 费用:药品
|
||||
(SELECT SUM(aci.total_price)
|
||||
FROM adm_charge_item aci
|
||||
WHERE aci.context_enum = #{contextDev} -- 2:耗材
|
||||
AND aci.encounter_id = e.id
|
||||
--待收费,待结算,已结算
|
||||
AND aci.status_enum IN
|
||||
<foreach item="status" collection="statusList" open="(" separator="," close=")">
|
||||
#{status}
|
||||
</foreach>
|
||||
AND aci.delete_flag = '0'
|
||||
) AS total_device_price, -- 费用:耗材
|
||||
(SELECT SUM(aci.total_price)
|
||||
FROM adm_charge_item aci
|
||||
WHERE aci.context_enum = #{contextAct} -- 3:项目
|
||||
--待收费,待结算,已结算
|
||||
AND aci.status_enum IN
|
||||
<foreach item="status" collection="statusList" open="(" separator="," close=")">
|
||||
#{status}
|
||||
</foreach>
|
||||
AND aci.delete_flag = '0'
|
||||
) AS total_activity_price, -- 费用:项目
|
||||
(SELECT SUM(aci.total_price)
|
||||
FROM adm_charge_item aci
|
||||
WHERE aci.encounter_id = e.id
|
||||
--待收费,待结算,已结算
|
||||
AND aci.status_enum IN
|
||||
<foreach item="status" collection="statusList" open="(" separator="," close=")">
|
||||
#{status}
|
||||
</foreach>
|
||||
AND aci.delete_flag = '0'
|
||||
) AS total_price, -- 费用总计
|
||||
CASE
|
||||
WHEN (
|
||||
SELECT COUNT(*)
|
||||
FROM cli_allergy_intolerance ai
|
||||
WHERE ai.patient_id = e.patient_id
|
||||
AND ai.clinical_status_enum = #{clinicalStatus} -- 阳性
|
||||
) > 0 THEN 1
|
||||
ELSE 0
|
||||
END AS allergy_history_flag, -- 是否有过敏史
|
||||
(SELECT el.location_id
|
||||
FROM adm_encounter_location el
|
||||
WHERE el.encounter_id = e.id
|
||||
AND el.form_enum = #{form} -- 8:病床
|
||||
LIMIT 1
|
||||
) AS bed_location_id, -- 床位ID
|
||||
(SELECT pra.name
|
||||
FROM adm_encounter_participant ep
|
||||
LEFT JOIN adm_practitioner pra ON ep.practitioner_id = pra.id
|
||||
WHERE ep.encounter_id = e.id
|
||||
AND ep.type_code = #{typeCode} --就诊参与者身份类型是1:接诊医生
|
||||
ORDER BY ep.create_time DESC
|
||||
LIMIT 1) AS doctor_name--门诊医生
|
||||
FROM adm_encounter e
|
||||
LEFT JOIN adm_patient p ON e.patient_id = p.id AND p.delete_flag = '0'
|
||||
LEFT JOIN adm_account a ON e.id = a.encounter_id AND a.delete_flag = '0'
|
||||
<where>
|
||||
e.delete_flag = '0'
|
||||
AND e.id = #{encounterId}
|
||||
</where>
|
||||
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.doctorstation.mapper.ReservationRecordAppMapper">
|
||||
|
||||
<select id="getReservationInfo" resultType="com.openhis.web.doctorstation.dto.ReservationRecordDto">
|
||||
SELECT ri.tenant_id,
|
||||
ri.id,
|
||||
ri.patient_name,
|
||||
ri.patient_tel,
|
||||
ri.chief_complaint,
|
||||
ri.reservation_time,
|
||||
ri.org_id,
|
||||
ri.org_name,
|
||||
ri.practitioner_id,
|
||||
ri.practitioner_name,
|
||||
ri.remark
|
||||
from (SELECT crr.tenant_id,
|
||||
crr.id,
|
||||
crr.patient_name,
|
||||
crr.patient_tel,
|
||||
crr.chief_complaint,
|
||||
crr.reservation_time,
|
||||
crr.org_id,
|
||||
ao.NAME AS org_name,
|
||||
crr.practitioner_id,
|
||||
ap.NAME AS practitioner_name,
|
||||
crr.remark
|
||||
FROM cli_reservation_record AS crr
|
||||
LEFT JOIN adm_organization AS ao ON ao.ID = crr.org_id
|
||||
AND ao.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS ap ON ap.ID = crr.practitioner_id
|
||||
AND ap.delete_flag = '0'
|
||||
WHERE crr.delete_flag = '0'
|
||||
AND (crr.org_id = #{orgId} OR crr.practitioner_id = #{practitionerId})
|
||||
order by crr.reservation_time) AS ri
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.document.mapper.DocDefinitionAppMapper">
|
||||
<!-- 患者信息分页查询-->
|
||||
<select id="getDefinationList" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.document.dto.DocDefinitionDto">
|
||||
SELECT
|
||||
dd.id,
|
||||
dd.name,
|
||||
dd.version,
|
||||
dd.primary_menu_enum ,
|
||||
dd.sub_menu ,
|
||||
dd.bus_no ,
|
||||
dd.vue_router ,
|
||||
dd.hospital_id ,
|
||||
dd.is_valid ,
|
||||
dd.display_order ,
|
||||
dd.use_range_enum ,
|
||||
dd.doctor_permission_enum ,
|
||||
dd.nursing_permission_enum ,
|
||||
dd.medical_permission_enum ,
|
||||
dd.pharmacist_permission_enum ,
|
||||
ARRAY_AGG(ddo.organization_id) FILTER (WHERE ddo.organization_id IS NOT NULL) AS organization_Ids
|
||||
FROM doc_definition dd
|
||||
LEFT JOIN doc_definition_organization ddo
|
||||
ON dd.id = ddo.definition_id -- 使用 definition_id 关联
|
||||
WHERE dd.delete_flag = '0'
|
||||
and dd.hospital_id = #{hospitalId}
|
||||
<if test="useRanges != null and !useRanges.isEmpty()">
|
||||
AND dd.use_range_enum IN
|
||||
<foreach collection="useRanges" item="useRange" open="(" separator="," close=")">
|
||||
#{useRange}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="organizationId != null and organizationId != 0">
|
||||
AND ddo.organization_id = #{organizationId} OR dd.use_range_enum = 1
|
||||
</if>
|
||||
<if test="name != null and !name.isEmpty()">
|
||||
AND dd.name LIKE CONCAT('%',#{name},'%')
|
||||
</if>
|
||||
GROUP BY
|
||||
dd.id, dd.primary_menu_enum ,
|
||||
dd.sub_menu
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,91 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.document.mapper.DocRecordAppMapper">
|
||||
<!-- 患者信息分页查询-->
|
||||
<select id="getRecordPageList" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.document.dto.DocRecordPatientDto">
|
||||
SELECT t1.id,
|
||||
t1.definition_id,
|
||||
t1.definition_bus_no,
|
||||
t1.content_json,
|
||||
t1.status_enum,
|
||||
t1.organization_id,
|
||||
t1.encounter_id,
|
||||
t1.patient_id,
|
||||
t1.record_time,
|
||||
t1.tenant_id,
|
||||
t1.delete_flag,
|
||||
t1.create_by,
|
||||
t1.create_time,
|
||||
t1.update_by,
|
||||
t1.update_time,
|
||||
t1.bus_no,
|
||||
t1.patient_name,
|
||||
t1.gender,
|
||||
t1.age,
|
||||
t1.id_card,
|
||||
t1.phone,
|
||||
t1.address,
|
||||
t1.birth_date,
|
||||
t1.reception_time,
|
||||
t1.start_time,
|
||||
t1.end_time,
|
||||
t1.class_enum,
|
||||
t1.primary_menu_enum,
|
||||
t1.doc_name,
|
||||
t1.tenant_id
|
||||
FROM
|
||||
(SELECT
|
||||
p.bus_no,
|
||||
p.name as patient_name,
|
||||
p.gender_enum as gender,
|
||||
null as age,
|
||||
p.birth_date,
|
||||
p.address,
|
||||
p.phone,
|
||||
p.id_card,
|
||||
e.start_time,
|
||||
e.end_time,
|
||||
e.reception_time,
|
||||
e.class_enum,
|
||||
d.primary_menu_enum,
|
||||
d.name as doc_name,
|
||||
t.id,
|
||||
t.definition_id,
|
||||
t.definition_bus_no,
|
||||
t.content_json,
|
||||
t.status_enum,
|
||||
t.organization_id,
|
||||
t.encounter_id,
|
||||
t.patient_id,
|
||||
t.record_time,
|
||||
t.tenant_id,
|
||||
t.delete_flag,
|
||||
t.create_by,
|
||||
t.create_time,
|
||||
t.update_by,
|
||||
t.update_time,
|
||||
t.tenant_id
|
||||
|
||||
FROM doc_record t
|
||||
LEFT JOIN doc_definition d
|
||||
on d.id=t.definition_id
|
||||
LEFT JOIN adm_encounter e
|
||||
on t.encounter_id =e.id
|
||||
LEFT JOIN adm_patient p
|
||||
on t.patient_id=p.id
|
||||
WHERE t.delete_flag='0'
|
||||
|
||||
<if test="primaryMenuEnumList != null and !primaryMenuEnumList.isEmpty()">
|
||||
AND t.primary_menu_enum IN
|
||||
<foreach collection="primaryMenuEnumList" item="primaryMenuEnum" open="(" separator="," close=")">
|
||||
#{primaryMenuEnum}
|
||||
</foreach>
|
||||
</if>
|
||||
order by t.record_time desc
|
||||
)t1
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.document.mapper.DocStatisticsDefinitionAppMapper">
|
||||
<!-- 患者信息分页查询-->
|
||||
<select id="getDocStatisticsDefinitionPageList" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.document.dto.DocStatisticsDefinitionDto">
|
||||
|
||||
</select>
|
||||
<select id="getOptionList" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.document.dto.OptionDto">
|
||||
SELECT op.id as option_id,
|
||||
op.option,
|
||||
op.display_order,
|
||||
d.id,
|
||||
d.name,
|
||||
d.type_enum,
|
||||
d.code,
|
||||
d.required,
|
||||
d.remark,
|
||||
d.is_statistics,
|
||||
d.unit
|
||||
from doc_statistics_definition_option op
|
||||
RIGHT JOIN doc_statistics_definition d
|
||||
on op.doc_statistics_definition_id = d.id
|
||||
WHERE
|
||||
d.delete_flag='0'
|
||||
<if test="id!= null">
|
||||
and d.id = #{id}
|
||||
</if>
|
||||
<if test="code!= null and code.isEmpty() == false">
|
||||
and d.code = #{code}
|
||||
</if>
|
||||
<if test="name!= null">
|
||||
and d.name = #{name}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inhospitalcharge.mapper.AdvancePaymentManageAppMapper">
|
||||
|
||||
<select id="getAdvancePaymentInfo" resultType="com.openhis.web.inhospitalcharge.dto.AdvancePaymentInfoDto">
|
||||
SELECT api.tenant_id,
|
||||
api.encounter_id,
|
||||
api.bus_no,
|
||||
api.patient_id,
|
||||
api.patient_name,
|
||||
api.gender_enum,
|
||||
api.birth_date,
|
||||
api.ward_name,
|
||||
api.house_name,
|
||||
api.bed_name,
|
||||
api.inHospital_org_name,
|
||||
api.account_id,
|
||||
api.total_amount,
|
||||
api.balance_amount
|
||||
from (SELECT ae.tenant_id,
|
||||
ae.ID AS encounter_id,
|
||||
ae.bus_no AS bus_no,
|
||||
ap.id AS patient_id,
|
||||
ap.NAME AS patient_name,
|
||||
ap.gender_enum AS gender_enum,
|
||||
ap.birth_date AS birth_date,
|
||||
alw.name AS ward_name,
|
||||
alh.name AS house_name,
|
||||
alb.name AS bed_name,
|
||||
ao.NAME AS inHospital_org_name,
|
||||
aa.id AS account_id,
|
||||
COALESCE(payment.total_amount, 0) AS total_amount,
|
||||
COALESCE(payment.total_amount, 0) - COALESCE(consumption.consumption_amount, 0) +
|
||||
COALESCE(return_pay.return_amount, 0) AS balance_amount
|
||||
FROM adm_encounter AS ae
|
||||
LEFT JOIN adm_patient AS ap ON ap.ID = ae.patient_id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS ao ON ao.ID = ae.organization_id
|
||||
AND ao.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_location AS aelw
|
||||
ON aelw.encounter_id = ae.ID AND aelw.delete_flag = '0' AND
|
||||
aelw.form_enum = #{wardEnum} AND
|
||||
aelw.status_enum = #{encounterLocationStatus}
|
||||
LEFT JOIN adm_location AS alw ON alw.id = aelw.location_id AND alw.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_location AS aelh
|
||||
ON aelh.encounter_id = ae.ID AND aelh.delete_flag = '0' AND
|
||||
aelh.form_enum = #{houseEnum} AND
|
||||
aelh.status_enum = #{encounterLocationStatus}
|
||||
LEFT JOIN adm_location AS alh ON alh.id = aelh.location_id AND alh.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_location AS aelb
|
||||
ON aelb.encounter_id = ae.ID AND aelb.delete_flag = '0' AND
|
||||
aelb.form_enum = #{bedEnum} AND
|
||||
aelb.status_enum = #{encounterLocationStatus}
|
||||
LEFT JOIN adm_location AS alb ON alb.id = aelb.location_id AND alb.delete_flag = '0'
|
||||
LEFT JOIN adm_account AS aa
|
||||
ON aa.encounter_id = ae.ID AND aa.delete_flag = '0' AND
|
||||
aa.type_code = #{accountTypeCode}
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT SUM
|
||||
(tendered_amount) AS total_amount
|
||||
FROM fin_payment_reconciliation AS fpr
|
||||
WHERE fpr.delete_flag = '0'
|
||||
AND fpr.kind_enum = #{kindEnum}
|
||||
AND fpr.encounter_id = ae.ID
|
||||
) AS payment
|
||||
ON TRUE
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT SUM
|
||||
(total_price) AS consumption_amount
|
||||
FROM adm_charge_item AS aci
|
||||
WHERE aci.delete_flag = '0'
|
||||
AND aci.status_enum IN (#{status1}, #{status2})
|
||||
AND aci.encounter_id = ae.ID
|
||||
) AS consumption ON TRUE
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT SUM
|
||||
(total_price) AS return_amount
|
||||
FROM adm_charge_item AS aci
|
||||
WHERE aci.delete_flag = '0'
|
||||
AND aci.status_enum IN (#{status3})
|
||||
AND aci.encounter_id = ae.ID
|
||||
) AS return_pay ON TRUE
|
||||
WHERE ae.delete_flag = '0'
|
||||
AND ae.class_enum = #{classEnum}) AS api
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getAdvancePaymentFlowRecordList"
|
||||
resultType="com.openhis.web.inhospitalcharge.dto.AdvancePaymentFlowRecordDto">
|
||||
SELECT fpr.payment_no,
|
||||
fpr.tendered_amount,
|
||||
fpr.payment_enum,
|
||||
fpr.create_time AS operate_time,
|
||||
ap.NAME AS enterer
|
||||
FROM fin_payment_reconciliation AS fpr
|
||||
LEFT JOIN adm_practitioner AS ap ON ap.ID = fpr.enterer_id
|
||||
AND ap.delete_flag = '0'
|
||||
WHERE fpr.delete_flag = '0'
|
||||
AND fpr.kind_enum = 0
|
||||
AND fpr.encounter_id = #{encounterId}
|
||||
ORDER BY fpr.create_time DESC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,148 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inhospitalcharge.mapper.InHospitalRegisterAppMapper">
|
||||
|
||||
<select id="getInHospitalRegisterInfo" resultType="com.openhis.web.inhospitalcharge.dto.InHospitalRegisterQueryDto">
|
||||
SELECT ihri.tenant_id,
|
||||
ihri.encounter_id,
|
||||
ihri.amb_encounter_id,
|
||||
ihri.patient_id,
|
||||
ihri.request_time,
|
||||
ihri.registrar,
|
||||
ihri.source_name,
|
||||
ihri.patient_name,
|
||||
ihri.gender_enum,
|
||||
ihri.birth_date,
|
||||
ihri.ward_name
|
||||
from (SELECT ae.tenant_id,
|
||||
ae.ID AS encounter_id,
|
||||
ae.amb_encounter_id AS amb_encounter_id,
|
||||
ae.patient_id AS patient_id,
|
||||
ae.create_time AS request_time,
|
||||
aper.NAME AS registrar,
|
||||
ao.NAME AS source_name,
|
||||
ap.NAME AS patient_name,
|
||||
ap.gender_enum AS gender_enum,
|
||||
ap.birth_date AS birth_date,
|
||||
al.NAME AS ward_name
|
||||
FROM adm_encounter AS ae
|
||||
LEFT JOIN adm_encounter AS ambae ON ae.amb_encounter_id = ambae.
|
||||
ID
|
||||
LEFT JOIN adm_organization AS ao ON ao.ID = ambae.organization_id
|
||||
AND ao.delete_flag = '0'
|
||||
LEFT JOIN adm_patient AS ap ON ap.ID = ae.patient_id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_location AS ael ON ael.encounter_id = ae.ID
|
||||
AND ael.delete_flag = '0'
|
||||
AND ael.form_enum = #{formEnum}
|
||||
LEFT JOIN adm_location AS al ON al.ID = ael.location_id
|
||||
AND al.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS aper ON aper.ID = ae.registrar_id
|
||||
AND aper.delete_flag = '0'
|
||||
WHERE ae.delete_flag = '0'
|
||||
AND ae.class_enum = #{encounterClass}
|
||||
<if test="registeredFlag == '0'.toString()">
|
||||
AND ae.status_enum = #{encounterStatus}
|
||||
</if>
|
||||
<if test="registeredFlag == '1'.toString()">
|
||||
AND ae.status_enum != #{encounterStatus}
|
||||
</if>
|
||||
) AS ihri
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getPatientInfo" resultType="com.openhis.web.inhospitalcharge.dto.InHospitalPatientInfoDto">
|
||||
SELECT ap.id AS patient_id,
|
||||
ap.bus_no,
|
||||
ap.NAME AS patient_name,
|
||||
ap.id_card,
|
||||
ap.birth_date,
|
||||
ap.gender_enum,
|
||||
ap.nationality_code,
|
||||
ap.country_code,
|
||||
ap.marital_status_enum,
|
||||
ap.prfs_enum,
|
||||
ap.phone,
|
||||
ap.address,
|
||||
ap.native_place,
|
||||
ap.work_company
|
||||
FROM adm_patient AS ap
|
||||
WHERE ap.delete_flag = '0'
|
||||
AND ap.ID = #{patientId}
|
||||
</select>
|
||||
|
||||
<select id="getInHospitalInfo" resultType="com.openhis.web.inhospitalcharge.dto.InHospitalInfoDto">
|
||||
SELECT ae.ID AS encounter_id,
|
||||
ae.bus_no AS bus_no,
|
||||
(SELECT COUNT(1)
|
||||
FROM adm_encounter
|
||||
WHERE delete_flag = '0'
|
||||
AND class_enum = 1
|
||||
AND patient_id = ae.patient_id) - 1 AS in_hospital_count,
|
||||
ae.organization_id AS in_hospital_org_id,
|
||||
ae.amb_encounter_id AS amb_encounter_id,
|
||||
ae.priority_enum AS priority_enum,
|
||||
ae.admit_source_code AS admit_source_code,
|
||||
ae.in_way_code AS in_way_code,
|
||||
ae.start_time AS start_time,
|
||||
ao.NAME AS in_hospital_org_name,
|
||||
al.ID AS ward_location_id,
|
||||
al.NAME AS ward_name,
|
||||
al.bus_no AS ward_bus_no,
|
||||
ap.ID AS amb_doctor_practitioner_id,
|
||||
ap.NAME AS amb_doctor_practitioner_name,
|
||||
ccd.NAME AS amb_diagnosis_name,
|
||||
COALESCE(aa.balance_amount, 0) AS balance_amount
|
||||
FROM adm_encounter AS ae
|
||||
LEFT JOIN adm_organization AS ao ON ao.ID = ae.organization_id
|
||||
AND ao.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_location AS ael ON ael.encounter_id = ae.ID
|
||||
AND ael.delete_flag = '0'
|
||||
AND ael.form_enum = #{formEnum}
|
||||
LEFT JOIN adm_location AS al ON al.ID = ael.location_id
|
||||
AND al.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_participant AS aep ON aep.encounter_id = ae.amb_encounter_id
|
||||
AND aep.delete_flag = '0'
|
||||
AND aep.type_code = #{participantType}
|
||||
LEFT JOIN adm_practitioner AS ap ON ap.ID = aep.practitioner_id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_diagnosis AS aed ON aed.encounter_id = ae.amb_encounter_id
|
||||
AND aed.delete_flag = '0'
|
||||
AND aed.maindise_flag = #{maindiseFlag}
|
||||
LEFT JOIN cli_condition AS cc ON cc.ID = aed.condition_id
|
||||
AND cc.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS ccd ON ccd.ID = cc.definition_id
|
||||
AND ccd.delete_flag = '0'
|
||||
LEFT JOIN adm_account AS aa ON aa.encounter_id = ae.ID
|
||||
AND aa.delete_flag = '0'
|
||||
AND aa.type_code = #{accountType}
|
||||
WHERE ae.ID = #{encounterId}
|
||||
</select>
|
||||
|
||||
<select id="getTotalBedsNum" resultType="integer">
|
||||
SELECT COUNT
|
||||
(1)
|
||||
FROM adm_location
|
||||
WHERE delete_flag = '0'
|
||||
AND form_enum = #{formEnum}
|
||||
AND status_enum != #{status}
|
||||
AND bus_no LIKE concat('%'
|
||||
, #{wardBusNo}
|
||||
, '%')
|
||||
</select>
|
||||
|
||||
<select id="getIdleBedsNum" resultType="integer">
|
||||
SELECT COUNT
|
||||
(1)
|
||||
FROM adm_location
|
||||
WHERE delete_flag = '0'
|
||||
AND form_enum = #{formEnum}
|
||||
AND status_enum = #{status}
|
||||
AND bus_no LIKE concat('%'
|
||||
, #{wardBusNo}
|
||||
, '%')
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,347 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inhospitalnursestation.mapper.ATDManageAppMapper">
|
||||
<select id="selectAdmissionPatientPage"
|
||||
resultType="com.openhis.web.inhospitalnursestation.dto.AdmissionPatientPageDto">
|
||||
SELECT ii.encounter_id,
|
||||
ii.bus_no,
|
||||
ii.encounter_status,
|
||||
ii.start_time,
|
||||
ii.end_time,
|
||||
ii.admit_source_code,
|
||||
ii.priority_enum,
|
||||
ii.organization_id,
|
||||
ii.patient_name,
|
||||
ii.patient_py_str,
|
||||
ii.patient_wb_str,
|
||||
ii.gender_enum,
|
||||
ii.birth_date,
|
||||
ii.ward_id,
|
||||
ii.ward_name,
|
||||
ii.house_id,
|
||||
ii.house_name,
|
||||
ii.bed_id,
|
||||
ii.bed_name,
|
||||
ii.organization_name,
|
||||
ii.contract_name
|
||||
FROM (
|
||||
WITH locations AS (
|
||||
SELECT ael.encounter_id,
|
||||
al.form_enum,
|
||||
al.id AS location_id,
|
||||
al."name" AS location_name
|
||||
FROM adm_encounter_location ael
|
||||
LEFT JOIN adm_location al
|
||||
ON ael.location_id = al.id
|
||||
AND al.delete_flag = '0'
|
||||
WHERE ael.status_enum = #{active}
|
||||
AND ael.delete_flag = '0'
|
||||
)
|
||||
SELECT ae.tenant_id,
|
||||
ae.id AS encounter_id,
|
||||
ae.bus_no,
|
||||
ae.status_enum AS encounter_status,
|
||||
ae.start_time,
|
||||
ae.end_time,
|
||||
ae.admit_source_code,
|
||||
ae.priority_enum,
|
||||
ae.organization_id,
|
||||
ap."name" AS patient_name,
|
||||
ap.py_str AS patient_py_str,
|
||||
ap.wb_str AS patient_wb_str,
|
||||
ap.gender_enum,
|
||||
ap.birth_date,
|
||||
alw.location_id AS ward_id,
|
||||
alw.location_name AS ward_name,
|
||||
alh.location_id AS house_id,
|
||||
alh.location_name AS house_name,
|
||||
alb.location_id AS bed_id,
|
||||
alb.location_name AS bed_name,
|
||||
ao."name" AS organization_name,
|
||||
fc.contract_name
|
||||
FROM adm_encounter ae
|
||||
LEFT JOIN adm_patient ap
|
||||
ON ae.patient_id = ap.id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN locations alw
|
||||
ON alw.encounter_id = ae.id
|
||||
AND alw.form_enum = #{ward}
|
||||
LEFT JOIN locations alh
|
||||
ON alh.encounter_id = ae.id
|
||||
AND alh.form_enum = #{house}
|
||||
LEFT JOIN locations alb
|
||||
ON alb.encounter_id = ae.id
|
||||
AND alb.form_enum = #{bed}
|
||||
LEFT JOIN adm_organization ao
|
||||
ON ao.id = ae.organization_id
|
||||
AND ao.delete_flag = '0'
|
||||
LEFT JOIN adm_account aa
|
||||
ON ae.id = aa.encounter_id
|
||||
AND aa.encounter_flag = 1
|
||||
AND aa.delete_flag = '0'
|
||||
LEFT JOIN fin_contract fc
|
||||
ON aa.contract_no = fc.bus_no
|
||||
AND fc.delete_flag = '0'
|
||||
WHERE ae.delete_flag = '0'
|
||||
AND ae.class_enum = #{imp}
|
||||
AND ae.status_enum != #{toBeRegistered}
|
||||
GROUP BY ae.id,
|
||||
ae.bus_no,
|
||||
ae.status_enum,
|
||||
ae.start_time,
|
||||
ae.end_time,
|
||||
ae.admit_source_code,
|
||||
ae.priority_enum,
|
||||
ae.organization_id,
|
||||
ap."name",
|
||||
ap.py_str,
|
||||
ap.wb_str,
|
||||
ap.gender_enum,
|
||||
ap.birth_date,
|
||||
alw.location_id,
|
||||
alw.location_name,
|
||||
alh.location_id,
|
||||
alh.location_name,
|
||||
alb.location_id,
|
||||
alb.location_name,
|
||||
ao."name",
|
||||
fc.contract_name
|
||||
ORDER BY ae.bus_no DESC
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectAdmissionBadPage"
|
||||
resultType="com.openhis.web.inhospitalnursestation.dto.AdmissionBedPageDto">
|
||||
SELECT ii.bed_id,
|
||||
ii.bed_name,
|
||||
ii.bed_status,
|
||||
ii.house_id,
|
||||
ii.house_name,
|
||||
ii.ward_id,
|
||||
ii.ward_name,
|
||||
ii.encounter_id ,
|
||||
ii.organization_id ,
|
||||
ii.bus_no ,
|
||||
ii.encounter_status,
|
||||
ii.patient_name,
|
||||
ii.patient_py_str,
|
||||
ii.patient_wb_str,
|
||||
ii.gender_enum ,
|
||||
ii.birth_date ,
|
||||
ii.total_amount,
|
||||
ii.balance_amount
|
||||
FROM ( SELECT bed.id AS bed_id,
|
||||
bed.tenant_id,
|
||||
bed."name" AS bed_name,
|
||||
bed.status_enum AS bed_status,
|
||||
house.id AS house_id,
|
||||
house."name" AS house_name,
|
||||
ward.id AS ward_id,
|
||||
ward."name" AS ward_name,
|
||||
ae.id AS encounter_id ,
|
||||
ae.organization_id ,
|
||||
ae.bus_no ,
|
||||
ae.status_enum AS encounter_status,
|
||||
ap."name" AS patient_name,
|
||||
ap.py_str AS patient_py_str,
|
||||
ap.wb_str AS patient_wb_str,
|
||||
ap.gender_enum ,
|
||||
ap.birth_date ,
|
||||
personal_account.total_amount,
|
||||
personal_account.balance_amount
|
||||
FROM adm_location bed
|
||||
LEFT JOIN adm_location house
|
||||
ON house.bus_no = SPLIT_PART(bed.bus_no,'.',1) || '.' || SPLIT_PART(bed.bus_no,'.',2)
|
||||
AND house.form_enum = #{house}
|
||||
AND house.delete_flag = '0'
|
||||
LEFT JOIN adm_location ward
|
||||
ON ward.bus_no = SPLIT_PART(bed.bus_no,'.',1)
|
||||
AND ward.form_enum = #{ward}
|
||||
AND ward.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_location aelb
|
||||
ON bed.id = aelb.location_id
|
||||
AND aelb.delete_flag = '0'
|
||||
AND aelb.status_enum = #{active}
|
||||
AND bed.form_enum = #{bed}
|
||||
LEFT JOIN adm_encounter ae
|
||||
ON aelb.encounter_id = ae.id
|
||||
AND ae.delete_flag = '0'
|
||||
LEFT JOIN adm_patient ap
|
||||
ON ap.id = ae.patient_id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN ( SELECT aa.encounter_id,
|
||||
aa.balance_amount AS total_amount,
|
||||
(aa.balance_amount -
|
||||
COALESCE(SUM(CASE WHEN aci.status_enum IN (#{billed}, #{billable})
|
||||
THEN aci.total_price ELSE 0 END), 0) +
|
||||
COALESCE(SUM(CASE WHEN aci.status_enum = #{refunded}
|
||||
THEN aci.total_price ELSE 0 END), 0)) AS balance_amount
|
||||
FROM adm_account aa
|
||||
LEFT JOIN adm_charge_item aci
|
||||
ON aa.encounter_id = aci.encounter_id
|
||||
AND aa.delete_flag = '0'
|
||||
WHERE aa.type_code = #{personalCashAccount}
|
||||
AND aa.delete_flag = '0'
|
||||
GROUP BY aa.encounter_id,
|
||||
aa.balance_amount
|
||||
) AS personal_account
|
||||
ON personal_account.encounter_id = ae.id
|
||||
WHERE bed.form_enum = #{bed}
|
||||
AND bed.delete_flag = '0'
|
||||
AND bed.status_enum != #{inactive}
|
||||
GROUP BY bed.id,
|
||||
bed.tenant_id,
|
||||
bed."name",
|
||||
bed.status_enum,
|
||||
house.id,
|
||||
house."name",
|
||||
ward.id,
|
||||
ward."name",
|
||||
ae.id,
|
||||
ae.organization_id ,
|
||||
ae.bus_no ,
|
||||
ae.status_enum,
|
||||
ap."name",
|
||||
ap.py_str,
|
||||
ap.wb_str,
|
||||
ap.gender_enum ,
|
||||
ap.birth_date,
|
||||
personal_account.total_amount,
|
||||
personal_account.balance_amount
|
||||
ORDER BY bed.bus_no
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectAdmissionPatientInfo"
|
||||
resultType="com.openhis.web.inhospitalnursestation.dto.AdmissionPatientInfoDto">
|
||||
WITH locations AS (
|
||||
SELECT ael.encounter_id,
|
||||
ael.start_time,
|
||||
al.form_enum,
|
||||
al.id AS location_id,
|
||||
al."name" AS location_name
|
||||
FROM adm_encounter_location ael
|
||||
LEFT JOIN adm_location al
|
||||
ON ael.location_id = al.id
|
||||
AND al.delete_flag = '0'
|
||||
WHERE ael.status_enum = #{active}
|
||||
AND ael.delete_flag = '0'
|
||||
) , practitioners AS (
|
||||
SELECT aep.encounter_id ,
|
||||
aep.type_code ,
|
||||
pra.id AS practitioner_id,
|
||||
pra."name" AS practitioner_name
|
||||
FROM adm_encounter_participant aep
|
||||
LEFT JOIN adm_practitioner pra
|
||||
ON aep.practitioner_id = pra.id
|
||||
AND pra.delete_flag = '0'
|
||||
WHERE aep.status_enum = #{active}
|
||||
AND aep.delete_flag = '0'
|
||||
)
|
||||
SELECT ae.id AS encounter_id,
|
||||
ae.bus_no ,
|
||||
ae.priority_enum ,
|
||||
ae.organization_id ,
|
||||
ae.start_time AS in_hos_time,
|
||||
bed.start_time,
|
||||
bed.location_id AS bed_id,
|
||||
bed.location_name AS bed_name,
|
||||
house.location_id AS house_id,
|
||||
house.location_name AS house_name,
|
||||
ward.location_id AS ward_id,
|
||||
ward.location_name AS ward_name,
|
||||
primaryNurse.practitioner_id AS primary_nurse_id,
|
||||
primaryNurse.practitioner_name AS primary_nurse_name,
|
||||
attendingDoctor.practitioner_id AS attending_doctor_id,
|
||||
attendingDoctor.practitioner_name AS attending_doctor_name,
|
||||
admittingDoctor.practitioner_id AS admitting_doctor_id,
|
||||
admittingDoctor.practitioner_name AS admitting_doctor_name,
|
||||
chiefDoctor.practitioner_id AS chief_doctor_id,
|
||||
chiefDoctor.practitioner_name AS chief_doctor_name,
|
||||
ao."name" AS organization_name ,
|
||||
ap."name" AS patient_name,
|
||||
ap.gender_enum ,
|
||||
ap.birth_date ,
|
||||
ap.phone ,
|
||||
fc.contract_name ,
|
||||
diagnosis.condition_names
|
||||
FROM adm_encounter ae
|
||||
LEFT JOIN locations AS bed
|
||||
ON bed.encounter_id = ae.id
|
||||
AND bed.form_enum = #{bed}
|
||||
LEFT JOIN locations AS house
|
||||
ON house.encounter_id = ae.id
|
||||
AND house.form_enum = #{house}
|
||||
LEFT JOIN locations AS ward
|
||||
ON ward.encounter_id = ae.id
|
||||
AND ward.form_enum = #{ward}
|
||||
LEFT JOIN practitioners AS primaryNurse
|
||||
ON primaryNurse.encounter_id = ae.id
|
||||
AND primaryNurse.type_code = #{primaryNurse}
|
||||
LEFT JOIN practitioners AS attendingDoctor
|
||||
ON attendingDoctor.encounter_id = ae.id
|
||||
AND attendingDoctor.type_code = #{attendingDoctor}
|
||||
LEFT JOIN practitioners AS admittingDoctor
|
||||
ON admittingDoctor.encounter_id = ae.id
|
||||
AND admittingDoctor.type_code = #{admittingDoctor}
|
||||
LEFT JOIN practitioners AS chiefDoctor
|
||||
ON chiefDoctor.encounter_id = ae.id
|
||||
AND chiefDoctor.type_code = #{chiefDoctor}
|
||||
LEFT JOIN adm_organization ao
|
||||
ON ao.id = ae.organization_id
|
||||
AND ao.delete_flag = '0'
|
||||
LEFT JOIN adm_patient ap
|
||||
ON ae.patient_id = ap.id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN adm_account aa
|
||||
ON ae.id = aa.encounter_id
|
||||
AND aa.encounter_flag = 1
|
||||
AND aa.delete_flag = '0'
|
||||
LEFT JOIN fin_contract fc
|
||||
ON aa.contract_no = fc.bus_no
|
||||
AND fc.delete_flag = '0'
|
||||
LEFT JOIN (
|
||||
SELECT aed.encounter_id,
|
||||
STRING_AGG(ccd.name, ', ') AS condition_names
|
||||
FROM adm_encounter_diagnosis aed
|
||||
INNER JOIN cli_condition cc
|
||||
ON cc.id = aed.condition_id
|
||||
AND cc.delete_flag = '0'
|
||||
INNER JOIN cli_condition_definition ccd
|
||||
ON ccd.id = cc.definition_id
|
||||
AND ccd.delete_flag = '0'
|
||||
WHERE aed.delete_flag = '0'
|
||||
GROUP BY aed.encounter_id
|
||||
) AS diagnosis
|
||||
ON ae.id = diagnosis.encounter_id
|
||||
WHERE ae.id = #{encounterId}
|
||||
AND ae.delete_flag = '0'
|
||||
GROUP BY ae.id,
|
||||
ae.bus_no ,
|
||||
ae.priority_enum ,
|
||||
ae.organization_id ,
|
||||
ae.start_time,
|
||||
bed.start_time,
|
||||
bed.location_id,
|
||||
bed.location_name,
|
||||
house.location_id,
|
||||
house.location_name,
|
||||
ward.location_id,
|
||||
ward.location_name,
|
||||
primaryNurse.practitioner_id,
|
||||
primaryNurse.practitioner_name,
|
||||
attendingDoctor.practitioner_id,
|
||||
attendingDoctor.practitioner_name,
|
||||
admittingDoctor.practitioner_id,
|
||||
admittingDoctor.practitioner_name,
|
||||
chiefDoctor.practitioner_id,
|
||||
chiefDoctor.practitioner_name,
|
||||
ao."name",
|
||||
ap."name",
|
||||
ap.gender_enum ,
|
||||
ap.birth_date ,
|
||||
ap.phone ,
|
||||
fc.contract_name ,
|
||||
diagnosis.condition_names
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,396 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inhospitalnursestation.mapper.AdviceProcessAppMapper">
|
||||
|
||||
<select id="selectInpatientPage"
|
||||
resultType="com.openhis.web.inhospitalnursestation.dto.AdmissionPatientPageDto">
|
||||
SELECT ii.encounter_id,
|
||||
ii.bus_no,
|
||||
ii.encounter_status,
|
||||
ii.start_time,
|
||||
ii.end_time,
|
||||
ii.admit_source_code,
|
||||
ii.priority_enum,
|
||||
ii.organization_id,
|
||||
ii.patient_name,
|
||||
ii.patient_py_str,
|
||||
ii.patient_wb_str,
|
||||
ii.gender_enum,
|
||||
ii.birth_date,
|
||||
ii.ward_id,
|
||||
ii.ward_name,
|
||||
ii.house_id,
|
||||
ii.house_name,
|
||||
ii.bed_id,
|
||||
ii.bed_name,
|
||||
ii.organization_name
|
||||
FROM (
|
||||
WITH locations AS (
|
||||
SELECT ael.encounter_id,
|
||||
al.form_enum,
|
||||
al.id AS location_id,
|
||||
al."name" AS location_name
|
||||
FROM adm_encounter_location ael
|
||||
LEFT JOIN adm_location al
|
||||
ON ael.location_id = al.id
|
||||
AND al.delete_flag = '0'
|
||||
WHERE ael.status_enum = #{active}
|
||||
AND ael.delete_flag = '0'
|
||||
)
|
||||
SELECT ae.tenant_id,
|
||||
ae.id AS encounter_id,
|
||||
ae.bus_no,
|
||||
ae.status_enum AS encounter_status,
|
||||
ae.start_time,
|
||||
ae.end_time,
|
||||
ae.admit_source_code,
|
||||
ae.priority_enum,
|
||||
ae.organization_id,
|
||||
ap."name" AS patient_name,
|
||||
ap.py_str AS patient_py_str,
|
||||
ap.wb_str AS patient_wb_str,
|
||||
ap.gender_enum,
|
||||
ap.birth_date,
|
||||
alw.location_id AS ward_id,
|
||||
alw.location_name AS ward_name,
|
||||
alh.location_id AS house_id,
|
||||
alh.location_name AS house_name,
|
||||
alb.location_id AS bed_id,
|
||||
alb.location_name AS bed_name,
|
||||
ao."name" AS organization_name
|
||||
FROM adm_encounter ae
|
||||
LEFT JOIN adm_patient ap
|
||||
ON ae.patient_id = ap.id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN locations alw
|
||||
ON alw.encounter_id = ae.id
|
||||
AND alw.form_enum = #{ward}
|
||||
LEFT JOIN locations alh
|
||||
ON alh.encounter_id = ae.id
|
||||
AND alh.form_enum = #{house}
|
||||
LEFT JOIN locations alb
|
||||
ON alb.encounter_id = ae.id
|
||||
AND alb.form_enum = #{bed}
|
||||
LEFT JOIN adm_organization ao
|
||||
ON ao.id = ae.organization_id
|
||||
AND ao.delete_flag = '0'
|
||||
WHERE ae.delete_flag = '0'
|
||||
AND ae.class_enum = #{imp}
|
||||
AND ae.status_enum != #{toBeRegistered}
|
||||
AND ae.status_enum != #{registered}
|
||||
GROUP BY ae.id,
|
||||
ae.bus_no,
|
||||
ae.status_enum,
|
||||
ae.start_time,
|
||||
ae.end_time,
|
||||
ae.admit_source_code,
|
||||
ae.priority_enum,
|
||||
ae.organization_id,
|
||||
ap."name",
|
||||
ap.py_str,
|
||||
ap.wb_str,
|
||||
ap.gender_enum,
|
||||
ap.birth_date,
|
||||
alw.location_id,
|
||||
alw.location_name,
|
||||
alh.location_id,
|
||||
alh.location_name,
|
||||
alb.location_id,
|
||||
alb.location_name,
|
||||
ao."name"
|
||||
ORDER BY ae.bus_no DESC
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectInpatientAdvicePage"
|
||||
resultType="com.openhis.web.inhospitalnursestation.dto.InpatientAdviceDto">
|
||||
SELECT ii.encounter_id,
|
||||
ii.advice_table,
|
||||
ii.request_id,
|
||||
ii.start_time,
|
||||
ii.end_time,
|
||||
ii.requester_id,
|
||||
ii.request_time,
|
||||
ii.skin_test_flag,
|
||||
ii.inject_flag,
|
||||
ii.group_id,
|
||||
ii.advice_name,
|
||||
ii.item_id,
|
||||
ii.volume,
|
||||
ii.lot_number,
|
||||
ii.quantity,
|
||||
ii.unit_code,
|
||||
ii.request_status,
|
||||
ii.method_code,
|
||||
ii.rate_code,
|
||||
ii.dose,
|
||||
ii.dose_unit_code,
|
||||
ii.position_id,
|
||||
ii.position_name,
|
||||
ii.dispense_per_duration,
|
||||
ii.part_percent,
|
||||
ii.condition_definition_name,
|
||||
ii.therapy_enum,
|
||||
ii.sort_number,
|
||||
ii.execute_num,
|
||||
ii.day_times,
|
||||
ii.bus_no,
|
||||
ii."patient_name" AS patient_name,
|
||||
ii."bad_name" AS bad_name,
|
||||
ii.gender_enum ,
|
||||
ii.birth_date ,
|
||||
ii.contract_name ,
|
||||
ii.condition_names,
|
||||
ii.admitting_doctor_name AS admitting_doctor_name,
|
||||
ii.balance_amount AS balance_amount
|
||||
FROM (( SELECT T1.encounter_id,
|
||||
T1.tenant_id,
|
||||
#{medMedicationRequest} AS advice_table,
|
||||
T1.id AS request_id,
|
||||
T1.effective_dose_start AS start_time,
|
||||
T1.effective_dose_end AS end_time,
|
||||
T1.practitioner_id AS requester_id,
|
||||
T1.create_time AS request_time,
|
||||
T1.skin_test_flag AS skin_test_flag,
|
||||
T1.infusion_flag AS inject_flag,
|
||||
T1.group_id AS group_id,
|
||||
T2."name" AS advice_name,
|
||||
T2.id AS item_id,
|
||||
T3.total_volume AS volume,
|
||||
T1.lot_number AS lot_number,
|
||||
T1.quantity AS quantity,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.status_enum AS request_status,
|
||||
T1.method_code AS method_code,
|
||||
T1.rate_code AS rate_code,
|
||||
T1.dose AS dose,
|
||||
T1.dose_unit_code AS dose_unit_code,
|
||||
al1.id AS position_id,
|
||||
al1."name" AS position_name,
|
||||
T1.dispense_per_duration AS dispense_per_duration,
|
||||
T2.part_percent AS part_percent,
|
||||
ccd."name" AS condition_definition_name,
|
||||
T1.therapy_enum AS therapy_enum,
|
||||
T1.sort_number AS sort_number,
|
||||
T1.execute_num,
|
||||
af.day_times,
|
||||
ae.bus_no,
|
||||
ap."name" AS patient_name,
|
||||
al2."name" AS bad_name,
|
||||
ap.gender_enum ,
|
||||
ap.birth_date ,
|
||||
fc.contract_name ,
|
||||
diagnosis.condition_names,
|
||||
pra."name" AS admitting_doctor_name,
|
||||
personal_account.balance_amount
|
||||
FROM med_medication_request AS T1
|
||||
LEFT JOIN med_medication_definition AS T2
|
||||
ON T2.id = T1.medication_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T3
|
||||
ON T3.medication_def_id = T2.ID
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS al1
|
||||
ON al1.id = T1.perform_location
|
||||
AND al1.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS cc
|
||||
ON cc.id = T1.condition_id
|
||||
AND cc.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS ccd
|
||||
ON ccd.id = cc.definition_id
|
||||
AND ccd.delete_flag = '0'
|
||||
LEFT JOIN adm_frequency af
|
||||
ON af.rate_code = T1.rate_code
|
||||
AND af.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter ae
|
||||
ON ae.id = T1.encounter_id
|
||||
AND ae.class_enum = #{imp}
|
||||
AND ae.delete_flag = '0'
|
||||
LEFT JOIN adm_patient ap
|
||||
ON ae.patient_id = ap.id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_location ael
|
||||
ON ae.id = ael.encounter_id
|
||||
AND ael.delete_flag = '0'
|
||||
AND ael.status_enum = #{active}
|
||||
AND ael.form_enum = #{bed}
|
||||
LEFT JOIN adm_location al2
|
||||
ON ael.location_id = al2.id
|
||||
AND al2.delete_flag = '0'
|
||||
LEFT JOIN adm_account aa
|
||||
ON ae.id = aa.encounter_id
|
||||
AND aa.encounter_flag = 1
|
||||
AND aa.delete_flag = '0'
|
||||
LEFT JOIN fin_contract fc
|
||||
ON aa.contract_no = fc.bus_no
|
||||
AND fc.delete_flag = '0'
|
||||
LEFT JOIN ( SELECT aed.encounter_id,
|
||||
STRING_AGG(ccd.name, ', ') AS condition_names
|
||||
FROM adm_encounter_diagnosis aed
|
||||
INNER JOIN cli_condition cc
|
||||
ON cc.id = aed.condition_id
|
||||
AND cc.delete_flag = '0'
|
||||
INNER JOIN cli_condition_definition ccd
|
||||
ON ccd.id = cc.definition_id
|
||||
AND ccd.delete_flag = '0'
|
||||
WHERE aed.delete_flag = '0'
|
||||
GROUP BY aed.encounter_id
|
||||
) AS diagnosis
|
||||
ON ae.id = diagnosis.encounter_id
|
||||
LEFT JOIN adm_encounter_participant aep
|
||||
ON ae.id = aep.encounter_id
|
||||
AND aep.delete_flag = '0'
|
||||
AND aep.status_enum = #{active}
|
||||
AND aep.type_code = #{admittingDoctor}
|
||||
LEFT JOIN adm_practitioner pra
|
||||
ON aep.practitioner_id = pra.id
|
||||
AND pra.delete_flag = '0'
|
||||
LEFT JOIN ( SELECT aa.encounter_id,
|
||||
(aa.balance_amount -
|
||||
COALESCE(SUM(CASE WHEN aci.status_enum IN (#{billed}, #{billable})
|
||||
THEN aci.total_price ELSE 0 END), 0) +
|
||||
COALESCE(SUM(CASE WHEN aci.status_enum = #{refunded}
|
||||
THEN aci.total_price ELSE 0 END), 0)) AS balance_amount
|
||||
FROM adm_account aa
|
||||
LEFT JOIN adm_charge_item aci
|
||||
ON aa.encounter_id = aci.encounter_id
|
||||
AND aa.delete_flag = '0'
|
||||
WHERE aa.type_code = #{personalCashAccount}
|
||||
AND aa.delete_flag = '0'
|
||||
GROUP BY aa.encounter_id,
|
||||
aa.balance_amount
|
||||
) AS personal_account
|
||||
ON personal_account.encounter_id = ae.id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.refund_medicine_id IS NULL
|
||||
AND CASE WHEN T1.status_enum = #{draft}
|
||||
THEN T1.performer_check_id IS NOT NULL
|
||||
ELSE 1=1 END
|
||||
ORDER BY T1.status_enum,
|
||||
T1.sort_number,
|
||||
T1.group_id )
|
||||
UNION
|
||||
( SELECT T1.encounter_id,
|
||||
T1.tenant_id,
|
||||
#{worServiceRequest} AS advice_table,
|
||||
T1.id AS request_id,
|
||||
T1.occurrence_start_time AS start_time,
|
||||
T1.occurrence_end_time AS end_time,
|
||||
T1.requester_id AS requester_id,
|
||||
T1.create_time AS request_time,
|
||||
NULL AS skin_test_flag,
|
||||
NULL AS inject_flag,
|
||||
NULL AS group_id,
|
||||
T2."name" AS advice_name,
|
||||
T2.id AS item_id,
|
||||
NULL AS volume,
|
||||
NULL AS lot_number,
|
||||
T1.quantity AS quantity,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.status_enum AS request_status,
|
||||
NULL AS method_code,
|
||||
NULL AS rate_code,
|
||||
NULL AS dose,
|
||||
NULL AS dose_unit_code,
|
||||
ao1.id AS position_id,
|
||||
ao1."name" AS position_name,
|
||||
NULL AS dispense_per_duration,
|
||||
1 AS part_percent,
|
||||
ccd."name" AS condition_definition_name,
|
||||
T1.therapy_enum AS therapy_enum,
|
||||
NULL AS sort_number,
|
||||
T1.quantity AS execute_num,
|
||||
NULL AS day_times,
|
||||
ae.bus_no,
|
||||
ap."name" AS patient_name,
|
||||
al2."name" AS bad_name,
|
||||
ap.gender_enum ,
|
||||
ap.birth_date ,
|
||||
fc.contract_name ,
|
||||
diagnosis.condition_names,
|
||||
pra."name" AS admitting_doctor_name,
|
||||
personal_account.balance_amount
|
||||
FROM wor_service_request AS T1
|
||||
LEFT JOIN wor_activity_definition AS T2
|
||||
ON T2.id = T1.activity_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS cc
|
||||
ON cc.id = T1.condition_id
|
||||
AND cc.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS ccd
|
||||
ON ccd.id = cc.definition_id
|
||||
AND ccd.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS ao1
|
||||
ON ao1.id = T1.org_id
|
||||
AND ao1.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter ae
|
||||
ON ae.id = T1.encounter_id
|
||||
AND ae.class_enum = #{imp}
|
||||
AND ae.delete_flag = '0'
|
||||
LEFT JOIN adm_patient ap
|
||||
ON ae.patient_id = ap.id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_location ael
|
||||
ON ae.id = ael.encounter_id
|
||||
AND ael.delete_flag = '0'
|
||||
AND ael.status_enum = #{active}
|
||||
AND ael.form_enum = #{bed}
|
||||
LEFT JOIN adm_location al
|
||||
ON ael.location_id = al.id
|
||||
AND al.delete_flag = '0'
|
||||
LEFT JOIN adm_location al2
|
||||
ON ael.location_id = al2.ID
|
||||
AND al2.delete_flag = '0'
|
||||
LEFT JOIN adm_account aa ON ae.ID = aa.encounter_id
|
||||
AND aa.encounter_flag = 1
|
||||
AND aa.delete_flag = '0'
|
||||
LEFT JOIN fin_contract fc ON aa.contract_no = fc.bus_no
|
||||
AND fc.delete_flag = '0'
|
||||
LEFT JOIN ( SELECT aed.encounter_id,
|
||||
STRING_AGG(ccd.name, ', ') AS condition_names
|
||||
FROM adm_encounter_diagnosis aed
|
||||
INNER JOIN cli_condition cc
|
||||
ON cc.id = aed.condition_id
|
||||
AND cc.delete_flag = '0'
|
||||
INNER JOIN cli_condition_definition ccd
|
||||
ON ccd.id = cc.definition_id
|
||||
AND ccd.delete_flag = '0'
|
||||
WHERE aed.delete_flag = '0'
|
||||
GROUP BY aed.encounter_id
|
||||
) AS diagnosis
|
||||
ON ae.id = diagnosis.encounter_id
|
||||
LEFT JOIN adm_encounter_participant aep
|
||||
ON ae.id = aep.encounter_id
|
||||
AND aep.delete_flag = '0'
|
||||
AND aep.status_enum = #{active}
|
||||
AND aep.type_code = #{admittingDoctor}
|
||||
LEFT JOIN adm_practitioner pra
|
||||
ON aep.practitioner_id = pra.id
|
||||
AND pra.delete_flag = '0'
|
||||
LEFT JOIN ( SELECT aa.encounter_id,
|
||||
(aa.balance_amount -
|
||||
COALESCE(SUM(CASE WHEN aci.status_enum IN (#{billed}, #{billable})
|
||||
THEN aci.total_price ELSE 0 END), 0) +
|
||||
COALESCE(SUM(CASE WHEN aci.status_enum = #{refunded}
|
||||
THEN aci.total_price ELSE 0 END), 0)) AS balance_amount
|
||||
FROM adm_account aa
|
||||
LEFT JOIN adm_charge_item aci
|
||||
ON aa.encounter_id = aci.encounter_id
|
||||
AND aa.delete_flag = '0'
|
||||
WHERE aa.type_code = #{personalCashAccount}
|
||||
AND aa.delete_flag = '0'
|
||||
GROUP BY aa.encounter_id,
|
||||
aa.balance_amount
|
||||
) AS personal_account
|
||||
ON personal_account.encounter_id = ae.id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND CASE WHEN T1.status_enum = #{draft}
|
||||
THEN T1.performer_check_id IS NOT NULL
|
||||
ELSE 1=1 END
|
||||
AND T1.refund_service_id IS NULL
|
||||
ORDER BY T1.status_enum )
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,258 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inhospitalnursestation.mapper.InpatientMedicineCollectionMapper">
|
||||
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.inhospitalnursestation.dto.InpatientMedicineEncounterInfoDto">
|
||||
SELECT ii.tenant_id,
|
||||
ii.organization_id,
|
||||
ii.organization_name,
|
||||
ii.encounter_id,
|
||||
ii.bus_no,
|
||||
ii.patient_name,
|
||||
ii.patient_py_str,
|
||||
ii.patient_wb_str,
|
||||
ii.gender_enum,
|
||||
ii.birth_date,
|
||||
ii.inpatient_bed
|
||||
FROM (SELECT T1.tenant_id,
|
||||
T1.organization_id, --科室
|
||||
T3.name AS organization_name,
|
||||
T1.id AS encounter_id, --就诊id
|
||||
T1.bus_no, --住院号
|
||||
T2.name AS patient_name, --患者姓名
|
||||
T2.py_str AS patient_py_str,--拼音码
|
||||
T2.wb_str AS patient_wb_str,--五笔码
|
||||
T2.gender_enum, --性别
|
||||
T2.birth_date, --生日
|
||||
STRING_AGG(T5.NAME, '_' ORDER BY T5.bus_no) AS inpatient_bed --床位
|
||||
FROM adm_encounter AS T1
|
||||
LEFT JOIN adm_patient AS T2
|
||||
ON T1.patient_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T3
|
||||
ON T1.organization_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_location AS T4
|
||||
ON T4.encounter_id = T1.id
|
||||
AND T4.status_enum = '2'
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T5
|
||||
ON T5.id = T4.location_id
|
||||
AND T5.delete_flag = '0'
|
||||
WHERE T1.class_enum = #{amb}
|
||||
--todo status_enum 的值
|
||||
AND T1.status_enum = 5
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.tenant_id,
|
||||
T1.organization_id,
|
||||
T3.name,
|
||||
T1.id,
|
||||
T1.bus_no,
|
||||
T2.name,
|
||||
T2.py_str,
|
||||
T2.wb_str,
|
||||
T2.gender_enum,
|
||||
T2.birth_date) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectPrescriptionInfoListPage" resultType="com.openhis.web.inhospitalnursestation.dto.InpatientMedicinePrescriptionInfoDto">
|
||||
SELECT ii.tenant_id,
|
||||
ii.dispense_id,--药品发放id
|
||||
ii.therapy_enum,--治疗类型
|
||||
ii.planned_dispense_time,--预定发放时间
|
||||
ii.encounter_id,--就诊id
|
||||
ii.patient_name,--患者姓名
|
||||
ii.status_enum,--发放状态
|
||||
ii.item_table,--项目表
|
||||
ii.item_id,--项目id
|
||||
ii.item_name,--项目名
|
||||
ii.quantity,--请求数量
|
||||
ii.unit_code,--请求单位编码
|
||||
ii.location_id,--发放地点
|
||||
ii.location_name,
|
||||
ii.lot_number,--批号
|
||||
ii.total_volume--规格
|
||||
FROM (SELECT T1.tenant_id,
|
||||
T1.id AS dispense_id,--发放id
|
||||
T2.therapy_enum,--治疗类型
|
||||
T1.planned_dispense_time,--预定发放时间
|
||||
T1.encounter_id,--就诊id
|
||||
T3.name AS patient_name,--患者姓名
|
||||
T1.status_enum,--发放状态
|
||||
#{medMedicationDefinition} AS item_table,--项目表
|
||||
T1.medication_id AS item_id,--项目id
|
||||
T4.name AS item_name,--项目名
|
||||
T1.quantity,--请求数量
|
||||
T1.unit_code,--请求单位编码
|
||||
T1.location_id,--发放地点
|
||||
T6.name AS location_name,
|
||||
T1.lot_number,--批号
|
||||
T5.total_volume--规格
|
||||
FROM med_medication_dispense AS T1
|
||||
LEFT JOIN med_medication_request AS T2
|
||||
ON T1.med_req_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_patient AS T3
|
||||
ON T1.patient_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T4
|
||||
ON T1.medication_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T5
|
||||
ON T4.id = T5.medication_def_id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T6
|
||||
ON T1.location_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
WHERE T1.encounter_id IN
|
||||
<foreach collection="encounterIdList" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.id,
|
||||
T2.therapy_enum,
|
||||
T3.name,
|
||||
T4.name,
|
||||
T6.name,
|
||||
T5.total_volume
|
||||
UNION
|
||||
SELECT T1.tenant_id,
|
||||
T1.id AS dispense_id,--发放id
|
||||
null AS therapy_enum,--治疗类型
|
||||
T1.planned_dispense_time,--预定发放时间
|
||||
T1.encounter_id,--就诊id
|
||||
T3.name AS patient_name,--患者姓名
|
||||
T1.status_enum,--发放状态
|
||||
#{admDeviceDefinition} AS item_table,--项目表
|
||||
T1.device_def_id AS item_id,--项目id
|
||||
T4.name AS item_name,--项目名
|
||||
T1.quantity,--请求数量
|
||||
T1.unit_code,--请求单位编码
|
||||
T1.location_id,--发放地点
|
||||
T6.name AS location_name,
|
||||
T1.lot_number,--批号
|
||||
T4.size AS total_volume--规格
|
||||
FROM wor_device_dispense AS T1
|
||||
LEFT JOIN wor_device_request AS T2
|
||||
ON T1.device_req_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_patient AS T3
|
||||
ON T1.patient_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition AS T4
|
||||
ON T1.device_def_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_device AS T5
|
||||
ON T4.id = T5.device_def_id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T6
|
||||
ON T1.location_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
WHERE T1.encounter_id IN
|
||||
<foreach collection="encounterIdList" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.id,
|
||||
T3.name,
|
||||
T4.name,
|
||||
T6.name,
|
||||
T4.size
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectPrescriptionSummaryInfoListPage" resultType="com.openhis.web.inhospitalnursestation.dto.InpatientMedicinePrescriptionInfoDto">
|
||||
SELECT ii.tenant_id,
|
||||
ii.dispense_ids,
|
||||
ii.item_table,
|
||||
ii.item_id,
|
||||
ii.item_name,
|
||||
ii.quantity,
|
||||
ii.unit_code,
|
||||
ii.lot_number,
|
||||
ii.status_enum,
|
||||
ii.location_id,
|
||||
ii.location_enum
|
||||
FROM (SELECT T1.tenant_id,
|
||||
string_agg(T1.id::text, ',' ORDER BY T1.id) AS dispense_ids,
|
||||
#{medMedicationDefinition} AS item_table,--项目表
|
||||
T1.medication_id AS item_id,--项目id
|
||||
T4.name AS item_name,--项目名
|
||||
SUM(T1.quantity) AS quantity,--请求数量
|
||||
T1.unit_code,--请求单位编码
|
||||
T1.lot_number,--批号
|
||||
T1.status_enum,--发放状态
|
||||
T1.location_id,--发放地点
|
||||
T6.form_enum AS location_enum--地点类型
|
||||
FROM med_medication_dispense AS T1
|
||||
LEFT JOIN med_medication_request AS T2
|
||||
ON T1.med_req_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
-- LEFT JOIN adm_patient AS T3
|
||||
-- ON T1.patient_id = T3.id
|
||||
-- AND T3.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T4
|
||||
ON T1.medication_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T5
|
||||
ON T4.id = T5.medication_def_id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T6
|
||||
ON T1.location_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
WHERE T1.id IN
|
||||
<foreach collection="medDispenseId" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.tenant_id,
|
||||
T1.medication_id,
|
||||
T1.unit_code,
|
||||
T1.lot_number,
|
||||
T1.location_id,
|
||||
T4.name,
|
||||
T6.form_enum
|
||||
UNION
|
||||
SELECT T1.tenant_id,
|
||||
string_agg(T1.id::text, ',' ORDER BY T1.id) AS dispense_ids,
|
||||
#{admDeviceDefinition} AS item_table,--项目表
|
||||
T1.device_def_id AS item_id,--项目id
|
||||
T4.name AS item_name,--项目名
|
||||
SUM(T1.quantity) AS quantity,--请求数量
|
||||
T1.unit_code,--请求单位编码
|
||||
T1.lot_number,--批号
|
||||
T1.status_enum,--发放状态
|
||||
T1.location_id,--发放地点
|
||||
T6.form_enum AS location_enum--地点类型
|
||||
FROM wor_device_dispense AS T1
|
||||
LEFT JOIN wor_device_request AS T2
|
||||
ON T1.device_req_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
-- LEFT JOIN adm_patient AS T3
|
||||
-- ON T1.patient_id = T3.id
|
||||
-- AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition AS T4
|
||||
ON T1.device_def_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_device AS T5
|
||||
ON T4.id = T5.device_def_id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T6
|
||||
ON T1.location_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
WHERE T1.id IN
|
||||
<foreach collection="devDispenseId" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.tenant_id,
|
||||
T1.device_def_id,
|
||||
T1.unit_code,
|
||||
T1.lot_number,
|
||||
T1.location_id,
|
||||
T4.name,
|
||||
T6.form_enum) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,160 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inpatientmanage.mapper.AdmissionMapper">
|
||||
|
||||
<!-- 住院登记信息分页查询-->
|
||||
<select id="getPage" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.inpatientmanage.dto.AdmissionDto">
|
||||
SELECT
|
||||
T1.id,
|
||||
T1.patient_id,
|
||||
T1.group_id,
|
||||
T1.encounter_bus_no,
|
||||
T1.status_enum,
|
||||
T1.class_enum,
|
||||
T1.yb_class_enum,
|
||||
T1.organization_id,
|
||||
T1.in_way_code,
|
||||
T1.admit_source_code,
|
||||
T1.tenant_id,
|
||||
T1.create_time,
|
||||
T1.create_by,
|
||||
T1.name,
|
||||
T1.patient_bus_no,
|
||||
T1.gender_enum,
|
||||
T1.birth_date,
|
||||
T1.phone,
|
||||
T1.id_card,
|
||||
T1.py_str,
|
||||
T1.wb_str,
|
||||
T1.ward_location_id
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
e.id,
|
||||
e.patient_id,
|
||||
e.group_id,
|
||||
e.bus_no as encounter_bus_no,
|
||||
e.status_enum,
|
||||
e.class_enum,
|
||||
e.yb_class_enum,
|
||||
e.organization_id,
|
||||
e.admit_source_code,
|
||||
e.in_way_code,
|
||||
e.tenant_id,
|
||||
e.create_time,
|
||||
e.create_by,
|
||||
p.name,
|
||||
p.bus_no AS patient_bus_no,
|
||||
p.gender_enum,
|
||||
p.birth_date,
|
||||
p.phone,
|
||||
p.id_card,
|
||||
p.py_str,
|
||||
p.wb_str,
|
||||
(SELECT el.location_id
|
||||
FROM adm_encounter_location el
|
||||
WHERE el.encounter_id = e.id AND el.form_enum = #{formEnum} --4:病区
|
||||
ORDER BY el.id DESC
|
||||
LIMIT 1) as ward_location_id--病区
|
||||
FROM adm_encounter e
|
||||
LEFT JOIN adm_patient p ON e.patient_id = p.id
|
||||
<where>
|
||||
e.delete_flag = '0'
|
||||
AND e.class_enum = #{classEnum} --1:住院
|
||||
</where>
|
||||
ORDER BY e.bus_no desc
|
||||
) AS T1
|
||||
${ew.customSqlSegment}
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 住院登记信息分页查询-->
|
||||
<select id="getAdmissionOne" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.inpatientmanage.dto.AdmissionUpDto">
|
||||
SELECT
|
||||
e.id,
|
||||
e.patient_id,
|
||||
e.group_id,
|
||||
e.bus_no as encounter_bus_no,
|
||||
e.status_enum,
|
||||
e.class_enum,
|
||||
e.yb_class_enum,
|
||||
e.class_json,
|
||||
e.priority_enum,
|
||||
e.type_enum,
|
||||
e.service_type_id,
|
||||
e.subject_status_enum,
|
||||
e.start_time,
|
||||
e.end_time,
|
||||
e.organization_id,
|
||||
e.display_order,
|
||||
e.admit_source_code,
|
||||
e.in_way_code,
|
||||
e.first_enum,
|
||||
e.tenant_id,
|
||||
p.name,
|
||||
p.bus_no AS patient_bus_no,
|
||||
p.gender_enum,
|
||||
p.birth_date,
|
||||
p.address,
|
||||
p.prfs_enum,
|
||||
p.phone,
|
||||
p.id_card,
|
||||
p.py_str,
|
||||
p.wb_str,
|
||||
p.work_company,
|
||||
p.native_place,
|
||||
p.country_code,
|
||||
p.nationality_code,
|
||||
p.link_name,
|
||||
p.link_relation_code,
|
||||
p.link_telcom,
|
||||
(SELECT pra.name
|
||||
FROM adm_encounter_participant ep
|
||||
LEFT JOIN adm_practitioner pra ON ep.practitioner_id = pra.id
|
||||
WHERE ep.encounter_id = e.id
|
||||
AND ep.type_code = #{typeCode} --就诊参与者身份类型是1:接诊医生
|
||||
ORDER BY ep.create_time DESC
|
||||
LIMIT 1) AS doctor_name,--接诊医生
|
||||
COALESCE((SELECT COUNT(*)
|
||||
FROM adm_encounter e1
|
||||
WHERE e1.patient_id = e.patient_id
|
||||
AND e1.class_enum = #{classEnum} --住院类型
|
||||
AND e1.status_enum = #{statusEnum} --出院,诊毕
|
||||
), 0) AS hospitalization_count,-- 住院次数
|
||||
el.location_id AS ward_location_id, --病区
|
||||
l.bus_no,
|
||||
(SELECT COUNT(*)
|
||||
FROM adm_location
|
||||
WHERE bus_no LIKE l.bus_no || '%'
|
||||
AND form_enum = #{bedForm} -- 8:病床
|
||||
AND operational_enum = #{operational} -- 病床状态 3:占用中
|
||||
) || '/' ||
|
||||
(SELECT COUNT(*)
|
||||
FROM adm_location
|
||||
WHERE bus_no LIKE l.bus_no || '%'
|
||||
AND form_enum = #{bedForm} -- 8:病床
|
||||
) AS bed_count -- 占用中/病床总数
|
||||
FROM adm_encounter e
|
||||
LEFT JOIN adm_patient p ON e.patient_id = p.id
|
||||
LEFT JOIN adm_encounter_location el ON e.id = el.encounter_id AND el.form_enum = #{wardForm}--4:病区
|
||||
LEFT JOIN adm_location l ON l.id = el.location_id AND l.form_enum = #{wardForm}--4:病区
|
||||
<where>
|
||||
e.delete_flag = '0'
|
||||
AND e.class_enum = #{classEnum}
|
||||
|
||||
<if test="id!= null">
|
||||
AND e.id = #{id}
|
||||
</if>
|
||||
|
||||
<if test="tenantId!= null">
|
||||
AND e.tenant_id = #{tenantId}
|
||||
</if>
|
||||
|
||||
</where>
|
||||
ORDER BY e.bus_no desc
|
||||
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inpatientmanage.mapper.DepositMapper">
|
||||
|
||||
<!-- 住院登记信息分页查询-->
|
||||
<select id="getPage" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.inpatientmanage.dto.DepositDetailDto">
|
||||
SELECT T8.patient_id,
|
||||
T8.name,
|
||||
T8.gender_enum,
|
||||
T8.birth_date,
|
||||
T8.bed_location_id,
|
||||
T8.organization_id,
|
||||
T8.total_price,
|
||||
T8.deposit,
|
||||
T8.balance_amount,
|
||||
T8.pay_way,
|
||||
T8.payment_enum,
|
||||
T8.tendered_amount,
|
||||
T8.bus_no,
|
||||
T8.status_enum,
|
||||
T8.after_balance,
|
||||
T8.pay_time,
|
||||
T8.enterer_id
|
||||
FROM (SELECT T1.id AS patient_id, --住院号
|
||||
T1.name, --患者姓名
|
||||
T1.gender_enum, --性别编码
|
||||
T1.birth_date, --生日
|
||||
T3.location_id AS bed_location_id, --位置ID(床位号)
|
||||
T1.organization_id, --机构Id(科室)
|
||||
COALESCE(SUM_TOTAL.total_price, 0) AS total_price, -- 总额
|
||||
COALESCE(SUM_DEPOSIT.deposit, 0) AS deposit, -- 预交金
|
||||
T4.balance_amount, --余额
|
||||
CASE T4.pay_enum
|
||||
WHEN '220100' THEN '微信'
|
||||
WHEN '220200' THEN '支付宝'
|
||||
WHEN '220300' THEN '银联'
|
||||
WHEN '220400' THEN '现金'
|
||||
ELSE '其他'
|
||||
END AS pay_way, --支付方式
|
||||
T5.payment_enum, --状态
|
||||
T5.tendered_amount, --金额
|
||||
T7.bus_no, --收据号
|
||||
T7.status_enum, --票据状态
|
||||
T6.after_balance, --可退金额
|
||||
T6.pay_trans_date AS pay_time, --收款时间
|
||||
T5.enterer_id --收款员
|
||||
FROM adm_patient AS T1
|
||||
INNER JOIN adm_encounter AS T2
|
||||
ON T2.patient_id = T1.id
|
||||
AND T2.class_enum = #{classEnum}
|
||||
LEFT JOIN adm_encounter_location AS T3
|
||||
ON T3.encounter_id = T2.id
|
||||
AND T3.form_enum = #{formEnum}
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_account AS T4
|
||||
ON T4.patient_id = T1.id
|
||||
AND T4.encounter_id = T2.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_reconciliation AS T5
|
||||
ON T5.patient_id = T1.id
|
||||
AND T5.encounter_id = T2.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN fin_payment_rec_detail AS T6
|
||||
ON T6.reconciliation_id = T5.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_invoice AS T7
|
||||
ON T7.reconciliation_id = T6.reconciliation_id
|
||||
AND T7.patient_id = T1.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN (SELECT patient_id, SUM(tendered_amount) AS total_price
|
||||
FROM fin_payment_reconciliation
|
||||
WHERE kind_enum = 2
|
||||
GROUP BY patient_id) AS SUM_TOTAL
|
||||
ON SUM_TOTAL.patient_id = T1.id
|
||||
LEFT JOIN (SELECT patient_id, SUM(tendered_amount) AS deposit
|
||||
FROM fin_payment_reconciliation
|
||||
WHERE kind_enum = 1
|
||||
GROUP BY patient_id) AS SUM_DEPOSIT
|
||||
ON SUM_DEPOSIT.patient_id = T1.id
|
||||
WHERE T1.delete_flag = '0'
|
||||
ORDER BY T6.pay_trans_date desc
|
||||
) AS T8
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,165 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inpatientmanage.mapper.NursingRecordAppMapper">
|
||||
<!-- 患者信息分页查询-->
|
||||
<select id="getPatientPage" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.inpatientmanage.dto.NursingPageDto">
|
||||
SELECT T5.tenant_id,
|
||||
T5.patient_id,
|
||||
T5.patient_name,
|
||||
T5.patient_bus_no,
|
||||
T5.birth_date,
|
||||
T5.gender_enum,
|
||||
T5.org_id,
|
||||
T5.encounter_id,
|
||||
T5.admissionDate,
|
||||
T5.ward_location_id,
|
||||
T5.bed_location_id
|
||||
FROM (SELECT T1.tenant_id,
|
||||
T1.id AS patient_id, --患者ID
|
||||
T1.name AS patient_name, --患者姓名
|
||||
T1.bus_no AS patient_bus_no, --病历号
|
||||
T1.birth_date, --患者出生日期
|
||||
T1.gender_enum, --患者性别
|
||||
T1.organization_id AS org_id, --科室ID
|
||||
T2.id AS encounter_id, --就诊ID
|
||||
T2.start_time AS admissionDate, --入院日期
|
||||
T3.location_id AS ward_location_id, --病区
|
||||
T4.location_id AS bed_location_id --床号
|
||||
FROM adm_patient AS T1
|
||||
INNER JOIN adm_encounter AS T2
|
||||
ON T2.patient_id = T1.id
|
||||
AND T2.class_enum = #{classEnum}
|
||||
AND T2.delete_flag = '0'
|
||||
INNER JOIN (SELECT encounter_id,
|
||||
location_id,
|
||||
form_enum,
|
||||
delete_flag
|
||||
FROM (SELECT encounter_id,
|
||||
location_id,
|
||||
form_enum,
|
||||
delete_flag,
|
||||
ROW_NUMBER() OVER (PARTITION BY encounter_id
|
||||
ORDER BY
|
||||
CASE
|
||||
WHEN update_time IS NULL THEN create_time
|
||||
ELSE update_time
|
||||
END DESC) AS rn
|
||||
FROM adm_encounter_location
|
||||
WHERE form_enum = #{ward}
|
||||
AND delete_flag = '0'
|
||||
) ranked
|
||||
WHERE rn = 1) AS T3
|
||||
ON T3.encounter_id = T2.ID
|
||||
INNER JOIN adm_encounter_location AS T4
|
||||
ON T4.encounter_id = T2.ID
|
||||
AND T4.form_enum = #{bed}
|
||||
AND T4.status_enum = #{active}
|
||||
AND T4.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
ORDER BY T4.location_id ASC) AS T5
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<!-- 患者护理记录单信息分页查询-->
|
||||
<select id="getNursingPatientPage" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.inpatientmanage.dto.NursingDetailDto">
|
||||
SELECT T6.tenant_id,
|
||||
T6.patient_id,
|
||||
T6.patient_name,
|
||||
T6.birth_date,
|
||||
T6.gender_enum,
|
||||
T6.org_id,
|
||||
T6.encounter_id,
|
||||
T6.admissionDate,
|
||||
T6.ward_location_id,
|
||||
T6.record_id,
|
||||
T6.recorder_id,
|
||||
T6.recording_time,
|
||||
T6.context_json,
|
||||
T6.bed_location_id
|
||||
FROM (SELECT T1.tenant_id,
|
||||
T1.id AS patient_id, --患者ID
|
||||
T1.name AS patient_name, --患者姓名
|
||||
T1.birth_date, --患者出生日期
|
||||
T1.gender_enum, --患者性别
|
||||
T1.organization_id AS org_id, --科室ID
|
||||
T2.id AS encounter_id, --就诊ID
|
||||
T2.start_time AS admissionDate, --入院日期
|
||||
T3.location_id AS ward_location_id, --病区
|
||||
T5.id AS record_id, --记录单ID
|
||||
T5.record_id AS recorder_id, --记录人
|
||||
T5.record_time AS recording_time, --记录时间
|
||||
T5.context_json, --病历信息
|
||||
T4.location_id AS bed_location_id --床号
|
||||
FROM adm_patient AS T1
|
||||
INNER JOIN adm_encounter AS T2
|
||||
ON T2.patient_id = T1.id
|
||||
AND T2.class_enum = #{classEnum}
|
||||
AND T2.delete_flag = '0'
|
||||
INNER JOIN (SELECT encounter_id,
|
||||
location_id,
|
||||
form_enum,
|
||||
delete_flag
|
||||
FROM (SELECT encounter_id,
|
||||
location_id,
|
||||
form_enum,
|
||||
delete_flag,
|
||||
ROW_NUMBER() OVER (PARTITION BY encounter_id
|
||||
ORDER BY
|
||||
CASE
|
||||
WHEN update_time IS NULL THEN create_time
|
||||
ELSE update_time
|
||||
END DESC) AS rn
|
||||
FROM adm_encounter_location
|
||||
WHERE form_enum = #{ward}
|
||||
AND delete_flag = '0'
|
||||
) ranked
|
||||
WHERE rn = 1) AS T3
|
||||
ON T3.encounter_id = T2.ID
|
||||
INNER JOIN adm_encounter_location AS T4
|
||||
ON T4.encounter_id = T2.ID
|
||||
AND T4.form_enum = #{bed}
|
||||
AND T4.status_enum = #{active}
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN doc_emr AS T5
|
||||
ON T5.patient_id = T1.id
|
||||
AND T5.encounter_id = T2.ID
|
||||
AND T5.class_enum = 1 --护理记录单
|
||||
AND T5.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
ORDER BY T5.record_time DESC) AS T6
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<!-- 病历模板分页查询-->
|
||||
<select id="getEmrTemplate" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.inpatientmanage.dto.NursingEmrTemplateDto">
|
||||
SELECT T2.tenant_id,
|
||||
T2.id,
|
||||
T2.template_name,
|
||||
T2.template_type_code,
|
||||
T2.use_scope_code,
|
||||
T2.use_scope_code_text,
|
||||
T2.user_id,
|
||||
T2.context_json
|
||||
FROM (SELECT T1.tenant_id,
|
||||
T1.id,
|
||||
T1.template_name,
|
||||
T1.template_type_code,
|
||||
T1.use_scope_code,
|
||||
CASE
|
||||
WHEN T1.use_scope_code = '1' THEN '个人'
|
||||
WHEN T1.use_scope_code = '2' THEN '科室'
|
||||
WHEN T1.use_scope_code = '3' THEN '全院'
|
||||
END AS use_scope_code_text,
|
||||
T1.user_id,
|
||||
T1.context_json
|
||||
FROM doc_emr_template AS T1
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.template_type_code = #{nursing}
|
||||
ORDER BY T1.create_time DESC) AS T2
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,206 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inpatientmanage.mapper.PatientHomeAppMapper">
|
||||
|
||||
<!-- 患者首页信息分页查询-->
|
||||
<select id="getPage" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.inpatientmanage.dto.PatientHomeDto">
|
||||
SELECT
|
||||
T1.id,
|
||||
T1.active_flag,
|
||||
T1.temp_flag,
|
||||
T1."name" AS patientName, -- 患者姓名
|
||||
T1.name_json,
|
||||
T1.bus_no AS patientNo, -- 病历号
|
||||
T1.gender_enum, -- 患者性别
|
||||
T1.birth_date,
|
||||
T1.deceased_date,
|
||||
T1.marital_status_enum,
|
||||
T1.prfs_enum,
|
||||
T1.phone, -- 患者手机号
|
||||
COALESCE(NULLIF(T1.address, ''), '') AS address, -- 处理空地址
|
||||
T1.address_province,
|
||||
T1.address_city,
|
||||
T1.address_district,
|
||||
T1.address_street,
|
||||
T1.address_json,
|
||||
T1.nationality_code,
|
||||
T1.id_card,
|
||||
T1.py_str,
|
||||
T1.wb_str,
|
||||
T1.blood_abo,
|
||||
T1.blood_rh,
|
||||
T1.work_company,
|
||||
T1.native_place,
|
||||
T1.country_code,
|
||||
T1.link_name,
|
||||
T1.link_relation_code,
|
||||
T1.link_telcom,
|
||||
T1.link_jsons,
|
||||
T1.tenant_id,
|
||||
T2.bus_no AS hospitalNo, -- 住院号
|
||||
T2.id AS encounterId, -- 就诊ID
|
||||
T2.priority_enum, -- 护理级别
|
||||
T2.status_enum, -- 患者状态
|
||||
T2.organization_id,-- 入院科室
|
||||
T2.start_time AS admissionDate, -- 入院日期
|
||||
T2.end_time AS dischargeDate, -- 出院日期
|
||||
T2.class_enum, -- 就诊类别
|
||||
Doctor.name AS responsibleDoctor, -- 责任医生
|
||||
Nurse.name AS responsibleNurse, -- 责任护士
|
||||
T6.type_code, -- 费别
|
||||
T7.status_enum AS surgeryStatusEnum, -- 手术状态
|
||||
T8.start_time AS surgeryStartTime, -- 手术开始时间
|
||||
T8.end_time AS surgeryEndTime, -- 手术结束时间
|
||||
T9.id AS encounterLocationId, -- 就诊位置ID
|
||||
T9.location_id, -- 床位号
|
||||
T10.category_code, -- 过敏原
|
||||
T11."name" AS caty, -- 入院科室
|
||||
T12."name" AS mainDiagnosis -- 主要诊断
|
||||
FROM adm_patient AS T1
|
||||
LEFT JOIN adm_encounter T2
|
||||
ON T1.id = T2.patient_id -- 患者ID
|
||||
AND T2.delete_flag = '0'
|
||||
AND T2.class_enum = '1' -- 仅选择住院患者
|
||||
-- 获取责任医生
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
encounter_id,
|
||||
practitioner_id,
|
||||
"name",
|
||||
ROW_NUMBER() OVER (PARTITION BY encounter_id ORDER BY practitioner_id) as rn
|
||||
FROM (
|
||||
SELECT
|
||||
T3.encounter_id,
|
||||
T4."name",
|
||||
T3.practitioner_id
|
||||
FROM adm_encounter_participant T3
|
||||
LEFT JOIN adm_practitioner T4
|
||||
ON T3.practitioner_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
WHERE T3.type_code = '9' -- 责任医生类型
|
||||
AND T3.delete_flag = '0'
|
||||
) sub
|
||||
) Doctor ON T2.id = Doctor.encounter_id AND Doctor.rn = 1
|
||||
-- 获取责任护士
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
encounter_id,
|
||||
practitioner_id,
|
||||
"name",
|
||||
ROW_NUMBER() OVER (PARTITION BY encounter_id ORDER BY practitioner_id) as rn
|
||||
FROM (
|
||||
SELECT
|
||||
T3.encounter_id,
|
||||
T4."name",
|
||||
T3.practitioner_id
|
||||
FROM adm_encounter_participant T3
|
||||
LEFT JOIN adm_practitioner T4
|
||||
ON T3.practitioner_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
WHERE T3.type_code = '2' -- 责任护士类型
|
||||
AND T3.delete_flag = '0'
|
||||
) sub
|
||||
) Nurse ON T2.id = Nurse.encounter_id AND Nurse.rn = 1
|
||||
LEFT JOIN adm_encounter_diagnosis T5
|
||||
ON T2.id = T5.encounter_id -- 就诊ID
|
||||
AND T5.maindise_flag = 1
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_account T6
|
||||
ON T2.id = T6.encounter_id -- 就诊ID
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN cli_procedure T7
|
||||
ON T1.id = T7.patient_id -- 患者ID
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN cli_procedure_performer T8
|
||||
ON T7.id = T8.procedure_id -- 手术ID
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_location T9
|
||||
ON T2.id = T9.encounter_id -- 就诊ID
|
||||
AND T9.form_enum = 8
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN cli_allergy_intolerance T10
|
||||
ON T1.id = T10.patient_id -- 患者ID
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_organization T11
|
||||
ON T2.organization_id = T11.id
|
||||
AND T11.type_enum = 2
|
||||
AND T11.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition T12
|
||||
ON T5.condition_id = T12.id
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN wor_service_request T13
|
||||
ON T2.id = T13.encounter_id
|
||||
AND T7.base_service_req_id = T13.id
|
||||
AND T13.delete_flag = '0'
|
||||
LEFT JOIN wor_service_request_detail T14
|
||||
ON T13.id = T14.service_req_id
|
||||
AND T14.type_code = '3'
|
||||
AND T14.delete_flag = '0'
|
||||
<where>
|
||||
T1.delete_flag = '0'
|
||||
-- 患者ID
|
||||
<if test="patientId != null">
|
||||
AND T1.id = #{patientId}
|
||||
</if>
|
||||
|
||||
-- 在科
|
||||
<if test="statusEnum == 1">
|
||||
AND T9.status_enum = 2
|
||||
</if>
|
||||
|
||||
-- 待出院
|
||||
<if test="statusEnum == 3">
|
||||
AND T2.status_enum = 4
|
||||
</if>
|
||||
|
||||
-- 危重
|
||||
<if test="statusEnum == 4">
|
||||
AND T2.priority_enum = 1
|
||||
</if>
|
||||
|
||||
-- 手术
|
||||
<if test="statusEnum == 5">
|
||||
AND T14.type_code = '3'
|
||||
</if>
|
||||
|
||||
-- 欠费
|
||||
<if test="statusEnum == 6">
|
||||
AND T6.balance_amount < 0
|
||||
</if>
|
||||
|
||||
-- 已出院
|
||||
<if test="statusEnum == 7">
|
||||
AND T2.status_enum = 5
|
||||
</if>
|
||||
|
||||
<if test="searchKey != null and searchKey != ''">
|
||||
AND (
|
||||
-- 住院号
|
||||
T2.bus_no = #{searchKey}
|
||||
-- 患者姓名
|
||||
OR T1.name like concat('%', #{searchKey}, '%')
|
||||
-- 责任医生
|
||||
OR Doctor.name like concat('%', #{searchKey}, '%')
|
||||
-- 责任护士
|
||||
OR Nurse.name like concat('%', #{searchKey}, '%')
|
||||
)
|
||||
</if>
|
||||
</where>
|
||||
|
||||
ORDER BY T9.location_id ASC
|
||||
</select>
|
||||
|
||||
<!-- 科室空床查询-->
|
||||
<select id="getEmptyBedList" parameterType="java.util.List"
|
||||
resultType="com.openhis.web.inpatientmanage.dto.PatientHomeEmptyBedDto">
|
||||
SELECT id as locationId
|
||||
FROM adm_location
|
||||
WHERE organization_id = #{organizationId}
|
||||
AND operational_enum = 4
|
||||
AND form_enum = 8
|
||||
AND delete_flag = '0'
|
||||
ORDER BY id ASC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.inpatientmanage.mapper.VitalSignsAppMapper">
|
||||
|
||||
<!-- 三测单患者信息查询-->
|
||||
<select id="getVitalSignsInfo" parameterType="java.util.Map"
|
||||
resultType="com.openhis.web.inpatientmanage.dto.VitalSignsDto">
|
||||
SELECT T1.id,
|
||||
T1.patient_id,
|
||||
T1.encounter_id,
|
||||
T1.recording_date,
|
||||
T1.time_point,
|
||||
T1.vital_signs_code,
|
||||
T1.vital_signs_values,
|
||||
T1.units,
|
||||
T1.baby_no,
|
||||
T1.location_id,
|
||||
T1.recorder,
|
||||
T1.remake,
|
||||
T2."name", -- 患者姓名
|
||||
T3.bus_no AS hospitalNo, -- 住院号
|
||||
T3.class_enum, -- 就诊类别
|
||||
T3.organization_id, -- 科室ID
|
||||
T3.start_time AS admissionDate, -- 入院日期
|
||||
T3.end_time AS dischargeDate, -- 出院日期
|
||||
T4.location_id AS bedLocationId, -- 床位号
|
||||
T5.status_enum AS surgeryStatusEnum, -- 手术状态
|
||||
T6.start_time AS surgeryStartTime, -- 手术开始时间
|
||||
T6.end_time AS surgeryEndTime -- 手术结束时间
|
||||
FROM doc_vital_signs T1
|
||||
LEFT JOIN adm_patient T2
|
||||
ON T1.patient_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter T3
|
||||
ON T1.encounter_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_location T4
|
||||
ON T1.encounter_id = T4.encounter_id -- 就诊ID
|
||||
AND T4.form_enum = 8
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN cli_procedure T5
|
||||
ON T1.patient_id = T5.patient_id -- 患者ID
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN cli_procedure_performer T6
|
||||
ON T5.id = T6.procedure_id -- 手术ID
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN wor_service_request T7
|
||||
ON T1.encounter_id = T7.encounter_id
|
||||
AND T5.base_service_req_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN wor_service_request_detail T8
|
||||
ON T7.id = T8.service_req_id
|
||||
AND T8.type_code = '3'
|
||||
AND T8.delete_flag = '0'
|
||||
<where>
|
||||
-- 患者ID
|
||||
T1.patient_id = #{patientId}
|
||||
AND T1.delete_flag = '0'
|
||||
|
||||
</where>
|
||||
ORDER BY recording_date, time_point ASC
|
||||
</select>
|
||||
|
||||
<!-- 三测单患者信息查询-->
|
||||
<select id="searchVitalSigns" parameterType="java.util.Map"
|
||||
resultType="com.openhis.document.domain.VitalSigns">
|
||||
SELECT T1.id,
|
||||
T1.patient_id,
|
||||
T1.encounter_id,
|
||||
T1.recording_date,
|
||||
T1.time_point,
|
||||
T1.vital_signs_code,
|
||||
T1.vital_signs_values,
|
||||
T1.units,
|
||||
T1.baby_no,
|
||||
T1.location_id,
|
||||
T1.recorder,
|
||||
T1.remake
|
||||
FROM doc_vital_signs T1
|
||||
<where>
|
||||
-- 记录日期
|
||||
T1.recording_date >= #{startTime}::date
|
||||
AND T1.recording_date <= #{endTime}::date
|
||||
AND T1.delete_flag = '0'
|
||||
|
||||
</where>
|
||||
ORDER BY T1.recording_date, T1.time_point, T1.vital_signs_code ASC
|
||||
</select>
|
||||
|
||||
<!-- 三测单患者信息删除-->
|
||||
<delete id="deleteVitalSigns">
|
||||
DELETE FROM doc_vital_signs
|
||||
<where>
|
||||
-- 患者ID
|
||||
patient_id = #{patientId}
|
||||
-- 就诊ID
|
||||
AND encounter_id = #{encounterId}
|
||||
-- 记录日期
|
||||
AND recording_date = #{recordingDate}
|
||||
-- 记录时间
|
||||
AND time_point = #{timePoint}
|
||||
-- 删除状态
|
||||
AND delete_flag = '0'
|
||||
</where>
|
||||
</delete>
|
||||
</mapper>
|
||||
@@ -0,0 +1,304 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.materialmanage.mapper.MaterialCommonMapper">
|
||||
<select id="getDeviceInfo"
|
||||
resultType="com.openhis.web.materialmanage.dto.MaterialDeviceInfoDto">
|
||||
SELECT T6.id,--物品id
|
||||
T6.bus_no,-- 药品编号
|
||||
T6.name,-- 物品名称
|
||||
T6.py_str,-- 拼音码
|
||||
T6.total_volume,--规格
|
||||
T6.unit_code,-- 包装单位
|
||||
T6.min_unit_code,--最小单位
|
||||
T6.part_percent,--拆零比
|
||||
T6.price,--进货单价
|
||||
T6.retailPrice,--零售价
|
||||
T6.manufacturer_text,-- 厂家/产地
|
||||
T6.approval_number,--批准文号
|
||||
T6.item_min_quantity, --库存最小警戒线
|
||||
T6.specification_inventory,--规格库存
|
||||
T6.batch_inventory,--批次库存
|
||||
T6.lot_number,
|
||||
T6.production_date,--生产日期
|
||||
T6.expiration_date,--失效日期
|
||||
<if test="locationId != null">
|
||||
T6.location_id,
|
||||
</if>
|
||||
T6.supplier_id,
|
||||
T6.tenant_id
|
||||
FROM (SELECT T1.id,--物品id
|
||||
T1.bus_no,-- 药品编号
|
||||
T1.name,-- 物品名称
|
||||
T1.py_str,-- 拼音码
|
||||
T1.size AS total_volume,--规格
|
||||
T1.unit_code,-- 包装单位
|
||||
T1.min_unit_code,--最小单位
|
||||
T1.part_percent,--拆零比
|
||||
CASE
|
||||
WHEN T9.lot_number IS NULL THEN
|
||||
CASE T4.condition_value
|
||||
WHEN T1.min_unit_code THEN T4.amount * T1.part_percent
|
||||
ELSE T4.amount END
|
||||
ELSE CASE T4.condition_value
|
||||
WHEN T1.min_unit_code THEN T10.amount * T1.part_percent
|
||||
ELSE T10.amount END
|
||||
END AS price,--进货单价(大单位)
|
||||
CASE
|
||||
WHEN T9.lot_number IS NULL THEN
|
||||
CASE T5.condition_value
|
||||
WHEN T1.min_unit_code THEN T5.amount * T1.part_percent
|
||||
ELSE T5.amount END
|
||||
ELSE CASE T5.condition_value
|
||||
WHEN T1.min_unit_code THEN T11.amount * T1.part_percent
|
||||
ELSE T11.amount END
|
||||
END AS retailPrice,--零售价(大单位)
|
||||
T1.manufacturer_text,-- 厂家/产地
|
||||
T1.approval_number,--批准文号
|
||||
T1.item_min_quantity * T1.part_percent AS item_min_quantity, --库存最小警戒线(小单位)
|
||||
COALESCE(CAST(T8.specification_inventory AS DECIMAL(18, 6)), 0.00) AS specification_inventory,--规格库存(小单位)
|
||||
COALESCE(CAST(T9.batch_inventory AS DECIMAL(18, 6)), 0.00) AS batch_inventory,--批次库存(小单位)
|
||||
T9.lot_number,
|
||||
T7.production_date,--生产日期
|
||||
T7.expiration_date,--失效日期
|
||||
<if test="locationId != null">
|
||||
T7.location_id,
|
||||
</if>
|
||||
T7.supplier_id,
|
||||
T1.tenant_id
|
||||
FROM adm_device_definition AS T1
|
||||
LEFT JOIN adm_device AS T2
|
||||
ON T1.id = T2.device_def_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition T3
|
||||
ON T3.instance_id = T1.id
|
||||
AND T3.instance_table = 'adm_device_definition'
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail T4
|
||||
ON T4.definition_id = T3.id
|
||||
AND T4.condition_code = '2'--2:采购价
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail T5
|
||||
ON T5.definition_id = T3.id
|
||||
AND T5.condition_code = '3'--2:单位
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item T7
|
||||
ON T7.item_table = 'adm_device_definition'
|
||||
AND T7.item_id = T1.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN (SELECT i1.item_table,
|
||||
i1.item_id,
|
||||
<if test="locationId != null">
|
||||
i1.location_id,
|
||||
</if>
|
||||
COALESCE(CAST(SUM(i1.quantity) AS DECIMAL(18, 6)), 0.00) AS specification_inventory
|
||||
FROM wor_inventory_item i1
|
||||
LEFT JOIN adm_device_definition i2 ON i1.item_id = i2.ID
|
||||
AND i2.delete_flag = '0'
|
||||
WHERE i1.item_table = 'adm_device_definition'
|
||||
AND i1.delete_flag = '0'
|
||||
GROUP BY i1.item_table,
|
||||
i1.item_id
|
||||
<if test="locationId != null">
|
||||
,i1.location_id
|
||||
</if>) T8
|
||||
ON T8.item_table = 'adm_device_definition'
|
||||
AND T8.item_id = T1.ID
|
||||
<if test="locationId != null">
|
||||
AND T8.location_id = T7.location_id
|
||||
</if>
|
||||
LEFT JOIN (SELECT i3.item_table,
|
||||
i3.item_id,
|
||||
i3.lot_number,
|
||||
<if test="locationId != null">
|
||||
i3.location_id,
|
||||
</if>
|
||||
COALESCE(CAST(SUM(i3.quantity) AS DECIMAL(18, 6)), 0.00) AS batch_inventory
|
||||
FROM wor_inventory_item i3
|
||||
LEFT JOIN adm_device_definition i4 ON i3.item_id = i4.ID
|
||||
AND i4.delete_flag = '0'
|
||||
WHERE i3.item_table = 'adm_device_definition'
|
||||
AND i3.delete_flag = '0'
|
||||
GROUP BY i3.item_table,
|
||||
i3.item_id,
|
||||
i3.lot_number
|
||||
<if test="locationId != null">
|
||||
,i3.location_id
|
||||
</if>) T9
|
||||
ON T9.item_table = 'adm_device_definition'
|
||||
AND T9.item_id = T1.ID
|
||||
AND T9.lot_number = T7.lot_number
|
||||
<if test="locationId != null">
|
||||
AND T9.location_id = T7.location_id
|
||||
</if>
|
||||
LEFT JOIN adm_charge_item_def_detail T10
|
||||
ON T10.definition_id = T3.id
|
||||
AND T10.condition_code = '1'--1:批号进价
|
||||
AND T10.condition_value = T9.lot_number
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail T11
|
||||
ON T11.definition_id = T3.id
|
||||
AND T11.condition_code = '5'--1:批号售价
|
||||
AND T11.condition_value = T9.lot_number
|
||||
AND T11.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="locationId != null">
|
||||
AND T7.location_id = #{locationId}
|
||||
</if>
|
||||
GROUP BY T1.id,
|
||||
T1.size,
|
||||
T4.condition_value,
|
||||
T5.condition_value,
|
||||
T4.amount,
|
||||
T5.amount,
|
||||
T10.amount,
|
||||
T11.amount,
|
||||
T8.specification_inventory,
|
||||
T9.batch_inventory,
|
||||
T9.lot_number,
|
||||
<if test="locationId != null">
|
||||
T7.location_id,
|
||||
</if>
|
||||
T7.supplier_id,
|
||||
T7.production_date,
|
||||
T7.expiration_date
|
||||
<if test="supplierId != null">
|
||||
HAVING
|
||||
T8.specification_inventory <![CDATA[ <= ]]> (T1.item_min_quantity * T1.part_percent)
|
||||
</if>
|
||||
ORDER BY T1.bus_no) AS T6
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="getPage"
|
||||
resultType="com.openhis.web.materialmanage.dto.MaterialDto">
|
||||
SELECT T4.tenant_id,
|
||||
T4.supply_bus_no, --单据号
|
||||
T4.type_enum, --类型
|
||||
T4.status_enum, --状态
|
||||
T4.supplier_id, --供应商
|
||||
T4.location_type_enum, --仓库类型
|
||||
T4.location_id, --仓库
|
||||
T4.applicant_id, --开单人
|
||||
T4.applicant_name, --开单人
|
||||
T4.approver_id, --审批人
|
||||
T4.apply_time, -- 制单时间
|
||||
T4.approval_time --审批时间
|
||||
FROM (SELECT T1.tenant_id,
|
||||
T1.bus_no AS supply_bus_no,
|
||||
T1.type_enum,
|
||||
T1.status_enum,
|
||||
T1.supplier_id,
|
||||
<if test="locationFlg != null">
|
||||
T1.source_type_enum AS location_type_enum,
|
||||
T1.source_location_id AS location_id,
|
||||
</if>
|
||||
<if test="locationFlg == null">
|
||||
T1.purpose_type_enum AS location_type_enum,
|
||||
T1.purpose_location_id AS location_id,
|
||||
</if>
|
||||
T1.applicant_id,
|
||||
T2.name AS applicant_name,
|
||||
T1.approver_id,
|
||||
T1.apply_time,
|
||||
T1.approval_time
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN adm_practitioner AS T2
|
||||
ON T2.id = T1.applicant_id
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="originalBusNoFlg != null">
|
||||
and original_bus_no = ''
|
||||
</if>
|
||||
GROUP BY T1.tenant_id,
|
||||
T1.bus_no,
|
||||
T1.type_enum,
|
||||
T1.status_enum,
|
||||
T1.supplier_id,
|
||||
<if test="locationFlg != null">
|
||||
T1.source_type_enum,
|
||||
T1.source_location_id,
|
||||
</if>
|
||||
<if test="locationFlg == null">
|
||||
T1.purpose_type_enum,
|
||||
T1.purpose_location_id,
|
||||
</if>
|
||||
T1.applicant_id,
|
||||
T2.name,
|
||||
T1.approver_id,
|
||||
T1.apply_time,
|
||||
T1.approval_time
|
||||
) AS T4
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="getDetailPage"
|
||||
resultType="com.openhis.web.materialmanage.dto.MaterialDetailDto">
|
||||
SELECT T1.id, --ID
|
||||
T1.bus_no, --单据号
|
||||
T2.bus_no AS item_bus_no, --药品编码
|
||||
T1.item_id, --药品id
|
||||
T2.name AS item_name, --名称
|
||||
T2.size AS total_volume, --规格
|
||||
T1.unit_code, --选择单位
|
||||
T2.unit_code AS max_unit_code, --常规单位
|
||||
T2.min_unit_code AS min_unit_code, --最小单位
|
||||
T2.part_percent, --拆零比
|
||||
T1.item_quantity, --数量
|
||||
T1.total_quantity, --合计数量
|
||||
T1.price, --采购单价
|
||||
T1.total_price, --采购总价
|
||||
T1.retail_price, --零售价
|
||||
T1.total_retail_price, --零价金额
|
||||
T2.manufacturer_text, --生产厂商文本
|
||||
T2.approval_number, --批准文号
|
||||
T1.remake, --备注
|
||||
T1.reason, --摘要(理由)
|
||||
T1.reason_code, --理由类型
|
||||
T1.batch_inventory, --批次库存
|
||||
T1.specification_inventory, --规格库存
|
||||
T1.applicant_id,--申请人
|
||||
T1.apply_time,--申请时间
|
||||
T1.approver_id,--审批人
|
||||
T1.approval_time,--审批时间
|
||||
T1.supplier_id,--供应商
|
||||
T4.phone,--供应商联系人
|
||||
T1.status_enum,
|
||||
T1.type_enum,
|
||||
T1.category_enum,--单据类型
|
||||
T1.source_type_enum, --源仓库类型
|
||||
T1.source_location_id, --源仓库
|
||||
T1.purpose_type_enum, --目的仓库类型
|
||||
T1.purpose_location_id, --目的仓库
|
||||
T1.practitioner_id,--仓库员
|
||||
T1.invoice_no,--发票号
|
||||
T1.lot_number,--产品批号
|
||||
T1.start_time,--开始时间
|
||||
T1.end_time,--结束时间
|
||||
T1.packaging_condition_enum,--包装情况
|
||||
T1.acceptance_result_enum,--验收结果
|
||||
T1.trace_no,--追溯码
|
||||
T1.trace_no_unit_code,--追溯码包装
|
||||
T1.occurrence_time,--禁用日期
|
||||
T1.tenant_id
|
||||
FROM wor_supply_request AS T1
|
||||
LEFT JOIN adm_device_definition AS T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_device AS T3
|
||||
ON T2.id = T3.device_def_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier AS T4
|
||||
ON T4.id = T1.supplier_id
|
||||
AND T4.delete_flag = '0'
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.id,
|
||||
T2.bus_no,
|
||||
T2.name,
|
||||
T2.unit_code,
|
||||
T2.min_unit_code,
|
||||
T2.size,
|
||||
T2.part_percent,
|
||||
T2.manufacturer_text,
|
||||
T2.approval_number,
|
||||
T4.phone
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.materialmanage.mapper.MaterialProfitLossOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.materialmanage.mapper.MaterialPurchaseOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.materialmanage.mapper.MaterialReturnOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.materialmanage.mapper.MaterialReturnToWarehouseOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.materialmanage.mapper.MaterialStockInOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.materialmanage.mapper.MaterialStockOutOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.materialmanage.mapper.MaterialStocktakingOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.materialmanage.mapper.MaterialTransferInOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.materialmanage.mapper.MaterialTransferOutOrderMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,316 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.outpatientmanage.mapper.OutpatientInfusionAppMapper">
|
||||
|
||||
<!-- 门诊皮试记录相关查询-->
|
||||
<select id="getSkinTestRecords"
|
||||
parameterType="com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordSearchParam"
|
||||
resultType="com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordDto">
|
||||
SELECT
|
||||
T1.tenant_id,
|
||||
T1.id,
|
||||
T1.prescription_no,
|
||||
T1.encounter_bus_no,
|
||||
T1.patient_name,
|
||||
T1.patient_bus_no,
|
||||
T1.patient_id,
|
||||
T1.phone,
|
||||
T1.medication_information,
|
||||
T1.medication_detail,
|
||||
T1.medication_lot_number,
|
||||
T1.medication_status_enum,
|
||||
T1.performer_id,
|
||||
T1.performer_check_id,
|
||||
T1.occurrence_start_time,
|
||||
T1.occurrence_end_time,
|
||||
T1.clinical_status_enum,
|
||||
T1.verification_status_enum,
|
||||
T1.doctor_id,
|
||||
T1.recorded_date,
|
||||
T1.note
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
sr.tenant_id,
|
||||
sr.id, --服务申请管理ID
|
||||
mr.prescription_no, --处方号
|
||||
e.bus_no as encounter_bus_no, --就诊号
|
||||
pt.name AS patient_name, --病人姓名
|
||||
pt.bus_no AS patient_bus_no, --病人ID(前台显示用)
|
||||
pt.phone,
|
||||
sr.patient_id, --病人ID
|
||||
ad.name AS medication_information, --药品信息
|
||||
md.bus_no || ' ' || md.name || ' 规格:' || COALESCE(m.total_volume, '') AS medication_detail,--药品
|
||||
m.lot_number AS medication_lot_number, --药品批次号
|
||||
mmd.status_enum AS medication_status_enum, --药品发放状态
|
||||
sr.performer_id, --执行护士
|
||||
sr.performer_check_id,--核对人
|
||||
to_char(sr.occurrence_start_time, 'YYYY-MM-DD HH24:MI:SS') AS occurrence_start_time, --预计执行时间
|
||||
to_char(sr.occurrence_end_time, 'YYYY-MM-DD HH24:MI:SS') AS occurrence_end_time, --预计结束时间
|
||||
ai.clinical_status_enum, --皮试结果
|
||||
ai.verification_status_enum, --皮试检查项目状态
|
||||
mr.practitioner_id as doctor_id, --开单医生
|
||||
ai.recorded_date,
|
||||
ai.note --备注
|
||||
FROM
|
||||
wor_service_request sr
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT ON (request_id)
|
||||
ai.id,
|
||||
ai.request_id,
|
||||
ai.clinical_status_enum,
|
||||
ai.verification_status_enum,
|
||||
ai.recorded_date,
|
||||
ai.note
|
||||
FROM
|
||||
cli_allergy_intolerance ai
|
||||
WHERE
|
||||
ai.delete_flag = '0'
|
||||
ORDER BY
|
||||
ai.request_id,
|
||||
ai.create_time DESC
|
||||
) ai ON ai.request_id = sr.id
|
||||
-- LEFT JOIN cli_allergy_intolerance ai ON ai.request_id = sr.id
|
||||
-- AND ai.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter e ON e.id = sr.encounter_id
|
||||
AND e.delete_flag = '0'
|
||||
LEFT JOIN adm_patient pt ON pt.id = sr.patient_id
|
||||
AND pt.delete_flag = '0'
|
||||
LEFT JOIN wor_activity_definition ad ON ad.id = sr.activity_id
|
||||
AND ad.delete_flag = '0'
|
||||
LEFT JOIN med_medication_request mr ON mr.encounter_id = sr.encounter_id
|
||||
AND mr.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition md ON md.id = mr.medication_id
|
||||
AND md.delete_flag = '0'
|
||||
LEFT JOIN med_medication m ON md.id = m.medication_def_id
|
||||
AND m.delete_flag = '0'
|
||||
LEFT JOIN med_medication_dispense mmd ON mr.id = mmd.med_req_id
|
||||
AND mmd.delete_flag = '0'
|
||||
<where>
|
||||
ad.name = '皮试检查'
|
||||
AND mr.skin_test_flag = 1
|
||||
AND mmd.status_enum IN (2,3,4,14)--药品发放状态:(DispenseStatus枚举类)
|
||||
AND md.skin_test_flag = 1
|
||||
AND sr.status_enum IN (2,3,10) --服务状态待执行(RequestStatus枚举类)
|
||||
</where>
|
||||
ORDER BY sr.prescription_no,e.bus_no,md.bus_no
|
||||
) AS T1
|
||||
${ew.customSqlSegment}
|
||||
|
||||
</select>
|
||||
<!-- 门诊输液记录患者列表信息查询-->
|
||||
<select id="getOutpatientInfusionPatient"
|
||||
resultType="com.openhis.web.outpatientmanage.dto.OutpatientInfusionPatientDto">
|
||||
SELECT T1.service_status,
|
||||
T1.encounter_id,
|
||||
T1.encounter_bus_no,
|
||||
T1.birth_date,
|
||||
T1.patient_bus_no,
|
||||
T1.patient_id,
|
||||
T1.patient_name,
|
||||
T1.patient_py_str,
|
||||
T1.patient_wb_str,
|
||||
T1.gender_enum,
|
||||
T1.create_time
|
||||
FROM (
|
||||
SELECT sr.status_enum AS service_status,
|
||||
sr.encounter_id,
|
||||
e.bus_no as encounter_bus_no,
|
||||
pt.birth_date,
|
||||
pt.bus_no AS patient_bus_no,
|
||||
sr.patient_id,
|
||||
pt."name" AS patient_name,
|
||||
pt.py_str AS patient_py_str,
|
||||
pt.wb_str AS patient_wb_str,
|
||||
sr.tenant_id,
|
||||
pt.gender_enum,
|
||||
e.reception_time AS create_time
|
||||
FROM adm_encounter e
|
||||
LEFT JOIN wor_service_request sr
|
||||
ON e.id = sr.encounter_id
|
||||
AND sr.refund_service_id IS NULL
|
||||
AND sr.delete_flag = '0'
|
||||
LEFT JOIN adm_patient pt
|
||||
ON pt.id = sr.patient_id
|
||||
AND pt.delete_flag = '0'
|
||||
LEFT JOIN wor_activity_definition ad
|
||||
ON ad.id = sr.activity_id
|
||||
AND ad.delete_flag = '0'
|
||||
WHERE e.delete_flag = '0'
|
||||
AND sr.status_enum IN (#{inProgress},#{completed},#{cancelled})
|
||||
GROUP BY sr.status_enum,
|
||||
sr.encounter_id,
|
||||
e.bus_no,
|
||||
pt.birth_date,
|
||||
pt.bus_no,
|
||||
sr.patient_id,
|
||||
pt."name",
|
||||
pt.py_str,
|
||||
pt.wb_str,
|
||||
sr.tenant_id,
|
||||
pt.gender_enum,
|
||||
e.reception_time
|
||||
ORDER BY create_time DESC
|
||||
) AS T1
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="selectInfusionPendingRecord"
|
||||
resultType="com.openhis.web.outpatientmanage.dto.OutpatientInfusionRecordDto">
|
||||
SELECT pr.encounter_id,
|
||||
pr.service_status,
|
||||
pr.authored_time ,
|
||||
pr.service_id ,
|
||||
pr.bus_no ,
|
||||
pr.print_count ,
|
||||
pr.group_id ,
|
||||
pr.execute_num,
|
||||
pr.speed ,
|
||||
pr.quantity ,
|
||||
pr.skin_test_flag ,
|
||||
pr.unit_code ,
|
||||
pr.dose ,
|
||||
pr.dose_unit_code ,
|
||||
pr.method_code ,
|
||||
pr.rate_code ,
|
||||
pr.performer_id ,
|
||||
pr.preparer_id ,
|
||||
pr.dispense_status,
|
||||
pr.medication_name,
|
||||
pr.service_name,
|
||||
pr.practitioner_name,
|
||||
pr.perform_count,
|
||||
pr.dept_name
|
||||
FROM (
|
||||
SELECT ae.id AS encounter_id,
|
||||
ae.tenant_id,
|
||||
wsr.status_enum AS service_status,
|
||||
wsr.authored_time ,
|
||||
wsr.id AS service_id,
|
||||
wsr.bus_no ,
|
||||
wsr.print_count,
|
||||
mmr.group_id ,
|
||||
mmr.execute_num,
|
||||
mmr.speed ,
|
||||
mmr.quantity ,
|
||||
mmr.skin_test_flag ,
|
||||
mmr.unit_code ,
|
||||
mmr.dose ,
|
||||
mmr.dose_unit_code ,
|
||||
mmr.method_code ,
|
||||
mmr.rate_code ,
|
||||
mmr.performer_id ,
|
||||
dis.status_enum AS dispense_status,
|
||||
mmd."name" AS medication_name,
|
||||
ad."name" AS service_name,
|
||||
ap."name" AS practitioner_name,
|
||||
o."name" AS dept_name,
|
||||
-- 新增子查询:查询配药人
|
||||
(SELECT DISTINCT mmdis.preparer_id
|
||||
FROM med_medication_dispense mmdis
|
||||
WHERE mmdis.med_req_id = mmr.id
|
||||
AND mmdis.delete_flag = '0'
|
||||
) AS preparer_id ,
|
||||
-- 新增子查询:统计已执行次数
|
||||
(SELECT COUNT(sub_wsr.id)
|
||||
FROM wor_service_request sub_wsr
|
||||
WHERE sub_wsr.based_on_id = wsr.id
|
||||
AND sub_wsr.status_enum = #{completed}
|
||||
AND sub_wsr.delete_flag = '0'
|
||||
) AS perform_count
|
||||
FROM adm_encounter ae
|
||||
LEFT JOIN wor_service_request wsr
|
||||
ON ae.id = wsr.encounter_id
|
||||
AND wsr.delete_flag = '0'
|
||||
AND wsr.refund_service_id IS NULL
|
||||
LEFT JOIN med_medication_request mmr
|
||||
ON mmr.group_id = wsr.group_id
|
||||
AND mmr.delete_flag = '0'
|
||||
LEFT JOIN med_medication_dispense dis
|
||||
ON dis.med_req_id = mmr.id
|
||||
AND dis.delete_flag = '0'
|
||||
LEFT JOIN wor_activity_definition ad
|
||||
ON ad.id = wsr.activity_id
|
||||
AND ad.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition mmd
|
||||
ON mmr.medication_id = mmd.id
|
||||
AND mmd.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner ap
|
||||
ON mmr.practitioner_id = ap.id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN adm_organization o
|
||||
ON o.id = wsr.org_id
|
||||
AND o.delete_flag = '0'
|
||||
WHERE ae.id = #{encounterId}
|
||||
AND ad.category_code = '21'
|
||||
AND wsr.based_on_table = #{medMedicationRequest}
|
||||
AND ae.delete_flag = '0') AS pr
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY pr.authored_time DESC
|
||||
</select>
|
||||
<select id="selectInfusionPerformRecord"
|
||||
resultType="com.openhis.web.outpatientmanage.dto.OutpatientInfusionRecordDto">
|
||||
SELECT pr.service_status,
|
||||
pr.bus_no ,
|
||||
pr.based_on_id ,
|
||||
pr.group_id ,
|
||||
pr.occurrence_end_time ,
|
||||
pr.service_id,
|
||||
pr.tenant_id,
|
||||
pr.service_name,
|
||||
pr.performer_name,
|
||||
pr.org_name
|
||||
FROM (
|
||||
SELECT wsr.status_enum AS service_status,
|
||||
wsr.bus_no ,
|
||||
wsr.based_on_id ,
|
||||
wsr.group_id ,
|
||||
wsr.occurrence_end_time ,
|
||||
wsr.id AS service_id,
|
||||
wsr.tenant_id,
|
||||
ad."name" AS service_name,
|
||||
ap."name" AS performer_name,
|
||||
al."name" AS org_name
|
||||
FROM wor_service_request wsr
|
||||
LEFT JOIN wor_activity_definition ad
|
||||
ON ad.id = wsr.activity_id
|
||||
AND ad.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner ap
|
||||
ON wsr.performer_id = ap.id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN adm_organization al
|
||||
ON al.id = wsr.org_id
|
||||
WHERE wsr.based_on_id = #{serviceReqId}
|
||||
AND wsr.delete_flag = '0'
|
||||
) AS pr
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY pr.occurrence_end_time DESC
|
||||
</select>
|
||||
<select id="selectPerformInfo"
|
||||
resultType="com.openhis.web.outpatientmanage.dto.OutpatientInfusionRecordDto">
|
||||
SELECT wsr.id AS service_id,
|
||||
wsr.status_enum AS service_status,
|
||||
mmr.execute_num ,
|
||||
dis.status_enum AS dispense_status,
|
||||
-- 新增子查询:统计已执行次数
|
||||
(SELECT COUNT(sub_wsr.id)
|
||||
FROM wor_service_request sub_wsr
|
||||
WHERE sub_wsr.based_on_id = wsr.id
|
||||
AND sub_wsr.status_enum = #{completed}
|
||||
AND sub_wsr.delete_flag = '0'
|
||||
) AS perform_count
|
||||
FROM wor_service_request wsr
|
||||
LEFT JOIN med_medication_request mmr
|
||||
ON wsr.based_on_id = mmr.id
|
||||
AND mmr.delete_flag = '0'
|
||||
LEFT JOIN med_medication_dispense dis
|
||||
ON dis.med_req_id = mmr.id
|
||||
AND dis.delete_flag = '0'
|
||||
WHERE wsr.delete_flag = '0'
|
||||
AND wsr.id IN
|
||||
<foreach item="serviceReqId" collection="serviceReqIdList" open="(" separator="," close=")">
|
||||
#{serviceReqId}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,233 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.outpatientmanage.mapper.OutpatientTreatmentAppMapper">
|
||||
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.outpatientmanage.dto.OutpatientTreatmentEncounterDto">
|
||||
SELECT ii.encounter_id,
|
||||
ii.reception_time,
|
||||
ii.encounter_no,
|
||||
ii.gender_enum,
|
||||
ii.patient_name,
|
||||
ii.patient_py_str,
|
||||
ii.patient_wb_str,
|
||||
ii.birth_date,
|
||||
ii.status_enum
|
||||
FROM (
|
||||
SELECT T1.tenant_id,
|
||||
T1.id AS encounter_id,
|
||||
T1.reception_time,
|
||||
T1.bus_no AS encounter_no,
|
||||
T2.gender_enum,
|
||||
T2."name" AS patient_name,
|
||||
T2.py_str AS patient_py_str,
|
||||
T2.wb_str AS patient_wb_str,
|
||||
T2.birth_date,
|
||||
T3.status_enum
|
||||
FROM adm_encounter AS T1
|
||||
INNER JOIN adm_patient AS T2
|
||||
ON T1.patient_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
INNER JOIN wor_service_request AS T3
|
||||
ON T1.id = T3.encounter_id
|
||||
AND T3.refund_service_id IS NULL
|
||||
AND T3.delete_flag = '0'
|
||||
WHERE T1.class_enum = #{amb}
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY T1.tenant_id,
|
||||
T1.id,
|
||||
T1.reception_time,
|
||||
T1.bus_no,
|
||||
T2.gender_enum,
|
||||
T2.name,
|
||||
T2.py_str,
|
||||
T2.wb_str,
|
||||
T2.birth_date,
|
||||
T3.status_enum
|
||||
ORDER BY T1.bus_no DESC
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectTreatmentInfoPage"
|
||||
resultType="com.openhis.web.outpatientmanage.dto.OutpatientTreatmentInfoDto">
|
||||
SELECT ii.encounter_id ,
|
||||
ii.request_id ,
|
||||
ii.service_status,
|
||||
ii.dispense_id,
|
||||
ii.dispense_status,
|
||||
ii.execute_num,
|
||||
ii.quantity ,
|
||||
ii.unit_code ,
|
||||
ii.bus_no,
|
||||
ii.charge_status,
|
||||
ii.unit_price ,
|
||||
ii.total_price ,
|
||||
ii.request_table ,
|
||||
ii.service_category ,
|
||||
ii.device_category ,
|
||||
ii.med_category ,
|
||||
ii.item_name,
|
||||
ii.py_str,
|
||||
ii.wb_str,
|
||||
ii.size,
|
||||
ii.group_id ,
|
||||
ii.sort_number
|
||||
FROM (SELECT ae.id AS encounter_id ,
|
||||
ae.tenant_id,
|
||||
wsr.id AS request_id ,
|
||||
wsr.status_enum AS service_status,
|
||||
NULL AS dispense_id,
|
||||
NULL AS dispense_status,
|
||||
wsr.quantity AS execute_num,
|
||||
NULL AS quantity,
|
||||
wsr.unit_code ,
|
||||
wsr.bus_no,
|
||||
aci.status_enum AS charge_status,
|
||||
aci.unit_price ,
|
||||
aci.total_price ,
|
||||
#{worServiceRequest} AS request_table ,
|
||||
wad.category_code AS service_category,
|
||||
NULL AS device_category,
|
||||
NULL AS med_category,
|
||||
wad."name" AS item_name,
|
||||
wad.py_str,
|
||||
wad.wb_str,
|
||||
NULL AS "size",
|
||||
wsr.group_id ,
|
||||
NULL AS sort_number
|
||||
FROM adm_encounter ae
|
||||
INNER JOIN wor_service_request wsr
|
||||
ON wsr.encounter_id = ae.id
|
||||
AND wsr.delete_flag = '0'
|
||||
AND wsr.refund_service_id IS NULL
|
||||
LEFT JOIN adm_charge_item aci
|
||||
ON aci.service_id = wsr.id
|
||||
AND aci.delete_flag = '0'
|
||||
AND aci.refund_id IS NULL
|
||||
INNER JOIN wor_activity_definition wad
|
||||
ON wsr.activity_id = wad.id
|
||||
AND wad.delete_flag = '0'
|
||||
WHERE wsr.status_enum = #{reqCompleted}
|
||||
AND ae.delete_flag = '0'
|
||||
UNION ALL
|
||||
SELECT ae.id AS encounter_id ,
|
||||
ae.tenant_id,
|
||||
mmr.id AS request_id ,
|
||||
NULL AS service_status,
|
||||
dis.id AS dispense_id ,
|
||||
dis.status_enum AS dispense_status,
|
||||
mmr.execute_num ,
|
||||
mmr.quantity ,
|
||||
mmr.unit_code ,
|
||||
mmr.bus_no,
|
||||
aci.status_enum AS charge_status,
|
||||
aci.unit_price ,
|
||||
aci.total_price ,
|
||||
#{medMedicationRequest} AS request_table ,
|
||||
NULL AS service_category,
|
||||
NULL AS device_category,
|
||||
mmd.category_code AS med_category,
|
||||
mmd."name" AS item_name,
|
||||
mmd.py_str ,
|
||||
mmd.wb_str,
|
||||
mm.total_volume AS "size",
|
||||
mmr.group_id ,
|
||||
mmr.sort_number
|
||||
FROM adm_encounter ae
|
||||
LEFT JOIN med_medication_request mmr
|
||||
ON ae.id = mmr.encounter_id
|
||||
AND mmr.refund_medicine_id IS NULL
|
||||
AND mmr.delete_flag = '0'
|
||||
LEFT JOIN med_medication_dispense dis
|
||||
ON dis.med_req_id = mmr.id
|
||||
AND dis.delete_flag = '0'
|
||||
INNER JOIN med_medication_definition mmd
|
||||
ON mmr.medication_id = mmd.id
|
||||
AND (mmd.skin_test_flag = 1 OR mmd.inject_flag = 1)
|
||||
AND mmd.delete_flag = '0'
|
||||
INNER JOIN med_medication mm
|
||||
ON mm.medication_def_id = mmd.id
|
||||
AND mm.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item aci
|
||||
ON aci.service_id = mmr.id
|
||||
AND aci.delete_flag = '0'
|
||||
AND aci.refund_id IS NULL
|
||||
WHERE dis.status_enum != #{draft}
|
||||
AND ae.delete_flag = '0'
|
||||
UNION ALL
|
||||
SELECT ae.id AS encounter_id ,
|
||||
ae.tenant_id,
|
||||
wdr.id AS request_id ,
|
||||
NULL AS service_status,
|
||||
wdd.id AS dispense_id ,
|
||||
wdd.status_enum AS dispense_status,
|
||||
NULL AS execute_num,
|
||||
wdr.quantity ,
|
||||
wdr.unit_code ,
|
||||
wdr.bus_no,
|
||||
aci.status_enum AS charge_status,
|
||||
aci.unit_price ,
|
||||
aci.total_price ,
|
||||
#{worDeviceRequest} AS request_table ,
|
||||
NULL AS service_category,
|
||||
dev.category_code AS device_category,
|
||||
NULL AS med_category,
|
||||
dev."name" AS item_name,
|
||||
dev.py_str ,
|
||||
dev.wb_str,
|
||||
dev.size,
|
||||
NULL AS group_id ,
|
||||
NULL AS sort_number
|
||||
FROM adm_encounter ae
|
||||
INNER JOIN wor_device_request wdr
|
||||
ON wdr.encounter_id = ae.id
|
||||
AND wdr.delete_flag = '0'
|
||||
AND wdr.refund_device_id IS NULL
|
||||
LEFT JOIN wor_device_dispense wdd
|
||||
ON wdd.device_req_id = wdr.id
|
||||
AND wdd.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item aci
|
||||
ON aci.service_id = wdr.id
|
||||
AND aci.delete_flag = '0'
|
||||
AND aci.refund_id IS NULL
|
||||
INNER JOIN adm_device_definition dev
|
||||
ON dev.id = wdr.device_def_id
|
||||
AND dev.delete_flag = '0'
|
||||
WHERE wdd.status_enum != #{draft}
|
||||
AND ae.delete_flag = '0'
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY ii.sort_number
|
||||
</select>
|
||||
<select id="selectPerformRecordList" resultType="com.openhis.web.common.dto.PerformRecordDto">
|
||||
SELECT cp.id AS procedure_id,
|
||||
cp.status_enum,
|
||||
cp.occurrence_time,
|
||||
cp.create_time,
|
||||
al."name" AS location_name,
|
||||
ao."name" AS org_name,
|
||||
cp.request_id,
|
||||
cp.refund_id,
|
||||
cpp.start_time,
|
||||
cpp.end_time,
|
||||
ap."name" AS practitioner_name
|
||||
FROM cli_procedure cp
|
||||
LEFT JOIN cli_procedure_performer cpp
|
||||
ON cpp.procedure_id = cp.id
|
||||
AND cpp.delete_flag = '0'
|
||||
LEFT JOIN adm_organization ao
|
||||
ON ao.id = cp.org_id
|
||||
AND ao.delete_flag = '0'
|
||||
LEFT JOIN adm_location al
|
||||
ON al.id = cp.location_id
|
||||
AND al.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner ap
|
||||
ON ap.id = cpp.practitioner_id
|
||||
AND ap.delete_flag = '0'
|
||||
WHERE cp.delete_flag = '0'
|
||||
<if test="reqIds!=null and !reqIds.isEmpty()">
|
||||
AND cp.request_id IN
|
||||
<foreach collection="reqIds" item="reqId" open="(" separator="," close=")">
|
||||
#{reqId}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,154 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.patientmanage.mapper.PatientManageMapper">
|
||||
<!-- 病人信息相关查询-->
|
||||
<select id="getPatientPage" resultType="com.openhis.web.patientmanage.dto.PatientInformationDto">
|
||||
SELECT
|
||||
T1.tenant_id,
|
||||
T1.id,
|
||||
T1.active_flag,
|
||||
T1.temp_flag,
|
||||
T1.name,
|
||||
T1.name_json,
|
||||
T1.bus_no,
|
||||
T1.gender_enum,
|
||||
T1.birth_date,
|
||||
T1.deceased_date,
|
||||
T1.marital_status_enum,
|
||||
T1.prfs_enum,
|
||||
T1.phone,
|
||||
T1.address,
|
||||
T1.address_province,
|
||||
T1.address_city,
|
||||
T1.address_district,
|
||||
T1.address_street,
|
||||
T1.address_json,
|
||||
T1.nationality_code,
|
||||
T1.id_card,
|
||||
T1.py_str,
|
||||
T1.wb_str,
|
||||
T1.blood_abo,
|
||||
T1.blood_rh,
|
||||
T1.work_company,
|
||||
T1.native_place,
|
||||
T1.country_code,
|
||||
T1.link_name,
|
||||
T1.link_relation_code,
|
||||
T1.link_telcom,
|
||||
T1.link_jsons,
|
||||
T1.organization_id,
|
||||
T1.create_time,
|
||||
T1.type_code,
|
||||
T1.organization_name
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
pt.tenant_id,
|
||||
pt.id,
|
||||
pt.active_flag,
|
||||
pt.temp_flag,
|
||||
pt.name,
|
||||
pt.name_json,
|
||||
pt.bus_no,
|
||||
pt.gender_enum,
|
||||
pt.birth_date,
|
||||
pt.deceased_date,
|
||||
pt.marital_status_enum,
|
||||
pt.prfs_enum,
|
||||
pt.phone,
|
||||
pt.address,
|
||||
pt.address_province,
|
||||
pt.address_city,
|
||||
pt.address_district,
|
||||
pt.address_street,
|
||||
pt.address_json,
|
||||
pt.nationality_code,
|
||||
pt.id_card,
|
||||
pt.py_str,
|
||||
pt.wb_str,
|
||||
pt.blood_abo,
|
||||
pt.blood_rh,
|
||||
pt.work_company,
|
||||
pt.native_place,
|
||||
pt.country_code,
|
||||
pt.link_name,
|
||||
pt.link_relation_code,
|
||||
pt.link_telcom,
|
||||
pt.link_jsons,
|
||||
pt.organization_id,
|
||||
pt.create_time,
|
||||
api.type_code,
|
||||
ogt.name as organization_name
|
||||
FROM adm_patient pt
|
||||
LEFT JOIN adm_organization ogt ON pt.organization_id = ogt.id
|
||||
LEFT JOIN adm_patient_identifier api ON pt.id = api.patient_id
|
||||
ORDER BY pt.bus_no DESC
|
||||
) AS T1
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<!-- 查询医生名字列表-->
|
||||
<select id="getDoctorNames" resultType ="java.lang.String">
|
||||
SELECT MIN(p.name) AS practitioner_name
|
||||
FROM adm_encounter_participant ep
|
||||
LEFT JOIN adm_practitioner p ON ep.practitioner_id = p.id
|
||||
WHERE ep.type_code = '1'
|
||||
GROUP BY ep.practitioner_id
|
||||
HAVING MIN(p.name) IS NOT NULL;
|
||||
</select>
|
||||
|
||||
<!-- 门诊记录相关查询-->
|
||||
<select id="getOutpatientRecord" parameterType="com.openhis.web.patientmanage.dto.OutpatientRecordSearchParam"
|
||||
resultType="com.openhis.web.patientmanage.dto.OutpatientRecordDto">
|
||||
|
||||
SELECT
|
||||
T1.tenant_id,
|
||||
T1.name,
|
||||
T1.id_card,
|
||||
T1.description,
|
||||
T1.patient_bus_no,
|
||||
T1.encounter_bus_no,
|
||||
T1.gender_enum,
|
||||
T1.encounter_time,
|
||||
T1.subject_status_enum,
|
||||
T1.organization_name,
|
||||
T1.doctor_name,
|
||||
T1.phone,
|
||||
T1.start_time
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
e.tenant_id,
|
||||
pt.name,
|
||||
pt.id_card,
|
||||
ccd.name AS description,
|
||||
pt.bus_no as patient_bus_no,
|
||||
e.bus_no as encounter_bus_no,
|
||||
pt.gender_enum,
|
||||
e.reception_time as encounter_time,
|
||||
e.subject_status_enum,
|
||||
ogt.name as organization_name,
|
||||
pt.phone,
|
||||
e.start_time,
|
||||
(SELECT pra.name
|
||||
FROM adm_encounter_participant ep
|
||||
LEFT JOIN adm_practitioner pra ON ep.practitioner_id = pra.id
|
||||
WHERE ep.encounter_id = e.id
|
||||
AND ep.type_code = #{typeCode} --就诊参与者身份类型是1:接诊医生
|
||||
ORDER BY ep.create_time DESC
|
||||
LIMIT 1
|
||||
) AS doctor_name--门诊医生
|
||||
FROM
|
||||
adm_encounter e
|
||||
LEFT JOIN
|
||||
adm_organization ogt ON e.organization_id = ogt.id
|
||||
LEFT JOIN
|
||||
adm_patient pt ON e.patient_id = pt.id
|
||||
LEFT JOIN adm_encounter_diagnosis ed ON e.id = ed.encounter_id
|
||||
LEFT JOIN cli_condition c ON ed.condition_id = c.id
|
||||
LEFT JOIN cli_condition_definition ccd ON c.definition_id = ccd.id
|
||||
) AS T1
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.paymentmanage.mapper.ChargeBillMapper">
|
||||
|
||||
<select id="selectChargeItemExtendInfoList" resultType="com.openhis.web.paymentmanage.dto.ChargeItemExtendInfoDto">
|
||||
SELECT
|
||||
T1.total_price,
|
||||
T1.org_id,
|
||||
T1.yb_type
|
||||
FROM(
|
||||
SELECT
|
||||
a.total_price,
|
||||
COALESCE(b1.org_id, b2.org_id, b3.org_id, b4.offered_org_id, b5.org_id) AS org_id,
|
||||
--COALESCE(b1.yb_class_enum, b2.yb_class_enum, b3.yb_class_enum) AS yb_class_enum,
|
||||
b5.yb_type
|
||||
|
||||
-- 添加更多需要的字段
|
||||
FROM
|
||||
adm_charge_item a
|
||||
LEFT JOIN
|
||||
med_medication_request b1 ON a.service_id = b1.id AND a.service_table = 'med_medication_request'
|
||||
LEFT JOIN
|
||||
wor_device_request b2 ON a.service_id = b2.id AND a.service_table = 'wor_device_request'
|
||||
LEFT JOIN
|
||||
wor_service_request b3 ON a.service_id = b3.id AND a.service_table = 'wor_service_request'
|
||||
LEFT JOIN
|
||||
adm_healthcare_service b4 ON a.service_id = b4.id AND a.service_table = 'adm_healthcare_service'
|
||||
LEFT JOIN
|
||||
adm_charge_item_definition b5 ON a.definition_id = b5.id
|
||||
WHERE
|
||||
a.delete_flag = '0'
|
||||
AND
|
||||
a.id IN
|
||||
<foreach collection="list" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
) AS T1
|
||||
<if test="orgIdList!=null and !orgIdList.isEmpty()">
|
||||
WHERE T1.org_id IN
|
||||
<foreach collection="orgIdList" item="orgId" open="(" separator="," close=")">
|
||||
#{orgId}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user