Compare commits

2 Commits
Author SHA1 Message Date
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
8 changed files with 25 additions and 25 deletions
@@ -66,7 +66,7 @@ public class SmsSendMsgHandle implements ISendMsgHandle {
queryWrapper.eq(SysMessage::getEsType,"2");//群发,群发不重发
queryWrapper.eq(SysMessage::getEsSendStatus, SendMsgStatusEnum.WAIT.getCode());
}
queryWrapper.orderByAsc(SysMessage::getCreateTime).last("limit "+pageSize);
queryWrapper.orderByAsc(SysMessage::getCreateTime).last("FETCH FIRST " + pageSize + " ROWS ONLY");
//查询需要发送的数据
List<SysMessage> sysMessages = sysMessageService.getBaseMapper().selectList(queryWrapper);
// log.info("开始发送短信("+sysMessages.size()+")"+logSuffix);
@@ -32,7 +32,7 @@
</foreach>
</if>
<if test="dateStr != null">
AND DATE(data_date) = #{dateStr}
AND TRUNC(data_date) = #{dateStr}
</if>
</where>
GROUP BY user_id )
@@ -82,10 +82,10 @@
<select id="dayMinWeight" resultType="org.jeecg.bean.entity.UserDataRecordBmi">
SELECT *
FROM user_data_record_bmi
WHERE DATE(data_date) = (SELECT MAX(DATE(data_date)) FROM user_data_record_bmi where user_id = #{userId})
WHERE TRUNC(data_date) = (SELECT MAX(TRUNC(data_date)) FROM user_data_record_bmi where user_id = #{userId})
and user_id = #{userId}
ORDER BY weight ASC
LIMIT 1
FETCH FIRST 1 ROWS ONLY
</select>
@@ -333,7 +333,7 @@ public class WeighingDeviceServiceImpl implements WeighingDeviceService {
queryWrapper.select(ScalePersonal::getId,ScalePersonal::getBindUserId)
.eq(ScalePersonal::getDelFlag, CommonConstant.DEL_FLAG_0)
.eq(ScalePersonal::getCode, deviceCode)
.last("limit 1");
.last("FETCH FIRST 1 ROWS ONLY");
ScalePersonal scalePersonal = scalePersonalMapper.selectOne(queryWrapper);
if (scalePersonal == null) {
return null;
@@ -1004,7 +1004,7 @@ public class LoginController {
.eq(SysUser::getIdCard, idCard)
.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0)
.eq(SysUser::getPersonType, "1")
.last("limit 1");
.last("FETCH FIRST 1 ROWS ONLY");
SysUser sysUser = sysUserService.getOne(queryWrapper);
if (sysUser == null) {
return Result.error("未知用户!");
@@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.system.mapper.SysUserMapper">
<insert id="batchInsert" parameterType="java.util.List">
insert IGNORE into sys_user (id, username, realname, password, salt, avatar, birthday, id_card,person_type, sex,
insert into sys_user (id, username, realname, password, salt, avatar, birthday, id_card,person_type, sex,
email, phone, org_code, work_no, post, create_time, update_time, user_identity)
values
<foreach collection="list" item="t" index="index" separator=",">
@@ -437,7 +437,7 @@
<select id="selectUserIdByWorkNo" resultType="String">
select id from sys_user where del_flag = 0 and work_no = #{workNo} limit 1
select id from sys_user where del_flag = 0 and work_no = #{workNo} FETCH FIRST 1 ROWS ONLY
</select>
@@ -1120,7 +1120,7 @@
<select id="userInfoMap" resultType="org.jeecg.modules.system.bean.response.UserBmiGroupInfo">
SELECT
t1.id_card,
IFNULL( t1.user_group, 'e' ) AS user_group,
NVL( t1.user_group, 'e' ) AS user_group,
t2.height,
t2.weight,
t2.bmi,
@@ -108,7 +108,7 @@
and svi.device_type = #{deviceType}
and sva.package_name = #{packageName}
order by svi.version_no desc
limit 1
FETCH FIRST 1 ROWS ONLY
</select>
@@ -581,7 +581,7 @@ public class HealthUserEmployeeExServiceImpl extends ServiceImpl<HealthUserEmplo
LambdaQueryWrapper<UserDataRecordBmi> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(UserDataRecordBmi::getUserId, userId)
.orderByDesc(UserDataRecordBmi::getDataDate)
.last("limit 1");
.last("FETCH FIRST 1 ROWS ONLY");
return queryWrapper;
}
@@ -1180,7 +1180,7 @@ public class HealthUserEmployeeExServiceImpl extends ServiceImpl<HealthUserEmplo
} else {
sysUnit = sysDepartService.lambdaQuery()
.eq(SysDepart::getDepartName, userEmployeeVo.getUnit())
.orderByDesc(SysDepart::getUpdateTime).last("LIMIT 1").one();
.orderByDesc(SysDepart::getUpdateTime).last("FETCH FIRST 1 ROWS ONLY").one();
if (Objects.isNull(sysUnit)) {
return Result.error(userEmployeeVo.getRealname() + "上传的单位错误,不存在该单位!");
}
@@ -1191,7 +1191,7 @@ public class HealthUserEmployeeExServiceImpl extends ServiceImpl<HealthUserEmplo
SysDepart sysDepart = sysDepartService.lambdaQuery()
.eq(SysDepart::getDepartName, userEmployeeVo.getDepart())
.eq(SysDepart::getParentId, sysUnit.getId())
.orderByDesc(SysDepart::getUpdateTime).last("LIMIT 1").one();
.orderByDesc(SysDepart::getUpdateTime).last("FETCH FIRST 1 ROWS ONLY").one();
if (Objects.isNull(sysDepart)) {
return Result.error(userEmployeeVo.getRealname() + "上传的部门错误,上传单位不存在该部门!");
} else {
@@ -1343,7 +1343,7 @@ public class HealthUserEmployeeExServiceImpl extends ServiceImpl<HealthUserEmplo
} else {
sysUnit = sysDepartService.lambdaQuery()
.eq(SysDepart::getDepartName, userEmployeeVo.getUnit())
.orderByDesc(SysDepart::getUpdateTime).last("LIMIT 1").one();
.orderByDesc(SysDepart::getUpdateTime).last("FETCH FIRST 1 ROWS ONLY").one();
if (Objects.isNull(sysUnit)) {
sd.append("上传的单位错误,不存在该单位!");
}
@@ -1356,7 +1356,7 @@ public class HealthUserEmployeeExServiceImpl extends ServiceImpl<HealthUserEmplo
sysDepart = sysDepartService.lambdaQuery()
.eq(SysDepart::getDepartName, userEmployeeVo.getDepart())
.eq(SysDepart::getParentId, sysUnit.getId())
.orderByDesc(SysDepart::getUpdateTime).last("LIMIT 1").one();
.orderByDesc(SysDepart::getUpdateTime).last("FETCH FIRST 1 ROWS ONLY").one();
}
if (Objects.isNull(sysDepart)) {
sd.append("上传的部门错误,上传单位不存在该部门!");
@@ -1490,11 +1490,11 @@ public class HealthUserEmployeeExServiceImpl extends ServiceImpl<HealthUserEmplo
//处理单位及部门
SysDepart sysUnit = sysDepartService.lambdaQuery()
.eq(SysDepart::getDepartName, userEmployeeVo.getUnit())
.orderByDesc(SysDepart::getUpdateTime).last("LIMIT 1").one();
.orderByDesc(SysDepart::getUpdateTime).last("FETCH FIRST 1 ROWS ONLY").one();
SysDepart sysDepart = sysDepartService.lambdaQuery()
.eq(SysDepart::getDepartName, userEmployeeVo.getDepart())
.eq(SysDepart::getParentId, sysUnit != null ? sysUnit.getId() : "")
.orderByDesc(SysDepart::getUpdateTime).last("LIMIT 1").one();
.orderByDesc(SysDepart::getUpdateTime).last("FETCH FIRST 1 ROWS ONLY").one();
//userEmployee的orgCode是id,顾将orgCode替换成id
userEmployee.setOrgCode(sysDepart != null ? sysDepart.getId() : null);
BeanUtils.copyProperties(userEmployeeVo, userEmployee);
@@ -1565,14 +1565,14 @@ public class HealthUserEmployeeExServiceImpl extends ServiceImpl<HealthUserEmplo
}
SysDepart sysUnit = sysDepartService.lambdaQuery()
.eq(SysDepart::getDepartName, sysDepartVo.getUnit())
.orderByDesc(SysDepart::getUpdateTime).last("LIMIT 1").one();
.orderByDesc(SysDepart::getUpdateTime).last("FETCH FIRST 1 ROWS ONLY").one();
if (Objects.isNull(sysUnit)) {
return Result.error("上传的单位错误,不存在该单位!");
}
SysDepart sysDepart = sysDepartService.lambdaQuery()
.eq(SysDepart::getDepartName, sysDepartVo.getDepart())
.eq(SysDepart::getParentId, sysUnit.getId())
.orderByDesc(SysDepart::getUpdateTime).last("LIMIT 1").one();
.orderByDesc(SysDepart::getUpdateTime).last("FETCH FIRST 1 ROWS ONLY").one();
if (Objects.isNull(sysDepart)) {
return Result.error("上传的部门错误,上传单位不存在该部门!");
}
@@ -1666,14 +1666,14 @@ public class HealthUserEmployeeExServiceImpl extends ServiceImpl<HealthUserEmplo
}
SysDepart sysUnit = sysDepartService.lambdaQuery()
.eq(SysDepart::getDepartName, sysDepartVo.getUnit())
.orderByDesc(SysDepart::getUpdateTime).last("LIMIT 1").one();
.orderByDesc(SysDepart::getUpdateTime).last("FETCH FIRST 1 ROWS ONLY").one();
if (Objects.isNull(sysUnit)) {
sd.append("上传的单位错误,不存在该单位!");
}
SysDepart sysDepart = sysDepartService.lambdaQuery()
.eq(SysDepart::getDepartName, sysDepartVo.getDepart())
.eq(SysDepart::getParentId, sysUnit.getId())
.orderByDesc(SysDepart::getUpdateTime).last("LIMIT 1").one();
.orderByDesc(SysDepart::getUpdateTime).last("FETCH FIRST 1 ROWS ONLY").one();
if (Objects.isNull(sysDepart)) {
sd.append("上传的部门错误,上传单位不存在该部门!");
}
@@ -1751,14 +1751,14 @@ public class HealthUserEmployeeExServiceImpl extends ServiceImpl<HealthUserEmplo
.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0)
.eq(SysUser::getPersonType, "1")
// .eq(SysUser::getWorkNo, sysDepartVo.getWorkNo())//工号有空的,这里不根据工号查
.last("LIMIT 1").one();
.last("FETCH FIRST 1 ROWS ONLY").one();
SysDepart sysUnit = sysDepartService.lambdaQuery()
.eq(SysDepart::getDepartName, sysDepartVo.getUnit())
.orderByDesc(SysDepart::getUpdateTime).last("LIMIT 1").one();
.orderByDesc(SysDepart::getUpdateTime).last("FETCH FIRST 1 ROWS ONLY").one();
SysDepart sysDepart = sysDepartService.lambdaQuery()
.eq(SysDepart::getDepartName, sysDepartVo.getDepart())
.eq(SysDepart::getParentId, sysUnit != null ? sysUnit.getId() : "")
.orderByDesc(SysDepart::getUpdateTime).last("LIMIT 1").one();
.orderByDesc(SysDepart::getUpdateTime).last("FETCH FIRST 1 ROWS ONLY").one();
LambdaUpdateChainWrapper<SysUser> lambdaUpdate = sysUserService.lambdaUpdate();
lambdaUpdate.eq(SysUser::getIdCard, sysDepartVo.getIdCard());
if (!StrUtil.isBlank(sysDepartVo.getRealName())) {
@@ -149,7 +149,7 @@ public class SysAnonServiceImpl implements ISysAnonService {
LambdaQueryWrapper<SysIosRedeem> queryWrapper = Wrappers.<SysIosRedeem>lambdaQuery()
.eq(SysIosRedeem::getAppPackage, pkg)
.eq(SysIosRedeem::getStatus, 0)
.last("LIMIT 1 OFFSET 0");
.last("FETCH FIRST 1 ROWS ONLY");
SysIosRedeem sysIosRedeem = sysIosRedeemMapper.selectOne(queryWrapper);
if (Objects.isNull(sysIosRedeem)) {
ExceptionAssertsUtil.fail("未找到指定应用");