23 Commits
Author SHA1 Message Date
wanghaoandClaude Sonnet 4.6 061749cfb3 refactor(系统服务): 完成达梦数据库表名迁移至 QH_ 命名规范
- 更新 76 个实体类的 @TableName 注解,映射到新 QH_XXX_XXXXX 表名
- 批量替换 jeecg-system 和 jeecg-boot-base-core 中 175 个文件的
  硬编码旧表名,统一使用新 QH_ 前缀命名
- 新增 20260310-修改system数据库表名.sql,包含 76 条 ALTER TABLE
  RENAME TO 语句(分模块分组)
- 追加 5 条废弃表 DROP TABLE 语句至 20260306-信创system删表语句.sql
- 更新达梦数据库兼容性问题报告,第六节调整为 76 行,
  第八节新增 8.13 废弃表分组,合计 111 张表

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 16:40:09 +08:00
lianlonggang 0b403a559e refactor(consultation): 优化代码格式和空行规范
- 统一各实体类、Mapper 和 XML 文件的代码格式
- 规范化导入语句和类声明之间的空行
- 调整 ConSessionView、ConCostStatistics 等实体类格式
- 优化 Mapper 接口和 XML 映射文件的空行结构
- 提升代码可读性和一致性
- 去掉view及_qh表依赖
2026-03-09 10:55:55 +08:00
lianlonggang 8fd4cd9253 fix(consultation): 修复达梦数据库关键字冲突问题
- 将 SQL 中的 `type` 字段使用双引号转义为 `\"TYPE\"`
- 解决达梦数据库保留关键字导致的查询异常
- 影响模块:
  - ConDoctorSchedulingMapper.xml
  - ConDepartmentMapper.xml
2026-03-09 10:53:35 +08:00
hejiayang 10d5e6ca4a ```
feat: 添加MySQL驱动依赖支持Spring Batch功能

添加了MySQL连接器依赖以支持Spring Batch数据源兼容性,同时排除了Quartz自动配置避免定时任务冲突。```
2026-03-09 09:24:49 +08:00
hejiayang d98884ea4c fix(emergency): 修复mapper注解中SQL函数兼容性问题
- 将LEFT函数替换为SUBSTR函数以提高数据库兼容性
- 将now()函数替换为SYSDATE以确保达梦数据库兼容性
2026-03-06 16:26:59 +08:00
hejiayang bab238daae fix(health-emergency):修正数据库字段映射大小写问题
修改TblQimoNotice实体类中的@TableField注解,
将beginTime和endTime字段名统一改为大写BEGIN_TIME和END_TIME,以匹配数据库实际字段命名规范。
2026-03-06 16:11:02 +08:00
hejiayang 5233e6cb4b fix(mapper):修复SQL映射文件中的语法错误并优化查询性能
- 将反引号改为双引号以适配达梦数据库语法
- 替换MySQL特有函数为标准SQL函数(concat改为||操作符)
- 使用SYSDATE函数替代NOW函数
- 使用EXTRACT函数替代YEAR/MONTH函数提高兼容性
- 使用TRUNC函数替代DATE函数进行日期比较
- 将LIMIT语法改为FETCH FIRST语法(service):优化分页查询逻辑提高数据获取稳定性- 将LambdaQueryWrapper的last("limit1")改为标准分页查询
2026-03-06 16:03:14 +08:00
wanghaoandClaude Sonnet 4.6 224dae23ee fix(信创): 修复 Java Mapper @Select 注解中 MySQL 不兼容语法
将 5 个 Mapper 接口 @Select 注解内的 MySQL 特有语法替换为达梦兼容写法:
- LIMIT 1 → FETCH FIRST 1 ROWS ONLY(UserDataRecordBmiMapper × 2、
  UserDataRecordBWHMapper、UserDataRecordBloodAboMapper、
  UserDataRecordBloodPressureMapper)
- NOW() → SYSDATE(HealthHolidayMapper)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06 13:34:58 +08:00
wanghao 5f790c0c7e fix(信创): 修复 Java 代码中 QueryWrapper.last() 拼接 LIMIT 语法与达梦不兼容问题
- LoginController: last("limit 1") → FETCH FIRST 1 ROWS ONLY
- WeighingDeviceServiceImpl: last("limit 1") → FETCH FIRST 1 ROWS ONLY
- SmsSendMsgHandle: last("limit "+n) → FETCH FIRST n ROWS ONLY
- HealthUserEmployeeExServiceImpl: 共 14 处 last("LIMIT 1") → FETCH FIRST 1 ROWS ONLY
- SysAnonServiceImpl: last("LIMIT 1 OFFSET 0") → FETCH FIRST 1 ROWS ONLY
2026-03-06 11:36:43 +08:00
wanghao 890cdfe40d fix(信创): 修复 Mapper XML 中 MySQL 特有语法与达梦数据库不兼容问题
- UserDataRecordBmiMapper.xml: DATE() → TRUNC(),LIMIT 1 → FETCH FIRST 1 ROWS ONLY
- SysVersionInfoMapper.xml: limit 1 → FETCH FIRST 1 ROWS ONLY
- SysUserMapper.xml: limit 1 → FETCH FIRST 1 ROWS ONLY,IFNULL() → NVL(),INSERT IGNORE → INSERT INTO
2026-03-06 11:36:19 +08:00
wanghao 909ccacaeb sql(信创): 新增达梦数据库无效表清理脚本,删除100张冗余表 2026-03-06 10:22:59 +08:00
wanghao 9b3021e847 Merge branch 'xc' of https://gitea.rk-health.com/renkang/xj-platform into xc 2026-03-06 09:54:28 +08:00
wanghao 264ca97055 refactor(缓存管理): 注释掉新疆项目中青海相关的用户和部门缓存逻辑 2026-03-06 09:51:38 +08:00
lianlonggang 9251e202f3 feat(db): 添加达梦数据库关键字转义拦截器
- 新增 DmKeywordInterceptor 拦截器,自动为达梦数据库关键字添加双引号转义
- 更新 AedEquipmentManger 实体类格式化和导入语句规范
- 支持自动识别和处理达梦数据库保留关键字,避免 SQL 语法错误
- 提升数据库兼容性,确保实体字段与达梦数据库关键字冲突时正常执行
2026-03-05 18:30:21 +08:00
wanghao 5885cd2ea0 xml修改 2026-03-05 14:47:55 +08:00
hejiayang d2a2f8291c 实体类数据库关键字注释 2026-03-05 11:15:20 +08:00
hejiayang a38f8adfc8 Merge remote-tracking branch 'origin/xc' into xc 2026-03-04 18:01:49 +08:00
hejiayang 4c98dd2d30 fix: 应急就医数据库迁移相关调整
1.启动类排除QuartzAutoConfiguration.class
2.数据库字段与达梦保留关键字段冲突调整
3.sql键名重复修改
2026-03-04 18:01:20 +08:00
wanghao b751f40bb4 systemxml改造 2026-03-04 14:59:45 +08:00
lianlonggang 61045e4389 chore(config): 更新 Nacos 配置连接信息
- 更新 Nacos 服务器地址从 localhost:8848 到 192.168.1.80:8848
- 更新认证信息(用户名: xjuser, 密码: Aa135790!123)
- 更新命名空间为 xjxc-space-common
- 新增服务发现命名空间配置 NACOS_NAMESPACE_DISCOVERY

涉及模块:
- health-consultation-start
- health-emergency-start
- health-watch-start
- jeecg-system-start
2026-03-04 09:30:06 +08:00
lianlonggang a3cb8a45ad chore(config): 标准化所有微服务的 application.yml 格式
- 统一 health-consultation、health-emergency、health-watch、health-system 四个模块的配置文件格式
- 规范 YAML 缩进和空行,提升配置文件可读性
- 保持配置内容不变,仅调整格式排版
2026-03-04 09:27:40 +08:00
lianlonggang fb5f142127 chore(deps): 移除达梦数据库 JDBC 驱动依赖并优化配置
- 删除 DmJdbcDriver8.jar 驱动文件
- 排除 QuartzAutoConfiguration 自动配置
- 统一规范 POM 文件格式和依赖管理
- 优化项目构建配置
2026-03-03 17:57:32 +08:00
wanghao 2c0d684079 信创改造 2026-03-02 15:13:07 +08:00
315 changed files with 1803 additions and 1427 deletions
@@ -0,0 +1,111 @@
DROP TABLE "20250917_CARE";
DROP TABLE "ARC_ASSESS_VALUE";
DROP TABLE "ARC_FOOD_ATLAS";
DROP TABLE "ARC_QUESTIONNAIRE";
DROP TABLE "ARC_QUESTIONNAIRE_CHILD";
DROP TABLE "CESHI_NOTE";
DROP TABLE "COMMON_EXPORTS_INFO_QH";
DROP TABLE "COMMON_EXPORTS_ITEM_QH";
DROP TABLE "COMMON_IMPORTS_DETAIL_QH";
DROP TABLE "COMMON_IMPORTS_QH";
DROP TABLE "CON_COST_STATISTICS";
DROP TABLE "CON_DEPARTMENT";
DROP TABLE "CON_DOCTOR_FOLLOW";
DROP TABLE "CON_DOCTOR_SCHEDULING";
DROP TABLE "CON_DOCTOR_SCHEDULING_DATE";
DROP TABLE "CON_EVALUATE";
DROP TABLE "CON_FAMILY_MEMBERS";
DROP TABLE "CON_HEALTH_INFO";
DROP TABLE "CON_HEALTH_INFO_ANSWER";
DROP TABLE "CON_HOSPITAL_FOLLOW";
DROP TABLE "CON_KNOWLEDGE";
DROP TABLE "CON_KNOWLEDGE_CATEGORY";
DROP TABLE "CON_MEDICAL_RECORDS";
DROP TABLE "CON_SESSION_RESERVATION_DATE";
DROP TABLE "DEMO";
DROP TABLE "DEMO_FIELD_DEF_VAL_MAIN";
DROP TABLE "DEMO_FIELD_DEF_VAL_SUB";
DROP TABLE "EMERGENCY_SERIOUS_DISEASE";
DROP TABLE "HEALTH_CLASSIFICATION";
DROP TABLE "HEALTH_USER_EMPLOYEE_EX_QH";
DROP TABLE "JEECG_MONTHLY_GROWTH_ANALYSIS";
DROP TABLE "JEECG_ORDER_CUSTOMER";
DROP TABLE "JEECG_ORDER_MAIN";
DROP TABLE "JEECG_ORDER_TICKET";
DROP TABLE "JEECG_PROJECT_NATURE_INCOME";
DROP TABLE "JIMU_DICT";
DROP TABLE "JIMU_DICT_ITEM";
DROP TABLE "JIMU_REPORT";
DROP TABLE "JIMU_REPORT_DATA_SOURCE";
DROP TABLE "JIMU_REPORT_DB";
DROP TABLE "JIMU_REPORT_DB_FIELD";
DROP TABLE "JIMU_REPORT_DB_PARAM";
DROP TABLE "JIMU_REPORT_LINK";
DROP TABLE "JIMU_REPORT_MAP";
DROP TABLE "JIMU_REPORT_SHARE";
DROP TABLE "JOA_DEMO";
DROP TABLE "LORE_CHECK_SUBJECT";
DROP TABLE "ONL_AUTH_DATA";
DROP TABLE "ONL_AUTH_PAGE";
DROP TABLE "ONL_AUTH_RELATION";
DROP TABLE "ONL_CGFORM_BUTTON";
DROP TABLE "ONL_CGFORM_ENHANCE_JAVA";
DROP TABLE "ONL_CGFORM_ENHANCE_JS";
DROP TABLE "ONL_CGFORM_ENHANCE_SQL";
DROP TABLE "ONL_CGFORM_FIELD";
DROP TABLE "ONL_CGFORM_HEAD";
DROP TABLE "ONL_CGFORM_INDEX";
DROP TABLE "ONL_CGREPORT_HEAD";
DROP TABLE "ONL_CGREPORT_ITEM";
DROP TABLE "ONL_CGREPORT_PARAM";
DROP TABLE "OSS_FILE";
DROP TABLE "QRTZ_BLOB_TRIGGERS";
DROP TABLE "QRTZ_CALENDARS";
DROP TABLE "QRTZ_CRON_TRIGGERS";
DROP TABLE "QRTZ_FIRED_TRIGGERS";
DROP TABLE "QRTZ_JOB_DETAILS" CASCADE;
DROP TABLE "QRTZ_LOCKS";
DROP TABLE "QRTZ_PAUSED_TRIGGER_GRPS";
DROP TABLE "QRTZ_SCHEDULER_STATE";
DROP TABLE "QRTZ_SIMPLE_TRIGGERS";
DROP TABLE "QRTZ_SIMPROP_TRIGGERS";
DROP TABLE "QRTZ_TRIGGERS";
DROP TABLE "REP_DEMO_DXTJ";
DROP TABLE "REP_DEMO_EMPLOYEE";
DROP TABLE "REP_DEMO_GONGSI";
DROP TABLE "REP_DEMO_JIANPIAO";
DROP TABLE "SYS_APP_VERSION_QH";
DROP TABLE "SYS_DEPART_COPY1";
DROP TABLE "SYS_DEPART_GPS_QH";
DROP TABLE "SYS_DEPART_QH";
DROP TABLE "SYS_LOG_QH";
DROP TABLE "SYS_PERMISSION_20241224";
DROP TABLE "SYS_PERMISSION_DATA_RULE_QH";
DROP TABLE "SYS_PERMISSION_QH";
DROP TABLE "SYS_ROLE_INDEX_QH";
DROP TABLE "SYS_ROLE_PERMISSION_QH";
DROP TABLE "SYS_ROLE_QH";
DROP TABLE "SYS_USER_DEPART_CHANGE_APPLY_QH";
DROP TABLE "SYS_USER_DEPART_QH";
DROP TABLE "SYS_USER_QH";
DROP TABLE "SYS_USER_ROLE_QH";
DROP TABLE "TEST_DEMO";
DROP TABLE "TEST_ENHANCE_SELECT";
DROP TABLE "TEST_NOTE";
DROP TABLE "TEST_ORDER_CUSTOMER";
DROP TABLE "TEST_ORDER_MAIN";
DROP TABLE "TEST_ORDER_PRODUCT";
DROP TABLE "TEST_SHOPTYPE_TREE";
DROP TABLE "TEST_V3_HELLO";
DROP TABLE "TMP_REPORT_DATA_1";
DROP TABLE "TMP_REPORT_DATA_INCOME";
DROP TABLE "REMOTE_WEIGHT_MANUFACTURER_INBODY";
DROP TABLE "REMOTE_WEIGHT_MANUFACTURER_LEFU";
DROP TABLE "REMOTE_WEIGHT_MANUFACTURER_ONE";
DROP TABLE "REMOTE_WEIGHT_MANUFACTURER_TWO";
DROP TABLE "REMOTE_WEIGHT_NORMATIVE_DATA";
DROP TABLE "HEALTH_USER_DOCTOR_BASE_EX";
DROP TABLE "HOSPITAL_DEPARTMENT";
DROP TABLE "STATION_HOSPITAL";
DROP TABLE "SYS_APP_VERSION";
DROP TABLE "USER_INFORMATION";
@@ -0,0 +1,92 @@
-- ============================================================
-- System 服务数据库表名修改脚本达梦 DM8
-- 规则统一以 QH_ 开头第二级三字母业务模块前缀总长度 25
-- 生成日期2026-03-10
-- 涉及表数76
-- ============================================================
-- ===== COM 公共模块4 =====
ALTER TABLE "COMMON_EXPORTS_INFO" RENAME TO "QH_COM_EXPORTS_INFO";
ALTER TABLE "COMMON_EXPORTS_ITEM" RENAME TO "QH_COM_EXPORTS_ITEM";
ALTER TABLE "COMMON_IMPORTS" RENAME TO "QH_COM_IMPORTS";
ALTER TABLE "COMMON_IMPORTS_DETAIL" RENAME TO "QH_COM_IMPORTS_DETAIL";
-- ===== HLT 健康模块6 =====
ALTER TABLE "HEALTH_CONSULT_RESOURCE" RENAME TO "QH_HLT_CONSULT_RESOURCE";
ALTER TABLE "HEALTH_HOLIDAY" RENAME TO "QH_HLT_HOLIDAY";
ALTER TABLE "HEALTH_USER_DOCTOR_EX" RENAME TO "QH_HLT_DOCTOR_EX";
ALTER TABLE "HEALTH_USER_EMPLOYEE_EX" RENAME TO "QH_HLT_USER_EMPLOYEE_EX";
ALTER TABLE "HEALTH_USER_OPERATOR_EX" RENAME TO "QH_HLT_USER_OPERATOR_EX";
ALTER TABLE "HEALTH_USER_STATION_EX" RENAME TO "QH_HLT_USER_STATION_EX";
-- ===== SCL 体测模块2 =====
ALTER TABLE "SCALE_HEIGHT" RENAME TO "QH_SCL_HEIGHT";
ALTER TABLE "SCALE_PERSONAL" RENAME TO "QH_SCL_PERSONAL";
-- ===== SYS 系统模块52 =====
ALTER TABLE "SYS_ANNOUNCEMENT" RENAME TO "QH_SYS_ANNOUNCEMENT";
ALTER TABLE "SYS_ANNOUNCEMENT_SEND" RENAME TO "QH_SYS_ANNOUNCEMENT_SEND";
ALTER TABLE "SYS_BANNER" RENAME TO "QH_SYS_BANNER";
ALTER TABLE "SYS_CATEGORY" RENAME TO "QH_SYS_CATEGORY";
ALTER TABLE "SYS_CHECK_RULE" RENAME TO "QH_SYS_CHECK_RULE";
ALTER TABLE "SYS_COMMENT" RENAME TO "QH_SYS_COMMENT";
ALTER TABLE "SYS_CONFIG" RENAME TO "QH_SYS_CONFIG";
ALTER TABLE "SYS_DATA_LOG" RENAME TO "QH_SYS_DATA_LOG";
ALTER TABLE "SYS_DATA_SOURCE" RENAME TO "QH_SYS_DATA_SOURCE";
ALTER TABLE "SYS_DEPART" RENAME TO "QH_SYS_DEPART";
ALTER TABLE "SYS_DEPART_GPS" RENAME TO "QH_SYS_DEPART_GPS";
ALTER TABLE "SYS_DEPART_PERMISSION" RENAME TO "QH_SYS_DEPART_PERMISSION";
ALTER TABLE "SYS_DEPART_ROLE" RENAME TO "QH_SYS_DEPART_ROLE";
ALTER TABLE "SYS_DEPART_ROLE_PERMISSION" RENAME TO "QH_SYS_DEPT_ROLE_PERM";
ALTER TABLE "SYS_DEPART_ROLE_USER" RENAME TO "QH_SYS_DEPART_ROLE_USER";
ALTER TABLE "SYS_DICT" RENAME TO "QH_SYS_DICT";
ALTER TABLE "SYS_DICT_ITEM" RENAME TO "QH_SYS_DICT_ITEM";
ALTER TABLE "SYS_FILES" RENAME TO "QH_SYS_FILES";
ALTER TABLE "SYS_FILL_RULE" RENAME TO "QH_SYS_FILL_RULE";
ALTER TABLE "SYS_FORM_FILE" RENAME TO "QH_SYS_FORM_FILE";
ALTER TABLE "SYS_GATEWAY_ROUTE" RENAME TO "QH_SYS_GATEWAY_ROUTE";
ALTER TABLE "SYS_IOS_REDEEM" RENAME TO "QH_SYS_IOS_REDEEM";
ALTER TABLE "SYS_LOG" RENAME TO "QH_SYS_LOG";
ALTER TABLE "SYS_MESSAGE_NOTICE" RENAME TO "QH_SYS_MSG_NOTICE";
ALTER TABLE "SYS_MESSAGE_NOTICE_SCOPE" RENAME TO "QH_SYS_MSG_NOTICE_SCOPE";
ALTER TABLE "SYS_MESSAGE_REMIND" RENAME TO "QH_SYS_MSG_REMIND";
ALTER TABLE "SYS_NOTICE" RENAME TO "QH_SYS_NOTICE";
ALTER TABLE "SYS_NOTICE_READ_RECORD" RENAME TO "QH_SYS_NOTICE_READ_RECORD";
ALTER TABLE "SYS_PACK_PERMISSION" RENAME TO "QH_SYS_PACK_PERMISSION";
ALTER TABLE "SYS_PERMISSION" RENAME TO "QH_SYS_PERMISSION";
ALTER TABLE "SYS_PERMISSION_DATA_RULE" RENAME TO "QH_SYS_PERM_DATA_RULE";
ALTER TABLE "SYS_PERMISSION_V2" RENAME TO "QH_SYS_PERMISSION_V2";
ALTER TABLE "SYS_POSITION" RENAME TO "QH_SYS_POSITION";
ALTER TABLE "SYS_POSITION_CLASSIFY" RENAME TO "QH_SYS_POSITION_CLASSIFY";
ALTER TABLE "SYS_QUARTZ_JOB" RENAME TO "QH_SYS_QUARTZ_JOB";
ALTER TABLE "SYS_ROLE" RENAME TO "QH_SYS_ROLE";
ALTER TABLE "SYS_ROLE_INDEX" RENAME TO "QH_SYS_ROLE_INDEX";
ALTER TABLE "SYS_ROLE_PERMISSION" RENAME TO "QH_SYS_ROLE_PERMISSION";
ALTER TABLE "SYS_SMS" RENAME TO "QH_SYS_SMS";
ALTER TABLE "SYS_SMS_TEMPLATE" RENAME TO "QH_SYS_SMS_TEMPLATE";
ALTER TABLE "SYS_TENANT" RENAME TO "QH_SYS_TENANT";
ALTER TABLE "SYS_TENANT_PACK" RENAME TO "QH_SYS_TENANT_PACK";
ALTER TABLE "SYS_TENANT_PACK_PERMS" RENAME TO "QH_SYS_TENANT_PACK_PERMS";
ALTER TABLE "SYS_TENANT_PACK_USER" RENAME TO "QH_SYS_TENANT_PACK_USER";
ALTER TABLE "SYS_THIRD_ACCOUNT" RENAME TO "QH_SYS_THIRD_ACCOUNT";
ALTER TABLE "SYS_USER" RENAME TO "QH_SYS_USER";
ALTER TABLE "SYS_USER_AGENT" RENAME TO "QH_SYS_USER_AGENT";
ALTER TABLE "SYS_USER_DEPART" RENAME TO "QH_SYS_USER_DEPART";
ALTER TABLE "SYS_USER_DEPART_CHANGE_APPLY" RENAME TO "QH_SYS_DEPT_CHG_APPLY";
ALTER TABLE "SYS_USER_DEVICE" RENAME TO "QH_SYS_USER_DEVICE";
ALTER TABLE "SYS_USER_EMERGENCY_CONTACT" RENAME TO "QH_SYS_USR_EMERG_CONTACT";
ALTER TABLE "SYS_USER_FAMILY_MEMBERS" RENAME TO "QH_SYS_USR_FAMILY_MBR";
ALTER TABLE "SYS_USER_FAMILY_MEMBERS_REQUEST" RENAME TO "QH_SYS_USR_FAM_MBR_REQ";
ALTER TABLE "SYS_USER_POST" RENAME TO "QH_SYS_USER_POST";
ALTER TABLE "SYS_USER_ROLE" RENAME TO "QH_SYS_USER_ROLE";
ALTER TABLE "SYS_USER_TENANT" RENAME TO "QH_SYS_USER_TENANT";
ALTER TABLE "SYS_VERSION_APP" RENAME TO "QH_SYS_VERSION_APP";
ALTER TABLE "SYS_VERSION_INFO" RENAME TO "QH_SYS_VERSION_INFO";
-- ===== USR 用户模块12 =====
ALTER TABLE "TBL_USER_WX_RELATION" RENAME TO "QH_USR_WX_RELATION";
ALTER TABLE "USER_DATA_RECORD_BLOOD_ABO" RENAME TO "QH_USR_DATA_RCD_BLOOD_ABO";
ALTER TABLE "USER_DATA_RECORD_BLOOD_PRESSURE" RENAME TO "QH_USR_DATA_RCD_BLD_PRS";
ALTER TABLE "USER_DATA_RECORD_BMI" RENAME TO "QH_USR_DATA_RCD_BMI";
ALTER TABLE "USER_DATA_RECORD_BWH" RENAME TO "QH_USR_DATA_RCD_BWH";
ALTER TABLE "USER_WEIGHT_BIND" RENAME TO "QH_USR_WEIGHT_BIND";
@@ -30,10 +30,6 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
@@ -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<DataSource> 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文件报错
}
};
}
}
@@ -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_SERIALIZABLEDM8与此兼容
}
@Override
protected JobLauncher createJobLauncher() throws Exception {
SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
@@ -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
@@ -459,7 +459,7 @@ public class UserPointsServiceImpl extends ServiceImpl<UserPointsMapper, UserPoi
List<UserPointsDetails> details = userPointsDetailsMapper.selectList(new LambdaQueryWrapper<UserPointsDetails>()
.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()));
@@ -20,7 +20,7 @@ import java.util.Date;
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "con_session_view")
@TableName(value = "con_session")
public class ConSessionView implements Serializable {
private static final long serialVersionUID = 1L;
@TableField(value = "id")
@@ -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")
@@ -27,7 +27,7 @@ public interface ConDepartmentMapper extends BaseMapper<ConDepartment> , 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")
@@ -117,7 +117,7 @@ public interface ConDoctorMapper extends BaseMapper<ConDoctor> , MPJBaseMapper<C
*/
List<ConDoctor> 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<Map<String, String>> selectSickName(String sickIds);
@Select("SELECT * FROM con_doctor WHERE status = '1' AND del_flag = '0'")
@@ -136,11 +136,11 @@ public interface ConDoctorMapper extends BaseMapper<ConDoctor> , MPJBaseMapper<C
@Update("update con_doctor set audio_status = #{audioStatus},tf_jump_holiday= #{tfJumpHoliday} WHERE status = '1' and del_flag = '0' and id = #{id}")
int updateAudioStatus(String id, String audioStatus, String tfJumpHoliday);
@Select("select count(1) from con_doctor where del_flag = '0' AND status = 1 and doctor_status != 3 AND FIND_IN_SET(#{sickId},good_at_sickness)")
@Select("select count(1) from con_doctor where del_flag = '0' AND status = 1 and doctor_status != 3 AND INSTR(',' || #{sickId} || ',', ',' || good_at_sickness || ',') > 0")
int selectDoctorNumBySickId(String sickId);
@Select("select count(1) from con_doctor where del_flag = '0' AND status = 1 AND doctor_status != 3 AND FIND_IN_SET(department_id,#{departmentId})")
@Select("select count(1) from con_doctor where del_flag = '0' AND status = 1 AND doctor_status != 3 AND INSTR(',' || #{departmentId} || ',', ',' || department_id || ',') > 0")
int selectDoctorNumByDepartmentId(String departmentId);
List<ConDoctor> selectListByQuery(@Param("conDoctor") ConDoctor conDoctor);
@@ -170,7 +170,7 @@ public interface ConDoctorMapper extends BaseMapper<ConDoctor> , MPJBaseMapper<C
@Select("select count(1) from con_doctor where del_flag = '0' AND status = 1 AND FIND_IN_SET(department_id,#{departmentId}) and resource_id = #{resourceId} and doctor_status != 3")
@Select("select count(1) from con_doctor where del_flag = '0' AND status = 1 AND INSTR(',' || #{departmentId} || ',', ',' || department_id || ',') > 0 and resource_id = #{resourceId} and doctor_status != 3")
int selectDoctorNumByDepartmentIdAndResourceId(String departmentId,String resourceId);
@@ -20,7 +20,7 @@ public interface ConDoctorSchedulingDateMapper extends BaseMapper<ConDoctorSched
IPage<ConDoctorSchedulingDate> queryPageList(IPage<ConDoctorSchedulingDate> page, @Param("conDoctorSchedulingDate") ConDoctorSchedulingDate conDoctorSchedulingDate);
@Select("SELECT * FROM con_doctor_scheduling_date WHERE status = '1' and del_flag = '0' and user_id = #{doctorId} and scheduling_date >= DATE_FORMAT(SYSDATE(),'%Y-%m-%d') order by scheduling_date")
@Select("SELECT * FROM con_doctor_scheduling_date WHERE status = '1' and del_flag = '0' and user_id = #{doctorId} and scheduling_date >= TO_CHAR(SYSDATE,'YYYY-MM-DD') order by scheduling_date")
public List<ConDoctorSchedulingDateListDO> selectDoctorById(String doctorId);
@Select("SELECT * FROM con_doctor_scheduling_date WHERE status = '1' and del_flag = '0' and id = #{id}")
@@ -34,11 +34,11 @@ public interface ConDoctorSchedulingDateMapper extends BaseMapper<ConDoctorSched
public int updateScheduleAddMinus(String id);
@Select("SELECT * FROM con_doctor_scheduling_date WHERE status = '1' and del_flag = '0' and user_id = #{doctorId} and scheduling_date >= DATE_FORMAT(#{schedulingDate},'%Y-%m-%d')")
@Select("SELECT * FROM con_doctor_scheduling_date WHERE status = '1' and del_flag = '0' and user_id = #{doctorId} and scheduling_date >= TO_CHAR(#{schedulingDate},'YYYY-MM-DD')")
public List<ConDoctorSchedulingDateListDO> selectDoctorScheduleDateById(String doctorId, Date schedulingDate);
@Select("SELECT * FROM con_doctor_scheduling_date WHERE status = '1' and del_flag = '0' and user_id = #{userId} and scheduling_date >= DATE(NOW()) and week = #{week}")
@Select("SELECT * FROM con_doctor_scheduling_date WHERE status = '1' and del_flag = '0' and user_id = #{userId} and scheduling_date >= TRUNC(SYSDATE) and week = #{week}")
public List<ConDoctorSchedulingDateListDO> selectDoctorSchedulingByWeekAndUserId(String userId, String week);
@@ -46,7 +46,7 @@ public interface ConDoctorSchedulingDateMapper extends BaseMapper<ConDoctorSched
public int updateScheduleNum(String schedulingNum, String id);
@Select("SELECT * FROM con_doctor_scheduling_date WHERE status = '1' and del_flag = '0' and user_id = #{doctorId} and scheduling_date = DATE_FORMAT(#{schedulingDate},'%Y-%m-%d') and type = #{type}")
@Select("SELECT * FROM con_doctor_scheduling_date WHERE status = '1' and del_flag = '0' and user_id = #{doctorId} and scheduling_date = TO_CHAR(#{schedulingDate},'YYYY-MM-DD') and type = #{type}")
public List<ConDoctorSchedulingDateListDO> selectDoctorScheduleDate(String doctorId, Date schedulingDate, String type);
Boolean insertBatchSomeColumn(@Param("list") List<ConDoctorSchedulingDate> list);
@@ -38,7 +38,7 @@ public interface ConDoctorSchedulingMapper extends BaseMapper<ConDoctorSchedulin
@Update("update con_doctor_scheduling set del_flag = 1 WHERE status = '1' and del_flag = '0' and user_id = #{userId}")
public int deleteDoctorSchedule(String userId);
@Select("SELECT * FROM con_doctor_scheduling WHERE status = '1' and del_flag = '0' and user_id = #{userId} and scheduling_date >= DATE(NOW()) and week = #{week}")
@Select("SELECT * FROM con_doctor_scheduling WHERE status = '1' and del_flag = '0' and user_id = #{userId} and scheduling_date >= TRUNC(SYSDATE) and week = #{week}")
public List<ConDoctorSchedulingDO> selectDoctorSchedulingByWeekAndUserId(String userId, String week);
Boolean updateBatchById(@Param("list") List<ConDoctorScheduling> schedulingList);
@@ -30,6 +30,4 @@ public interface ConHelperSchedulingMapper extends BaseMapper<ConHelperSchedulin
@Select("SELECT * FROM con_helper_scheduling WHERE week = #{week} and del_flag = '0' and status = '1'")
public List<ConHelperScheduling> getYesterDayScheduling(Integer week);
@Select("SELECT * FROM con_helper_scheduling_qh WHERE week = #{week} and del_flag = '0' and status = '1'")
public List<ConHelperScheduling> getYesterDaySchedulingQh(Integer week);
}
@@ -36,6 +36,6 @@ public interface ConMedicalRecordsMapper extends BaseMapper<ConMedicalRecords> {
ConMedicalRecords selectByMemberIdAndUserId(String memberId, String userId);
@Select("SELECT * FROM con_medical_records_view WHERE status = '1' and del_flag = '0' and id = #{id}")
@Select("SELECT * FROM con_medical_records WHERE status = '1' and del_flag = '0' and id = #{id}")
public ConMedicalRecordsDO selectConMedicalRecordsViewInfoById(String id);
}
@@ -56,8 +56,8 @@ public interface ConResourceMapper extends BaseMapper<ConResource> {
List<HospitalDepartment> selectResourceInfoByDepartId(@Param("idList") List<String> idList);
@Select("SELECT c.id,c.resource_name as resourceName FROM con_resource c WHERE EXISTS (SELECT 1 FROM con_doctor d WHERE c.id = d.resource_id and d.del_flag = 0 and d.`status` = 1)" +
"and c.del_flag = 0 and c.`status` = 1 ORDER BY c.tf_top DESC,c.sort")
@Select("SELECT c.id,c.resource_name as resourceName FROM con_resource c WHERE EXISTS (SELECT 1 FROM con_doctor d WHERE c.id = d.resource_id and d.del_flag = 0 and d.status = 1)" +
"and c.del_flag = 0 and c.status = 1 ORDER BY c.tf_top DESC,c.sort")
public List<ConResourceDO> selectHospitalListVersionTwo();
@@ -20,7 +20,7 @@ public interface ConServiceMapper extends BaseMapper<ConService> {
ConService selectConServiceByDoctrId(String doctorId);
@Select("select count(1) from con_service where service_status = 0 and doctor_id = #{doctorId} and del_flag = 0 and status = 1 and DATE_FORMAT(#{scheduleDate}, '%Y-%m-%d') >= DATE_FORMAT(start_day, '%Y-%m-%d') and DATE_FORMAT(#{scheduleDate}, '%Y-%m-%d') <= DATE_FORMAT(end_day, '%Y-%m-%d')")
@Select("select count(1) from con_service where service_status = 0 and doctor_id = #{doctorId} and del_flag = 0 and status = 1 and TO_CHAR(#{scheduleDate}, 'YYYY-MM-DD') >= TO_CHAR(start_day, 'YYYY-MM-DD') and TO_CHAR(#{scheduleDate}, 'YYYY-MM-DD') <= TO_CHAR(end_day, 'YYYY-MM-DD')")
int selectConServiceByDoctrIdExist(String doctorId, Date scheduleDate);
}
@@ -114,24 +114,24 @@ public interface ConSessionMapper extends BaseMapper<ConSession> , MPJBaseMapper
@Select("select * from con_session where im_id = #{imId} and to_account = #{toAccount} and del_flag = 0 and status = 1")
ConSession selectConSessionByImId(String imId, String toAccount);
@Update("update con_session set reply_time = NOW() where im_id = #{imId}")
@Update("update con_session set reply_time = SYSDATE where im_id = #{imId}")
int updateSessionReplyTime(String imId);
@Select("select * from con_session where im_id = #{imId} and del_flag = 0 and status = 1")
ConSession selectConSessionByImIdOnly(String imId);
@Update("update con_session set content_status = 4 where TIMESTAMPDIFF(HOUR,reply_time,now()) >= 4 and content_status = 3 and content_type = 1")
@Update("update con_session set content_status = 4 where (SYSDATE - CAST(reply_time AS DATE)) * 24 >= 4 and content_status = 3 and content_type = 1")
int sessionSendMessageExpire();
@Update("update con_session set content_status = 8 where TIMESTAMPDIFF(HOUR,create_time,now()) >= 24 and content_type = 1 and (content_status = 1 or content_status = 2)")
@Update("update con_session set content_status = 8 where (SYSDATE - CAST(create_time AS DATE)) * 24 >= 24 and content_type = 1 and (content_status = 1 or content_status = 2)")
int sessionSendMessageExpireAnother();
@Update("update con_session set content_status = 8 where DATE(NOW()) > session_date and content_type = 2 and (content_status = 1 or content_status = 2)")
@Update("update con_session set content_status = 8 where TRUNC(SYSDATE) > session_date and content_type = 2 and (content_status = 1 or content_status = 2)")
int sessionSendMessageExpireVideo();
@Update("update con_session set content_status = 4 where DATE(NOW()) > session_date and content_type = 2 and content_status = 3 ")
@Update("update con_session set content_status = 4 where TRUNC(SYSDATE) > session_date and content_type = 2 and content_status = 3 ")
int sessionSendMessageExpireVideoAnother();
@Select("select * from con_session where del_flag = 0 and status = 1 and from_account = #{fromAccount} and session_type = #{sessionType} and content_status = 3 limit 1")
@@ -178,7 +178,7 @@ public interface ConSessionMapper extends BaseMapper<ConSession> , MPJBaseMapper
*
* @return
*/
@Update("update con_session set content_status = 5 where session_type != 1 and content_status = 3 and timestampdiff(HOUR,reply_time,NOW()) >= #{expireHour} and tf_reply = 1")
@Update("update con_session set content_status = 5 where session_type != 1 and content_status = 3 and (SYSDATE - CAST(reply_time AS DATE)) * 24 >= #{expireHour} and tf_reply = 1")
int changeEndUserAndProfessiorHelper(String expireHour);
/**
@@ -186,7 +186,7 @@ public interface ConSessionMapper extends BaseMapper<ConSession> , MPJBaseMapper
*
* @return
*/
@Update("update con_session set content_status = 4 where session_type = 1 and content_type = 1 and content_status = 3 and timestampdiff(HOUR,reply_time,NOW()) >= #{expireHour} and tf_reply = 1")
@Update("update con_session set content_status = 4 where session_type = 1 and content_type = 1 and content_status = 3 and (SYSDATE - CAST(reply_time AS DATE)) * 24 >= #{expireHour} and tf_reply = 1")
int endSession(String expireHour);
/**
@@ -194,7 +194,7 @@ public interface ConSessionMapper extends BaseMapper<ConSession> , MPJBaseMapper
*
* @return
*/
@Update("update con_session set content_status = 8 where content_type != 2 and timestampdiff(HOUR,create_time,NOW()) >= #{expireHour} and tf_reply = 0")
@Update("update con_session set content_status = 8 where content_type != 2 and (SYSDATE - CAST(create_time AS DATE)) * 24 >= #{expireHour} and tf_reply = 0")
int expireMeaaage(String expireHour);
@@ -240,21 +240,13 @@ public interface ConSessionMapper extends BaseMapper<ConSession> , MPJBaseMapper
@Param("fromAccount")String fromAccount);
@Select("select * from con_session_view where im_id = #{imId} and del_flag = 0 and status = 1")
@Select("select * from con_session where im_id = #{imId} and del_flag = 0 and status = 1")
ConSession selectConSessionByImIdOnlyBackUp(String imId);
@Update("update con_session_qh set reply_time = NOW() where im_id = #{imId}")
int updateSessionReplyTimeBackUp(String imId);
@Update("update con_session_qh set tf_reply = 1 where id = #{id}")
int updateConSessionTfReplyBackUp(String id);
@Select("select * from con_session_view where id = #{id} and del_flag = 0 and status = 1")
@Select("select * from con_session where id = #{id} and del_flag = 0 and status = 1")
ConSession selectConSessionByIdView(String id);
@Select("select * from con_session_view where im_id = #{id} and del_flag = 0 and status = 1")
@Select("select * from con_session where im_id = #{id} and del_flag = 0 and status = 1")
ConSession selectConSessionByIdViewAndImId(String imId);
@Update("update con_session set user_tf_reply = 1 where id = #{id}")
@@ -282,7 +274,7 @@ public interface ConSessionMapper extends BaseMapper<ConSession> , MPJBaseMapper
List<ConSessionDO> selectSessionListByUserIdHelperAnother(IPage<ConSessionDO> page, @Param("contentType") String contentType, @Param("state") String state, @Param("userId") String userId);
@Select("select * from con_session where session_type = 1 and content_type = 1 and content_status = 3 and timestampdiff(HOUR,reply_time,NOW()) >= #{expireHour} and tf_reply = 1")
@Select("select * from con_session where session_type = 1 and content_type = 1 and content_status = 3 and (SYSDATE - CAST(reply_time AS DATE)) * 24 >= #{expireHour} and tf_reply = 1")
List<ConSession> selectEndSession(String expireHour);
@@ -55,11 +55,11 @@ public interface ConSicksMapper extends BaseMapper<ConSicks> {
List<ConSicks> selectListByIdList(@Param("idList") List<String> idList);
@Select("select count(1) from con_sicks where del_flag = 0 and status = 1 and FIND_IN_SET(department_id,#{departmentId})")
@Select("select count(1) from con_sicks where del_flag = 0 and status = 1 and INSTR(',' || #{departmentId} || ',', ',' || department_id || ',') > 0")
int selectSickNumByDepartment(String departmentId);
@Select("select id from con_sicks where del_flag = 0 and status = 1 and FIND_IN_SET(department_id,#{departmentId})")
@Select("select id from con_sicks where del_flag = 0 and status = 1 and INSTR(',' || #{departmentId} || ',', ',' || department_id || ',') > 0")
List<String> selectSickNumByDepartmentByDepartment(String departmentId);
@@ -71,11 +71,11 @@ public interface ConSicksMapper extends BaseMapper<ConSicks> {
List<ConSicks> selectSickByTopAndHaveDoctor();
@Select("select id,department_id as departmentId,sicks_name as sicksName,descript from con_sicks where del_flag = 0 and status = 1 and FIND_IN_SET(department_id,#{departmentId}) order by tf_top desc,sort")
@Select("select id,department_id as departmentId,sicks_name as sicksName,descript from con_sicks where del_flag = 0 and status = 1 and INSTR(',' || #{departmentId} || ',', ',' || department_id || ',') > 0 order by tf_top desc,sort")
List<ConSicksDO> selectSickListByDepartment(String departmentId);
@Select("select GROUP_CONCAT(id) from con_sicks where department_id = #{departmentId}")
@Select("select LISTAGG(id, ',') WITHIN GROUP (ORDER BY id) from con_sicks where department_id = #{departmentId}")
String selectSickListByDepartmentIdAnother(String departmentId);
@Update("update con_sicks set department_id = #{departmentOne} where department_id = #{departmentTwo}")
@@ -73,7 +73,7 @@
and cct.operate_type = '5'
</if>
<if test='date != "1"'>
and DATE_FORMAT(cct.income_time, '%Y-%m')=#{date}
and TO_CHAR(cct.income_time, 'YYYY-MM')=#{date}
</if>
<if test="userId != null and userId != ''">
and cct.user_id = #{userId}
@@ -87,8 +87,8 @@
FROM con_session cs
where cs.content_type is not null
and cs.content_type &lt;&gt; '4'
and DATE_FORMAT(cs.create_time, '%Y-%m') = #{date}
group by cs.content_type, DATE_FORMAT(cs.create_time, '%Y-%m')
and TO_CHAR(cs.create_time, 'YYYY-MM') = #{date}
group by cs.content_type, TO_CHAR(cs.create_time, 'YYYY-MM')
</select>
@@ -99,7 +99,7 @@
and cs.content_type &lt;&gt; '4'
and cs.to_account = #{userId} and session_type = 1
<if test="date != null and date != ''">
and DATE_FORMAT(cs.create_time, '%Y-%m') = #{date}
and TO_CHAR(cs.create_time, 'YYYY-MM') = #{date}
</if>
group by cs.content_type, session_status
</select>
@@ -108,7 +108,7 @@
from con_cost_statistics ccs
<where>
<if test='conCostStatistics.startDate != null and conCostStatistics.endDate != null'>
and ccs.income_time between DATE_FORMAT(#{conCostStatistics.startDate}, '%Y-%m-%d 00:00:00') and DATE_FORMAT(#{conCostStatistics.endDate}, '%Y-%m-%d 23:59:59')
and ccs.income_time between TRUNC(#{conCostStatistics.startDate}) and TRUNC(#{conCostStatistics.endDate}) + 1 - 1/86400
</if>
<if test='conCostStatistics.operateType != null and conCostStatistics.operateType != "" and conCostStatistics.operateType == "0"'>
and ccs.operate_type != '5'
@@ -162,7 +162,7 @@
<select id="groupByTypehListNew" resultType="String">
select
count(1)
from con_session_view
from con_session
where
session_type = 1 and to_account = #{userId} and content_type = #{type}
<if test="state != null and state != '' and state == '1'.toString()">
@@ -172,7 +172,7 @@
and content_status &gt; 3
</if>
<if test="date != null and date != ''">
and DATE_FORMAT(create_time, '%Y-%m') = #{date}
and TO_CHAR(create_time, 'YYYY-MM') = #{date}
</if>
</select>
<select id="selectByDoctorIds" resultType="com.renkang.consultation.entity.ConCostStatistics">
@@ -74,7 +74,7 @@
where status = 1
and del_flag = 0
<if test="officeparid == null">
and ifnull(officeparid,'') = ''
and NVL(officeparid,'') = ''
</if>
<if test="officeparid != null">
and officeparid = #{officeparid}
@@ -97,25 +97,16 @@
order by tf_top desc, sort
</select>
<select id="selectChildAll" resultType="com.renkang.consultation.entity.ConDepartment">
SELECT *
FROM (
SELECT d1.*,
@pv := CONCAT(@pv, ',', d1.id) AS path
FROM
con_department AS d1
JOIN
(SELECT @pv := #{departmentId}) AS initial
WHERE
FIND_IN_SET(d1.officeparid
, @pv)
> 0
) AS subquery
ORDER BY LENGTH(path)
SELECT * FROM con_department
WHERE id != #{departmentId}
START WITH id = #{departmentId}
CONNECT BY PRIOR id = officeparid
ORDER BY LEVEL, id
</select>
<select id="getOneDepartList" resultType="com.renkang.consultation.entity.ConDepartment">
SELECT *
FROM `con_department`
FROM con_department
WHERE office_level = 1
and del_flag = 0
and status = 1
@@ -123,7 +114,7 @@
<select id="getTwoDepartList" resultType="com.renkang.consultation.entity.ConDepartment">
SELECT *
FROM `con_department`
FROM con_department
WHERE office_level = 2
and del_flag = 0
and status = 1
@@ -133,10 +124,10 @@
SELECT *
from con_doctor
where department_id in
(SELECT id FROM `con_department` WHERE office_level in (1, 2) and del_flag = 0 and status = 1)
(SELECT id FROM con_department WHERE office_level in (1, 2) and del_flag = 0 and status = 1)
and del_flag = 0
and status = 1
ORDER BY doctor_status DESC;
ORDER BY doctor_status DESC
</select>
<select id="selectChildById" resultType="com.renkang.consultation.entity.ConDepartment">
@@ -146,12 +137,11 @@
<select id="selectHospitalDepartmentId" resultType="com.renkang.consultation.entity.ConDepartmentDO">
select
distinct a.department_id as "id",
a.department_id as "id",
b.department_name as "departmentName"
from hospital_department a left join con_department b on a.department_id = b.id
where a.hospital_id = #{hospitalId} and b.office_level = 1
GROUP BY a.department_id,b.department_name
order by b.tf_top desc,b.sort
</select>
<select id="getMedicalDepartmentList" resultType="com.renkang.consultation.vo.MedicalDepartmentVO">
@@ -174,7 +164,7 @@
(case when (select count(1) from con_department cd2 where cd2.officeparid = cdd.id)>0 then 0 else 1 end) as isLeaf,
officeparid as parentId
from con_department cdd
where if(officeparid is null or officeparid = '','0',officeparid) = #{pid}
where CASE WHEN (officeparid IS NULL OR officeparid = '') THEN '0' ELSE officeparid END = #{pid}
</select>
@@ -6,7 +6,7 @@
UPDATE con_doctor_scheduling
SET
week = #{item.week},
`type` = #{item.type},
"TYPE" = #{item.type},
am_num = #{item.amNum},
pm_num = #{item.pmNum},
tf_jump_holiday = #{item.tfJumpHoliday},
@@ -2,31 +2,31 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.renkang.consultation.mapper.ConHelperSchedulingHistoryMapper">
<select id="queryPageList" resultType="com.renkang.consultation.entity.ConHelperSchedulingHistory">
select `time` from con_helper_scheduling_history
select "time" from con_helper_scheduling_history
<where>
<if test="dto.startTime != null and dto.startTime!='' and dto.endTime != null and dto.endTime != ''">
and `time` &gt;= #{dto.startTime} and `time` &lt;= #{dto.endTime}
and "time" &gt;= #{dto.startTime} and "time" &lt;= #{dto.endTime}
</if>
<if test="dto.week != null and dto.week!=''">
and week = #{dto.week}
</if>
and status = 1 and del_flag = 0 GROUP BY `time` order by `time` desc
and status = 1 and del_flag = 0 GROUP BY "time" order by "time" desc
</where>
</select>
<select id="pageByScheduleTime" resultType="java.lang.String">
SELECT DATE_FORMAT(time, '%Y-%m-%d') AS `time` FROM con_helper_scheduling_history
SELECT TO_CHAR("time", 'YYYY-MM-DD') AS scheduleTime FROM con_helper_scheduling_history
<where>
<!-- 日期范围条件 -->
<if test="dto.startTime != null and dto.startTime != ''">
AND `time` &gt;= DATE_FORMAT(#{dto.startTime}, '%Y-%m-%d 00:00:00')
AND "time" &gt;= TO_DATE(#{dto.startTime}, 'YYYY-MM-DD HH24:MI:SS')
</if>
<if test="dto.endTime != null and dto.endTime != ''">
AND `time` &lt;= DATE_FORMAT(#{dto.endTime}, '%Y-%m-%d 23:59:59')
AND "time" &lt;= TO_DATE(#{dto.endTime}, 'YYYY-MM-DD HH24:MI:SS')
</if>
<if test="dto.week != null and dto.week != ''">
and week = #{dto.week}
</if>
and status = 1 and del_flag = 0 GROUP BY `time` order by `time` desc
and status = 1 and del_flag = 0 GROUP BY "time" order by "time" desc
</where>
</select>
</mapper>
@@ -21,7 +21,7 @@
AND cr.address LIKE CONCAT('%', #{conResource.province}, '%')
</if>
<if test="conResource.level != null and conResource.level != ''">
AND cr.`level` = #{conResource.level}
AND cr."level" = #{conResource.level}
</if>
<if test="conResource.status != null and conResource.status != ''">
AND cr.status = #{conResource.status}
@@ -31,8 +31,8 @@
</select>
<select id="selectBatchIds" resultType="com.renkang.consultation.entity.ConResource">
SELECT id, resource_name, longitude, latitude, type, second_type, aidrange, gd_id, url, province, city, area,
address, level, img, synopsis, sort, status, del_flag, create_by, create_time, update_by, update_time, memo,
SELECT id, resource_name, longitude, latitude, "TYPE", second_type, aidrange, gd_id, url, province, city, area,
address, "LEVEL", img, synopsis, sort, "STATUS", del_flag, create_by, create_time, update_by, update_time, memo,
key_departments, user_score, user_score_num, resource_detail, tf_top
FROM con_resource
WHERE id IN
@@ -42,7 +42,7 @@
</select>
<select id="selectHostitalList" resultType="com.renkang.consultation.vo.ConsultResourceVO">
select id,
`resource_name` as `name`
resource_name as name
from con_resource
where del_flag = 0
order by sort
@@ -542,8 +542,8 @@
<foreach item="id" collection="doctorIds" open="(" separator="," close=")">
#{id}
</foreach>
AND YEAR(session_date) = YEAR(CURRENT_DATE())
AND MONTH(session_date) = MONTH(CURRENT_DATE())
AND EXTRACT(YEAR FROM session_date) = EXTRACT(YEAR FROM SYSDATE)
AND EXTRACT(MONTH FROM session_date) = EXTRACT(MONTH FROM SYSDATE)
</select>
@@ -667,10 +667,10 @@
<!-- 日期范围条件 -->
<if test="conSession.startDate != null and conSession.startDate != ''">
AND c.create_time &gt;= DATE_FORMAT(#{conSession.startDate}, '%Y-%m-%d 00:00:00')
AND c.create_time &gt;= TRUNC(#{conSession.startDate})
</if>
<if test="conSession.endDate != null and conSession.endDate != ''">
AND c.create_time &lt;= DATE_FORMAT(#{conSession.endDate}, '%Y-%m-%d 23:59:59')
AND c.create_time &lt;= TRUNC(#{conSession.endDate}) + 1 - 1/86400
</if>
<!-- ID 和账户条件 -->
@@ -715,7 +715,7 @@
<select id="selectSessionProfessorIngNewNew" resultType="String">
select
count(1)
from con_session_view
from con_session
where status = '1' and del_flag = 0
and session_type = 1
and to_account = #{toAccount}
@@ -750,7 +750,7 @@
<select id="selectSessionProfessorIngNewNewNew" resultType="String">
select
count(1)
from con_session_view
from con_session
where status = '1' and del_flag = 0
and session_type = 1
and to_account = #{toAccount}
@@ -795,7 +795,7 @@
create_time as "createTime",
im_id as "imId",
tf_reply as "tfReply"
from con_session_view
from con_session
where status = '1' and del_flag = 0 and session_type = 1 and (to_account = #{doctorId} or third_account =
#{doctorId})
<if test="contentType != null and contentType != ''">
@@ -842,7 +842,7 @@
create_time as "createTime",
im_id as "imId",
tf_reply as "tfReply"
from con_session_view
from con_session
where status = '1'
and content_type = '1'
and del_flag = 0
@@ -878,7 +878,7 @@
create_time as "createTime",
im_id as "imId",
tf_reply as "tfReply"
from con_session_view
from con_session
where status = '1'
and content_type = '1'
and del_flag = 0
@@ -909,7 +909,7 @@
create_time as "createTime",
im_id as "imId",
tf_reply as "tfReply"
from con_session_view
from con_session
where status = '1' and user_tf_reply = 1 and del_flag = 0 and session_type = 1 and (to_account = #{doctorId} or third_account =
#{doctorId})
<if test="contentType != null and contentType != ''">
@@ -945,7 +945,7 @@
<select id="selectSessionProfessorIngNewNewAnother" resultType="String">
select
count(1)
from con_session_view
from con_session
where status = '1' and del_flag = 0
and session_type = 1
and user_tf_reply = 1
@@ -981,7 +981,7 @@
<select id="selectSessionProfessorIngNewNewNewAnother" resultType="String">
select
count(1)
from con_session_view
from con_session
where status = '1' and del_flag = 0
and session_type = 1
and to_account = #{toAccount}
@@ -55,7 +55,7 @@
<!--@mbg.generated-->
id, member_id, from_account, to_account, end_time, content_type, reservation_time,
session_type, from_name, member_name, to_name, im_id, session_time, third_account,
third_name, cost, char_date, medical_records_id, `status`, del_flag, create_by, create_time,
third_name, cost, char_date, medical_records_id, "STATUS", del_flag, create_by, create_time,
update_by, update_time, memo, content_status, session_date, week, am_pm, scheduling_date_id,
job_status, member_sex, member_age, session_status, doctor_start_time, doctor_end_time,
reject_reason, reason_type, org_code, from_type, tf_reply, reply_time, user_tf_reply,
@@ -2,9 +2,10 @@ package com.renkang;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication(scanBasePackages = {"com.renkang", "org.jeecg"})
@SpringBootApplication(scanBasePackages = {"com.renkang", "org.jeecg"},exclude = QuartzAutoConfiguration .class)
@EnableFeignClients(basePackages = {"com.renkang", "org.jeecg"})
public class HealthConsultationCloudApplication {
@@ -1,8 +1,9 @@
PROFILE_NAME=dev
SERVER_PORT=7010
NACOS_SERVER_ADDR=localhost:8848
NACOS_USERNAME=nacos
NACOS_PASSWORD=nacos
NACOS_NAMESPACE=f3f65fb2-303b-4bf7-bccb-4755886503c1
NACOS_SERVER_ADDR=192.168.1.80:8848
NACOS_USERNAME=xjuser
NACOS_PASSWORD=Aa135790!123
NACOS_NAMESPACE=xjxc-space-common
NACOS_NAMESPACE_DISCOVERY=xjxc-space-common
NACOS_GROUP=dev
FILE_SERVER_URL=http://fileserver.yg.dt.io
@@ -21,7 +21,7 @@ spring:
password: ${spring.cloud.nacos.password}
discovery:
enabled: true
namespace: ${NACOS_NAMESPACE:}
namespace: ${NACOS_NAMESPACE_DISCOVERY:}
group: ${NACOS_GROUP:DEFAULT_GROUP}
server-addr: ${spring.cloud.nacos.server-addr}
username: ${spring.cloud.nacos.username}
@@ -345,6 +345,7 @@ public class AedEquipmentManger implements Serializable {
*/
@Excel(name = "型号", width = 15)
@Schema(title = "型号")
@TableField("MODEL_NUMBER")
private String model;
/**
* 来源字典 设备类型 1:立式 ,2:挂式,3:车载
@@ -1,5 +1,6 @@
package com.renkang.emergency.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -81,12 +82,14 @@ public class TblQimoNotice implements Serializable {
*/
@Schema(title = "通话接通时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
@Excel(name = "通话接通时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@TableField("BEGIN_TIME")
private java.util.Date begin;
/**
* 通话结束时间
*/
@Schema(title = "通话结束时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
@Excel(name = "通话结束时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@TableField("END_TIME")
private java.util.Date end;
/**
* 来电进入技能组时间
@@ -59,7 +59,7 @@ public interface AedEquipmentMangerMapper extends BaseMapper<AedEquipmentManger>
* 按单位统计aed设备数量
* @return 统计数据
*/
@Select(value = "SELECT LEFT(depart_code,6) as orgCode, count(1) as aedCount FROM `aed_equipment_manger` where del_flag = 0 GROUP BY LEFT(depart_code,6)")
@Select(value = "SELECT SUBSTR(depart_code,1,6) as orgCode, count(1) as aedCount FROM aed_equipment_manger where del_flag = 0 GROUP BY SUBSTR(depart_code,1,6)")
List<JSONObject> statisticAedByOrgCode();
List<AedLocationEquipment> getLocation(@Param("idList") List<Long> idList);
@@ -12,7 +12,7 @@
aem.host_model as hostModel,
aem.host_serial_num as hostSerialNum,
aem.battery_life as batteryLife,
aem.`status` AS STATUS,
aem."status" AS STATUS,
aem.control_org_name AS controlDept,
aem.manage_user_name AS custodian,
aem.manage_user_mobile AS custodianTel,
@@ -53,7 +53,7 @@
aem.NAME AS NAME,
aem.org_code AS orgCode,
aem.CODE AS code,
aem.`status` AS STATUS,
aem."status" AS STATUS,
aem.control_org_name AS controlDept,
aem.custodian AS custodian,
aem.custodian_tel AS custodianTel,
@@ -89,7 +89,7 @@
t2.manage_user_name,
t2.manage_user_mobile
FROM
`aed_equipment_maintain` t1
"aed_equipment_maintain" t1
LEFT JOIN aed_equipment_manger t2 ON t1.equipment_id = t2.id
<where>
<if test="name !=null and name !=''">
@@ -25,7 +25,6 @@
operate_instruction as operateInstruction,
operate_video as operateVideo,
disclaimer as disclaimer,
control_org_name as controlOrgName,
manage_user_name as manageUserName,
manage_user_mobile as manageUserMobile,
mfrs_Mobile as mfrsMobile,
@@ -56,7 +56,7 @@
t2.install_address,
t2.status
FROM
`aed_equipment_train` t1
"aed_equipment_train" t1
LEFT JOIN aed_equipment_manger t2 ON t1.equipment_id = t2.id
<where>
and t1.flag = #{trainType}
@@ -25,11 +25,11 @@ public interface EmergencySeriousDiseaseMapper extends BaseMapper<EmergencySerio
public List<EmergencySeriousDisease> selectEmergencySeriousDiseaseListByState(IPage<EmergencySeriousDisease> page, @Param("state") String state, @Param("userId") String userId);
@Update("update emergency_serious_disease set state = 8 where state = 1 and desire_time < now()")
@Update("update emergency_serious_disease set state = 8 where state = 1 and desire_time < SYSDATE")
public int updateEmergencyStateOne();
@Update("update emergency_serious_disease set state = 5 where state = 4 and reservation_time < now()")
@Update("update emergency_serious_disease set state = 5 where state = 4 and reservation_time < SYSDATE")
public int updateEmergencyStateTeo();
@@ -6,7 +6,7 @@
DELETE t1
FROM emergency_schedules_new_item t1
INNER JOIN emergency_new_schedules t2 ON t1.schedules_id = t2.id
WHERE t2.schedules_time > NOW()
WHERE t2.schedules_time > SYSDATE
AND t1.user_id = #{userId}
</delete>
@@ -28,7 +28,7 @@
<where>
and t1.type = #{type}
<if test="name != null and name != ''">
AND t1.realname like concat('%',#{name},'%')
AND t1.realname like '%' || #{name} || '%'
</if>
<if test="centerIds != null and centerIds.size > 0">
and t1.center_id in
@@ -6,11 +6,11 @@
SELECT t1.user_id as userId,
t3.realname as userName,
t3.type as userType
FROM `emergency_schedules_new_item` t1
FROM emergency_schedules_new_item t1
LEFT JOIN emergency_new_schedules t2 ON t1.schedules_id = t2.id
left join emergency_profession_user t3 on t1.user_id = t3.user_id
WHERE t2.center_id = #{centerId}
AND date_format(t2.schedules_time, '%Y-%m-%d') = #{time}
AND TO_CHAR(t2.schedules_time, 'YYYY-MM-DD') = #{time}
ORDER BY
t3.type,
t1.sort
@@ -6,8 +6,8 @@
FROM emergency_schedules_new_item t1
LEFT JOIN emergency_new_schedules t2 ON t1.schedules_id = t2.id
WHERE
YEAR ( t2.schedules_time ) = #{year}
AND MONTH ( t2.schedules_time ) = #{month}
EXTRACT(YEAR FROM t2.schedules_time) = #{year}
AND EXTRACT(MONTH FROM t2.schedules_time) = #{month}
and t2.schedules_time is not null
AND t1.user_id = #{userId}
</select>
@@ -51,13 +51,13 @@
<where>
and a.del_flag = '0' and a.status = 1
<if test="emergencySeriousDisease.realname != null">
AND a.realname like concat('%',#{emergencySeriousDisease.realname},'%')
AND a.realname like '%' || #{emergencySeriousDisease.realname} || '%'
</if>
<if test="emergencySeriousDisease.reservationOffice != null">
AND a.reservation_office like concat('%',#{emergencySeriousDisease.reservationOffice},'%')
AND a.reservation_office like '%' || #{emergencySeriousDisease.reservationOffice} || '%'
</if>
<if test="emergencySeriousDisease.reservationDoctor != null">
AND a.reservation_doctor like concat('%',#{emergencySeriousDisease.reservationDoctor},'%')
AND a.reservation_doctor like '%' || #{emergencySeriousDisease.reservationDoctor} || '%'
</if>
<if test="emergencySeriousDisease.hospitalId != null">
AND a.hospital_id = #{emergencySeriousDisease.hospitalId}
@@ -66,10 +66,10 @@
AND a.register_category = #{emergencySeriousDisease.registerCategory}
</if>
<if test="emergencySeriousDisease.desireTime != null">
AND DATE(a.desire_time) = DATE(#{emergencySeriousDisease.desireTime})
AND TRUNC(a.desire_time) = TRUNC(#{emergencySeriousDisease.desireTime})
</if>
<if test="emergencySeriousDisease.reservationTime != null">
AND DATE(a.reservation_time) = DATE(#{emergencySeriousDisease.reservationTime})
AND TRUNC(a.reservation_time) = TRUNC(#{emergencySeriousDisease.reservationTime})
</if>
<if test="emergencySeriousDisease.operatorId != null">
AND a.operator_id = #{emergencySeriousDisease.operatorId}
@@ -88,15 +88,16 @@
<where>
and a.del_flag = '0' and a.status = 1 and user_id = #{userId}
<if test="state != null and state != '' and state == '1'.toString()">
AND (`state` <![CDATA[ <= ]]> 4 or state = 7)
AND ("state" <![CDATA[ <= ]]> 4 or state = 7)
</if>
<if test="state != null and state != '' and state == '2'.toString()">
AND `state` <![CDATA[ > ]]> 4 and state != 7
AND "state" <![CDATA[ > ]]> 4 and state != 7
</if>
</where>
order by a.create_time desc
</select>
<select id="dutyTeam" resultType="java.lang.Integer">
select * from (
SELECT t8.num
from (SELECT t1.user_type AS type,
count(1) AS num
@@ -104,12 +105,12 @@
LEFT JOIN emergency_new_schedules t2 ON t1.schedules_id = t2.id
LEFT JOIN emergency_profession_user t3 ON t3.center_id = t2.center_id
WHERE t3.user_id = #{userId}
AND DATE ( t2.schedules_time) = CURRENT_DATE
AND TRUNC(t2.schedules_time) = TRUNC(SYSDATE)
GROUP BY
t1.user_type
) t8
ORDER BY
t8.num
LIMIT 1
) WHERE ROWNUM = 1
</select>
</mapper>
@@ -11,7 +11,7 @@
WHERE operation_user_id is not null
and operation_user_id != ''
and session_now = 1
and DATE_FORMAT(create_time, '%Y-%m-%d') = #{targetDateStr}
and TO_CHAR(create_time, 'YYYY-MM-DD') = #{targetDateStr}
GROUP BY
operation_user_id
</select>
@@ -26,7 +26,7 @@
WHERE major_user_id is not null
and major_user_id != ''
and session_now = 1
and DATE_FORMAT(create_time, '%Y-%m-%d') = #{targetDateStr}
and TO_CHAR(create_time, 'YYYY-MM-DD') = #{targetDateStr}
GROUP BY
major_user_id
</select>
@@ -38,11 +38,11 @@
salvage_user_sex = #{sex}
</if>
<if test="depart != null and depart != ''">
and salvage_user_depart like concat('', #{depart}, '%')
and salvage_user_depart like #{depart} || '%'
</if>
and del_flag = 0
</where>
GROUP BY Initiator_type;
GROUP BY Initiator_type
</select>
<select id="emergencyNum" resultType="com.renkang.emergency.archives.model.vo.EmergencyNum">
@@ -58,7 +58,7 @@
</foreach>
</if>
<if test="type != null and type != '' and '0'.toString().equals(type)">
AND year(create_time) = year(now())
AND EXTRACT(YEAR FROM create_time) = EXTRACT(YEAR FROM SYSDATE)
</if>
</where>
GROUP BY center_id
@@ -15,7 +15,7 @@
id,
name
from emergency_resource
where FIND_IN_SET(id,#{hospitalIds})
where INSTR(',' || #{hospitalIds} || ',', ',' || id || ',') > 0
and status = 1 and del_flag = 0
</select>
</mapper>
@@ -11,7 +11,7 @@
and type = #{amOrPm}
</if>
<if test="date != null and date != ''">
and DATE_FORMAT(schedule_time, '%Y-%m-%d') = #{date}
and TO_CHAR(schedule_time, 'YYYY-MM-DD') = #{date}
</if>
and status = 1
and del_flag = 0
@@ -30,7 +30,7 @@
user_sex
FROM emergency_schedule_custom
WHERE user_id = #{userId}
AND YEAR (schedule_time) = #{year}
AND MONTH (schedule_time) = #{month}
AND EXTRACT(YEAR FROM schedule_time) = #{year}
AND EXTRACT(MONTH FROM schedule_time) = #{month}
</select>
</mapper>
@@ -11,7 +11,7 @@
and type = #{amOrPm}
</if>
<if test="date != null and date != ''">
and DATE_FORMAT(schedule_time, '%Y-%m-%d') = #{date}
and TO_CHAR(schedule_time, 'YYYY-MM-DD') = #{date}
</if>
</where>
GROUP BY
@@ -22,16 +22,16 @@
<select id="scheduleRecord" resultType="com.renkang.emergency.entity.ScheduleRecord">
SELECT
id,schedule_time,type,user_type,user_name,user_id,user_sex,
MONTH(schedule_time) AS month,
DAY(schedule_time) AS day
EXTRACT(MONTH FROM schedule_time) AS month,
EXTRACT(DAY FROM schedule_time) AS day
FROM
emergency_schedule_record
<where>
<if test="year != null and year != ''">
and YEAR (schedule_time) = #{year}
and EXTRACT(YEAR FROM schedule_time) = #{year}
</if>
<if test="month != null and month != ''">
and MONTH(schedule_time) = #{month}
and EXTRACT(MONTH FROM schedule_time) = #{month}
</if>
<if test="userId != null and userId != ''">
and user_id = #{userId}
@@ -3,27 +3,27 @@
<mapper namespace="com.renkang.emergency.mapper.TblBaseHospitalMapper">
<select id="getHospitalList" resultType="com.renkang.emergency.entity.TblBaseHospitalVo">
SELECT id,`name`,latitude lat ,longitude lon,`type`
SELECT id,name,latitude lat ,longitude lon,type
FROM emergency_resource
WHERE 1 = 1 and del_flag = 0
<if test="type != null and type.length() > 0">
AND `type` = #{type}
AND type = #{type}
</if>
<if test="hospitalName != null and hospitalName.length() > 0">
AND `name` LIKE CONCAT('%', #{hospitalName}, '%')
AND name LIKE CONCAT('%', #{hospitalName}, '%')
</if>
ORDER BY id
</select>
<select id="getHospitalListNew" resultType="com.renkang.emergency.entity.TblBaseHospitalVo">
SELECT id,`name`,latitude lat ,longitude lon,`type`
SELECT id,name,latitude lat ,longitude lon,type
FROM emergency_resource
WHERE 1 = 1 and del_flag = 0 and type != 3
<if test="type != null and type != ''">
AND `type` = #{type}
AND type = #{type}
</if>
<if test="hospitalName != null and hospitalName.length() > 0">
AND `name` LIKE CONCAT('%', #{hospitalName}, '%')
AND name LIKE CONCAT('%', #{hospitalName}, '%')
</if>
ORDER BY id
</select>
@@ -15,13 +15,13 @@
) AS sub_query
<where>
<if test="condition != null and condition != '' and condition == 2">
YEAR(help_time) = YEAR(NOW())
EXTRACT(YEAR FROM help_time) = EXTRACT(YEAR FROM SYSDATE)
</if>
<if test="condition != null and condition != '' and condition == 3">
DATE_FORMAT(help_time, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')
TO_CHAR(help_time, 'YYYYMM') = TO_CHAR(SYSDATE, 'YYYYMM')
</if>
<if test="condition != null and condition != '' and condition == 4">
YEARWEEK(date_format(help_time, '%Y-%m-%d')) = YEARWEEK(now())
TO_CHAR(help_time, 'IYYY-IW') = TO_CHAR(SYSDATE, 'IYYY-IW')
</if>
</where>
GROUP BY type
@@ -9,16 +9,16 @@
<where>
del_flag = 0
<if test="type != null and type == 0">
-- 周
AND YEARWEEK(start_time, 1) = YEARWEEK(NOW(), 1)
-- 周(使用 ISO 年-周 比较)
AND TO_CHAR(start_time, 'IYYY-IW') = TO_CHAR(SYSDATE, 'IYYY-IW')
</if>
<if test="type != null and type == 1">
-- 月
AND DATE_FORMAT(start_time,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m')
AND TO_CHAR(start_time,'YYYYMM') = TO_CHAR(SYSDATE,'YYYYMM')
</if>
<if test="type != null and type == 2">
-- 年
AND YEAR(start_time) =YEAR(NOW())
AND EXTRACT(YEAR FROM start_time) = EXTRACT(YEAR FROM SYSDATE)
</if>
</where>
GROUP BY injury_level
@@ -332,9 +332,18 @@ public class IEmergencyCenterServiceImpl extends ServiceImpl<EmergencyCenterMapp
@Override
public EmergencyCenter getCenterDetail() {
EmergencyCenterAdmin centerAdmin = centerAdminService.getOne(new LambdaQueryWrapper<EmergencyCenterAdmin>()
LambdaQueryWrapper<EmergencyCenterAdmin> wrapper = new LambdaQueryWrapper<EmergencyCenterAdmin>()
.eq(EmergencyCenterAdmin::getUserId, GlobalUtils.getLoginUser().getId())
.orderByDesc(EmergencyCenterAdmin::getCreateTime).last("limit 1"));
.orderByDesc(EmergencyCenterAdmin::getCreateTime);
Page<EmergencyCenterAdmin> page = new Page<>(1, 1);
IPage<EmergencyCenterAdmin> pageResult = centerAdminService.page(page, wrapper);
EmergencyCenterAdmin centerAdmin = null;
if (pageResult.getRecords() != null && !pageResult.getRecords().isEmpty()) {
centerAdmin = pageResult.getRecords().get(0);
}
if (ObjectUtil.isEmpty(centerAdmin)) {
return new EmergencyCenter();
}
@@ -354,7 +363,7 @@ public class IEmergencyCenterServiceImpl extends ServiceImpl<EmergencyCenterMapp
.like(EmergencyCenter::getServiceScope, "," + departCode)
.or()
.eq(EmergencyCenter::getServiceScope, departCode)
).last("limit 1");
).last("FETCH FIRST 1 ROWS ONLY");
EmergencyCenter center = getOne(centerWrapper);
if (ObjectUtil.isEmpty(center)) {
centerWrapper = new LambdaQueryWrapper<>();
@@ -366,7 +375,7 @@ public class IEmergencyCenterServiceImpl extends ServiceImpl<EmergencyCenterMapp
.like(EmergencyCenter::getServiceScope, "," + orgCode)
.or()
.eq(EmergencyCenter::getServiceScope, orgCode)
).last("limit 1");
).last("FETCH FIRST 1 ROWS ONLY");
center = getOne(centerWrapper);
}
if (ObjectUtil.isEmpty(center)) {
@@ -379,8 +388,9 @@ public class IEmergencyCenterServiceImpl extends ServiceImpl<EmergencyCenterMapp
.like(EmergencyCenter::getServiceScope, "," + userOrgCode)
.or()
.eq(EmergencyCenter::getServiceScope, userOrgCode)
).last("limit 1");
center = getOne(centerWrapper);
);
List<EmergencyCenter> list = list(centerWrapper);
center = CollUtil.isEmpty(list) ? null : list.get(0);
}
if (ObjectUtil.isNotEmpty(center)) {
// 值班时间
@@ -110,13 +110,13 @@ public class TblUserHelpServiceImpl extends ServiceImpl<TblUserHelpMapper, TblUs
// 1:全部,2:年,3:月,4:周
switch (dto.getCondition()) {
case "2":
queryWrapper.apply("DATE_FORMAT(help_time,'%Y') = DATE_FORMAT(NOW(),'%Y')");
queryWrapper.apply("EXTRACT(YEAR FROM help_time) = EXTRACT(YEAR FROM SYSDATE)");
break;
case "3":
queryWrapper.apply("DATE_FORMAT(help_time,'%Y-%m') = DATE_FORMAT(NOW(),'%Y-%m')");
queryWrapper.apply("TO_CHAR(help_time,'YYYY-MM') = TO_CHAR(SYSDATE,'YYYY-MM')");
break;
case "4":
queryWrapper.apply("YEARWEEK(date_format(help_time,'%Y-%m-%d'), 1) = YEARWEEK(now(), 1)");
queryWrapper.apply("TO_CHAR(help_time,'IYYY-IW') = TO_CHAR(SYSDATE,'IYYY-IW')");
break;
}
}
@@ -224,13 +224,13 @@ public class TblUserHelpServiceImpl extends ServiceImpl<TblUserHelpMapper, TblUs
// 1:全部,2:年,3:月,4:周
switch (condition) {
case "2":
queryWrapper.apply("DATE_FORMAT(help_time,'%Y') = DATE_FORMAT(NOW(),'%Y')");
queryWrapper.apply("EXTRACT(YEAR FROM help_time) = EXTRACT(YEAR FROM SYSDATE)");
break;
case "3":
queryWrapper.apply("DATE_FORMAT(help_time,'%Y-%m') = DATE_FORMAT(NOW(),'%Y-%m')");
queryWrapper.apply("TO_CHAR(help_time,'YYYY-MM') = TO_CHAR(SYSDATE,'YYYY-MM')");
break;
case "4":
queryWrapper.apply("YEARWEEK(date_format(help_time,'%Y-%m-%d')) = YEARWEEK(now())");
queryWrapper.apply("TO_CHAR(help_time,'IYYY-IW') = TO_CHAR(SYSDATE,'IYYY-IW')");
break;
}
}
@@ -2,9 +2,10 @@ package com.renkang;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication(scanBasePackages = {"com.renkang", "org.jeecg"})
@SpringBootApplication(scanBasePackages = {"com.renkang", "org.jeecg"},exclude = QuartzAutoConfiguration.class)
@EnableFeignClients(basePackages = {"org.jeecg", "com.renkang"})
public class HealthEmergencyCloudApplication {
@@ -1,8 +1,9 @@
PROFILE_NAME=dev
SERVER_PORT=7011
NACOS_SERVER_ADDR=localhost:8848
NACOS_USERNAME=nacos
NACOS_PASSWORD=nacos
NACOS_NAMESPACE=f3f65fb2-303b-4bf7-bccb-4755886503c1
NACOS_SERVER_ADDR=192.168.1.80:8848
NACOS_USERNAME=xjuser
NACOS_PASSWORD=Aa135790!123
NACOS_NAMESPACE=xjxc-space-common
NACOS_NAMESPACE_DISCOVERY=xjxc-space-common
NACOS_GROUP=dev
FILE_SERVER_URL=http://fileserver.yg.dt.io
@@ -21,7 +21,7 @@ spring:
password: ${spring.cloud.nacos.password}
discovery:
enabled: true
namespace: ${NACOS_NAMESPACE:}
namespace: ${NACOS_NAMESPACE_DISCOVERY:}
group: ${NACOS_GROUP:DEFAULT_GROUP}
server-addr: ${spring.cloud.nacos.server-addr}
username: ${spring.cloud.nacos.username}
@@ -71,7 +71,7 @@ public class WatchDataWorkoutTrace implements Serializable {
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "时间戳")
@TableField("`utc_time`")
@TableField("utc_time")
private java.util.Date utcTime;
/**
* 数据是否合法
+6
View File
@@ -56,6 +56,12 @@
<groupId>com.renkang</groupId>
<artifactId>font-resources</artifactId>
</dependency>
<!-- MySQL 驱动 (用于 Spring Batch 数据源兼容) -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
@@ -66,7 +66,7 @@ public interface WatchDeviceMapper extends MPJBaseMapper<WatchDevice> {
List<String> selectDeviceUserId(@Param("deptId") String deptId);
@Select(value = "SELECT LEFT(org_code,6) as orgCode, count(1) as medicalCount FROM `watch_device` GROUP BY LEFT(org_code,6)")
@Select(value = "SELECT LEFT(org_code,6) as orgCode, count(1) as medicalCount FROM watch_device GROUP BY LEFT(org_code,6)")
List<JSONObject> getWatchSum();
List<WearCount> selectWearCount(@Param("orgCodeList") List<String> orgCodeList);
@@ -16,10 +16,10 @@ import java.util.Map;
@Mapper
public interface WatchMapper {
@Select("SELECT DATEDIFF(NOW(), (SELECT bind_date FROM watch_bind_his WHERE bind_user_id = #{id} ORDER BY bind_date DESC limit 1)) AS days")
@Select("SELECT ROUND(SYSDATE - (SELECT CAST(bind_date AS DATE) FROM watch_bind_his WHERE bind_user_id = #{id} ORDER BY bind_date DESC limit 1)) AS days")
Integer getUseDays(@Param("id") String id);
@Select("select length(nm.status) minutes,DATE_FORMAT(n.data_date,'%Y-%m-%d') dataDate from watch_data_sleep_new_minute nm left join watch_data_sleep_new n on nm.sleep_id = n.id where n.id = ( select id from watch_data_sleep_new WHERE bind_user_id = #{id} order by data_date desc limit 1) and nm.STATUS not like '%55%' limit 1")
@Select("select length(nm.status) minutes,TO_CHAR(n.data_date,'YYYY-MM-DD') dataDate from watch_data_sleep_new_minute nm left join watch_data_sleep_new n on nm.sleep_id = n.id where n.id = ( select id from watch_data_sleep_new WHERE bind_user_id = #{id} order by data_date desc limit 1) and nm.STATUS not like '%55%' limit 1")
WatchDataDTO getDataSleep(@Param("id") String id);
/**
@@ -30,22 +30,22 @@ public interface WatchMapper {
@Select("SELECT long_duration_total minutes, data_date dataDate FROM watch_stat_user_info_day_sleep WHERE user_id = #{id} and long_duration_total > 0 ORDER BY data_date DESC LIMIT 1;")
WatchDataDTO getDataSleepNew(@Param("id") String id);
@Select("SELECT AVG(TIMESTAMPDIFF(MINUTE, d.fall_asleep_time, d.wake_up_time)) AS aveMinute FROM watch_data_sleep_new_day d LEFT JOIN watch_data_sleep_new n ON d.sleep_id = n.id WHERE n.id IN (SELECT id FROM watch_data_sleep_new WHERE bind_user_id = #{id})")
@Select("SELECT AVG(ROUND((CAST(d.wake_up_time AS DATE) - CAST(d.fall_asleep_time AS DATE)) * 24 * 60)) AS aveMinute FROM watch_data_sleep_new_day d LEFT JOIN watch_data_sleep_new n ON d.sleep_id = n.id WHERE n.id IN (SELECT id FROM watch_data_sleep_new WHERE bind_user_id = #{id})")
Double getAverageSleep(@Param("id") String id);
@Select("select MAX(data_value) dataValue,data_date dataDate from watch_data_steps force index(bind_user_id) where bind_user_id = #{id} group by data_date order by data_date desc limit 1")
@Select("select MAX(data_value) dataValue,data_date dataDate from watch_data_steps where bind_user_id = #{id} group by data_date order by data_date desc limit 1")
WatchDataDTO getDataSteps(@Param("id") String id);
@Select("SELECT SUM(data_value) FROM watch_data_distance WHERE bind_user_id = #{id}")
Integer getDataDistance(@Param("id") String id);
@Select("SELECT CAST(data_value as SIGNED) dataValue,data_date dataDate from watch_data_heart_rate where bind_user_id = #{id} order by time_stamp desc limit 1")
@Select("SELECT CAST(data_value as INTEGER) dataValue,data_date dataDate from watch_data_heart_rate where bind_user_id = #{id} order by time_stamp desc limit 1")
WatchDataDTO getHeartRate(@Param("id") String id);
@Select("SELECT CAST(data_value as SIGNED ) dataValue,data_date dataDate from watch_data_spo2 where bind_user_id = #{id} order by time_stamp desc limit 1")
@Select("SELECT CAST(data_value as INTEGER) dataValue,data_date dataDate from watch_data_spo2 where bind_user_id = #{id} order by time_stamp desc limit 1")
WatchDataDTO getDataSpo2(@Param("id") String id);
@Select("select cast(data_value as SIGNED ) dataValue,data_date dataDate from watch_data_stress where bind_user_id = #{id} order by end_time_stamp desc limit 1")
@Select("select cast(data_value as INTEGER) dataValue,data_date dataDate from watch_data_stress where bind_user_id = #{id} order by end_time_stamp desc limit 1")
WatchDataDTO getStress(@Param("id") String id);
@Select("select data_value dataValue,data_date dataDate from watch_data_temperature where bind_user_id = #{id} order by time_stamp desc limit 1")
@@ -54,17 +54,17 @@ public interface WatchMapper {
@Select("SELECT * FROM watch_data_sleep_new_minute WHERE sleep_id IN (SELECT id FROM watch_data_sleep_new WHERE sleep_flag= '1' AND bind_user_id = #{id} AND data_date = #{date})")
List<WatchDataSleepNewMinute> getNewMinuteList(@Param("id") String id, @Param("date") Date date);
@Select("SELECT DISTINCT data_date dateDate FROM watch_data_sleep_new WHERE DATE_FORMAT( data_date, '%Y-%m' ) = DATE_FORMAT(#{date}, '%Y-%m' ) AND bind_user_id = #{id} AND sleep_flag = '1'")
@Select("SELECT DISTINCT data_date dateDate FROM watch_data_sleep_new WHERE TO_CHAR( data_date, 'YYYY-MM' ) = TO_CHAR(#{date}, 'YYYY-MM' ) AND bind_user_id = #{id} AND sleep_flag = '1'")
List<Date> getSleepNewDateList(@Param("id") String id, @Param("date") Date date);
List<Map<String, Object>> selectData(@Param("id") String id, @Param("format") String format, @Param("date") String date);
@Select("select max(data_value) `maxValue`,min(data_value) `minValue`,max(skin_tempera) maxSkinValue,min(skin_tempera) minSkinValue from watch_data_temperature where bind_user_id = #{id} and data_date = #{date}")
@Select("select max(data_value) maxValue,min(data_value) minValue,max(skin_tempera) maxSkinValue,min(skin_tempera) minSkinValue from watch_data_temperature where bind_user_id = #{id} and data_date = #{date}")
Map<String, Object> getMapValue(@Param("id") String id, @Param("date") Date date);
List<Map<String, Object>> getData(@Param("id") String id, @Param("format") String format, @Param("date") String date);
@Select("select max(data_value) `maxValue`,min(data_value) `minValue` from watch_data_heart_rate where bind_user_id = #{id} and data_date = #{date}")
@Select("select max(data_value) maxValue,min(data_value) minValue from watch_data_heart_rate where bind_user_id = #{id} and data_date = #{date}")
Map<String, Object> getMapRate(@Param("id") String id, @Param("date") Date date);
Map<String, Object> getMapRateValue(@Param("id") String id, @Param("date") Date date);
@@ -73,12 +73,12 @@ public interface WatchMapper {
List<Map<String, Object>> getMapDataValueFormat(@Param("id") String id, @Param("date") String date, @Param("format") String format);
@Select("select max(data_value) `maxValue`,min(data_value) `minValue` ,round(avg(data_value)) `avgValue` from watch_data_stress where bind_user_id = #{id} and data_date = #{date}")
@Select("select max(data_value) maxValue,min(data_value) minValue ,round(avg(data_value)) avgValue from watch_data_stress where bind_user_id = #{id} and data_date = #{date}")
Map<String, Object> getMapStress(@Param("id") String id, @Param("date") Date date);
List<Map<String, Object>> getMapStressValueFormat(@Param("id") String id, @Param("date") String date, @Param("format") String format);
@Select("select max(data_value) `maxValue`,min(data_value) `minValue` from watch_data_spo2 where bind_user_id = #{id} and data_date = #{date}")
@Select("select max(data_value) maxValue,min(data_value) minValue from watch_data_spo2 where bind_user_id = #{id} and data_date = #{date}")
Map<String, Object> getMapSpo2(@Param("id") String id, @Param("date") Date date);
@Select("select data_value lastValue from watch_data_spo2 where bind_user_id = #{id} and data_date = #{date} order by time_stamp desc limit 1")
@@ -64,6 +64,6 @@ public interface WatchUserDataMapper extends BaseMapper<WatchUserData> {
* @param watchNo
* @return
*/
@Select("SELECT MAX(data_date) FROM `watch_user_data` where bind_user_id = #{userId} and watch_no = #{watchNo}")
@Select("SELECT MAX(data_date) FROM watch_user_data where bind_user_id = #{userId} and watch_no = #{watchNo}")
Date lastDataDate(@Param("userId") String userId,@Param("watchNo") String watchNo);
}
@@ -51,7 +51,7 @@ public class WatchStatisticsProvider {
sb.append(orgCodeStr)
.append(" as org_code, event_type, count(distinct bind_user_id) as warning_count ")
.append("from watch_monitor_data ")
.append("where warn_time between date_format(#{start}, '%Y-%m-%d 00:00:00') and date_format(#{end}, '%Y-%m-%d 23:59:59') ")
.append("where warn_time between TRUNC(#{start}) and TRUNC(#{end}) + 1 - 1/86400 ")
.append("and event_type in ('heart_rate','spo2','stress','temperature_anomalies') ");
if (StrUtil.isNotEmpty(filter.getOrgCodeLeaf())) {
sb.append("and org_code like CONCAT(#{orgCodeLeaf},'%')");
@@ -65,11 +65,11 @@ public class WatchStatisticsProvider {
public String wearingDetail() {
return "SELECT " +
" max(wd.bind_user_id) as bind_user_id," +
" max(distinct wbh.bind_date) as bind_date," +
" max(wbh.bind_date) as bind_date," +
" count(distinct wud.data_date) as date_count," +
" wd.watch_no," +
" max(wd.org_code) as watch_org_code," +
" GROUP_CONCAT(distinct wud.data_date order by wud.data_date) as date_list" +
" LISTAGG(wud.data_date, ',') WITHIN GROUP (ORDER BY wud.data_date) as date_list" +
" FROM watch_device wd" +
" LEFT JOIN watch_bind_his wbh" +
" ON wd.watch_no = wbh.watch_no AND wd.bind_user_id = wbh.bind_user_id AND wbh.bind_end_date IS NULL" +
@@ -55,13 +55,13 @@
</if>
<if test="req.flag!=null and req.flag==3">
<if test="req.dateMonth!=null">
and DATE_FORMAT(wdsn.data_date,'%Y-%m') =DATE_FORMAT(#{req.dateMonth},'%Y-%m')
and TO_CHAR(wdsn.data_date,'YYYY-MM') = TO_CHAR(#{req.dateMonth},'YYYY-MM')
</if>
</if>
<if test="req.flag!=null and req.flag==4">
<if test="req.dateYear!=null">
and year(wdsn.data_date) =#{req.dateYear}
and EXTRACT(YEAR FROM wdsn.data_date) = #{req.dateYear}
</if>
</if>
</where>
@@ -6,7 +6,7 @@
s.data_value stepsValue,
d.data_value distanceValue,
c.data_value calorieValue,
DATE_FORMAT(s.data_date, '%Y-%m-%d') dataDate
TO_CHAR(s.data_date, 'YYYY-MM-DD') dataDate
FROM
watch_data_steps s
LEFT JOIN watch_data_distance d ON s.bind_user_id = d.bind_user_id
@@ -15,7 +15,7 @@
AND s.data_date = c.data_date
WHERE
s.bind_user_id = #{id}
AND DATE_FORMAT(s.data_date, #{format}) = #{date}
AND TO_CHAR(s.data_date, #{format}) = #{date}
ORDER BY
s.data_date ASC
</select>
@@ -29,36 +29,33 @@
watch_data_temperature
WHERE
bind_user_id = #{id}
AND DATE_FORMAT( data_date, #{format}) = #{date}
AND TO_CHAR(data_date, #{format}) = #{date}
ORDER BY
data_date ASC
</select>
<select id="getMapRateValue" resultType="java.util.Map">
SELECT
max( data_value ) `maxValue`,
min( data_value ) `minValue`
max( data_value ) maxValue,
min( data_value ) minValue
FROM
watch_monitor_data
WHERE
event_type = 'heart_rate'
AND data_value != NULL
AND bind_user_id = #{id}
AND data_date BETWEEN (
DATE_SUB(#{date}, INTERVAL WEEKDAY(#{date}) DAY ))
AND (
DATE_SUB(#{date}, INTERVAL WEEKDAY(#{date}) - 6 DAY ))
AND data_date BETWEEN TRUNC(#{date}, 'IW') AND TRUNC(#{date}, 'IW') + 6
</select>
<select id="getMapRateValueFormat" resultType="java.util.Map">
SELECT
max( data_value ) `maxValue`,
min( data_value ) `minValue`
max( data_value ) maxValue,
min( data_value ) minValue
FROM
watch_monitor_data
WHERE
event_type = 'heart_rate'
AND data_value != NULL
AND bind_user_id = #{id}
AND DATE_FORMAT( data_date, #{format} ) = #{date}
AND TO_CHAR(data_date, #{format}) = #{date}
</select>
<select id="getMapDataValueFormat" resultType="java.util.Map">
SELECT
@@ -68,7 +65,7 @@
watch_data_heart_rate
WHERE
bind_user_id = #{id}
AND DATE_FORMAT( data_date, #{format} ) = #{date}
AND TO_CHAR(data_date, #{format}) = #{date}
ORDER BY
time_stamp ASC
</select>
@@ -80,7 +77,7 @@
watch_data_stress
WHERE
bind_user_id = #{id}
AND DATE_FORMAT( data_date, #{format}) = #{date}
AND TO_CHAR(data_date, #{format}) = #{date}
ORDER BY
start_time_stamp DESC
</select>
@@ -92,7 +89,7 @@
watch_data_spo2
WHERE
bind_user_id = #{id}
AND DATE_FORMAT( data_date,#{format}) = #{date}
AND TO_CHAR(data_date, #{format}) = #{date}
ORDER BY
time_stamp DESC
</select>
@@ -109,18 +106,19 @@
WHERE
bind_user_id = #{id}
AND event_type = #{type}
AND DATE_FORMAT( data_date, '%Y-%m' ) = #{date}
AND TO_CHAR(data_date, 'YYYY-MM') = #{date}
ORDER BY
data_date DESC
LIMIT #{startNo}, #{pageSize}
LIMIT #{pageSize} OFFSET #{startNo}
</select>
<select id="getAverageDay" resultType="java.util.Map">
SELECT
CAST( AVG( total_minutes ) AS UNSIGNED ) AS minutes,
ROUND( AVG( total_minutes ) ) AS minutes,
( SELECT COUNT(*) FROM watch_data_sleep_new_day WHERE sleep_id IN ( SELECT id FROM watch_data_sleep_new WHERE
bind_user_id = #{id}) ) AS sum
FROM
( SELECT TIMESTAMPDIFF( MINUTE, fall_asleep_time, wake_up_time ) AS total_minutes FROM watch_data_sleep_new_day
WHERE sleep_id IN ( SELECT id FROM watch_data_sleep_new WHERE bind_user_id = #{id}) ) AS subquery;
( SELECT ROUND((CAST(wake_up_time AS DATE) - CAST(fall_asleep_time AS DATE)) * 24 * 60) AS total_minutes
FROM watch_data_sleep_new_day
WHERE sleep_id IN ( SELECT id FROM watch_data_sleep_new WHERE bind_user_id = #{id}) ) subquery
</select>
</mapper>
@@ -173,7 +173,7 @@
) as day_count,
(select count(0)
from watch_monitor_data
where yearweek(data_date,1) = yearweek(curdate(),1)
where TO_CHAR(data_date,'IYYY-IW') = TO_CHAR(SYSDATE,'IYYY-IW')
<if test="orgCodes != null and orgCodes.size() > 0">
and
<foreach collection="orgCodes" item="orgCode" open="(" close=")" separator=" OR ">
@@ -183,7 +183,7 @@
) as week_count,
(select count(0)
from watch_monitor_data
where date_format(data_date, '%Y-%m') = date_format(curdate(), '%Y-%m')
where TO_CHAR(data_date, 'YYYY-MM') = TO_CHAR(SYSDATE, 'YYYY-MM')
<if test="orgCodes != null and orgCodes.size() > 0">
and
<foreach collection="orgCodes" item="orgCode" open="(" close=")" separator=" OR ">
@@ -195,9 +195,9 @@
</select>
<select id="monitorDayStats" resultType="com.renkang.watch.api.bean.response.MonitorDayStats">
select data_date as date, year(data_date) as year, month(data_date) as month, dayofmonth(data_date) as day, count(0) as count
select data_date as date, EXTRACT(YEAR FROM data_date) as year, EXTRACT(MONTH FROM data_date) as month, EXTRACT(DAY FROM data_date) as day, count(0) as count
from watch_monitor_data
where date_format(data_date, '%Y-%m') = date_format(#{monthDate,jdbcType=DATE}, '%Y-%m')
where TO_CHAR(data_date, 'YYYY-MM') = TO_CHAR(#{monthDate,jdbcType=DATE}, 'YYYY-MM')
<if test="orgCodes != null and orgCodes.size() > 0">
and
<foreach collection="orgCodes" item="orgCode" open="(" close=")" separator=" OR ">
@@ -214,7 +214,7 @@
WHERE
lon_gd IS NOT NULL
AND lat_gd IS NOT NULL
AND ifnull(address_gd, '') = ''
AND NVL(address_gd, '') = ''
limit 100
</select>
</mapper>
@@ -6,18 +6,18 @@
SELECT
id as id ,
user_id as userId,
max_value as `maxValue`,
max_value as maxValue,
min_value as minValue,
avg_value as avgValue,
silence_max_value as silenceMaxValue,
silence_avg_value as silenceAvgValue,
silence_min_value as silenceMinValue,
data_date as dataDate,
DATE_FORMAT( data_date, '%m' ) AS dateStr
TO_CHAR( data_date, 'MM' ) AS dateStr
FROM
`watch_stat_user_info_day_heart_rate`
watch_stat_user_info_day_heart_rate
WHERE
YEAR ( data_date )= #{dateYear}
EXTRACT(YEAR FROM data_date) = #{dateYear}
and
user_id=#{userId}
@@ -76,33 +76,33 @@
watch_stat_user_info_day_heart_rate a
LEFT JOIN
(SELECT DISTINCT bind_user_id FROM watch_monitor_data
WHERE warn_time BETWEEN DATE_SUB(CURDATE(), INTERVAL
WHERE warn_time BETWEEN
<choose>
<when test="type == 'day'">0 DAY</when>
<when test="type == 'week'">7 DAY</when>
<when test="type == 'month'">1 MONTH</when>
<when test="type == 'year'">1 YEAR</when>
<otherwise>0 DAY</otherwise>
<when test="type == 'day'">TRUNC(SYSDATE)</when>
<when test="type == 'week'">TRUNC(SYSDATE) - 7</when>
<when test="type == 'month'">ADD_MONTHS(TRUNC(SYSDATE), -1)</when>
<when test="type == 'year'">ADD_MONTHS(TRUNC(SYSDATE), -12)</when>
<otherwise>TRUNC(SYSDATE)</otherwise>
</choose>
) AND CURDATE()
AND SYSDATE
AND event_type = 'heart_rate') b
ON
a.user_id = b.bind_user_id
WHERE
a.data_date BETWEEN DATE_SUB(CURDATE(), INTERVAL
a.data_date BETWEEN
<choose>
<when test="type == 'day'">0 DAY</when>
<when test="type == 'week'">7 DAY</when>
<when test="type == 'month'">1 MONTH</when>
<when test="type == 'year'">1 YEAR</when>
<otherwise>0 DAY</otherwise>
<when test="type == 'day'">TRUNC(SYSDATE)</when>
<when test="type == 'week'">TRUNC(SYSDATE) - 7</when>
<when test="type == 'month'">ADD_MONTHS(TRUNC(SYSDATE), -1)</when>
<when test="type == 'year'">ADD_MONTHS(TRUNC(SYSDATE), -12)</when>
<otherwise>TRUNC(SYSDATE)</otherwise>
</choose>
) AND CURDATE()
AND SYSDATE
<if test="orgCode != null and orgCode != ''">
AND a.org_code like concat('%',#{orgCode},'%')
</if>
GROUP BY
a.user_id;
a.user_id
</select>
<select id="selectSpoDataByOrgCode" parameterType="com.renkang.watch.dto.BigScreenDTO" resultType="com.renkang.watch.vo.WatchDataVo">
@@ -124,33 +124,33 @@
watch_stat_user_info_day_spo2 a
LEFT JOIN
(SELECT DISTINCT bind_user_id FROM watch_monitor_data
WHERE warn_time BETWEEN DATE_SUB(CURDATE(), INTERVAL
WHERE warn_time BETWEEN
<choose>
<when test="type == 'day'">0 DAY</when>
<when test="type == 'week'">7 DAY</when>
<when test="type == 'month'">1 MONTH</when>
<when test="type == 'year'">1 YEAR</when>
<otherwise>0 DAY</otherwise>
<when test="type == 'day'">TRUNC(SYSDATE)</when>
<when test="type == 'week'">TRUNC(SYSDATE) - 7</when>
<when test="type == 'month'">ADD_MONTHS(TRUNC(SYSDATE), -1)</when>
<when test="type == 'year'">ADD_MONTHS(TRUNC(SYSDATE), -12)</when>
<otherwise>TRUNC(SYSDATE)</otherwise>
</choose>
) AND CURDATE()
AND SYSDATE
AND event_type = 'spo') b
ON
a.user_id = b.bind_user_id
WHERE
a.data_date BETWEEN DATE_SUB(CURDATE(), INTERVAL
a.data_date BETWEEN
<choose>
<when test="type == 'day'">0 DAY</when>
<when test="type == 'week'">7 DAY</when>
<when test="type == 'month'">1 MONTH</when>
<when test="type == 'year'">1 YEAR</when>
<otherwise>0 DAY</otherwise>
<when test="type == 'day'">TRUNC(SYSDATE)</when>
<when test="type == 'week'">TRUNC(SYSDATE) - 7</when>
<when test="type == 'month'">ADD_MONTHS(TRUNC(SYSDATE), -1)</when>
<when test="type == 'year'">ADD_MONTHS(TRUNC(SYSDATE), -12)</when>
<otherwise>TRUNC(SYSDATE)</otherwise>
</choose>
) AND CURDATE()
AND SYSDATE
<if test="orgCode != null and orgCode != ''">
AND a.org_code like concat('%',#{orgCode},'%')
</if>
GROUP BY
a.user_id;
a.user_id
</select>
<select id="selectStressDataByOrgCode" resultType="com.renkang.watch.vo.WatchDataVo">
SELECT
@@ -171,33 +171,33 @@
watch_stat_user_info_day_stress a
LEFT JOIN
(SELECT DISTINCT bind_user_id FROM watch_monitor_data
WHERE warn_time BETWEEN DATE_SUB(CURDATE(), INTERVAL
WHERE warn_time BETWEEN
<choose>
<when test="type == 'day'">0 DAY</when>
<when test="type == 'week'">7 DAY</when>
<when test="type == 'month'">1 MONTH</when>
<when test="type == 'year'">1 YEAR</when>
<otherwise>0 DAY</otherwise>
<when test="type == 'day'">TRUNC(SYSDATE)</when>
<when test="type == 'week'">TRUNC(SYSDATE) - 7</when>
<when test="type == 'month'">ADD_MONTHS(TRUNC(SYSDATE), -1)</when>
<when test="type == 'year'">ADD_MONTHS(TRUNC(SYSDATE), -12)</when>
<otherwise>TRUNC(SYSDATE)</otherwise>
</choose>
) AND CURDATE()
AND SYSDATE
AND event_type = 'stress') b
ON
a.user_id = b.bind_user_id
WHERE
a.data_date BETWEEN DATE_SUB(CURDATE(), INTERVAL
a.data_date BETWEEN
<choose>
<when test="type == 'day'">0 DAY</when>
<when test="type == 'week'">7 DAY</when>
<when test="type == 'month'">1 MONTH</when>
<when test="type == 'year'">1 YEAR</when>
<otherwise>0 DAY</otherwise>
<when test="type == 'day'">TRUNC(SYSDATE)</when>
<when test="type == 'week'">TRUNC(SYSDATE) - 7</when>
<when test="type == 'month'">ADD_MONTHS(TRUNC(SYSDATE), -1)</when>
<when test="type == 'year'">ADD_MONTHS(TRUNC(SYSDATE), -12)</when>
<otherwise>TRUNC(SYSDATE)</otherwise>
</choose>
) AND CURDATE()
AND SYSDATE
<if test="orgCode != null and orgCode != ''">
AND a.org_code like concat('%',#{orgCode},'%')
</if>
GROUP BY
a.user_id;
a.user_id
</select>
<select id="selectTempDataByOrgCode" resultType="com.renkang.watch.vo.WatchDataVo">
SELECT
@@ -218,33 +218,33 @@
watch_stat_user_info_day_temp a
LEFT JOIN
(SELECT DISTINCT bind_user_id FROM watch_monitor_data
WHERE warn_time BETWEEN DATE_SUB(CURDATE(), INTERVAL
WHERE warn_time BETWEEN
<choose>
<when test="type == 'day'">0 DAY</when>
<when test="type == 'week'">7 DAY</when>
<when test="type == 'month'">1 MONTH</when>
<when test="type == 'year'">1 YEAR</when>
<otherwise>0 DAY</otherwise>
<when test="type == 'day'">TRUNC(SYSDATE)</when>
<when test="type == 'week'">TRUNC(SYSDATE) - 7</when>
<when test="type == 'month'">ADD_MONTHS(TRUNC(SYSDATE), -1)</when>
<when test="type == 'year'">ADD_MONTHS(TRUNC(SYSDATE), -12)</when>
<otherwise>TRUNC(SYSDATE)</otherwise>
</choose>
) AND CURDATE()
AND SYSDATE
AND event_type = 'temp') b
ON
a.user_id = b.bind_user_id
WHERE
a.data_date BETWEEN DATE_SUB(CURDATE(), INTERVAL
a.data_date BETWEEN
<choose>
<when test="type == 'day'">0 DAY</when>
<when test="type == 'week'">7 DAY</when>
<when test="type == 'month'">1 MONTH</when>
<when test="type == 'year'">1 YEAR</when>
<otherwise>0 DAY</otherwise>
<when test="type == 'day'">TRUNC(SYSDATE)</when>
<when test="type == 'week'">TRUNC(SYSDATE) - 7</when>
<when test="type == 'month'">ADD_MONTHS(TRUNC(SYSDATE), -1)</when>
<when test="type == 'year'">ADD_MONTHS(TRUNC(SYSDATE), -12)</when>
<otherwise>TRUNC(SYSDATE)</otherwise>
</choose>
) AND CURDATE()
AND SYSDATE
<if test="orgCode != null and orgCode != ''">
AND a.org_code like concat('%',#{orgCode},'%')
</if>
GROUP BY
a.user_id;
a.user_id
</select>
<select id="selectSdcDataByOrgCode" resultType="com.renkang.watch.vo.WatchDataVo">
SELECT
@@ -253,42 +253,22 @@
FROM
watch_stat_user_info_day_sdc a
WHERE
a.data_date BETWEEN DATE_SUB(CURDATE(), INTERVAL
a.data_date BETWEEN
<choose>
<when test="type == 'day'">0 DAY</when>
<when test="type == 'week'">7 DAY</when>
<when test="type == 'month'">1 MONTH</when>
<when test="type == 'year'">1 YEAR</when>
<otherwise>0 DAY</otherwise>
<when test="type == 'day'">TRUNC(SYSDATE)</when>
<when test="type == 'week'">TRUNC(SYSDATE) - 7</when>
<when test="type == 'month'">ADD_MONTHS(TRUNC(SYSDATE), -1)</when>
<when test="type == 'year'">ADD_MONTHS(TRUNC(SYSDATE), -12)</when>
<otherwise>TRUNC(SYSDATE)</otherwise>
</choose>
) AND CURDATE()
AND SYSDATE
<if test="orgCode != null and orgCode != ''">
AND a.org_code like concat('%',#{orgCode},'%')
</if>
GROUP BY
a.user_id;
a.user_id
</select>
<select id="selectSleepDataByOrgCode" resultType="com.renkang.watch.vo.BigScreenSleepVo">
<!-- SELECT
data_date,
SUM(long_count) AS long_count,
SUM(long_duration_total) AS long_duration,
SUM(short_count) AS short_count,
SUM(short_duration_total) AS short_duration,
AVG(sleep_avg) AS average_duration,
SUM(long_duration_total) + SUM(short_duration_total) AS sleep_duration,
(COUNT(DISTINCT user_id) * 1440) - (SUM(long_duration_total) + SUM(short_duration_total)) AS awake_duration -->
<!-- SELECT
data_date,
SUM(COALESCE(deep_sleep_times, 0)) AS long_duration,
SUM(COALESCE(light_sleep_times, 0)) AS short_duration,
AVG(COALESCE(deep_sleep_times, 0) + COALESCE(light_sleep_times, 0)) AS average_duration,
AVG(COALESCE(light_sleep_times, 0)) AS avg_short_duration,
AVG(COALESCE(deep_sleep_times, 0)) AS avg_long_duration,
SUM(COALESCE(deep_sleep_times, 0)) + SUM(COALESCE(light_sleep_times, 0)) AS sleep_duration
上面这个是正常按照数据库取值的 但是 说深睡浅睡反了 下面的是反着取值的 待排查问题原因-->
SELECT
data_date,
SUM(COALESCE(light_sleep_times, 0)) AS long_duration,
@@ -300,22 +280,22 @@
FROM
watch_stat_user_info_day_sleep
WHERE
data_date BETWEEN DATE_SUB(CURDATE(), INTERVAL
data_date BETWEEN
<choose>
<when test="type == 'day'">0 DAY</when>
<when test="type == 'week'">7 DAY</when>
<when test="type == 'month'">1 MONTH</when>
<when test="type == 'year'">1 YEAR</when>
<otherwise>0 DAY</otherwise>
<when test="type == 'day'">TRUNC(SYSDATE)</when>
<when test="type == 'week'">TRUNC(SYSDATE) - 7</when>
<when test="type == 'month'">ADD_MONTHS(TRUNC(SYSDATE), -1)</when>
<when test="type == 'year'">ADD_MONTHS(TRUNC(SYSDATE), -12)</when>
<otherwise>TRUNC(SYSDATE)</otherwise>
</choose>
) AND CURDATE()
AND SYSDATE
<if test="orgCode != null and orgCode != ''">
AND org_code like concat('%',#{orgCode},'%')
</if>
GROUP BY
data_date
ORDER BY
data_date DESC;
data_date DESC
</select>
<select id="findUserNewDataByUserIds" resultType="com.renkang.watch.entity.WatchStatUserInfoDayHeartRate">
SELECT
@@ -331,22 +311,21 @@
</foreach>
GROUP BY user_id ) temp
ON wsd.user_id = temp.user_id
AND wsd.data_date = temp.latest_date;
AND wsd.data_date = temp.latest_date
</select>
<!-- 切记 此代码不能直接平移至四合一项目 ,该sql只适用mysql8.0及以上版本 ,四合一项目开发测试环境的mysql版本过低 , 但不影响正式环境-->
<insert id="insertStat">
INSERT INTO watch_stat_user_info_day_heart_rate ( id, user_id, max_value, min_value, avg_value, silence_max_value, silence_min_value, silence_avg_value, last_upload_time, new_value, silence_new_value, data_date, org_code ) (
INSERT INTO watch_stat_user_info_day_heart_rate ( id, user_id, max_value, min_value, avg_value, silence_max_value, silence_min_value, silence_avg_value, last_upload_time, new_value, silence_new_value, data_date, org_code )
SELECT
#{id,jdbcType=VARCHAR},
bind_user_id,
IFNULL( MAX( wd.data_value ), 0 ),
IFNULL( MIN( wd.data_value ), 0 ),
IFNULL( AVG( wd.data_value ), 0 ),
IFNULL( MAX( wd.silence_value ), 0 ),
IFNULL( MIN( wd.silence_value ), 0 ),
IFNULL( AVG( wd.silence_value ), 0 ),
IFNULL(MAX( wd.time_stamp ),NOW()),
NVL( MAX( wd.data_value ), 0 ),
NVL( MIN( wd.data_value ), 0 ),
NVL( AVG( wd.data_value ), 0 ),
NVL( MAX( wd.silence_value ), 0 ),
NVL( MIN( wd.silence_value ), 0 ),
NVL( AVG( wd.silence_value ), 0 ),
NVL(MAX( wd.time_stamp ),SYSDATE),
MAX( CASE WHEN wd.rn = 1 THEN wd.data_value END ),
MAX( CASE WHEN wd.rn = 1 THEN wd.silence_value END ),
data_date,
@@ -354,10 +333,10 @@
FROM
(
SELECT
*,
t.*,
ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
FROM
watch_data_heart_rate
watch_data_heart_rate t
WHERE
bind_user_id = #{userId,jdbcType=VARCHAR}
and data_date = #{dataDate,jdbcType=DATE}
@@ -365,44 +344,43 @@
GROUP BY
wd.bind_user_id,
wd.data_date
);
</insert>
<!-- 切记 此代码不能直接平移至四合一项目 ,该sql只适用mysql8.0及以上版本 ,四合一项目开发测试环境的mysql版本过低 , 但不影响正式环境-->
<!-- MySQL 的 UPDATE ... LEFT JOIN ... SET 语法已改写为达梦兼容的 MERGE INTO -->
<update id="updateStat">
UPDATE watch_stat_user_info_day_heart_rate stat
LEFT JOIN (
MERGE INTO watch_stat_user_info_day_heart_rate stat
USING (
SELECT
wd.bind_user_id,
wd.data_date,
IFNULL( MAX( wd.data_value ), 0 ) AS max_value,
IFNULL( MIN( wd.data_value ), 0 ) AS min_value,
IFNULL( AVG( wd.data_value ), 0 ) AS avg_value,
IFNULL( MAX( wd.silence_value ), 0 ) AS silence_max_value,
IFNULL( MIN( wd.silence_value ), 0 ) AS silence_min_value,
IFNULL( AVG( wd.silence_value ), 0 ) AS silence_avg_value,
IFNULL(MAX( wd.time_stamp ),NOW()) AS last_upload_time,
MAX( CASE WHEN wd.rn = 1 THEN wd.data_value END ) AS new_value,
MAX( CASE WHEN wd.rn = 1 THEN wd.silence_value END ) AS silence_new_value
wd.bind_user_id,
wd.data_date,
NVL( MAX( wd.data_value ), 0 ) AS max_value,
NVL( MIN( wd.data_value ), 0 ) AS min_value,
NVL( AVG( wd.data_value ), 0 ) AS avg_value,
NVL( MAX( wd.silence_value ), 0 ) AS silence_max_value,
NVL( MIN( wd.silence_value ), 0 ) AS silence_min_value,
NVL( AVG( wd.silence_value ), 0 ) AS silence_avg_value,
NVL(MAX( wd.time_stamp ),SYSDATE) AS last_upload_time,
MAX( CASE WHEN wd.rn = 1 THEN wd.data_value END ) AS new_value,
MAX( CASE WHEN wd.rn = 1 THEN wd.silence_value END ) AS silence_new_value
FROM
( SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn FROM watch_data_heart_rate where bind_user_id = #{userId,jdbcType=VARCHAR}
and data_date = #{dataDate,jdbcType=DATE} ) wd
( SELECT t.*, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
FROM watch_data_heart_rate t
WHERE bind_user_id = #{userId,jdbcType=VARCHAR}
AND data_date = #{dataDate,jdbcType=DATE} ) wd
GROUP BY
wd.bind_user_id,
wd.data_date
) DATA ON stat.user_id = DATA.bind_user_id
AND stat.data_date = DATA.data_date
SET stat.max_value = DATA.max_value,
stat.min_value = DATA.min_value,
stat.avg_value = DATA.avg_value,
stat.silence_max_value = DATA.silence_max_value,
stat.silence_min_value = DATA.silence_min_value,
stat.silence_avg_value = DATA.silence_avg_value,
stat.last_upload_time = DATA.last_upload_time,
stat.new_value = DATA.new_value,
stat.silence_new_value = COALESCE ( NULLIF( DATA.silence_new_value, 0 ), stat.silence_new_value ),
stat.org_code = #{orgCode,jdbcType=VARCHAR}
where stat.user_id = #{userId,jdbcType=VARCHAR}
and stat.data_date = #{dataDate,jdbcType=DATE};
wd.bind_user_id,
wd.data_date
) DATA ON (stat.user_id = DATA.bind_user_id AND stat.data_date = DATA.data_date)
WHEN MATCHED THEN UPDATE SET
stat.max_value = DATA.max_value,
stat.min_value = DATA.min_value,
stat.avg_value = DATA.avg_value,
stat.silence_max_value = DATA.silence_max_value,
stat.silence_min_value = DATA.silence_min_value,
stat.silence_avg_value = DATA.silence_avg_value,
stat.last_upload_time = DATA.last_upload_time,
stat.new_value = DATA.new_value,
stat.silence_new_value = COALESCE ( NULLIF( DATA.silence_new_value, 0 ), stat.silence_new_value ),
stat.org_code = #{orgCode,jdbcType=VARCHAR}
</update>
</mapper>
@@ -10,7 +10,7 @@
distance_value as distanceValue,
calorie_value as calorieValue,
data_date as dataDate,
DATE_FORMAT( data_date, '%m' ) AS dateStr
TO_CHAR( data_date, 'MM' ) AS dateStr
FROM
`watch_stat_user_info_day_sdc`
WHERE
@@ -16,7 +16,7 @@
deep_sleep_times as deepSleepTimes,
light_sleep_times as lightSleepTimes,
data_date as dataDate,
DATE_FORMAT( data_date, '%m' ) AS dateStr
TO_CHAR( data_date, 'MM' ) AS dateStr
FROM
`watch_stat_user_info_day_sleep`
WHERE
@@ -10,7 +10,7 @@
min_value as minValue,
avg_value as avgValue,
data_date as dataDate,
DATE_FORMAT( data_date, '%m' ) AS dateStr
TO_CHAR( data_date, 'MM' ) AS dateStr
FROM
`watch_stat_user_info_day_spo2`
WHERE
@@ -10,7 +10,7 @@
min_value as minValue,
avg_value as avgValue,
data_date as dataDate,
DATE_FORMAT( data_date, '%m' ) AS dateStr
TO_CHAR( data_date, 'MM' ) AS dateStr
FROM
`watch_stat_user_info_day_stress`
WHERE
@@ -7,16 +7,16 @@
SELECT
id as id ,
user_id as userId,
max_value as `maxValueB`,
max_value as maxValueB,
min_value as minValueB,
avg_value as avgValueB,
skin_max_value as skinMaxValueB,
skin_min_value as skinMinValueB,
skin_avg_value as skinAvgValueB,
data_date as dataDate,
DATE_FORMAT( data_date, '%m' ) AS dateStr
TO_CHAR( data_date, 'MM' ) AS dateStr
FROM
`watch_stat_user_info_day_temp`
watch_stat_user_info_day_temp
WHERE
YEAR ( data_date )= #{dateYear}
and
@@ -79,24 +79,24 @@
<select id="distanceMap" resultType="java.util.Map">
select data_value dateValue,
DATE_FORMAT(sdc_date, '%Y-%m-%d') sdcDate
TO_CHAR(sdc_date, 'YYYY-MM-DD') sdcDate
from watch_data_distance
WHERE sdc_date BETWEEN #{date1} AND #{date2}
</select>
<select id="heartRateMap" resultType="java.util.Map">
select data_value dateValue
from watch_data_heart_rate
WHERE DATE_FORMAT(data_date, '%Y-%m-%d') = #{queryDateStr}
WHERE TO_CHAR(data_date, 'YYYY-MM-DD') = #{queryDateStr}
</select>
<select id="spo2Map" resultType="java.util.Map">
select data_value dateValue
from watch_data_spo2
WHERE DATE_FORMAT(data_date, '%Y-%m-%d') = #{queryDateStr}
WHERE TO_CHAR(data_date, 'YYYY-MM-DD') = #{queryDateStr}
</select>
<select id="stressMap" resultType="java.util.Map">
select data_value dateValue
from watch_data_stress
WHERE DATE_FORMAT(data_date, '%Y-%m-%d') = #{queryDateStr}
WHERE TO_CHAR(data_date, 'YYYY-MM-DD') = #{queryDateStr}
</select>
<select id="getUserDataByWeekly" resultType="java.util.Map">
SELECT 'heart_rate' AS metric, AVG(avg_value) AS value
@@ -2,11 +2,12 @@ package com.renkang;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableAsync;
@EnableAsync
@SpringBootApplication(scanBasePackages = {"com.renkang", "org.jeecg"})
@SpringBootApplication(scanBasePackages = {"com.renkang", "org.jeecg"},exclude = QuartzAutoConfiguration.class)
@EnableFeignClients(basePackages = {"com.renkang", "org.jeecg"})
public class HealthWatchCloudApplication {
@@ -1,8 +1,9 @@
PROFILE_NAME=dev
SERVER_PORT=7098
NACOS_SERVER_ADDR=localhost:8848
NACOS_USERNAME=nacos
NACOS_PASSWORD=nacos
NACOS_NAMESPACE=f3f65fb2-303b-4bf7-bccb-4755886503c1
NACOS_SERVER_ADDR=192.168.1.80:8848
NACOS_USERNAME=xjuser
NACOS_PASSWORD=Aa135790!123
NACOS_NAMESPACE=xjxc-space-common
NACOS_NAMESPACE_DISCOVERY=xjxc-space-common
NACOS_GROUP=dev
FILE_SERVER_URL=http://fileserver.yg.dt.io
@@ -21,7 +21,7 @@ spring:
password: ${spring.cloud.nacos.password}
discovery:
enabled: true
namespace: ${NACOS_NAMESPACE:}
namespace: ${NACOS_NAMESPACE_DISCOVERY:}
group: ${NACOS_GROUP:DEFAULT_GROUP}
server-addr: ${spring.cloud.nacos.server-addr}
username: ${spring.cloud.nacos.username}
+4 -3
View File
@@ -140,10 +140,11 @@
</dependency>
<!-- 数据库驱动 -->
<!--mysql-->
<!-- 达梦数据库-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver8</artifactId>
<scope>runtime</scope>
</dependency>
<!-- sqlserver-->
<dependency>
@@ -367,28 +367,28 @@ public interface CommonConstant {
Integer USER_IDENTITY_2 = 2;
/**
* sys_user 表 username 唯一键索引
* QH_SYS_USER 表 username 唯一键索引
*/
String SQL_INDEX_UNIQ_SYS_USER_USERNAME = "uniq_sys_user_username";
/**
* sys_user 表 work_no 唯一键索引
* QH_SYS_USER 表 work_no 唯一键索引
*/
String SQL_INDEX_UNIQ_SYS_USER_WORK_NO = "uniq_sys_user_work_no";
/**
* sys_user 表 phone 唯一键索引
* QH_SYS_USER 表 phone 唯一键索引
*/
String SQL_INDEX_UNIQ_SYS_USER_PHONE = "uniq_sys_user_phone";
/**
* 达梦数据库升提示。违反表[SYS_USER]唯一性约束
* 达梦数据库升提示。违反表[QH_SYS_USER]唯一性约束
*/
String SQL_INDEX_UNIQ_SYS_USER = "唯一性约束";
/**
* sys_user 表 email 唯一键索引
* QH_SYS_USER 表 email 唯一键索引
*/
String SQL_INDEX_UNIQ_SYS_USER_EMAIL = "uniq_sys_user_email";
/**
* sys_quartz_job 表 job_class_name 唯一键索引
* QH_SYS_QUARTZ_JOB 表 job_class_name 唯一键索引
*/
String SQL_INDEX_UNIQ_JOB_CLASS_NAME = "uniq_job_class_name";
/**
@@ -396,15 +396,15 @@ public interface CommonConstant {
*/
String SQL_INDEX_UNIQ_CODE = "uniq_code";
/**
* sys_role 表 code 唯一键索引
* QH_SYS_ROLE 表 code 唯一键索引
*/
String SQL_INDEX_UNIQ_SYS_ROLE_CODE = "uniq_sys_role_role_code";
/**
* sys_depart 表 code 唯一键索引
* QH_SYS_DEPART 表 code 唯一键索引
*/
String SQL_INDEX_UNIQ_DEPART_ORG_CODE = "uniq_depart_org_code";
/**
* sys_category 表 code 唯一键索引
* QH_SYS_CATEGORY 表 code 唯一键索引
*/
String SQL_INDEX_UNIQ_CATEGORY_CODE = "idx_sc_code";
/**
@@ -9,8 +9,8 @@ package org.jeecg.common.constant;
public class DynamicTableConstant {
/**
* 角色首页配置表
* vue2表名: sys_role_index
* vue2表名: QH_SYS_ROLE_INDEX
* vue3表名: sys_role_index_vue3
*/
public static final String SYS_ROLE_INDEX = "sys_role_index";
public static final String QH_SYS_ROLE_INDEX = "QH_SYS_ROLE_INDEX";
}
@@ -13,7 +13,7 @@ import java.math.BigDecimal;
* @date 2023/12/4 11:01
*/
@Data
@TableName("sys_depart")
@TableName("QH_SYS_DEPART_GPS")
public class SysDepartGps implements Serializable {
private static final long serialVersionUID = 1L;
/**
@@ -12,7 +12,7 @@ import java.util.Date;
* @date 2023-04-19 15:26
*/
@Data
@Schema(title = "sys_user对象", description = "sys_user")
@Schema(title = "sys_user对象", description = "QH_SYS_USER")
public class SysUserModel {
/**
* id
@@ -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;
@@ -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)) {
@@ -17,13 +17,13 @@ public abstract class AbstractQueryBlackListHandler {
* key-表名
* value-字段名,多个逗号隔开
* 两种配置方式-- 全部配置成小写
* ruleMap.put("sys_user", "*")sys_user所有的字段不支持查询
* ruleMap.put("sys_user", "username,password")sys_user中的username和password不支持查询
* ruleMap.put("QH_SYS_USER", "*")sys_user所有的字段不支持查询
* ruleMap.put("QH_SYS_USER", "username,password")sys_user中的username和password不支持查询
*/
public static Map<String, String> ruleMap = new HashMap<>();
static {
ruleMap.put("sys_user", "password,salt");
ruleMap.put("QH_SYS_USER", "password,salt");
}
@@ -0,0 +1,124 @@
package org.jeecg.config.mybatis;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.executor.statement.StatementHandler;
import org.apache.ibatis.plugin.*;
import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.reflection.SystemMetaObject;
import org.springframework.stereotype.Component;
import java.sql.Connection;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Properties;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 达梦数据库关键字拦截器
* 自动为 SQL 中的关键字别名添加双引号,避免关键字冲突
*
* @author system
* @date 2026-03-05
*/
@Slf4j
@Component
@Intercepts({
@Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class})
})
public class DmKeywordInterceptor implements Interceptor {
/**
* 达梦数据库关键字列表(常见关键字)
* 可根据实际需要添加更多关键字
*/
private static final Set<String> DM_KEYWORDS = new HashSet<>(Arrays.asList(
"MODEL", "BEGIN", "END"
));
@Override
public Object intercept(Invocation invocation) throws Throwable {
try {
StatementHandler statementHandler = (StatementHandler) invocation.getTarget();
MetaObject metaObject = SystemMetaObject.forObject(statementHandler);
String sql = (String) metaObject.getValue("delegate.boundSql.sql");
// 处理 AS 别名关键字冲突
String processedSql = processKeywordAlias(sql);
// 如果 SQL 被修改,则记录日志并更新
if (!sql.equals(processedSql)) {
log.debug("达梦关键字拦截器处理SQL - 原始: {} => 处理后: {}", sql, processedSql);
metaObject.setValue("delegate.boundSql.sql", processedSql);
}
} catch (Exception e) {
log.error("达梦关键字拦截器处理SQL异常", e);
// 发生异常时不影响正常流程,继续执行
}
return invocation.proceed();
}
/**
* 处理 SQL 中的关键字别名
* 将关键字别名用双引号包裹
*
* @param sql 原始 SQL
* @return 处理后的 SQL
*/
private String processKeywordAlias(String sql) {
if (sql == null || sql.trim().isEmpty()) {
return sql;
}
// 正则匹配: 字段名 as 别名 的模式
// 例如: model_no as model -> model_no as "model"
Pattern pattern = Pattern.compile(
"\\b([\\w.`]+)\\s+(?i:as)\\s+(\\w+)\\b",
Pattern.CASE_INSENSITIVE
);
Matcher matcher = pattern.matcher(sql);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
String alias = matcher.group(2);
// 检查别名是否为关键字,且未被引号包裹
if (DM_KEYWORDS.contains(alias.toUpperCase()) && !alias.startsWith("\"")) {
// 给关键字别名加上双引号
matcher.appendReplacement(sb,
matcher.group(1) + " AS \"" + alias + "\"");
}
}
matcher.appendTail(sb);
return sb.toString();
}
@Override
public Object plugin(Object target) {
return Plugin.wrap(target, this);
}
@Override
public void setProperties(Properties properties) {
// 可以通过配置文件注入额外的关键字
}
/**
* 添加自定义关键字到黑名单
*
* @param keywords 关键字数组
*/
public static void addKeywords(String... keywords) {
if (keywords != null) {
for (String keyword : keywords) {
if (keyword != null && !keyword.trim().isEmpty()) {
DM_KEYWORDS.add(keyword.toUpperCase());
}
}
}
}
}
@@ -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;
@@ -59,13 +60,13 @@ public class MybatisPlusSaasConfig {
//1.需要租户隔离的表请在此配置
if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) {
//a.系统管理表
TENANT_TABLE.add("sys_role");
TENANT_TABLE.add("sys_user_role");
TENANT_TABLE.add("sys_depart");
TENANT_TABLE.add("sys_category");
TENANT_TABLE.add("sys_data_source");
TENANT_TABLE.add("QH_SYS_ROLE");
TENANT_TABLE.add("QH_SYS_USER_ROLE");
TENANT_TABLE.add("QH_SYS_DEPART");
TENANT_TABLE.add("QH_SYS_CATEGORY");
TENANT_TABLE.add("QH_SYS_DATA_SOURCE");
TENANT_TABLE.add("sys_position");
TENANT_TABLE.add("sys_announcement");
TENANT_TABLE.add("QH_SYS_ANNOUNCEMENT");
}
//2.示例测试
@@ -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;
@@ -36,7 +36,7 @@ public class HttpUtils {
public static SortedMap<String, String> getAllParams(HttpServletRequest request) throws IOException {
SortedMap<String, String> result = new TreeMap<>();
// 获取URL上最后带逗号的参数变量 sys/dict/getDictItems/sys_user,realname,username
// 获取URL上最后带逗号的参数变量 sys/dict/getDictItems/QH_SYS_USER,realname,username
String pathVariable = request.getRequestURI().substring(request.getRequestURI().lastIndexOf("/") + 1);
if (pathVariable.contains(SymbolConstant.COMMA)) {
log.info(" pathVariable: {}", pathVariable);
@@ -74,7 +74,7 @@ public class HttpUtils {
throws IOException {
SortedMap<String, String> result = new TreeMap<>();
// 获取URL上最后带逗号的参数变量 sys/dict/getDictItems/sys_user,realname,username
// 获取URL上最后带逗号的参数变量 sys/dict/getDictItems/QH_SYS_USER,realname,username
String pathVariable = url.substring(url.lastIndexOf("/") + 1);
if (pathVariable.contains(SymbolConstant.COMMA)) {
log.info(" pathVariable: {}", pathVariable);
@@ -3,7 +3,7 @@
<mapper namespace="org.jeecg.modules.base.mapper.BaseCommonMapper">
<!-- 保存日志11 -->
<insert id="saveLog" parameterType="Object">
insert into sys_log (id, log_type, log_content, method, operate_type, request_url, request_type, request_param,
insert into QH_SYS_LOG (id, log_type, log_content, method, operate_type, request_url, request_type, request_param,
ip, userid, username, cost_time, create_time,create_by, tenant_id)
values(
#{dto.id,jdbcType=VARCHAR},
@@ -38,7 +38,7 @@ import java.util.List;
* @Date: 2023-05-29
* @Version: V1.0
*/
@Tag(name = "common_exports_info")
@Tag(name = "QH_COM_EXPORTS_INFO")
@RestController
@RequestMapping("/sys/common/commonExportsInfo")
@Slf4j
@@ -57,8 +57,8 @@ public class CommonExportsInfoController extends JeecgController<CommonExportsIn
* @param req
* @return
*/
//@AutoLog(value = "common_exports_info-分页列表查询")
@Operation(summary = "common_exports_info-分页列表查询", description = "common_exports_info-分页列表查询")
//@AutoLog(value = "QH_COM_EXPORTS_INFO-分页列表查询")
@Operation(summary = "QH_COM_EXPORTS_INFO-分页列表查询", description = "QH_COM_EXPORTS_INFO-分页列表查询")
@GetMapping(value = "/list")
@PermissionData
public Result<IPage<CommonExportsInfo>> queryPageList(CommonExportsInfo commonExportsInfo,
@@ -89,9 +89,9 @@ public class CommonExportsInfoController extends JeecgController<CommonExportsIn
* @param commonExportsInfo
* @return
*/
@AutoLog(value = "common_exports_info-添加")
@Operation(summary = "common_exports_info-添加", description = "common_exports_info-添加")
@RequiresPermissions("common:common_exports_info:add")
@AutoLog(value = "QH_COM_EXPORTS_INFO-添加")
@Operation(summary = "QH_COM_EXPORTS_INFO-添加", description = "QH_COM_EXPORTS_INFO-添加")
@RequiresPermissions("common:QH_COM_EXPORTS_INFO:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody CommonExportsInfo commonExportsInfo) {
commonExportsInfoService.save(commonExportsInfo);
@@ -104,9 +104,9 @@ public class CommonExportsInfoController extends JeecgController<CommonExportsIn
* @param commonExportsInfo
* @return
*/
@AutoLog(value = "common_exports_info-编辑")
@Operation(summary = "common_exports_info-编辑", description = "common_exports_info-编辑")
@RequiresPermissions("common:common_exports_info:edit")
@AutoLog(value = "QH_COM_EXPORTS_INFO-编辑")
@Operation(summary = "QH_COM_EXPORTS_INFO-编辑", description = "QH_COM_EXPORTS_INFO-编辑")
@RequiresPermissions("common:QH_COM_EXPORTS_INFO:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<String> edit(@RequestBody CommonExportsInfo commonExportsInfo) {
commonExportsInfoService.saveOrUpdate(commonExportsInfo);
@@ -119,9 +119,9 @@ public class CommonExportsInfoController extends JeecgController<CommonExportsIn
* @param id
* @return
*/
@AutoLog(value = "common_exports_info-通过id删除")
@Operation(summary = "common_exports_info-通过id删除", description = "common_exports_info-通过id删除")
//@RequiresPermissions("common:common_exports_info:delete")
@AutoLog(value = "QH_COM_EXPORTS_INFO-通过id删除")
@Operation(summary = "QH_COM_EXPORTS_INFO-通过id删除", description = "QH_COM_EXPORTS_INFO-通过id删除")
//@RequiresPermissions("common:QH_COM_EXPORTS_INFO:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
commonExportsInfoService.removeById(id);
@@ -134,9 +134,9 @@ public class CommonExportsInfoController extends JeecgController<CommonExportsIn
* @param ids
* @return
*/
@AutoLog(value = "common_exports_info-批量删除")
@Operation(summary = "common_exports_info-批量删除", description = "common_exports_info-批量删除")
//@RequiresPermissions("common:common_exports_info:deleteBatch")
@AutoLog(value = "QH_COM_EXPORTS_INFO-批量删除")
@Operation(summary = "QH_COM_EXPORTS_INFO-批量删除", description = "QH_COM_EXPORTS_INFO-批量删除")
//@RequiresPermissions("common:QH_COM_EXPORTS_INFO:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
this.commonExportsInfoService.removeByIds(Arrays.asList(ids.split(",")));
@@ -149,8 +149,8 @@ public class CommonExportsInfoController extends JeecgController<CommonExportsIn
* @param id
* @return
*/
//@AutoLog(value = "common_exports_info-通过id查询")
@Operation(summary = "common_exports_info-通过id查询", description = "common_exports_info-通过id查询")
//@AutoLog(value = "QH_COM_EXPORTS_INFO-通过id查询")
@Operation(summary = "QH_COM_EXPORTS_INFO-通过id查询", description = "QH_COM_EXPORTS_INFO-通过id查询")
@GetMapping(value = "/queryById")
public Result<CommonExportsInfo> queryById(@RequestParam(name = "id", required = true) String id) {
CommonExportsInfo commonExportsInfo = commonExportsInfoService.getById(id);
@@ -166,10 +166,10 @@ public class CommonExportsInfoController extends JeecgController<CommonExportsIn
* @param request
* @param commonExportsInfo
*/
@RequiresPermissions("common:common_exports_info:exportXls")
@RequiresPermissions("common:QH_COM_EXPORTS_INFO:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, CommonExportsInfo commonExportsInfo) {
return super.exportXls(request, commonExportsInfo, CommonExportsInfo.class, "common_exports_info");
return super.exportXls(request, commonExportsInfo, CommonExportsInfo.class, "QH_COM_EXPORTS_INFO");
}
/**
@@ -179,7 +179,7 @@ public class CommonExportsInfoController extends JeecgController<CommonExportsIn
* @param response
* @return
*/
@RequiresPermissions("common:common_exports_info:importExcel")
@RequiresPermissions("common:QH_COM_EXPORTS_INFO:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, CommonExportsInfo.class);
@@ -17,16 +17,16 @@ import java.io.Serializable;
import java.util.Date;
/**
* @Description: common_exports_info
* @Description: QH_COM_EXPORTS_INFO
* @Author: jeecg-boot
* @Date: 2023-05-29
* @Version: V1.0
*/
@Data
@TableName("common_exports_info")
@TableName("QH_COM_EXPORTS_INFO")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "common_exports_info对象", description = "common_exports_info")
@Schema(title = "common_exports_info对象", description = "QH_COM_EXPORTS_INFO")
public class CommonExportsInfo implements Serializable {
private static final long serialVersionUID = 1L;
@@ -5,7 +5,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.jeecg.modules.exports.entity.CommonExportsInfo;
/**
* @Description: common_exports_info
* @Description: QH_COM_EXPORTS_INFO
* @Author: jeecg-boot
* @Date: 2023-05-29
* @Version: V1.0
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.exports.entity.CommonExportsInfo;
/**
* @Description: common_exports_info
* @Description: QH_COM_EXPORTS_INFO
* @Author: jeecg-boot
* @Date: 2023-05-29
* @Version: V1.0
@@ -9,7 +9,7 @@ import org.jeecg.modules.exports.service.ICommonExportsInfoService;
import org.springframework.stereotype.Service;
/**
* @Description: common_exports_info
* @Description: QH_COM_EXPORTS_INFO
* @Author: jeecg-boot
* @Date: 2023-05-29
* @Version: V1.0
@@ -31,7 +31,7 @@ import java.util.Arrays;
* @Date: 2023-05-29
* @Version: V1.0
*/
@Tag(name = "common_imports")
@Tag(name = "QH_COM_IMPORTS")
@RestController
@RequestMapping("/sys/common/commonImports")
@Slf4j
@@ -76,7 +76,7 @@ public class CommonImportsController extends JeecgController<CommonImports, ICom
*/
@AutoLog(value = "添加")
@Operation(summary = "添加", description = "添加")
@RequiresPermissions("common:common_exports_item:add")
@RequiresPermissions("common:QH_COM_EXPORTS_ITEM:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody CommonImports commonImports) {
commonImportsService.save(commonImports);
@@ -91,7 +91,7 @@ public class CommonImportsController extends JeecgController<CommonImports, ICom
*/
@AutoLog(value = "编辑")
@Operation(summary = "编辑", description = "编辑")
@RequiresPermissions("common:common_exports_item:edit")
@RequiresPermissions("common:QH_COM_EXPORTS_ITEM:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<String> edit(@RequestBody CommonImports commonImports) {
commonImportsService.updateById(commonImports);
@@ -171,10 +171,10 @@ public class CommonImportsController extends JeecgController<CommonImports, ICom
* @param request
* @param commonImports
*/
@RequiresPermissions("common:common_exports_item:exportXls")
@RequiresPermissions("common:QH_COM_EXPORTS_ITEM:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, CommonImports commonImports) {
return super.exportXls(request, commonImports, CommonImports.class, "common_exports_item");
return super.exportXls(request, commonImports, CommonImports.class, "QH_COM_EXPORTS_ITEM");
}
/**
@@ -184,7 +184,7 @@ public class CommonImportsController extends JeecgController<CommonImports, ICom
* @param response
* @return
*/
@RequiresPermissions("common:common_exports_item:importExcel")
@RequiresPermissions("common:QH_COM_EXPORTS_ITEM:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, CommonImports.class);
@@ -29,7 +29,7 @@ import java.util.List;
* @Date: 2023-05-29
* @Version: V1.0
*/
@Tag(name = "common_imports_detail")
@Tag(name = "QH_COM_IMPORTS_DETAIL")
@RestController
@RequestMapping("/sys/common/commonImportsDetail")
@Slf4j
@@ -67,7 +67,7 @@ public class CommonImportsDetailController extends JeecgController<CommonImports
*/
@AutoLog(value = "添加")
@Operation(summary = "添加", description = "添加")
@RequiresPermissions("common:common_exports_item:add")
@RequiresPermissions("common:QH_COM_EXPORTS_ITEM:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody CommonImportsDetail CommonImportsDetail) {
commonImportsDetailService.save(CommonImportsDetail);
@@ -82,7 +82,7 @@ public class CommonImportsDetailController extends JeecgController<CommonImports
*/
@AutoLog(value = "编辑")
@Operation(summary = "编辑", description = "编辑")
@RequiresPermissions("common:common_exports_item:edit")
@RequiresPermissions("common:QH_COM_EXPORTS_ITEM:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<String> edit(@RequestBody CommonImportsDetail CommonImportsDetail) {
commonImportsDetailService.updateById(CommonImportsDetail);
@@ -113,7 +113,7 @@ public class CommonImportsDetailController extends JeecgController<CommonImports
*/
@AutoLog(value = "通过id删除")
@Operation(summary = "通过id删除", description = "通过id删除")
@RequiresPermissions("common:common_exports_item:delete")
@RequiresPermissions("common:QH_COM_EXPORTS_ITEM:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
commonImportsDetailService.removeById(id);
@@ -128,7 +128,7 @@ public class CommonImportsDetailController extends JeecgController<CommonImports
*/
@AutoLog(value = "批量删除")
@Operation(summary = "批量删除", description = "批量删除")
@RequiresPermissions("common:common_exports_item:deleteBatch")
@RequiresPermissions("common:QH_COM_EXPORTS_ITEM:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
this.commonImportsDetailService.removeByIds(Arrays.asList(ids.split(",")));
@@ -180,7 +180,7 @@ public class CommonImportsDetailController extends JeecgController<CommonImports
* @param response
* @return
*/
@RequiresPermissions("common:common_exports_item:importExcel")
@RequiresPermissions("common:QH_COM_EXPORTS_ITEM:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, CommonImportsDetail.class);
@@ -26,7 +26,7 @@ import java.util.Arrays;
* @Date: 2023-05-29
* @Version: V1.0
*/
//@Tag(name = "common_exports_item")
//@Tag(name = "QH_COM_EXPORTS_ITEM")
@RestController
//@RequestMapping("/sys/common/commonImportsInfo")
@Slf4j
@@ -64,7 +64,7 @@ public class CommonImportsInfoController extends JeecgController<CommonImportsIn
*/
@AutoLog(value = "添加")
@Operation(summary = "添加", description = "添加")
@RequiresPermissions("common:common_exports_item:add")
@RequiresPermissions("common:QH_COM_EXPORTS_ITEM:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody CommonImportsInfo commonImportsInfo) {
commonImportsInfoService.save(commonImportsInfo);
@@ -79,7 +79,7 @@ public class CommonImportsInfoController extends JeecgController<CommonImportsIn
*/
@AutoLog(value = "编辑")
@Operation(summary = "编辑", description = "编辑")
@RequiresPermissions("common:common_exports_item:edit")
@RequiresPermissions("common:QH_COM_EXPORTS_ITEM:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<String> edit(@RequestBody CommonImportsInfo commonImportsInfo) {
commonImportsInfoService.updateById(commonImportsInfo);
@@ -137,10 +137,10 @@ public class CommonImportsInfoController extends JeecgController<CommonImportsIn
* @param request
* @param commonImportsInfo
*/
@RequiresPermissions("common:common_exports_item:exportXls")
@RequiresPermissions("common:QH_COM_EXPORTS_ITEM:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, CommonImportsInfo commonImportsInfo) {
return super.exportXls(request, commonImportsInfo, CommonImportsInfo.class, "common_exports_item");
return super.exportXls(request, commonImportsInfo, CommonImportsInfo.class, "QH_COM_EXPORTS_ITEM");
}
/**
@@ -150,7 +150,7 @@ public class CommonImportsInfoController extends JeecgController<CommonImportsIn
* @param response
* @return
*/
@RequiresPermissions("common:common_exports_item:importExcel")
@RequiresPermissions("common:QH_COM_EXPORTS_ITEM:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, CommonImportsInfo.class);
@@ -22,10 +22,10 @@ import java.util.Date;
* @Version: V1.0
*/
@Data
@TableName("common_imports")
@TableName("QH_COM_IMPORTS")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "common_imports对象", description = "common_imports")
@Schema(title = "common_imports对象", description = "QH_COM_IMPORTS")
public class CommonImports implements Serializable {
private static final long serialVersionUID = 1L;
@@ -20,10 +20,10 @@ import java.util.Date;
* @Version: V1.0
*/
@Data
@TableName("common_imports_detail")
@TableName("QH_COM_IMPORTS_DETAIL")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "common_imports_detail对象", description = "common_imports_detail")
@Schema(title = "common_imports_detail对象", description = "QH_COM_IMPORTS_DETAIL")
public class CommonImportsDetail implements Serializable {
private static final long serialVersionUID = 1L;
@@ -22,10 +22,10 @@ import java.util.Date;
* @Version: V1.0
*/
@Data
@TableName("common_exports_item")
@TableName("QH_COM_EXPORTS_ITEM")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "common_exports_item对象", description = "common_exports_item")
@Schema(title = "common_exports_item对象", description = "QH_COM_EXPORTS_ITEM")
public class CommonImportsInfo implements Serializable {
private static final long serialVersionUID = 1L;
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.imports.entity.CommonImportsDetail;
/**
* @Description: common_exports_item
* @Description: QH_COM_EXPORTS_ITEM
* @Author: jeecg-boot
* @Date: 2023-05-29
* @Version: V1.0
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.imports.entity.CommonImportsInfo;
/**
* @Description: common_exports_item
* @Description: QH_COM_EXPORTS_ITEM
* @Author: jeecg-boot
* @Date: 2023-05-29
* @Version: V1.0
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.imports.entity.CommonImports;
/**
* @Description: common_exports_item
* @Description: QH_COM_EXPORTS_ITEM
* @Author: jeecg-boot
* @Date: 2023-05-29
* @Version: V1.0
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.imports.entity.CommonImportsDetail;
/**
* @Description: common_exports_item
* @Description: QH_COM_EXPORTS_ITEM
* @Author: jeecg-boot
* @Date: 2023-05-29
* @Version: V1.0
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.imports.entity.CommonImportsInfo;
/**
* @Description: common_exports_item
* @Description: QH_COM_EXPORTS_ITEM
* @Author: jeecg-boot
* @Date: 2023-05-29
* @Version: V1.0
@@ -7,7 +7,7 @@ import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.web.multipart.MultipartFile;
/**
* @Description: common_exports_item
* @Description: QH_COM_EXPORTS_ITEM
* @Author: jeecg-boot
* @Date: 2023-05-29
* @Version: V1.0
@@ -5,7 +5,7 @@ import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.web.multipart.MultipartFile;
/**
* @Description: common_exports_item
* @Description: QH_COM_EXPORTS_ITEM
* @Author: jeecg-boot
* @Date: 2023-05-29
* @Version: V1.0

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