SearchService.java 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. package com.uas.search.b2b.service;
  2. import com.uas.search.b2b.exception.SearchException;
  3. import com.uas.search.b2b.model.PageParams;
  4. import com.uas.search.b2b.model.SPage;
  5. /**
  6. * B2B商务平台搜索服务的接口
  7. *
  8. * @author sunyj
  9. * @since 2016年11月9日 上午9:52:25
  10. */
  11. public interface SearchService {
  12. /**
  13. * 单据类型
  14. *
  15. * @author sunyj
  16. * @since 2016年11月9日 上午10:22:01
  17. */
  18. public enum Table_name {
  19. /**
  20. * 买家采购订单
  21. */
  22. PURC$ORDERS("PURC$ORDERS"),
  23. /**
  24. * 买家委外加工单
  25. */
  26. MAKE$ORDERS("MAKE$ORDERS"),
  27. /**
  28. * 客户验收单
  29. */
  30. PURC$ACCEPT("PURC$ACCEPT"),
  31. /**
  32. * 应付发票单
  33. */
  34. PURC$APBILL("PURC$APBILL"),
  35. /**
  36. * 不良品入库单
  37. */
  38. PURC$BADIN("PURC$BADIN"),
  39. /**
  40. * 不良品出库
  41. */
  42. PURC$BADOUT("PURC$BADOUT"),
  43. /**
  44. * 采购预测单
  45. */
  46. PURC$FORECAST("PURC$FORECAST"),
  47. /**
  48. * 采购询价单
  49. */
  50. // PURC$INQUIRY("PURC$INQUIRY"),
  51. /**
  52. * 采购询价单详情
  53. */
  54. PURC$INQUIRYITEMS("PURC$INQUIRYITEMS"),
  55. /**
  56. * 客户MRB
  57. */
  58. PURC$MRB("PURC$MRB"),
  59. /**
  60. * 采购变更单
  61. */
  62. PURC$CHANGES("PURC$CHANGES"),
  63. /**
  64. * 打样申请单
  65. */
  66. // PURC$PROOFING("PURC$PROOFING"),
  67. /**
  68. * 打样申请单
  69. */
  70. PURC$PROOFINGITEMS("PURC$PROOFINGITEMS"),
  71. /**
  72. * 主动报价单
  73. *
  74. */
  75. SALE$QUOTATION("SALE$QUOTATION"),
  76. /**
  77. * 采购验退单
  78. */
  79. PURC$RETURN("PURC$RETURN"),
  80. /**
  81. * 委外验收单
  82. */
  83. MAKE$ACCEPT("MAKE$ACCEPT"),
  84. /**
  85. * 委外变更单详情
  86. */
  87. MAKE$CHANGEITEMS("MAKE$CHANGEITEMS"),
  88. /**
  89. * 委外验退单
  90. */
  91. MAKE$RETURN("MAKE$RETURN"),
  92. /**
  93. * 平台发货单
  94. */
  95. SALE$SEND("SALE$SEND"),
  96. /**
  97. * 发货提醒单
  98. */
  99. PURC$NOTICE("PURC$NOTICE"),
  100. /**
  101. * 客户收到供应商的送样后的认定单
  102. */
  103. PURC$PROOFINGAPPROVAL("PURC$PROOFINGAPPROVAL"),
  104. /**
  105. * 针对客户的打样申请单
  106. */
  107. PURC$PROOFINGSEND("PURC$PROOFINGSEND"),
  108. /**
  109. * 应付对账单(买家)
  110. */
  111. SALE$ARCHECK("SALE$ARCHECK"),
  112. /**
  113. * 应收对账单(卖家)
  114. */
  115. PURC$APCHECK("PURC$APCHECK"),
  116. /**
  117. * 模具询价单
  118. */
  119. PURC$INQUIRYMOULD("PURC$INQUIRYMOULD"),
  120. /**
  121. * 物料信息表
  122. */
  123. PRODUCTS("PRODUCTS"),
  124. /**
  125. * 物料信息表(标准)
  126. */
  127. PRODUCTS_STANDARD("PRODUCTS_STANDARD"),
  128. /**
  129. * 物料信息表(非标准)
  130. */
  131. PRODUCTS_NONSTANDARD("PRODUCTS_NONSTANDARD"),
  132. /**
  133. * 企业信息表
  134. */
  135. SEC$ENTERPRISES("SEC$ENTERPRISES"),
  136. /**
  137. * 器件信息表
  138. */
  139. PRODUCT$COMPONENT("PRODUCT$COMPONENT"),
  140. /**
  141. * 类目信息表
  142. */
  143. PRODUCT$KIND("PRODUCT$KIND"),
  144. /**
  145. * 招标表
  146. */
  147. PURC$TENDER("PURC$TENDER"),
  148. /**
  149. * 代采订单表
  150. */
  151. PURC$DEPUTYORDERS("PURC$DEPUTYORDERS"),
  152. /**
  153. * 消息表
  154. */
  155. PURC$PAGINGRELEASEDETAIL("PURC$PAGINGRELEASEDETAIL"),
  156. /**
  157. * 供应商表(搜索供应商资料)
  158. */
  159. PURC$VENDORS("PURC$VENDORS"),
  160. /**
  161. * 供应商表(搜索客户资料)
  162. */
  163. PURC$VENDORS_CUST("PURC$VENDORS_CUST"),
  164. /**
  165. * 品牌表
  166. */
  167. PRODUCT$BRAND("PRODUCT$BRAND"),
  168. /**
  169. * 企业圈表
  170. */
  171. AC$US$DETAIL("AC$US$DETAIL"),
  172. /**
  173. * 平台询价
  174. */
  175. PURC$PUINQUIRY("PURC$PUINQUIRY"),
  176. /**
  177. * 平台询价详情
  178. */
  179. PURC$PUINQUIRYITEMS("PURC$PUINQUIRYITEMS"),
  180. /**
  181. * 邀请记录
  182. */
  183. INVITATIONRECORDS("INVITATIONRECORDS"),
  184. /**
  185. * 投标表 (ERP搜索)
  186. */
  187. SALE$TENDER("SALE$TENDER"),
  188. /**
  189. * 投标表(B2B待投标和已投标)
  190. */
  191. SALE$TENDER_B2B("SALE$TENDER_B2B"),
  192. /**
  193. * 购物车
  194. */
  195. PURC$CART("PURC$CART"),
  196. /**
  197. * 航天开票
  198. */
  199. PURC$APBILLOUT("PURC$APBILLOUT");
  200. // TODO
  201. private Table_name(String phrase) {
  202. this.phrase = phrase;
  203. }
  204. private String phrase;
  205. public String value() {
  206. return phrase;
  207. }
  208. @Override
  209. public String toString() {
  210. return phrase;
  211. }
  212. }
  213. /**
  214. * 根据关键词、单据类型、状态码搜索单据id
  215. *
  216. * @param keyword
  217. * 可为空,模糊搜索关键词,可以是:单据编号、供应商uu(采购)、供应商名称(采购)、客户uu(销售)、客户名称(销售)、
  218. * 物料编号、 物料名称、物料规格
  219. * @param tableName
  220. * 不为空,单据类型
  221. * @param pageParams
  222. * 可为空,翻页、过滤、排序、排除过滤等信息
  223. * <p>
  224. * 关于过滤,通过键值对指定过滤条件,值的类型由键决定:
  225. * </p>
  226. *
  227. * <table border=1 cellpadding=5 cellspacing=0 summary=
  228. * "Fields and types">
  229. * <tr>
  230. * <th>Description</th>
  231. * <th>Field</th>
  232. * <th>Type</th>
  233. * </tr>
  234. * <tr>
  235. * <td>状态、所属企业uu、其他状态(如已采纳、未采纳等)</td>
  236. * <td>键为数据库表中相应的字段名称</td>
  237. * <td>值为字段对应的值,若值有多个,则使用
  238. * {@link com.uas.search.b2b.model.MultiValue}</td>
  239. * </tr>
  240. * <tr>
  241. * <td>开始时间、截止时间, 这两个参数用于对时间范围进行筛选</td>
  242. * <td>{@link com.uas.search.b2b.util.SearchConstants}</td>
  243. * <td>Long</td>
  244. * </tr>
  245. * <tr>
  246. * <td>排序方式</td>
  247. * <td>{@link com.uas.search.b2b.util.SearchConstants}</td>
  248. * <td>List({@link com.uas.search.b2b.model.Sort})</td>
  249. * </tr>
  250. * </table>
  251. *
  252. * <p>
  253. * 关于排除过滤,键为数据库表中相应的字段名称,值为需排除的值,若值有多个,则使用
  254. * {@link com.uas.search.b2b.model.MultiValue}
  255. * </p>
  256. * @return 单据id
  257. * @throws SearchException
  258. */
  259. public SPage<Long> searchIds(String keyword, Table_name tableName, PageParams pageParams) throws SearchException;
  260. /**
  261. * 根据关键词、单据类型、指定域获取联想词
  262. *
  263. * @param keyword
  264. * 可为空,关键词
  265. * @param tableName
  266. * 不为空,单据类型
  267. * @param size
  268. * 可为空,联想词的数目
  269. * @param fields
  270. * 指定的域(数据库表中相应的字段名称)
  271. * @return 联想词
  272. * @throws SearchException
  273. */
  274. public SPage<String> similar(String keyword, Table_name tableName, Integer size, String... fields)
  275. throws SearchException;
  276. }