You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

361 lines
8.9 KiB

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<LotteryReview> lotteryReviewList;
}
@Data
public static class AddReviewParam {
@ApiModelProperty("抽签项目id")
private String id;
@ApiModelProperty("专家组别信息Json,该字段仅用于专家抽签")
private List<ExpertGroupInfo> expertGroupInfo;
// @ApiModelProperty("抽取专家信息json")
// private List<ExtractExpertsInfo> 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> expertGroupInfo;
// @ApiModelProperty("抽取专家信息json")
// private List<ExtractExpertsInfo> 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<ExpertDto.ContactInformation> 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> 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;
}
}