package com.njcn.process.pojo.param;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @author wr
 * @description
 * @date 2023/9/1 14:32
 */
@Data
public class SupvAlarmParam extends BaseParam {

    @ApiModelProperty(value = "监督单位",required = true)
    private String orgId;

    @Data
    public static class AlarmInsert {

        @ApiModelProperty("单据类别")
        @NotBlank(message = "单据类别不能为空")
        private String billType;

        @ApiModelProperty("单据编号")
        @NotBlank(message = "单据编号不能为空")
        private String billNo;

        @ApiModelProperty("单据名称")
        @NotBlank(message = "单据名称不能为空")
        private String billName;

        @ApiModelProperty("编制单位id,取ISC平台上的组织id （sys_dept）")
        @NotBlank(message = "编制单位编号不能为空")
        private String createrOrgId;

        @ApiModelProperty("编制单位名称,取ISC平台上的组织名称")
        @NotBlank(message = "编制单位名称不能为空")
        private String createrOrgName;

        @ApiModelProperty("所属专业,见3.11（字典）")
        @NotBlank(message = "所属专业不能为空")
        private String specialityType;

        @ApiModelProperty("责任单位id,取ISC平台上的组织id")
        @NotBlank(message = "责任单位编号不能为空")
        private String orgId;

        @ApiModelProperty("责任单位名称,取ISC平台上的组织名称")
        @NotBlank(message = "责任单位名称不能为空")
        private String orgName;

        @ApiModelProperty("接收人id,取ISC平台上的人员id")
        private String receiveUserId;

        @ApiModelProperty("接收人名称,取ISC平台上的人员名称")
        private String receiveUserName;

        @ApiModelProperty("编制时间	yyyy-MM-dd HH:mm:ss")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
        @NotNull(message = "完成时间不能为空")
        private LocalDateTime createrTime;

        @ApiModelProperty("主管部门id,取ISC平台上的组织id")
        @NotBlank(message = "主管部门编号不能为空")
        private String managerDeptId;

        @ApiModelProperty("主管部门名称,取ISC平台上的组织名称")
        @NotBlank(message = "主管部门名称不能为空")
        private String managerDeptName;

        @ApiModelProperty("主送单位id,取ISC平台上的组织id")
        private String mainSenderId;

        @ApiModelProperty("主送单位名称,取ISC平台上的组织名称")
        private String mainSenderName;

        @ApiModelProperty("抄送单位id,取ISC平台上的组织id")
        private String copySenderId;

        @ApiModelProperty("抄送单位名称,取ISC平台上的组织名称")
        private String copySenderName;

        @ApiModelProperty("依据标准")
        @NotBlank(message = "依据标准不能为空")
        private String techSupvBasis;

        @ApiModelProperty("问题描述")
        @NotBlank(message = "问题描述不能为空")
        private String problemDesc;

        @ApiModelProperty("处理建议")
        @NotBlank(message = "处理建议不能为空")
        private String dealAdvise;


    }

    @Data
    public  static class AlarmUpdate extends AlarmInsert {

        @ApiModelProperty("预告警单id")
        private String alarmId;
    }
}
