package jnpf.model.dto; import cn.hutool.core.date.LocalDateTimeUtil; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; import com.github.pagehelper.PageParam; import io.swagger.annotations.ApiModelProperty; import io.swagger.v3.oas.annotations.media.Schema; import jnpf.entity.Expert; import jnpf.entity.LotteryProject; import jnpf.entity.LotteryReview; import jnpf.exception.DataException; import lombok.Data; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @Data public class LotteryProjectDto { public enum StatusEnum { //发布类型 TO_BE_EXTRACTED("0", "待抽取"), ALREADY_EXTRACTED("1", "已抽取"), SUSPENSION("2", "中止"), ARCHIVIST("3", "已归档"), ; private String code; private String describe; StatusEnum(String code, String describe) { this.code = code; this.describe = describe; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getDescribe() { return describe; } public void setDescribe(String describe) { this.describe = describe; } } public enum TypeEnum { //发布类型 SYSTEM("0", "系统"), ONESELF("1", "自建"), ; private String code; private String describe; TypeEnum(String code, String describe) { this.code = code; this.describe = describe; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getDescribe() { return describe; } public void setDescribe(String describe) { this.describe = describe; } } @Data public static class BaseParam { @ApiModelProperty("项目编号") private String projectNumber; @ApiModelProperty("项目名称") private String projectName; @ApiModelProperty("评标时间") private LocalDateTime bidEvaluationTime; @ApiModelProperty("评标地点") private String bidEvaluationLocation; @ApiModelProperty("代理机构") private String agency; @ApiModelProperty("抽签类型 1-专家 2-公司(默认专家)") private String lotteryType = "1"; public void setBidEvaluationTime(String bidEvaluationTime) { try { this.bidEvaluationTime = LocalDateTimeUtil.parse(bidEvaluationTime, "yyyy-MM-dd HH:mm:ss"); } catch (Exception e) { throw new DataException("日期格式错误,请使用yyyy-MM-dd HH:mm:ss格式"); } } } @Data public static class AddParam extends BaseParam { } @Data public static class EditParam extends BaseParam { @ApiModelProperty("id") private Integer id; } @Data public static class DeleteParam { @ApiModelProperty("id") private Integer id; } @Data public static class QueryListParam extends PageParam { @ApiModelProperty("项目编号") private String projectNumber; @ApiModelProperty("项目名称") private String projectName; @ApiModelProperty("抽签类型 1-专家 2-公司(默认专家)") private String lotteryType = "1"; /** * 权限控制 */ private String menuId = "572406059134626629"; } @Data public static class QueryResponse extends LotteryProject { @ApiModelProperty("评审列表") private List lotteryReviewList; } @Data public static class AddReviewParam { @ApiModelProperty("抽签项目id") private String id; @ApiModelProperty("专家组别信息Json,该字段仅用于专家抽签") private List expertGroupInfo; // @ApiModelProperty("抽取专家信息json") // private List extractExpertsInfo; } @Data public static class QueryReviewResponse extends LotteryReview { @ApiModelProperty("抽取专家数") private Integer extractExperts; @ApiModelProperty("确认参加数") private Integer confirmParticipation; } @Data public static class EditReviewParam { @ApiModelProperty("评审id") private String id; @ApiModelProperty("专家组别信息Json") private List expertGroupInfo; // @ApiModelProperty("抽取专家信息json") // private List extractExpertsInfo; } @Data public static class DeleteReviewParam { @ApiModelProperty("评审id") private String id; } public enum ConfirmEnum { //发布类型 JOIN("1", "参加"), NOT_JOIN("2", "不参加"), TO_BE_CONFIRMED("0", "待确认"), ; private String code; private String describe; ConfirmEnum(String code, String describe) { this.code = code; this.describe = describe; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getDescribe() { return describe; } public void setDescribe(String describe) { this.describe = describe; } } @Data public static class ExtractExpertsInfo { @ApiModelProperty("专家编号/公司编号") private String id; @ApiModelProperty("专家姓名") private String expertName; @ApiModelProperty("专家组别") private String expertGroup; @ApiModelProperty("联系方式") private String phoneNumber; @ApiModelProperty("工作单位名称") private String workUnit; //公共字段 @ApiModelProperty("确认时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime confirmTime; @ApiModelProperty("确认人姓名") private String confirmName; @ApiModelProperty("确认人id") private String confirmId; @ApiModelProperty("抽取轮次") private String ExtractionRounds; @ApiModelProperty("确认状态") private String status = ConfirmEnum.TO_BE_CONFIRMED.getCode(); @ApiModelProperty("备注") private String remark; @ApiModelProperty("参加确认按钮展示") private Boolean showJoinButton = true; //招标公司相关字段 @ApiModelProperty("联系人信息") private List contactInformation; @ApiModelProperty("公司名称") private String companyName; } @Data public static class ExpertGroupInfo { @ApiModelProperty("组别code") private String groupCode; @ApiModelProperty("组别名称") private String groupName; @ApiModelProperty("专家库人数") private String numberOfExpert; @ApiModelProperty("抽取人数") private String numberOfExtract; @ApiModelProperty("确认参加人数") private String numberOfParticipants = "0"; @ApiModelProperty("删除按钮展示") private Boolean showDelButton = true; } @Data public static class ParticipateInConfirmationParam { @ApiModelProperty("评审id") private String id; @ApiModelProperty("专家编码") private String expertId; @ApiModelProperty("确认状态 1-参加 2-不参加") private String status; @ApiModelProperty("备注") private String remark; } @Data public static class SaveExtractionResultsParam { @ApiModelProperty("评审id") private String id; @ApiModelProperty("抽取专家信息json") private List extractExpertsInfo; } @Data public static class UploadExtractionResults { @ApiModelProperty("抽签项目id") private String id; @ApiModelProperty("抽取结果") private FileInfo uploaderVO; } @Data public static class FileInfo { @Schema(description = "名称") private String name; @Schema(description = "请求接口") private String url; @Schema(description = "预览文件id") private String fileVersionId; @Schema(description = "文件大小") private Long fileSize; @Schema(description = "文件后缀") private String fileExtension; @Schema(description = "缩略图") private String thumbUrl; } }