35 Commits
v1.1 ... V1.2

Author SHA1 Message Date
Ubuntu_925
5bac178c64 !10 Merge branch 'develop' of <a href="https://gitee.com/Ubuntu_925/openhis-itai">https://gitee.com/Ubuntu_925/openhis-itai</a> into develop
Merge pull request !10 from Ubuntu_925/develop
2025-11-12 09:48:19 +00:00
whm
82716b2cdd Merge branch 'develop' of https://gitee.com/Ubuntu_925/openhis-itai into develop 2025-11-12 17:44:18 +08:00
whm
1b04cf670f openhis 配置文件 2025-11-12 17:44:07 +08:00
Ubuntu_925
7895f4cecd Merge branch 'develop' of gitee.com:tntlinking-opensource/openhis-itai into develop
Signed-off-by: Ubuntu_925 <14284422+Ubuntu_925@user.noreply.gitee.com>
2025-11-12 09:12:49 +00:00
whm
e8d67e6681 2025-11-12 openHIS 发版 2025-11-12 17:06:09 +08:00
whm
88535b8e7c 提交数据库变更脚本 2025-11-12 16:59:51 +08:00
Ubuntu_925
cede47f342 版本更新 2025-10-17 11:55:15 +08:00
abing
8ad2d6ebbb !6 修复编译错误、升级依赖版本、统一管理依赖
Merge pull request !6 from starxg/dev/starxg
2025-10-17 02:55:51 +00:00
Zhang.WH
dd0090a2a8 数据库脚本新增 2025-10-16 18:13:50 +08:00
Zhang.WH
e4c5f36f2e 版本更新 2025-10-16 17:38:49 +08:00
Zhang.WH
f515bb8fbb 版本更新 2025-10-16 17:18:06 +08:00
starxg
bd3874b3c7 修复编译错误升级依赖版本并同一管理 2025-10-09 16:40:52 +08:00
abing
8dc6faff0b !5 修改
Merge pull request !5 from Ubuntu_925/develop
2025-09-25 07:54:11 +00:00
Zhang.WH
d23a594a4b 修改 2025-09-25 10:49:37 +08:00
Zhang.WH
c8014404f1 后端最新版本同步 2025-09-25 10:43:50 +08:00
Zhang.WH
1276dc4adb 前端最新版本同步 2025-09-25 10:36:59 +08:00
abing
38785887b1 !4 修改
Merge pull request !4 from Ubuntu_925/develop
2025-09-05 02:29:40 +00:00
Zhang.WH
a3a06d6f3c 修改 2025-09-04 16:59:24 +08:00
abing
08f539dc72 版本更新
Merge pull request !3 from Ubuntu_925/develop
2025-09-03 07:59:28 +00:00
Zhang.WH
92bf46ba55 Merge branch 'develop' of https://gitee.com/Ubuntu_925/openhis-itai into develop 2025-09-03 15:56:38 +08:00
Zhang.WH
6987963840 Merge branch 'develop' of https://gitee.com/Ubuntu_925/openhis-itai into develop 2025-09-03 15:56:38 +08:00
Zhang.WH
8f82322d10 版本更新 2025-09-03 15:54:55 +08:00
Zhang.WH
850cce66a5 配置文件修改 2025-09-03 13:23:58 +08:00
Zhang.WH
2a75448a30 配置文件修改 2025-09-03 13:23:58 +08:00
Zhang.WH
b77fd8cc9d 补充修改 2025-09-03 11:27:23 +08:00
Zhang.WH
72176f67cc 补充修改 2025-09-03 11:27:23 +08:00
Zhang.WH
cf28642e34 修改 2025-09-03 11:23:29 +08:00
Zhang.WH
155df0c917 修改 2025-09-03 11:23:29 +08:00
Zhang.WH
3ef3c2fecf 文件修改 2025-09-03 11:05:08 +08:00
Zhang.WH
00208c5f79 文件修改 2025-09-03 11:05:08 +08:00
Zhang.WH
7d972e2d17 最新版本升级 2025-09-02 19:16:04 +08:00
Zhang.WH
db9d790435 最新版本升级 2025-09-02 19:16:04 +08:00
mohaijiang
2c907e49f4 update LICENSE.
Signed-off-by: mohaijiang <mohaijiang110@163.com>
2025-07-22 07:41:17 +00:00
天天开源
d641d286d0 update README.md.
Signed-off-by: 天天开源 <14124580+TTopen@user.noreply.gitee.com>
2025-07-14 02:28:17 +00:00
abing
6f846f5410 v0.2 2025-06-13 11:40:16 +08:00
3777 changed files with 298569 additions and 44592 deletions

View File

@@ -36,13 +36,11 @@
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.6.2</version>
</dependency>
<!-- Mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!-- 核心模块-->

View File

@@ -21,7 +21,7 @@ import com.core.framework.web.service.SysPermissionService;
import com.core.framework.web.service.TokenService;
import com.core.system.service.ISysMenuService;
/**
/**已评审
* 登录验证
*
* @author system
@@ -40,7 +40,7 @@ public class SysLoginController {
@Autowired
private TokenService tokenService;
/**
/**已评审
* 登录方法
*
* @param loginBody 登录信息
@@ -56,7 +56,7 @@ public class SysLoginController {
return ajax;
}
/**
/**已评审 整个admin合拼到app层
* 获取用户信息
*
* @return 用户信息

View File

@@ -0,0 +1,60 @@
package com.core.web.controller.system;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.core.common.core.controller.BaseController;
import com.core.common.core.domain.R;
import com.core.system.domain.dto.SaveTenantOptionDetailDto;
import com.core.system.domain.dto.TenantOptionDto;
import com.core.system.service.ISysTenantOptionService;
/**
* 租户配置项信息controller
*
* @author system
*/
@RestController
@RequestMapping("/system/tenant-option")
public class SysTenantOptionController extends BaseController {
@Autowired
private ISysTenantOptionService sysTenantOptionService;
/**
* 查询租户配置项详情列表
*
* @param tenantId 租户ID
* @return 租户配置项详情列表
*/
@PreAuthorize("@ss.hasPermi('system:tenant:operate')")
@GetMapping("/detail-list/{tenantId}")
public R<List<TenantOptionDto>> getTenantOptionDetailList(@PathVariable Integer tenantId) {
return R.ok(sysTenantOptionService.getTenantOptionDetailList(tenantId));
}
/**
* 保存租户配置项详情列表
*
* @param saveTenantOptionDetailDto 参数DTO
* @return 结果
*/
@PreAuthorize("@ss.hasPermi('system:tenant:operate')")
@PostMapping("/detail-list")
public R<?> saveTenantOptionDetailList(@RequestBody SaveTenantOptionDetailDto saveTenantOptionDetailDto) {
return sysTenantOptionService.saveTenantOptionDetailList(saveTenantOptionDetailDto);
}
/**
* 查询租户配置项前端form表单列表
*
* @return 租户配置项前端form表单列表
*/
@PreAuthorize("@ss.hasPermi('system:tenant:operate')")
@GetMapping("/form-list")
public R<?> getTenantOptionFormList() {
return R.ok(sysTenantOptionService.getTenantOptionFormList());
}
}

View File

@@ -0,0 +1,42 @@
package com.core.web.util;
import com.core.common.core.domain.model.LoginUser;
import com.core.common.enums.TenantOptionDict;
import com.core.common.utils.SecurityUtils;
import com.core.common.utils.StringUtils;
/**
* 租户配置工具类
*
* @author system
*/
public class TenantOptionUtil {
/**
* 获取租户配置项内容
*
* @param optionDict 租户配置项字典
* @return 租户配置项内容
*/
public static String getOptionContent(TenantOptionDict optionDict) {
LoginUser loginUser;
try {
loginUser = SecurityUtils.getLoginUser();
} catch (Exception e) {
return null;
}
if (loginUser == null) {
return null;
}
if (loginUser.getOptionMap() == null || loginUser.getOptionMap().isEmpty()) {
return null;
}
// return loginUser.getOptionMap().get(optionDict.getCode());
// TODO:2025/10/17 李永兴提出的sys_option切换TenantOption临时防止报错方案最晚2025年11月底删除
String newValue = loginUser.getOptionMap().get(optionDict.getCode());
String oldValue = loginUser.getOptionJson().getString(optionDict.getCode());
return StringUtils.isEmpty(newValue) ? oldValue : newValue;
}
}

View File

@@ -77,6 +77,10 @@
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<!-- io常用工具类 -->
<dependency>
@@ -136,7 +140,11 @@
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
</dependencies>

View File

@@ -1,8 +1,11 @@
package com.core.common.core.domain.model;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.core.common.core.domain.entity.SysRole;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
@@ -94,6 +97,16 @@ public class LoginUser implements UserDetails {
*/
private JSONObject optionJson;
/**
* option Map
*/
private Map<String, String> optionMap;
/**
* 当前登录账号角色集合
*/
private List<SysRole> roleList;
/**
* 用户信息
*/

View File

@@ -5,10 +5,7 @@ import java.util.concurrent.TimeUnit;
import com.core.common.exception.UtilException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.BoundSetOperations;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.data.redis.core.*;
import org.springframework.stereotype.Component;
/**
@@ -256,4 +253,28 @@ public class RedisCache {
return this.redisTemplate.opsForValue().increment(key, delta);
}
}
/**
* 获取所有String类型的键值对开发环境下使用
*/
public Map<String, Object> getAllDictDataWithKeys(String pattern) {
pattern+="*";
Map<String, Object> allDict = new HashMap<>();
// 1. 获取所有键"*"匹配所有键
Set<String> allKeys = redisTemplate.keys(pattern);
if (allKeys == null || allKeys.isEmpty()) {
return allDict;
}
// 2. 批量获取值使用multiGet高效批量查询
ValueOperations<String, Object> valueOps = redisTemplate.opsForValue();
List<Object> values = valueOps.multiGet(allKeys);
// 3. 组装键值对
Iterator<String> keyIter = allKeys.iterator();
for (Object value : values) {
if (keyIter.hasNext()) {
allDict.put(keyIter.next(), value);
}
}
return allDict;
}
}

View File

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

View File

@@ -0,0 +1,242 @@
package com.core.common.enums;
/**
* 租户配置项字典不存在DB中以此文件为基准新增修改只需在这里改
*
* @author system
*/
public enum TenantOptionDict {
/**
* 医院名称
*/
YB_HOSPITAL_NAME("hospitalName", "医保-医院名称", 0),
/**
* 医保-医疗机构等级(3101接口)
*/
YB_MEDINS_LV("medinsLv", "医保_医疗机构等级", 1),
/**
* 定点医药机构编号
*/
YB_FIXMEDINS_CODE("fixmedinsCode", "医保_定点医药机构编号", 2),
/**
* 电子发票appid
*/
EINVOICE_APP_ID("app_id", "电子发票-appid", 3),
/**
* 电子发票key
*/
EINVOICE_KEY("key", "电子发票-key", 4),
/**
* 电子发票url
*/
EINVOICE_URL("url", "电子发票-url", 5),
/**
* 医保开关
*/
YB_SWITCH("yb_switch", "医保开关", 6),
/**
* 电子地址
*/
ELE_ADDRESS("eleAddress", "电子处方-请求地址", 22),
/**
* 服务地址
*/
ADDRESS("address", "服务地址", 23),
/**
* 超时时间
*/
TIME("time", "超时时间", 24),
/**
* 是否加密
*/
YB_IS_ENCRYPT("isEncrypt", "医保-是否加密", 25),
/**
* 医保区划
*/
YB_INSUPLC_ADMDVS("insuplc_admdvs", "医保-区划", 26),
/**
* 电子处方appId
*/
ELE_PRE_APP_ID("pre_app_id", "电子处方-appId", 27),
/**
* 电子处方appSecret
*/
ELE_PRE_APP_SECRET("pre_app_secret", "电子处方-appSecret", 28),
/**
* 电子处方私钥
*/
ELE_APP_PRVKEY("APP_PRVKEY", "电子处方-私钥", 29),
/**
* 电子处方公钥
*/
ELE_PLAF_PUBKEY("PLAF_PUBKEY", "电子处方-公钥", 30),
/**
* 医院等级
*/
EINVOICE_HOSPITAL_LV("hospital_lv", "电子发票-医院等级", 39),
/**
* 无视LIS&PACS报错
*/
LIS_PACS_ERROR_IGNORE("lisPacsErrorIgnore", "无视LIS&PACS报错", 40),
/**
* LIS接口地址
*/
LIS_API_URL("lisApiUrl", "LIS接口地址", 40),
/**
* LISAppId
*/
LIS_APP_ID("lisAppId", "LISAppId", 41),
/**
* LISAppSecret
*/
LIS_APP_SECRET("lisAppSecret", "LISAppSecret", 42),
/**
* PACS接口地址
*/
PACS_API_URL("pacsApiUrl", "PACS接口地址", 43),
/**
* PACSAppId
*/
PACS_APP_ID("pacsAppId", "PACSAppId", 44),
/**
* PACSAppSecret
*/
PACS_APP_SECRET("pacsAppSecret", "PACSAppSecret", 45),
/**
* PACSAppSecret
*/
INVOICE_FORWARD_URL("invoiceUrl", "电子发票-中转服务的路径", 46),
/**
* PACSAppSecret
*/
FORWARD_SWITCH("forwardSwitch", "电子发票-中转服务开关", 47),
/**
* 食源性开关
*/
FOODBORNE_SWITCH("foodborneSwitch", "食源性开关", 48),
/**
* 食源性接口地址 ../goto格式如下http://172.16.7.247/infections/goto 需指定到/goto
*/
FOODBORNE_API_URL("foodborneApiUrl", "食源性接口地址 ../goto", 49),
/**
* 食源性医疗机构
*/
FOODBORNE_HOSPITAL("foodborneHospital", "食源性医疗机构", 50),
/**
* 食源性登录账号
*/
FOODBORNE_USER_NAME("foodborneUserName", "食源性登录账号", 51),
/**
* BPC商户号
*/
BPC_MID("bpcMid", "BPC商户号", 52),
/**
* BPC终端号
*/
BPC_TID("bpcTid", "BPC终端号", 53),
/**
* BPCMD5签名密钥
*/
BPC_MD5_SHARED_SECRET("bpcMd5SharedSecret", "BPCMD5签名密钥", 54),
/**
* BPC请求URL
*/
BPC_REQUEST_URL("bpcRequestUrl", "BPC请求URL", 55),
/**
* 电子发票开关
*/
INVOICE_SWITCH("invoiceSwitch", "电子发票开关 (0:关闭 1:开启)", 56),
/**
* 医嘱定价来源
*/
ORDER_PRICING_SOURCE("orderPricingSource", "定价来源 batchSellingPrice/retailPrice", 57),
/**
* 三方支付(签到)
*/
THREE_PART_SIGN_URL("threePartSignUrl", "三方支付GET请求", 58),
/**
* 三方支付(消费)
*/
THREE_PART_PAY_URL("threePartPayUrl", "三方支付GET请求", 59),
/**
* 三方支付(退费)
*/
THREE_PART_RETURN_URL("threePartReturnUrl", "三方支付GET请求", 60),
/**
* 三方支付(隔天退费)
*/
THREE_PART_NEXT_DAY_RETURN_URL("threePartNextDayReturnUrl", "三方支付GET请求", 61),
/**
* 三方支付路径(支付结果查询)
*/
THREE_PART_PAY_QUERY_URL("threePartPayQueryUrl", "三方支付GET请求", 62),
/**
* 三方支付路径(退费结果查询)
*/
THREE_PART_RETURN_QUERY_URL("threePartReturnQueryUrl", "三方支付GET请求", 63),
/**
* 三方支付路径(隔天退费结果查询)
*/
THREE_PART_NEXT_DAY_RETURN_QUERY_URL("threePartNextDayReturnQueryUrl", "三方支付GET请求", 64),
/**
* 三方支付参数
*/
THREE_PART_PARAM("threePartParam", "三方支付GET请求", 65);
private final String code;
private final String name;
private final Integer sort;
TenantOptionDict(String code, String name, Integer sort) {
this.code = code;
this.name = name;
this.sort = sort;
}
public static TenantOptionDict getByCode(String code) {
if (code == null) {
return null;
}
for (TenantOptionDict val : values()) {
if (val.getCode().equals(code)) {
return val;
}
}
return null;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
public Integer getSort() {
return sort;
}
}

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