package com.kaidi.oa.domain; import java.time.Instant; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Column; import jakarta.persistence.Table; /** * 工法/专利推广活动台账(工程管理中心·专利工法办,需求功能8)。 * 年度推广计划与推广活动登记:召开宣贯会/编制作业指导书/技术交流等, * 记录推广效果(参与人数/效果评估),关联被推广的工法或专利。 * activityType: 宣贯会 / 作业指导书 / 技术交流 / 培训 / 知识共享 / 其他。 * status: 计划中 / 进行中 / 已完成 / 已取消。 */ @Entity @Table(name = "wm_promotion") public class WmPromotion { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; /** 推广活动名称。 */ private String name; /** 活动类型:宣贯会 / 作业指导书 / 技术交流 / 培训 / 知识共享 / 其他。 */ private String activityType; /** 计划年度(如 2026)。 */ private Integer year; /** 关联工法 id(可空)。 */ private Long methodId; /** 工法名称(冗余)。 */ private String methodName; /** 关联专利/IP id(可空)。 */ private Long ipAssetId; /** 专利名称(冗余)。 */ private String ipAssetName; /** 计划日期(YYYY-MM-DD)。 */ private String planDate; /** 实际日期(YYYY-MM-DD)。 */ private String actualDate; /** 地点。 */ private String location; /** 组织部门。 */ private String organizer; /** 负责人。 */ private String owner; /** 参与人数。 */ private Integer attendeeCount; /** 效果评估说明。 */ @Column(columnDefinition = "TEXT") private String effectNote; /** 推广材料(作业指导书/PPT/视频等,逗号分隔文件路径或文件 id)。 */ private String materials; /** 状态:计划中 / 进行中 / 已完成 / 已取消。 */ private String status; /** 备注。 */ private String remark; private Instant createdAt; private Instant updatedAt; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getActivityType() { return activityType; } public void setActivityType(String activityType) { this.activityType = activityType; } public Integer getYear() { return year; } public void setYear(Integer year) { this.year = year; } public Long getMethodId() { return methodId; } public void setMethodId(Long methodId) { this.methodId = methodId; } public String getMethodName() { return methodName; } public void setMethodName(String methodName) { this.methodName = methodName; } public Long getIpAssetId() { return ipAssetId; } public void setIpAssetId(Long ipAssetId) { this.ipAssetId = ipAssetId; } public String getIpAssetName() { return ipAssetName; } public void setIpAssetName(String ipAssetName) { this.ipAssetName = ipAssetName; } public String getPlanDate() { return planDate; } public void setPlanDate(String planDate) { this.planDate = planDate; } public String getActualDate() { return actualDate; } public void setActualDate(String actualDate) { this.actualDate = actualDate; } public String getLocation() { return location; } public void setLocation(String location) { this.location = location; } public String getOrganizer() { return organizer; } public void setOrganizer(String organizer) { this.organizer = organizer; } public String getOwner() { return owner; } public void setOwner(String owner) { this.owner = owner; } public Integer getAttendeeCount() { return attendeeCount; } public void setAttendeeCount(Integer attendeeCount) { this.attendeeCount = attendeeCount; } public String getEffectNote() { return effectNote; } public void setEffectNote(String effectNote) { this.effectNote = effectNote; } public String getMaterials() { return materials; } public void setMaterials(String materials) { this.materials = materials; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public Instant getCreatedAt() { return createdAt; } public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; } public Instant getUpdatedAt() { return updatedAt; } public void setUpdatedAt(Instant updatedAt) { this.updatedAt = updatedAt; } }