EvalTaskController.java 4.51 KB
package cn.fw.morax.server.controller.erp;

import cn.fw.approval.sdk.mq.ApprovalResult;
import cn.fw.common.web.annotation.ControllerMethod;
import cn.fw.data.base.domain.common.Message;
import cn.fw.morax.common.utils.DateUtil;
import cn.fw.morax.common.utils.PublicUtil;
import cn.fw.morax.domain.dto.query.KpiGroupStaffQueryDTO;
import cn.fw.morax.rpc.ehr.EhrRpcService;
import cn.fw.morax.rpc.ehr.dto.PerformanceStaffDTO;
import cn.fw.morax.server.consumer.FlowConsumer;
import cn.fw.morax.server.task.*;
import cn.fw.morax.service.biz.eval.EvalCalculateService;
import cn.fw.security.auth.client.annotation.Authorization;
import cn.fw.security.auth.client.enums.AuthType;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDate;
import java.util.Date;
import java.util.List;

import static cn.fw.common.web.util.ResultBuilder.success;

/**
 * @author : kurisu
 * @version : 1.0
 * @className : DebugController
 * @description : 绩效通用调试控制器
 * @date : 2022-04-11 10:45
 * @ignore
 */
@Slf4j
@RestController
@Authorization(AuthType.NONE)
@RequiredArgsConstructor
@Validated
@RequestMapping("/debug/task/eval")
@ConditionalOnProperty(prefix = "task", name = "switch", havingValue = "on")
public class EvalTaskController {
    private final EvalCalcTask evalCalcTask;
    private final EvalGroupTask evalGroupTask;
    private final EvalGroupUserTask evalGroupUserTask;
    private final EvalCalculateService evalCalculateService;

    @GetMapping("/group-user")
    @ControllerMethod("考评组人员")
    public Message<Void> processEvalUser(Date date) {
        if (PublicUtil.isEmpty(date)) {
            evalGroupUserTask.processEvalUser(LocalDate.now().minusDays(1L));
        } else {
            evalGroupUserTask.processEvalUser(DateUtil.date2LocalDate(date));
        }
        return success();
    }

    @GetMapping("/calc-cache")
    @ControllerMethod("缓存要计算的考评")
    public Message<Void> cacheCalculableEvalGroup(Date date) {
        if (PublicUtil.isEmpty(date)) {
            evalCalculateService.cacheCalculableEvalGroupIds(LocalDate.now().minusDays(1L));
        } else {
            evalCalculateService.cacheCalculableEvalGroupIds(DateUtil.date2LocalDate(date));
        }
        return success();
    }

    @GetMapping("/calc")
    @ControllerMethod("计算考评")
    public Message<Void> calculateCacheEvalGroup() {
        evalCalcTask.calculateCacheEvalGroup();
        return success();
    }

    @GetMapping("/calc-cache-rank")
    @ControllerMethod("缓存要计算的考评排名")
    public Message<Void> cacheCalculableEvalGroupRank() {
        evalCalcTask.cacheCalculableEvalGroupRank();
        return success();
    }

    @GetMapping("/calc-rank")
    @ControllerMethod("计算考评排名")
    public Message<Void> calcEvalGroupRank() {
        evalCalcTask.calcEvalGroupRank();
        return success();
    }

    @GetMapping("/cache-reward")
    @ControllerMethod("缓存分配奖惩的考评池")
    public Message<Void> cacheDistEvalShopPoolIds() {
        evalCalcTask.cacheDistEvalShopPoolIds();
        return success();
    }

    @GetMapping("/dist-reward")
    @ControllerMethod("分配奖惩")
    public Message<Void> distributionEvalReward() {
        evalCalcTask.distributionEvalReward();
        return success();
    }

    @GetMapping("/cache-report")
    @ControllerMethod("缓存需要上报的考评指标")
    public Message<Void> cacheReportEvalIndicator() {
        evalCalcTask.cacheReportEvalIndicator();
        return success();
    }

    @GetMapping("/persist-report")
    @ControllerMethod("持久化需要上报的考评指标")
    public Message<Void> kpiReport() {
        evalCalcTask.persistenceReportTodo();
        return success();
    }

    @GetMapping("/push-report")
    @ControllerMethod("每5分钟检查待办推送")
    public Message<Void> salaryReport() {
        evalCalcTask.pushReportTodo();
        return success();
    }

    @GetMapping("/send-notice")
    @ControllerMethod("发送业务上报mq通知")
    public Message<Void> sendNotice() {
        evalGroupTask.sendNotice();
        return success();
    }

//    @GetMapping("/eval-group")
//    @ControllerMethod("处理考评组")
//    public Message<Void> processCurMonthEffectEvals() {
//        evalGroupTask.processCurMonthEffectEvals();
//        return success();
//    }




}