TimeCardController.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.malk.controller;
  2. import com.malk.server.common.McR;
  3. import com.malk.server.workhours.TimeCardDuplicateCleanupRequest;
  4. import com.malk.server.workhours.TimeCardDuplicateCleanupResult;
  5. import com.malk.server.workhours.TimeCardInstanceDeleteRequest;
  6. import com.malk.server.workhours.TimeCardSummaryUpsertRequest;
  7. import com.malk.service.workhours.TimeCardSummaryService;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.web.bind.annotation.PostMapping;
  10. import org.springframework.web.bind.annotation.RequestBody;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.RestController;
  13. /**
  14. * TimeCard 工时汇总接口。
  15. */
  16. @RestController
  17. @RequestMapping("/timecard")
  18. public class TimeCardController {
  19. @Autowired
  20. private TimeCardSummaryService timeCardSummaryService;
  21. /**
  22. * 按填报人 ID + 日期原子写入单日工时汇总。
  23. *
  24. * @param request 单日汇总数据
  25. * @return 宜搭写入结果
  26. */
  27. @PostMapping("/summary/upsert")
  28. public McR<Boolean> upsertSummary(@RequestBody TimeCardSummaryUpsertRequest request) {
  29. return McR.success(timeCardSummaryService.upsert(request));
  30. }
  31. /**
  32. * 按显式清单受控清理重复汇总记录,默认只校验不删除。
  33. *
  34. * @param request 重复记录清理请求
  35. * @return 校验、删除和复查统计
  36. */
  37. @PostMapping("/summary/cleanup-duplicates")
  38. public McR<TimeCardDuplicateCleanupResult> cleanupDuplicates(
  39. @RequestBody TimeCardDuplicateCleanupRequest request) {
  40. return McR.success(timeCardSummaryService.cleanupDuplicates(request));
  41. }
  42. /**
  43. * 按显式实例 ID 受控删除记录,默认只校验不删除。
  44. *
  45. * @param request 实例删除请求
  46. * @return 校验和删除统计
  47. */
  48. @PostMapping("/summary/delete-instances")
  49. public McR<java.util.Map<String, Object>> deleteInstances(
  50. @RequestBody TimeCardInstanceDeleteRequest request) {
  51. return McR.success(timeCardSummaryService.deleteInstances(request));
  52. }
  53. }