Kaynağa Gözat

新增品牌表索引

dongbw 9 yıl önce
ebeveyn
işleme
405842b585

+ 7 - 2
search-api-b2b/src/main/java/com/uas/search/b2b/service/SearchService.java

@@ -173,9 +173,14 @@ public interface SearchService {
 		PURC$PAGINGRELEASEDETAIL("PURC$PAGINGRELEASEDETAIL"),
 
 		/**
-		 * 消息表
+		 * 供应商表
+		 */
+		PURC$VENDORS("PURC$VENDORS"),
+
+		/**
+		 * 品牌表
 		 */
-		PURC$VENDORS("PURC$VENDORS");
+		PRODUCT$BRAND("PRODUCT$BRAND");
 		// TODO
 
 		private Table_name(String phrase) {

+ 11 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/dao/ProductBrandSimpleInfoDao.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.ProductBrandSimpleInfo;
+
+public interface ProductBrandSimpleInfoDao
+		extends JpaRepository<ProductBrandSimpleInfo, Long>, JpaSpecificationExecutor<ProductBrandSimpleInfo> {
+
+}

+ 1 - 1
search-console-b2b/src/main/java/com/uas/search/console/b2b/model/BrandSimpleInfo.java

@@ -6,7 +6,7 @@ import javax.persistence.Id;
 import javax.persistence.Table;
 
 @Entity
-@Table(name = "product$brand")
+@Table(name = "PRODUCT$BRAND")
 public class BrandSimpleInfo {
 
 	/**

+ 125 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/model/ProductBrandSimpleInfo.java

@@ -0,0 +1,125 @@
+package com.uas.search.console.b2b.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = ProductBrandSimpleInfo.TABLE_NAME)
+public class ProductBrandSimpleInfo {
+
+	/**
+	 * 表名
+	 */
+	public static final String TABLE_NAME = "PRODUCT$BRAND";
+
+	/**
+	 * 各字段列名(也是存储索引时的field名)
+	 */
+	public static final String ID_FIELD = "br_id";
+
+	public static final String UUID_FIELD = "br_uuid";
+
+	public static final String NAMECN_FIELD = "br_name_cn";
+
+	public static final String NAMEEN_FIELD = "br_name_en";
+
+	public static final String VENDOR_FIELD = "br_vendor";
+
+	/**
+	 * id
+	 */
+	@Id
+	@Column(name = ID_FIELD)
+	private Long id;
+
+	/**
+	 * uuid
+	 */
+	@Column(name = UUID_FIELD)
+	private String uuid;
+
+	/**
+	 * 品牌中文名
+	 */
+	@Column(name = NAMECN_FIELD)
+	private String nameCn;
+
+	/**
+	 * 品牌英文名
+	 */
+	@Column(name = NAMEEN_FIELD)
+	private String nameEn;
+
+	/**
+	 * 供应商名
+	 */
+	@Column(name = VENDOR_FIELD)
+	private String vendor;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(String uuid) {
+		this.uuid = uuid;
+	}
+
+	public String getNameCn() {
+		return nameCn;
+	}
+
+	public void setNameCn(String nameCn) {
+		this.nameCn = nameCn;
+	}
+
+	public String getNameEn() {
+		return nameEn;
+	}
+
+	public void setNameEn(String nameEn) {
+		this.nameEn = nameEn;
+	}
+
+	public String getVendor() {
+		return vendor;
+	}
+
+	public void setVendor(String vendor) {
+		this.vendor = vendor;
+	}
+
+	@Override
+	public String toString() {
+		return "ProductBrandSimpleInfo [id=" + id + ", uuid=" + uuid + ", nameCn=" + nameCn + ", nameEn=" + nameEn
+				+ ", vendor=" + vendor + "]";
+	}
+
+	/**
+	 * 获取除了status外的所有字段的列名(field名)
+	 * 
+	 * @return
+	 */
+	public static List<String> getKeywordFields() {
+		List<String> fields = new ArrayList<>();
+		fields.add(UUID_FIELD);
+		fields.add(NAMECN_FIELD);
+		fields.add(NAMEEN_FIELD);
+		fields.add(VENDOR_FIELD);
+		return fields;
+	}
+
+
+}

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

@@ -22,6 +22,7 @@ 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.ProductBrandSimpleInfoDao;
 import com.uas.search.console.b2b.dao.ProductComponentSimpleInfoDao;
 import com.uas.search.console.b2b.dao.PurcProofingapprovalSimpleInfoDao;
 import com.uas.search.console.b2b.dao.PurcProofingsendSimpleInfoDao;
@@ -52,6 +53,7 @@ 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.ProductBrandSimpleInfo;
 import com.uas.search.console.b2b.model.ProductComponentSimpleInfo;
 import com.uas.search.console.b2b.model.PurcProofingapprovalSimpleInfo;
 import com.uas.search.console.b2b.model.PurcProofingsendSimpleInfo;
@@ -127,6 +129,7 @@ public class ClassAndTableNameUtils {
 		entityClasses.add(DeputyOrderSimpleInfo.class);
 		entityClasses.add(PagingReleaseDetailSimpleInfo.class);
 		entityClasses.add(VendorSimpleInfo.class);
+		entityClasses.add(ProductBrandSimpleInfo.class);
 		// TODO 其他表
 
 		// entityClasses和entityDaoClasses对于表的添加顺序必须一致
@@ -161,6 +164,7 @@ public class ClassAndTableNameUtils {
 		entityDaoClasses.add(DeputyOrderSimpleInfoDao.class);
 		entityDaoClasses.add(PagingReleaseDetailSimpleInfoDao.class);
 		entityDaoClasses.add(VendorSimpleInfoDao.class);
+		entityDaoClasses.add(ProductBrandSimpleInfoDao.class);
 		// TODO 其他表的Dao
 	}
 

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

@@ -24,6 +24,7 @@ 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.ProductBrandSimpleInfo;
 import com.uas.search.console.b2b.model.ProductComponentSimpleInfo;
 import com.uas.search.console.b2b.model.ProductSimpleInfo;
 import com.uas.search.console.b2b.model.PurcProofingapprovalSimpleInfo;
@@ -147,6 +148,8 @@ public class DocumentToObjectUtils {
 			return (T) toPagingReleaseDetailSimpleInfo(document);
 		} else if (clazz == VendorSimpleInfo.class) {
 			return (T) toVendorSimpleInfo(document);
+		} else if (clazz == ProductBrandSimpleInfo.class) {
+			return (T) toProductBrandSimpleInfo(document);
 		}
 
 		// TODO 其他表
@@ -1559,6 +1562,40 @@ public class DocumentToObjectUtils {
 		return vendorSimpleInfo;
 	}
 
+	/**
+	 * 将Document转换成ProdctBrandSimpleInfo对象
+	 * 
+	 * @param document
+	 * @return
+	 */
+	private static ProductBrandSimpleInfo toProductBrandSimpleInfo(Document document) {
+		if (document == null) {
+			return null;
+		}
+		Table_name tableName = ClassAndTableNameUtils.toTableName(ProductBrandSimpleInfo.class);
+		ProductBrandSimpleInfo productBrandSimpleInfo = new ProductBrandSimpleInfo();
+		productBrandSimpleInfo.setId(Long.valueOf(
+				document.get(ClassAndTableNameUtils.combineField(tableName, ProductBrandSimpleInfo.ID_FIELD))));
+		String uuid = document.get(ClassAndTableNameUtils.combineField(tableName, ProductBrandSimpleInfo.UUID_FIELD));
+		if (uuid != null) {
+			productBrandSimpleInfo.setUuid(uuid);
+		}
+		if (null != document.get(ClassAndTableNameUtils.combineField(tableName, ProductBrandSimpleInfo.NAMECN_FIELD))) {
+			productBrandSimpleInfo.setNameCn(
+					document.get(ClassAndTableNameUtils.combineField(tableName, ProductBrandSimpleInfo.NAMECN_FIELD)));
+		}
+		if (null != document.get(ClassAndTableNameUtils.combineField(tableName, ProductBrandSimpleInfo.NAMEEN_FIELD))) {
+			productBrandSimpleInfo.setNameEn(
+					document.get(ClassAndTableNameUtils.combineField(tableName, ProductBrandSimpleInfo.NAMEEN_FIELD)));
+		}
+		if (null != document.get(ClassAndTableNameUtils.combineField(tableName, ProductBrandSimpleInfo.VENDOR_FIELD))) {
+			productBrandSimpleInfo.setVendor(
+					document.get(ClassAndTableNameUtils.combineField(tableName, ProductBrandSimpleInfo.VENDOR_FIELD)));
+		}
+
+		return productBrandSimpleInfo;
+	}
+
 	/**
 	 * 将json字符串转为Set<T>对象
 	 * 

+ 56 - 7
search-console-b2b/src/main/java/com/uas/search/console/b2b/util/ObjectToDocumentUtils.java

@@ -21,6 +21,7 @@ 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.ProductBrandSimpleInfo;
 import com.uas.search.console.b2b.model.ProductComponentSimpleInfo;
 import com.uas.search.console.b2b.model.PurcProofingapprovalSimpleInfo;
 import com.uas.search.console.b2b.model.PurcProofingsendSimpleInfo;
@@ -125,6 +126,8 @@ public class ObjectToDocumentUtils {
 			return toDocument((PagingReleaseDetailSimpleInfo) object);
 		} else if (object instanceof VendorSimpleInfo) {
 			return toDocument((VendorSimpleInfo) object);
+		} else if (object instanceof ProductBrandSimpleInfo) {
+			return toDocument((ProductBrandSimpleInfo) object);
 		}
 		// TODO 其他表
 		else {
@@ -185,10 +188,10 @@ public class ObjectToDocumentUtils {
 		document.add(new LongField(ClassAndTableNameUtils.combineField(tableName, PurchaseOrderSimpleInfo.DATE_FIELD),
 				purchaseOrder.getDate().getTime(), Store.YES));
 		// enterprise、vend和orderItems以json的格式存储
-		document.add(new StringField(
+		document.add(new TextField(
 				ClassAndTableNameUtils.combineField(tableName, PurchaseOrderSimpleInfo.ENTERPRISE_FIELD),
 				JSONObject.toJSONString(purchaseOrder.getEnterprise()), Store.YES));
-		document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, PurchaseOrderSimpleInfo.VEND_FIELD),
+		document.add(new TextField(ClassAndTableNameUtils.combineField(tableName, PurchaseOrderSimpleInfo.VEND_FIELD),
 				JSONObject.toJSONString(purchaseOrder.getVend()), Store.YES));
 		if (!CollectionUtils.isEmpty(purchaseOrder.getOrderItems())) {
 			document.add(
@@ -245,9 +248,9 @@ public class ObjectToDocumentUtils {
 				makeOrder.getDate().getTime(), Store.YES));
 		// enterprise、vend和orderItems以json的格式存储
 		document.add(
-				new StringField(ClassAndTableNameUtils.combineField(tableName, MakeOrderSimpleInfo.ENTERPRISE_FIELD),
+				new TextField(ClassAndTableNameUtils.combineField(tableName, MakeOrderSimpleInfo.ENTERPRISE_FIELD),
 						JSONObject.toJSONString(makeOrder.getEnterprise()), Store.YES));
-		document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, MakeOrderSimpleInfo.VEND_FIELD),
+		document.add(new TextField(ClassAndTableNameUtils.combineField(tableName, MakeOrderSimpleInfo.VEND_FIELD),
 				JSONObject.toJSONString(makeOrder.getVend()), Store.YES));
 		if (makeOrder.getProduct() != null) {
 			document.add(
@@ -297,9 +300,10 @@ public class ObjectToDocumentUtils {
 		}
 		// vend和items以json的格式存储
 		document.add(
-				new StringField(ClassAndTableNameUtils.combineField(tableName, PurchaseAcceptSimpleInfo.VEND_FIELD),
+				new TextField(ClassAndTableNameUtils.combineField(tableName, PurchaseAcceptSimpleInfo.VEND_FIELD),
 						JSONObject.toJSONString(purcAccept.getVend()), Store.YES));
-		document.add(new StringField(
+		document.add(
+				new TextField(
 				ClassAndTableNameUtils.combineField(tableName, PurchaseAcceptSimpleInfo.ENTERPRISE_FIELD),
 				JSONObject.toJSONString(purcAccept.getEnterprise()), Store.YES));
 		if (!CollectionUtils.isEmpty(purcAccept.getAcceptItems())) {
@@ -348,7 +352,7 @@ public class ObjectToDocumentUtils {
 				new StringField(ClassAndTableNameUtils.combineField(tableName, SaleQuotationSimpleInfo.STATUS_FIELD),
 						String.valueOf(saleQuotation.getStatus()), Store.YES));
 		// vend和items以json的格式存储
-		document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, SaleQuotationSimpleInfo.VEND_FIELD),
+		document.add(new TextField(ClassAndTableNameUtils.combineField(tableName, SaleQuotationSimpleInfo.VEND_FIELD),
 				JSONObject.toJSONString(saleQuotation.getVend()), Store.YES));
 		document.add(new StringField(
 				ClassAndTableNameUtils.combineField(tableName, SaleQuotationSimpleInfo.ENTERPRISE_FIELD),
@@ -1879,4 +1883,49 @@ public class ObjectToDocumentUtils {
 
 		return document;
 	}
+
+	/**
+	 * 将ProductBrandSimpleInfo 转换成Document
+	 * 
+	 * @param productBrandSimpleInfo
+	 * @return
+	 */
+	public static Document toDocument(ProductBrandSimpleInfo productBrandSimpleInfo) {
+		if (productBrandSimpleInfo == null || productBrandSimpleInfo.getId() == null) {
+			return null;
+		}
+		Table_name tableName = ClassAndTableNameUtils.toTableName(ProductBrandSimpleInfo.class);
+		Document document = new Document();
+		// 不能用LongField,否则后续实时更新索引时,方法updateDocument(new Term("", ""),
+		// doc)无法根据id进行更新
+		document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, ProductBrandSimpleInfo.ID_FIELD),
+				String.valueOf(productBrandSimpleInfo.getId()), Store.YES));
+		if (null != productBrandSimpleInfo.getUuid()) {
+			document.add(
+					new StringField(ClassAndTableNameUtils.combineField(tableName, ProductBrandSimpleInfo.UUID_FIELD),
+							String.valueOf(productBrandSimpleInfo.getUuid()), Store.YES));
+		}
+		if (null != productBrandSimpleInfo.getNameCn()) {
+			document.add(
+					new StringField(ClassAndTableNameUtils.combineField(tableName, ProductBrandSimpleInfo.NAMECN_FIELD),
+							JSON.toJSONString(productBrandSimpleInfo.getNameCn()), Store.YES));
+		}
+		if (null != productBrandSimpleInfo.getNameEn()) {
+			document.add(
+					new StringField(ClassAndTableNameUtils.combineField(tableName, ProductBrandSimpleInfo.NAMEEN_FIELD),
+							JSON.toJSONString(productBrandSimpleInfo.getNameEn()), Store.YES));
+		}
+		if (null != productBrandSimpleInfo.getVendor()) {
+			document.add(
+					new StringField(ClassAndTableNameUtils.combineField(tableName, ProductBrandSimpleInfo.VENDOR_FIELD),
+							JSON.toJSONString(productBrandSimpleInfo.getVendor()), Store.YES));
+		}
+
+		// 排序字段
+		document.add(new NumericDocValuesField(
+				ClassAndTableNameUtils.combineField(tableName, ProductBrandSimpleInfo.ID_FIELD),
+				productBrandSimpleInfo.getId()));
+
+		return document;
+	}
 }