dongbw 8 лет назад
Родитель
Сommit
2182620e83

+ 6 - 1
search-api-b2b/src/main/java/com/uas/search/b2b/service/SearchService.java

@@ -241,7 +241,12 @@ public interface SearchService {
 		/**
 		 * 航天开票
 		 */
-		PURC$APBILLOUT("PURC$APBILLOUT");
+		PURC$APBILLOUT("PURC$APBILLOUT"),
+
+		/**
+		 * 招标提问单
+		 */
+		SALE$TENDERQUESTION("SALE$TENDERQUESTION");
 		// TODO
 
 		private Table_name(String phrase) {

+ 14 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/dao/SaleTenderQuestionSimpleInfoDao.java

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

+ 152 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/model/PurchaseTenderAnswer.java

@@ -0,0 +1,152 @@
+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$tenderanswer")
+@Entity
+public class PurchaseTenderAnswer {
+
+	@Id
+	@Column(name = "pta_id")
+	private Long id;
+
+	/**
+	 * 答案编号
+	 */
+	@Column(name = "pta_code")
+	private String code;
+
+	/**
+	 * 招标企业UU
+	 */
+	@Column(name = "pta_enuu")
+	private Long enUU;
+
+	/**
+	 * 招标企业
+	 */
+	@OneToOne
+	@JoinColumn(name = "pta_enuu", insertable = false, updatable = false)
+	private EnterpriseSimpleInfo enterprise;
+
+	/**
+	 * 招标编号
+	 */
+	@Column(name = "pta_tendercode")
+	private String tenderCode;
+
+	/**
+	 * 招标标题
+	 */
+	@Column(name = "pta_tendertitle")
+	private String tenderTitle;
+
+	/**
+	 * 答疑截止时间
+	 */
+	@Column(name = "pta_questionenddate")
+	private Date questionEndDate;
+
+	/**
+	 * 录入人
+	 */
+	@Column(name = "pta_recorder")
+	private String recorder;
+
+	/**
+	 * 答疑备注
+	 */
+	@Column(name = "pta_remark")
+	private String remark;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public Long getEnUU() {
+		return enUU;
+	}
+
+	public void setEnUU(Long enUU) {
+		this.enUU = enUU;
+	}
+
+	public EnterpriseSimpleInfo getEnterprise() {
+		return enterprise;
+	}
+
+	public void setEnterprise(EnterpriseSimpleInfo enterprise) {
+		this.enterprise = enterprise;
+	}
+
+	public String getTenderCode() {
+		return tenderCode;
+	}
+
+	public void setTenderCode(String tenderCode) {
+		this.tenderCode = tenderCode;
+	}
+
+	public String getTenderTitle() {
+		return tenderTitle;
+	}
+
+	public void setTenderTitle(String tenderTitle) {
+		this.tenderTitle = tenderTitle;
+	}
+
+	public Date getQuestionEndDate() {
+		return questionEndDate;
+	}
+
+	public void setQuestionEndDate(Date questionEndDate) {
+		this.questionEndDate = questionEndDate;
+	}
+
+	public String getRecorder() {
+		return recorder;
+	}
+
+	public void setRecorder(String recorder) {
+		this.recorder = recorder;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	@Override
+	public String toString() {
+		return "PurchaseTenderAnswer [id=" + id + ", code=" + code + ", enUU=" + enUU + ", enterprise=" + enterprise
+				+ ", tenderCode=" + tenderCode + ", tenderTitle=" + tenderTitle + ", questionEndDate=" + questionEndDate
+				+ ", recorder=" + recorder + ", remark=" + remark + "]";
+	}
+
+
+}

+ 227 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/model/SaleTenderQuestionSimpleInfo.java

@@ -0,0 +1,227 @@
+package com.uas.search.console.b2b.model;
+
+import java.util.ArrayList;
+import java.util.Date;
+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 = SaleTenderQuestionSimpleInfo.TABLE_NAME)
+@Entity
+public class SaleTenderQuestionSimpleInfo {
+
+	/**
+	 * 表名
+	 */
+	public static final String TABLE_NAME = "SALE$TENDERQUESTION";
+
+	/**
+	 * 各字段列名(也是存储索引时的field名)
+	 */
+	public static final String ID_FIELD = "stq_id";
+
+	public static final String CODE_FIELD = "stq_code";
+
+	public static final String VEND_FIELD = "stq_venduu";
+
+	public static final String DATE_FIELD = "stq_indate";
+
+	public static final String REPLYDATE_FIELD = "stq_replydate";
+
+	public static final String TOPIC_FIELD = "stq_topic";
+
+	public static final String STATUS_FIELD = "stq_status";
+
+	public static final String CONTENT_FIELD = "stq_content";
+
+	public static final String ANSWER_FIELD = "stq_ptaid";
+
+    @Id
+	@Column(name = ID_FIELD)
+    private Long id;
+
+    /**
+     * 提问编号
+     */
+	@Column(name = CODE_FIELD)
+    private String code;
+
+    /**
+     * 投标企业UU
+     */
+	@Column(name = VEND_FIELD)
+    private Long vendUU;
+
+    /**
+     * 投标企业
+     */
+    @OneToOne
+	@JoinColumn(name = VEND_FIELD, insertable = false, updatable = false)
+	private EnterpriseSimpleInfo vendor;
+
+    /**
+     * 提出时间
+     */
+	@Column(name = DATE_FIELD)
+    private Date inDate;
+
+    /**
+     * 回复时间
+     */
+	@Column(name = REPLYDATE_FIELD)
+    private Date replyDate;
+
+    /**
+     * 提问主题
+     */
+	@Column(name = TOPIC_FIELD)
+    private String topic;
+
+    /**
+     * 处理状态
+     */
+	@Column(name = STATUS_FIELD)
+    private Short status;
+
+    /**
+     * 咨询内容
+     */
+	@Column(name = CONTENT_FIELD)
+    private String content;
+
+    /**
+     * 招标答疑单
+     */
+    @ManyToOne(cascade = CascadeType.REFRESH)
+	@JoinColumn(name = ANSWER_FIELD, nullable = false)
+	private PurchaseTenderAnswer anwser;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public Long getVendUU() {
+		return vendUU;
+	}
+
+	public void setVendUU(Long vendUU) {
+		this.vendUU = vendUU;
+	}
+
+	public EnterpriseSimpleInfo getVendor() {
+		return vendor;
+	}
+
+	public void setVendor(EnterpriseSimpleInfo vendor) {
+		this.vendor = vendor;
+	}
+
+	public Date getInDate() {
+		return inDate;
+	}
+
+	public void setInDate(Date inDate) {
+		this.inDate = inDate;
+	}
+
+	public Date getReplyDate() {
+		return replyDate;
+	}
+
+	public void setReplyDate(Date replyDate) {
+		this.replyDate = replyDate;
+	}
+
+	public String getTopic() {
+		return topic;
+	}
+
+
+	public void setTopic(String topic) {
+		this.topic = topic;
+	}
+
+
+
+	public Short getStatus() {
+		return status;
+	}
+
+
+
+	public void setStatus(Short status) {
+		this.status = status;
+	}
+
+
+
+	public String getContent() {
+		return content;
+	}
+
+
+
+	public void setContent(String content) {
+		this.content = content;
+	}
+
+
+
+	public PurchaseTenderAnswer getAnwser() {
+		return anwser;
+	}
+
+
+
+	public void setAnwser(PurchaseTenderAnswer anwser) {
+		this.anwser = anwser;
+	}
+
+	/**
+	 * 获取所有可以搜索的字段列名(索引的field名)
+	 * 
+	 * @return 可以搜索的字段列名
+	 */
+	public static List<String> getKeywordFields() {
+		List<String> fields = new ArrayList<>();
+		// fields.add(ENTERPRISE_FIELD);
+		fields.add(CODE_FIELD);
+		fields.add(VEND_FIELD);
+		fields.add(TOPIC_FIELD);
+		fields.add(CONTENT_FIELD);
+		fields.add(ANSWER_FIELD);
+		return fields;
+	}
+
+	@Override
+	public String toString() {
+		return "SaleTenderQuestionSimpleInfo [id=" + id + ", code=" + code + ", vendUU=" + vendUU + ", vendor=" + vendor
+				+ ", inDate=" + inDate + ", replyDate=" + replyDate + ", topic=" + topic + ", status=" + status
+				+ ", content=" + content + "]";
+	}
+
+
+}

+ 17 - 12
search-console-b2b/src/main/java/com/uas/search/console/b2b/util/ClassAndTableNameUtils.java

@@ -1,10 +1,19 @@
 package com.uas.search.console.b2b.util;
 
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.data.jpa.repository.JpaRepository;
+
 import com.uas.search.b2b.exception.SearchException;
 import com.uas.search.b2b.service.SearchService.Table_name;
 import com.uas.search.console.b2b.core.util.ContextUtils;
-import com.uas.search.console.b2b.dao.*;
-import com.uas.search.console.b2b.model.*;
 import com.uas.search.console.b2b.dao.B2BSaleTenderSimpleInfoDao;
 import com.uas.search.console.b2b.dao.CartSimpleInfoDao;
 import com.uas.search.console.b2b.dao.CustmerSimpleInfoDao;
@@ -28,6 +37,7 @@ import com.uas.search.console.b2b.dao.PurcInquirySimpleInfoDao;
 import com.uas.search.console.b2b.dao.PurcProofingapprovalSimpleInfoDao;
 import com.uas.search.console.b2b.dao.PurcProofingsendSimpleInfoDao;
 import com.uas.search.console.b2b.dao.PurchaseAcceptSimpleInfoDao;
+import com.uas.search.console.b2b.dao.PurchaseApBillOutSimpleInfoDao;
 import com.uas.search.console.b2b.dao.PurchaseApbillSimpleInfoDao;
 import com.uas.search.console.b2b.dao.PurchaseApcheckSimpleInfoDao;
 import com.uas.search.console.b2b.dao.PurchaseBadinSimpleInfoDao;
@@ -45,6 +55,7 @@ import com.uas.search.console.b2b.dao.PurchaseTenderSimpleInfoDao;
 import com.uas.search.console.b2b.dao.SaleArcheckSimpleInfoDao;
 import com.uas.search.console.b2b.dao.SaleQuotationSimpleInfoDao;
 import com.uas.search.console.b2b.dao.SaleSendSimpleInfoDao;
+import com.uas.search.console.b2b.dao.SaleTenderQuestionSimpleInfoDao;
 import com.uas.search.console.b2b.dao.VendorSimpleInfoDao;
 import com.uas.search.console.b2b.model.B2BSaleTenderSimpleInfo;
 import com.uas.search.console.b2b.model.CartSimpleInfo;
@@ -69,6 +80,7 @@ import com.uas.search.console.b2b.model.PurcInquirySimpleInfo;
 import com.uas.search.console.b2b.model.PurcProofingapprovalSimpleInfo;
 import com.uas.search.console.b2b.model.PurcProofingsendSimpleInfo;
 import com.uas.search.console.b2b.model.PurchaseAcceptSimpleInfo;
+import com.uas.search.console.b2b.model.PurchaseApBillOutSimpleInfo;
 import com.uas.search.console.b2b.model.PurchaseApCheckSimpleInfo;
 import com.uas.search.console.b2b.model.PurchaseApbillSimpleInfo;
 import com.uas.search.console.b2b.model.PurchaseBadinSimpleInfo;
@@ -86,19 +98,10 @@ import com.uas.search.console.b2b.model.PurchaseTenderSimpleInfo;
 import com.uas.search.console.b2b.model.SaleArcheckSimpleInfo;
 import com.uas.search.console.b2b.model.SaleQuotationSimpleInfo;
 import com.uas.search.console.b2b.model.SaleSendSimpleInfo;
+import com.uas.search.console.b2b.model.SaleTenderQuestionSimpleInfo;
 import com.uas.search.console.b2b.model.VendorSimpleInfo;
 import com.uas.search.console.b2b.platformmanager.dao.UserSpaceDetailSimpleInfoDao;
 import com.uas.search.console.b2b.platformmanager.model.UserSpaceDetailSimpleInfo;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
 
 
 /**
@@ -166,6 +169,7 @@ public class ClassAndTableNameUtils {
 		entityClasses.add(KindSimpleInfo.class);
 		entityClasses.add(B2BSaleTenderSimpleInfo.class);
 		entityClasses.add(PurchaseApBillOutSimpleInfo.class);
+		entityClasses.add(SaleTenderQuestionSimpleInfo.class);
 		// TODO 其他表
 
 		// entityClasses和entityDaoClasses对于表的添加顺序必须一致
@@ -213,6 +217,7 @@ public class ClassAndTableNameUtils {
 		entityDaoClasses.add(KindSimpleInfoDao.class);
 		entityDaoClasses.add(B2BSaleTenderSimpleInfoDao.class);
 		entityDaoClasses.add(PurchaseApBillOutSimpleInfoDao.class);
+		entityDaoClasses.add(SaleTenderQuestionSimpleInfoDao.class);
 		// TODO 其他表的Dao
 	}
 

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

@@ -70,6 +70,7 @@ import com.uas.search.console.b2b.model.PurchaseProofingItemSimpleInfo;
 import com.uas.search.console.b2b.model.PurchaseProofingSimpleInfo;
 import com.uas.search.console.b2b.model.PurchaseReturnItemSimpleInfo;
 import com.uas.search.console.b2b.model.PurchaseReturnSimpleInfo;
+import com.uas.search.console.b2b.model.PurchaseTenderAnswer;
 import com.uas.search.console.b2b.model.PurchaseTenderProdSimpleInfo;
 import com.uas.search.console.b2b.model.PurchaseTenderSimpleInfo;
 import com.uas.search.console.b2b.model.SaleARCheckItemSimpleInfo;
@@ -78,6 +79,7 @@ import com.uas.search.console.b2b.model.SaleQuotationItemSimpleInfo;
 import com.uas.search.console.b2b.model.SaleQuotationSimpleInfo;
 import com.uas.search.console.b2b.model.SaleSendItemSimpleInfo;
 import com.uas.search.console.b2b.model.SaleSendSimpleInfo;
+import com.uas.search.console.b2b.model.SaleTenderQuestionSimpleInfo;
 import com.uas.search.console.b2b.model.UserSimpleInfo;
 import com.uas.search.console.b2b.model.VendorSimpleInfo;
 import com.uas.search.console.b2b.platformmanager.model.UserSpaceDetailSimpleInfo;
@@ -190,6 +192,8 @@ public class DocumentToObjectUtils {
 			return (T) toB2BSaleTenderSimpleInfo(document);
 		} else if (clazz == PurchaseApBillOutSimpleInfo.class) {
 			return (T) toPurchaseApBillOutSimpleInfo(document);
+		} else if (clazz == SaleTenderQuestionSimpleInfo.class) {
+			return (T) toSaleTenderQuestionSimpleInfo(document);
 		}
 
 		// TODO 其他表
@@ -2272,6 +2276,67 @@ public class DocumentToObjectUtils {
 		return saleTenderSimpleInfo;
 	}
 
+	/**
+	 * 将Document转换成SaleTenderQuestionSimpleInfo对象
+	 * 
+	 * @param document
+	 * @return
+	 */
+	private static SaleTenderQuestionSimpleInfo toSaleTenderQuestionSimpleInfo(Document document) {
+		if (document == null) {
+			return null;
+		}
+		Table_name tableName = ClassAndTableNameUtils.toTableName(SaleTenderQuestionSimpleInfo.class);
+		SaleTenderQuestionSimpleInfo saleTenderQuestionSimpleInfo = new SaleTenderQuestionSimpleInfo();
+		saleTenderQuestionSimpleInfo.setId(Long.valueOf(
+				document.get(ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.ID_FIELD))));
+		String code = document
+				.get(ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.CODE_FIELD));
+		if (code != null) {
+			saleTenderQuestionSimpleInfo.setCode(code);
+		}
+		String date = document
+				.get(ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.DATE_FIELD));
+		if (date != null) {
+			saleTenderQuestionSimpleInfo.setInDate(new Date(Long.valueOf(date)));
+		}
+		String replyDate = document
+				.get(ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.REPLYDATE_FIELD));
+		if (replyDate != null) {
+			saleTenderQuestionSimpleInfo.setReplyDate(new Date(Long.valueOf(replyDate)));
+		}
+		String status = document
+				.get(ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.STATUS_FIELD));
+		if (status != null) {
+			saleTenderQuestionSimpleInfo.setStatus(Short.valueOf(status));
+		}
+		String topic = document
+				.get(ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.TOPIC_FIELD));
+		if (topic != null) {
+			saleTenderQuestionSimpleInfo.setTopic(topic);
+		}
+		String content = document
+				.get(ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.CONTENT_FIELD));
+		if (content != null) {
+			saleTenderQuestionSimpleInfo.setContent(content);
+		}
+		if (null != document
+				.get(ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.VEND_FIELD))) {
+			saleTenderQuestionSimpleInfo.setVendor(JSONObject.parseObject(
+					document.get(
+							ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.VEND_FIELD)),
+					EnterpriseSimpleInfo.class));
+		}
+		if (null != document
+				.get(ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.ANSWER_FIELD))) {
+			saleTenderQuestionSimpleInfo.setAnwser(JSONObject.parseObject(
+					document.get(
+							ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.ANSWER_FIELD)),
+					PurchaseTenderAnswer.class));
+		}
+		return saleTenderQuestionSimpleInfo;
+	}
+
 	/**
 	 * 将Document转换成PagingReleaseDetailSimpleInfo对象
 	 * 

+ 108 - 20
search-console-b2b/src/main/java/com/uas/search/console/b2b/util/ObjectToDocumentUtils.java

@@ -55,6 +55,7 @@ import com.uas.search.console.b2b.model.PurchaseTenderSimpleInfo;
 import com.uas.search.console.b2b.model.SaleArcheckSimpleInfo;
 import com.uas.search.console.b2b.model.SaleQuotationSimpleInfo;
 import com.uas.search.console.b2b.model.SaleSendSimpleInfo;
+import com.uas.search.console.b2b.model.SaleTenderQuestionSimpleInfo;
 import com.uas.search.console.b2b.model.VendorSimpleInfo;
 import com.uas.search.console.b2b.platformmanager.model.UserSpaceDetailSimpleInfo;
 
@@ -165,6 +166,8 @@ public class ObjectToDocumentUtils {
 			return toDocument((B2BSaleTenderSimpleInfo) object);
 		} else if (object instanceof PurchaseApBillOutSimpleInfo) {
 			return toDocument((PurchaseApBillOutSimpleInfo) object);
+		} else if (object instanceof SaleTenderQuestionSimpleInfo) {
+			return toDocument((SaleTenderQuestionSimpleInfo) object);
 		}
 		// TODO 其他表
 		else {
@@ -2399,6 +2402,71 @@ public class ObjectToDocumentUtils {
 		return document;
 	}
 
+	/**
+	 * 将SaleTenderQuestionSimpleInfo转换为Document
+	 *
+	 * @param saleTender
+	 * @return
+	 */
+	public static Document toDocument(SaleTenderQuestionSimpleInfo saleTenderQuestionSimpleInfo) {
+		if (saleTenderQuestionSimpleInfo == null || saleTenderQuestionSimpleInfo.getId() == null
+				|| saleTenderQuestionSimpleInfo.getVendUU() == null
+				|| saleTenderQuestionSimpleInfo.getVendor() == null) {
+			return null;
+		}
+		Table_name tableName = ClassAndTableNameUtils.toTableName(SaleTenderQuestionSimpleInfo.class);
+		Document document = new Document();
+		// 不能用LongField,否则后续实时更新索引时,方法updateDocument(new Term("", ""),
+		// doc)无法根据id进行更新
+		document.add(
+				new StringField(ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.ID_FIELD),
+						String.valueOf(saleTenderQuestionSimpleInfo.getId()), Store.YES));
+		if (null != saleTenderQuestionSimpleInfo.getCode()) {
+			document.add(new TextField(
+					ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.CODE_FIELD),
+					saleTenderQuestionSimpleInfo.getCode(), Store.YES));
+		}
+		if (null != saleTenderQuestionSimpleInfo.getStatus()) {
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.STATUS_FIELD),
+					String.valueOf(saleTenderQuestionSimpleInfo.getStatus()), Store.YES));
+		}
+		if (null != saleTenderQuestionSimpleInfo.getInDate()) {
+			document.add(new LongField(
+					ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.DATE_FIELD),
+					Long.valueOf(saleTenderQuestionSimpleInfo.getInDate().getTime()), Store.YES));
+		}
+		if (null != saleTenderQuestionSimpleInfo.getReplyDate()) {
+			document.add(new LongField(
+					ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.REPLYDATE_FIELD),
+					Long.valueOf(saleTenderQuestionSimpleInfo.getReplyDate().getTime()), Store.YES));
+		}
+		if (null != saleTenderQuestionSimpleInfo.getTopic()) {
+			document.add(new TextField(
+					ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.TOPIC_FIELD),
+					saleTenderQuestionSimpleInfo.getTopic(), Store.YES));
+		}
+		if (null != saleTenderQuestionSimpleInfo.getContent()) {
+			document.add(new TextField(
+					ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.CONTENT_FIELD),
+					saleTenderQuestionSimpleInfo.getContent(), Store.YES));
+		}
+		document.add(
+				new TextField(ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.VEND_FIELD),
+						JSON.toJSONString(saleTenderQuestionSimpleInfo.getVendor()), Store.YES));
+		if (null != saleTenderQuestionSimpleInfo.getAnwser()) {
+			document.add(new TextField(
+					ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.ANSWER_FIELD),
+					JSON.toJSONString(saleTenderQuestionSimpleInfo.getAnwser()), Store.YES));
+		}
+
+		// 排序字段
+		document.add(new NumericDocValuesField(
+				ClassAndTableNameUtils.combineField(tableName, SaleTenderQuestionSimpleInfo.ID_FIELD),
+				saleTenderQuestionSimpleInfo.getId()));
+		return document;
+	}
+
 	/**
 	 * 将PagingReleaseDetailSimpleInfo 转换成Document
 	 * 
@@ -3040,83 +3108,103 @@ public class ObjectToDocumentUtils {
 				String.valueOf(purchaseApBillOutSimpleInfo.getId()), Store.YES));
 
 		if (null != purchaseApBillOutSimpleInfo.getAmount()) {
-			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.AMOUNT_FIELD),
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.AMOUNT_FIELD),
 					String.valueOf(purchaseApBillOutSimpleInfo.getAmount()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getAuditDate()) {
-			document.add(new LongField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.AUDITDATE_FIELD),
+			document.add(new LongField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.AUDITDATE_FIELD),
 					Long.valueOf(purchaseApBillOutSimpleInfo.getAuditDate().getTime()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getCheckStatus()) {
-			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.CHECKSTATUS_FIELD),
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.CHECKSTATUS_FIELD),
 					String.valueOf(purchaseApBillOutSimpleInfo.getCheckStatus()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getCode()) {
-			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.CODE_FIELD),
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.CODE_FIELD),
 					String.valueOf(purchaseApBillOutSimpleInfo.getCode()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getCurrency()) {
-			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.CURRENCY_FIELD),
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.CURRENCY_FIELD),
 					String.valueOf(purchaseApBillOutSimpleInfo.getCurrency()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getCustName()) {
-			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.CUSTNAME_FIELD),
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.CUSTNAME_FIELD),
 					String.valueOf(purchaseApBillOutSimpleInfo.getCustName()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getCustUu()) {
-			document.add(new LongField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.CUSTUU_FIELD),
+			document.add(new LongField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.CUSTUU_FIELD),
 					Long.valueOf(purchaseApBillOutSimpleInfo.getCustUu()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getItems()) {
-			document.add(new TextField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.ITEMS_FIELD),
+			document.add(new TextField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.ITEMS_FIELD),
 					JSONObject.toJSONString(purchaseApBillOutSimpleInfo.getItems()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getDiffer()) {
-			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.DIFFER_FIELD),
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.DIFFER_FIELD),
 					String.valueOf(purchaseApBillOutSimpleInfo.getDiffer()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getPayAmount()) {
-			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.PAYAMOUNT_FIELD),
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.PAYAMOUNT_FIELD),
 					String.valueOf(purchaseApBillOutSimpleInfo.getPayAmount()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getPrint()) {
-			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.PRINT_FIELD),
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.PRINT_FIELD),
 					String.valueOf(purchaseApBillOutSimpleInfo.getPrint()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getRate()) {
-			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.RATE_FIELD),
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.RATE_FIELD),
 					String.valueOf(purchaseApBillOutSimpleInfo.getRate()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getRecordDate()) {
-			document.add(new LongField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.DATE_FIELD),
+			document.add(new LongField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.DATE_FIELD),
 					Long.valueOf(purchaseApBillOutSimpleInfo.getRecordDate().getTime()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getRecorder()) {
-			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.RECORDER_FIELD),
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.RECORDER_FIELD),
 					String.valueOf(purchaseApBillOutSimpleInfo.getRecorder()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getRemark()) {
-			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.REMARK_FIELD),
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.REMARK_FIELD),
 					String.valueOf(purchaseApBillOutSimpleInfo.getRemark()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getResDate()) {
-			document.add(new LongField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.RESDATE_FIELD),
+			document.add(new LongField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.RESDATE_FIELD),
 					Long.valueOf(purchaseApBillOutSimpleInfo.getResDate().getTime()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getResMan()) {
-			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.RESMAN_FIELD),
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.RESMAN_FIELD),
 					String.valueOf(purchaseApBillOutSimpleInfo.getResMan()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getStatus()) {
-			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.STATUS_FIELD),
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.STATUS_FIELD),
 					String.valueOf(purchaseApBillOutSimpleInfo.getStatus()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getTaxSum()) {
-			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.TAXSUM_FIELD),
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.TAXSUM_FIELD),
 					String.valueOf(purchaseApBillOutSimpleInfo.getTaxSum()), Store.YES));
 		}
 		if (null != purchaseApBillOutSimpleInfo.getEnUu()) {
-			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, purchaseApBillOutSimpleInfo.ENUU_FIELD),
+			document.add(new StringField(
+					ClassAndTableNameUtils.combineField(tableName, PurchaseApBillOutSimpleInfo.ENUU_FIELD),
 					purchaseApBillOutSimpleInfo.getEnUu().toString(), Store.YES));
 		}
 		//TODO