Jelajahi Sumber

增加消息索引表

dongbw 9 tahun lalu
induk
melakukan
8a719417c3

+ 5 - 3
search-api-b2b/src/main/java/com/uas/search/b2b/service/SearchService.java

@@ -157,17 +157,19 @@ public interface SearchService {
 		 * 器件信息表
 		 */
 		PRODUCT$COMPONENT("PRODUCT$COMPONENT"),
-
 		/**
-		 * 招标
+		 * 招标表
 		 */
 		PURC$TENDER("PURC$TENDER"),
+		/**
+		 * 消息表
+		 */
+		PURC$PAGINGRELEASEDETAIL("PURC$PAGINGRELEASEDETAIL"),
 
 		/**
 		 * 代采订单表
 		 */
 		PURC$DEPUTYORDERS("PURC$DEPUTYORDERS");
-
 		// TODO
 
 		private Table_name(String phrase) {

+ 11 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/dao/PagingReleaseDetailSimpleInfoDao.java

@@ -0,0 +1,11 @@
+package com.uas.search.console.b2b.dao;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+import com.uas.search.console.b2b.model.PagingReleaseDetailSimpleInfo;
+
+public interface PagingReleaseDetailSimpleInfoDao extends JpaRepository<PagingReleaseDetailSimpleInfo, Long>,
+		JpaSpecificationExecutor<PagingReleaseDetailSimpleInfo> {
+
+}

+ 11 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/dao/PagingReleaseSimpleInfoDao.java

@@ -0,0 +1,11 @@
+package com.uas.search.console.b2b.dao;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+import com.uas.search.console.b2b.model.PagingReleaseSimpleInfo;
+
+public interface PagingReleaseSimpleInfoDao
+		extends JpaRepository<PagingReleaseSimpleInfo, Long>, JpaSpecificationExecutor<PagingReleaseSimpleInfo> {
+
+}

+ 194 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/model/PagingReleaseDetailSimpleInfo.java

@@ -0,0 +1,194 @@
+package com.uas.search.console.b2b.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
+/**
+ * 
+ * 接收人详细表
+ *
+ */
+@Table(name = PagingReleaseDetailSimpleInfo.TABLE_NAME)
+@Entity
+public class PagingReleaseDetailSimpleInfo {
+
+	/**
+	 * 表名
+	 */
+	public static final String TABLE_NAME = "PURC$PAGINGRELEASEDETAIL";
+
+	/**
+	 * 各字段名
+	 */
+	public static final String ID_FIELD = "prd_id";
+
+	public static final String USERUU_FIELD = "prd_emuu";
+
+	public static final String VEND_FIELD = "prd_venduu";
+
+	public static final String USERNAME_FIELD = "prd_emname";
+
+	public static final String READSTATUS_FIELD = "prd_readstatus";
+
+	public static final String STATUS_FIELD = "prd_status";
+
+	public static final String PUSHSTATUS_FIELD = "prd_pushstatus";
+
+	public static final String TOTALSTATUS_FIELD = "prd_totalstatus";
+
+	public static final String MAIN_FIELD = "prd_prid";
+
+	@Id
+	@Column(name = ID_FIELD)
+	private Long id;
+
+	/**
+	 * 接收人UU
+	 */
+	@Column(name = USERUU_FIELD)
+	private String userUU;
+
+	/**
+	 * 接收人姓名
+	 */
+	@Column(name = USERNAME_FIELD)
+	private String userName;
+
+	/**
+	 * 阅读状态
+	 */
+	@Column(name = READSTATUS_FIELD)
+	private Short readStatus;
+
+	/**
+	 * 推送状态
+	 */
+	@Column(name = PUSHSTATUS_FIELD)
+	private Short pushStatus;
+
+	/**
+	 * 统计状态
+	 */
+	@Column(name = TOTALSTATUS_FIELD)
+	private Short totalStatus;
+
+	/**
+	 * 获取状态
+	 */
+	@Column(name = STATUS_FIELD)
+	private Short status;
+
+	/**
+	 * 接收人所在企业信息
+	 */
+	@OneToOne(cascade = { CascadeType.REFRESH })
+	@JoinColumn(name = VEND_FIELD, insertable = false, updatable = false)
+	private EnterpriseSimpleInfo enterprise;
+
+	/**
+	 * 消息主表
+	 */
+	@ManyToOne(cascade = CascadeType.ALL, optional = true)
+	@JoinColumn(name = MAIN_FIELD, nullable = false)
+	private PagingReleaseSimpleInfo pagingRelease;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getUserUU() {
+		return userUU;
+	}
+
+	public void setUserUU(String userUU) {
+		this.userUU = userUU;
+	}
+
+	public String getUserName() {
+		return userName;
+	}
+
+	public void setUserName(String userName) {
+		this.userName = userName;
+	}
+
+	public Short getReadStatus() {
+		return readStatus;
+	}
+
+	public void setReadStatus(Short readStatus) {
+		this.readStatus = readStatus;
+	}
+
+	public Short getPushStatus() {
+		return pushStatus;
+	}
+
+	public void setPushStatus(Short pushStatus) {
+		this.pushStatus = pushStatus;
+	}
+
+	public Short getTotalStatus() {
+		return totalStatus;
+	}
+
+	public void setTotalStatus(Short totalStatus) {
+		this.totalStatus = totalStatus;
+	}
+
+	public Short getStatus() {
+		return status;
+	}
+
+	public void setStatus(Short status) {
+		this.status = status;
+	}
+
+	public EnterpriseSimpleInfo getEnterprise() {
+		return enterprise;
+	}
+
+	public void setEnterprise(EnterpriseSimpleInfo enterprise) {
+		this.enterprise = enterprise;
+	}
+
+	public PagingReleaseSimpleInfo getPagingRelease() {
+		return pagingRelease;
+	}
+
+	public void setPagingRelease(PagingReleaseSimpleInfo pagingRelease) {
+		this.pagingRelease = pagingRelease;
+	}
+
+	@Override
+	public String toString() {
+		return "PagingReleaseDetailSimpleInfo [id=" + id + ", userUU=" + userUU + ", userName=" + userName
+				+ ", readStatus=" + readStatus + ", pushStatus=" + pushStatus + ", totalStatus=" + totalStatus
+				+ ", status=" + status + ", enterprise=" + enterprise + ", pagingRelease=" + pagingRelease + "]";
+	}
+
+	/**
+	 * 获取所有可以搜索的字段列名(索引的field名)
+	 * 
+	 * @return 可以搜索的字段列名
+	 */
+	public static List<String> getKeywordFields() {
+		List<String> fields = new ArrayList<>();
+		fields.add(MAIN_FIELD);
+		return fields;
+	}
+
+}

+ 165 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/model/PagingReleaseSimpleInfo.java

@@ -0,0 +1,165 @@
+package com.uas.search.console.b2b.model;
+
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
+/**
+ * 消息主表
+ */
+@Table(name = "purc$pagingrelease")
+@Entity
+public class PagingReleaseSimpleInfo {
+
+	@Id
+	@Column(name = "pr_id")
+	private Long id;
+
+	/**
+	 * 员工UU
+	 */
+	@Column(name = "pr_emuu")
+	private Long emUU;
+
+	/**
+	 * 员工名称
+	 */
+	@Column(name = "pr_emname")
+	private String emName;
+
+	/**
+	 * 日期
+	 */
+	@Column(name = "pr_date")
+	private Date date;
+
+	/**
+	 * 消息正文
+	 */
+	@Column(name = "pr_context")
+	private String context;
+
+	/**
+	 * 来源
+	 */
+	@Column(name = "pr_from")
+	private String from;
+
+	/**
+	 * 单号
+	 */
+	@Column(name = "pr_codevalue")
+	private String code;
+
+	/**
+	 * 标题
+	 */
+	@Column(name = "pr_title")
+	private String title;
+
+	/**
+	 * 类型
+	 */
+	@Column(name = "pr_type")
+	private String type;
+
+	/**
+	 * 所属企业
+	 */
+	@OneToOne
+	@JoinColumn(name = "pr_enuu", insertable = false, updatable = false)
+	private EnterpriseSimpleInfo vend;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getEmUU() {
+		return emUU;
+	}
+
+	public void setEmUU(Long emUU) {
+		this.emUU = emUU;
+	}
+
+	public String getEmName() {
+		return emName;
+	}
+
+	public void setEmName(String emName) {
+		this.emName = emName;
+	}
+
+	public Date getDate() {
+		return date;
+	}
+
+	public void setDate(Date date) {
+		this.date = date;
+	}
+
+	public String getContext() {
+		return context;
+	}
+
+	public void setContext(String context) {
+		this.context = context;
+	}
+
+	public String getFrom() {
+		return from;
+	}
+
+	public void setFrom(String from) {
+		this.from = from;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getTitle() {
+		return title;
+	}
+
+	public void setTitle(String title) {
+		this.title = title;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	public EnterpriseSimpleInfo getVend() {
+		return vend;
+	}
+
+	public void setVend(EnterpriseSimpleInfo vend) {
+		this.vend = vend;
+	}
+
+	@Override
+	public String toString() {
+		return "PagingReleaseSimpleInfo [id=" + id + ", emUU=" + emUU + ", emName=" + emName + ", date=" + date
+				+ ", context=" + context + ", from=" + from + ", code=" + code + ", title=" + title + ", type=" + type
+				+ ", vend=" + vend + "]";
+	}
+
+}

+ 4 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/util/ClassAndTableNameUtils.java

@@ -20,6 +20,7 @@ import com.uas.search.console.b2b.dao.MakeAcceptSimpleInfoDao;
 import com.uas.search.console.b2b.dao.MakeOrderChangeItemSimpleInfoDao;
 import com.uas.search.console.b2b.dao.MakeOrderSimpleInfoDao;
 import com.uas.search.console.b2b.dao.MakeReturnSimpleInfoDao;
+import com.uas.search.console.b2b.dao.PagingReleaseDetailSimpleInfoDao;
 import com.uas.search.console.b2b.dao.ProdSimpleInfoDao;
 import com.uas.search.console.b2b.dao.ProductComponentSimpleInfoDao;
 import com.uas.search.console.b2b.dao.PurcProofingapprovalSimpleInfoDao;
@@ -48,6 +49,7 @@ import com.uas.search.console.b2b.model.MakeAcceptSimpleInfo;
 import com.uas.search.console.b2b.model.MakeOrderChangeItemSimpleInfo;
 import com.uas.search.console.b2b.model.MakeOrderSimpleInfo;
 import com.uas.search.console.b2b.model.MakeReturnSimpleInfo;
+import com.uas.search.console.b2b.model.PagingReleaseDetailSimpleInfo;
 import com.uas.search.console.b2b.model.ProdSimpleInfo;
 import com.uas.search.console.b2b.model.ProductComponentSimpleInfo;
 import com.uas.search.console.b2b.model.PurcProofingapprovalSimpleInfo;
@@ -121,6 +123,7 @@ public class ClassAndTableNameUtils {
 		entityClasses.add(ProductComponentSimpleInfo.class);
 		entityClasses.add(PurchaseTenderSimpleInfo.class);
 		entityClasses.add(DeputyOrderSimpleInfo.class);
+		entityClasses.add(PagingReleaseDetailSimpleInfo.class);
 		// TODO 其他表
 
 		// entityClasses和entityDaoClasses对于表的添加顺序必须一致
@@ -153,6 +156,7 @@ public class ClassAndTableNameUtils {
 		entityDaoClasses.add(ProductComponentSimpleInfoDao.class);
 		entityDaoClasses.add(PurchaseTenderSimpleInfoDao.class);
 		entityDaoClasses.add(DeputyOrderSimpleInfoDao.class);
+		entityDaoClasses.add(PagingReleaseDetailSimpleInfoDao.class);
 		// TODO 其他表的Dao
 	}
 

+ 65 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/util/DocumentToObjectUtils.java

@@ -21,6 +21,8 @@ import com.uas.search.console.b2b.model.MakeOrderChangeItemSimpleInfo;
 import com.uas.search.console.b2b.model.MakeOrderSimpleInfo;
 import com.uas.search.console.b2b.model.MakeReturnItemSimpleInfo;
 import com.uas.search.console.b2b.model.MakeReturnSimpleInfo;
+import com.uas.search.console.b2b.model.PagingReleaseDetailSimpleInfo;
+import com.uas.search.console.b2b.model.PagingReleaseSimpleInfo;
 import com.uas.search.console.b2b.model.ProdSimpleInfo;
 import com.uas.search.console.b2b.model.ProductComponentSimpleInfo;
 import com.uas.search.console.b2b.model.ProductSimpleInfo;
@@ -139,6 +141,8 @@ public class DocumentToObjectUtils {
 			return (T) toDeputyOrder(document);
 		} else if (clazz == PurchaseTenderSimpleInfo.class) {
 			return (T) toPurchaseTenderSimpleInfo(document);
+		} else if (clazz == PagingReleaseDetailSimpleInfo.class) {
+			return (T) toPagingReleaseDetailSimpleInfo(document);
 		}
 
 		// TODO 其他表
@@ -1453,6 +1457,67 @@ public class DocumentToObjectUtils {
 		return purchasetender;
 	}
 
+	/**
+	 * 将Document转换成PagingReleaseDetailSimpleInfo对象
+	 * 
+	 * @param document
+	 * @return
+	 */
+	private static PagingReleaseDetailSimpleInfo toPagingReleaseDetailSimpleInfo(Document document) {
+		if (document == null) {
+			return null;
+		}
+		Table_name tableName = ClassAndTableNameUtils.toTableName(PagingReleaseDetailSimpleInfo.class);
+		PagingReleaseDetailSimpleInfo pagingReleaseDetail = new PagingReleaseDetailSimpleInfo();
+		pagingReleaseDetail.setId(Long.valueOf(
+				document.get(ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.ID_FIELD))));
+		String userName = document
+				.get(ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.USERNAME_FIELD));
+		if (userName != null) {
+			pagingReleaseDetail.setUserName(userName);
+		}
+		String userUU = document
+				.get(ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.USERUU_FIELD));
+		if (userUU != null) {
+			pagingReleaseDetail.setUserUU(userUU);
+		}
+		String status = document
+				.get(ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.STATUS_FIELD));
+		if (status != null) {
+			pagingReleaseDetail.setStatus(Short.valueOf(status));
+		}
+		String readStatus = document
+				.get(ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.READSTATUS_FIELD));
+		if (readStatus != null) {
+			pagingReleaseDetail.setReadStatus(Short.valueOf(readStatus));
+		}
+		String pushStatus = document
+				.get(ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.PUSHSTATUS_FIELD));
+		if (pushStatus != null) {
+			pagingReleaseDetail.setPushStatus(Short.valueOf(pushStatus));
+		}
+		String totalStatus = document
+				.get(ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.TOTALSTATUS_FIELD));
+		if (totalStatus != null) {
+			pagingReleaseDetail.setTotalStatus(Short.valueOf(totalStatus));
+		}
+		if (null != document
+				.get(ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.VEND_FIELD))) {
+			pagingReleaseDetail.setEnterprise(JSONObject.parseObject(
+					document.get(
+							ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.VEND_FIELD)),
+					EnterpriseSimpleInfo.class));
+		}
+		if (null != document
+				.get(ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.MAIN_FIELD))) {
+			pagingReleaseDetail.setPagingRelease(JSONObject.parseObject(
+					document.get(
+							ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.MAIN_FIELD)),
+					PagingReleaseSimpleInfo.class));
+		}
+		return pagingReleaseDetail;
+	}
+
 	/**
 	 * 将json字符串转为Set<T>对象
 	 * 

+ 64 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/util/ObjectToDocumentUtils.java

@@ -19,6 +19,7 @@ import com.uas.search.console.b2b.model.MakeAcceptSimpleInfo;
 import com.uas.search.console.b2b.model.MakeOrderChangeItemSimpleInfo;
 import com.uas.search.console.b2b.model.MakeOrderSimpleInfo;
 import com.uas.search.console.b2b.model.MakeReturnSimpleInfo;
+import com.uas.search.console.b2b.model.PagingReleaseDetailSimpleInfo;
 import com.uas.search.console.b2b.model.ProdSimpleInfo;
 import com.uas.search.console.b2b.model.ProductComponentSimpleInfo;
 import com.uas.search.console.b2b.model.PurcProofingapprovalSimpleInfo;
@@ -119,6 +120,8 @@ public class ObjectToDocumentUtils {
 			return toDocument((DeputyOrderSimpleInfo) object);
 		} else if (object instanceof PurchaseTenderSimpleInfo) {
 			return toDocument((PurchaseTenderSimpleInfo) object);
+		} else if (object instanceof PagingReleaseDetailSimpleInfo) {
+			return toDocument((PagingReleaseDetailSimpleInfo) object);
 		}
 		// TODO 其他表
 		else {
@@ -1752,4 +1755,65 @@ public class ObjectToDocumentUtils {
 				tender.getId()));
 		return document;
 	}
+
+	/**
+	 * 将PagingReleaseDetailSimpleInfo 转换成Document
+	 * 
+	 * @param pagingReleaseDetail
+	 * @return
+	 */
+	public static Document toDocument(PagingReleaseDetailSimpleInfo pagingReleaseDetail) {
+		if (pagingReleaseDetail == null || pagingReleaseDetail.getId() == null) {
+			return null;
+		}
+		Table_name tableName = ClassAndTableNameUtils.toTableName(PagingReleaseDetailSimpleInfo.class);
+		Document document = new Document();
+		// 不能用LongField,否则后续实时更新索引时,方法updateDocument(new Term("", ""),
+		// doc)无法根据id进行更新
+		document.add(
+				new StringField(ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.ID_FIELD),
+						String.valueOf(pagingReleaseDetail.getId()), Store.YES));
+		if (null != pagingReleaseDetail.getUserUU()) {
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.USERUU_FIELD),
+					String.valueOf(pagingReleaseDetail.getUserUU()), Store.YES));
+		}
+		if (null != pagingReleaseDetail.getUserName()) {
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.USERNAME_FIELD),
+					String.valueOf(pagingReleaseDetail.getUserName()), Store.YES));
+		}
+		if (null != pagingReleaseDetail.getStatus()) {
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.STATUS_FIELD),
+					String.valueOf(pagingReleaseDetail.getStatus()), Store.YES));
+		}
+		if (null != pagingReleaseDetail.getReadStatus()) {
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.READSTATUS_FIELD),
+					String.valueOf(pagingReleaseDetail.getReadStatus()), Store.YES));
+		}
+		if (null != pagingReleaseDetail.getPushStatus()) {
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.PUSHSTATUS_FIELD),
+					String.valueOf(pagingReleaseDetail.getPushStatus()), Store.YES));
+		}
+		if (null != pagingReleaseDetail.getTotalStatus()) {
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.TOTALSTATUS_FIELD),
+					String.valueOf(pagingReleaseDetail.getTotalStatus()), Store.YES));
+		}
+		if (null != pagingReleaseDetail.getEnterprise()) {
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.VEND_FIELD),
+					JSON.toJSONString(pagingReleaseDetail.getEnterprise()), Store.YES));
+		}
+		if (null != pagingReleaseDetail.getPagingRelease()) {
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PagingReleaseDetailSimpleInfo.MAIN_FIELD),
+					JSONObject.toJSONString(pagingReleaseDetail.getPagingRelease()), Store.YES));
+		}
+
+		return document;
+	}
 }