feat(oa): 添加查询当前用户今日报工记录功能- 在 IOaProject口中ReportService 接新增 getTodayReportByCurrentUser 方法
- 在 OaProjectReportController 中新增 /today GET 接口用于获取今日报告- 在 OaProjectReportServiceImpl 中实现今日报告查询逻辑 -优化 ClearbuildQueryWrapper 方法,支持按用户 ID 查询 - 使用 LoginHelper 获取当前登录用户 ID 进行数据过滤
This commit is contained in:
@@ -190,4 +190,13 @@ public class OaProjectReportController extends BaseController {
|
|||||||
@RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate end) {
|
@RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate end) {
|
||||||
return R.ok(iOaProjectReportService.getSummaryData(start,end));
|
return R.ok(iOaProjectReportService.getSummaryData(start,end));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询当前登录用户今日的报工记录
|
||||||
|
*/
|
||||||
|
@GetMapping("/today")
|
||||||
|
public R<OaProjectReportVo> getTodayReport() {
|
||||||
|
OaProjectReportVo todayReport = iOaProjectReportService.getTodayReportByCurrentUser();
|
||||||
|
return R.ok(todayReport);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,4 +68,9 @@ public interface IOaProjectReportService {
|
|||||||
List<OaProjectReportVo> clearList(LocalDate start, LocalDate end);
|
List<OaProjectReportVo> clearList(LocalDate start, LocalDate end);
|
||||||
|
|
||||||
List<OaProjectReportVo> getSummaryData(LocalDate start, LocalDate end);
|
List<OaProjectReportVo> getSummaryData(LocalDate start, LocalDate end);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询当前登录用户今日的报工记录
|
||||||
|
*/
|
||||||
|
OaProjectReportVo getTodayReportByCurrentUser();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,6 +95,7 @@ public class OaProjectReportServiceImpl implements IOaProjectReportService {
|
|||||||
private QueryWrapper<OaProjectReport> ClearbuildQueryWrapper(OaProjectReportBo bo) {
|
private QueryWrapper<OaProjectReport> ClearbuildQueryWrapper(OaProjectReportBo bo) {
|
||||||
Map<String, Object> params = bo.getParams();
|
Map<String, Object> params = bo.getParams();
|
||||||
QueryWrapper<OaProjectReport> lqw = Wrappers.query();
|
QueryWrapper<OaProjectReport> lqw = Wrappers.query();
|
||||||
|
lqw.eq(bo.getUserId()!=null, "user_id", bo.getUserId());
|
||||||
if (bo.getCreateTime() != null) {
|
if (bo.getCreateTime() != null) {
|
||||||
LocalDateTime start = bo.getCreateTime() // LocalDateTime / Date 都行
|
LocalDateTime start = bo.getCreateTime() // LocalDateTime / Date 都行
|
||||||
.toInstant()
|
.toInstant()
|
||||||
@@ -230,4 +231,20 @@ public class OaProjectReportServiceImpl implements IOaProjectReportService {
|
|||||||
return baseMapper.getSummaryData(start,end);
|
return baseMapper.getSummaryData(start,end);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public OaProjectReportVo getTodayReportByCurrentUser() {
|
||||||
|
// 检查今日是否已报工
|
||||||
|
OaProjectReportBo checkBo = new OaProjectReportBo();
|
||||||
|
checkBo.setUserId(LoginHelper.getUserId());
|
||||||
|
checkBo.setCreateTime(new Date());
|
||||||
|
QueryWrapper<OaProjectReport> queryWrapper = ClearbuildQueryWrapper(checkBo);
|
||||||
|
// 查询今日报工记录
|
||||||
|
OaProjectReport report = baseMapper.selectOne(queryWrapper);
|
||||||
|
if (report == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
// 转换为VO对象
|
||||||
|
return baseMapper.selectVoByIdPlus(report.getReportId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user