386 Commits

Author SHA1 Message Date
8e11dde7c0 feat(deptManage): 添加医生排班管理API接口
- 实现添加医生排班功能接口
- 实现删除医生排班功能接口
- 实现批量保存医生排班功能接口
- 集成统一请求处理工具
- 添加详细的函数注释说明
- 完善参数类型和返回值定义
2025-12-30 09:31:43 +08:00
e8f24ee290 `` refactor(config): 更新开发环境数据库和Redis配置为内网地址`` 2025-12-30 09:27:12 +08:00
a1e07a204b ``` refactor(db): 移除SQL语句中的public schema前缀 2025-12-30 00:02:59 +08:00
a080b4294c ```
feat(invoice): 添加发票分页查询权限过滤功能

- 移除未使用的Supplier导入
- 新增selectInvoicePage方法支持用户角色权限过滤
- 非管理员用户只能查看自己创建的发票
- 优化发票新增逻辑,使用count查询替代list查询提升性能
- 添加事务注解确保数据一致性
- 异常处理改进,抛出ServiceException替代返回null
```
2025-12-27 22:53:39 +08:00
0827ce2908 ```
refactor(invoice): 移除发票服务中的权限过滤功能

移除发票服务接口中的分页查询权限过滤方法,简化发票新增逻辑,
移除异常抛出改为返回null,更新分页查询方法实现

- 移除 IInvoiceService 中的 selectInvoicePage 方法
- 移除 InvoiceServiceImpl 中的权限过滤逻辑
- 移除发票新增时的异常抛出,改为返回null
- 移除多余的import和注释
- 简化发票编码存在性检查逻辑

refactor(outpatient): 修复门诊记录服务中的方法注解

为门诊记录服务中的 getDoctorNames 方法添加 @Override 注解,
移除多余的空行

- 在 OutpatientRecordServiceImpl 中添加 @Override 注解
- 移除 PatientManageMapper 导入前的多余空行
```
2025-12-27 22:53:32 +08:00
5f600209b8 ```
refactor(core): 优化DelFlag枚举值比较逻辑

- 修改DelFlag.getValue()调用为直接访问value字段
- 提升代码性能和可读性
```
2025-12-27 22:45:20 +08:00
79ea4ed4f7 提交merge1.3 2025-12-27 15:31:06 +08:00
cbd3e7f981 提交merge1.3 2025-12-27 15:30:48 +08:00
3c497417dc 提交merge1.3 2025-12-27 15:30:40 +08:00
088861f66e 提交merge1.3 2025-12-27 15:30:25 +08:00
8c607c8749 ```
feat(common): 添加core-common依赖

新增core-common依赖项,用于提供通用功能支持,
移除core-admin的版本号配置
```
2025-12-26 22:45:08 +08:00
3115e38cc4 Revert "```"
This reverts commit abc0674531.
2025-12-26 22:21:21 +08:00
ae6c486114 Revert "```"
This reverts commit 85fcb7c2e2.
2025-12-26 22:20:01 +08:00
a41ffa4cfc pgsql脚本 2025-12-25 14:28:44 +08:00
b1f74161f8 检验项目设置-套餐设置前后端及数据库基本完成 2025-12-25 14:25:35 +08:00
3bab56a19b Merge branch 'develop' of https://gitea.gentronhealth.com/Yajentine/his into develop 2025-12-25 14:13:37 +08:00
abc0674531 ```
docs(release-notes): 添加住院护士站划价功能说明和发版记录

- 新增住院护士站划价服务流程说明文档,详细描述了从参数预处理到结果响应的五大阶段流程
- 包含耗材类医嘱和诊疗活动类医嘱的差异化处理逻辑
- 添加完整的发版内容记录,涵盖新增菜单功能和各模块优化点
- 记录了住院相关功能的新增和门诊业务流程的修复
```
2025-12-25 14:13:14 +08:00
85fcb7c2e2 ```
docs(release-notes): 添加住院护士站划价功能说明和发版记录

- 新增住院护士站划价服务流程说明文档,详细描述了从参数预处理到结果响应的五大阶段流程
- 包含耗材类医嘱和诊疗活动类医嘱的差异化处理逻辑
- 添加完整的发版内容记录,涵盖新增
2025-12-25 14:12:53 +08:00
fc6a7437a3 门诊医生站->医嘱定价来源未配置bug,叫号语音设置后端框架基本接口开发。 2025-12-25 14:09:32 +08:00
999a0992e7 门诊医生预约科室管理功能的完善 2025-12-25 13:49:30 +08:00
55b3dfc077 套餐设置功能前后端内容基本完成(细节未处理) 2025-12-25 11:12:56 +08:00
ljj
32d1673667 84 系统管理-》易用性配置-》病历模板定义:新建模板点击【确认】报错 2025-12-24 16:55:56 +08:00
17c7cc70ed 药品出货单按钮被隐藏bug修复 2025-12-24 15:59:56 +08:00
44be570ffa ```
chore(deps): 更新项目依赖版本

- 将 area-data 依赖的版本从 5.0.6 的固定版本更新为 ^5.0.6
- 将 vue-plugin-hiprint 依赖版本从 ^0.0.60 降级至 ^0.0.19
- 升级 sass 依赖版本从 ^1.97.0 至 ^1.97.1
- 升级 vite 依赖版本从 ^5.0.4 至 ^7.3.0
- 移除重复的 area-data 依赖声明
```
2025-12-24 15:38:19 +08:00
c6f4996ba7 Merge remote-tracking branch 'origin/develop' into develop 2025-12-24 14:25:43 +08:00
6c20b15339 套餐设置页面完成 2025-12-24 14:25:06 +08:00
c297072b36 ```
feat(index): 优化index.html页面结构和加载体验

- 添加基础meta标签、SEO描述信息和安全相关meta标签
- 配置移动端和PWA支持,更新图标和manifest配置
- 优化CSS样式,包括box-sizing重置和加载动画样式
- 改进加载器动画效果,添加无障碍属性和noscript提示
- 修复viewport配置,移除过时的IE兼容性代码
- 统一CSS单位格式,优化margin和padding设置
```
2025-12-24 14:15:08 +08:00
4c6886be6a ```
build(pom): 更新lombok版本并配置编译插件版本

- 将lombok版本从1.18.26升级到1.18.42
- 添加maven-compiler-plugin.version属性配置为3.13.0
- 为lombok依赖添加provided作用域配置
```
2025-12-24 10:11:35 +08:00
8beb7f3d3d 医生常用语页面开发,接口实现. 2025-12-23 17:01:24 +08:00
91968530b4 调整套餐设置布局 2025-12-23 16:37:31 +08:00
0833f82fb4 耗材目录包装单位的拼音搜索 2025-12-23 15:05:26 +08:00
cce71f324b Merge remote-tracking branch 'origin/develop' into develop 2025-12-23 12:45:24 +08:00
ee6efafde4 第一次提交 2025-12-23 12:45:15 +08:00
2051807ecf 第一次提交 2025-12-23 12:44:27 +08:00
0a4de15599 医生常用语模板维护->后端接口优化,页面开发;检查方法,部位新增编辑按钮。 2025-12-23 10:56:38 +08:00
25b3c26ec2 医生常用语模板维护->后端接口开发、数据库建表。 2025-12-22 16:45:40 +08:00
91d673de77 检验项目设置-检验类型功能完成 2025-12-22 16:28:05 +08:00
0bfa7183f9 Merge branch 'develop' of https://gitea.gentronhealth.com/Yajentine/his into develop 2025-12-22 12:10:59 +08:00
79d451931d ```
feat(core-admin): 添加 Lombok 依赖并升级版本

在 core-admin 模块中显式添加了 Lombok 依赖,并将 Lombok 版本从 1.18.26 升级至 1.18.38。
同时,将 Lombok 依赖统一管理到父 pom 的 dependencyManagement 中,并配置 Maven 编译插件以支持注解处理器。
此外,引入 core-common 通用工具模块依赖,移除了冗余的 Maven 构建配置注释。
```
2025-12-22 12:10:55 +08:00
ae5f1c795b 检验项目设置-检验类型功能完成 2025-12-22 11:45:16 +08:00
c1074fc4fb 修改检验项目设置的样式风格 2025-12-22 10:33:14 +08:00
e832b6d38e Merge branch 'develop' of https://gitea.gentronhealth.com/Yajentine/his into develop 2025-12-19 14:33:17 +08:00
5043466e84 ```
feat(package): 添加 area-data、next、react 和 react-dom 依赖

新增 area-data 用于地区数据处理,添加 next、react 和 react-dom 以支持 React 相关功能。
同时升级 sass 版本并添加 sass-loader 以优化样式构建流程。
```
2025-12-19 14:33:15 +08:00
fcaeedb543 ```
fix(openhis-ui-vue3): 修复 package.json 文件格式问题

修正了 package.json 文件末尾缺少的换行符,确保文件格式符合标准要求
```
2025-12-19 14:33:04 +08:00
8cf434a46f 系统管理->诊疗目录->添加新项目报错BUG。 2025-12-19 13:53:00 +08:00
bfbc061b0b 根据您提供的代码差异信息为空的情况,我将提供一个通用的commit message模板:
```
docs(changelog): 更新版本变更记录

更新项目的变更日志文件,添加最新的功能改进和修复内容,
确保文档与当前版本保持同步。
```

如果您有具体的代码变更内容,请提供详细的差异信息,我可以为您生成更准确的commit message。
2025-12-19 13:13:36 +08:00
f92cd830e9 库房管理-采购管理-采购入库->经手人设置默认值(当前登录用户) 2025-12-18 16:20:38 +08:00
a7a1a18445 检查项目设置-》检查类型维护 2025-12-18 15:28:32 +08:00
d1331cd4e1 Merge remote-tracking branch 'origin/develop' into develop 2025-12-18 14:57:34 +08:00
37d08b8545 菜单管理修改接口优化 2025-12-18 14:56:15 +08:00
e69f499ac0 Merge branch 'develop' of https://gitea.gentronhealth.com/Yajentine/his into develop 2025-12-18 14:49:40 +08:00
3baf7161f1 feat(router): 注释掉部分路由配置并调整租户相关路由
注释掉了预约管理、基础管理、维护系统及系统管理等模块的路由配置,
同时修改了租户用户设置与租户合同管理的路由路径和对应组件,
使其更符合当前业务需求。此外,移除了重复或不再使用的路由注释块,
优化了路由结构的可读性与维护性。
2025-12-18 14:49:35 +08:00
85188651ca 门诊出诊医生诊室设置维护 2025-12-18 14:43:17 +08:00
d6fbfb1427 router-index.js中注释掉系统管理的路由配置,系统管理的相关页面均能访问,药品目录添加新项目时医保等级默认值设置完成。 2025-12-18 13:53:38 +08:00
966847499a 菜单管理-根据Path进行唯一性校验-优化修改接口 2025-12-18 13:19:27 +08:00
1e91171001 router-index.js部分路径注释。 2025-12-18 11:01:45 +08:00
51f495f81e 页面最上面导航栏取消居中显示。 2025-12-18 10:32:49 +08:00
1e6a5972b9 菜单管理->修改、新增时路由地址唯一性检验 2025-12-18 10:20:52 +08:00
515f03a5cd 页面上导航栏搜索栏显示不全bug 2025-12-17 17:23:31 +08:00
b27542ba6d feat(router): 删除预约管理路由模块并注释部分系统路由
移除了独立的预约管理路由文件,该模块功能已整合至其他模块。
同时注释掉了系统监控、系统工具等相关路由配置,便于后续按需启用。
2025-12-17 16:25:54 +08:00
4790855079 Merge remote-tracking branch 'origin/develop' into develop
# Conflicts:
#	openhis-ui-vue3/src/views/maintainSystem/Inspection/index.vue
2025-12-17 13:31:05 +08:00
72cf9c6f2d 检验项目前端页面更新 2025-12-17 13:30:21 +08:00
19ecb65183 增加发票号码维护界面 2025-12-17 10:39:19 +08:00
d85a8684a6 feat(router): 注释掉部分路由配置以优化初始加载性能
注释掉了门诊医生站、套餐管理、预约管理、基础管理、维护系统及系统管理等模块的路由配置,\
便于后续按需加载或调试。此举可减少初次加载时不必要的资源请求,提升页面初始化效率。
2025-12-17 10:32:10 +08:00
574a9267bf 医生工作站->患者信息中医页面无法打开bug 2025-12-17 09:58:28 +08:00
py
27a7396c78 挂号收费系统参数页面的完善 2025-12-17 09:40:44 +08:00
633cf2c17f 门诊医生站患者病历打不开 不显示数据问题 2025-12-16 17:12:21 +08:00
3188ca5752 build(openhis-ui-vue3): 更新 sass 依赖版本并注释部分路由配置
更新 sass 依赖从 ^1.70.0 到 ^1.77.8,并注释掉 router 中暂时未使用的路由配置项,
包括门诊医生站、套餐管理、预约管理、基础管理、维护系统及系统管理等相关路由。
2025-12-16 13:49:06 +08:00
py
c79e4c2623 需求27:增加挂号收费系统参数维护界面-》挂号处理相关参数 2025-12-16 13:33:50 +08:00
f3c451d0a1 解决首页和门诊挂号保存报错问题 2025-12-15 17:06:25 +08:00
a077bd57d4 预约管理->相关文件转移、号源后端接口实现、前端页面逻辑、数据处理修改。 2025-12-15 16:50:16 +08:00
cf16c497bd 修改路由配置 2025-12-15 16:05:16 +08:00
fd1ab239a9 门诊出诊医生诊室设置 2025-12-15 15:37:23 +08:00
caf65e3113 ```
feat(router): 优化路由配置与注释说明

- 重构 constantRoutes 和 dynamicRoutes 中的路由结构,提升可读性
- 补充详细的路由配置项注释,便于后续维护
- 添加路由名称检查避免重复添加相同路由
- 更新数据库连接地址及 Redis 配置信息
- 完善 .gitignore 忽略文件列表,排除临时文件和日志
```
2025-12-15 14:24:45 +08:00
c18c21ff4c ```
build(openhis-ui-vue3): 更新 package-lock.json 文件

添加 resolutions 字段以解决依赖版本冲突问题,包含 stable、source-map-url、
urix、resolve-url、source-map-resolve 和 sourcemap-codec 等依赖包的版本
锁定,确保项目构建稳定性。
```
2025-12-14 15:01:10 +08:00
ab6849c9eb 根据您提供的信息,没有实际的代码差异内容。但我可以为您提供一个符合Angular规范的commit message模板示例:
```
docs(changelog): 更新版本发布说明

添加新功能描述和bug修复记录到更新日志中,
确保所有重要的变更都已正确记录以便用户查阅。
```

如果您有具体的代码差异信息,请提供详细内容,我将为您生成更准确的commit message。
2025-12-14 14:53:10 +08:00
6b555f2563 fix(openhis-ui-vue3): 降级 element-plus-icons-vue 版本
将 @element-plus/icons-vue 从版本 2.5.0 降级到 2.3.2,以解决可能存在的兼容性问题或回退到稳定版本。
2025-12-14 14:53:02 +08:00
7645405c5b 更新组件 2025-12-14 14:44:43 +08:00
5bfadb9174 fix(login): 修复获取用户绑定租户列表时用户名为空导致的URL错误
确保username参数存在,避免因为空值造成接口调用失败

feat(editor): 重构富文本编辑器组件并优化图片上传逻辑
- 使用 Composition API 重构代码结构,提升可维护性
- 改进图片上传功能,增强对 quill 实例的安全访问
- 更新样式排版,提高组件可读性和一致性

refactor(file-upload): 移除旧代理引用,使用 modern Vue API
替换 `proxy` 调用为 `modal` 插件直接调用,提升代码清晰度与健壮性

refactor(image-upload): 替换旧实例调用方式,强化错误提示机制
统一使用 `modal` 进行消息提示和加载状态控制,改善用户体验

refactor(tree-select): 引入 Composition API 优化节点操作逻辑
移除 `getCurrentInstance` 的不必要使用,改为明确的模板引用管理

chore(main): 添加 util._extend 补丁以消除 Node.js 环境警告
解决开发环境下由于 Node.js 内建模块缺失造成的运行时警告问题

feat(template): 完善跌倒/坠床评估护理记录单模板
- 增加详细注释说明各部分作用,便于后续维护
- 明确组件名称为中文,利于业务识别
- 丰富表单交互细节及数据处理逻辑,支持动态打分、措施选择等功能

refactor(template-index): 加强模板组件自动注册逻辑
增加组件 name 属性校验,防止无效或匿名组件被注册到全局
2025-12-14 14:22:55 +08:00
e1b9d36153 feat(template): 添加股骨头坏死门诊病历模板
新增了一个名为“股骨头坏死(模板1)”的门诊病历模板文件,包含完整的主诉、现病史、既往史、体格检查、辅助检查、诊断和治疗方案等内容,便于医生快速调用和填写。

该模板位于 `src/template/股骨头坏死(模板1).vue`,采用 Vue 单文件组件格式编写,并定义了相应的结构与样式。
2025-12-13 22:23:58 +08:00
fdb8d6c934 更新模板注释测试中文名 2025-12-13 22:18:56 +08:00
22a1ac57b2 改回配置IP地址 2025-12-13 16:06:13 +08:00
4d243815a6 修正格式 2025-12-13 16:03:06 +08:00
882e8c9199 修正问题 2025-12-12 17:06:14 +08:00
a0c87f6335 问题关键 2025-12-12 17:01:24 +08:00
538dde55f7 还原门诊医生站 2025-12-12 15:57:03 +08:00
f33e3c6f15 首页报错和门诊医生站报错 2025-12-12 15:48:07 +08:00
0794782505 TypeScript Vue Plugi 2025-12-12 15:43:58 +08:00
d37fa46b5f 删除rabbitmq 2025-12-12 15:07:27 +08:00
8fcc229ad8 关联套餐设置页面对应字段 2025-12-12 10:59:22 +08:00
39aa710fd3 医生排班后端接口异常修复 2025-12-12 09:12:40 +08:00
49f95b40ea Merge branch 'develop' of https://gitea.gentronhealth.com/Yajentine/his into develop 2025-12-12 09:11:50 +08:00
eb2d7302b7 添加文件 2025-12-11 22:04:00 +08:00
eb26f9db34 添加文件 2025-12-11 22:03:51 +08:00
bd6f3ca587 医生排班页面修复,新增组件间交互功能。 2025-12-11 17:14:48 +08:00
a58e02f2cb 预约管理 2025-12-11 16:23:59 +08:00
8c8ef13021 预约管理需求 2025-12-11 16:06:09 +08:00
d9a0a98f52 预约管理需求 2025-12-11 15:53:00 +08:00
8c84b6eb46 修正可以显示出主页 2025-12-11 15:23:16 +08:00
3d797cc0e0 修正前端问题 2025-12-11 14:47:17 +08:00
df7281a2d4 INDEX.JS修正 2025-12-10 16:33:41 +08:00
f83d7ae520 修改index.js 2025-12-10 16:29:00 +08:00
d9c8525b94 修正问题 2025-12-10 16:04:18 +08:00
bcc5cbb2fb 删除miniapp相关 2025-12-10 15:48:35 +08:00
67a8351d70 Merge remote-tracking branch 'origin/develop' into develop 2025-12-10 15:45:19 +08:00
391506e423 医生排班 2025-12-10 15:44:36 +08:00
b1117b4157 删除无效合并 2025-12-10 15:28:29 +08:00
b0eb9861b9 合并分支 2025-12-10 15:22:25 +08:00
b863c14f2b 解决合并冲突并优化代码结构 2025-12-10 14:24:34 +08:00
18f6a845e6 解决合并冲突 2025-12-10 14:20:24 +08:00
e1385cb3e6 维护系统->检查方法、部位前端需求优化。 2025-12-10 11:51:38 +08:00
c8ca56c3f5 门诊医生排班->科室名称管理页面科室下拉选项数据来源更改 2025-12-09 16:55:02 +08:00
b149f7d687 门诊医生排班->科室名称管理页面基础按钮功能、数据渲染OK 2025-12-09 14:17:58 +08:00
19702c25e5 仓库bug 2025-12-09 09:52:20 +08:00
qk123
eaa681c9ff 门诊医生排班->科室名称管理后端接口,前端基础页面 2025-12-08 16:46:37 +08:00
205c58782b 修正发票管理界面删除功能的权限判断 2025-12-08 14:02:31 +08:00
00e1c62de0 门诊挂号-》新增患者:监护人信息录入控制,当患者的年龄小于等于维护的监护人规定年龄时,则需要登记患者监护人的相关信息,反之无需填写。 2025-12-08 10:20:26 +08:00
46c9787216 修改套餐管理页面操作图标设置 2025-12-05 16:50:37 +08:00
e0a768de2e 新增套餐设置页面中的套餐管理页面并增加相应跳转逻辑 2025-12-05 16:37:34 +08:00
fc7f931728 新增套餐设置页面中的套餐管理页面并增加相应跳转逻辑 2025-12-05 16:34:12 +08:00
qk123
3ccb970a09 维护系统->检查方法、部位导出表格功能OK 2025-12-05 15:54:57 +08:00
ljj
8a9a622aeb 72.系统管理--》基础数据-》科室管理 2025-12-05 13:39:23 +08:00
qk123
29e7f0937b 维护系统->检查方法、部位条件搜索前后端实现 2025-12-04 14:47:39 +08:00
029d534b3c 新增检验项目设置中的检验类型页面并实现相关逻辑 2025-12-04 09:47:34 +08:00
qk123
213723b220 维护系统->检查方法后端接口数据校验修改 2025-12-04 09:33:44 +08:00
qk123
c636e77fd0 维护系统->检查部位前端接口缺少导入。 2025-12-04 09:21:35 +08:00
qk123
7407562ec5 维护系统->检查部位后端接口优化。 2025-12-03 17:15:35 +08:00
qk123
b3c27ec789 维护系统->检查方法前端页面优化、接口功能完善(搜索栏和导出表格未处理),后端接口优化。 2025-12-03 16:00:24 +08:00
qk123
601ae40666 维护系统->LIS分组前端页面开发,基础功能实现 2025-12-03 14:24:19 +08:00
3dda5ce72d 修改配置7 2025-12-03 13:48:25 +08:00
qk123
99d4c28b95 检查项目维护->Lis分组前端接口、后端实体优化。 2025-12-02 16:46:19 +08:00
qk123
0e70de6de7 Merge branch 'develop' of https://gitea.gentronhealth.com/Yajentine/his into develop 2025-12-02 16:44:57 +08:00
72eb1088df 修正前端PROD 2025-12-02 15:03:40 +08:00
a853c16854 修正prd 2025-12-02 14:43:35 +08:00
73a349f98a 冗余prod 2025-12-02 14:25:10 +08:00
5fb7a3f488 production 2025-12-02 14:12:06 +08:00
a8eb7d5697 prd->production 2025-12-02 14:08:09 +08:00
eb3b142ce4 修改配置 2025-12-02 14:03:49 +08:00
9f6a39ba30 修改配置文件 2025-12-02 14:02:25 +08:00
f7f2f98bbe 修改统一前端的PRD的标识 2025-12-02 13:52:18 +08:00
79e68ee14e 修改前端VUE的DEV环境配置 2025-12-02 12:53:01 +08:00
bc8987c463 配置3 2025-12-02 11:51:07 +08:00
3f7174fcd1 修复重复 2025-12-02 10:31:18 +08:00
080008f447 Merge branch 'develop' of https://gitea.gentronhealth.com/Yajentine/his into develop 2025-12-02 10:29:50 +08:00
5c3d935615 前端加上相关test的配置 2025-12-02 10:29:39 +08:00
a0845127c6 配置2 2025-12-02 10:28:02 +08:00
ba65ab303b 多环境配置 2025-12-02 09:25:35 +08:00
qk123
6fbdddf0ee 检查项目维护->Lis分组后端接口 2025-12-01 16:13:30 +08:00
py
173cbc7f87 门诊挂号-》完善新增患者字典信息 2025-12-01 14:45:27 +08:00
qk123
2e341a123e 检查项目维护检查方法、部位前端表格数据映射ok 2025-12-01 13:42:15 +08:00
qk123
8beff2ee14 检查方法、检查部位前端页面、完善后端接口逻辑 2025-11-28 17:03:08 +08:00
wzk
1b939ba5b7 刷新 2025-11-28 16:48:14 +08:00
wzk
577daabe1c 医嘱诊断和费用性质没有自动引入 2025-11-28 16:35:41 +08:00
wzk
327e88e6d4 检查项目设置-套餐设置-套餐管理界面放大或缩小数据显示不全 2025-11-28 15:24:52 +08:00
叶锦涛
548fabcffe 新建检验项目设置的检验类型页面 2025-11-28 13:56:27 +08:00
263e21e157 换卡bug 2025-11-28 10:41:14 +08:00
d7955aa628 配置 2025-11-28 09:58:52 +08:00
叶锦涛
d197f7555f 修复发票管理界面管理员和普通操作人员的筛选规则 2025-11-27 13:36:17 +08:00
wzk
a0e52da437 门诊号码管理维护界面前后端 2025-11-27 13:08:42 +08:00
qk123
88d79729fe 库房管理->采购管理->采购管理点击《详情》按钮跳转后无数据显示 2025-11-27 12:00:21 +08:00
6dc6480e64 Merge remote-tracking branch 'origin/develop' into develop 2025-11-27 10:40:12 +08:00
98c263a72b 患者档案和进货单bug 2025-11-27 10:39:56 +08:00
wzk
50a2ef9e00 门诊医生站->医嘱:新增独立的西药处方单补充 2025-11-27 09:41:59 +08:00
wzk
065f7052c6 检查项目设置->套餐设置->套餐管理补充 2025-11-27 09:24:26 +08:00
e23d42404d 患者档案和进货单bug 2025-11-27 08:56:19 +08:00
wzk
4120d4e001 检查项目设置->套餐设置->套餐管理 2025-11-27 08:44:32 +08:00
wzk
1bd2089047 检查项目设置-套餐设置 2025-11-26 16:18:47 +08:00
wzk
6d9ff7dc10 检查项目设置-套餐设置 2025-11-26 16:15:41 +08:00
wzk
ae7ca984f8 检查项目设置-套餐设置 2025-11-26 16:15:11 +08:00
wzk
69b7a4d865 检查项目设置-套餐设置界面 2025-11-26 14:39:57 +08:00
wzk
864bf55025 修复门诊医生站->【处方单】按钮,点击【处方单】按钮无响应问题 2025-11-26 13:34:41 +08:00
wzk
249ef5f87e 门诊挂号-》医生字段,对字段医生进行过滤,让医生和、就诊科室、挂号类型形成对照。 2025-11-26 13:15:42 +08:00
qk123
df3fb6c66c 检查方法、检查部位接口部分细节修改 2025-11-26 10:37:30 +08:00
qk123
10ec9f4c1b 检查方法、检查部位后端接口、实体、数据库表基本完成。 2025-11-26 10:31:30 +08:00
0b98763c05 门诊挂号查询优化 2025-11-25 16:14:03 +08:00
叶锦涛
3d3b21a775 修复操作员的工号的编辑功能 2025-11-25 15:58:17 +08:00
叶锦涛
4ba4f80946 修改发票管理页面 2025-11-25 15:39:29 +08:00
叶锦涛
ed7cb2dab5 修改发票管理页面 2025-11-25 15:30:33 +08:00
wzk
50ef9e6743 修复西药处方单bug 2025-11-25 13:49:38 +08:00
py
250d7dde34 门诊医生站-》开立处方医嘱:完善药品的字典信息 2025-11-25 11:27:58 +08:00
wzk
69f3e066db 门诊医生站-》医嘱:新增独立的西药处方单 2025-11-25 10:17:13 +08:00
叶锦涛
afb0c3933c 删除检查项目设置多余数据 2025-11-24 16:22:43 +08:00
叶锦涛
45ac07e57c 删除检查项目设置多余数据 2025-11-24 16:19:46 +08:00
qk123
262ea97824 同一患者保存病历后判断逻辑问题 2025-11-24 15:13:18 +08:00
ljj
dcfa13f239 系统管理-目录管理-》耗材目录。将该界面的字段标题设置可以手动拉宽每个字段的宽度,有的字段内容看不全,将界面的字段标题设置成可以调节每个字段的长度,使之能看全内容 2025-11-24 15:11:19 +08:00
叶锦涛
27c3c850d6 创建项目检查设置页面 2025-11-24 14:35:54 +08:00
wzk
122a15a73d 修复医嘱保存、签发不成功 2025-11-24 11:40:37 +08:00
wzk
61749aee4d 门诊号码管理修改关闭给予保存提示 2025-11-24 10:45:27 +08:00
97a29a31c5 门诊挂号查询优化 2025-11-24 09:39:23 +08:00
wzk
c3734f921c 用户管理中用户名字替换成用户姓名 2025-11-24 09:34:04 +08:00
c561586cfa 门诊换卡优化 2025-11-24 09:22:11 +08:00
qk123
60593233bc 中医添加医嘱后页面不显示BUG 2025-11-21 15:08:27 +08:00
wzk
992b03f9c2 解决退号记录的退号操作工作取值问题 2025-11-21 13:15:08 +08:00
wzk
36628342dc 用户管理将用户名称改成用户账号、用户昵称改成用户姓名。 2025-11-21 11:32:46 +08:00
qk123
3783e4a872 优化配方名称框、剂量单位框、脚注框 2025-11-21 09:59:09 +08:00
py
584f79294b 13 收费工作站-》门诊挂号1、将医生改成出诊医生。
2、将出诊医生字段选中‘内科医生1’,点击【确认】按钮,重新打开出诊医生字段的内容保存成功
2025-11-21 09:39:22 +08:00
wzk
a5884ec069 修复退号记录的退号操作工作取值问题 2025-11-21 09:25:39 +08:00
wzk
cc2f7db754 Merge remote-tracking branch 'origin/develop' into develop 2025-11-21 09:24:21 +08:00
wzk
fcccfc1959 解决医嘱确定后中成药项目名消失 2025-11-21 09:23:20 +08:00
c5ec91e7d3 新增医嘱中成药显示项目名称1 2025-11-21 09:22:35 +08:00
6b67e25d94 新增医嘱中成药显示项目名称 2025-11-21 09:17:24 +08:00
wzk
6da3b63012 医嘱保存成功 2025-11-20 16:29:14 +08:00
qk123
ea0f0e2294 中医:添加药品”确定“按钮能够正常起作用。 2025-11-20 11:14:37 +08:00
qk123
980f0aeb9c 中医:新增配方名称、煎药方式、脚注字段。 2025-11-20 11:02:55 +08:00
叶锦涛
17b40118ce 修复bug 2025-11-20 10:47:49 +08:00
叶锦涛
d10a78e5e8 修复处方标志保存的不正确 2025-11-20 09:18:54 +08:00
叶锦涛
f7ad010b2a 修复bug 2025-11-20 09:05:06 +08:00
叶锦涛
1a7ff0a686 修复bug 2025-11-20 08:58:26 +08:00
叶锦涛
3ad3f21362 实现药品目录处方标志保存 2025-11-19 16:47:35 +08:00
叶锦涛
c84fc3c236 删除重复函数 2025-11-19 16:43:12 +08:00
叶锦涛
a6561e2ca6 删除重复函数 2025-11-19 16:37:01 +08:00
叶锦涛
dfe35bb7f0 修改耗材/诊疗绑定,耗材项目药品的缺失 2025-11-19 16:33:12 +08:00
py
18c96e006f Merge branch 'develop' of https://gitea.gentronhealth.com/Yajentine/his into develop 2025-11-19 15:54:20 +08:00
py
f5db504363 feat(医生站): 添加处方单删除功能及相关UI
- 新增处方单删除按钮及交互逻辑
- 实现处方单删除前的条件检查(药品数量和收费状态)
- 添加删除按钮的样式和禁用状态
- 完善处方单药品数量和总价的计算方法
2025-11-19 15:54:15 +08:00
wzk
deb31c969a 修复耗材确定后显示成中成药 2025-11-19 14:06:04 +08:00
wzk
e7dac9762d 门诊号码管理编辑员工号 2025-11-19 13:19:48 +08:00
叶锦涛
89862878b5 修改耗材目录地点的缺失 2025-11-18 17:23:39 +08:00
叶锦涛
e105919dab 修改错误提示信息 2025-11-18 11:15:10 +08:00
叶锦涛
e83fc94334 新建发票管理页面 2025-11-18 10:40:57 +08:00
5bf7ab481f 编辑药品tab页面可以不显示数据了 新增之后勾选框还存在 2025-11-18 10:36:15 +08:00
wzk
afa904bd83 医嘱类别耗材项目从耗材目录获取数据 2025-11-18 10:09:30 +08:00
wzk
a343464d8d 门诊医生站-》开立医嘱:增加备注字段 2025-11-18 10:08:46 +08:00
wzk
4a2485e434 门诊医生站-》医嘱:皮试字段做成单选框。当开单医生选中检索出来的药品确认时,如果该药品是皮试药品,系统’药品:该药品名称+需要做皮试,是否做皮试? 2025-11-18 09:25:07 +08:00
Auora
4e2d4d85ec 【bug】解决撤回按钮弹出多余信息 2025-11-17 15:55:59 +08:00
wzk
7ddf6211ee Merge remote-tracking branch 'origin/develop' into develop 2025-11-17 13:29:55 +08:00
wzk
d44600b641 挂号退号 2025-11-17 13:28:33 +08:00
a68c4402de 实现门诊换卡的整体逻辑 2025-11-17 13:24:49 +08:00
wzk
93103f7f40 门诊号码管理维护界面-》优化 2025-11-17 13:09:36 +08:00
wzk
7202151a41 正常挂号消除退款的记录 2025-11-17 11:04:59 +08:00
wzk
491d8f8930 挂号退款加退款记录 2025-11-17 10:59:22 +08:00
wzk
b886726ecc 当就诊状态是非接诊时,操作【退号】系统提示‘该患者医生已接诊,不能退号!’。 2025-11-17 09:55:32 +08:00
qk123
9d0dde6794 门诊医生站移除取消接诊的错误消息提示 2025-11-17 09:46:09 +08:00
qk123
f3578b3202 新增门诊医生站确认取消接诊后移除错误消息提示 2025-11-17 09:42:01 +08:00
Auora
0610ba7cb5 解决门诊挂号退号费用性质不一致的bug 2025-11-14 15:41:30 +08:00
叶锦涛
8b848f787a 修改科室管理主界面科室分类和编辑科室的字典 2025-11-14 09:25:37 +08:00
wzk
a794cd0ce3 门诊医生站开立医嘱中成药的开医嘱录入界面和西药的开医嘱录入界面保持一致 2025-11-14 09:01:48 +08:00
叶锦涛
d97fd0bed1 修复采购入库时选择不同仓库新增药品时仓库的错误 2025-11-13 17:16:12 +08:00
叶锦涛
c0e67722d9 修复门诊医生站诊断删除按钮的错误 2025-11-13 15:40:53 +08:00
qk123
aca7fea69f 新增门诊医生站取消接诊功能 2025-11-13 13:41:48 +08:00
wzk
ce9344f9ce 门诊医生站-》开立医嘱系统根据选中的药品名称
判断医嘱类型。
2025-11-13 10:17:35 +08:00
wzk
991ad61655 1 2025-11-13 08:59:09 +08:00
Auora
e4ac857461 【bug】剂量单位bug 2025-11-12 14:18:51 +08:00
叶锦涛
24ab98ae89 发票号码维护页面 2025-11-12 13:51:34 +08:00
wzk
e79ab9ac4f 医嘱:修改用药天数时,系统自动通过公式自动换算总量 2025-11-12 13:31:11 +08:00
b66c2027d1 换卡处理的分页 2025-11-12 12:08:52 +08:00
09bf895711 维护换卡处理的查询 2025-11-12 10:58:12 +08:00
Auora
825cdd58ae 【bug】 2025-11-12 10:12:12 +08:00
0977eb8145 维护换卡处理的查询bug 2025-11-12 09:59:03 +08:00
Auora
73efeecfc1 解决当日已挂号页面费用性质不一致问题 2025-11-12 09:47:28 +08:00
fe8fb3d321 维护换卡处理的查询 2025-11-12 09:38:47 +08:00
叶锦涛
618fb1e340 修改新增患者的信息样式 2025-11-12 09:15:08 +08:00
叶锦涛
215fe8b889 修改科室管理和新增科室分类的字典 2025-11-11 16:46:36 +08:00
Auora
3e32458b7f 解决医嘱类型选中开单后变成数字问题。 2025-11-11 16:05:18 +08:00
wzk
a8e170ea45 门诊号码管理维护界面-》优化 2025-11-11 13:58:34 +08:00
wzk
1856ae50fd Merge remote-tracking branch 'origin/develop' into develop 2025-11-11 13:58:20 +08:00
wzk
1711e6c115 门诊号码管理维护界面-》优化 2025-11-11 13:57:34 +08:00
叶锦涛
b3f226feab 修改新增患者 2025-11-11 13:28:50 +08:00
wzk
c086dc8c77 修改报表管理-》院内库房情况查询报表-》库存商品明细查询报表,选择库存范围条件检索报错补充 2025-11-11 11:51:52 +08:00
wzk
6762341fbd 修改报表管理-》院内库房情况查询报表-》库存商品明细查询报表,选择库存范围条件检索报错。 2025-11-11 11:36:15 +08:00
d5f8b0f23b 医嘱类型勾选全部之后项目报错的bug 2025-11-11 10:12:40 +08:00
叶锦涛
38233110f2 1、监护人关系要取原来的联系人关系的下拉内容,取值于字典管理-》与患者关系。 2025-11-10 17:11:15 +08:00
6ebb59bc5e 、增加挂号单补打功能(差就诊号查询自动填充) 2025-11-10 17:09:08 +08:00
wzk
69aefab280 库房/药房管理:添加的耗材库 2025-11-10 16:57:05 +08:00
3d3ff82e24 解决医嘱类别选择全部项目报错的问题 2025-11-10 16:53:14 +08:00
69780d204f 1、收费工作站-》门诊挂号:将门诊挂号界面的功能按钮统一摆放在标题页,依次摆放整齐。
2、增加挂号单补打功能(差就诊号查询自动填充)
3.患者档案管理:将【修改】和【查询】按钮调出的界面统一修改成图2的新增患者界面。
2025-11-10 16:35:47 +08:00
Auora
ef52f290fe 解决医嘱类型选中开单后变成数字问题。 2025-11-10 16:17:44 +08:00
wzk
e9d1119777 门诊号码管理维护界面-》优化 2025-11-10 14:41:22 +08:00
qk123
cf182f0e34 修改:初复诊标识系统重新判断->从数据库中读取 2025-11-10 14:32:59 +08:00
qk123
626ae1a459 修改:初复诊标识系统重新判断->从数据库中读取 2025-11-10 10:12:29 +08:00
wzk
3d6977328f 解决系统管理-》基础数据-》库房/药房管理无法添加的耗材库问题的补充 2025-11-07 16:42:19 +08:00
wzk
2dcd7ba1d5 解决系统管理-》基础数据-》库房/药房管理无法添加的耗材库问题 2025-11-07 16:27:56 +08:00
qk123
16a4d38113 修复疾病目录模块下新增病种异常提示请勿重复提交问题 2025-11-07 15:25:28 +08:00
57c98ea39d 解决诊断目录数据展示不全问题 2025-11-07 15:13:41 +08:00
08f7e35042 解决诊断目录数据展示不全问题 2025-11-07 14:08:28 +08:00
wzk
43f3d1ba94 立医嘱的执行科室默认获取诊疗项目维护的所属科室,如果诊疗项目未维护所属科室,默认执行科室为开单科室,然后开单医生又权限操作修改。 2025-11-07 13:41:57 +08:00
wzk
2e45c6c029 开单科室维护的取药药房药在医生开处方药做好过滤限制,没有维护的药房/药库或者药品类型过滤掉。 2025-11-07 13:35:06 +08:00
wzk
945182c6f8 解决报表管理-》院内库房情况查询报表-》库存商品明细查询报表bug 2025-11-07 09:56:50 +08:00
Auora
f7de87860b 1增加挂号收费系统参数维护界面挂号处理的相关参数
2在打印设置tba页面增加是否打印挂号单维护参数
2025-11-06 17:20:42 +08:00
wzk
67e4de0d68 Merge remote-tracking branch 'origin/develop' into develop 2025-11-06 17:13:11 +08:00
qk123
602d521424 修改完诊后再接诊初复诊标识不对问题 2025-11-06 17:12:57 +08:00
叶锦涛
01e14ee084 修改登录界面测试医院的信息 2025-11-06 16:56:41 +08:00
qk123
4a5572de26 修改完诊后再接诊初复诊标识不对问题 2025-11-06 14:00:45 +08:00
88a516d1be 门诊挂号-》【档案】档管理的【新增患者】-患者界面(图1)的内容要与图2的内容一致(门诊挂号-》【新建】-》新增患者界面) 2025-11-06 13:34:59 +08:00
wzk
9ce967002a Merge remote-tracking branch 'origin/develop' into develop 2025-11-06 13:25:41 +08:00
wzk
fd536a035e 修改 2025-11-06 13:25:25 +08:00
wzk
df84a7eefa Merge remote-tracking branch 'origin/develop' into develop 2025-11-06 13:23:55 +08:00
2804703eaa 门诊号码管理维护界面 2025-11-06 13:23:33 +08:00
wzk
e14a0e3d13 Merge remote-tracking branch 'origin/develop' into develop 2025-11-06 13:15:49 +08:00
5a99fe8234 门诊号码管理维护界面 2025-11-06 13:15:22 +08:00
3ad5c5533f 在门诊挂号页面增加档案按钮完成患者档案管理的跳转 2025-11-06 09:11:26 +08:00
Auora
9997f4f7c9 修改医嘱字典 2025-11-06 08:53:57 +08:00
Auora
3d4e4a8119 修改病历不能编辑问题 2025-11-05 16:15:23 +08:00
叶锦涛
3deac74898 在处方打印处增加患者信息 2025-11-05 16:07:37 +08:00
wzk
7bbc50ef47 Merge remote-tracking branch 'origin/develop' into develop 2025-11-05 15:39:48 +08:00
wzk
4ae6765a15 门诊号码管理维护界面 2025-11-05 15:39:39 +08:00
wzk
1292853c5d Merge remote-tracking branch 'origin/develop' into develop 2025-11-05 14:53:46 +08:00
Auora
41791c9ccc 修改门诊挂号和费用支付上的费用性质不一致的问题,并且将解决无法收费的问题 2025-11-05 14:53:34 +08:00
Auora
0674215b53 修改门诊挂号和费用支付上的费用性质不一致的问题,并且将解决无法收费的问题 2025-11-05 14:09:06 +08:00
e42d990304 收费工作站-》门诊挂号:将门诊挂号界面的功能按钮统一摆放在标题页,依次摆放整齐。 2025-11-05 13:32:48 +08:00
0dbe9a57c8 Merge remote-tracking branch 'origin/develop' into develop
# Conflicts:
#	openhis-ui-vue3/src/views/charge/outpatientregistration/index.vue
2025-11-05 11:45:36 +08:00
85ea831a1c 收费工作站-》门诊挂号:将门诊挂号界面的功能按钮统一摆放在标题页,依次摆放整齐。 2025-11-05 11:43:52 +08:00
7ac26cf781 增加监护人信息限制,在门诊挂号页面增加档案按钮完成患者档案管理的跳转 2025-11-05 11:38:47 +08:00
b7412648b4 修改报表格式2 2025-11-04 16:45:41 +08:00
叶锦涛
97571652e5 把新增患者中的联系人替换成监护人 2025-11-04 16:36:26 +08:00
b5d4da97f9 修改报表格式 2025-11-04 16:10:16 +08:00
叶锦涛
e5edb6bda2 跳过了处方打印页面的构建 2025-11-04 15:45:12 +08:00
叶锦涛
0e1ae53194 修改了标题undefined 2025-11-04 14:55:32 +08:00
a1efd3f91b 修复完诊后的初诊复诊错乱 2025-11-04 13:24:07 +08:00
3211553d0d 修复门诊收费报表报错,修复采购入库历史遗留数据问题 2025-11-04 13:10:47 +08:00
wzk
a57a326b83 Merge remote-tracking branch 'origin/develop' into develop 2025-11-04 10:44:14 +08:00
wzk
f77d0a2567 新增用户用户密码系统可以自动赋值一个初始密码,123456。 2025-11-04 10:43:52 +08:00
wzk
72581466aa 新增用户用户密码系统可以自动赋值一个初始密码,123456。 2025-11-03 17:39:05 +08:00
Auora
4b3471df06 门诊挂号的费用性质取值改成取值字典管理-》医疗费用支付方式代码的字典数据
将门诊医生站开立医嘱的医嘱类型字段下拉列表内容做成前台维护
2025-11-03 17:15:00 +08:00
叶锦涛
68c65ae8bd 给登录界面的标题加上了信息管理系统 2025-11-03 17:10:10 +08:00
wzk
1b879addc7 门诊医生开处方单,系统把药品无论是药库或药房有的库存都显示出来了。解决显示只有药房的问题。 2025-11-03 16:14:52 +08:00
叶锦涛
3888859b2b 修复了处方打印不能打印的错误 2025-11-03 13:48:20 +08:00
Auora
f03d2e1633 修改病历格式 2025-11-03 13:38:47 +08:00
bc91eb7cdc 按照采购退货的申请审批流程,完成药品采购申请退货的审批确认, 2025-11-03 11:56:34 +08:00
Auora
93120e973a [bug]解决选中药库或药房对应的源仓库或目的仓库无下拉数据 2025-11-03 11:12:19 +08:00
wzk
c6a27f6276 Merge remote-tracking branch 'origin/develop' into develop 2025-11-03 09:41:36 +08:00
wzk
778704c9dc 药品类别下拉别表内容错误,药品类别应该取值如下图字典管理的药品分类编码 2025-11-03 09:41:28 +08:00
wzk
ff227b40c1 Merge remote-tracking branch 'origin/develop' into develop 2025-11-03 09:38:43 +08:00
wzk
c7d8ab5b48 Merge remote-tracking branch 'origin/develop' into develop 2025-11-03 09:38:36 +08:00
wzk
9c27b2a134 Merge remote-tracking branch 'origin/develop' into develop 2025-11-03 09:31:58 +08:00
叶锦涛
3f919188d2 药品类别下拉别表内容错误,药品类别应该取值如下图字典管理的药品分类编码 2025-11-03 09:31:45 +08:00
wzk
8942058972 Merge remote-tracking branch 'origin/develop' into develop 2025-11-03 09:29:49 +08:00
叶锦涛
6c2dbf0418 药品类别下拉别表内容错误,药品类别应该取值字典管理的药品分类编码 2025-11-03 09:29:30 +08:00
叶锦涛
85e185bab8 修复了全选框 2025-10-31 16:35:47 +08:00
叶锦涛
88aa1517ef Merge branch 'develop' of https://gitea.gentronhealth.com/wangjunping/his into develop 2025-10-31 16:32:53 +08:00
叶锦涛
c05118c427 修复了全选框 2025-10-31 16:32:13 +08:00
Auora
2a7f1326b9 [bug]修改就诊时,就诊时间逻辑 2025-10-31 16:23:12 +08:00
叶锦涛
c07255fe5b 修改了登入界面的xxx医院信息管理系统 2025-10-31 16:13:53 +08:00
叶锦涛
749bfc89dd 修复了打印单据没有响应的错误,修复了新增加诊断诊断类别自动获取11的错误 2025-10-31 16:06:12 +08:00
52cc5e3aae 实现采购入库的供货商字段数据存放到数据库,并且系统在采购入库界面能读取对应的采购入库单的对应供货商名称显示 2025-10-31 13:52:33 +08:00
wzk
642c4a0941 Merge remote-tracking branch 'origin/develop' into develop 2025-10-31 12:38:34 +08:00
wzk
30953d5771 开立医嘱的执行科室默认获取诊疗项目维护的所属科室 2025-10-31 12:38:22 +08:00
wzk
83e0c663c9 在开立好的医嘱名称前增加医嘱类别的显示 2025-10-31 12:32:41 +08:00
b19337e76a 修复初诊和就诊的bug 2025-10-31 12:30:11 +08:00
ba607346bd 修复初诊和就诊的bug 2025-10-31 11:05:40 +08:00
Auora
433c452a40 解决库房/药房管理,操作编辑弹窗问题 2025-10-31 10:08:59 +08:00
Auora
a1be7fdbfd [bug]修改仓库字段下拉别表无内容bug 2025-10-31 09:01:35 +08:00
叶锦涛
87409d0c93 修复了药房/库房的删除的报错 2025-10-30 15:38:51 +08:00
d5c8ae8d45 修复初诊和就诊的bug 2025-10-30 15:28:05 +08:00
bc45e9c8c6 首页页面优化 2025-10-30 11:14:25 +08:00
Auora
42992382c0 增加isFoodDiseasesNew 函数 2025-10-30 10:43:54 +08:00
Auora
22d7eba510 增加getEmrDetail 函数 2025-10-30 09:56:41 +08:00
9728c8a6dd 优化格式问题 2025-10-30 09:45:50 +08:00
c951144ac6 首页页面进行了初步优化 2025-10-30 09:15:27 +08:00
叶锦涛
0b179fffd6 诊断排序 2025-10-29 16:50:39 +08:00
Auora
75374ac5d3 更改.env.production 2025-10-29 15:15:26 +08:00
Auora
2a83719b87 更改prod配置 2025-10-29 14:54:55 +08:00
Auora
e58f2d807b 更改prod配置 2025-10-29 14:03:43 +08:00
Auora
b2884def17 Merge branch 'develop' of https://gitea.gentronhealth.com/wangjunping/his into develop
# Conflicts:
#	openhis-ui-vue3/.env.spug
2025-10-29 13:53:14 +08:00
Auora
064840dd42 删除VITE_OUT_DIR=dist-spug 2025-10-29 13:52:22 +08:00
1aa814c766 更新 openhis-ui-vue3/.env.spug
删除VITE_OUT_DIR=dist-spug
2025-10-29 05:49:44 +00:00
Auora
b9719a51d1 增加build:spug 2025-10-29 13:46:48 +08:00
Auora
03b83aaf7c 增加VITE_APP_ENV = 'spug' 2025-10-29 13:30:25 +08:00
Auora
d93976483b 增加VITE_APP_BASE_API = '/admin-api' 2025-10-29 13:28:13 +08:00
dd0a3a915c 身份证号改为不是必须项只有输入身份证号的时候才会校验格式问题 2025-10-29 09:47:32 +08:00
2f3994c575 身份证号改为不是必须项只有输入身份证号的时候才会校验格式问题 2025-10-29 09:43:54 +08:00
wzk
daa78e128f 修复医嘱请选择项目选完选项框不消失 2025-10-29 09:40:55 +08:00
wzk
2ca594cb39 Merge remote-tracking branch 'origin/develop' into develop 2025-10-29 09:36:01 +08:00
Auora
7805c26f4a Merge remote-tracking branch 'origin/develop' into develop 2025-10-29 09:33:01 +08:00
Auora
b7d34537c2 修改login 2025-10-29 09:32:29 +08:00
wzk
c1213fcf59 Revert "修复医嘱请选择项目选完选项框不消失"
This reverts commit 4afe0d107c.
2025-10-29 09:21:55 +08:00
wzk
a64edace55 Merge remote-tracking branch 'origin/develop' into develop 2025-10-29 09:04:25 +08:00
wzk
4afe0d107c 修复医嘱请选择项目选完选项框不消失 2025-10-29 09:04:01 +08:00
Auora
d8af11412f 修改格式 2025-10-29 08:55:14 +08:00
Auora
00816c9834 修改位置:applicationFormBottomBtn.vue 中的 import 语句。 2025-10-28 17:28:25 +08:00
Auora
4fb7bea80a 修改位置:prescriptionlist.vue 中的 import 语句 2025-10-28 17:21:20 +08:00
Auora
0fc72cb270 修改位置:prescriptionlist.vue 中的 import 语句 2025-10-28 17:14:23 +08:00
Auora
eadf521903 Merge branch 'develop' of https://gitea.gentronhealth.com/wangjunping/his into develop 2025-10-28 17:04:08 +08:00
f786fdbc3f 更新 openhis-ui-vue3/.env.spug
删除NODE_ENV=spug
2025-10-28 09:03:17 +00:00
92c4c938a3 更新 openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionMedicineList.vue 2025-10-28 08:57:06 +00:00
Auora
a94a1b7b69 Merge branch 'develop' of https://gitea.gentronhealth.com/wangjunping/his into develop 2025-10-28 16:34:06 +08:00
Auora
48755c2d9e 删掉多余逗号 2025-10-28 16:32:42 +08:00
叶锦涛
f99f8eb560 系统登入界面的设计 2025-10-28 16:27:42 +08:00
Auora
ddc7ce2fe7 spug测试 2025-10-28 15:56:24 +08:00
Auora
c9899c62d2 Merge branch 'develop' of https://gitea.gentronhealth.com/wangjunping/his 2025-10-28 15:55:04 +08:00
wzk
8b9837d7dc Merge remote-tracking branch 'origin/develop' into develop 2025-10-28 13:35:22 +08:00
wzk
2cba41331a 诊断类别:字典管理中找不到对应的字典数据,字典类别在显示出来的数据和医生开立诊断的数据不一致。 2025-10-28 13:34:56 +08:00
4da5ca427b 在租户管理-》所属用户界面的关闭按钮改为关闭当前的界面,并返回上一级界面, 2025-10-28 13:33:50 +08:00
wzk
f4605b1af7 下拉列表的刷选功能失效,按照下拉选中的医嘱类型能过滤出对应收费项目医生进行开单 2025-10-27 15:08:28 +08:00
叶锦涛
d2babdc9ed 修复已保存病例模板无数据的显示的问题 2025-10-27 14:02:01 +08:00
4d0599eac1 将历史病例中对病例选择的bug修复,现在是单选选中 2025-10-27 13:22:25 +08:00
Auora
35d99df274 test 2025-10-24 17:17:31 +08:00
2078 changed files with 293991 additions and 107106 deletions

76
.github/copilot-instructions.md vendored Normal file
View File

@@ -0,0 +1,76 @@
# OpenHIS — AI 编码助手 指南
目的:帮助自动化/AI 编码代理快速上手本仓库,包含架构要点、关键文件、常用构建/运行命令以及项目约定。请只按照仓库内真实可见的内容提出修改建议或补充说明。
- **代码组织**: 本项目是一个 Java 后端(多模块 Maven+ Vue3 前端Vite的大型应用。
- 后端主模块目录:`openhis-server-new/`(顶层为 `pom`,包含多个子模块)。关键子模块示例:`openhis-application`, `openhis-domain`, `openhis-common`, `core-*` 系列。
- 前端目录:`openhis-ui-vue3/`Vite + Vue 3使用 Pinia、Element Plus 等)。
- **大局观Big Picture**: 后端以 Spring BootJava 17实现使用多模块 Maven 管理公共库与业务模块;前端由单独仓库目录通过 Vite 构建并以环境变量(`VITE_APP_BASE_API`)与后端交互。后端扫描 `com.core``com.openhis` 包(见 `OpenHisApplication.java`),启动类位于:`openhis-server-new/openhis-application/src/main/java/com/openhis/OpenHisApplication.java`
- **运行/构建Windows PowerShell 示例)**:
- 构建后端(从仓库根执行):
```powershell
cd openhis-server-new
mvn clean package -DskipTests
```
- 仅运行后端模块(开发时常用):
```powershell
cd openhis-server-new/openhis-application
mvn spring-boot:run
# 或在 IDE 中运行 `com.openhis.OpenHisApplication` 的 main()
```
- 前端启动与构建(需要 Node.js v16.x仓库 README 建议 v16.15
```powershell
cd openhis-ui-vue3
npm install
npm run dev # 本地开发(热重载)
npm run build:prod # 生产构建
```
- **环境与配置**:
- 后端配置:`openhis-server-new/openhis-application/src/main/resources/application.yml`数据库、端口、profile 等。README 还提及 `application-druid.yml`(若存在请优先查看)。
- 前端配置:多个 `.env.*` 文件(例如 `.env.development`, `.env.staging`, `.env.production`),关键变量:`VITE_APP_BASE_API`(例如 `/dev-api`),前端通过 `import.meta.env.VITE_APP_BASE_API` 拼接后端 URL`src/utils/request.js`、多个视图与组件)。
- **重要约定 / 模式**:
- 后端采用 Java 17、Spring Boot 2.5.x 家族,父 POM在 `openhis-server-new/pom.xml` 定义。常用依赖版本在该 POM 的 `<properties>` 中集中维护。
- 模块间以 Maven 模块依赖与 `com.core` / `com.openhis` 包名分层(见 `pom.xml``<modules>``dependencyManagement`)。
- 前端通过 Vite 插件配置(`openhis-ui-vue3/vite/plugins`)管理 svg、自动导入等。UI 框架为 Element Plus状态管理为 Pinia。
- **集成点 & 外部依赖**:
- 数据库PostgreSQLREADME 建议 v16.2),仓库根含一个大型初始化 SQL`数据库初始话脚本请使用navicat16版本导入.sql`,用于初始化表与演示数据。
- 缓存/会话Redis需自行配置
- 其他Flowable工作流Druid连接池监控第三方服务通过特定配置类例如 `YbServiceConfig``OpenHisApplication` 中启用)。
- **调试与常见位置**:
- 启动类:`openhis-server-new/openhis-application/src/main/java/com/openhis/OpenHisApplication.java`
- 全局配置:`openhis-server-new/openhis-application/src/main/resources/``application.yml`、profile 文件等)。
- 前端入口:`openhis-ui-vue3/src/main.js`、路由在 `openhis-ui-vue3/src/router/index.js`
- API 文档与监控路径(通常由后端暴露并被前端访问):
- Swagger UI: `<VITE_APP_BASE_API>/swagger-ui/index.html`(前端视图在 `src/views/tool/swagger/index.vue`)。
- Druid: `<VITE_APP_BASE_API>/druid/login.html`(见前端相关视图引用)。
- **为 AI 代理的具体建议(如何安全、有效地修改代码)**:
- 修改后端时:优先在子模块(例如 `openhis-application`)本地运行 `mvn spring-boot:run` 验证启动与基础 API大量改动前先执行 `mvn -T1C -DskipTests clean package` 在 CI 环境上验证构建(本地机器也可用)。
- 修改前端时:检查/调整对应 `.env.*` 文件中的 `VITE_APP_BASE_API`,使用 `npm run dev` 本地联调后端接口(可通过代理或将 `VITE_APP_BASE_API` 指向后端地址)。
- 修改数据库结构或 seed请参考仓库根的 SQL 初始化脚本,任何 DDL/数据变更需同步该脚本并通知数据库管理员/运维。
- **举例(常见任务示例)**:
- 本地联调前端 + 后端PowerShell:
```powershell
# 启动后端
cd openhis-server-new/openhis-application
mvn spring-boot:run
# 启动前端(另开终端)
cd openhis-ui-vue3
npm run dev
```
如需我把这些内容合并为更短或更详细的版本,或把其中某部分(例如后端模块依赖关系图、关键 Java 包说明)展开,请告诉我要增强哪一节。

5
.gitignore vendored
View File

@@ -58,3 +58,8 @@
PostgreSQL/openHis_DB设计书.xlsx PostgreSQL/openHis_DB设计书.xlsx
public.sql public.sql
发版记录/2025-11-12/~$发版日志.docx
发版记录/2025-11-12/~$S-管理系统-调价管理.docx
发版记录/2025-11-12/发版日志.docx
.gitignore
openhis-server-new/openhis-application/src/main/resources/application-dev.yml

File diff suppressed because one or more lines are too long

View File

@@ -8,7 +8,7 @@
天天开源的前⾝是新致开源最早于2022年6⽉发布开源医疗软件平台OpenHIS.org.cn于2023年6⽉发布开源企业软件平台OpenCOM.com.cn。2025年7⽉新致开源品牌更新为天天开源我们始终秉持开源、专业、协作的理念致⼒于为医疗、教育、中⼩企业等⾏业提供优质的开源解决⽅案。 天天开源的前⾝是新致开源最早于2022年6⽉发布开源医疗软件平台OpenHIS.org.cn于2023年6⽉发布开源企业软件平台OpenCOM.com.cn。2025年7⽉新致开源品牌更新为天天开源我们始终秉持开源、专业、协作的理念致⼒于为医疗、教育、中⼩企业等⾏业提供优质的开源解决⽅案。
了解我们https://open.tntlinking.com/about?site=gitee 了解我们ahttps://open.tntlinking.com/about?site=gitee
## 💾【部署包下载】 ## 💾【部署包下载】
@@ -16,10 +16,10 @@
## 📚【支持文档】 ## 📚【支持文档】
技术支持资源https://open.tntlinking.com/resource/technicalSupport?site=gitee 技术支持资源https://open.tntlinking.com/resource/openProductDoc?site=gitee
(含演示环境、操作手册、部署手册、开发手册、常见问题等) (含演示环境、操作手册、部署手册、开发手册、常见问题等)
产品介绍https://open.tntlinking.com/resource/industryKnowledge?site=gitee 产品介绍https://open.tntlinking.com/resource/productPresentation?site=gitee
操作教程https://open.tntlinking.com/resource/operationTutorial?site=gitee 操作教程https://open.tntlinking.com/resource/operationTutorial?site=gitee

View File

@@ -0,0 +1,39 @@
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
public class TestDeleteInspectionType {
public static void main(String[] args) {
try {
// 测试删除ID为1的检验类型
long inspectionTypeId = 1;
URL url = new URL("http://localhost:8080/system/inspection-type/" + inspectionTypeId);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("DELETE");
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Accept", "application/json");
// 发送请求
int responseCode = connection.getResponseCode();
System.out.println("响应代码: " + responseCode);
// 读取响应
Scanner scanner;
if (responseCode >= 200 && responseCode < 300) {
scanner = new Scanner(connection.getInputStream());
} else {
scanner = new Scanner(connection.getErrorStream());
}
String response = scanner.useDelimiter("\\A").next();
System.out.println("响应内容: " + response);
scanner.close();
connection.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}

View File

@@ -0,0 +1,45 @@
package com.openhis.tool;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/**
* Database field adder tool
*/
public class DatabaseFieldAdder {
public static void main(String[] args) {
String url = "jdbc:postgresql://192.168.110.252:15432/postgresql?currentSchema=public";
String username = "postgresql";
String password = "Jchl1528";
try (Connection conn = DriverManager.getConnection(url, username, password);
Statement stmt = conn.createStatement()) {
// Check if field exists
String checkSql = "SELECT column_name FROM information_schema.columns " +
"WHERE table_name = 'adm_healthcare_service' AND column_name = 'practitioner_id'";
boolean fieldExists = stmt.executeQuery(checkSql).next();
if (!fieldExists) {
// Add field
String addSql = "ALTER TABLE \"public\".\"adm_healthcare_service\" " +
"ADD COLUMN \"practitioner_id\" int8";
stmt.execute(addSql);
// Add comment
String commentSql = "COMMENT ON COLUMN \"public\".\"adm_healthcare_service\".\"practitioner_id\" IS 'practitioner_id'";
stmt.execute(commentSql);
System.out.println("Successfully added practitioner_id field to adm_healthcare_service table");
} else {
System.out.println("practitioner_id field already exists");
}
} catch (Exception e) {
System.err.println("Error executing SQL: " + e.getMessage());
e.printStackTrace();
}
}
}

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent> <parent>
<groupId>com.openhis</groupId> <groupId>com.openhis</groupId>
<artifactId>openhis-server</artifactId> <artifactId>openhis-server</artifactId>
@@ -25,6 +25,11 @@
<artifactId>spring-boot-devtools</artifactId> <artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 表示依赖不会传递 --> <optional>true</optional> <!-- 表示依赖不会传递 -->
</dependency> </dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- swagger3--> <!-- swagger3-->
<dependency> <dependency>
@@ -38,9 +43,10 @@
<artifactId>swagger-models</artifactId> <artifactId>swagger-models</artifactId>
</dependency> </dependency>
<!-- Mysql驱动包 -->
<dependency> <dependency>
<groupId>com.mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-j</artifactId> <artifactId>mysql-connector-java</artifactId>
</dependency> </dependency>
<!-- 核心模块--> <!-- 核心模块-->
@@ -66,45 +72,12 @@
<groupId>com.core</groupId> <groupId>com.core</groupId>
<artifactId>core-flowable</artifactId> <artifactId>core-flowable</artifactId>
</dependency> </dependency>
<!-- 通用工具-->
<dependency>
<groupId>com.core</groupId>
<artifactId>core-common</artifactId>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<!-- <build>-->
<!-- <plugins>-->
<!-- <plugin>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
<!-- <version>2.5.15</version>-->
<!-- <configuration>-->
<!-- <fork>true</fork> &lt;!&ndash; 如果没有该配置devtools不会生效 &ndash;&gt;-->
<!-- </configuration>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <goals>-->
<!-- <goal>repackage</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- </plugin>-->
<!-- <plugin>-->
<!-- <groupId>org.apache.maven.plugins</groupId>-->
<!-- <artifactId>maven-war-plugin</artifactId>-->
<!-- <version>3.1.0</version>-->
<!-- <configuration>-->
<!-- <failOnMissingWebXml>false</failOnMissingWebXml>-->
<!-- <warName>${project.artifactId}</warName>-->
<!-- </configuration>-->
<!-- </plugin>-->
<!-- <plugin>-->
<!-- <groupId>org.apache.maven.plugins</groupId>-->
<!-- <artifactId>maven-compiler-plugin</artifactId>-->
<!-- <configuration>-->
<!-- <source>8</source>-->
<!-- <target>8</target>-->
<!-- </configuration>-->
<!-- </plugin>-->
<!-- </plugins>-->
<!-- <finalName>${project.artifactId}</finalName>-->
<!-- </build>-->
</project> </project>

View File

@@ -1,18 +1,5 @@
package com.core.web.controller.common; package com.core.web.controller.common;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.FastByteArrayOutputStream;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import com.core.common.config.CoreConfig; import com.core.common.config.CoreConfig;
import com.core.common.constant.CacheConstants; import com.core.common.constant.CacheConstants;
import com.core.common.constant.Constants; import com.core.common.constant.Constants;
@@ -22,6 +9,17 @@ import com.core.common.utils.sign.Base64;
import com.core.common.utils.uuid.IdUtils; import com.core.common.utils.uuid.IdUtils;
import com.core.system.service.ISysConfigService; import com.core.system.service.ISysConfigService;
import com.google.code.kaptcha.Producer; import com.google.code.kaptcha.Producer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.FastByteArrayOutputStream;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
/** /**
* 验证码操作处理 * 验证码操作处理

View File

@@ -1,11 +1,12 @@
package com.core.web.controller.common; package com.core.web.controller.common;
import java.util.ArrayList; import com.core.common.config.CoreConfig;
import java.util.List; import com.core.common.constant.Constants;
import com.core.common.core.domain.AjaxResult;
import javax.servlet.http.HttpServletRequest; import com.core.common.utils.StringUtils;
import javax.servlet.http.HttpServletResponse; import com.core.common.utils.file.FileUploadUtils;
import com.core.common.utils.file.FileUtils;
import com.core.framework.config.ServerConfig;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -16,13 +17,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import com.core.common.config.CoreConfig; import javax.servlet.http.HttpServletRequest;
import com.core.common.constant.Constants; import javax.servlet.http.HttpServletResponse;
import com.core.common.core.domain.AjaxResult; import java.util.ArrayList;
import com.core.common.utils.StringUtils; import java.util.List;
import com.core.common.utils.file.FileUploadUtils;
import com.core.common.utils.file.FileUtils;
import com.core.framework.config.ServerConfig;
/** /**
* 通用请求处理 * 通用请求处理

View File

@@ -1,13 +1,5 @@
package com.core.web.controller.common; package com.core.web.controller.common;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.core.common.annotation.Anonymous; import com.core.common.annotation.Anonymous;
import com.core.common.config.CoreConfig; import com.core.common.config.CoreConfig;
import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.AjaxResult;
@@ -16,6 +8,13 @@ import com.core.common.utils.StringUtils;
import com.core.common.utils.file.FileUploadUtils; import com.core.common.utils.file.FileUploadUtils;
import com.core.common.utils.file.FileUtils; import com.core.common.utils.file.FileUtils;
import com.core.framework.config.ServerConfig; import com.core.framework.config.ServerConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
@RestController @RestController
@RequestMapping("/file") @RequestMapping("/file")

View File

@@ -1,17 +1,16 @@
package com.core.web.controller.monitor; package com.core.web.controller.monitor;
import java.util.*; import com.core.common.constant.CacheConstants;
import com.core.common.core.domain.AjaxResult;
import com.core.common.utils.StringUtils;
import com.core.system.domain.SysCache;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.core.common.constant.CacheConstants; import java.util.*;
import com.core.common.core.domain.AjaxResult;
import com.core.common.utils.StringUtils;
import com.core.system.domain.SysCache;
/** /**
* 缓存监控 * 缓存监控

View File

@@ -1,13 +1,12 @@
package com.core.web.controller.monitor; package com.core.web.controller.monitor;
import com.core.common.core.domain.AjaxResult;
import com.core.framework.web.domain.Server;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.core.common.core.domain.AjaxResult;
import com.core.framework.web.domain.Server;
/** /**
* 服务器监控 * 服务器监控
* *

View File

@@ -1,13 +1,5 @@
package com.core.web.controller.monitor; package com.core.web.controller.monitor;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.core.common.annotation.Log; import com.core.common.annotation.Log;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.AjaxResult;
@@ -17,15 +9,23 @@ import com.core.common.utils.poi.ExcelUtil;
import com.core.framework.web.service.SysPasswordService; import com.core.framework.web.service.SysPasswordService;
import com.core.system.domain.SysLogininfor; import com.core.system.domain.SysLogininfor;
import com.core.system.service.ISysLogininforService; import com.core.system.service.ISysLogininforService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/** /**
* 系统访问记录 *
* *
* @author system * @author system
*/ */
@RestController @RestController
@RequestMapping("/monitor/logininfor") @RequestMapping("/monitor/logininfor")
public class SysLogininforController extends BaseController { public class SysLogininforController extends BaseController {
@Autowired @Autowired
private ISysLogininforService logininforService; private ISysLogininforService logininforService;

View File

@@ -1,13 +1,5 @@
package com.core.web.controller.monitor; package com.core.web.controller.monitor;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.core.common.annotation.Log; import com.core.common.annotation.Log;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.AjaxResult;
@@ -16,6 +8,12 @@ import com.core.common.enums.BusinessType;
import com.core.common.utils.poi.ExcelUtil; import com.core.common.utils.poi.ExcelUtil;
import com.core.system.domain.SysOperLog; import com.core.system.domain.SysOperLog;
import com.core.system.service.ISysOperLogService; import com.core.system.service.ISysOperLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/** /**
* 操作日志记录 * 操作日志记录

View File

@@ -1,14 +1,5 @@
package com.core.web.controller.monitor; package com.core.web.controller.monitor;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.core.common.annotation.Log; import com.core.common.annotation.Log;
import com.core.common.constant.CacheConstants; import com.core.common.constant.CacheConstants;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
@@ -20,6 +11,14 @@ import com.core.common.enums.BusinessType;
import com.core.common.utils.StringUtils; import com.core.common.utils.StringUtils;
import com.core.system.domain.SysUserOnline; import com.core.system.domain.SysUserOnline;
import com.core.system.service.ISysUserOnlineService; import com.core.system.service.ISysUserOnlineService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
/** /**
* 在线用户监控 * 在线用户监控

View File

@@ -1,14 +1,5 @@
package com.core.web.controller.system; package com.core.web.controller.system;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.core.common.annotation.Log; import com.core.common.annotation.Log;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.AjaxResult;
@@ -17,6 +8,13 @@ import com.core.common.enums.BusinessType;
import com.core.common.utils.poi.ExcelUtil; import com.core.common.utils.poi.ExcelUtil;
import com.core.system.domain.SysConfig; import com.core.system.domain.SysConfig;
import com.core.system.service.ISysConfigService; import com.core.system.service.ISysConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/** /**
* 参数配置 信息操作处理 * 参数配置 信息操作处理

View File

@@ -1,13 +1,5 @@
package com.core.web.controller.system; package com.core.web.controller.system;
import java.util.List;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.core.common.annotation.Log; import com.core.common.annotation.Log;
import com.core.common.constant.UserConstants; import com.core.common.constant.UserConstants;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
@@ -16,6 +8,13 @@ import com.core.common.core.domain.entity.SysDept;
import com.core.common.enums.BusinessType; import com.core.common.enums.BusinessType;
import com.core.common.utils.StringUtils; import com.core.common.utils.StringUtils;
import com.core.system.service.ISysDeptService; import com.core.system.service.ISysDeptService;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* 部门信息 * 部门信息

View File

@@ -1,15 +1,5 @@
package com.core.web.controller.system; package com.core.web.controller.system;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.core.common.annotation.Log; import com.core.common.annotation.Log;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.AjaxResult;
@@ -20,6 +10,14 @@ import com.core.common.utils.StringUtils;
import com.core.common.utils.poi.ExcelUtil; import com.core.common.utils.poi.ExcelUtil;
import com.core.system.service.ISysDictDataService; import com.core.system.service.ISysDictDataService;
import com.core.system.service.ISysDictTypeService; import com.core.system.service.ISysDictTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/** /**
* 数据字典信息 * 数据字典信息
@@ -62,11 +60,12 @@ public class SysDictDataController extends BaseController {
} }
/** /**
* 根据字典类型查询字典数据信息 * 根据字典类型查询字典数据信息(支持拼音搜索)
*/ */
@GetMapping(value = "/type/{dictType}") @GetMapping(value = "/type/{dictType}")
public AjaxResult dictType(@PathVariable String dictType) { public AjaxResult dictType(@PathVariable String dictType,
List<SysDictData> data = dictTypeService.selectDictDataByType(dictType); @RequestParam(value = "searchKey", required = false) String searchKey) {
List<SysDictData> data = dictTypeService.selectDictDataByType(dictType, searchKey);
if (StringUtils.isNull(data)) { if (StringUtils.isNull(data)) {
data = new ArrayList<SysDictData>(); data = new ArrayList<SysDictData>();
} }

View File

@@ -1,14 +1,5 @@
package com.core.web.controller.system; package com.core.web.controller.system;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.core.common.annotation.Log; import com.core.common.annotation.Log;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.AjaxResult;
@@ -17,6 +8,13 @@ import com.core.common.core.page.TableDataInfo;
import com.core.common.enums.BusinessType; import com.core.common.enums.BusinessType;
import com.core.common.utils.poi.ExcelUtil; import com.core.common.utils.poi.ExcelUtil;
import com.core.system.service.ISysDictTypeService; import com.core.system.service.ISysDictTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/** /**
* 数据字典信息 * 数据字典信息

View File

@@ -1,11 +1,10 @@
package com.core.web.controller.system; package com.core.web.controller.system;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.core.common.config.CoreConfig; import com.core.common.config.CoreConfig;
import com.core.common.utils.StringUtils; import com.core.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* 首页 * 首页

View File

@@ -1,14 +1,5 @@
package com.core.web.controller.system; package com.core.web.controller.system;
import java.util.List;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.core.common.constant.Constants; import com.core.common.constant.Constants;
import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.AjaxResult;
import com.core.common.core.domain.entity.SysMenu; import com.core.common.core.domain.entity.SysMenu;
@@ -20,6 +11,14 @@ import com.core.framework.web.service.SysLoginService;
import com.core.framework.web.service.SysPermissionService; import com.core.framework.web.service.SysPermissionService;
import com.core.framework.web.service.TokenService; import com.core.framework.web.service.TokenService;
import com.core.system.service.ISysMenuService; import com.core.system.service.ISysMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Set;
/**已评审 /**已评审
* 登录验证 * 登录验证

View File

@@ -1,12 +1,5 @@
package com.core.web.controller.system; package com.core.web.controller.system;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.core.common.annotation.Log; import com.core.common.annotation.Log;
import com.core.common.constant.UserConstants; import com.core.common.constant.UserConstants;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
@@ -15,6 +8,12 @@ import com.core.common.core.domain.entity.SysMenu;
import com.core.common.enums.BusinessType; import com.core.common.enums.BusinessType;
import com.core.common.utils.StringUtils; import com.core.common.utils.StringUtils;
import com.core.system.service.ISysMenuService; import com.core.system.service.ISysMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* 菜单信息 * 菜单信息

View File

@@ -1,12 +1,5 @@
package com.core.web.controller.system; package com.core.web.controller.system;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.core.common.annotation.Log; import com.core.common.annotation.Log;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.AjaxResult;
@@ -14,6 +7,12 @@ import com.core.common.core.page.TableDataInfo;
import com.core.common.enums.BusinessType; import com.core.common.enums.BusinessType;
import com.core.system.domain.SysNotice; import com.core.system.domain.SysNotice;
import com.core.system.service.ISysNoticeService; import com.core.system.service.ISysNoticeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* 公告 信息操作处理 * 公告 信息操作处理

View File

@@ -1,14 +1,5 @@
package com.core.web.controller.system; package com.core.web.controller.system;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.core.common.annotation.Log; import com.core.common.annotation.Log;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.AjaxResult;
@@ -17,6 +8,13 @@ import com.core.common.enums.BusinessType;
import com.core.common.utils.poi.ExcelUtil; import com.core.common.utils.poi.ExcelUtil;
import com.core.system.domain.SysPost; import com.core.system.domain.SysPost;
import com.core.system.service.ISysPostService; import com.core.system.service.ISysPostService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/** /**
* 岗位信息操作处理 * 岗位信息操作处理

View File

@@ -1,9 +1,5 @@
package com.core.web.controller.system; package com.core.web.controller.system;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.core.common.annotation.Log; import com.core.common.annotation.Log;
import com.core.common.config.CoreConfig; import com.core.common.config.CoreConfig;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
@@ -17,6 +13,9 @@ import com.core.common.utils.file.FileUploadUtils;
import com.core.common.utils.file.MimeTypeUtils; import com.core.common.utils.file.MimeTypeUtils;
import com.core.framework.web.service.TokenService; import com.core.framework.web.service.TokenService;
import com.core.system.service.ISysUserService; import com.core.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
/** /**
* 个人信息 业务处理 * 个人信息 业务处理

View File

@@ -1,16 +1,15 @@
package com.core.web.controller.system; package com.core.web.controller.system;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.AjaxResult;
import com.core.common.core.domain.model.RegisterBody; import com.core.common.core.domain.model.RegisterBody;
import com.core.common.utils.StringUtils; import com.core.common.utils.StringUtils;
import com.core.framework.web.service.SysRegisterService; import com.core.framework.web.service.SysRegisterService;
import com.core.system.service.ISysConfigService; import com.core.system.service.ISysConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
/** /**
* 注册验证 * 注册验证

View File

@@ -1,14 +1,5 @@
package com.core.web.controller.system; package com.core.web.controller.system;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.core.common.annotation.Log; import com.core.common.annotation.Log;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.AjaxResult;
@@ -26,6 +17,13 @@ import com.core.system.domain.SysUserRole;
import com.core.system.service.ISysDeptService; import com.core.system.service.ISysDeptService;
import com.core.system.service.ISysRoleService; import com.core.system.service.ISysRoleService;
import com.core.system.service.ISysUserService; import com.core.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/** /**
* 角色信息 * 角色信息

View File

@@ -1,11 +1,5 @@
package com.core.web.controller.system; package com.core.web.controller.system;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.core.common.annotation.Anonymous; import com.core.common.annotation.Anonymous;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
@@ -13,6 +7,11 @@ import com.core.common.core.domain.R;
import com.core.common.core.domain.entity.SysUser; import com.core.common.core.domain.entity.SysUser;
import com.core.system.domain.SysTenant; import com.core.system.domain.SysTenant;
import com.core.system.service.ISysTenantService; import com.core.system.service.ISysTenantService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* 租户信息controller * 租户信息controller

View File

@@ -1,16 +1,15 @@
package com.core.web.controller.system; package com.core.web.controller.system;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.core.system.domain.dto.SaveTenantOptionDetailDto; import com.core.system.domain.dto.SaveTenantOptionDetailDto;
import com.core.system.domain.dto.TenantOptionDto; import com.core.system.domain.dto.TenantOptionDto;
import com.core.system.service.ISysTenantOptionService; import com.core.system.service.ISysTenantOptionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* 租户配置项信息controller * 租户配置项信息controller

View File

@@ -1,17 +1,5 @@
package com.core.web.controller.system; package com.core.web.controller.system;
import java.util.List;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.core.common.annotation.Log; import com.core.common.annotation.Log;
import com.core.common.core.controller.BaseController; import com.core.common.core.controller.BaseController;
import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.AjaxResult;
@@ -27,6 +15,16 @@ import com.core.system.service.ISysDeptService;
import com.core.system.service.ISysPostService; import com.core.system.service.ISysPostService;
import com.core.system.service.ISysRoleService; import com.core.system.service.ISysRoleService;
import com.core.system.service.ISysUserService; import com.core.system.service.ISysUserService;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* 用户信息 * 用户信息

View File

@@ -1,18 +1,16 @@
package com.core.web.controller.tool; package com.core.web.controller.tool;
import com.core.common.core.controller.BaseController;
import com.core.common.core.domain.R;
import com.core.common.utils.StringUtils;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.springframework.web.bind.annotation.*;
import com.core.common.core.controller.BaseController;
import com.core.common.core.domain.R;
import com.core.common.utils.StringUtils;
import io.swagger.annotations.*;
/** /**
* swagger 用户测试方法 * swagger 用户测试方法
* *

View File

@@ -1,17 +1,12 @@
package com.core.web.core.config; package com.core.web.core.config;
import java.util.ArrayList; import com.core.common.config.CoreConfig;
import java.util.List; import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import com.core.common.config.CoreConfig;
import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.builders.RequestHandlerSelectors;
@@ -20,6 +15,9 @@ import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext; import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.spring.web.plugins.Docket;
import java.util.ArrayList;
import java.util.List;
/** /**
* Swagger2的接口配置 * Swagger2的接口配置
* *

View File

@@ -3,6 +3,7 @@ package com.core.web.util;
import com.core.common.core.domain.model.LoginUser; import com.core.common.core.domain.model.LoginUser;
import com.core.common.enums.TenantOptionDict; import com.core.common.enums.TenantOptionDict;
import com.core.common.utils.SecurityUtils; import com.core.common.utils.SecurityUtils;
import com.core.common.utils.StringUtils;
/** /**
* 租户配置工具类 * 租户配置工具类
@@ -30,7 +31,12 @@ public class TenantOptionUtil {
if (loginUser.getOptionMap() == null || loginUser.getOptionMap().isEmpty()) { if (loginUser.getOptionMap() == null || loginUser.getOptionMap().isEmpty()) {
return null; return null;
} }
return loginUser.getOptionMap().get(optionDict.getCode()); // return loginUser.getOptionMap().get(optionDict.getCode());
// TODO:2025/10/17 李永兴提出的sys_option切换TenantOption临时防止报错方案最晚2025年11月底删除
String newValue = loginUser.getOptionMap().get(optionDict.getCode());
String oldValue = loginUser.getOptionJson().getString(optionDict.getCode());
return StringUtils.isEmpty(newValue) ? oldValue : newValue;
} }
} }

View File

@@ -16,6 +16,31 @@
common通用工具 common通用工具
</description> </description>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>17</source>
<target>17</target>
<encoding>UTF-8</encoding>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.34</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
<dependencies> <dependencies>
<!-- mybatis-plus 增强CRUD --> <!-- mybatis-plus 增强CRUD -->
@@ -54,6 +79,12 @@
<artifactId>pagehelper-spring-boot-starter</artifactId> <artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency> </dependency>
<!-- jsr250 annotations -->
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</dependency>
<!-- 自定义验证注解 --> <!-- 自定义验证注解 -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
@@ -77,10 +108,6 @@
<groupId>com.alibaba.fastjson2</groupId> <groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId> <artifactId>fastjson2</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<!-- io常用工具类 --> <!-- io常用工具类 -->
<dependency> <dependency>
@@ -140,6 +167,12 @@
<dependency> <dependency>
<groupId>com.belerweb</groupId> <groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId> <artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@@ -1,9 +1,9 @@
package com.core.common.annotation; package com.core.common.annotation;
import java.lang.annotation.*;
import com.core.common.enums.DataSourceType; import com.core.common.enums.DataSourceType;
import java.lang.annotation.*;
/** /**
* 自定义多数据源切换注解 * 自定义多数据源切换注解
* *

View File

@@ -1,16 +1,15 @@
package com.core.common.annotation; package com.core.common.annotation;
import com.core.common.utils.poi.ExcelHandlerAdapter;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
import java.math.BigDecimal; import java.math.BigDecimal;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import com.core.common.utils.poi.ExcelHandlerAdapter;
/** /**
* 自定义导出Excel数据注解 * 自定义导出Excel数据注解
* *

View File

@@ -0,0 +1,38 @@
package com.core.common.annotation;
import java.lang.annotation.*;
/**
* Excel额外表头信息注解
*
* @author swb
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ExcelExtra {
/**
* 表头名称
*/
String name();
/**
* 日期格式yyyy-MM-dd HH:mm:ss
*/
String dateFormat() default "";
/**
* 排序(越小越靠前)
*/
int sort() default 0;
/**
* 默认值
*/
String defaultValue() default "";
/**
* 是否导出
*/
boolean isExport() default true;
}

View File

@@ -1,10 +1,10 @@
package com.core.common.annotation; package com.core.common.annotation;
import java.lang.annotation.*;
import com.core.common.enums.BusinessType; import com.core.common.enums.BusinessType;
import com.core.common.enums.OperatorType; import com.core.common.enums.OperatorType;
import java.lang.annotation.*;
/** /**
* 自定义操作日志记录注解 * 自定义操作日志记录注解
* *

View File

@@ -1,10 +1,10 @@
package com.core.common.annotation; package com.core.common.annotation;
import java.lang.annotation.*;
import com.core.common.constant.CacheConstants; import com.core.common.constant.CacheConstants;
import com.core.common.enums.LimitType; import com.core.common.enums.LimitType;
import java.lang.annotation.*;
/** /**
* 限流注解 * 限流注解
* *

View File

@@ -1,15 +1,15 @@
package com.core.common.annotation; package com.core.common.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import com.core.common.config.serializer.SensitiveJsonSerializer; import com.core.common.config.serializer.SensitiveJsonSerializer;
import com.core.common.enums.DesensitizedType; import com.core.common.enums.DesensitizedType;
import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** /**
* 数据脱敏注解 * 数据脱敏注解
* *

View File

@@ -1,8 +1,5 @@
package com.core.common.config.serializer; package com.core.common.config.serializer;
import java.io.IOException;
import java.util.Objects;
import com.core.common.annotation.Sensitive; import com.core.common.annotation.Sensitive;
import com.core.common.core.domain.model.LoginUser; import com.core.common.core.domain.model.LoginUser;
import com.core.common.enums.DesensitizedType; import com.core.common.enums.DesensitizedType;
@@ -14,6 +11,9 @@ import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.ContextualSerializer; import com.fasterxml.jackson.databind.ser.ContextualSerializer;
import java.io.IOException;
import java.util.Objects;
/** /**
* 数据脱敏序列化过滤 * 数据脱敏序列化过滤
* *

View File

@@ -1,9 +1,9 @@
package com.core.common.constant; package com.core.common.constant;
import java.util.Locale;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import java.util.Locale;
/** /**
* 通用常量信息 * 通用常量信息
* *

View File

@@ -1,14 +1,5 @@
package com.core.common.core.controller; package com.core.common.core.controller;
import java.beans.PropertyEditorSupport;
import java.util.Date;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import com.core.common.constant.HttpStatus; import com.core.common.constant.HttpStatus;
import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.AjaxResult;
import com.core.common.core.domain.model.LoginUser; import com.core.common.core.domain.model.LoginUser;
@@ -22,6 +13,14 @@ import com.core.common.utils.StringUtils;
import com.core.common.utils.sql.SqlUtil; import com.core.common.utils.sql.SqlUtil;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import java.beans.PropertyEditorSupport;
import java.util.Date;
import java.util.List;
/** /**
* web层通用数据处理 * web层通用数据处理

View File

@@ -1,11 +1,11 @@
package com.core.common.core.domain; package com.core.common.core.domain;
import java.util.HashMap;
import java.util.Objects;
import com.core.common.constant.HttpStatus; import com.core.common.constant.HttpStatus;
import com.core.common.utils.StringUtils; import com.core.common.utils.StringUtils;
import java.util.HashMap;
import java.util.Objects;
/** /**
* 操作消息提醒 * 操作消息提醒
* *

View File

@@ -1,15 +1,15 @@
package com.core.common.core.domain; package com.core.common.core.domain;
import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/** /**
* Entity基类 * Entity基类
* *

View File

@@ -1,16 +1,15 @@
package com.core.common.core.domain; package com.core.common.core.domain;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/** /**
* Entity基类 * Entity基类
* *

View File

@@ -1,9 +1,9 @@
package com.core.common.core.domain; package com.core.common.core.domain;
import java.io.Serializable;
import com.core.common.constant.HttpStatus; import com.core.common.constant.HttpStatus;
import java.io.Serializable;
/** /**
* 响应信息主体 * 响应信息主体
* *

View File

@@ -1,13 +1,13 @@
package com.core.common.core.domain; package com.core.common.core.domain;
import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
import com.core.common.core.domain.entity.SysDept; import com.core.common.core.domain.entity.SysDept;
import com.core.common.core.domain.entity.SysMenu; import com.core.common.core.domain.entity.SysMenu;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* Treeselect树结构实体类 * Treeselect树结构实体类
* *

View File

@@ -1,17 +1,15 @@
package com.core.common.core.domain.entity; package com.core.common.core.domain.entity;
import java.util.ArrayList; import com.core.common.core.domain.BaseEntity;
import java.util.List; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.Email; import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import java.util.ArrayList;
import org.apache.commons.lang3.builder.ToStringBuilder; import java.util.List;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.core.common.core.domain.BaseEntity;
/** /**
* 部门表 sys_dept * 部门表 sys_dept

View File

@@ -1,15 +1,14 @@
package com.core.common.core.domain.entity; package com.core.common.core.domain.entity;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.core.common.annotation.Excel; import com.core.common.annotation.Excel;
import com.core.common.annotation.Excel.ColumnType; import com.core.common.annotation.Excel.ColumnType;
import com.core.common.constant.UserConstants; import com.core.common.constant.UserConstants;
import com.core.common.core.domain.BaseEntity; import com.core.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/** /**
* 字典数据表 sys_dict_data * 字典数据表 sys_dict_data
@@ -53,6 +52,9 @@ public class SysDictData extends BaseEntity {
@Excel(name = "状态", readConverterExp = "0=正常,1=停用") @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status; private String status;
/** 拼音首字母 */
private String pyStr;
public Long getDictCode() { public Long getDictCode() {
return dictCode; return dictCode;
} }
@@ -136,13 +138,21 @@ public class SysDictData extends BaseEntity {
this.status = status; this.status = status;
} }
public String getPyStr() {
return pyStr;
}
public void setPyStr(String pyStr) {
this.pyStr = pyStr;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("dictCode", getDictCode()) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("dictCode", getDictCode())
.append("dictSort", getDictSort()).append("dictLabel", getDictLabel()).append("dictValue", getDictValue()) .append("dictSort", getDictSort()).append("dictLabel", getDictLabel()).append("dictValue", getDictValue())
.append("dictType", getDictType()).append("cssClass", getCssClass()).append("listClass", getListClass()) .append("dictType", getDictType()).append("cssClass", getCssClass()).append("listClass", getListClass())
.append("isDefault", getIsDefault()).append("status", getStatus()).append("createBy", getCreateBy()) .append("isDefault", getIsDefault()).append("status", getStatus()).append("pyStr", getPyStr())
.append("createTime", getCreateTime()).append("updateBy", getUpdateBy()) .append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime()).append("remark", getRemark()).toString(); .append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
} }
} }

View File

@@ -1,15 +1,14 @@
package com.core.common.core.domain.entity; package com.core.common.core.domain.entity;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.core.common.annotation.Excel; import com.core.common.annotation.Excel;
import com.core.common.annotation.Excel.ColumnType; import com.core.common.annotation.Excel.ColumnType;
import com.core.common.core.domain.BaseEntity; import com.core.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
/** /**
* 字典类型表 sys_dict_type * 字典类型表 sys_dict_type

View File

@@ -1,16 +1,14 @@
package com.core.common.core.domain.entity; package com.core.common.core.domain.entity;
import java.util.ArrayList; import com.core.common.core.domain.BaseEntity;
import java.util.List; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import java.util.ArrayList;
import org.apache.commons.lang3.builder.ToStringBuilder; import java.util.List;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.core.common.core.domain.BaseEntity;
/** /**
* 菜单权限表 sys_menu * 菜单权限表 sys_menu

View File

@@ -1,17 +1,15 @@
package com.core.common.core.domain.entity; package com.core.common.core.domain.entity;
import java.util.Set;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.core.common.annotation.Excel; import com.core.common.annotation.Excel;
import com.core.common.annotation.Excel.ColumnType; import com.core.common.annotation.Excel.ColumnType;
import com.core.common.core.domain.BaseEntity; import com.core.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Set;
/** /**
* 角色表 sys_role * 角色表 sys_role

View File

@@ -1,16 +1,8 @@
package com.core.common.core.domain.entity; package com.core.common.core.domain.entity;
import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType;
import java.util.List;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.core.common.annotation.Excel; import com.core.common.annotation.Excel;
import com.core.common.annotation.Excel.ColumnType; import com.core.common.annotation.Excel.ColumnType;
import com.core.common.annotation.Excel.Type; import com.core.common.annotation.Excel.Type;
@@ -19,8 +11,15 @@ import com.core.common.core.domain.BaseEntity;
import com.core.common.xss.Xss; import com.core.common.xss.Xss;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data; import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;
/** /**
* 用户对象 sys_user * 用户对象 sys_user
@@ -32,6 +31,7 @@ public class SysUser extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 用户ID */ /** 用户ID */
@TableId(type = IdType.ASSIGN_ID)
@Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号") @Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号")
private Long userId; private Long userId;

View File

@@ -1,20 +1,18 @@
package com.core.common.core.domain.model; package com.core.common.core.domain.model;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.annotation.JSONField;
import com.core.common.core.domain.entity.SysRole;
import com.core.common.core.domain.entity.SysUser;
import lombok.Data;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import com.core.common.core.domain.entity.SysRole;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.annotation.JSONField;
import com.core.common.core.domain.entity.SysUser;
import lombok.Data;
/** /**
* 登录用户身份权限 * 登录用户身份权限
* *

View File

@@ -1,13 +1,16 @@
package com.core.common.core.redis; package com.core.common.core.redis;
import java.util.*;
import java.util.concurrent.TimeUnit;
import com.core.common.exception.UtilException; import com.core.common.exception.UtilException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.*; import org.springframework.data.redis.core.BoundSetOperations;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.*;
import java.util.concurrent.TimeUnit;
/** /**
* spring redis 工具类 * spring redis 工具类
* *

View File

@@ -1,10 +1,10 @@
package com.core.common.core.text; package com.core.common.core.text;
import com.core.common.utils.StringUtils;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import com.core.common.utils.StringUtils;
/** /**
* 字符集工具类 * 字符集工具类
* *

View File

@@ -1,5 +1,8 @@
package com.core.common.core.text; package com.core.common.core.text;
import com.core.common.utils.StringUtils;
import org.apache.commons.lang3.ArrayUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.BigInteger; import java.math.BigInteger;
import java.math.RoundingMode; import java.math.RoundingMode;
@@ -8,10 +11,6 @@ import java.nio.charset.Charset;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.util.Set; import java.util.Set;
import org.apache.commons.lang3.ArrayUtils;
import com.core.common.utils.StringUtils;
/** /**
* 类型转换器 * 类型转换器
* *

View File

@@ -0,0 +1,32 @@
package com.core.common.enums;
/**
* Desc: 调价类型枚举
* @Author raymond
* @Date 09:14 2025/10/16
* @return
**/
public enum AdjustPriceEnum {
MEDICINE(0, "药品"),
CONSUMABLES(1, "耗材"),
DIAGNOSIS(2, "诊疗"),
REGISTER(3, "挂号");
private final Integer code;
private final String info;
AdjustPriceEnum(Integer code, String info) {
this.code = code;
this.info = info;
}
public Integer getCode() {
return code;
}
public String getInfo() {
return info;
}
}

View File

@@ -1,10 +1,13 @@
package com.openhis.common.enums; package com.core.common.enums;
import lombok.Getter;
/** /**
* 删除标识 * 删除标识
* *
* @author system * @author system
*/ */
@Getter
public enum DelFlag { public enum DelFlag {
/** /**
* 未删除 * 未删除
@@ -25,6 +28,23 @@ public enum DelFlag {
this.info = info; this.info = info;
} }
public static DelFlag getByValue(Integer value) {
if (value == null) {
return null;
}
for (DelFlag val : values()) {
if (val.value.equals(value)) {
return val;
}
}
return null;
}
// 手动添加 getter 方法以解决 Lombok 兼容性问题
public Integer getValue() {
return value;
}
public String getCode() { public String getCode() {
return code; return code;
} }
@@ -32,20 +52,4 @@ public enum DelFlag {
public String getInfo() { public String getInfo() {
return info; return info;
} }
public Integer getValue() {
return value;
}
public static DelFlag getByValue(Integer value) {
if (value == null) {
return null;
}
for (DelFlag val : values()) {
if (val.getValue().equals(value)) {
return val;
}
}
return null;
}
} }

View File

@@ -1,26 +0,0 @@
package com.core.common.enums;
/**
* 删除标志
*
* @author system
*/
public enum DeleteFlag {
NOT_DELETED("0", "未删除"), DELETED("1", "已删除");
private final String code;
private final String info;
DeleteFlag(String code, String info) {
this.code = code;
this.info = info;
}
public String getCode() {
return code;
}
public String getInfo() {
return info;
}
}

View File

@@ -1,9 +1,9 @@
package com.core.common.enums; package com.core.common.enums;
import java.util.function.Function;
import com.core.common.utils.DesensitizedUtil; import com.core.common.utils.DesensitizedUtil;
import java.util.function.Function;
/** /**
* 脱敏类型 * 脱敏类型
* *

View File

@@ -1,10 +1,10 @@
package com.core.common.enums; package com.core.common.enums;
import org.springframework.lang.Nullable;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import org.springframework.lang.Nullable;
/** /**
* 请求方式 * 请求方式
* *

View File

@@ -6,98 +6,39 @@ package com.core.common.enums;
* @author system * @author system
*/ */
public enum TenantOptionDict { public enum TenantOptionDict {
/** /**
* 医院名称 * 医院名称
*/ */
HOSPITAL_NAME("hospitalName", "医院名称", 0), YB_HOSPITAL_NAME("hospitalName", "保-医院名称", 0),
/** /**
* 医疗机构等级 * 医保-医疗机构等级(3101接口)
*/ */
MEDINS_LV("medinsLv", "医疗机构等级", 1), YB_MEDINS_LV("medinsLv", "保_医疗机构等级", 1),
/** /**
* 定点医药机构编号 * 定点医药机构编号
*/ */
FIXMEDINS_CODE("fixmedinsCode", "定点医药机构编号", 2), YB_FIXMEDINS_CODE("fixmedinsCode", "医保_定点医药机构编号", 2),
/** /**
* 电子发票appid * 电子发票appid
*/ */
APP_ID("app_id", "电子发票appid", 3), EINVOICE_APP_ID("app_id", "电子发票-appid", 3),
/** /**
* 电子发票key * 电子发票key
*/ */
KEY("key", "电子发票key", 4), EINVOICE_KEY("key", "电子发票-key", 4),
/** /**
* 电子发票url * 电子发票url
*/ */
URL("url", "电子发票url", 5), EINVOICE_URL("url", "电子发票-url", 5),
/** /**
* 医保开关 * 医保开关
*/ */
YB_SWITCH("yb_switch", "医保开关", 6), YB_SWITCH("yb_switch", "医保开关", 6),
/**
* 客户端私钥
*/
CLI_PRV_KEY("cliPrvKey", "客户端私钥", 7),
/**
* 客户端公钥
*/
CLI_PUB_KEY("cliPubKey", "客户端公钥", 8),
/**
* 服务端公钥
*/
SERVER_PUB_KEY("serverPubKey", "服务端公钥", 9),
/**
* 定点医药机构名称
*/
FIXMEDINS_NAME("fixmedinsName", "定点医药机构名称", 10),
/**
* 行政区划
*/
ADMVS("admvs", "行政区划", 11),
/**
* 授权范围
*/
SCOPE("scope", "授权范围", 12),
/**
* 授权类型
*/
GRANT_TYPE("grantType", "授权类型", 13),
/**
* 密码
*/
PASSWORD("password", "密码", 14),
/**
* 用户名
*/
USERNAME("username", "用户名", 15),
/**
* 客户端安全码
*/
CLIENT_SECRET("clientSecret", "客户端安全码", 16),
/**
* 客户端ID
*/
CLIENT_ID("clientId", "客户端ID", 17),
/**
* 生产环境客户端公钥
*/
PROD_CLI_PUB_KEY("prod_cliPubKey", "生产环境客户端公钥", 18),
/**
* 生产环境客户端私钥
*/
PROD_CLI_PRV_KEY("prod_cliPrvKey", "生产环境客户端私钥", 19),
/**
* 生产环境客户端ID
*/
PROD_CLIENT_ID("prod_clientId", "生产环境客户端ID", 20),
/**
* 文件路径
*/
FILE_PATH("filePath", "文件路径", 21),
/** /**
* 电子地址 * 电子地址
*/ */
ELE_ADDRESS("eleAddress", "电子地址", 22), ELE_ADDRESS("eleAddress", "电子处方-请求地址", 22),
/** /**
* 服务地址 * 服务地址
*/ */
@@ -109,63 +50,35 @@ public enum TenantOptionDict {
/** /**
* 是否加密 * 是否加密
*/ */
IS_ENCRYPT("isEncrypt", "是否加密", 25), YB_IS_ENCRYPT("isEncrypt", "医保-是否加密", 25),
/** /**
* 医保区划 * 医保区划
*/ */
INSUPLC_ADMDVS("insuplc_admdvs", "医保区划", 26), YB_INSUPLC_ADMDVS("insuplc_admdvs", "医保-区划", 26),
/** /**
* 电子处方appId * 电子处方appId
*/ */
PRE_APP_ID("pre_app_id", "电子处方appId", 27), ELE_PRE_APP_ID("pre_app_id", "电子处方-appId", 27),
/** /**
* 电子处方appSecret * 电子处方appSecret
*/ */
PRE_APP_SECRET("pre_app_secret", "电子处方appSecret", 28), ELE_PRE_APP_SECRET("pre_app_secret", "电子处方-appSecret", 28),
/** /**
* 电子处方私钥 * 电子处方私钥
*/ */
APP_PRVKEY("APP_PRVKEY", "电子处方私钥", 29), ELE_APP_PRVKEY("APP_PRVKEY", "电子处方-私钥", 29),
/** /**
* 电子处方公钥 * 电子处方公钥
*/ */
PLAF_PUBKEY("PLAF_PUBKEY", "电子处方公钥", 30), ELE_PLAF_PUBKEY("PLAF_PUBKEY", "电子处方-公钥", 30),
/**
* 医保客户端ID
*/
YB_CLIENT_ID("ybClientId", "医保客户端ID", 31),
/**
* 医保客户端安全码
*/
YB_CLIENT_SECRET("ybClientSecret", "医保客户端安全码", 32),
/**
* 医保用户名
*/
YB_USERNAME("ybUsername", "医保用户名", 33),
/**
* 医保密码
*/
YB_PASSWORD("ybPassword", "医保密码", 34),
/**
* 医保授权类型
*/
YB_GRANT_TYPE("ybGrantType", "医保授权类型", 35),
/**
* 医保授权范围
*/
YB_SCOPE("ybScope", "医保授权范围", 36),
/**
* 医保密钥
*/
YB_CLI_PRV_KEY("ybCliPrvKey", "医保密钥", 37),
/**
* 医保服务URL
*/
YB_URL("ybUrl", "医保服务URL", 38),
/** /**
* 医院等级 * 医院等级
*/ */
HOSPITAL_LV("hospital_lv", "医院等级", 39), EINVOICE_HOSPITAL_LV("hospital_lv", "电子发票-医院等级", 39),
/**
* 无视LIS&PACS报错
*/
LIS_PACS_ERROR_IGNORE("lisPacsErrorIgnore", "无视LIS&PACS报错", 40),
/** /**
* LIS接口地址 * LIS接口地址
*/ */
@@ -191,13 +104,13 @@ public enum TenantOptionDict {
*/ */
PACS_APP_SECRET("pacsAppSecret", "PACSAppSecret", 45), PACS_APP_SECRET("pacsAppSecret", "PACSAppSecret", 45),
/** /**
* PACSAppSecret * 电子发票-中转服务的路径
*/ */
INVOICE_URL("invoiceUrl", "电子发票中转服务的路径", 46), INVOICE_FORWARD_URL("invoiceUrl", "电子发票-中转服务的路径", 46),
/** /**
* PACSAppSecret * 电子发票-中转服务开关
*/ */
FORWARD_SWITCH("forwardSwitch", "电子发票中转服务开关", 47), FORWARD_SWITCH("forwardSwitch", "电子发票-中转服务开关", 47),
/** /**
* 食源性开关 * 食源性开关
*/ */
@@ -229,7 +142,164 @@ public enum TenantOptionDict {
/** /**
* BPC请求URL * BPC请求URL
*/ */
BPC_REQUEST_URL("bpcRequestUrl", "BPC请求URL", 55); BPC_REQUEST_URL("bpcRequestUrl", "BPC请求URL", 55),
/**
* 电子发票开关
*/
INVOICE_SWITCH("invoiceSwitch", "电子发票开关", 56),
/**
* 医嘱定价来源
*/
ORDER_PRICING_SOURCE("orderPricingSource", "定价来源 batchSellingPrice/retailPrice", 57),
/**
* 三方支付(签到)
*/
THREE_PART_SIGN_URL("threePartSignUrl", "三方支付【签到】请求路径", 58),
/**
* 三方支付(签到)
*/
THREE_PART_SIGN_STATIC_PARAM("threePartSignStaticParam", "三方支付【签到】固定参数", 59),
/**
* 三方支付(签到)
*/
THREE_PART_SIGN_ACTIVE_PARAM("threePartSignActiveParam", "三方支付【签到】可变参数", 60),
/**
* 三方支付(签到)
*/
THREE_PART_SIGN_MAPPING_METHOD("threePartSignMappingMethod", "三方支付【签到】请求方式", 61),
/**
* 三方支付(消费)
*/
THREE_PART_PAY_URL("threePartPayUrl", "三方支付【消费】请求路径", 62),
/**
* 三方支付(消费)
*/
THREE_PART_PAY_STATIC_PARAM("threePartPayStaticParam", "三方支付【消费】固定参数", 63),
/**
* 三方支付(消费)
*/
THREE_PART_PAY_ACTIVE_PARAM("threePartPayActiveParam", "三方支付【消费】可变参数", 64),
/**
* 三方支付(消费)
*/
THREE_PART_PAY_MAPPING_METHOD("threePartPayMappingMethod", "三方支付【消费】请求方式", 65),
/**
* 三方支付(退费)
*/
THREE_PART_RETURN_URL("threePartReturnUrl", "三方支付【退费】请求路径", 66),
/**
* 三方支付(退费)
*/
THREE_PART_RETURN_STATIC_PARAM("threePartReturnStaticParam", "三方支付【退费】固定参数", 67),
/**
* 三方支付(退费)
*/
THREE_PART_RETURN_ACTIVE_PARAM("threePartReturnActiveParam", "三方支付【退费】可变参数", 68),
/**
* 三方支付(退费)
*/
THREE_PART_RETURN_MAPPING_METHOD("threePartReturnMappingMethod", "三方支付【退费】请求方式", 69),
/**
* 三方支付(隔天退费)
*/
THREE_PART_NEXT_DAY_RETURN_URL("threePartNextDayReturnUrl", "三方支付【隔天退费】请求路径", 70),
/**
* 三方支付(隔天退费)
*/
THREE_PART_NEXT_DAY_RETURN_STATIC_PARAM("threePartNextDayReturnStaticParam", "三方支付【隔天退费】固定参数", 71),
/**
* 三方支付(隔天退费)
*/
THREE_PART_NEXT_DAY_RETURN_ACTIVE_PARAM("threePartNextDayReturnActiveParam", "三方支付【隔天退费】可变参数", 72),
/**
* 三方支付(隔天退费)
*/
THREE_PART_NEXT_DAY_RETURN_MAPPING_METHOD("threePartNextDayReturnMappingMethod", "三方支付【隔天退费】请求方式", 73),
/**
* 三方支付路径(支付结果查询)
*/
THREE_PART_PAY_QUERY_URL("threePartPayQueryUrl", "三方支付【支付结果查询】请求路径", 74),
/**
* 三方支付(支付结果查询)
*/
THREE_PART_PAY_QUERY_STATIC_PARAM("threePartPayQueryStaticParam", "三方支付【支付结果查询】固定参数", 75),
/**
* 三方支付(支付结果查询)
*/
THREE_PART_PAY_QUERY_ACTIVE_PARAM("threePartPayQueryActiveParam", "三方支付【支付结果查询】可变参数", 76),
/**
* 三方支付(支付结果查询)
*/
THREE_PART_PAY_QUERY_MAPPING_METHOD("threePartPayQueryMappingMethod", "三方支付【支付结果查询】请求方式", 77),
/**
* 三方支付路径(退费结果查询)
*/
THREE_PART_RETURN_QUERY_URL("threePartReturnQueryUrl", "三方支付【退费结果查询】请求路径", 78),
/**
* 三方支付(退费结果查询)
*/
THREE_PART_RETURN_QUERY_STATIC_PARAM("threePartReturnQueryStaticParam", "三方支付【退费结果查询】固定参数", 79),
/**
* 三方支付(退费结果查询)
*/
THREE_PART_RETURN_QUERY_ACTIVE_PARAM("threePartReturnQueryActiveParam", "三方支付【退费结果查询】可变参数", 80),
/**
* 三方支付(退费结果查询)
*/
THREE_PART_RETURN_QUERY_MAPPING_METHOD("threePartReturnQueryMappingMethod", "三方支付【退费结果查询】请求方式", 81),
/**
* 三方支付路径(隔天退费结果查询)
*/
THREE_PART_NEXT_DAY_RETURN_QUERY_URL("threePartNextDayReturnQueryUrl", "三方支付【隔天退费结果查询】请求路径", 82),
/**
* 三方支付(隔天退费结果查询)
*/
THREE_PART_NEXT_DAY_RETURN_QUERY_STATIC_PARAM("threePartNextDayReturnQueryStaticParam", "三方支付【隔天退费结果查询】固定参数", 83),
/**
* 三方支付(隔天退费结果查询)
*/
THREE_PART_NEXT_DAY_RETURN_QUERY_ACTIVE_PARAM("threePartNextDayReturnQueryActiveParam", "三方支付【隔天退费结果查询】可变参数", 84),
/**
* 三方支付(隔天退费结果查询)
*/
THREE_PART_NEXT_DAY_RETURN_QUERY_MAPPING_METHOD("threePartNextDayReturnQueryMappingMethod", "三方支付【隔天退费结果查询】请求方式",
85),
/**
* 三方支付(签出)
*/
THREE_PART_SIGN_OUT_URL("threePartSignOutUrl", "三方支付【签出】请求路径", 86),
/**
* 三方支付(签出)
*/
THREE_PART_SIGN_OUT_STATIC_PARAM("threePartSignOutStaticParam", "三方支付【签出】固定参数", 87),
/**
* 三方支付(签出)
*/
THREE_PART_SIGN_OUT_ACTIVE_PARAM("threePartSignOutActiveParam", "三方支付【签出】可变参数", 88),
/**
* 三方支付(签出)
*/
THREE_PART_SIGN_OUT_MAPPING_METHOD("threePartSignOutMappingMethod", "三方支付【签出】请求方式", 89),
/**
* 三方支付(签出)
*/
YB_INPATIENT_SETTLEMENT_UP_URL("ybInpatientSetlUp", "选填4101或4101A", 90),
/**
* PACS查看报告地址
*/
PACS_REPORT_URL("pacsReportUrl", "PACS查看报告地址", 91),
/**
* LIS查看报告地址
*/
LIS_REPORT_URL("lisReportUrl", "LIS查看报告地址", 92),
/**
* 开药时药房允许多选开关
*/
PHARMACY_MULTIPLE_CHOICE_SWITCH("pharmacyMultipleChoiceSwitch", "开药时药房允许多选开关", 93),
/**
* PEIS服务地址
*/
PEIS_SERVER_URL("peisServerUrl", "PEIS服务地址", 94);
private final String code; private final String code;
private final String name; private final String name;
@@ -241,18 +311,6 @@ public enum TenantOptionDict {
this.sort = sort; this.sort = sort;
} }
public String getCode() {
return code;
}
public String getName() {
return name;
}
public Integer getSort() {
return sort;
}
public static TenantOptionDict getByCode(String code) { public static TenantOptionDict getByCode(String code) {
if (code == null) { if (code == null) {
return null; return null;
@@ -264,4 +322,16 @@ public enum TenantOptionDict {
} }
return null; return null;
} }
public String getCode() {
return code;
}
public String getName() {
return name;
}
public Integer getSort() {
return sort;
}
} }

View File

@@ -1,13 +1,11 @@
package com.core.common.filter; package com.core.common.filter;
import java.io.IOException; import com.core.common.utils.StringUtils;
import org.springframework.http.MediaType;
import javax.servlet.*; import javax.servlet.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import org.springframework.http.MediaType;
import com.core.common.utils.StringUtils;
/** /**
* Repeatable 过滤器 * Repeatable 过滤器

View File

@@ -1,18 +1,17 @@
package com.core.common.filter; package com.core.common.filter;
import java.io.BufferedReader; import com.core.common.constant.Constants;
import java.io.ByteArrayInputStream; import com.core.common.utils.http.HttpHelper;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.servlet.ReadListener; import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream; import javax.servlet.ServletInputStream;
import javax.servlet.ServletResponse; import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper; import javax.servlet.http.HttpServletRequestWrapper;
import java.io.BufferedReader;
import com.core.common.constant.Constants; import java.io.ByteArrayInputStream;
import com.core.common.utils.http.HttpHelper; import java.io.IOException;
import java.io.InputStreamReader;
/** /**
* 构建可重复读取inputStream的request * 构建可重复读取inputStream的request

View File

@@ -1,15 +1,14 @@
package com.core.common.filter; package com.core.common.filter;
import java.io.IOException; import com.core.common.enums.HttpMethod;
import java.util.ArrayList; import com.core.common.utils.StringUtils;
import java.util.List;
import javax.servlet.*; import javax.servlet.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import com.core.common.enums.HttpMethod; import java.util.ArrayList;
import com.core.common.utils.StringUtils; import java.util.List;
/** /**
* 防止XSS攻击的过滤器 * 防止XSS攻击的过滤器

View File

@@ -1,19 +1,17 @@
package com.core.common.filter; package com.core.common.filter;
import java.io.ByteArrayInputStream; import com.core.common.utils.StringUtils;
import java.io.IOException; import com.core.common.utils.html.EscapeUtil;
import org.apache.commons.io.IOUtils;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import javax.servlet.ReadListener; import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream; import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper; import javax.servlet.http.HttpServletRequestWrapper;
import java.io.ByteArrayInputStream;
import org.apache.commons.io.IOUtils; import java.io.IOException;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import com.core.common.utils.StringUtils;
import com.core.common.utils.html.EscapeUtil;
/** /**
* XSS过滤处理 * XSS过滤处理

View File

@@ -37,6 +37,10 @@ public final class AgeCalculatorUtil {
* 当前年龄取得(床位列表表示年龄用) * 当前年龄取得(床位列表表示年龄用)
*/ */
public static String getAge(Date date) { public static String getAge(Date date) {
// 添加空值检查
if (date == null) {
return "";
}
// 将 Date 转换为 LocalDateTime // 将 Date 转换为 LocalDateTime
LocalDateTime dateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); LocalDateTime dateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();

View File

@@ -3,16 +3,15 @@
*/ */
package com.core.common.utils; package com.core.common.utils;
import java.util.ArrayList; import com.core.common.constant.CacheConstants;
import java.util.List; import com.core.common.core.redis.RedisCache;
import com.core.common.exception.UtilException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.core.common.constant.CacheConstants; import java.util.ArrayList;
import com.core.common.core.redis.RedisCache; import java.util.List;
import com.core.common.exception.UtilException;
/** /**
* 排番组件 * 排番组件

View File

@@ -1,5 +1,7 @@
package com.core.common.utils; package com.core.common.utils;
import org.apache.commons.lang3.time.DateFormatUtils;
import java.lang.management.ManagementFactory; import java.lang.management.ManagementFactory;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@@ -9,8 +11,6 @@ import java.time.format.DateTimeParseException;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import org.apache.commons.lang3.time.DateFormatUtils;
/** /**
* 时间工具类 * 时间工具类
* *

View File

@@ -1,14 +1,14 @@
package com.core.common.utils; package com.core.common.utils;
import java.util.Collection;
import java.util.List;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
import com.core.common.constant.CacheConstants; import com.core.common.constant.CacheConstants;
import com.core.common.core.domain.entity.SysDictData; import com.core.common.core.domain.entity.SysDictData;
import com.core.common.core.redis.RedisCache; import com.core.common.core.redis.RedisCache;
import com.core.common.utils.spring.SpringUtils; import com.core.common.utils.spring.SpringUtils;
import java.util.Collection;
import java.util.List;
/** /**
* 字典工具类 * 字典工具类
* *

View File

@@ -1,10 +1,10 @@
package com.core.common.utils; package com.core.common.utils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.io.StringWriter; import java.io.StringWriter;
import org.apache.commons.lang3.exception.ExceptionUtils;
/** /**
* 错误信息处理类。 * 错误信息处理类。
* *

View File

@@ -1,9 +1,8 @@
package com.core.common.utils; package com.core.common.utils;
import com.core.common.utils.spring.SpringUtils;
import org.springframework.context.MessageSource; import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.context.i18n.LocaleContextHolder;
import com.core.common.utils.spring.SpringUtils;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;
import java.util.Locale; import java.util.Locale;

View File

@@ -1,19 +1,18 @@
package com.core.common.utils; package com.core.common.utils;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.util.PatternMatchUtils;
import com.core.common.constant.Constants; import com.core.common.constant.Constants;
import com.core.common.constant.HttpStatus; import com.core.common.constant.HttpStatus;
import com.core.common.core.domain.entity.SysRole; import com.core.common.core.domain.entity.SysRole;
import com.core.common.core.domain.model.LoginUser; import com.core.common.core.domain.model.LoginUser;
import com.core.common.exception.ServiceException; import com.core.common.exception.ServiceException;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.util.PatternMatchUtils;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* 安全服务工具类 * 安全服务工具类
@@ -55,6 +54,17 @@ public class SecurityUtils {
} }
} }
/**
* 获取用户昵称
**/
public static String getNickName() {
try {
return getLoginUser().getUser().getNickName();
} catch (Exception e) {
throw new ServiceException("获取用户昵称异常", HttpStatus.UNAUTHORIZED);
}
}
/** /**
* 获取用户 * 获取用户
**/ **/

View File

@@ -1,5 +1,15 @@
package com.core.common.utils; package com.core.common.utils;
import com.core.common.constant.Constants;
import com.core.common.core.text.Convert;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException; import java.io.IOException;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLDecoder; import java.net.URLDecoder;
@@ -8,18 +18,6 @@ import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import com.core.common.constant.Constants;
import com.core.common.core.text.Convert;
/** /**
* 客户端工具类 * 客户端工具类
* *

View File

@@ -1,11 +1,10 @@
package com.core.common.utils; package com.core.common.utils;
import java.util.*;
import org.springframework.util.AntPathMatcher;
import com.core.common.constant.Constants; import com.core.common.constant.Constants;
import com.core.common.core.text.StrFormatter; import com.core.common.core.text.StrFormatter;
import org.springframework.util.AntPathMatcher;
import java.util.*;
/** /**
* 字符串工具类 * 字符串工具类

View File

@@ -1,10 +1,10 @@
package com.core.common.utils; package com.core.common.utils;
import java.util.concurrent.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.concurrent.*;
/** /**
* 线程相关工具类. * 线程相关工具类.
* *

View File

@@ -1,14 +1,10 @@
package com.core.common.utils; package com.core.common.utils;
import org.apache.commons.lang3.time.DateFormatUtils; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.lang.management.ManagementFactory; import java.time.LocalTime;
import java.text.ParseException; import java.time.ZoneId;
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.Calendar;
import java.util.Date; import java.util.Date;

View File

@@ -1,10 +1,9 @@
package com.core.common.utils.bean; package com.core.common.utils.bean;
import java.util.Set;
import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException; import javax.validation.ConstraintViolationException;
import javax.validation.Validator; import javax.validation.Validator;
import java.util.Set;
/** /**
* bean对象属性验证 * bean对象属性验证

View File

@@ -1,9 +1,9 @@
package com.core.common.utils.file; package com.core.common.utils.file;
import java.io.File;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.io.File;
/** /**
* 文件类型工具类 * 文件类型工具类
* *

View File

@@ -1,13 +1,5 @@
package com.core.common.utils.file; package com.core.common.utils.file;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Objects;
import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;
import com.core.common.config.CoreConfig; import com.core.common.config.CoreConfig;
import com.core.common.constant.Constants; import com.core.common.constant.Constants;
import com.core.common.exception.file.FileNameLengthLimitExceededException; import com.core.common.exception.file.FileNameLengthLimitExceededException;
@@ -16,6 +8,13 @@ import com.core.common.exception.file.InvalidExtensionException;
import com.core.common.utils.DateUtils; import com.core.common.utils.DateUtils;
import com.core.common.utils.StringUtils; import com.core.common.utils.StringUtils;
import com.core.common.utils.uuid.Seq; import com.core.common.utils.uuid.Seq;
import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Objects;
/** /**
* 文件上传工具类 * 文件上传工具类

View File

@@ -1,20 +1,18 @@
package com.core.common.utils.file; package com.core.common.utils.file;
import java.io.*;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ArrayUtils;
import com.core.common.config.CoreConfig; import com.core.common.config.CoreConfig;
import com.core.common.utils.DateUtils; import com.core.common.utils.DateUtils;
import com.core.common.utils.StringUtils; import com.core.common.utils.StringUtils;
import com.core.common.utils.uuid.IdUtils; import com.core.common.utils.uuid.IdUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ArrayUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
/** /**
* 文件处理工具类 * 文件处理工具类

View File

@@ -1,5 +1,12 @@
package com.core.common.utils.file; package com.core.common.utils.file;
import com.core.common.config.CoreConfig;
import com.core.common.constant.Constants;
import com.core.common.utils.StringUtils;
import org.apache.poi.util.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.InputStream; import java.io.InputStream;
@@ -7,14 +14,6 @@ import java.net.URL;
import java.net.URLConnection; import java.net.URLConnection;
import java.util.Arrays; import java.util.Arrays;
import org.apache.poi.util.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.core.common.config.CoreConfig;
import com.core.common.constant.Constants;
import com.core.common.utils.StringUtils;
/** /**
* 图片处理工具类 * 图片处理工具类
* *

View File

@@ -1,17 +1,16 @@
package com.core.common.utils.http; package com.core.common.utils.http;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.ServletRequest;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import javax.servlet.ServletRequest;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** /**
* 通用http工具封装 * 通用http工具封装
* *

View File

@@ -1,5 +1,11 @@
package com.core.common.utils.http; package com.core.common.utils.http;
import com.core.common.constant.Constants;
import com.core.common.utils.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.net.ssl.*;
import java.io.*; import java.io.*;
import java.net.ConnectException; import java.net.ConnectException;
import java.net.SocketTimeoutException; import java.net.SocketTimeoutException;
@@ -8,14 +14,6 @@ import java.net.URLConnection;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
import javax.net.ssl.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.core.common.constant.Constants;
import com.core.common.utils.StringUtils;
/** /**
* 通用http发送方法 * 通用http发送方法
* *

View File

@@ -1,14 +1,13 @@
package com.core.common.utils.ip; package com.core.common.utils.ip;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.core.common.config.CoreConfig; import com.core.common.config.CoreConfig;
import com.core.common.constant.Constants; import com.core.common.constant.Constants;
import com.core.common.utils.StringUtils; import com.core.common.utils.StringUtils;
import com.core.common.utils.http.HttpUtils; import com.core.common.utils.http.HttpUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** /**
* 获取地址类 * 获取地址类

View File

@@ -1,13 +1,12 @@
package com.core.common.utils.ip; package com.core.common.utils.ip;
import java.net.InetAddress;
import java.net.UnknownHostException;
import javax.servlet.http.HttpServletRequest;
import com.core.common.utils.ServletUtils; import com.core.common.utils.ServletUtils;
import com.core.common.utils.StringUtils; import com.core.common.utils.StringUtils;
import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;
import java.net.UnknownHostException;
/** /**
* 获取IP方法 * 获取IP方法
* *

View File

@@ -1,33 +1,5 @@
package com.core.common.utils.poi; package com.core.common.utils.poi;
import java.io.*;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.RegExUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ooxml.POIXMLDocumentPart;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellRangeAddressList;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.*;
import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTMarker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.core.common.annotation.Excel; import com.core.common.annotation.Excel;
import com.core.common.annotation.Excel.ColumnType; import com.core.common.annotation.Excel.ColumnType;
import com.core.common.annotation.Excel.Type; import com.core.common.annotation.Excel.Type;
@@ -43,6 +15,32 @@ import com.core.common.utils.file.FileTypeUtils;
import com.core.common.utils.file.FileUtils; import com.core.common.utils.file.FileUtils;
import com.core.common.utils.file.ImageUtils; import com.core.common.utils.file.ImageUtils;
import com.core.common.utils.reflect.ReflectUtils; import com.core.common.utils.reflect.ReflectUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.RegExUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ooxml.POIXMLDocumentPart;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellRangeAddressList;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.*;
import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTMarker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
/** /**
* Excel相关处理 * Excel相关处理

View File

@@ -1,16 +1,15 @@
package com.core.common.utils.reflect; package com.core.common.utils.reflect;
import java.lang.reflect.*; import com.core.common.core.text.Convert;
import java.util.Date; import com.core.common.utils.DateUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Validate; import org.apache.commons.lang3.Validate;
import org.apache.poi.ss.usermodel.DateUtil; import org.apache.poi.ss.usermodel.DateUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.core.common.core.text.Convert; import java.lang.reflect.*;
import com.core.common.utils.DateUtils; import java.util.Date;
/** /**
* 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被AOP过的真实类等工具函数. * 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被AOP过的真实类等工具函数.

View File

@@ -1,11 +1,11 @@
package com.core.common.utils.sign; package com.core.common.utils.sign;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
/** /**
* Md5加密方法 * Md5加密方法
* *

View File

@@ -1,5 +1,6 @@
package com.core.common.utils.spring; package com.core.common.utils.spring;
import com.core.common.utils.StringUtils;
import org.springframework.aop.framework.AopContext; import org.springframework.aop.framework.AopContext;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.NoSuchBeanDefinitionException;
@@ -9,8 +10,6 @@ import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.core.common.utils.StringUtils;
/** /**
* spring工具类 方便在非spring管理环境中获取bean * spring工具类 方便在非spring管理环境中获取bean
* *

View File

@@ -1,10 +1,10 @@
package com.core.common.utils.uuid; package com.core.common.utils.uuid;
import java.util.concurrent.atomic.AtomicInteger;
import com.core.common.utils.DateUtils; import com.core.common.utils.DateUtils;
import com.core.common.utils.StringUtils; import com.core.common.utils.StringUtils;
import java.util.concurrent.atomic.AtomicInteger;
/** /**
* @author system 序列生成类 * @author system 序列生成类
*/ */

View File

@@ -1,13 +1,13 @@
package com.core.common.utils.uuid; package com.core.common.utils.uuid;
import com.core.common.exception.UtilException;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom; import java.security.SecureRandom;
import java.util.Random; import java.util.Random;
import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.ThreadLocalRandom;
import com.core.common.exception.UtilException;
/** /**
* 提供通用唯一识别码universally unique identifierUUID实现 * 提供通用唯一识别码universally unique identifierUUID实现
* *

View File

@@ -1,13 +1,12 @@
package com.core.common.xss; package com.core.common.xss;
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
/** /**
* 自定义xss校验注解 * 自定义xss校验注解
* *

View File

@@ -1,12 +1,11 @@
package com.core.common.xss; package com.core.common.xss;
import java.util.regex.Matcher; import com.core.common.utils.StringUtils;
import java.util.regex.Pattern;
import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext; import javax.validation.ConstraintValidatorContext;
import java.util.regex.Matcher;
import com.core.common.utils.StringUtils; import java.util.regex.Pattern;
/** /**
* 自定义xss校验注解实现 * 自定义xss校验注解实现

View File

@@ -80,6 +80,7 @@
<dependency> <dependency>
<groupId>com.googlecode.aviator</groupId> <groupId>com.googlecode.aviator</groupId>
<artifactId>aviator</artifactId> <artifactId>aviator</artifactId>
<version>5.3.3</version>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@@ -22,10 +22,11 @@ import com.core.common.utils.StringUtils;
*/ */
@Configuration @Configuration
public class FilterConfig { public class FilterConfig {
@Value("${xss.excludes}") // 添加默认值,避免配置不存在时启动失败
@Value("${xss.excludes:/system/notice}")
private String excludes; private String excludes;
@Value("${xss.urlPatterns}") @Value("${xss.urlPatterns:/system/*,/monitor/*,/tool/*}")
private String urlPatterns; private String urlPatterns;
@SuppressWarnings({"rawtypes", "unchecked"}) @SuppressWarnings({"rawtypes", "unchecked"})

View File

@@ -99,7 +99,7 @@ public class MybatisPlusConfig {
"med_medication_definition", "med_medication_dispense", "med_medication_request", "med_medication_definition", "med_medication_dispense", "med_medication_request",
"wor_activity_definition", "wor_device_dispense", "wor_device_request", "wor_inventory_item", "wor_activity_definition", "wor_device_dispense", "wor_device_request", "wor_inventory_item",
"wor_service_request", "wor_service_request_detail", "wor_supply_delivery", "wor_supply_request", "wor_service_request", "wor_service_request_detail", "wor_supply_delivery", "wor_supply_request",
"sys_operation_record")); "sys_operation_record","doc_inventory_item_static"));
@Override @Override
public boolean ignoreTable(String tableName) { public boolean ignoreTable(String tableName) {
@@ -116,37 +116,40 @@ public class MybatisPlusConfig {
* 获取当前租户 ID * 获取当前租户 ID
*/ */
private Integer getCurrentTenantId() { private Integer getCurrentTenantId() {
Integer result = null;
// 首先尝试从线程局部变量中获取租户ID适用于定时任务等场景 // 首先尝试从线程局部变量中获取租户ID适用于定时任务等场景
Integer threadLocalTenantId = TenantContext.getCurrentTenant(); Integer threadLocalTenantId = TenantContext.getCurrentTenant();
if (threadLocalTenantId != null) { if (threadLocalTenantId != null) {
return threadLocalTenantId; result = threadLocalTenantId;
} } else {
// 获取当前登录用户的租户ID优先使用SecurityUtils中储存的LoginUser的租户ID
// 获取当前登录用户的租户ID优先使用SecurityUtils中储存的LoginUser的租户ID try {
try { if (SecurityUtils.getAuthentication() != null) {
if (SecurityUtils.getAuthentication() != null) { result = SecurityUtils.getLoginUser().getTenantId();
return SecurityUtils.getLoginUser().getTenantId(); }
} catch (Exception e) {
result = 1; // 默认租户ID
} }
} catch (Exception e) {
return 1; // 默认租户ID
}
// 尝试从请求头中获取租户ID if (result == null) {
ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes(); // 尝试从请求头中获取租户ID
if (attributes != null) { ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest(); if (attributes != null) {
// 从请求头获取租户ID假设header名称为"X-Tenant-ID" ; 登录接口前端把租户id放到请求头里 HttpServletRequest request = attributes.getRequest();
String tenantIdHeader = request.getHeader("X-Tenant-ID"); // 从请求头获取租户ID假设header名称为"X-Tenant-ID" ; 登录接口前端把租户id放到请求头里
String requestMethodName = request.getHeader("Request-Method-Name"); String tenantIdHeader = request.getHeader("X-Tenant-ID");
// 登录 String requestMethodName = request.getHeader("Request-Method-Name");
if ("login".equals(requestMethodName)) { // 登录
if (tenantIdHeader != null && !tenantIdHeader.isEmpty()) { if ("login".equals(requestMethodName)) {
return Integer.parseInt(tenantIdHeader); if (tenantIdHeader != null && !tenantIdHeader.isEmpty()) {
result = Integer.parseInt(tenantIdHeader);
}
}
} }
} }
} }
return 1; // 默认租户ID return result != null ? result : 1; // 默认租户ID
} }
} }

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