fix(login): 修复登录用户选项值获取问题
- 替换LoginUser中的getOptionJson().path()调用为新的getOptionJsonValue()方法 - 为LoginUser类添加安全的选项JSON值访问方法getOptionJsonValue() - 修复LoginUser类中乱码注释并优化代码结构 - 更新SysLoginService类中乱码注释为中文描述
This commit is contained in:
@@ -1,29 +1,438 @@
|
||||
# HealthLink-HIS 后端开发规范
|
||||
# HealthLink-HIS — AI 开发规范
|
||||
|
||||
> 🤖 本文件供 AI 工具自动读取。完整规范见 **[../../RULES.md](../../RULES.md)**
|
||||
> 🤖 本文件供所有 AI 编码工具自动读取。进入本项目后必须遵守以下规范。
|
||||
>
|
||||
> **模型决定上限,Harness 决定底线。**
|
||||
|
||||
## 铁律速查
|
||||
---
|
||||
|
||||
1. **修改完必须测试** — `mvn clean compile -DskipTests`
|
||||
2. **Flyway 迁移** — 新建表/字段必须走 Flyway
|
||||
3. **测试通过才提交** — 编译+测试全通过才能 commit
|
||||
4. **API路径对齐** — `/healthlink-his/api/v1/`
|
||||
5. **先分解再行动** — 非平凡任务先出计划
|
||||
6. **文档在 MD 目录** — 大写下划线命名
|
||||
7. **铁律18: 禁止破坏原有功能** — 完善功能时不能破坏已有功能
|
||||
## 一、项目概览
|
||||
|
||||
## 快速命令
|
||||
| 属性 | 值 |
|
||||
|------|------|
|
||||
| 项目名 | HealthLink-HIS(医院信息系统) |
|
||||
| 后端路径 | `healthlink-his-server/` |
|
||||
| 前端路径 | `healthlink-his-ui/` |
|
||||
| 文档路径 | `MD/` |
|
||||
| JDK | 25 (OpenJDK) |
|
||||
| Spring Boot | 4.0.6 |
|
||||
| MyBatis-Plus | 3.5.16 |
|
||||
| Vue | 3.x + Vite + Element Plus |
|
||||
| 数据库 | PostgreSQL 15+ |
|
||||
| 包名 | `com.healthlink.his` |
|
||||
| 后端端口 | 18082 |
|
||||
| 前端端口 | 81 |
|
||||
|
||||
---
|
||||
|
||||
## 二、铁律(必须遵守,违反即失败)
|
||||
|
||||
### 🔴 P0 铁律 — 不可违反
|
||||
|
||||
**铁律1: 修改完必须测试**
|
||||
```
|
||||
后端: mvn clean compile -DskipTests → mvn install -DskipTests → mvn test
|
||||
前端: npm run build:dev → npm run lint
|
||||
```
|
||||
- 白盒:编译通过,无 ERROR
|
||||
- 黑盒:关键接口返回 `{code:200, data:...}`,验证业务逻辑
|
||||
- 冒烟:应用正常启动,核心流程通畅
|
||||
|
||||
**铁律2: Flyway 数据库迁移**
|
||||
- 凡是新建表、新增字段,必须创建 Flyway 迁移脚本
|
||||
- 路径:`healthlink-his-domain/src/main/resources/db/migration/`
|
||||
- 命名:`V{版本号}__{描述}.sql`(双下划线)
|
||||
|
||||
**铁律3: 测试通过后才提交**
|
||||
- 编译 + 测试全部通过后才能 git commit
|
||||
- 不提交未完成的功能、调试代码、临时文件
|
||||
|
||||
**铁律4: 前后端API路径对齐**
|
||||
- 后端前缀:`/healthlink-his/api/v1/`
|
||||
- 前端 `request.js` 的 baseURL 必须与后端匹配
|
||||
|
||||
**铁律5: 状态值一致性(Bug #574 教训)**
|
||||
- 修改任何状态值前,必须先列出完整的状态流转链路
|
||||
- 检查项:枚举定义 → Service 设置 → 查询映射 → 前端 STATUS_CLASS_MAP → 前端 v-if → 统计SQL
|
||||
- 禁止:只改一端不检查其他端
|
||||
|
||||
**铁律6: 禁止删除源文件(Bug #574 教训)**
|
||||
- 绝对禁止删除项目中已有的 Java/Vue/SQL 源文件
|
||||
- 编译错误 → 修复错误;重复文件 → 重构合并
|
||||
- AI 幻觉文件 → 检查 `git ls-tree baseline -- <file>` 确认后再删除
|
||||
- 唯一例外:明确由人类确认删除的文件
|
||||
|
||||
**铁律7: 禁止修改已有公开方法签名**
|
||||
- 不能删除/重命名已有的 public 方法,不能修改参数列表
|
||||
- 需要新功能 → 添加重载方法;需要改行为 → 修改内部实现
|
||||
|
||||
**铁律8: 验证后才宣称完成(Verification Before Completion)**
|
||||
- **没有跑过验证命令,就不能说"完成了""通过了""没问题"**
|
||||
- 禁止使用"应该可以""大概没问题""看起来正确"
|
||||
- 必须:运行命令 → 读取输出 → 确认结果 → 才能宣称
|
||||
- 这是诚实原则,不是效率问题
|
||||
|
||||
**铁律9: 开发前必须审核原有代码(P0 — 铁律)**
|
||||
- **任何新功能开发前,必须先搜索项目中是否已有相关代码**
|
||||
- 搜索路径:Controller / AppService / Service / Mapper / Entity / 前端页面 / API接口
|
||||
- 如果已有部分功能 → 在原有代码基础上**升级优化完善**,禁止另起炉灶
|
||||
- 如果已有接口但前端缺失 → 只补前端,不重复建后端
|
||||
- 如果已有前端但后端缺失 → 只补后端,不重写前端
|
||||
- 搜索命令:`rg -l "关键词" healthlink-his-server/ healthlink-his-ui/src/`
|
||||
- 禁止:不看代码就新建模块、重复实现已有功能、废弃原有代码另写一套
|
||||
|
||||
**铁律10: 状态变更影响面分析(Bug #574→575 教训)**
|
||||
- 改任何状态枚举值前,**必须**执行影响面分析
|
||||
- `rg "原状态枚举名" --type java` 列出所有引用文件
|
||||
- 逐个检查:设置值?查询过滤?显示映射?统计聚合?
|
||||
- 检查逆向流程:退号、取消、停诊是否兼容新状态
|
||||
- 检查 XML mapper 中所有查询过滤条件
|
||||
- 检查前端所有 v-if/v-for/disabled 条件
|
||||
- **禁止**:只改正向流程不验逆向流程
|
||||
|
||||
**铁律11: 逆向流程验证(Bug #575 教训)**
|
||||
- 涉及状态流转的 Bug,验证时**必须**覆盖:
|
||||
- 正向:预约→签到→就诊→完成
|
||||
- 逆向:退号、取消预约、停诊、退费
|
||||
- 边界:并发操作、重复操作、异常中断
|
||||
- **禁止**:只测正向流程就标记"修复完成"
|
||||
|
||||
**铁律12: 全链路 6 环分析**
|
||||
- 涉及数据库字段的 Bug/需求 必须走完整链路
|
||||
```
|
||||
前端/页面 → Controller → Service → Mapper → DB/SQL → 关联模块
|
||||
①录入 ②验证 ③业务 ④持久化 ⑤存储 ⑥联动
|
||||
```
|
||||
- ①录入:前端有无输入入口(弹窗、表格行编辑、表单)
|
||||
- ②验证:Controller 参数校验、@Valid、权限控制
|
||||
- ③业务:Service 业务逻辑、事务边界、多个 Service 实现类入口
|
||||
- ④持久化:Mapper XML、DTO 字段映射、类型转换
|
||||
- ⑤存储:数据库表结构、索引、NOT NULL 约束
|
||||
- ⑥联动:上游(医嘱→护士站)、下游(打印、计费、报表)是否同步
|
||||
|
||||
**铁律13: 全链路验证(状态流转 Bug 必做)**
|
||||
- 修复后按以下顺序验证,**编译通过不等于修复完成**
|
||||
```
|
||||
① 数据库:SELECT status FROM table WHERE id = ? → 确认写入正确
|
||||
② 后端接口:检查所有 if/switch 分支 → 确认映射正确
|
||||
③ 前端显示:检查 STATUS_CLASS_MAP → 确认文本正确
|
||||
④ 前端交互:检查 v-if/v-for/disabled → 确认按钮状态正确
|
||||
⑤ 统计数据:检查聚合 SQL → 确认统计包含新状态
|
||||
```
|
||||
|
||||
**铁律14: 池/统计表同步(Bug #574 教训)**
|
||||
- **任何状态变更必须同步更新关联统计表**
|
||||
- 检查清单:
|
||||
1. 状态变更后,哪些统计字段需要更新?
|
||||
2. 是原子递增/递减,还是全量重算?
|
||||
3. 并发安全:用 `SET field = field + 1` 还是先查后改?
|
||||
4. 逆向操作(退号/取消)是否正确回滚统计?
|
||||
- **禁止**:只改状态不改统计,或只改统计不改状态
|
||||
|
||||
**铁律15: 统计变更必须验证实际值(Bug #575 教训)**
|
||||
- 修改统计逻辑后,**必须查数据库验证实际值**
|
||||
- 对比操作前后的值,确认统计正确
|
||||
- **禁止**:改了统计逻辑不查数据库验证
|
||||
|
||||
**铁律16: 搜索所有相关代码路径**
|
||||
- 修复前必须用 `rg` 搜索所有引用
|
||||
```
|
||||
rg "状态枚举名|相关方法名|相关字段名" --type java --type vue
|
||||
```
|
||||
- 确保不遗漏任何引用路径
|
||||
|
||||
**铁律17: 数据库铁律**
|
||||
- **修前必须查询真实数据库** — 确认表结构、字段约束、索引
|
||||
- **禁止凭猜测写 SQL** — 先查看表结构
|
||||
- **修改 SQL 后必须验证** — `EXPLAIN` 或实际查询验证语法
|
||||
- **NOT NULL 约束必须检查** — INSERT/UPDATE 前先查 `is_nullable`
|
||||
- **关联表必须查完整** — 涉及 JOIN 查所有关联表结构和外键
|
||||
|
||||
**铁律18: 禁止破坏原有功能(P0绝对铁律)**
|
||||
- **完善增加功能和流程时,绝对不能破坏或者让原有功能不能用**
|
||||
- 修改已有实体前必须对比原始文件(`git show HEAD~N:./file.java`),保留所有原有字段和方法
|
||||
- 新增字段只能追加,不能删除或重命名已有字段
|
||||
- SQL迁移只允许 `ALTER TABLE ADD COLUMN`,不允许 `DROP COLUMN` 或 `RENAME COLUMN`
|
||||
- Controller新端点不能修改已有端点的路径或参数
|
||||
- 前端新页面不能修改已有页面的组件结构
|
||||
- 每次修改后必须 `mvn clean compile -DskipTests` 验证
|
||||
|
||||
**铁律19: 编译错误不区分来源(Bug #698 教训)**
|
||||
- `mvn compile`、`vite build`、`vue-tsc` 等构建命令报错 = 不过关,**不管是自己引入的还是历史遗留的**
|
||||
- 禁止说"这是预存问题""不是我改的""原有bug"——构建通不过就不能宣称完成
|
||||
- 正确做法:定位错误 → 修复 → 重新构建确认通过 → 然后才能继续
|
||||
|
||||
**铁律20: 数据来源必须验证(Bug #698 教训)**
|
||||
- 涉及数据查询/提取时,必须先确认数据实际存储位置,不能假设
|
||||
- 修复前必须:打印/检查原始数据结构 → 确认字段存在 → 再写提取逻辑
|
||||
- 禁止:凭代码推断数据位置、假设"应该在这里"
|
||||
|
||||
**铁律21: 外部配置值必须实测验证(Bug #698 教训)**
|
||||
- 使用外部服务(API、模型、数据库)的配置值,必须实际调用验证
|
||||
- 配置变更后必须:发起一次真实请求 → 确认返回 200 → 再宣称配置正确
|
||||
- 禁止:改完配置不测试、假设"应该能用"
|
||||
|
||||
**铁律22: 端到端验证必须有实际输出证据(Bug #698 教训)**
|
||||
- 声称功能生效前,必须有实际的端到端输出证据
|
||||
- 验证方式:运行命令 → 检查输出中包含预期关键词
|
||||
- 禁止:只检查代码路径可达就算"验证通过"
|
||||
|
||||
**铁律23: 文件读写强制 UTF-8 编码(必遵守)**
|
||||
- **禁止**使用 PowerShell Get-Content -Raw(不带 -Encoding UTF8)读取源文件
|
||||
- **禁止**使用 Out-File -Encoding utf8(会写 BOM)
|
||||
- **正确写法**:
|
||||
- 读取:`[System.IO.File]::ReadAllText($path, [System.Text.Encoding]::UTF8)`
|
||||
- 写入:`[System.IO.File]::WriteAllText($path, $content, [System.Text.UTF8Encoding]::new(False))`
|
||||
- **原因**:Windows PowerShell 5.1 默认用系统 locale(GBK/CP936)读写,会把 UTF-8 中文变成乱码
|
||||
|
||||
**铁律24: 禁止硬编码业务默认值(Bug #617 教训)**
|
||||
- **禁止**在提交参数中硬编码业务默认值(如 `contractNo: '0000'`)
|
||||
- 必须使用用户在表单中选择的值,硬编码值仅作为 fallback
|
||||
- 检查清单:
|
||||
1. 表单字段是否有 `v-model` 绑定?
|
||||
2. 构建提交参数时是否使用了绑定值?
|
||||
3. 提交后是否覆盖了用户选择?
|
||||
|
||||
---
|
||||
|
||||
### 🟡 P1 铁律 — 强烈建议
|
||||
|
||||
**铁律25: 先分解再行动**
|
||||
- 修改超过3个文件、涉及多模块、数据库变更,必须先制定计划
|
||||
|
||||
**铁律26: 验证后信**
|
||||
- 每次修改后必须验证编译通过,不信记忆
|
||||
|
||||
**铁律27: 文档统一管理**
|
||||
- 所有文档存储在 `MD/` 目录
|
||||
- 文件名:大写英文+下划线(如 `BACKEND_CHECKLIST.md`)
|
||||
- 文档头部必须包含元数据块(文档类型、版本、日期)
|
||||
|
||||
**铁律28: 设计文档必须包含UI设计和调用流程**
|
||||
- 所有新模块/页面的设计文档必须包含:UI布局描述、交互效果清单、前后端调用流程
|
||||
- 没有明确UI设计的模块,禁止直接编码
|
||||
- 设计文档必须写清楚:系统调用关系、方法函数调用关系、完整业务流程
|
||||
- 设计文档中每个用户操作必须对应:前端事件 → API调用 → 后端处理链路 → 返回数据 → UI渲染
|
||||
|
||||
**铁律29: 设计文档确认后自主开发(铁律)**
|
||||
- 设计文档一旦确认,后续开发**必须按文档自主执行**
|
||||
- **禁止反复询问"是否继续""下一步做什么""是否开始"**——直接按计划推进
|
||||
- 每完成一个 Sprint,自动提交推送,然后立即开始下一个 Sprint
|
||||
- 只在遇到**无法解决的阻塞**时才暂停询问
|
||||
|
||||
**铁律30: 前端验证铁律**
|
||||
- **提交前必须编译前端** — `npm run build:dev` 或 `npx vite build` 通过才算完成
|
||||
- **禁止只改 .vue 文件不验证编译** — 改完必须跑一次编译确认无报错
|
||||
- **SCSS 括号闭合必须检查** — `<style lang="scss" scoped>` 内的所有 `{}` 必须成对闭合
|
||||
- **编译报错必须当场修复** — 看到 error 立即修,不要留到下一步
|
||||
|
||||
**铁律31: 提交前验证铁律**
|
||||
- **后端**: `mvn compile` 通过 + 无新增 warning
|
||||
- **前端**: `npm run build:dev` 通过 + 无 SCSS 错误
|
||||
- **禁止跳过编译直接提交** — 编译失败的代码不允许进仓库
|
||||
- **提交信息格式**: `type(scope): description`(如 `fix(registration): 修复退号金额计算`)
|
||||
|
||||
**铁律32: 修复流程**
|
||||
- **一次只修一个 Bug**,不扩大范围
|
||||
- **修前必须完整获取 Bug 全部信息** — 描述、复现步骤、所有截图/附件、所有备注历史。禁止只看标题就写代码
|
||||
- **修复前必须读 AGENTS.md**
|
||||
- **修复后必须验证编译** — `mvn compile` / `vue-tsc --noEmit` 0 error
|
||||
- **commit 前必须验证** — 编译通过 + 无新增 lint 警告
|
||||
|
||||
**铁律33: Bug 状态管理**
|
||||
- **已关闭/已解决的 Bug 禁止处理** — 处理前检查状态,resolved/closed 直接跳过
|
||||
- **人类提的 Bug 只加备注不改状态** — 不改 status、不改 assignedTo
|
||||
- **智能体提的 Bug 可改分配和加备注** — 状态变更等测试通过后由华佗确认
|
||||
- **每个修复必须有 git commit** — 格式: `fix(#bug_id): 简要描述`
|
||||
|
||||
**铁律34: 质量门禁**
|
||||
- L1: 编译通过
|
||||
- L2: 测试通过
|
||||
- L3: DB审查通过
|
||||
- L4: 验收通过
|
||||
- L5: 归档完成
|
||||
|
||||
---
|
||||
|
||||
## 三、Karpathy 编码准则
|
||||
|
||||
> 减少 LLM 常见编码错误。偏向谨慎而非速度。
|
||||
|
||||
### 3.1 先想再写
|
||||
- 明确陈述假设,不确定就问
|
||||
- 多种解读时都列出来,不要默默选一种
|
||||
- 有更简单的方案就说出来,该推回就推回
|
||||
- 不清楚的地方停下来,说清楚哪里不清楚
|
||||
|
||||
### 3.2 简洁优先
|
||||
- 不做没要求的功能,不做一次性代码的抽象
|
||||
- 不加没要求的"灵活性"和"可配置性"
|
||||
- 200 行能 50 行搞定就重写
|
||||
- 自问:"高级工程师会不会觉得这过度设计?"
|
||||
|
||||
### 3.3 精准修改
|
||||
- 只改必须改的,不"顺手改进"相邻代码
|
||||
- 匹配现有代码风格,即使你有不同的偏好
|
||||
- 每行改动都能追溯到用户的请求
|
||||
- 只清理你自己改动产生的无用代码
|
||||
|
||||
### 3.4 目标驱动
|
||||
- 把任务转化为可验证目标
|
||||
- 多步任务声明计划:`[步骤] → 验证: [检查]`
|
||||
- 强验收标准让 Agent 能独立循环,弱标准需要持续澄清
|
||||
|
||||
---
|
||||
|
||||
## 四、系统化调试(Systematic Debugging)
|
||||
|
||||
> **铁律:没有根因调查,不能提出修复方案。**
|
||||
|
||||
### 四阶段流程
|
||||
|
||||
**阶段1:根因调查**(修复前必须完成)
|
||||
1. 仔细阅读错误信息(堆栈、行号、错误码)
|
||||
2. 稳定复现(能否可靠触发?步骤?每次?)
|
||||
3. 检查最近变更(git diff、新依赖、配置变更)
|
||||
4. 多组件系统:在每个组件边界加诊断日志,定位哪一层断裂
|
||||
5. 追踪数据流:坏值从哪里来?谁调用的?一直追溯到源头
|
||||
|
||||
**阶段2:模式分析**
|
||||
- 找到同代码库中类似的正常工作代码
|
||||
- 逐项对比差异
|
||||
- 理解依赖关系
|
||||
|
||||
**阶段3:假设与测试**
|
||||
- 形成单一假设:"我认为X是根因,因为Y"
|
||||
- 做最小改动测试
|
||||
- 有效 → 阶段4;无效 → 新假设
|
||||
|
||||
**阶段4:实施**
|
||||
- 创建失败测试用例
|
||||
- 修复根因(不是症状)
|
||||
- 验证修复
|
||||
|
||||
---
|
||||
|
||||
## 五、后端开发规范
|
||||
|
||||
### 分层架构
|
||||
```
|
||||
Controller → AppService → Service → Mapper → Entity
|
||||
```
|
||||
|
||||
### 命名规范
|
||||
| 类型 | 规则 | 示例 |
|
||||
|------|------|------|
|
||||
| Controller | `XxxController` | `RegistrationController` |
|
||||
| AppService | `IXxxAppService` / `XxxAppServiceImpl` | `IRegistrationAppService` |
|
||||
| Service | `IXxxService` / `XxxServiceImpl` | `IRegistrationService` |
|
||||
| Mapper | `XxxMapper` | `RegistrationMapper` |
|
||||
| Entity | `Xxx` | `Registration` |
|
||||
| DTO | `XxxDto` / `XxxQueryDto` | `RegistrationDto` |
|
||||
|
||||
### 包结构
|
||||
```
|
||||
com.healthlink.his.web.{module}.controller
|
||||
com.healthlink.his.web.{module}.appservice
|
||||
com.healthlink.his.web.{module}.service
|
||||
com.healthlink.his.web.{module}.mapper
|
||||
com.healthlink.his.web.{module}.dto
|
||||
com.healthlink.his.domain.{module}
|
||||
com.healthlink.his.common.enums
|
||||
```
|
||||
|
||||
### 关键约束
|
||||
- 所有查询使用 `LambdaQueryWrapper`,禁止字符串拼接 SQL
|
||||
- `@Transactional(rollbackFor = Exception.class)` 管理事务
|
||||
- 所有接口标注 `@PreAuthorize` 权限控制
|
||||
- 患者敏感信息在日志中脱敏
|
||||
- **扩展功能不修改原有函数签名**
|
||||
- **DTO 字段类型防御**:前端传入的 Boolean 字段 → 改用 String + 业务层转换(Jackson 对 Boolean 严格校验);所有接受前端输入的 DTO 加 `@JsonIgnoreProperties(ignoreUnknown = true)`
|
||||
|
||||
---
|
||||
|
||||
## 六、前端开发规范
|
||||
|
||||
### 技术栈
|
||||
- Vue 3 + Vite + Element Plus + Pinia + Axios(基于 RuoYi-Vue3)
|
||||
|
||||
### 目录结构
|
||||
```
|
||||
src/api/{module}/ # API接口
|
||||
src/views/{module}/ # 页面组件
|
||||
src/store/modules/ # Pinia状态管理
|
||||
src/components/ # 公共组件
|
||||
```
|
||||
|
||||
### 关键约束
|
||||
- API前缀:`/healthlink-his/api/v1/`
|
||||
- 路由懒加载:`() => import('@/views/xxx/index.vue')`
|
||||
- 页面使用 `<script setup>` 语法
|
||||
- 按钮权限使用 `v-hasPermi` 指令
|
||||
- `onMounted` 中注册的事件在 `onUnmounted` 中移除
|
||||
|
||||
---
|
||||
|
||||
## 七、Agent 体系
|
||||
|
||||
### 角色与路由
|
||||
|
||||
| 代号 | 名称 | 角色 | 路由关键词 |
|
||||
|------|------|------|-----------|
|
||||
| liubei | 刘备 | 项目经理 | 协调、分派、异常升级 |
|
||||
| zhugeliang | 诸葛亮 | 架构师 | 分析、路由、设计 |
|
||||
| guanyu | 关羽 | 后端开发 | java, api, spring, service, controller |
|
||||
| zhaoyun | 赵云 | 前端开发 | vue, 界面, 显示, 弹窗, 按钮 |
|
||||
| xunyu | 荀彧 | DBA | 数据库, sql, 迁移, mapper xml |
|
||||
| zhangfei | 张飞 | 测试 | 测试, QA, 回归 |
|
||||
| huatuo | 华佗 | 验收 | 需求验收、质量确认 |
|
||||
| chenlin | 陈琳 | 文档 | 文档、归档、Git提交 |
|
||||
|
||||
### 协作流水线
|
||||
|
||||
```
|
||||
刘备(协调) → 诸葛亮(分析路由) → {关羽|赵云}(修复) → 荀彧(DB审查) → 张飞(测试) → 华佗(验收) → 陈琳(归档)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 八、快速参考命令
|
||||
|
||||
```bash
|
||||
# === 后端 ===
|
||||
export JAVA_HOME=/opt/jdk-25
|
||||
mvn clean compile -DskipTests # 编译
|
||||
mvn install -DskipTests # 构建
|
||||
mvn test -pl healthlink-his-application -Dtest="XxxTest" -Dsurefire.failIfNoSpecifiedTests=false
|
||||
|
||||
# === 前端 ===
|
||||
cd healthlink-his-ui
|
||||
npm run dev && npm run build:dev && npm run lint && npm run test:run
|
||||
|
||||
# === Git ===
|
||||
git status && git add -A && git commit -m "feat(module): desc" && git push origin develop
|
||||
```
|
||||
|
||||
## 详细规范
|
||||
---
|
||||
|
||||
→ 完整铁律: `MD/specs/IRON_RULES.md`
|
||||
→ 后端规范: `MD/specs/BACKEND_DEVELOPMENT_STANDARD.md`
|
||||
→ 后端清单: `MD/specs/BACKEND_CHECKLIST.md`
|
||||
→ 根目录完整规范: `RULES.md`
|
||||
## 九、过往教训
|
||||
|
||||
| Bug | 教训 | 根因 |
|
||||
|---|---|---|
|
||||
| #574 | 状态值 BOOKED(1)→应为 CHECKED_IN(3),前端映射缺失 | 没走完整状态链路 |
|
||||
| #574 | AI 看到编译错误直接删文件 | 没检查 git baseline |
|
||||
| #574 | 多次 fallback 修错文件 | 没用 rg 搜索所有引用 |
|
||||
| #574 | 签到后 booked_num 未累加 | 只改状态没改统计 |
|
||||
| #575 | 改了签到状态没检查退号流程 | 只验正向不验逆向 |
|
||||
| #575 | booked_num 应在预约时累加而非签到时 | 统计变更未验证实际值 |
|
||||
| #617 | 费用性质硬编码为 '0000'(自费),用户选医保无效 | 构建参数时写死默认值 |
|
||||
| #632 | Boolean DTO 接收字符串 "肝功能12项" 导致反序列化失败 | DTO 字段类型未做防御 |
|
||||
| #698 | 模型名拼写错误 mino→mimo 导致 400 | 外部配置值未实测验证 |
|
||||
| — | 修复完成未提交到 develop | 框架未强制验证提交 |
|
||||
| — | 退号流程只检查 BOOKED(1) 不兼容 CHECKED_IN(3) | 状态变更影响面分析缺失 |
|
||||
|
||||
---
|
||||
|
||||
> ⚠️ 本文件是 AI 开发规范的唯一信源。
|
||||
>
|
||||
> 📅 最后更新: 2026-06-10 | 来源: AgentForge Harness Iron Laws (39条)
|
||||
@@ -35,7 +35,7 @@ public class TenantOptionUtil {
|
||||
|
||||
// TODO:2025/10/17 李永兴提出的sys_option切换TenantOption临时防止报错方案,最晚2025年11月底删除
|
||||
String newValue = loginUser.getOptionMap().get(optionDict.getCode());
|
||||
String oldValue = loginUser.getOptionJson().path(optionDict.getCode()).asText();
|
||||
String oldValue = loginUser.getOptionJsonValue(optionDict.getCode());
|
||||
return StringUtils.isEmpty(newValue) ? oldValue : newValue;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package com.core.common.core.domain.model;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.core.common.core.domain.entity.SysRole;
|
||||
import com.core.common.core.domain.entity.SysUser;
|
||||
import lombok.Data;
|
||||
@@ -14,7 +12,7 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 登录çâ€Â¨户身份æÂƒé™ÂÂÂÂ
|
||||
* 登录用户身份权限
|
||||
*
|
||||
* @author system
|
||||
*/
|
||||
@@ -23,77 +21,77 @@ public class LoginUser implements UserDetails {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* çâ€Â¨户ID
|
||||
* 用户ID
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 部éâ€â€Â¨ID
|
||||
* 部门ID
|
||||
*/
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* çâ€Â¨户åâ€Â¯一标è¯â€ÂÂÂ
|
||||
* 用户唯一标识
|
||||
*/
|
||||
private String token;
|
||||
|
||||
/**
|
||||
* 登录æâ€â€Â¶éâ€â€Â´
|
||||
* 登录时间
|
||||
*/
|
||||
private Long loginTime;
|
||||
|
||||
/**
|
||||
* 过期æâ€â€Â¶éâ€â€Â´
|
||||
* 过期时间
|
||||
*/
|
||||
private Long expireTime;
|
||||
|
||||
/**
|
||||
* 登录IP地å€
|
||||
* 登录IP地址
|
||||
*/
|
||||
private String ipaddr;
|
||||
|
||||
/**
|
||||
* 登录地点
|
||||
* 登录地点
|
||||
*/
|
||||
private String loginLocation;
|
||||
|
||||
/**
|
||||
* æµÂÂÂÂ览器类型
|
||||
* 浏览器类型
|
||||
*/
|
||||
private String browser;
|
||||
|
||||
/**
|
||||
* æ“ÂÂÂÂ作系统
|
||||
* 操作系统
|
||||
*/
|
||||
private String os;
|
||||
|
||||
/**
|
||||
* æÂƒé™ÂÂÂÂåˆâ€â€ÂÂ表
|
||||
* 权限列表
|
||||
*/
|
||||
private Set<String> permissions;
|
||||
|
||||
/** 租户ID */
|
||||
/** 租户ID */
|
||||
private Integer tenantId;
|
||||
|
||||
/**
|
||||
* 机构/科室id
|
||||
* 机构/科室id
|
||||
*/
|
||||
private Long orgId;
|
||||
|
||||
/**
|
||||
* 所属医院id
|
||||
* 所属医院id
|
||||
*/
|
||||
private Long hospitalId;
|
||||
|
||||
/**
|
||||
* å‚与者id
|
||||
* 参与者id
|
||||
*/
|
||||
private Long practitionerId;
|
||||
|
||||
/**
|
||||
* option JSON串
|
||||
* option JSON串
|
||||
*/
|
||||
private tools.jackson.databind.node.ObjectNode optionJson;
|
||||
private Object optionJson;
|
||||
|
||||
/**
|
||||
* option Map
|
||||
@@ -101,12 +99,12 @@ public class LoginUser implements UserDetails {
|
||||
private Map<String, String> optionMap;
|
||||
|
||||
/**
|
||||
* 当å‰ÂÂÂÂ登录账å·角色集åÂÂÂÂËâ€ÂÂ
|
||||
* 当前登录账号角色集合
|
||||
*/
|
||||
private List<SysRole> roleList;
|
||||
|
||||
/**
|
||||
* çâ€Â¨户信æÂ¯
|
||||
* 用户信息
|
||||
*/
|
||||
private SysUser user;
|
||||
|
||||
@@ -146,10 +144,7 @@ public class LoginUser implements UserDetails {
|
||||
|
||||
public void setToken(String token) {
|
||||
this.token = token;
|
||||
}
|
||||
|
||||
@JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY)
|
||||
@Override
|
||||
} @Override
|
||||
public String getPassword() {
|
||||
return user.getPassword();
|
||||
}
|
||||
@@ -160,43 +155,35 @@ public class LoginUser implements UserDetails {
|
||||
}
|
||||
|
||||
/**
|
||||
* 账户是å¦未过期,过期æâ€â€Â 法验è¯ÂÂÂÂ
|
||||
*/
|
||||
@JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY)
|
||||
@Override
|
||||
* 账户是否未过期,过期无法验证
|
||||
*/ @Override
|
||||
public boolean isAccountNonExpired() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 指定çâ€Â¨户是å¦解éâ€ÂÂÂÂÂÂÂ,éâ€ÂÂÂÂÂÂÂ定的çâ€Â¨户æâ€â€Â 法进行身份验è¯ÂÂÂÂ
|
||||
* 指定用户是否解锁,锁定的用户无法进行身份验证
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY)
|
||||
@Override
|
||||
*/ @Override
|
||||
public boolean isAccountNonLocked() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 指示是å¦已过期的çâ€Â¨户的å‡ÂÂÂÂæÂ®(密ç ÂÂÂÂ),过期的å‡ÂÂÂÂæÂ®防æÂ¢认è¯ÂÂÂÂ
|
||||
* 指示是否已过期的用户的凭据(密码),过期的凭据防止认证
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY)
|
||||
@Override
|
||||
*/ @Override
|
||||
public boolean isCredentialsNonExpired() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是å¦å¯çâ€Â¨ ,ç¦ÂÂÂÂçâ€Â¨的çâ€Â¨户ä¸ÂÂÂÂ能身份验è¯ÂÂÂÂ
|
||||
* 是否可用 ,禁用的用户不能身份验证
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY)
|
||||
@Override
|
||||
*/ @Override
|
||||
public boolean isEnabled() {
|
||||
return true;
|
||||
}
|
||||
@@ -265,6 +252,15 @@ public class LoginUser implements UserDetails {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
/** Safe accessor for option values from optionJson (Map) */
|
||||
@SuppressWarnings("unchecked")
|
||||
public String getOptionJsonValue(String key) {
|
||||
if (optionJson instanceof Map<?, ?> map) {
|
||||
Object val = map.get(key);
|
||||
return val != null ? val.toString() : "";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
@Override
|
||||
public Collection<? extends GrantedAuthority> getAuthorities() {
|
||||
return java.util.Collections.emptyList();
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package com.core.framework.web.service;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
import tools.jackson.databind.json.JsonMapper;
|
||||
|
||||
import com.core.common.constant.CacheConstants;
|
||||
import com.core.common.constant.Constants;
|
||||
@@ -41,7 +39,7 @@ import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* 登录校验方法
|
||||
* 登录校验方法
|
||||
*
|
||||
* @author system
|
||||
*/
|
||||
@@ -69,33 +67,33 @@ public class SysLoginService {
|
||||
private ISysTenantOptionService sysTenantOptionService;
|
||||
|
||||
/**
|
||||
* 登录验è¯ÂÂ
|
||||
* 登录验证
|
||||
*
|
||||
* @param username çâ€Â¨æˆ·åÂÂÂÂ
|
||||
* @param password 密ç ÂÂ
|
||||
* @param code 验è¯ÂÂç ÂÂ
|
||||
* @param uuid Ã¥â€Â¯ä¸€æ ‡è¯â€Â
|
||||
* @param tenantId 租户ID
|
||||
* @return 结果
|
||||
* @param username 用户名
|
||||
* @param password 密码
|
||||
* @param code 验证码
|
||||
* @param uuid 唯一标识
|
||||
* @param tenantId 租户ID
|
||||
* @return 结果
|
||||
*/
|
||||
public String login(String username, String password, String code, String uuid, Integer tenantId) {
|
||||
// 验è¯ÂÂç ÂÂ校验
|
||||
// 验证码校验
|
||||
// validateCaptcha(username, code, uuid);
|
||||
|
||||
// 租户校验
|
||||
// 租户校验
|
||||
validateTenant(username, tenantId);
|
||||
// ä¿ÂÂå˜本次勾选租户
|
||||
// 保存本次勾选租户
|
||||
redisCache.setCacheObject(CacheConstants.LOGIN_SELECTED_TENANT + username, tenantId);
|
||||
|
||||
// 登录å‰ÂÂ置校验
|
||||
// 登录前置校验
|
||||
loginPreCheck(username, password);
|
||||
// çâ€Â¨æˆ·éªŒè¯ÂÂ
|
||||
// 用户验证
|
||||
Authentication authentication = null;
|
||||
try {
|
||||
UsernamePasswordAuthenticationToken authenticationToken =
|
||||
new UsernamePasswordAuthenticationToken(username, password);
|
||||
AuthenticationContextHolder.setContext(authenticationToken);
|
||||
// 该方法会去调çâ€Â¨UserDetailsServiceImpl.loadUserByUsername
|
||||
// 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
|
||||
authentication = authenticationManager.authenticate(authenticationToken);
|
||||
} catch (Exception e) {
|
||||
if (e instanceof BadCredentialsException ex) {
|
||||
@@ -113,80 +111,80 @@ public class SysLoginService {
|
||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS,
|
||||
MessageUtils.message("user.login.success")));
|
||||
LoginUser loginUser = (LoginUser)authentication.getPrincipal();
|
||||
// 设置登录çâ€Â¨æˆ·ä¿¡æÂ¯
|
||||
// 设置登录用户信息
|
||||
this.setLoginUserInfo(loginUser, tenantId);
|
||||
// çâ€ÂŸæˆÂÂtoken
|
||||
// 生成token
|
||||
return tokenService.createToken(loginUser);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置登录çâ€Â¨æˆ·ä¿¡æÂ¯
|
||||
* 设置登录用户信息
|
||||
*
|
||||
* @param loginUser 登录çâ€Â¨æˆ·
|
||||
* @param tenantId 租户ID
|
||||
* @param loginUser 登录用户
|
||||
* @param tenantId 租户ID
|
||||
*/
|
||||
public void setLoginUserInfo(LoginUser loginUser, Integer tenantId) {
|
||||
// // 登录æâ€â€Ã‚¶set租户id
|
||||
// // 登录时set租户id
|
||||
// Integer tenantId = 0;
|
||||
// ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
|
||||
// if (attributes != null) {
|
||||
// HttpServletRequest request = attributes.getRequest();
|
||||
// // 从请求头获å–租户ID,å‡设headerÃ¥ÂÂÂÂ称为"X-Tenant-ID" ; 登录接å£å‰ÂÂ端把租户idæâ€Â¾åˆ°è¯·æ±‚头里
|
||||
// // 从请求头获取租户ID,假设header名称为"X-Tenant-ID" ; 登录接口前端把租户id放到请求头里
|
||||
// String tenantIdHeader = request.getHeader("X-Tenant-ID");
|
||||
// if (tenantIdHeader != null && !tenantIdHeader.isEmpty()) {
|
||||
// tenantId = Integer.parseInt(tenantIdHeader);
|
||||
// }
|
||||
// }
|
||||
// // 设置租户id
|
||||
// // 设置租户id
|
||||
// loginUser.setTenantId(tenantId);
|
||||
// 记录登录信æÂ¯
|
||||
// 记录登录信息
|
||||
recordLoginInfo(loginUser.getUserId());
|
||||
// 设置登录çâ€Â¨æˆ·çš„ä¿¡æÂ¯
|
||||
// 设置登录用户的信息
|
||||
LoginUserExtend loginUserExtend = userService.getLoginUserExtend(loginUser.getUserId());
|
||||
if (loginUserExtend != null) {
|
||||
loginUser.setOrgId(loginUserExtend.getOrgId()); // 科室id
|
||||
loginUser.setPractitionerId(loginUserExtend.getPractitionerId()); // å‚与者id
|
||||
loginUser.setHospitalId(userService.getHospitalIdByOrgId(loginUserExtend.getOrgId())); // 所属医院id
|
||||
loginUser.setOrgId(loginUserExtend.getOrgId()); // 科室id
|
||||
loginUser.setPractitionerId(loginUserExtend.getPractitionerId()); // 参与者id
|
||||
loginUser.setHospitalId(userService.getHospitalIdByOrgId(loginUserExtend.getOrgId())); // 所属医院id
|
||||
// user
|
||||
loginUser.getUser().setOrgId(loginUserExtend.getOrgId()); // 科室id
|
||||
loginUser.getUser().setOrgName(loginUserExtend.getOrgName()); // 科室åÂÂÂÂç§°
|
||||
loginUser.getUser().setOrgId(loginUserExtend.getOrgId()); // 科室id
|
||||
loginUser.getUser().setOrgName(loginUserExtend.getOrgName()); // 科室名称
|
||||
}
|
||||
List<SysRole> roleList = userService.getRoleList(loginUser.getUserId());
|
||||
if (!roleList.isEmpty()) {
|
||||
loginUser.setRoleList(roleList);
|
||||
}
|
||||
|
||||
// 设置租户ID
|
||||
// 设置租户ID
|
||||
loginUser.getUser().setTenantId(tenantId);
|
||||
loginUser.setTenantId(tenantId);
|
||||
|
||||
// option集åÂÂËâ€
|
||||
// option集合
|
||||
List<Map<String, String>> optionList = userService.getOptionList(tenantId);
|
||||
if (optionList.isEmpty()) {
|
||||
throw new IllegalArgumentException("未匹é…ÂÂ到optionä¿¡æÂ¯");
|
||||
throw new IllegalArgumentException("未匹配到option信息");
|
||||
}
|
||||
ObjectNode optionJson = JsonMapper.builder().build().createObjectNode();
|
||||
Map<String, String> optionJsonMap = new java.util.HashMap<>();
|
||||
for (Map<String, String> map : optionList) {
|
||||
String key = map.get("optionkey");
|
||||
String value = map.get("optionvalue");
|
||||
optionJson.put(key, value);
|
||||
optionJsonMap.put(key, value);
|
||||
}
|
||||
loginUser.setOptionJson(optionJson);
|
||||
loginUser.setOptionJson(optionJsonMap);
|
||||
|
||||
// TODO:下é¢的é…ÂÂ置项å¯çâ€Â¨åÂŽ,上é¢option集åˆ处ç†注释掉
|
||||
// TODO:下面的配置项启用后,上面option集合处理注释掉
|
||||
|
||||
// 全部租户é…ÂÂ置项
|
||||
// 全部租户配置项
|
||||
Map<String, String> optionMap = sysTenantOptionService.getAllTenantOption(tenantId);
|
||||
loginUser.setOptionMap(optionMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验验è¯ÂÂç ÂÂ
|
||||
* 校验验证码
|
||||
*
|
||||
* @param username çâ€Â¨æˆ·åÂÂÂÂ
|
||||
* @param code 验è¯ÂÂç ÂÂ
|
||||
* @param uuid Ã¥â€Â¯ä¸€æ ‡è¯â€Â
|
||||
* @return 结果
|
||||
* @param username 用户名
|
||||
* @param code 验证码
|
||||
* @param uuid 唯一标识
|
||||
* @return 结果
|
||||
*/
|
||||
public void validateCaptcha(String username, String code, String uuid) {
|
||||
boolean captchaEnabled = configService.selectCaptchaEnabled();
|
||||
@@ -208,33 +206,33 @@ public class SysLoginService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录å‰ÂÂ置校验
|
||||
* 登录前置校验
|
||||
*
|
||||
* @param username çâ€Â¨æˆ·åÂÂÂÂ
|
||||
* @param password çâ€Â¨æˆ·å¯†ç ÂÂ
|
||||
* @param username 用户名
|
||||
* @param password 用户密码
|
||||
*/
|
||||
public void loginPreCheck(String username, String password) {
|
||||
// çâ€Â¨æˆ·åÂÂÂÂ或密ç ÂÂ为空 éâ€Â™è¯¯
|
||||
// 用户名或密码为空 错误
|
||||
if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {
|
||||
AsyncManager.me().execute(
|
||||
AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("not.null")));
|
||||
throw new UserNotExistsException();
|
||||
}
|
||||
// 密ç ÂÂ如果ä¸ÂÂ在指定范围内 éâ€Â™è¯¯
|
||||
// 密码如果不在指定范围内 错误
|
||||
if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
|
||||
|| password.length() > UserConstants.PASSWORD_MAX_LENGTH) {
|
||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL,
|
||||
MessageUtils.message("user.password.not.match")));
|
||||
throw new UserPasswordNotMatchException();
|
||||
}
|
||||
// çâ€Â¨æˆ·åÂÂÂÂä¸ÂÂ在指定范围内 éâ€Â™è¯¯
|
||||
// 用户名不在指定范围内 错误
|
||||
if (username.length() < UserConstants.USERNAME_MIN_LENGTH
|
||||
|| username.length() > UserConstants.USERNAME_MAX_LENGTH) {
|
||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL,
|
||||
MessageUtils.message("user.password.not.match")));
|
||||
throw new UserPasswordNotMatchException();
|
||||
}
|
||||
// IP黑åÂÂÂÂå•校验
|
||||
// IP黑名单校验
|
||||
String blackStr = configService.selectConfigByKey("sys.login.blackIPList");
|
||||
if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) {
|
||||
AsyncManager.me().execute(
|
||||
@@ -244,9 +242,9 @@ public class SysLoginService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 记录登录信æÂ¯
|
||||
* 记录登录信息
|
||||
*
|
||||
* @param userId çâ€Â¨æˆ·ID
|
||||
* @param userId 用户ID
|
||||
*/
|
||||
public void recordLoginInfo(Long userId) {
|
||||
SysUser sysUser = new SysUser();
|
||||
@@ -257,32 +255,32 @@ public class SysLoginService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验租户
|
||||
* 校验租户
|
||||
*
|
||||
* @param username çâ€Â¨æˆ·åÂÂÂÂ
|
||||
* @param tenantId 租户ID
|
||||
* @param username 用户名
|
||||
* @param tenantId 租户ID
|
||||
*/
|
||||
private void validateTenant(String username, Integer tenantId) {
|
||||
// 租户éž空校验
|
||||
// 租户非空校验
|
||||
if (tenantId == null) {
|
||||
throw new ServiceException("请指定所属医院");
|
||||
throw new ServiceException("请指定所属医院");
|
||||
}
|
||||
// 查询çâ€Â¨æˆ·ç»‘定的租户åˆâ€â€ÃƒÂ¨Ã‚¡Â¨
|
||||
// 查询用户绑定的租户列表
|
||||
R<List<SysTenant>> bindTenantList = sysTenantService.getUserBindTenantList(username);
|
||||
// 租户åˆ法性校验
|
||||
// 租户合法性校验
|
||||
Optional<SysTenant> currentTenantOptional =
|
||||
bindTenantList.getData().stream().filter(e -> tenantId.equals(e.getId())).findFirst();
|
||||
if (currentTenantOptional.isEmpty()) {
|
||||
throw new ServiceException("所属医院æâ€â€Ã‚ Ã¦Âƒé™ÂÂ");
|
||||
throw new ServiceException("所属医院无权限");
|
||||
}
|
||||
// 租户状æ€ÂÂ校验
|
||||
// 租户状态校验
|
||||
SysTenant currentTenant = currentTenantOptional.get();
|
||||
if (TenantStatus.DISABLE.getCode().equals(currentTenant.getStatus())) {
|
||||
throw new ServiceException("所属医院åÂÂύâ€Â¨");
|
||||
throw new ServiceException("所属医院停用");
|
||||
}
|
||||
// 租户删除状æ€ÂÂ校验
|
||||
// 租户删除状态校验
|
||||
if (DelFlag.YES.getCode().equals(currentTenant.getDeleteFlag())) {
|
||||
throw new ServiceException("所属医院ä¸ÂÂå˜在");
|
||||
throw new ServiceException("所属医院不存在");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ public class HealthcareServiceController {
|
||||
boolean res = iChargeItemDefinitionService.addChargeItemDefinitionByHealthcareService(healthcareServiceAfterAdd,
|
||||
chargeItemDefinition);
|
||||
// 调用医保目录对照接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
// 医保开关打开并且,页面传了医保编码
|
||||
String ybNo = healthcareServiceFormData.getYbNo();
|
||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(ybNo)) {
|
||||
@@ -186,7 +186,7 @@ public class HealthcareServiceController {
|
||||
HealthcareService healthcareService = new HealthcareService();
|
||||
BeanUtils.copyProperties(healthcareServiceFormData, healthcareService);
|
||||
// 调用医保目录对照接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
// 医保开关打开并且,页面传了医保编码
|
||||
String ybNo = healthcareServiceFormData.getYbNo();
|
||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(ybNo)) {
|
||||
|
||||
@@ -581,7 +581,7 @@ public class OutpatientRefundAppServiceImpl implements IOutpatientRefundAppServi
|
||||
}
|
||||
}
|
||||
String fixmedinsCode =
|
||||
SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText();
|
||||
SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE);
|
||||
if (!HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) {
|
||||
if (!devReqIdList.isEmpty()) {
|
||||
List<DeviceRequest> deviceRequestList = deviceRequestService
|
||||
|
||||
@@ -317,9 +317,9 @@ public class OutpatientRegistrationAppServiceImpl implements IOutpatientRegistra
|
||||
CancelPaymentDto cancelPaymentDto = new CancelPaymentDto();
|
||||
BeanUtils.copyProperties(cancelRegPaymentDto, cancelPaymentDto);
|
||||
//LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
//String string1 = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText();
|
||||
//String string1 = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH);
|
||||
// 开通医保的处理
|
||||
if ("1".equals(SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText())
|
||||
if ("1".equals(SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH))
|
||||
&& account != null && !CommonConstants.BusinessName.DEFAULT_CONTRACT_NO.equals(account.getContractNo())) {
|
||||
CancelRegPaymentModel model = new CancelRegPaymentModel();
|
||||
BeanUtils.copyProperties(cancelRegPaymentDto, model);
|
||||
|
||||
@@ -211,7 +211,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
|
||||
if (deviceDefinitionService.updateById(deviceDefinition)) {
|
||||
|
||||
// 调用医保目录对照接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(deviceDefinition.getYbNo())) {
|
||||
R<?> r
|
||||
= ybService.directoryCheck(CommonConstants.TableName.ADM_DEVICE_DEFINITION, deviceDefinition.getId());
|
||||
@@ -336,7 +336,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
|
||||
deviceDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue());
|
||||
if (deviceDefinitionService.addDevice(deviceDefinition)) {
|
||||
// 调用医保目录对照接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(deviceDefinition.getYbNo())) {
|
||||
R<?> r
|
||||
= ybService.directoryCheck(CommonConstants.TableName.ADM_DEVICE_DEFINITION, deviceDefinition.getId());
|
||||
|
||||
@@ -378,7 +378,7 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
|
||||
// 更新诊疗信息
|
||||
if (activityDefinitionService.updateById(activityDefinition)) {
|
||||
// 调用医保目录对照接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(activityDefinition.getYbNo())) {
|
||||
R<?> r = ybService.directoryCheck(CommonConstants.TableName.WOR_ACTIVITY_DEFINITION,
|
||||
activityDefinition.getId());
|
||||
@@ -547,7 +547,7 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
|
||||
|
||||
if (activityDefinitionService.addDiagnosisTreatment(activityDefinition)) {
|
||||
// 调用医保目录对照接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(activityDefinition.getYbNo())) {
|
||||
R<?> r = ybService.directoryCheck(CommonConstants.TableName.WOR_ACTIVITY_DEFINITION,
|
||||
activityDefinition.getId());
|
||||
|
||||
@@ -278,7 +278,7 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
|
||||
if (updateMedicationDefinition) {
|
||||
// 调用医保目录对照接口
|
||||
String ybSwitch
|
||||
= SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
= SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(medicationDefinition.getYbNo())) {
|
||||
R<?> r = ybService.directoryCheck(CommonConstants.TableName.MED_MEDICATION_DEFINITION,
|
||||
medicationDefinition.getId());
|
||||
@@ -410,7 +410,7 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
|
||||
// 新增主表外来药品目录
|
||||
if (medicationDefinitionService.addMedication(medicationDetail)) {
|
||||
// 调用医保目录对照接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(medicationDetail.getYbNo())) {
|
||||
R<?> r = ybService.directoryCheck(CommonConstants.TableName.MED_MEDICATION_DEFINITION,
|
||||
medicationDetail.getId());
|
||||
|
||||
@@ -187,7 +187,7 @@ public class DepartmentReceiptApprovalServiceImpl implements IDepartmentReceiptA
|
||||
SupplyType.PURCHASE_STOCKIN.getValue());
|
||||
|
||||
// 调用医保商品采购接口 todo 科室材料相关医保接口未对应
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList =
|
||||
this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.PURCHASE_IN, false, true, false, now);
|
||||
@@ -274,7 +274,7 @@ public class DepartmentReceiptApprovalServiceImpl implements IDepartmentReceiptA
|
||||
SupplyType.PURCHASE_RETURN.getValue());
|
||||
|
||||
// 调用医保采购退货接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList =
|
||||
this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.RETURN_OUT, false, false, true, now);
|
||||
@@ -425,7 +425,7 @@ public class DepartmentReceiptApprovalServiceImpl implements IDepartmentReceiptA
|
||||
}
|
||||
|
||||
// 调用医保库存变更接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList,
|
||||
YbInvChgType.DESTRUCTION, false, false, false, now);
|
||||
@@ -522,7 +522,7 @@ public class DepartmentReceiptApprovalServiceImpl implements IDepartmentReceiptA
|
||||
}
|
||||
|
||||
String ybSwitch =
|
||||
SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
// 如果首次盘点信息不为空
|
||||
if (!firstSupplyItemDetailList.isEmpty()) {
|
||||
|
||||
@@ -366,7 +366,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
||||
}
|
||||
|
||||
// 调用医保商品采购接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList
|
||||
= this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.PURCHASE_IN, now, false);
|
||||
@@ -454,7 +454,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
||||
// 处理盘点追溯码
|
||||
traceNoAppService.updateTraceNoList(supplyItemDetailList, SupplyType.PRODUCT_STOCKTAKING.getValue());
|
||||
// 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText();
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH);
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedGainList = null;
|
||||
List<String> uploadFailedLossList = null;
|
||||
@@ -677,7 +677,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
||||
traceNoAppService.addTraceNoManage(supplyItemDetailList, TraceNoStatus.OUT.getValue(),
|
||||
SupplyType.PRODUCT_RETURN.getValue());
|
||||
// 调用医保采购退货接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList
|
||||
= this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.RETURN_OUT, now, false);
|
||||
@@ -769,7 +769,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
||||
SupplyType.LOSS_REPORT_FORM.getValue());
|
||||
|
||||
// 调用医保库存变更接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList
|
||||
= this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.DESTRUCTION, now, false);
|
||||
@@ -866,7 +866,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
||||
// 返回信息
|
||||
String returnMsg = null;
|
||||
// 调用医保库存变更接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList
|
||||
= this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.OTHER_OUT, now, false);
|
||||
@@ -962,7 +962,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
||||
// 返回信息
|
||||
String returnMsg = null;
|
||||
// 调用医保库存变更接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList
|
||||
= this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.OTHER_IN, now, false);
|
||||
|
||||
@@ -201,7 +201,7 @@ public class MaterialReceiptApprovalServiceImpl implements IMaterialReceiptAppro
|
||||
SupplyType.MATERIAL_STOCKIN.getValue());
|
||||
|
||||
// 调用医保商品采购接口 todo 相关医保接口未对应
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList =
|
||||
this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.PURCHASE_IN, false, true, false, now);
|
||||
@@ -304,7 +304,7 @@ public class MaterialReceiptApprovalServiceImpl implements IMaterialReceiptAppro
|
||||
SupplyType.MATERIAL_RETURN.getValue());
|
||||
|
||||
// 调用医保采购退货接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList =
|
||||
this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.RETURN_OUT, false, false, true, now);
|
||||
@@ -532,7 +532,7 @@ public class MaterialReceiptApprovalServiceImpl implements IMaterialReceiptAppro
|
||||
}
|
||||
|
||||
// 调用医保库存变更接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList,
|
||||
YbInvChgType.DESTRUCTION, false, false, false, now);
|
||||
@@ -627,7 +627,7 @@ public class MaterialReceiptApprovalServiceImpl implements IMaterialReceiptAppro
|
||||
}
|
||||
|
||||
String ybSwitch =
|
||||
SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
// 如果首次盘点信息不为空
|
||||
if (!firstSupplyItemDetailList.isEmpty()) {
|
||||
|
||||
@@ -142,8 +142,8 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
||||
message.put("createTime", "20251101143028");
|
||||
message.put("billQRCode", "QR_DATA_SCARLET");
|
||||
|
||||
var optionJson = SecurityUtils.getLoginUser().getOptionJson();
|
||||
String baseUrl = optionJson.path(CommonConstants.Option.URL).asText();
|
||||
var loginUser = SecurityUtils.getLoginUser();
|
||||
String baseUrl = loginUser.getOptionJsonValue(CommonConstants.Option.URL);
|
||||
message.put("pictureUrl", baseUrl + "/invoice/view?busNo=scarlet");
|
||||
message.put("pictureNetUrl", baseUrl + "/invoice/view?busNo=scarlet");
|
||||
|
||||
@@ -155,8 +155,8 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
||||
|
||||
private JsonNode createInternalSuccessResponse(JsonNode bill, String prefix) {
|
||||
String busNo = bill.path("busNo").asText();
|
||||
var optionJson = SecurityUtils.getLoginUser().getOptionJson();
|
||||
String baseUrl = optionJson.path(CommonConstants.Option.URL).asText();
|
||||
var loginUser = SecurityUtils.getLoginUser();
|
||||
String baseUrl = loginUser.getOptionJsonValue(CommonConstants.Option.URL);
|
||||
|
||||
ObjectNode message = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode();
|
||||
message.put("billBatchCode", prefix + "BC" + System.currentTimeMillis());
|
||||
@@ -495,7 +495,7 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
||||
logger.info("挂å·è¯·æ±‚傿•°ï¼š" + JsonUtils.toJson(bill));
|
||||
logger.info("———————————————————————————————————————————————————————————————————————————————————————");
|
||||
JsonNode resobj;
|
||||
if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().path("forwardSwitch").asText())) {
|
||||
if ("0".equals(SecurityUtils.getLoginUser().getOptionJsonValue("forwardSwitch"))) {
|
||||
resobj = PreInvoicePostForward(bill, "api/medical/invEBillRegistration");
|
||||
} else {
|
||||
resobj = PreInvoicePost(bill, "api/medical/invEBillRegistration");
|
||||
@@ -805,7 +805,7 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
||||
logger.info("************************************** 分 割 线 ***************************************");
|
||||
logger.info("门诊信æ¯å…¥å‚:" + JsonUtils.toJson(bill));
|
||||
logger.info("———————————————————————————————————————————————————————————————————————————————————————");
|
||||
if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().path("forwardSwitch").asText())) {
|
||||
if ("0".equals(SecurityUtils.getLoginUser().getOptionJsonValue("forwardSwitch"))) {
|
||||
resobj = PreInvoicePostForward(bill, "api/medical/invoiceEBillOutpatient");
|
||||
} else {
|
||||
resobj = PreInvoicePost(bill, "api/medical/invoiceEBillOutpatient");
|
||||
@@ -1118,7 +1118,7 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
||||
logger.info("************************************** 分 割 线 ***************************************");
|
||||
logger.info("ä½é™¢ä¿¡æ¯å…¥å‚:" + JsonUtils.toJson(bill));
|
||||
logger.info("———————————————————————————————————————————————————————————————————————————————————————");
|
||||
if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().path("forwardSwitch").asText())) {
|
||||
if ("0".equals(SecurityUtils.getLoginUser().getOptionJsonValue("forwardSwitch"))) {
|
||||
resobj = PreInvoicePostForward(bill, "api/medical/invEBillHospitalized");
|
||||
} else {
|
||||
resobj = PreInvoicePost(bill, "api/medical/invEBillHospitalized");
|
||||
@@ -1205,7 +1205,7 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
Practitioner user = practitionerService.getPractitionerByUserId(loginUser.getUserId());
|
||||
|
||||
var optionJson = SecurityUtils.getLoginUser().getOptionJson();
|
||||
|
||||
|
||||
ObjectNode bill = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode();
|
||||
|
||||
@@ -1248,7 +1248,7 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
||||
// ------就诊信æ¯------
|
||||
// medicalInstitution 医疗机构类型 String 30 是 æŒ‰ç…§ã€ŠåŒ»ç–—æœºæž„ç®¡ç†æ¡ä¾‹å®žæ–½ç»†åˆ™ã€‹å’Œã€Šå«ç”Ÿéƒ¨å…³äºŽä¿®è®¢<åŒ»ç–—æœºæž„ç®¡ç†æ¡ä¾‹å®žæ–½ç»†åˆ™>ç¬¬ä¸‰æ¡æœ‰å…³å†…容的通知》确定的医疗å«ç”Ÿæœºæž„类别
|
||||
String medicalInstitution;
|
||||
switch (optionJson.path("hospital_lv").asText()) {
|
||||
switch (loginUser.getOptionJsonValue("hospital_lv")) {
|
||||
case "01":
|
||||
medicalInstitution = "三级特ç‰";
|
||||
break;
|
||||
@@ -1285,7 +1285,7 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
||||
}
|
||||
bill.put("medicalInstitution", medicalInstitution);
|
||||
// medCareInstitution åŒ»ä¿æœºæž„ç¼–ç String 60 å¦ åŒ»ä¿æœºæž„的唯一编ç
|
||||
bill.put("medCareInstitution", optionJson.path(CommonConstants.Option.HOSPITAL_CODE).asText());
|
||||
bill.put("medCareInstitution", loginUser.getOptionJsonValue(CommonConstants.Option.HOSPITAL_CODE));
|
||||
|
||||
// 410 长期照护ä¿é™© //310 èŒå·¥åŸºæœ¬åŒ»ç–—ä¿é™©
|
||||
// 320 公务员医疗补助 //330 大é¢åŒ»ç–—费用补助
|
||||
@@ -1572,7 +1572,7 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
||||
logger.info("************************************** 分 割 线 ***************************************");
|
||||
logger.info("冲红信æ¯å…¥å‚:" + JsonUtils.toJson(bill));
|
||||
logger.info("———————————————————————————————————————————————————————————————————————————————————————");
|
||||
if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().path("forwardSwitch").asText())) {
|
||||
if ("0".equals(SecurityUtils.getLoginUser().getOptionJsonValue("forwardSwitch"))) {
|
||||
resobj = PreInvoicePostForward(bill, "api/medical/writeOffEBill");
|
||||
} else {
|
||||
resobj = PreInvoicePost(bill, "api/medical/writeOffEBill");
|
||||
|
||||
@@ -449,10 +449,10 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
||||
map.put("REGISTRATION_FEE", sum13);// 挂å·è´¹
|
||||
map.put("OTHER_FEE", sum14);// 其他费用
|
||||
|
||||
// String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText();
|
||||
var optionJson = SecurityUtils.getLoginUser().getOptionJson();
|
||||
String fixmedinsName = optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText();
|
||||
String fixmedinsCode = optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText();
|
||||
// String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH);
|
||||
var loginUser = SecurityUtils.getLoginUser();
|
||||
String fixmedinsName = loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_NAME);
|
||||
String fixmedinsCode = loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE);
|
||||
|
||||
map.put("fixmedinsName", fixmedinsName);// 医院åç§°
|
||||
map.put("fixmedinsCode", fixmedinsCode);// 医院编å·
|
||||
@@ -819,10 +819,10 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
||||
.add(sum11).add(sum12).add(sum13).add(sum14);
|
||||
map.put("SUM", sum15);// åˆè®¡è´¹ç”¨
|
||||
|
||||
// String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText();
|
||||
var optionJson = SecurityUtils.getLoginUser().getOptionJson();
|
||||
String fixmedinsName = optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText();
|
||||
String fixmedinsCode = optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText();
|
||||
// String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH);
|
||||
var loginUser = SecurityUtils.getLoginUser();
|
||||
String fixmedinsName = loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_NAME);
|
||||
String fixmedinsCode = loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE);
|
||||
|
||||
map.put("fixmedinsName", fixmedinsName);
|
||||
map.put("fixmedinsCode", fixmedinsCode);
|
||||
@@ -1383,10 +1383,10 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
||||
.add(sum11).add(sum12).add(sum13).add(sum14);
|
||||
map.put("SUM", sum15);// åˆè®¡è´¹ç”¨
|
||||
|
||||
// String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText();
|
||||
var optionJson = SecurityUtils.getLoginUser().getOptionJson();
|
||||
String fixmedinsName = optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText();
|
||||
String fixmedinsCode = optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText();
|
||||
// String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH);
|
||||
var loginUser = SecurityUtils.getLoginUser();
|
||||
String fixmedinsName = loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_NAME);
|
||||
String fixmedinsCode = loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE);
|
||||
|
||||
map.put("fixmedinsName", fixmedinsName);
|
||||
map.put("fixmedinsCode", fixmedinsCode);
|
||||
@@ -2183,9 +2183,9 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
||||
|
||||
private Map getMap(Map<String, Object> map) {
|
||||
|
||||
var optionJson = SecurityUtils.getLoginUser().getOptionJson();
|
||||
String fixmedinsName = optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText();
|
||||
String fixmedinsCode = optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText();
|
||||
var loginUser = SecurityUtils.getLoginUser();
|
||||
String fixmedinsName = loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_NAME);
|
||||
String fixmedinsCode = loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE);
|
||||
|
||||
map.put("fixmedinsName", fixmedinsName);
|
||||
map.put("fixmedinsCode", fixmedinsCode);
|
||||
@@ -2484,9 +2484,9 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
||||
}
|
||||
}
|
||||
|
||||
var optionJson = SecurityUtils.getLoginUser().getOptionJson();
|
||||
String fixmedinsName = optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText();
|
||||
String fixmedinsCode = optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText();
|
||||
var loginUser = SecurityUtils.getLoginUser();
|
||||
String fixmedinsName = loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_NAME);
|
||||
String fixmedinsCode = loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE);
|
||||
|
||||
map.put("fixmedinsName", fixmedinsName);// 医院åç§°
|
||||
map.put("fixmedinsCode", fixmedinsCode);// 医院编å·
|
||||
@@ -2710,7 +2710,7 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
||||
Catalogue1312QueryParam catalogue1312QueryParam = new Catalogue1312QueryParam();
|
||||
catalogue1312QueryParam.setHilistCode(activityDefinition.getYbNo());
|
||||
catalogue1312QueryParam.setInsuplcAdmdvs(
|
||||
SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.INSUPLC_ADMDVS).asText());
|
||||
SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.INSUPLC_ADMDVS));
|
||||
// 直接解æžï¼ˆé»˜è®¤ ISO æ ¼å¼ï¼‰
|
||||
LocalDate localDate = LocalDate.parse("2025-01-01");
|
||||
// 转æ¢ä¸º Date
|
||||
|
||||
@@ -357,7 +357,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
||||
if (StringUtils.isEmpty(chargeItem.getChildrenJson())
|
||||
|| CommonConstants.BusinessName.DEFAULT_CONTRACT_NO.equals(account.getContractNo())
|
||||
|| "0".equals(
|
||||
SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText())) {
|
||||
SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH))) {
|
||||
PaymentedItemModel piModel = ConverterToPaymenItemModel(diagList, chargeItem);
|
||||
prePaymentedItems.add(piModel);
|
||||
} else {
|
||||
@@ -1863,8 +1863,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
||||
}
|
||||
|
||||
Clinic2206OrderOutput clinic2206OrderResult;
|
||||
String string = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText();
|
||||
if ("1".equals(SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText())
|
||||
String string = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH);
|
||||
if ("1".equals(SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH))
|
||||
&& !(CommonConstants.BusinessName.DEFAULT_CONTRACT_NO
|
||||
.equals(outpatientRegistrationAddParam.getAccountFormData().getContractNo())
|
||||
|| CommonConstants.BusinessName.DEFAULT_STUDENT_CONTRACT_NO
|
||||
@@ -1959,7 +1959,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
||||
throw new ServiceException("请选择合适的费用性质");
|
||||
}
|
||||
com.healthlink.his.financial.model.PaymentResult paymentResult;
|
||||
if ("1".equals(SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText())
|
||||
if ("1".equals(SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH))
|
||||
&& !CommonConstants.BusinessName.DEFAULT_CONTRACT_NO
|
||||
.equals(outpatientRegistrationAddParam.getAccountFormData().getContractNo())
|
||||
&& contract.getYbFlag() == 1) {
|
||||
|
||||
@@ -189,7 +189,7 @@ public class PharmacyDispensaryReceiptApprovalServiceImpl implements IPharmacyDi
|
||||
SupplyType.PURCHASE_STOCKIN.getValue());
|
||||
|
||||
// 调用医保商品采购接口 todo 药房相关医保接口未对应
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList =
|
||||
this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.PURCHASE_IN, false, true, false, now);
|
||||
@@ -276,7 +276,7 @@ public class PharmacyDispensaryReceiptApprovalServiceImpl implements IPharmacyDi
|
||||
SupplyType.PURCHASE_RETURN.getValue());
|
||||
|
||||
// 调用医保采购退货接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList =
|
||||
this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.RETURN_OUT, false, false, true, now);
|
||||
@@ -427,7 +427,7 @@ public class PharmacyDispensaryReceiptApprovalServiceImpl implements IPharmacyDi
|
||||
}
|
||||
|
||||
// 调用医保库存变更接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList,
|
||||
YbInvChgType.DESTRUCTION, false, false, false, now);
|
||||
@@ -524,7 +524,7 @@ public class PharmacyDispensaryReceiptApprovalServiceImpl implements IPharmacyDi
|
||||
}
|
||||
|
||||
String ybSwitch =
|
||||
SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
// 如果首次盘点信息不为空
|
||||
if (!firstSupplyItemDetailList.isEmpty()) {
|
||||
|
||||
@@ -213,7 +213,7 @@ public class PharmacyWarehouseReceiptApprovalServiceImpl implements IPharmacyWar
|
||||
SupplyType.CABINET_STOCKIN.getValue());
|
||||
|
||||
// 调用医保商品采购接口 todo 药库相关医保接口未对应
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList =
|
||||
this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.PURCHASE_IN, false, true, false, now);
|
||||
@@ -316,7 +316,7 @@ public class PharmacyWarehouseReceiptApprovalServiceImpl implements IPharmacyWar
|
||||
SupplyType.CABINET_RETURN.getValue());
|
||||
|
||||
// 调用医保采购退货接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList =
|
||||
this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.RETURN_OUT, false, false, true, now);
|
||||
@@ -545,7 +545,7 @@ public class PharmacyWarehouseReceiptApprovalServiceImpl implements IPharmacyWar
|
||||
}
|
||||
|
||||
// 调用医保库存变更接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<String> uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList,
|
||||
YbInvChgType.DESTRUCTION, false, false, false, now);
|
||||
@@ -640,7 +640,7 @@ public class PharmacyWarehouseReceiptApprovalServiceImpl implements IPharmacyWar
|
||||
}
|
||||
|
||||
String ybSwitch =
|
||||
SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
// 如果首次盘点信息不为空
|
||||
if (!firstSupplyItemDetailList.isEmpty()) {
|
||||
|
||||
@@ -450,7 +450,7 @@ public class InHospitalReturnMedicineAppServiceImpl implements IInHospitalReturn
|
||||
String returnMsg = null;
|
||||
List<String> uploadFailedNoList;
|
||||
// 调用医保商品销售退货接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<DeviceDefinition> deviceDefinitions = new ArrayList<>();
|
||||
List<MedicationDefinition> medicationDefinitions = new ArrayList<>();
|
||||
@@ -647,7 +647,7 @@ public class InHospitalReturnMedicineAppServiceImpl implements IInHospitalReturn
|
||||
.setDrugtracinfo(medicalTraceNo).setCertno(dispenseInventoryDto.getIdCard());
|
||||
// 查看所属医院
|
||||
String fixmedinsCode =
|
||||
SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText();
|
||||
SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE);
|
||||
if (dispenseInventoryDto.getPreparerName() == null && HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) {
|
||||
medical3506Param.setSelRetnOpterName(CommonConstants.CCU.DisDeviceDoctorName);
|
||||
} else {
|
||||
@@ -677,7 +677,7 @@ public class InHospitalReturnMedicineAppServiceImpl implements IInHospitalReturn
|
||||
MedicalInventory3511Param medicalInventory3511Param = new MedicalInventory3511Param();
|
||||
|
||||
String fixmedinsCode =
|
||||
SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText();
|
||||
SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE);
|
||||
// TODO
|
||||
medicalInventory3511Param.setFixmedinsCode(fixmedinsCode).setMedinsListCodg(dispenseInventoryDto.getYbNo())
|
||||
.setFixmedinsBchno(dispenseInventoryDto.getLotNumber()).setBegndate(dispenseInventoryDto.getDispenseTime())
|
||||
|
||||
@@ -347,7 +347,7 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen
|
||||
// String returnMsg = null;
|
||||
// List<String> uploadFailedNoList;
|
||||
// // 调用医保商品销售接口
|
||||
// String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText();
|
||||
// String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH);
|
||||
// // 医保开关
|
||||
// if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
// // 设置进销存参数
|
||||
@@ -388,7 +388,7 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen
|
||||
public R<?> dispenseMedicalConsumables(List<Long> chargeItemIds) {
|
||||
// 查看所属医院
|
||||
String fixmedinsCode
|
||||
= SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText();
|
||||
= SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE);
|
||||
if (!HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) {
|
||||
return R.ok();
|
||||
}
|
||||
@@ -498,7 +498,7 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen
|
||||
// // 返回信息
|
||||
// String returnMsg = null;
|
||||
// // 调用医保商品销售接口
|
||||
// String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText();
|
||||
// String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH);
|
||||
// List<String> uploadFailedNoList = new ArrayList<>();
|
||||
// // 医保开关
|
||||
// if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
|
||||
@@ -443,7 +443,7 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
||||
String returnMsg = null;
|
||||
List<String> uploadFailedNoList;
|
||||
// 调用医保商品销售退货接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
List<DeviceDefinition> deviceDefinitions = new ArrayList<>();
|
||||
List<MedicationDefinition> medicationDefinitions = new ArrayList<>();
|
||||
@@ -641,7 +641,7 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
||||
.setDrugtracinfo(medicalTraceNo).setCertno(dispenseInventoryDto.getIdCard());
|
||||
// 查看所属医院
|
||||
String fixmedinsCode
|
||||
= SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText();
|
||||
= SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE);
|
||||
if (dispenseInventoryDto.getPreparerName() == null && HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) {
|
||||
medical3506Param.setSelRetnOpterName(CommonConstants.CCU.DisDeviceDoctorName);
|
||||
} else {
|
||||
@@ -671,7 +671,7 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
||||
MedicalInventory3511Param medicalInventory3511Param = new MedicalInventory3511Param();
|
||||
|
||||
String fixmedinsCode
|
||||
= SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText();
|
||||
= SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE);
|
||||
// TODO
|
||||
medicalInventory3511Param.setFixmedinsCode(fixmedinsCode).setMedinsListCodg(dispenseInventoryDto.getYbNo())
|
||||
.setFixmedinsBchno(dispenseInventoryDto.getLotNumber()).setBegndate(dispenseInventoryDto.getDispenseTime())
|
||||
|
||||
@@ -269,7 +269,7 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe
|
||||
String returnMsg = null;
|
||||
List<String> uploadFailedNoList;
|
||||
// 调用医保商品销售接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText();
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH);
|
||||
// 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
// 设置进销存参数
|
||||
|
||||
@@ -495,7 +495,7 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
||||
String returnMsg = null;
|
||||
List<String> uploadFailedNoList;
|
||||
// 调用医保商品销售接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||
// 设置进销存参数
|
||||
List<MedicationDefinition> medicationDefinitions = medicationDefinitionService.listByIds(
|
||||
@@ -707,7 +707,7 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
||||
}
|
||||
// 查看所属医院
|
||||
String fixmedinsCode
|
||||
= SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText();
|
||||
= SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE);
|
||||
if (dispenseInventoryDto.getPreparerName() == null && HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) {
|
||||
medical3505Param.setSelRetnOpterName(CommonConstants.CCU.DisDeviceDoctorName);
|
||||
} else {
|
||||
|
||||
@@ -8,6 +8,7 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.core.domain.model.LoginUser;
|
||||
import com.core.common.utils.AgeCalculatorUtil;
|
||||
import com.core.common.utils.SecurityUtils;
|
||||
import com.healthlink.his.administration.service.IEncounterService;
|
||||
@@ -82,11 +83,11 @@ public class InpatientMedicalRecordHomePageCollectionAppServiceImpl implements I
|
||||
df10_2.setMaximumFractionDigits(2);
|
||||
|
||||
// // 获å–当å‰ç™»é™†ç”¨æˆ·ä¿¡æ¯
|
||||
// LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
// Practitioner user = practitionerService.getPractitionerByUserId(loginUser.getUserId());
|
||||
|
||||
// 获å–系统信æ¯
|
||||
var optionJson = SecurityUtils.getLoginUser().getOptionJson();
|
||||
|
||||
|
||||
// ä½é™¢ç—…案csv傿•°
|
||||
InpatientMedicalRecordHomePageCollectionDto medicalRecordHomePage =
|
||||
@@ -98,9 +99,9 @@ public class InpatientMedicalRecordHomePageCollectionAppServiceImpl implements I
|
||||
|
||||
for (InpatientMedicalRecordHomePageMakeDto item : medicalRecordHomePageMakeList) {
|
||||
// 组织机构代ç å—符 30 å¿…å¡«
|
||||
medicalRecordHomePage.setA01(optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText());
|
||||
medicalRecordHomePage.setA01(loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE));
|
||||
// 医疗机构åç§° A02 å—符 80 å¿…å¡«
|
||||
medicalRecordHomePage.setA02(optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText());
|
||||
medicalRecordHomePage.setA02(loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_NAME));
|
||||
// ç—…æ¡ˆå· A48 å—符 50 å¿…å¡«
|
||||
medicalRecordHomePage.setA48(item.getA48());
|
||||
// ä½é™¢æ¬¡æ•° A49 æ•°å— 4 å¿…å¡«
|
||||
|
||||
@@ -192,11 +192,11 @@ public class ReportAppServiceImpl implements IReportAppService {
|
||||
*/
|
||||
private String[] getOrgInfo() {
|
||||
// 获å–系统信æ¯
|
||||
var optionJson = SecurityUtils.getLoginUser().getOptionJson();
|
||||
var loginUser = SecurityUtils.getLoginUser();
|
||||
// 医疗机构代ç
|
||||
String fixmedinsCode = optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText();
|
||||
String fixmedinsCode = loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE);
|
||||
// 组织机构åç§°
|
||||
String fixmedinsName = optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText();
|
||||
String fixmedinsName = loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_NAME);
|
||||
return new String[]{fixmedinsCode, fixmedinsName};
|
||||
}
|
||||
|
||||
|
||||
@@ -293,7 +293,7 @@ public class YbController {
|
||||
.setFundPaySumamt(financialHand3203WebParam.getFundAppySum().doubleValue())
|
||||
.setAcctPay(financialHand3203WebParam.getAcctPay().doubleValue())
|
||||
.setFixmedinsSetlCnt(Integer.parseInt(financialHand3203WebParam.getSetlCnt()))
|
||||
.setInsuplcAdmdvs(SecurityUtils.getLoginUser().getOptionJson().path("admvs").asText());
|
||||
.setInsuplcAdmdvs(SecurityUtils.getLoginUser().getOptionJsonValue("admvs"));
|
||||
|
||||
Result result = ybHttpUtils.reconcileGeneralLedger(financial3201Param);
|
||||
if (result.getCode().equals(CommonConstant.SC_OK_200)) {
|
||||
@@ -336,7 +336,7 @@ public class YbController {
|
||||
HttpServletResponse response) throws IOException {
|
||||
List<Financial3202FileParam> financial3202FileParams
|
||||
= ybDao.paymentCompareYbSettle(financial3202WebParam.getSettlementIdList());
|
||||
// String filePath = SecurityUtils.getLoginUser().getOptionJson().path("filePath").asText()+new
|
||||
// String filePath = SecurityUtils.getLoginUser().getOptionJsonValue("filePath")+new
|
||||
// Date().getTime()+".txt";
|
||||
// String filePath = "C:\\Users\\bjbUser\\Desktop\\"+new Date().getTime()+".txt";
|
||||
// try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
|
||||
@@ -407,7 +407,7 @@ public class YbController {
|
||||
public R<?> reconcileGeneral(List<String> settlementIdList, String filePath, String fileQuryNo, String setlOptins,
|
||||
String clrType) {
|
||||
// todo:这里需要考虑3302接口的参数是后台合计还是由前台传入,因为这个参数还要和txt文件对应(既需要txt中的数据还需要db表中的一些数据),
|
||||
// String filePath = SecurityUtils.getLoginUser().getOptionJson().path("filePath").asText()+new
|
||||
// String filePath = SecurityUtils.getLoginUser().getOptionJsonValue("filePath")+new
|
||||
// Date().getTime()+".txt";
|
||||
List<Financial3202FileParam> financial3202FileParamList = new ArrayList<>();
|
||||
Resource resource = resourceLoader.getResource(filePath); // 或使用 "file:" 读取绝对路径
|
||||
@@ -783,7 +783,7 @@ public class YbController {
|
||||
Catalogue1312QueryParam catalogue1312QueryParam = new Catalogue1312QueryParam();
|
||||
catalogue1312QueryParam.setHilistCode(hilistCode);
|
||||
catalogue1312QueryParam.setInsuplcAdmdvs(
|
||||
SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.INSUPLC_ADMDVS).asText());
|
||||
SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.INSUPLC_ADMDVS));
|
||||
// 直接解析(默认 ISO 格式)
|
||||
LocalDate localDate = LocalDate.parse(dateStr);
|
||||
// 转换为 Date
|
||||
|
||||
@@ -54,7 +54,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService {
|
||||
ElepVeriPrescriptionOutput pcpResult = new ElepVeriPrescriptionOutput();
|
||||
BaseInfo baseInfo = ybParamBuilderUtil.getBaseInfo(medType, dutyDoctorName);
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("eleUrl").asText() + "/preCheckPrescription",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("eleUrl") + "/preCheckPrescription",
|
||||
pcp, baseInfo);
|
||||
// 参数处理
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
@@ -83,7 +83,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService {
|
||||
|
||||
ElepSignatureOutput esResult = new ElepSignatureOutput();
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("eleUrl").asText() + "/signature", eleSign,
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("eleUrl") + "/signature", eleSign,
|
||||
ybParamBuilderUtil.getBaseInfo("", ""));
|
||||
// 参数处理
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
@@ -112,7 +112,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService {
|
||||
|
||||
ElepUploadOutput euResult = new ElepUploadOutput();
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("eleUrl").asText() + "/upload",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("eleUrl") + "/upload",
|
||||
eleUploadInput, ybParamBuilderUtil.getBaseInfo("", ""));
|
||||
// 参数处理
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
@@ -141,7 +141,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService {
|
||||
|
||||
ElepRevokeOutput ereResult = new ElepRevokeOutput();
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("eleUrl").asText() + "/revoke",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("eleUrl") + "/revoke",
|
||||
eleRevokeInput, ybParamBuilderUtil.getBaseInfo("", ""));
|
||||
// 参数处理
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
@@ -173,7 +173,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService {
|
||||
// baseParam.setBaseInfo(ybParamBuilderUtil.getBaseInfo()).setData(o);
|
||||
QueryPrescription emrResult = new QueryPrescription();
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("eleUrl").asText() + "/querPrescription",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("eleUrl") + "/querPrescription",
|
||||
eleQueryPreInput, ybParamBuilderUtil.getBaseInfo("", ""));
|
||||
// 参数处理
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
@@ -201,7 +201,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService {
|
||||
|
||||
MedicationResultInquiry medResult = new MedicationResultInquiry();
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("eleUrl").asText() + "/medresult",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("eleUrl") + "/medresult",
|
||||
eleMedInput, ybParamBuilderUtil.getBaseInfo("", ""));
|
||||
// 参数处理
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
@@ -331,9 +331,9 @@ public class YbEleParamBuilderUtil {
|
||||
}
|
||||
|
||||
String fixmedinsCode =
|
||||
SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText();
|
||||
SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE);
|
||||
String fixmedinsName =
|
||||
SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_NAME).asText();
|
||||
SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.FIXMEDINS_NAME);
|
||||
|
||||
// 1-输入-就诊信æ¯
|
||||
ElepVeriVisitInfo eleInfo = new ElepVeriVisitInfo();
|
||||
@@ -424,10 +424,10 @@ public class YbEleParamBuilderUtil {
|
||||
SimpleDateFormat targetFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String targetDateStr = targetFormat.format(checkDate);
|
||||
|
||||
var optionJson = SecurityUtils.getLoginUser().getOptionJson();
|
||||
String outputPath = optionJson.path(CommonConstants.Option.OUTPUT_PATH).asText();
|
||||
String fixmedinsCode = optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText();
|
||||
String fixmedinsName = optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText();
|
||||
var loginUser = SecurityUtils.getLoginUser();
|
||||
String outputPath = loginUser.getOptionJsonValue(CommonConstants.Option.OUTPUT_PATH);
|
||||
String fixmedinsCode = loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_CODE);
|
||||
String fixmedinsName = loginUser.getOptionJsonValue(CommonConstants.Option.FIXMEDINS_NAME);
|
||||
|
||||
// 审方è¯å¸ˆä¿¡æ¯
|
||||
Practitioner practitioner = practitionerService.getOne(new LambdaQueryWrapper<Practitioner>()
|
||||
|
||||
@@ -153,7 +153,7 @@ public class PaymentReconciliationServiceImpl extends ServiceImpl<PaymentReconci
|
||||
List<PaymentedItemModel> paymentedItemList) {
|
||||
|
||||
PrePaymentResult prePaymentResult = null;
|
||||
String ybSwitchFlag = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText();
|
||||
String ybSwitchFlag = SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH);
|
||||
if (ybSwitchFlag.equals("0")) {
|
||||
contractBusNo = CommonConstants.BusinessName.DEFAULT_CONTRACT_NO;
|
||||
}
|
||||
@@ -186,7 +186,7 @@ public class PaymentReconciliationServiceImpl extends ServiceImpl<PaymentReconci
|
||||
Clinic2206OrderOutput clinic2206OrderOutput = null;
|
||||
ClinicReg2201Output reg2201Output = null;
|
||||
if (!medTypeKV.getKey().equals(YbMedType.GENERAL_OUTPATIENT.getValue()) && "1".equals(
|
||||
SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText())) {
|
||||
SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH))) {
|
||||
// 不是普通门诊就诊类型,补充挂号信息
|
||||
reg2201Output = ybManager.createRegWithMedType(contract, ybMdtrtCertType, busiCardInfo,
|
||||
medTypeKV.getValue().get(0).getEncounterId(),
|
||||
@@ -605,7 +605,7 @@ public class PaymentReconciliationServiceImpl extends ServiceImpl<PaymentReconci
|
||||
Clinic2206OrderOutput clinic2206OrderOutput = null;
|
||||
ClinicReg2201Output reg2201Output = null;
|
||||
if (!medTypeKV.getKey().equals(YbMedType.GENERAL_OUTPATIENT.getValue()) && "1"
|
||||
.equals(SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText())) {
|
||||
.equals(SecurityUtils.getLoginUser().getOptionJsonValue(CommonConstants.Option.YB_SWITCH))) {
|
||||
// 不是普通门诊就诊类型,补充挂号信息
|
||||
reg2201Output = ybManager.createRegWithMedType(contract, ybMdtrtCertType, busiCardInfo,
|
||||
medTypeKV.getValue().get(0).getEncounterId(),
|
||||
|
||||
@@ -77,7 +77,7 @@ public class YbHttpUtils {
|
||||
Info1101Output perinfo = null;
|
||||
// 发送请求
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/getPatinfo", readcard, null);
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/getPatinfo", readcard, null);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
}
|
||||
@@ -108,7 +108,7 @@ public class YbHttpUtils {
|
||||
Result result = null;
|
||||
ClinicReg2201Output clinicReg2201Output = new ClinicReg2201Output();
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/reg", reg, contract);
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/reg", reg, contract);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
}
|
||||
@@ -138,7 +138,7 @@ public class YbHttpUtils {
|
||||
ClinicReg2201Output clinicReg2201Output = new ClinicReg2201Output();
|
||||
// 发送请求
|
||||
String s
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/cancelReg", reg, contract);
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/cancelReg", reg, contract);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
}
|
||||
@@ -167,7 +167,7 @@ public class YbHttpUtils {
|
||||
// 声名参数
|
||||
Result result = null;
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/upload2204-record",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/upload2204-record",
|
||||
clinic2204OrderParam, contract);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -201,7 +201,7 @@ public class YbHttpUtils {
|
||||
// 声名参数
|
||||
Result result = null;
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/preSetl",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/preSetl",
|
||||
clinic2206OrderParam, contract);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -234,7 +234,7 @@ public class YbHttpUtils {
|
||||
// 声名参数
|
||||
Result result = null;
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/setl", clinicOrder2207,
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/setl", clinicOrder2207,
|
||||
contract);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -264,7 +264,7 @@ public class YbHttpUtils {
|
||||
public Sign9001Result sign(Sign signParam, Contract contract) {
|
||||
Sign9001Result sign = null;
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/signIn", signParam, contract);
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/signIn", signParam, contract);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
}
|
||||
@@ -296,7 +296,7 @@ public class YbHttpUtils {
|
||||
// 声名参数
|
||||
Result result = null;
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/unPreSettle",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/unPreSettle",
|
||||
clinic2205OrderParam, contract);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -326,7 +326,7 @@ public class YbHttpUtils {
|
||||
// 声名参数
|
||||
Result result = null;
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/cancelSetl",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/cancelSetl",
|
||||
clinicOrder2208, contract);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -357,7 +357,7 @@ public class YbHttpUtils {
|
||||
|
||||
Clinic2208UnSetlInfoResult clinicOrder2206Result = new Clinic2208UnSetlInfoResult();
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/directoryCheck",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/directoryCheck",
|
||||
medicalDirectory3301ListParam, null);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -377,7 +377,7 @@ public class YbHttpUtils {
|
||||
|
||||
public Result directoryUnCheck(MedicalDirectory3302Param medicalDirectory3302Param) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/directoryUnCheck",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/directoryUnCheck",
|
||||
medicalDirectory3302Param, null);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -403,7 +403,7 @@ public class YbHttpUtils {
|
||||
throw new ServiceException("未查询到合同信息");
|
||||
}
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/reconcile",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/reconcile",
|
||||
financial3201Param, contract);
|
||||
|
||||
// 赋值(上述回填的两个参数医保不要,为了避免麻烦,在发送http后进行回填)
|
||||
@@ -429,7 +429,7 @@ public class YbHttpUtils {
|
||||
|
||||
public FinancialSettlement3202Result reconcileGeneralLedgerDetail(FinancialSettlement3202Param financial3202Param) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/reconcile-detail",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/reconcile-detail",
|
||||
financial3202Param, null);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -450,7 +450,7 @@ public class YbHttpUtils {
|
||||
public List<FinancialSettlement3209AResult>
|
||||
threePartSearch(FinancialSettlement3209AParam financialSettlement3209AParam) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/three-part-search-err",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/three-part-search-err",
|
||||
financialSettlement3209AParam, null);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -470,7 +470,7 @@ public class YbHttpUtils {
|
||||
|
||||
public String applyFinancialClearing(Financial3203AParam financial3203AParam) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/apply-clearing",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/apply-clearing",
|
||||
financial3203AParam, iContractService.getContract(financial3203AParam.getClrOptins()));
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -481,7 +481,7 @@ public class YbHttpUtils {
|
||||
public Result cancelFinancialClearing(Financial3204Param financial3204Param) {
|
||||
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/cancel-clearing",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/cancel-clearing",
|
||||
financial3204Param, null);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -499,7 +499,7 @@ public class YbHttpUtils {
|
||||
|
||||
public Clearing3205AResult getFinancialClearingStatus(Clearing3205AParma clearing3205AParma) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/get-clearing-status",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/get-clearing-status",
|
||||
clearing3205AParma, null);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -517,7 +517,7 @@ public class YbHttpUtils {
|
||||
|
||||
public Result uploadInventoryCount(MedicalInventory3501Param medicalInventory3501Param) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/upload-inventory-count",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/upload-inventory-count",
|
||||
medicalInventory3501Param, null);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -535,7 +535,7 @@ public class YbHttpUtils {
|
||||
|
||||
public Result updateInventoryCount(MedicalInventory3502Param medicalInventory3502Param) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/update-inventory",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/update-inventory",
|
||||
medicalInventory3502Param, null);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -553,7 +553,7 @@ public class YbHttpUtils {
|
||||
|
||||
public Result procurement(Medical3503Param medical3503Param) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/procurement",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/procurement",
|
||||
medical3503Param, null);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -571,7 +571,7 @@ public class YbHttpUtils {
|
||||
|
||||
public Result cancelProcurement(MedicalPurchase3504Param medicalPurchase3504Param) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/procurement-cancel",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/procurement-cancel",
|
||||
medicalPurchase3504Param, null);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -589,7 +589,7 @@ public class YbHttpUtils {
|
||||
|
||||
public Result merchandise(Medical3505Param medical3505Param, Contract contract) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/merchandise",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/merchandise",
|
||||
medical3505Param, contract);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -607,7 +607,7 @@ public class YbHttpUtils {
|
||||
|
||||
public Result cancelMerchandise(Medical3506Param medical3506Param, Contract contract) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/cancel-merchandise",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/cancel-merchandise",
|
||||
medical3506Param, contract);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -625,7 +625,7 @@ public class YbHttpUtils {
|
||||
|
||||
public Result deleteGoodsInfo(Medical3507Param medical3507Param) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/del-goods",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/del-goods",
|
||||
medical3507Param, null);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -643,7 +643,7 @@ public class YbHttpUtils {
|
||||
|
||||
public MedicalInventory3511Output querySalesInfo(MedicalInventory3511Param medicalInventory3511Param) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/query-3511-info",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/query-3511-info",
|
||||
medicalInventory3511Param, null);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -672,7 +672,7 @@ public class YbHttpUtils {
|
||||
|
||||
public Result getClrOptins(Clearing3206AParam clearing3206AParam) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/getclroptins",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/getclroptins",
|
||||
clearing3206AParam, null);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -690,7 +690,7 @@ public class YbHttpUtils {
|
||||
|
||||
public Result upload2203Record(Clinic2203MedicalParam medical2203Param, Contract contract) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/upload2203-record",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/upload2203-record",
|
||||
medical2203Param, contract);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -708,7 +708,7 @@ public class YbHttpUtils {
|
||||
|
||||
public Result query3512(MedicalInventory3512Param inventory3512Param, Contract contract) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/query-3512-info",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/query-3512-info",
|
||||
inventory3512Param, contract);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -726,7 +726,7 @@ public class YbHttpUtils {
|
||||
|
||||
public Result query3513(MedicalInventory3513Param inventory3513Param, Contract contract) {
|
||||
// 发送请求
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/query-3513-info",
|
||||
String s = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/query-3513-info",
|
||||
inventory3513Param, contract);
|
||||
if (StringUtils.isEmpty(s)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -791,7 +791,7 @@ public class YbHttpUtils {
|
||||
try {
|
||||
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/queryYbCatalogue",
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/queryYbCatalogue",
|
||||
catalogue1312QueryParam, null);
|
||||
// logger.info("--------1312resultString-------------" + resultString);
|
||||
// 1. 解析外层 JSON
|
||||
@@ -843,7 +843,7 @@ public class YbHttpUtils {
|
||||
// 3. 转发并删除临时文件
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
response = restTemplate.postForEntity(
|
||||
SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/file-up2",
|
||||
SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/file-up2",
|
||||
new HttpEntity<>(body, headers), String.class);
|
||||
logger.info(JsonUtils.toJson(response));
|
||||
// 清理临时文件
|
||||
@@ -871,11 +871,11 @@ public class YbHttpUtils {
|
||||
// RestTemplate restTemplate = new RestTemplate();
|
||||
// HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);
|
||||
// ResponseEntity<String> response =
|
||||
// restTemplate.postForEntity(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/file-up2",
|
||||
// restTemplate.postForEntity(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/file-up2",
|
||||
// requestEntity, String.class);
|
||||
|
||||
// try {
|
||||
// String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/file-up2",
|
||||
// String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/file-up2",
|
||||
// file9101Param,null);
|
||||
// // logger.info("--------1312resultString-------------" + resultString);
|
||||
// // 1. 解析外层 JSON
|
||||
@@ -911,7 +911,7 @@ public class YbHttpUtils {
|
||||
*/
|
||||
public Yb3101OutputResult yb3101PreMidAnalysis(Yb3101InputData data) {
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/pre-mid-analysis", data, null);
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/pre-mid-analysis", data, null);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
}
|
||||
@@ -941,7 +941,7 @@ public class YbHttpUtils {
|
||||
*/
|
||||
public void yb3103PreMidFeedback(Yb3103InputData data) {
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/pre-mid-feedback", data, null);
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/pre-mid-feedback", data, null);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
}
|
||||
@@ -965,7 +965,7 @@ public class YbHttpUtils {
|
||||
|
||||
public List<Yb2301OutputResult> upload2301FeeDetail(Yb2301InputFeeDetailModel yb2301InputFeeDetailModel) {
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/upload-2301-fee-detail",
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/upload-2301-fee-detail",
|
||||
yb2301InputFeeDetailModel, null);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -997,7 +997,7 @@ public class YbHttpUtils {
|
||||
|
||||
public Yb2303OutputSetInfo inpatientPreSettle(Yb2303InputInpatient yb2303InputInpatient) {
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/inpa-pre-setl",
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/inpa-pre-setl",
|
||||
yb2303InputInpatient, null);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -1022,7 +1022,7 @@ public class YbHttpUtils {
|
||||
}
|
||||
|
||||
public Yb2304OutputSetlInfo inpatientSettle(Contract contract, Yb2304InputInpatient yb2304InpatientParam) {
|
||||
String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/inpa-setl",
|
||||
String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/inpa-setl",
|
||||
yb2304InpatientParam, contract);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -1055,7 +1055,7 @@ public class YbHttpUtils {
|
||||
*/
|
||||
public Yb2305OutputSetlInfo inpatientUnSettle(Contract contract, Yb2305InputInpatient yb2305InpatientParam) {
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/inpa-un-setl",
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/inpa-un-setl",
|
||||
yb2305InpatientParam, contract);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -1088,7 +1088,7 @@ public class YbHttpUtils {
|
||||
public List<Yb5205OutputSpecialDisease>
|
||||
yb5205SpecialDiseaseDrugRecordSearch(Yb5205InputSpecialDisease yb5205InputSpecialDisease) {
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/spe-disease-record-search",
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/spe-disease-record-search",
|
||||
yb5205InputSpecialDisease, null);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -1121,7 +1121,7 @@ public class YbHttpUtils {
|
||||
*/
|
||||
public FileResult queryCatalog(CatalogFileInput catalogFileInput) {
|
||||
String resultString = httpPost(
|
||||
SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/query-catalog", catalogFileInput, null);
|
||||
SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/query-catalog", catalogFileInput, null);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
}
|
||||
@@ -1153,7 +1153,7 @@ public class YbHttpUtils {
|
||||
*/
|
||||
public String downLoadFile(FileResult fileResult) {
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/download", fileResult, null);
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/download", fileResult, null);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
}
|
||||
@@ -1185,7 +1185,7 @@ public class YbHttpUtils {
|
||||
*/
|
||||
public InpatientReg inpatientReg(JsonNode jsonObject, String contractNo) {
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/inpatient-reg", jsonObject,
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/inpatient-reg", jsonObject,
|
||||
contractServiceImpl.getContract(contractNo));
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -1218,7 +1218,7 @@ public class YbHttpUtils {
|
||||
*/
|
||||
public void cancelInpatientReg(Yb2404InputInpatient yb2404InputInpatient, String contractNo) {
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/cancel-inpatient-reg",
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/cancel-inpatient-reg",
|
||||
yb2404InputInpatient, contractServiceImpl.getContract(contractNo));
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -1251,7 +1251,7 @@ public class YbHttpUtils {
|
||||
*/
|
||||
public Yb2402InputParam inpatientCheckOut(Yb2402InputParam yb2402InputInpatientDscgInfo, String contractNo) {
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/discharge-patient",
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/discharge-patient",
|
||||
yb2402InputInpatientDscgInfo, iContractService.getContract(contractNo));
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -1284,7 +1284,7 @@ public class YbHttpUtils {
|
||||
*/
|
||||
public void cancelInpatientCheckOut(Yb2405InputInpatient yb2405InputInpatient, String contractNo) {
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/cancel-discharge-patient",
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/cancel-discharge-patient",
|
||||
yb2405InputInpatient, contractServiceImpl.getContract(contractNo));
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -1316,7 +1316,7 @@ public class YbHttpUtils {
|
||||
*/
|
||||
public void updateInpatientInfo(Yb2403InputParam yb2403InputInpatient, String contractNo) {
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/change-inpatient-info",
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/change-inpatient-info",
|
||||
yb2403InputInpatient, iContractService.getContract(contractNo));
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -1343,7 +1343,7 @@ public class YbHttpUtils {
|
||||
|
||||
public void emrUp(Yb4401InputDto yb4401InputDto) {
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/emr-up", yb4401InputDto, null);
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/emr-up", yb4401InputDto, null);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
}
|
||||
@@ -1374,7 +1374,7 @@ public class YbHttpUtils {
|
||||
* @param contract 省市医保
|
||||
*/
|
||||
public void ybToReverse(Yb2601InputParam toReverse, Contract contract) {
|
||||
String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/to-reverse",
|
||||
String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/to-reverse",
|
||||
toReverse, contract);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -1401,7 +1401,7 @@ public class YbHttpUtils {
|
||||
|
||||
public void yb4101Up(Yb4101AInputData yb4101AInputData, Contract contract) {
|
||||
|
||||
String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/setl-up",
|
||||
String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/setl-up",
|
||||
yb4101AInputData, contract);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -1428,7 +1428,7 @@ public class YbHttpUtils {
|
||||
|
||||
public void yb4102Up(Yb4102InputStastInfo yb4102InputStastInfo) {
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/setl-status-up",
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/setl-status-up",
|
||||
yb4102InputStastInfo, null);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
@@ -1456,7 +1456,7 @@ public class YbHttpUtils {
|
||||
|
||||
public void cancel2302FeeDetailUp(Yb2302InpatientParam yb2302InpatientParam, Contract contract) {
|
||||
String resultString
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/cancel-2302-fee-detail",
|
||||
= httpPost(SecurityUtils.getLoginUser().getOptionJsonValue("ybUrl") + "/cancel-2302-fee-detail",
|
||||
yb2302InpatientParam, contract);
|
||||
if (StringUtils.isEmpty(resultString)) {
|
||||
throw new ServiceException("未接收到医保返回参数");
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user