package cn.com.lzt.message.send.entity; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Map; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import org.apache.commons.lang.StringUtils; import org.hibernate.annotations.GenericGenerator; import org.jeecgframework.poi.excel.annotation.Excel; import net.sf.json.JSONArray; /** * @Title: Entity * @Description: 消息管理主表 * @author onlineGenerator * @date 2019-05-23 16:51:48 * @version V1.0 * */ @Entity @Table(name = "m_message", schema = "") @SuppressWarnings("serial") public class MMessageEntity implements java.io.Serializable { /**主键*/ private String id; /**创建人名称*/ private String createName; /**创建人登录名称*/ private String createBy; private String createById; /**创建日期*/ private Date createDate; /**更新人名称*/ private String updateName; /**更新人登录名称*/ private String updateBy; /**更新日期*/ private Date updateDate; /**所属部门*/ private String sysOrgCode; /**所属公司*/ private String sysCompanyCode; /**流程状态*/ private String bpmStatus; /**标题*/ @Excel(name="标题",width=15) private String title; /**内容*/ @Excel(name="内容",width=15) private String text; /**发送人数*/ private Integer sendCount; /**已读人数*/ private Integer seeCount; /**发送范围*/ @Excel(name="发送范围",width=15,dicCode="message_send_scope") private String sendScope; /**发送方式*/ @Excel(name="发送方式",width=15,dicCode="message_send_way") private String sendWay; /**消息类型*/ private String messageType; /**发送时间*/ private Date sendTime; /**发送时间类型*/ @Excel(name="发送时间类型",width=15,dicCode="message_send_time_type") private Integer sendTimeType; /**通知类型*/ @Excel(name="通知类型",width=15,dicCode="message_notice_type") private String noticeType; /**是否发送*/ private Integer isSend; /**是否微信发送*/ private Integer isWx; /**是否短信发送*/ private Integer isShort; /**是否邮件发送*/ private Integer isEmail; /**是否站内信*/ private Integer isSite; private String sendScopeIds; private String sendScopeNames; private Date planSendTime; private Integer templateId; private String templateName; private String templateData; private String sendText; //微信模板配置 private String wxTemplateConfig; //保存模板变量信息 private List> templateKVMap; private java.lang.String procInstId; private java.lang.String stepName; private Integer status;//0 正常 1撤回 private Date cancelTime;//撤回时间 private String bpmString; private String apiViewer; private String url; private Integer fileIndex; private String uploadattr;//是否有附件 private String attachment;//附件列表 public static enum MessageSendScope{ role,dep,user_group,user,all } public static enum MessageSendWay{ wx,short_message,email,site; } public static enum MessageType{ template//用户模板消息 ,custom//用户自定义消息 ,api//接口模板消息 ,system } public static enum SendTimeType{ immediately(0),future(1); private int code; private SendTimeType(int code){ this.code=code; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } } /** *方法: 取得java.lang.Integer *@return: java.lang.Integer 主键 */ @Id @GeneratedValue(generator = "uuid") @GenericGenerator(name = "uuid", strategy = "uuid") @Column(name ="ID",nullable=false,length=32) public String getId(){ return this.id; } /** *方法: 设置java.lang.Integer *@param: java.lang.Integer 主键 */ public void setId(String id){ this.id = id; } /** *方法: 取得java.lang.String *@return: java.lang.String 创建人名称 */ @Column(name ="CREATE_NAME",nullable=true,length=50) public String getCreateName(){ return this.createName; } /** *方法: 设置java.lang.String *@param: java.lang.String 创建人名称 */ public void setCreateName(String createName){ this.createName = createName; } /** *方法: 取得java.lang.String *@return: java.lang.String 创建人登录名称 */ @Column(name ="CREATE_BY",nullable=true,length=50) public String getCreateBy(){ return this.createBy; } /** *方法: 设置java.lang.String *@param: java.lang.String 创建人登录名称 */ public void setCreateBy(String createBy){ this.createBy = createBy; } /** *方法: 取得java.util.Date *@return: java.util.Date 创建日期 */ @Column(name ="CREATE_DATE",nullable=true,length=20) public Date getCreateDate(){ return this.createDate; } /** *方法: 设置java.util.Date *@param: java.util.Date 创建日期 */ public void setCreateDate(Date createDate){ this.createDate = createDate; } /** *方法: 取得java.lang.String *@return: java.lang.String 更新人名称 */ @Column(name ="UPDATE_NAME",nullable=true,length=50) public String getUpdateName(){ return this.updateName; } /** *方法: 设置java.lang.String *@param: java.lang.String 更新人名称 */ public void setUpdateName(String updateName){ this.updateName = updateName; } /** *方法: 取得java.lang.String *@return: java.lang.String 更新人登录名称 */ @Column(name ="UPDATE_BY",nullable=true,length=50) public String getUpdateBy(){ return this.updateBy; } /** *方法: 设置java.lang.String *@param: java.lang.String 更新人登录名称 */ public void setUpdateBy(String updateBy){ this.updateBy = updateBy; } /** *方法: 取得java.util.Date *@return: java.util.Date 更新日期 */ @Column(name ="UPDATE_DATE",nullable=true,length=20) public Date getUpdateDate(){ return this.updateDate; } /** *方法: 设置java.util.Date *@param: java.util.Date 更新日期 */ public void setUpdateDate(Date updateDate){ this.updateDate = updateDate; } /** *方法: 取得java.lang.String *@return: java.lang.String 所属部门 */ @Column(name ="SYS_ORG_CODE",nullable=true,length=50) public String getSysOrgCode(){ return this.sysOrgCode; } /** *方法: 设置java.lang.String *@param: java.lang.String 所属部门 */ public void setSysOrgCode(String sysOrgCode){ this.sysOrgCode = sysOrgCode; } /** *方法: 取得java.lang.String *@return: java.lang.String 所属公司 */ @Column(name ="SYS_COMPANY_CODE",nullable=true,length=50) public String getSysCompanyCode(){ return this.sysCompanyCode; } /** *方法: 设置java.lang.String *@param: java.lang.String 所属公司 */ public void setSysCompanyCode(String sysCompanyCode){ this.sysCompanyCode = sysCompanyCode; } /** *方法: 取得java.lang.String *@return: java.lang.String 流程状态 */ @Column(name ="BPM_STATUS",nullable=true,length=32) public String getBpmStatus(){ return this.bpmStatus; } /** *方法: 设置java.lang.String *@param: java.lang.String 流程状态 */ public void setBpmStatus(String bpmStatus){ this.bpmStatus = bpmStatus; } /** *方法: 取得java.lang.String *@return: java.lang.String 标题 */ @Column(name ="TITLE",nullable=true,length=255) public String getTitle(){ return this.title; } /** *方法: 设置java.lang.String *@param: java.lang.String 标题 */ public void setTitle(String title){ this.title = title; } /** *方法: 取得java.lang.String *@return: java.lang.String 内容 */ @Column(name ="TEXT",nullable=true,length=2000) public String getText(){ return this.text; } /** *方法: 设置java.lang.String *@param: java.lang.String 内容 */ public void setText(String text){ this.text = text; } /** *方法: 取得java.lang.Integer *@return: java.lang.Integer 发送人数 */ @Column(name ="SEND_COUNT",nullable=true,length=32) public Integer getSendCount(){ return this.sendCount; } /** *方法: 设置java.lang.Integer *@param: java.lang.Integer 发送人数 */ public void setSendCount(Integer sendCount){ this.sendCount = sendCount; } /** *方法: 取得java.lang.Integer *@return: java.lang.Integer 已读人数 */ @Column(name ="SEE_COUNT",nullable=true,length=32) public Integer getSeeCount(){ return this.seeCount; } /** *方法: 设置java.lang.Integer *@param: java.lang.Integer 已读人数 */ public void setSeeCount(Integer seeCount){ this.seeCount = seeCount; } /** *方法: 取得java.lang.String *@return: java.lang.String 发送范围 */ @Column(name ="SEND_SCOPE",nullable=true,length=255) public String getSendScope(){ return this.sendScope; } /** *方法: 设置java.lang.String *@param: java.lang.String 发送范围 */ public void setSendScope(String sendScope){ this.sendScope = sendScope; } /** *方法: 取得java.lang.String *@return: java.lang.String 发送方式 */ @Column(name ="SEND_WAY",nullable=true,length=255) public String getSendWay(){ return this.sendWay; } /** *方法: 设置java.lang.String *@param: java.lang.String 发送方式 */ public void setSendWay(String sendWay){ this.sendWay = sendWay; } /** *方法: 取得java.lang.String *@return: java.lang.String 消息类型 */ @Column(name ="MESSAGE_TYPE",nullable=true,length=255) public String getMessageType(){ return this.messageType; } /** *方法: 设置java.lang.String *@param: java.lang.String 消息类型 */ public void setMessageType(String messageType){ this.messageType = messageType; } /** *方法: 取得java.util.Date *@return: java.util.Date 发送时间 */ @Column(name ="SEND_TIME",nullable=true,length=32) public Date getSendTime(){ return this.sendTime; } /** *方法: 设置java.util.Date *@param: java.util.Date 发送时间 */ public void setSendTime(Date sendTime){ this.sendTime = sendTime; } /** *方法: 取得java.lang.Integer *@return: java.lang.Integer 发送时间类型 */ @Column(name ="SEND_TIME_TYPE",nullable=true,length=1) public Integer getSendTimeType(){ return this.sendTimeType; } /** *方法: 设置java.lang.Integer *@param: java.lang.Integer 发送时间类型 */ public void setSendTimeType(Integer sendTimeType){ this.sendTimeType = sendTimeType; } /** *方法: 取得java.lang.String *@return: java.lang.String 通知类型 */ @Column(name ="NOTICE_TYPE",nullable=true,length=255) public String getNoticeType(){ return this.noticeType; } /** *方法: 设置java.lang.String *@param: java.lang.String 通知类型 */ public void setNoticeType(String noticeType){ this.noticeType = noticeType; } /** *方法: 取得java.lang.Integer *@return: java.lang.Integer 是否发送 */ @Column(name ="IS_SEND",nullable=true,length=1) public Integer getIsSend(){ return this.isSend; } /** *方法: 设置java.lang.Integer *@param: java.lang.Integer 是否发送 */ public void setIsSend(Integer isSend){ this.isSend = isSend; } /** *方法: 取得java.lang.Integer *@return: java.lang.Integer 是否微信发送 */ @Column(name ="IS_WX",nullable=true,length=1) public Integer getIsWx(){ return this.isWx; } /** *方法: 设置java.lang.Integer *@param: java.lang.Integer 是否微信发送 */ public void setIsWx(Integer isWx){ this.isWx = isWx; } /** *方法: 取得java.lang.Integer *@return: java.lang.Integer 是否短信发送 */ @Column(name ="IS_SHORT",nullable=true,length=1) public Integer getIsShort(){ return this.isShort; } /** *方法: 设置java.lang.Integer *@param: java.lang.Integer 是否短信发送 */ public void setIsShort(Integer isShort){ this.isShort = isShort; } /** *方法: 取得java.lang.Integer *@return: java.lang.Integer 是否邮件发送 */ @Column(name ="IS_EMAIL",nullable=true,length=1) public Integer getIsEmail(){ return this.isEmail; } /** *方法: 设置java.lang.Integer *@param: java.lang.Integer 是否邮件发送 */ public void setIsEmail(Integer isEmail){ this.isEmail = isEmail; } /** *方法: 取得java.lang.Integer *@return: java.lang.Integer 是否站内信 */ @Column(name ="IS_SITE",nullable=true,length=1) public Integer getIsSite(){ return this.isSite; } /** *方法: 设置java.lang.Integer *@param: java.lang.Integer 是否站内信 */ public void setIsSite(Integer isSite){ this.isSite = isSite; } @Column(name ="send_scope_ids",nullable=true,length=2000) public String getSendScopeIds() { return sendScopeIds; } public void setSendScopeIds(String sendScopeIds) { this.sendScopeIds = sendScopeIds; } @Column(name ="send_scope_names",nullable=true,length=2000) public String getSendScopeNames() { return sendScopeNames; } public void setSendScopeNames(String sendScopeNames) { this.sendScopeNames = sendScopeNames; } @Column(name ="plan_send_time",nullable=true,length=32) public Date getPlanSendTime() { return planSendTime; } public void setPlanSendTime(Date planSendTime) { this.planSendTime = planSendTime; } @Column(name ="template_id",nullable=true,length=32) public Integer getTemplateId() { return templateId; } public void setTemplateId(Integer templateId) { this.templateId = templateId; } @Column(name ="template_name",nullable=true,length=255) public String getTemplateName() { return templateName; } public void setTemplateName(String templateName) { this.templateName = templateName; } @Column(name ="template_data",nullable=true,length=500) public String getTemplateData() { return templateData; } public void setTemplateData(String templateData) { this.templateData = templateData; } @Column(name ="send_text",nullable=true,length=2000) public String getSendText() { return sendText; } public void setSendText(String sendText) { this.sendText = sendText; } @javax.persistence.Transient public List> getTemplateKVMap() { if(templateKVMap !=null){ return templateKVMap; } if(StringUtils.isBlank(templateData)) return null; JSONArray obj = JSONArray.fromObject(templateData); return (List>)obj; } public void setTemplateKVMap(List> templateKVMap) { this.templateKVMap = templateKVMap; } public void addTemplaeKv(String key,String value){ if(templateKVMap==null) templateKVMap = new ArrayList<>(); templateKVMap.add(Collections.singletonMap(key,value)); setTemplateData(parseTemplateKv()); } public String templateValue(String key){ List> list = getTemplateKVMap(); if(list==null) return null; for(Map map :list){ if(map.containsKey(key)){ return map.get(key); } } return null; } public String parseTemplateKv(){ if(templateKVMap==null || templateKVMap.isEmpty()){ return ""; } JSONArray obj = JSONArray.fromObject(templateKVMap); return obj.toString(); } @Column(name ="PROC_INST_ID",nullable=true,length=64) public java.lang.String getProcInstId() { return procInstId; } public void setProcInstId(java.lang.String procInstId) { this.procInstId = procInstId; } @Column(name ="STEP_NAME",nullable=true,length=50) public java.lang.String getStepName() { return stepName; } public void setStepName(java.lang.String stepName) { this.stepName = stepName; } @Column(name ="create_by_id",nullable=true,length=255) public String getCreateById() { return createById; } public void setCreateById(String createById) { this.createById = createById; } @Column(name ="status",nullable=true) public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } @Column(name ="cancel_time",nullable=true) public Date getCancelTime() { return cancelTime; } public void setCancelTime(Date cancelTime) { this.cancelTime = cancelTime; } @javax.persistence.Transient public String getBpmString() { if(status !=null && status==1){ return "已撤回"; } if(StringUtils.equals(bpmStatus,"1")){ return "待提交"; } if(StringUtils.equals(bpmStatus,"2")){ return "处理中"; } if(StringUtils.equals(bpmStatus,"3")){ return "已完成"; } return null; } public void setBpmString(String bpmString) { this.bpmString = bpmString; } @Column(name ="api_viewer",nullable=true) public String getApiViewer() { return apiViewer; } public void setApiViewer(String apiViewer) { this.apiViewer = apiViewer; } @Column(name ="wx_template_config",nullable=true) public String getWxTemplateConfig() { return wxTemplateConfig; } public void setWxTemplateConfig(String wxTemplateConfig) { this.wxTemplateConfig = wxTemplateConfig; } @Column(name ="url",nullable=true) public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } @Column(name ="file_index",nullable=true) public Integer getFileIndex() { return fileIndex; } public void setFileIndex(Integer fileIndex) { this.fileIndex = fileIndex; } /** * @return the uploadattr */ @javax.persistence.Transient public String getUploadattr() { return uploadattr; } /** * @param uploadattr the uploadattr to set */ public void setUploadattr(String uploadattr) { this.uploadattr = uploadattr; } @javax.persistence.Transient public String getAttachment() { return attachment; } public void setAttachment(String attachment) { this.attachment = attachment; } }