package com.seeyon.apps.src_flowIntegration.util;

import com.seeyon.apps.extIntegration.vo.ExtAffair;

public class TransitionAffairUtil {

    //    进行审批状态编码转换，流程日志
    public static String actionIdTransitionAffairStatus(String actionId){
//        流程节点查询 1向前、0撤销、3终止、2向后、4异常
        switch(actionId){
            case "2"://已发
                return "1";
            case "5"://撤销
                return "0";
            case "6"://终止
                return "3";
            case "8"://加签
                return "1";
            case "16"://回退
                return "2";
            case "17"://取回
                return "2";
            case "19"://已办
                return "1";
            case "35"://退回重填
                return "2";
            case "167"://转干预人
                return "4";
            case "201"://超级节点执行
                return "1";
            default:
                return "1";
        }
    }

    //    进行审批状态含义转换，流程日志
    public static String actionIdTransitionAffairStatusTxt(String actionId){
//        流程节点查询
        switch(actionId){
            case "2"://已发
                return "已发";
            case "5"://撤销
                return "撤销";
            case "6"://终止
                return "终止";
            case "8"://加签
                return "加签";
            case "16"://回退
                return "回退";
            case "17"://取回
                return "取回";
            case "19"://已办
                return "已办";
            case "35"://退回重填
                return "退回重填";
            case "167"://转干预人
                return "超级节点转干预人";
            case "201"://超级节点执行
                return "超级节点执行";
            default:
                return "";
        }
    }

    //    根据当前审批状态返回对应的审批状态，监听
    public static String extAffairAffairStatus(ExtAffair extAffair){
        int affairState = extAffair.getCtpAffairState();//主状态 0撤销、1向前、2向后、3终止、4异常
//        extAffair.getCtpAffairSubState();//辅状态
        switch(affairState){
            case 1://协同-待发
                return "0";
            case 2://协同-已发
                return "1";
            case 3://协同-待办
                return "0";
            case 30://待办-重复处理自动跳过
                return "1";
            case 4://协同-已办
                return "1";
            case 5://协同-撤销
                return "0";
            case 6://协同-回退
                return "2";
            case 7://协同-取回
                return "2";
            case 8://协同-竞争执行结束
                return "1";
            case 11://竞争执行完，但是其他人可以查看。
                return "1";
            case 15://协同-终止。
                return "3";
            default:
                return "";
        }
    }

    //    根据当前审批状态返回对应的审批状态描述，监听
    public static String extAffairAffairStatusTxt(ExtAffair extAffair){
//        int affairState = extAffair.getCtpAffairState();//主状态
        int affairSubState = extAffair.getCtpAffairSubState();//辅状态
        switch(affairSubState){
            case 0://协同-子状态-正常
                return "正常";
            case 1://协同-待发-草稿
                return "待发";
            case 2://协同-待发-被回退
                return "待发被回退";
            case 3://协同-待发-被撤销
                return "待发被撤销";
            case 5://协同-撤销
                return "撤销";
            case 6://协同-待办-取回
                return "取回";
            case 7://协同-待办-被回退
                return "被回退";
            case 11://协同-待办-未读
                return "待办";
            case 12://协同-待办-已读
                return "待办已读";
            case 13://协同-待办-暂存待办
                return "暂存待办";
            case 14://协同-待办-知会
                return "知会";
            case 15://协同-待办-主动指定回退的状态，我指定回退给别人，这是我的状态
                return "指定回退";
            case 16://协同-待办--被指定回退到的事项，别人回退给我，这是我的状态
                return "被指定回退";
            case 17://协同-待办--被指定回退到的事项，又指定回退给别人
                return "指定回退后又指定回退";
            case 18://协同-待发--指定回退到发起人并且选择流程重走
                return "指定回退流程重走";
            case 21://协同-已办-流程被终止
                return "被终止";
            case 22://协同-已办-删除
                return "删除";
            case 23://协同-已办 -归档
                return "归档";
            case 24://协同-已办 -超期跳过
                return "超期跳过";
            case 25://协同-已办-流程主动终止
                return "终止";
            default:
                return "";
        }
    }

//    根据当前流程状态查询接口流程状态
    public static String colSummaryStateFlowState(String summaryState){
//        流程状态查询
        switch(summaryState){
            case "0"://待办
                return "1";
            case "1"://终止
                return "2";
            case "2"://待发
                return "1";
            case "3"://结束
                return "1";
            default:
                return "0";
        }
    }

    //    根据当前流程状态查询接口流程状态描述
    public static String colSummaryStateFlowStateTxt(String summaryState){
//        流程状态查询描述
        switch(summaryState){
            case "0"://待办
                return "流程待办";
            case "1"://终止
                return "流程终止";
            case "2"://待发
                return "流程待发";
            case "3"://结束
                return "流程结束";
            default:
                return "流程异常";
        }
    }
}
