package com.malk.controller; import com.malk.server.common.McR; import com.malk.server.workhours.ApprovalWriteBackResult; import com.malk.server.workhours.ReSubmitApprovalResult; import com.malk.server.workhours.TimeCardApprovalStartRequest; import com.malk.service.workhours.ApprovalWriteBackService; import com.malk.service.workhours.ReSubmitApprovalService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** * 审批结果回写工时汇总表 — 接口 *
* 审批结束或撤销后调用,传流程实例ID + 审批结果(0=拒绝/撤销,1=同意)。
* 异常由全局 {@link com.malk.filter.CatchException} 统一包装为 McR。
*/
@Slf4j
@RestController
@RequestMapping("/approval")
public class ApprovalController {
@Autowired
private ApprovalWriteBackService approvalWriteBackService;
@Autowired
private ReSubmitApprovalService reSubmitApprovalService;
/**
* 审批结果回写工时汇总表
* GET /approval/writeback?instanceId=xxx&result=1
*
* @param instanceId 流程实例ID
* @param result 审批结果:0=拒绝/撤销,1=同意
*/
@PostMapping("/writeback")
public McR
* 用于:①第一次全量补齐历史数据 ②Scheduler 上线前手工回归验证
* 逻辑参考前端 submitApprovalProcess:按 PM 分组 → queryProcess(RUNNING) → update / create
*
* @param monthText yyyyMM
* @param submitterUserId 可空; 指定则仅处理该员工, 空则该月全员
* @param dryRun true 时只返回候选统计,不创建或更新审批
*/
@PostMapping("/resubmit")
public McR