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
This commit is contained in:
wanghao
2026-03-06 11:36:43 +08:00
parent 890cdfe40d
commit 5f790c0c7e
5 changed files with 18 additions and 18 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);
@@ -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("未知用户!");
@@ -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("未找到指定应用");