package com.uas.search.b2b.service; import com.uas.search.b2b.exception.SearchException; import com.uas.search.b2b.model.PageParams; import com.uas.search.b2b.model.SPage; /** * B2B商务平台搜索服务的接口 * * @author sunyj * @since 2016年11月9日 上午9:52:25 */ public interface SearchService { /** * 单据类型 * * @author sunyj * @since 2016年11月9日 上午10:22:01 */ public enum Table_name { /** * 买家采购订单 */ PURC$ORDERS("PURC$ORDERS"), /** * 买家委外加工单 */ MAKE$ORDERS("MAKE$ORDERS"), /** * 客户验收单 */ PURC$ACCEPT("PURC$ACCEPT"), /** * 应付发票单 */ PURC$APBILL("PURC$APBILL"), /** * 不良品入库单 */ PURC$BADIN("PURC$BADIN"), /** * 不良品出库 */ PURC$BADOUT("PURC$BADOUT"), /** * 采购预测单 */ PURC$FORECAST("PURC$FORECAST"), /** * 采购询价单 */ // PURC$INQUIRY("PURC$INQUIRY"), /** * 采购询价单详情 */ PURC$INQUIRYITEMS("PURC$INQUIRYITEMS"), /** * 客户MRB */ PURC$MRB("PURC$MRB"), /** * 采购变更单 */ PURC$CHANGES("PURC$CHANGES"), /** * 打样申请单 */ // PURC$PROOFING("PURC$PROOFING"), /** * 打样申请单 */ PURC$PROOFINGITEMS("PURC$PROOFINGITEMS"), /** * 主动报价单 * */ SALE$QUOTATION("SALE$QUOTATION"), /** * 采购验退单 */ PURC$RETURN("PURC$RETURN"), /** * 委外验收单 */ MAKE$ACCEPT("MAKE$ACCEPT"), /** * 委外变更单详情 */ MAKE$CHANGEITEMS("MAKE$CHANGEITEMS"), /** * 委外验退单 */ MAKE$RETURN("MAKE$RETURN"), /** * 平台发货单 */ SALE$SEND("SALE$SEND"), /** * 发货提醒单 */ PURC$NOTICE("PURC$NOTICE"), /** * 客户收到供应商的送样后的认定单 */ PURC$PROOFINGAPPROVAL("PURC$PROOFINGAPPROVAL"), /** * 针对客户的打样申请单 */ PURC$PROOFINGSEND("PURC$PROOFINGSEND"), /** * 应付对账单(买家) */ SALE$ARCHECK("SALE$ARCHECK"), /** * 应收对账单(卖家) */ PURC$APCHECK("PURC$APCHECK"), /** * 模具询价单 */ PURC$INQUIRYMOULD("PURC$INQUIRYMOULD"), /** * 物料信息表 */ PRODUCTS("PRODUCTS"), /** * 物料信息表(标准) */ PRODUCTS_STANDARD("PRODUCTS_STANDARD"), /** * 物料信息表(非标准) */ PRODUCTS_NONSTANDARD("PRODUCTS_NONSTANDARD"), /** * 企业信息表 */ SEC$ENTERPRISES("SEC$ENTERPRISES"), /** * 器件信息表 */ PRODUCT$COMPONENT("PRODUCT$COMPONENT"), /** * 类目信息表 */ PRODUCT$KIND("PRODUCT$KIND"), /** * 招标表 */ PURC$TENDER("PURC$TENDER"), /** * 代采订单表 */ PURC$DEPUTYORDERS("PURC$DEPUTYORDERS"), /** * 消息表 */ PURC$PAGINGRELEASEDETAIL("PURC$PAGINGRELEASEDETAIL"), /** * 供应商表(搜索供应商资料) */ PURC$VENDORS("PURC$VENDORS"), /** * 供应商表(搜索客户资料) */ PURC$VENDORS_CUST("PURC$VENDORS_CUST"), /** * 品牌表 */ PRODUCT$BRAND("PRODUCT$BRAND"), /** * 企业圈表 */ AC$US$DETAIL("AC$US$DETAIL"), /** * 平台询价 */ PURC$PUINQUIRY("PURC$PUINQUIRY"), /** * 平台询价详情 */ PURC$PUINQUIRYITEMS("PURC$PUINQUIRYITEMS"), /** * 邀请记录 */ INVITATIONRECORDS("INVITATIONRECORDS"), /** * 投标表 (ERP搜索) */ SALE$TENDER("SALE$TENDER"), /** * 投标表(B2B待投标和已投标) */ SALE$TENDER_B2B("SALE$TENDER_B2B"), /** * 购物车 */ PURC$CART("PURC$CART"), /** * 航天开票 */ PURC$APBILLOUT("PURC$APBILLOUT"); // TODO private Table_name(String phrase) { this.phrase = phrase; } private String phrase; public String value() { return phrase; } @Override public String toString() { return phrase; } } /** * 根据关键词、单据类型、状态码搜索单据id * * @param keyword * 可为空,模糊搜索关键词,可以是:单据编号、供应商uu(采购)、供应商名称(采购)、客户uu(销售)、客户名称(销售)、 * 物料编号、 物料名称、物料规格 * @param tableName * 不为空,单据类型 * @param pageParams * 可为空,翻页、过滤、排序、排除过滤等信息 *

* 关于过滤,通过键值对指定过滤条件,值的类型由键决定: *

* * * * * * * * * * * * * * * * * * * * * * *
DescriptionFieldType
状态、所属企业uu、其他状态(如已采纳、未采纳等)键为数据库表中相应的字段名称值为字段对应的值,若值有多个,则使用 * {@link com.uas.search.b2b.model.MultiValue}
开始时间、截止时间, 这两个参数用于对时间范围进行筛选{@link com.uas.search.b2b.util.SearchConstants}Long
排序方式{@link com.uas.search.b2b.util.SearchConstants}List({@link com.uas.search.b2b.model.Sort})
* *

* 关于排除过滤,键为数据库表中相应的字段名称,值为需排除的值,若值有多个,则使用 * {@link com.uas.search.b2b.model.MultiValue} *

* @return 单据id * @throws SearchException */ public SPage searchIds(String keyword, Table_name tableName, PageParams pageParams) throws SearchException; /** * 根据关键词、单据类型、指定域获取联想词 * * @param keyword * 可为空,关键词 * @param tableName * 不为空,单据类型 * @param size * 可为空,联想词的数目 * @param fields * 指定的域(数据库表中相应的字段名称) * @return 联想词 * @throws SearchException */ public SPage similar(String keyword, Table_name tableName, Integer size, String... fields) throws SearchException; }