DocumentToObjectUtils.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. package com.uas.search.console.util;
  2. import java.util.ArrayList;
  3. import java.util.Date;
  4. import java.util.HashSet;
  5. import java.util.List;
  6. import java.util.Set;
  7. import org.apache.lucene.document.Document;
  8. import com.alibaba.dubbo.common.utils.StringUtils;
  9. import com.alibaba.fastjson.JSONObject;
  10. import com.uas.search.console.model.BaseOrderDetailSimpleInfo;
  11. import com.uas.search.console.model.BrandSimpleInfo;
  12. import com.uas.search.console.model.ComponentSimpleInfo;
  13. import com.uas.search.console.model.EnterpriseSimpleInfo;
  14. import com.uas.search.console.model.GoodsSimpleInfo;
  15. import com.uas.search.console.model.KindSimpleInfo;
  16. import com.uas.search.console.model.OrderDetailSimpleInfo;
  17. import com.uas.search.console.model.OrderInvoiceDetailSimpleInfo;
  18. import com.uas.search.console.model.OrderInvoiceSimpleInfo;
  19. import com.uas.search.console.model.OrderSimpleInfo;
  20. import com.uas.search.console.model.PurchaseDetailSimpleInfo;
  21. import com.uas.search.console.model.PurchaseInvoiceDetailSimpleInfo;
  22. import com.uas.search.console.model.PurchaseInvoiceSimpleInfo;
  23. import com.uas.search.console.model.PurchaseSimpleInfo;
  24. import com.uas.search.model.BaseOrderDetail;
  25. /**
  26. * 将Document转换为对象的工具类
  27. *
  28. * @author sunyj
  29. * @since 2016年10月24日 下午2:24:39
  30. */
  31. public class DocumentToObjectUtils {
  32. /**
  33. * 将Document转换为类目对象
  34. *
  35. * @param document
  36. * @return
  37. */
  38. public static KindSimpleInfo toKind(Document document) {
  39. if (document == null) {
  40. return null;
  41. }
  42. KindSimpleInfo kind = new KindSimpleInfo();
  43. kind.setId(Long.valueOf(document.get(SearchConstants.KIND_ID_FIELD)));
  44. kind.setNameCn(document.get(SearchConstants.KIND_NAMECN_FIELD));
  45. kind.setIsLeaf(Short.valueOf(document.get(SearchConstants.KIND_ISLEAF_FIELD)));
  46. kind.setLevel(Short.valueOf(document.get(SearchConstants.KIND_LEVEL_FIELD)));
  47. return kind;
  48. }
  49. /**
  50. * 将Document转换为品牌对象
  51. *
  52. * @param document
  53. * @return
  54. */
  55. public static BrandSimpleInfo toBrand(Document document) {
  56. if (document == null) {
  57. return null;
  58. }
  59. BrandSimpleInfo brand = new BrandSimpleInfo();
  60. brand.setId(Long.valueOf(document.get(SearchConstants.BRAND_ID_FIELD)));
  61. brand.setNameCn(document.get(SearchConstants.BRAND_NAMECN_FIELD));
  62. brand.setNameEn(document.get(SearchConstants.BRAND_NAMEEN_FIELD));
  63. brand.setUuid(document.get(SearchConstants.BRAND_UUID_FIELD));
  64. return brand;
  65. }
  66. /**
  67. * 将Document转换为器件对象
  68. *
  69. * @param document
  70. * @return
  71. */
  72. public static ComponentSimpleInfo toComponent(Document document) {
  73. if (document == null) {
  74. return null;
  75. }
  76. ComponentSimpleInfo component = new ComponentSimpleInfo();
  77. component.setId(Long.valueOf(document.get(SearchConstants.COMPONENT_ID_FIELD)));
  78. component.setCode(document.get(SearchConstants.COMPONENT_CODE_FIELD));
  79. component.setUuid(document.get(SearchConstants.COMPONENT_UUID_FIELD));
  80. KindSimpleInfo kind = new KindSimpleInfo();
  81. kind.setId(Long.valueOf(document.get(SearchConstants.COMPONENT_KINDID_FIELD)));
  82. kind.setNameCn(document.get(SearchConstants.COMPONENT_KINDNAME_FIELD));
  83. kind.setLevel(Short.valueOf(document.get(SearchConstants.COMPONENT_KINDLEVEL_FIELD)));
  84. component.setKind(kind);
  85. BrandSimpleInfo brand = new BrandSimpleInfo();
  86. brand.setId(Long.valueOf(document.get(SearchConstants.COMPONENT_BRANDID_FIELD)));
  87. brand.setNameCn(document.get(SearchConstants.COMPONENT_BRANDNAMECN_FIELD));
  88. brand.setNameEn(document.get(SearchConstants.COMPONENT_BRANDNAMEEN_FIELD));
  89. component.setBrand(brand);
  90. if (!StringUtils.isEmpty(document.get(SearchConstants.COMPONENT_RESERVE_FIELD))) {
  91. component.setReserve(Double.valueOf(document.get(SearchConstants.COMPONENT_RESERVE_FIELD)));
  92. }
  93. if (!StringUtils.isEmpty(document.get(SearchConstants.COMPONENT_SAMPLE_QTY_FIELD))) {
  94. component.setSampleQty(Double.valueOf(document.get(SearchConstants.COMPONENT_SAMPLE_QTY_FIELD)));
  95. }
  96. if (!StringUtils.isEmpty(document.get(SearchConstants.COMPONENT_ORIGINAL_QTY_FIELD))) {
  97. component.setOriginalQty(Double.valueOf(document.get(SearchConstants.COMPONENT_ORIGINAL_QTY_FIELD)));
  98. }
  99. if (!StringUtils.isEmpty(document.get(SearchConstants.COMPONENT_INACTION_STOCK_QTY_FIELD))) {
  100. component.setInactionStockQty(
  101. Double.valueOf(document.get(SearchConstants.COMPONENT_INACTION_STOCK_QTY_FIELD)));
  102. }
  103. return component;
  104. }
  105. /**
  106. * 将Document转换为批次对象
  107. *
  108. * @param document
  109. * @return
  110. */
  111. public static GoodsSimpleInfo toGoods(Document document) {
  112. // TODO
  113. return null;
  114. }
  115. /**
  116. * 将Document转换为销售单对象
  117. *
  118. * @param document
  119. * @return
  120. */
  121. public static OrderSimpleInfo toOrder(Document document) {
  122. if (document == null) {
  123. return null;
  124. }
  125. OrderSimpleInfo order = new OrderSimpleInfo();
  126. order.setId(Long.valueOf(document.get(SearchConstants.ORDER_ID_FIELD)));
  127. order.setCode(document.get(SearchConstants.ORDER_CODE_FIELD));
  128. order.setBuyeruu(Long.valueOf(document.get(SearchConstants.ORDER_BUYERUU_FIELD)));
  129. order.setBuyername(document.get(SearchConstants.ORDER_BUYERNAME_FIELD));
  130. EnterpriseSimpleInfo buyerEnterprise = new EnterpriseSimpleInfo();
  131. buyerEnterprise.setUu(Long.valueOf(document.get(SearchConstants.ORDER_BUYERENUU_FIELD)));
  132. buyerEnterprise.setEnName(document.get(SearchConstants.ORDER_BUYERENNAME_FIELD));
  133. order.setBuyerEnterprise(buyerEnterprise);
  134. EnterpriseSimpleInfo sellerEnterprise = new EnterpriseSimpleInfo();
  135. sellerEnterprise.setUu(Long.valueOf(document.get(SearchConstants.ORDER_SELLERENUU_FIELD)));
  136. sellerEnterprise.setEnName(document.get(SearchConstants.ORDER_SELLERENNAME_FIELD));
  137. order.setSellerEnterprise(sellerEnterprise);
  138. Date createtime = new Date(Long.valueOf(document.get(SearchConstants.CREATETIME_FIELD)));
  139. order.setCreatetime(createtime);
  140. order.setStatus(Integer.valueOf(document.get(SearchConstants.ORDER_STATUS_FIELD)));
  141. order.setDetails(toDetailsSet(document.get(SearchConstants.ORDER_DETAILS_FIELD), OrderDetailSimpleInfo.class));
  142. return order;
  143. }
  144. /**
  145. * 将Document转换为销售发货单对象
  146. *
  147. * @param document
  148. * @return
  149. */
  150. public static OrderInvoiceSimpleInfo toOrderInvoice(Document document) {
  151. if (document == null) {
  152. return null;
  153. }
  154. OrderInvoiceSimpleInfo orderInvoice = new OrderInvoiceSimpleInfo();
  155. orderInvoice.setId(Long.valueOf(document.get(SearchConstants.ORDER_INVOICE_ID_FIELD)));
  156. orderInvoice.setCode(document.get(SearchConstants.ORDER_INVOICE_CODE_FIELD));
  157. orderInvoice.setBuyeruu(Long.valueOf(document.get(SearchConstants.ORDER_INVOICE_BUYERUU_FIELD)));
  158. orderInvoice.setBuyername(document.get(SearchConstants.ORDER_INVOICE_BUYERNAME_FIELD));
  159. EnterpriseSimpleInfo buyerEnterprise = new EnterpriseSimpleInfo();
  160. buyerEnterprise.setUu(Long.valueOf(document.get(SearchConstants.ORDER_INVOICE_BUYERENUU_FIELD)));
  161. buyerEnterprise.setEnName(document.get(SearchConstants.ORDER_INVOICE_BUYERENNAME_FIELD));
  162. orderInvoice.setBuyerEnterprise(buyerEnterprise);
  163. Date createtime = new Date(Long.valueOf(document.get(SearchConstants.CREATETIME_FIELD)));
  164. orderInvoice.setCreatetime(createtime);
  165. orderInvoice.setStatus(Integer.valueOf(document.get(SearchConstants.ORDER_INVOICE_STATUS_FIELD)));
  166. orderInvoice.setDetails(toDetailsSet(document.get(SearchConstants.ORDER_INVOICE_DETAILS_FIELD),
  167. OrderInvoiceDetailSimpleInfo.class));
  168. return orderInvoice;
  169. }
  170. /**
  171. * 将Document转换为采购单对象
  172. *
  173. * @param document
  174. * @return
  175. */
  176. public static PurchaseSimpleInfo toPurchase(Document document) {
  177. if (document == null) {
  178. return null;
  179. }
  180. PurchaseSimpleInfo purchase = new PurchaseSimpleInfo();
  181. purchase.setId(Long.valueOf(document.get(SearchConstants.PURCHASE_ID_FIELD)));
  182. purchase.setCode(document.get(SearchConstants.PURCHASE_CODE_FIELD));
  183. purchase.setSellerenuu(Long.valueOf(document.get(SearchConstants.PURCHASE_SELLERENUU_FIELD)));
  184. purchase.setSellerenname(document.get(SearchConstants.PURCHASE_SELLERENNAME_FIELD));
  185. Date createtime = new Date(Long.valueOf(document.get(SearchConstants.CREATETIME_FIELD)));
  186. purchase.setCreatetime(createtime);
  187. purchase.setStatus(Integer.valueOf(document.get(SearchConstants.PURCHASE_STATUS_FIELD)));
  188. purchase.setDetails(
  189. toDetailsSet(document.get(SearchConstants.PURCHASE_DETAILS_FIELD), PurchaseDetailSimpleInfo.class));
  190. return purchase;
  191. }
  192. /**
  193. * 将Document转换为采购发货单对象
  194. *
  195. * @param document
  196. * @return
  197. */
  198. public static PurchaseInvoiceSimpleInfo toPurchaseInvoice(Document document) {
  199. if (document == null) {
  200. return null;
  201. }
  202. PurchaseInvoiceSimpleInfo purchaseInvoice = new PurchaseInvoiceSimpleInfo();
  203. purchaseInvoice.setId(Long.valueOf(document.get(SearchConstants.PURCHASE_INVOICE_ID_FIELD)));
  204. purchaseInvoice.setCode(document.get(SearchConstants.PURCHASE_INVOICE_CODE_FIELD));
  205. purchaseInvoice.setSellerenuu(Long.valueOf(document.get(SearchConstants.PURCHASE_INVOICE_SELLERENUU_FIELD)));
  206. purchaseInvoice.setSellerenname(document.get(SearchConstants.PURCHASE_INVOICE_SELLERENNAME_FIELD));
  207. Date createtime = new Date(Long.valueOf(document.get(SearchConstants.CREATETIME_FIELD)));
  208. purchaseInvoice.setCreatetime(createtime);
  209. purchaseInvoice.setStatus(Integer.valueOf(document.get(SearchConstants.PURCHASE_INVOICE_STATUS_FIELD)));
  210. purchaseInvoice.setDetails(toDetailsSet(document.get(SearchConstants.PURCHASE_INVOICE_DETAILS_FIELD),
  211. PurchaseInvoiceDetailSimpleInfo.class));
  212. return purchaseInvoice;
  213. }
  214. /**
  215. * 将json字符串转为明细对象
  216. *
  217. * @param <T>
  218. *
  219. * @param jsonString
  220. * 索引中存储的明细数据
  221. * @return 明细对象
  222. */
  223. public static <T> Set<T> toDetailsSet(String jsonString, Class<T> clazz) {
  224. if (StringUtils.isEmpty(jsonString)) {
  225. return null;
  226. }
  227. Set<T> details = new HashSet<>();
  228. details.addAll(JSONObject.parseArray(jsonString, clazz));
  229. return details;
  230. }
  231. /**
  232. * 将json字符串转为明细对象
  233. *
  234. * @param jsonString
  235. * 索引中存储的明细数据
  236. * @return 明细对象
  237. */
  238. public static List<BaseOrderDetail> toDetailsList(String jsonString) {
  239. if (StringUtils.isEmpty(jsonString)) {
  240. return null;
  241. }
  242. List<BaseOrderDetailSimpleInfo> details = JSONObject.parseArray(jsonString, BaseOrderDetailSimpleInfo.class);
  243. List<BaseOrderDetail> result = new ArrayList<>();
  244. for (BaseOrderDetailSimpleInfo detail : details) {
  245. result.add(new BaseOrderDetail(detail.getId(), detail.getDetno(), detail.getCode()));
  246. }
  247. return result;
  248. }
  249. }