GlobalDriverInfoCache.java 1.85 KB
package com.ruoyi.common.global;

import com.ruoyi.in.domain.SignIn;
import com.ruoyi.pojo.domain.SignInExpand;
import com.ruoyi.utils.ConstDateUtil;
import org.springframework.stereotype.Component;

import java.security.Principal;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @author 20412
 */
@Component
public class GlobalDriverInfoCache {
    /**
     * 上午签到汇总
     */
    private final ConcurrentHashMap<String, List<SignInExpand>> morningUserSignInMap = new ConcurrentHashMap();
    /**
     * 下午签到汇总
     */
    private final ConcurrentHashMap<String, List<SignInExpand>> afternoonUserSignInMap = new ConcurrentHashMap();

    /**
     * 驾驶员签到成功
     *
     * @param signIn
     */
    public void putDriverSignInSuccess(SignIn signIn) {
        ConcurrentHashMap<String, List<SignInExpand>> userCurrentMap = null;
        int hour = Integer.parseInt(ConstDateUtil.formatDate("HH"));
        if (hour >= 0 && hour < 12) {
            userCurrentMap = morningUserSignInMap;
            if (Objects.isNull(userCurrentMap.get(signIn.getJobCode()))) {
                SignInExpand signInExpand = new SignInExpand();
                signInExpand.setJobCode(signIn.getJobCode());
                signInExpand.setMorningSignInIds(signInExpand.getMorningSignInIds() + signIn.getId() + ",");
                userCurrentMap.put(signIn.getJobCode(), new ArrayList<>(Arrays.asList(signInExpand)));
            } else {
                userCurrentMap.get(signIn.getJobCode()).add(null);
            }
        }else {
            userCurrentMap = afternoonUserSignInMap;
        }
        /**
         * 存在判断  上下午只保留一条作为正式的签到结果
         * 上午签到 -》 成功  | 下午签到 -》异常,成功
         * 上午签到 -》 异常,异常 | 下午签到 -》 成功
         */

    }


}