diff --git a/functional-modules/monitoring-sync/pom.xml b/functional-modules/monitoring-sync/pom.xml
index 4715137..7eddebc 100644
--- a/functional-modules/monitoring-sync/pom.xml
+++ b/functional-modules/monitoring-sync/pom.xml
@@ -30,9 +30,13 @@
org.springframework.boot
spring-boot-starter-validation
+
- com.mysql
- mysql-connector-j
+ com.dameng
+ DmJdbcDriver8
+ ${dm.jdbc.version}
+ system
+ ${project.basedir}/../../lib/DmJdbcDriver8.jar
org.springframework.boot
diff --git a/functional-modules/renkang-starter-batch/src/main/java/com/renkang/batch/configure/BatchAutoConfiguration.java b/functional-modules/renkang-starter-batch/src/main/java/com/renkang/batch/configure/BatchAutoConfiguration.java
index 88bfa05..3d2c713 100644
--- a/functional-modules/renkang-starter-batch/src/main/java/com/renkang/batch/configure/BatchAutoConfiguration.java
+++ b/functional-modules/renkang-starter-batch/src/main/java/com/renkang/batch/configure/BatchAutoConfiguration.java
@@ -25,6 +25,7 @@ import org.springframework.core.task.TaskExecutor;
import org.springframework.jdbc.support.JdbcTransactionManager;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.util.StringUtils;
import javax.sql.DataSource;
import java.util.List;
@@ -125,8 +126,21 @@ public class BatchAutoConfiguration {
@BatchDataSource ObjectProvider batchDataSource,
BatchProperties properties
) {
- return new BatchDataSourceScriptDatabaseInitializer(batchDataSource.getIfAvailable(() -> dataSource),
- properties.getJdbc());
+ DataSource dataSourceToUse = batchDataSource.getIfAvailable(() -> dataSource);
+ BatchProperties.Jdbc jdbc = properties.getJdbc();
+ // 达梦数据库兼容处理:设置platform绕过构造器中的自动类型检测
+ if (!StringUtils.hasText(jdbc.getPlatform())) {
+ jdbc.setPlatform("dm");
+ }
+ // 重写afterPropertiesSet()跳过SQL脚本初始化:
+ // 父类会先断言SQL文件存在再检查initializeSchema mode,导致找不到schema-dm.sql时报错
+ // Batch元数据表已通过数据迁移创建,无需自动建表
+ return new BatchDataSourceScriptDatabaseInitializer(dataSourceToUse, jdbc) {
+ @Override
+ public void afterPropertiesSet() {
+ // 跳过Batch元数据表的自动建表,防止找不到schema-dm.sql文件报错
+ }
+ };
}
}
diff --git a/functional-modules/renkang-starter-batch/src/main/java/com/renkang/batch/configure/CustomBatchConfigurer.java b/functional-modules/renkang-starter-batch/src/main/java/com/renkang/batch/configure/CustomBatchConfigurer.java
index 5eef0ad..af9867c 100644
--- a/functional-modules/renkang-starter-batch/src/main/java/com/renkang/batch/configure/CustomBatchConfigurer.java
+++ b/functional-modules/renkang-starter-batch/src/main/java/com/renkang/batch/configure/CustomBatchConfigurer.java
@@ -34,6 +34,13 @@ public class CustomBatchConfigurer extends BasicBatchConfigurer {
this.taskExecutor = taskExecutor;
}
+ @Override
+ public void initialize() {
+ // 达梦数据库兼容处理:跳过Spring Batch数据库类型自动检测
+ // BasicBatchConfigurer.initialize()中DatabaseType.fromProductName()无法识别"DM DBMS"产品名
+ // 保持父类默认隔离级别ISOLATION_SERIALIZABLE,DM8与此兼容
+ }
+
@Override
protected JobLauncher createJobLauncher() throws Exception {
SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
diff --git a/health-bank/health-bank-biz/src/main/java/com/renkang/bank/mapper/xml/PointsRuleMapper.xml b/health-bank/health-bank-biz/src/main/java/com/renkang/bank/mapper/xml/PointsRuleMapper.xml
index 4ab314d..07a7436 100644
--- a/health-bank/health-bank-biz/src/main/java/com/renkang/bank/mapper/xml/PointsRuleMapper.xml
+++ b/health-bank/health-bank-biz/src/main/java/com/renkang/bank/mapper/xml/PointsRuleMapper.xml
@@ -11,19 +11,18 @@
a.icon,
a.points,
CASE
- WHEN a.frequency = 1 THEN -- 单次
- IF(COUNT(b.id) > 0, 1, 0)
- WHEN a.frequency = 2 THEN -- 日/次
- IF(COUNT(CASE WHEN DATE(b.create_time) = CURDATE() THEN 1 END) > 0, 1, 0)
- WHEN a.frequency = 3 THEN -- 周/次
- IF(COUNT(CASE WHEN YEARWEEK(b.create_time, 1) = YEARWEEK(CURDATE(), 1) THEN 1 END) > 0, 1, 0)
- WHEN a.frequency = 4 THEN -- 月/次
- IF(COUNT(CASE WHEN DATE_FORMAT(b.create_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m') THEN 1 END) > 0, 1, 0)
- WHEN a.frequency = 5 THEN -- 季度/次
- IF(COUNT(CASE WHEN QUARTER(b.create_time) = QUARTER(CURDATE()) AND YEAR(b.create_time) = YEAR(CURDATE()) THEN 1
- END) > 0, 1, 0)
- WHEN a.frequency = 6 THEN -- 年/次
- IF(COUNT(CASE WHEN YEAR(b.create_time) = YEAR(CURDATE()) THEN 1 END) > 0, 1, 0)
+ WHEN a.frequency = 1 THEN
+ CASE WHEN COUNT(b.id) > 0 THEN 1 ELSE 0 END
+ WHEN a.frequency = 2 THEN
+ CASE WHEN COUNT(CASE WHEN TRUNC(b.create_time) = TRUNC(SYSDATE) THEN 1 END) > 0 THEN 1 ELSE 0 END
+ WHEN a.frequency = 3 THEN
+ CASE WHEN COUNT(CASE WHEN TO_CHAR(b.create_time, 'IYYY-IW') = TO_CHAR(SYSDATE, 'IYYY-IW') THEN 1 END) > 0 THEN 1 ELSE 0 END
+ WHEN a.frequency = 4 THEN
+ CASE WHEN COUNT(CASE WHEN TO_CHAR(b.create_time, 'YYYY-MM') = TO_CHAR(SYSDATE, 'YYYY-MM') THEN 1 END) > 0 THEN 1 ELSE 0 END
+ WHEN a.frequency = 5 THEN
+ CASE WHEN COUNT(CASE WHEN TO_CHAR(b.create_time, 'Q') = TO_CHAR(SYSDATE, 'Q') AND EXTRACT(YEAR FROM b.create_time) = EXTRACT(YEAR FROM SYSDATE) THEN 1 END) > 0 THEN 1 ELSE 0 END
+ WHEN a.frequency = 6 THEN
+ CASE WHEN COUNT(CASE WHEN EXTRACT(YEAR FROM b.create_time) = EXTRACT(YEAR FROM SYSDATE) THEN 1 END) > 0 THEN 1 ELSE 0 END
ELSE 0
END AS clockInStatus
FROM
diff --git a/health-bank/health-bank-biz/src/main/java/com/renkang/bank/service/impl/UserPointsServiceImpl.java b/health-bank/health-bank-biz/src/main/java/com/renkang/bank/service/impl/UserPointsServiceImpl.java
index d601ddc..77f509d 100644
--- a/health-bank/health-bank-biz/src/main/java/com/renkang/bank/service/impl/UserPointsServiceImpl.java
+++ b/health-bank/health-bank-biz/src/main/java/com/renkang/bank/service/impl/UserPointsServiceImpl.java
@@ -459,7 +459,7 @@ public class UserPointsServiceImpl extends ServiceImpl details = userPointsDetailsMapper.selectList(new LambdaQueryWrapper()
.eq(UserPointsDetails::getUserId, userId)
.eq(UserPointsDetails::getChangeType, HealthBankConstants.CHANGE_TYPE_ADD)
- .apply("DATE_FORMAT(create_time, '%Y-%m-%d') = {0}", DateUtil.today())
+ .apply("TO_CHAR(create_time, 'YYYY-MM-DD') = {0}", DateUtil.today())
);
double sum = details.stream().map(UserPointsDetails::getPoints).mapToDouble(BigDecimal::doubleValue).sum();
userPoints.setLatestAddDaySum(BigDecimal.valueOf(sum).add(pointsRule.getPoints()));
diff --git a/health-consultation/health-consultation-api/src/main/java/com/renkang/consultation/entity/ConSessionView.java b/health-consultation/health-consultation-api/src/main/java/com/renkang/consultation/entity/ConSessionView.java
index 4a97508..39bd122 100644
--- a/health-consultation/health-consultation-api/src/main/java/com/renkang/consultation/entity/ConSessionView.java
+++ b/health-consultation/health-consultation-api/src/main/java/com/renkang/consultation/entity/ConSessionView.java
@@ -77,7 +77,7 @@ public class ConSessionView implements Serializable {
@TableField(value = "medical_records_id")
@Schema(description = "")
private String medicalRecordsId;
- @TableField(value = "`status`")
+ @TableField(value = "status")
@Schema(description = "")
private Integer status;
@TableField(value = "del_flag")
diff --git a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConDepartmentMapper.java b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConDepartmentMapper.java
index 01aaed4..31f05de 100644
--- a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConDepartmentMapper.java
+++ b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConDepartmentMapper.java
@@ -27,7 +27,7 @@ public interface ConDepartmentMapper extends BaseMapper , MPJBase
@Select("SELECT * FROM con_department WHERE status = '1' and del_flag = '0' and id = #{departmentId} order by tf_top desc,sort")
public ConDepartment selectDepartmentNameById(String departmentId);
- @Select("SELECT GROUP_CONCAT(id) FROM con_department WHERE status = '1' and del_flag = '0' and officeparid = #{departmentId}")
+ @Select("SELECT LISTAGG(id, ',') WITHIN GROUP (ORDER BY id) FROM con_department WHERE status = '1' and del_flag = '0' and officeparid = #{departmentId}")
public String selectDepartmentIdByLevelOneId(String departmentId);
@Select("SELECT count(1) FROM con_department WHERE status = '1' and del_flag = '0' and office_level = 1")
diff --git a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConDoctorMapper.java b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConDoctorMapper.java
index 6ab544b..409d501 100644
--- a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConDoctorMapper.java
+++ b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConDoctorMapper.java
@@ -117,7 +117,7 @@ public interface ConDoctorMapper extends BaseMapper , MPJBaseMapper getFreeDoctor(CondepartmentId departmentId);
- @Select("select id,sicks_name as sicksName from con_sicks where status = 1 and del_flag = 0 and FIND_IN_SET(id,#{sickIds})")
+ @Select("select id,sicks_name as sicksName from con_sicks where status = 1 and del_flag = 0 and INSTR(',' || #{sickIds} || ',', ',' || id || ',') > 0")
List
-
+
- com.mysql
- mysql-connector-j
+ com.dameng
+ DmJdbcDriver8
+ ${dm.jdbc.version}
+ system
+ ${project.basedir}/../lib/DmJdbcDriver8.jar
diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/CommonUtils.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/CommonUtils.java
index cd55d38..a2eafc3 100644
--- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/CommonUtils.java
+++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/CommonUtils.java
@@ -307,7 +307,10 @@ public class CommonUtils {
String sqlserver = "SQL SERVER";
if (dbType.indexOf(DataBaseConstant.DB_TYPE_MYSQL) >= 0) {
DB_TYPE = DataBaseConstant.DB_TYPE_MYSQL;
- } else if (dbType.indexOf(DataBaseConstant.DB_TYPE_ORACLE) >= 0 || dbType.indexOf(DataBaseConstant.DB_TYPE_DM) >= 0) {
+ } else if (dbType.indexOf(DataBaseConstant.DB_TYPE_DM) >= 0) {
+ // 达梦数据库:getDatabaseProductName() 返回 "DM DBMS",需在 ORACLE 之前判断
+ DB_TYPE = DataBaseConstant.DB_TYPE_DM;
+ } else if (dbType.indexOf(DataBaseConstant.DB_TYPE_ORACLE) >= 0) {
DB_TYPE = DataBaseConstant.DB_TYPE_ORACLE;
} else if (dbType.indexOf(DataBaseConstant.DB_TYPE_SQLSERVER) >= 0 || dbType.indexOf(sqlserver) >= 0) {
DB_TYPE = DataBaseConstant.DB_TYPE_SQLSERVER;
diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/dynamic/db/DbTypeUtils.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/dynamic/db/DbTypeUtils.java
index 3b12a67..ab64b78 100644
--- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/dynamic/db/DbTypeUtils.java
+++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/dynamic/db/DbTypeUtils.java
@@ -90,6 +90,9 @@ public class DbTypeUtils {
return DataBaseConstant.DB_TYPE_DB2;
} else if (DbType.HSQL.equals(dbType)) {
return DataBaseConstant.DB_TYPE_HSQL;
+ } else if (DbType.DM.equals(dbType)) {
+ // 达梦数据库单独返回 DM 类型,避免被归入 Oracle 分支
+ return DataBaseConstant.DB_TYPE_DM;
} else if (dbTypeIsOracle(dbType)) {
return DataBaseConstant.DB_TYPE_ORACLE;
} else if (dbTypeIsSqlServer(dbType)) {
diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java b/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java
index 29cdf11..d753a73 100644
--- a/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java
+++ b/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java
@@ -1,5 +1,6 @@
package org.jeecg.config.mybatis;
+import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
import com.baomidou.mybatisplus.extension.plugins.inner.DynamicTableNameInnerInterceptor;
@@ -119,7 +120,7 @@ public class MybatisPlusSaasConfig {
// 青海动态表名设置
interceptor.addInnerInterceptor(dynamicTableNameQhInterceptor());
//update-end-author:zyf date:20220425 for:【VUEN-606】注入动态表名适配拦截器解决多表名问题
- interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
+ interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.DM));
//【jeecg-boot/issues/3847】增加@Version乐观锁支持
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
diff --git a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/remote/mapper/xml/RemoteWeightManufacturerOneMapper.xml b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/remote/mapper/xml/RemoteWeightManufacturerOneMapper.xml
index 4a3685f..083facc 100644
--- a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/remote/mapper/xml/RemoteWeightManufacturerOneMapper.xml
+++ b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/remote/mapper/xml/RemoteWeightManufacturerOneMapper.xml
@@ -80,15 +80,15 @@
SELECT
device_code,
SUM(CASE
- WHEN YEARWEEK(exam_time, 1) = YEARWEEK(NOW(), 1) THEN 1
+ WHEN TO_CHAR(exam_time, 'IYYY-IW') = TO_CHAR(SYSDATE, 'IYYY-IW') THEN 1
ELSE 0
END) AS week_count,
SUM(CASE
- WHEN YEAR(exam_time) = YEAR(NOW()) AND MONTH(create_time) = MONTH(NOW()) THEN 1
+ WHEN EXTRACT(YEAR FROM exam_time) = EXTRACT(YEAR FROM SYSDATE) AND EXTRACT(MONTH FROM create_time) = EXTRACT(MONTH FROM SYSDATE) THEN 1
ELSE 0
END) AS month_count,
SUM(CASE
- WHEN YEAR(exam_time) = YEAR(NOW()) THEN 1
+ WHEN EXTRACT(YEAR FROM exam_time) = EXTRACT(YEAR FROM SYSDATE) THEN 1
ELSE 0
END) AS year_count,
COUNT(*) AS total_count
diff --git a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/archives/service/impl/ArchivesBasePhysiqueServiceImpl.java b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/archives/service/impl/ArchivesBasePhysiqueServiceImpl.java
index 5cc7a8d..7fb0e2d 100644
--- a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/archives/service/impl/ArchivesBasePhysiqueServiceImpl.java
+++ b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/archives/service/impl/ArchivesBasePhysiqueServiceImpl.java
@@ -257,11 +257,11 @@ public class ArchivesBasePhysiqueServiceImpl implements ArchivesBasePhysiqueServ
//周数据和月数据查询每天的平均值 , 年数据查询每月的记录值
trendWrapper.selectAvg(column,PhysiqueDataCommonTrendVO.CommonTrend::getDataValue);
if(4 == scope){
- trendWrapper.selectAs("DATE_FORMAT(create_time, '%Y-%m')",PhysiqueDataCommonTrendVO.CommonTrend::getTime);
- trendWrapper.groupBy("DATE_FORMAT(create_time, '%Y-%m')");
+ trendWrapper.selectAs("TO_CHAR(create_time, 'YYYY-MM')",PhysiqueDataCommonTrendVO.CommonTrend::getTime);
+ trendWrapper.groupBy("TO_CHAR(create_time, 'YYYY-MM')");
}else {
- trendWrapper.selectAs("DATE_FORMAT(create_time, '%Y-%m-%d')",PhysiqueDataCommonTrendVO.CommonTrend::getTime);
- trendWrapper.groupBy("DATE_FORMAT(create_time, '%Y-%m-%d')");
+ trendWrapper.selectAs("TO_CHAR(create_time, 'YYYY-MM-DD')",PhysiqueDataCommonTrendVO.CommonTrend::getTime);
+ trendWrapper.groupBy("TO_CHAR(create_time, 'YYYY-MM-DD')");
}
}
}
@@ -292,11 +292,11 @@ public class ArchivesBasePhysiqueServiceImpl implements ArchivesBasePhysiqueServ
//周数据和月数据查询每天的平均值 , 年数据查询每月的记录值
trendWrapper.selectAvg(UserDataRecordBmi::getWeight,PhysiqueDataCommonTrendVO.CommonTrend::getDataValue);
if(4 == scope){
- trendWrapper.selectAs("DATE_FORMAT(data_date, '%Y-%m')",PhysiqueDataCommonTrendVO.CommonTrend::getTime);
- trendWrapper.groupBy("DATE_FORMAT(data_date, '%Y-%m')");
+ trendWrapper.selectAs("TO_CHAR(data_date, 'YYYY-MM')",PhysiqueDataCommonTrendVO.CommonTrend::getTime);
+ trendWrapper.groupBy("TO_CHAR(data_date, 'YYYY-MM')");
}else {
- trendWrapper.selectAs("DATE_FORMAT(data_date, '%Y-%m-%d')",PhysiqueDataCommonTrendVO.CommonTrend::getTime);
- trendWrapper.groupBy("DATE_FORMAT(data_date, '%Y-%m-%d')");
+ trendWrapper.selectAs("TO_CHAR(data_date, 'YYYY-MM-DD')",PhysiqueDataCommonTrendVO.CommonTrend::getTime);
+ trendWrapper.groupBy("TO_CHAR(data_date, 'YYYY-MM-DD')");
}
}
}else {
@@ -313,11 +313,11 @@ public class ArchivesBasePhysiqueServiceImpl implements ArchivesBasePhysiqueServ
//周数据和月数据查询每天的平均值 , 年数据查询每月的记录值
trendWrapper.selectAvg(UserDataRecordBmi::getBmi,PhysiqueDataCommonTrendVO.CommonTrend::getDataValue);
if(4 == scope){
- trendWrapper.selectAs("DATE_FORMAT(data_date, '%Y-%m')",PhysiqueDataCommonTrendVO.CommonTrend::getTime);
- trendWrapper.groupBy("DATE_FORMAT(data_date, '%Y-%m')");
+ trendWrapper.selectAs("TO_CHAR(data_date, 'YYYY-MM')",PhysiqueDataCommonTrendVO.CommonTrend::getTime);
+ trendWrapper.groupBy("TO_CHAR(data_date, 'YYYY-MM')");
}else {
- trendWrapper.selectAs("DATE_FORMAT(data_date, '%Y-%m-%d')",PhysiqueDataCommonTrendVO.CommonTrend::getTime);
- trendWrapper.groupBy("DATE_FORMAT(data_date, '%Y-%m-%d')");
+ trendWrapper.selectAs("TO_CHAR(data_date, 'YYYY-MM-DD')",PhysiqueDataCommonTrendVO.CommonTrend::getTime);
+ trendWrapper.groupBy("TO_CHAR(data_date, 'YYYY-MM-DD')");
}
}
}
@@ -372,11 +372,11 @@ public class ArchivesBasePhysiqueServiceImpl implements ArchivesBasePhysiqueServ
trendWrapper.selectAvg(UserDataRecordBloodPressure::getDbp,PhysiqueDataBloodTrendVO.BloodTrend::getDbp);
trendWrapper.selectAvg(UserDataRecordBloodPressure::getSbp,PhysiqueDataBloodTrendVO.BloodTrend::getSbp);
if(4 == scope){
- trendWrapper.selectAs("DATE_FORMAT(create_time, '%Y-%m')",PhysiqueDataBloodTrendVO.BloodTrend::getTime);
- trendWrapper.groupBy("DATE_FORMAT(create_time, '%Y-%m')");
+ trendWrapper.selectAs("TO_CHAR(create_time, 'YYYY-MM')",PhysiqueDataBloodTrendVO.BloodTrend::getTime);
+ trendWrapper.groupBy("TO_CHAR(create_time, 'YYYY-MM')");
}else {
- trendWrapper.selectAs("DATE_FORMAT(create_time, '%Y-%m-%d')",PhysiqueDataBloodTrendVO.BloodTrend::getTime);
- trendWrapper.groupBy("DATE_FORMAT(create_time, '%Y-%m-%d')");
+ trendWrapper.selectAs("TO_CHAR(create_time, 'YYYY-MM-DD')",PhysiqueDataBloodTrendVO.BloodTrend::getTime);
+ trendWrapper.groupBy("TO_CHAR(create_time, 'YYYY-MM-DD')");
}
List dataList = recordBloodMapper.selectJoinList(PhysiqueDataBloodTrendVO.BloodTrend.class,trendWrapper);
if(ObjectUtil.isNotEmpty(dataList)){
diff --git a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysIosRedeem.java b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysIosRedeem.java
index ab2d857..6d739b6 100644
--- a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysIosRedeem.java
+++ b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysIosRedeem.java
@@ -45,7 +45,7 @@ public class SysIosRedeem implements Serializable {
/**
* 使用状态 0-未使用 1-已使用
*/
- @TableField(value = "`status`")
+ @TableField(value = "status")
@Schema(title = "使用状态 0-未使用 1-已使用")
private Byte status;
/**
diff --git a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java
index 4b7be79..46cfc59 100644
--- a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java
+++ b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java
@@ -328,7 +328,7 @@ public interface SysUserMapper extends BaseMapper, MPJBaseMapper statisticOrgPeopleNumber();
/**
@@ -336,7 +336,7 @@ public interface SysUserMapper extends BaseMapper, MPJBaseMapper, MPJBaseMapper " +
"SELECT id as id,org_code as orgCode " +
- "FROM `sys_user` " +
- "where del_flag = 0 and `status` =1 and id in " +
+ "FROM sys_user " +
+ "where del_flag = 0 and status =1 and id in " +
" #{item} " +
" ")
@MapKey("id")
diff --git a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java
index 5d6cca0..15ebe16 100644
--- a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java
+++ b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java
@@ -1193,6 +1193,9 @@ public class SysBaseApiImpl implements ISysBaseAPI {
String dbType = md.getDatabaseProductName().toLowerCase();
if (dbType.indexOf(DataBaseConstant.DB_TYPE_MYSQL.toLowerCase()) >= 0) {
DB_TYPE = DataBaseConstant.DB_TYPE_MYSQL;
+ } else if (dbType.indexOf(DataBaseConstant.DB_TYPE_DM.toLowerCase()) >= 0) {
+ // 达梦数据库:getDatabaseProductName() 返回 "DM DBMS"
+ DB_TYPE = DataBaseConstant.DB_TYPE_DM;
} else if (dbType.indexOf(DataBaseConstant.DB_TYPE_ORACLE.toLowerCase()) >= 0) {
DB_TYPE = DataBaseConstant.DB_TYPE_ORACLE;
} else if (dbType.indexOf(DataBaseConstant.DB_TYPE_SQLSERVER.toLowerCase()) >= 0 || dbType.indexOf(DataBaseConstant.DB_TYPE_SQL_SERVER_BLANK) >= 0) {
diff --git a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java
index 10d44d2..4e5d73e 100644
--- a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java
+++ b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java
@@ -439,7 +439,7 @@ public class SysDepartServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysUser::getStatus, "1")
.eq(SysUser::getDelFlag, "0")
- .apply("FIND_IN_SET({0}, depart_ids) > 0", departId);
+ .apply("INSTR(',' || depart_ids || ',', ',' || {0} || ',') > 0", departId);
List sysUsers = sysUserMapper.selectList(queryWrapper);
if (CollectionUtil.isEmpty(sysUsers)) {
diff --git a/lib/DmJdbcDriver8.jar b/lib/DmJdbcDriver8.jar
new file mode 100644
index 0000000..0b3b4fd
Binary files /dev/null and b/lib/DmJdbcDriver8.jar differ
diff --git a/pom.xml b/pom.xml
index 1598a6e..4737eb1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,7 +46,8 @@
21.13.0.0
12.6.1.jre8
- 8.4.0
+
+ 8.1.0
42.6.2