fix(mapper):修复SQL映射文件中的语法错误并优化查询性能
- 将反引号改为双引号以适配达梦数据库语法
- 替换MySQL特有函数为标准SQL函数(concat改为||操作符)
- 使用SYSDATE函数替代NOW函数
- 使用EXTRACT函数替代YEAR/MONTH函数提高兼容性
- 使用TRUNC函数替代DATE函数进行日期比较
- 将LIMIT语法改为FETCH FIRST语法(service):优化分页查询逻辑提高数据获取稳定性- 将LambdaQueryWrapper的last("limit1")改为标准分页查询
This commit is contained in:
+3
-3
@@ -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 !=''">
|
||||
|
||||
+1
-1
@@ -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}
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+2
-2
@@ -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>
|
||||
|
||||
+11
-10
@@ -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>
|
||||
</mapper>
|
||||
+2
-2
@@ -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">
|
||||
|
||||
+1
-1
@@ -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>
|
||||
|
||||
+16
-6
@@ -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)) {
|
||||
// 值班时间
|
||||
|
||||
Reference in New Issue
Block a user