package com.dayou.dto;

import com.dayou.enums.ProductionEnum;
import com.dayou.enums.workflow.NodeLogEnum;
import com.github.liangbaika.validate.annations.AbcValidate;
import com.github.liangbaika.validate.enums.Check;
import lombok.Builder;
import lombok.Data;

import java.util.List;

/**
 * 类说明：节点提交对象 （业务数据继承该对象，通过拦截方法获取）
 *
 * @author: wucl
 * @since: 2023/10/27
 * created with IntelliJ IDEA.
 */
@Data
public class WorkNodeCommit {
    /**
     * 当前节点id
     */
    @AbcValidate(required = true,message = "缺失节点id",fun = Check.NotNull)
    private Long instanceNodeId;

    @AbcValidate(required = true,message = "缺失处理结果",fun = Check.NotNull)
    private NodeLogEnum state;

    private String comments;

    /**
     * 在节点上由当前节点处理人确定的下一个节点处理人
     */
    private Long nextHandlerId;

    private List<ProductionEnum> production;

    /**
     * 多个报告号的话，流程分叉
     */
    private List<String> reportNos;

    /**
     * 业务二级id
     */
    private String businessSubId;

    /**
     * 业务三级id
     */
    private String businessMinId;

    /**
     * 复审？
     */
    private String doSecondCheck;

    /**
     * 三审？
     */
    private String doThirdCheck;

    /**
     * 资产四审
     */
    private Boolean doFourthCheck;

    /**
     * 是否检查任务是否完成，在产生分叉节点时就不用校验任务是否完成
     */
    private Boolean ifCheckTask = Boolean.TRUE;

    private Boolean ifProductionFund;

    /**
     * 在某些节点退回时，是否需要清除报告号
     */
    private Boolean cleanReportNo;

    private Boolean ifFeedback;

    /**
     * 客户id
     */
    private Long ccId;

    /**
     * 土地类型是否备案
     */
    private Boolean landIsRecord;

    /**
     * 跳过下一节点
     */
    private Boolean ifSkip;

    /**
     * 价值意见书收否收钱
     */
    private Boolean ifPay;

    private String nodeCode;

    private Long businessId;

}
