SalesOrderService.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601
  1. package com.iamberry.rst.faces.cm;
  2. import com.iamberry.rst.core.cm.SalesOrder;
  3. import com.iamberry.rst.core.cm.SalesOrderItem;
  4. import com.iamberry.rst.core.order.*;
  5. import com.iamberry.rst.core.page.PagedResult;
  6. import com.iamberry.rst.core.sys.Admin;
  7. import com.iamberry.rst.core.tools.LogisticsInfo;
  8. import net.sf.json.JSONArray;
  9. import net.sf.json.JSONObject;
  10. import java.util.Date;
  11. import java.util.List;
  12. /**
  13. * Created by liuzhiwei on 2017/10/31.
  14. */
  15. public interface SalesOrderService {
  16. /**
  17. * 添加订单信息
  18. * @param salesOrder
  19. * @return
  20. */
  21. Integer addSalesOrder(SalesOrder salesOrder);
  22. /**
  23. * 添加订单信息
  24. * @param salesOrder
  25. * @return
  26. */
  27. Integer addSalesOrderManual(SalesOrder salesOrder);
  28. /**
  29. * 根据id查询订单信息
  30. * @param salesId
  31. * @return
  32. */
  33. SalesOrder getSalesOrderById(Integer salesId);
  34. /**
  35. * 根据id查询订单信息 - 简洁
  36. * @param salesId
  37. * @return
  38. */
  39. SalesOrder getSalesOrderByIdConcise(Integer salesId);
  40. /**
  41. * 根据id查询订单信息,单个请用getSalesOrderById
  42. * @param salesIds
  43. * @return
  44. */
  45. List<SalesOrder> getSalesOrderByIds(Integer[] salesIds);
  46. //通过交易编号,查询所有的子订单
  47. List<SalesOrder> getSonSalesOrderBySaleId(Integer salesId);
  48. SalesOrder addOrderAndIteminfo(SalesOrder salesOrder, List<SalesOrderItem> list) ;
  49. boolean addRstOrderAndIteminfo(SalesOrder salesOrder) ;
  50. /**
  51. * 修改订单信息
  52. * @param salesOrder
  53. * @return
  54. */
  55. Integer updateSalesOrder(SalesOrder salesOrder);
  56. /**
  57. * 修改订单信息
  58. * @param salesOrder
  59. * @return
  60. */
  61. Integer update(SalesOrder salesOrder);
  62. /**
  63. * 修改订单信息
  64. * @param salesOrder
  65. * @return
  66. */
  67. Integer updateOrderInfo(SalesOrder salesOrder);
  68. /**
  69. * 批量添加订单信息
  70. * @param list
  71. * @return
  72. */
  73. Integer addSalesOrderList(List<SalesOrder> list);
  74. /**
  75. * 添加订单和订单项
  76. * @param list
  77. * @return
  78. */
  79. boolean addOrderAndItem(SalesOrder salesOrder, List<SalesOrderItem> list)throws Exception;
  80. /**
  81. * 获取订单集合
  82. * @param salesOrder
  83. * @return
  84. */
  85. List<SalesOrder> listSalesOrder (SalesOrder salesOrder);
  86. /**
  87. * 获取订单数量
  88. * @param salesOrder
  89. * @return
  90. */
  91. Integer listSalesOrderNum (SalesOrder salesOrder);
  92. /**
  93. * 分页获取订单集合
  94. * @param pageNO
  95. * @param pageSize
  96. * @param salesOrder
  97. * @param isTotalNum
  98. * @return
  99. */
  100. PagedResult<SalesOrder> listSalesOrderPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum);
  101. /**
  102. * 查询待发货的数量
  103. * @return
  104. */
  105. List<PostInfo> listWaitPrintOrderNum(Integer salesWarehouseId);
  106. /**
  107. * 仓库-代发货页面
  108. * @param pageNO
  109. * @param pageSize
  110. * @param salesOrder
  111. * @param isTotalNum
  112. * @return
  113. */
  114. PagedResult<SalesOrder> listAwaitSendSalesOrderPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum);
  115. /**
  116. * 根据省份来分配物流公司
  117. * @param listSalesOrder
  118. * @return
  119. */
  120. void setProvincesLogistics(List<SalesOrder> listSalesOrder);
  121. /**
  122. * 获取订单项集合
  123. * @param salesOrderItem
  124. * @return
  125. */
  126. List<SalesOrderItem> listSalesOrderItem(SalesOrderItem salesOrderItem);
  127. /**
  128. * 添加订单信息
  129. * @param obj
  130. */
  131. void addSalesOrderList(JSONObject obj) throws Exception;
  132. void parseOrder(SalesOrder oginerOrder, List<SalesOrder> listOrder);
  133. /**
  134. * 同步efast订单
  135. * @param obj
  136. * @return
  137. * @throws Exception
  138. */
  139. boolean syncEfastOrder(JSONObject orderInfo) throws Exception;
  140. /**
  141. * 批量修改订单信息
  142. * @param list
  143. * @return
  144. */
  145. Integer updateOrderList(JSONArray orderList, List<SalesOrder> list);
  146. /**
  147. * 批量修改退货订单状态
  148. * @param orderList
  149. * @param list
  150. * @return
  151. */
  152. Integer updateReturnOrderList(JSONArray orderList, List<SalesOrder> list);
  153. /**
  154. * 查询订单数量
  155. * @param salesOrder
  156. * @return
  157. */
  158. Integer getOrderInfoCount(SalesOrder salesOrder);
  159. /**
  160. * 查询需要导出的订单信息
  161. * @param salesOrder
  162. * @return
  163. */
  164. List<SalesOrder> listOrderExcel(SalesOrder salesOrder);
  165. /**
  166. * 查询需要导出的数量
  167. * @param salesOrder
  168. * @return
  169. */
  170. Integer listOrderExcelNum(SalesOrder salesOrder);
  171. /**
  172. * 删除订单根据Efast订单号
  173. */
  174. Integer delOrder(String orderId);
  175. /**
  176. * 删除销售订单
  177. * @param id
  178. * @return
  179. */
  180. Integer delSalesOrder(Integer id);
  181. /**
  182. * 修改订单项数量
  183. */
  184. Integer updateOrderItem(SalesOrderItem salesOrderItem);
  185. /**
  186. * 根据外部订单号查询订单信息
  187. * **/
  188. SalesOrder getSalesOrderByLogistics(SalesOrder salesOrder);
  189. /**
  190. * 批量修改订单是否已下载状态
  191. * @param list
  192. * @return
  193. */
  194. Integer updateOrderListIsDownload(List<SalesOrder> list);
  195. /**
  196. * 根据交易号修改订单信息
  197. * **/
  198. Integer updateSalesOrderByDealCode(SalesOrder salesOrder);
  199. /**
  200. * 查询物流公司信息
  201. * **/
  202. List<LogisticsInfo> getLogisticsInfo(LogisticsInfo logisticsInfo);
  203. /**
  204. * 查询所有拆单规则
  205. */
  206. List<DownsingleRuleInfo> listDownsingleRule();
  207. /**
  208. * 根据颜色sku/查询产品是否是水机
  209. */
  210. Integer getIsMachine(String colorBar);
  211. boolean addRstOrderinfo(SalesOrder mainOrder,List<SalesOrder> listSalesOrder,String[] detectIds);
  212. /**
  213. *查询拥有该交易号的数量
  214. * @param code
  215. * @return
  216. */
  217. Integer getOrderBySalesDealCodeNum(String code);
  218. /**
  219. * 按照批次查询订单项,并下载,订单列表主要按照订单项来排列
  220. * @param salesOrder
  221. * @return
  222. */
  223. Integer listSalesOrderAndItemNum(SalesOrder salesOrder);
  224. /**
  225. * 按照批次查询订单项,并下载,订单列表主要按照订单项来排列
  226. * @param salesOrder
  227. * @return
  228. */
  229. List<SalesOrder> listSalesOrderAndItem(SalesOrder salesOrder);
  230. /**
  231. * 查询订单数量
  232. * @param salesOrder
  233. * @return
  234. */
  235. Integer getSalesOrderNum(SalesOrder salesOrder);
  236. /**
  237. * 批量确认订单 根据批次
  238. * @param salesBatchId
  239. * @return
  240. */
  241. Integer listConfirmSalesOrderByBatch(String salesBatchId);
  242. /**
  243. * 批量通知配货
  244. * @param salesOrder
  245. * @return
  246. */
  247. Integer noticeDistribution(SalesOrder salesOrder,Integer adminId);
  248. /**
  249. * 确认订单,需要传入完整的order
  250. * @param salesId
  251. * @return
  252. */
  253. Integer confirmSalesOrder(Integer salesId);
  254. /**
  255. * 分配物流方式
  256. * @param salesOrder
  257. * @return
  258. */
  259. Integer distributionExpress(SalesOrder salesOrder);
  260. /**
  261. * 批量分配快递方式
  262. * @param salesOrder
  263. * @return
  264. */
  265. Integer listSalesPostFirm(SalesOrder salesOrder,Integer adminId);
  266. /**
  267. * 批量分配快递方式
  268. * @param salesOrder
  269. * @return
  270. */
  271. Integer listSalesPostFirmByIds(SalesOrder salesOrder,Integer adminId);
  272. /**
  273. * 查询订单
  274. * @param postNum
  275. * @return
  276. */
  277. SalesOrder getSalesOrderByPostNum(String postNum);
  278. /**
  279. * 出库
  280. * @param salesOrder
  281. * @return
  282. */
  283. Integer updateDeliver(SalesOrder salesOrder);
  284. /**
  285. * 减少库存
  286. * @param salesId
  287. * @return
  288. */
  289. boolean updateInventory(Integer salesId,Integer salesWarehouseId);
  290. /**
  291. * 标记未出库时返还库存
  292. * @param salesId
  293. * @return
  294. */
  295. boolean returnInventory(Integer salesId,Integer salesWarehouseId);
  296. /**
  297. * 获取出库数量
  298. * @param salesOrder
  299. * @return
  300. */
  301. List<SalesOrderItem> getDeliverNum(SalesOrder salesOrder);
  302. /**
  303. * 获取未发货有哪些时间
  304. * @param
  305. * @return
  306. */
  307. List<Date> getNotSendDate();
  308. /**
  309. * 查询订单集合与订单项集合
  310. * @param salesOrder
  311. * @return
  312. */
  313. List<SalesOrder> salesOrderListAndItem(SalesOrder salesOrder);
  314. /**
  315. * 订单统计列表
  316. * @param pageNO
  317. * @param pageSize
  318. * @param salesOrder
  319. * @param isTotalNum
  320. * @return
  321. */
  322. public PagedResult<SalesOrder> salesOrderListAndItemPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum);
  323. /**
  324. * 查询订单项集合
  325. * @return
  326. */
  327. List<SalesOrderItem> selectSalesOrderItemList(Integer salesId);
  328. /**
  329. * 添加更正信息
  330. * @param orderCorrectInfo
  331. * @return
  332. */
  333. Boolean addCorrectInfo(OrderCorrectInfo orderCorrectInfo, String arrayItem, Admin admin);
  334. /**
  335. * 添加更正信息项
  336. * @param OrderCorrectItem
  337. * @return
  338. */
  339. Integer addCorrectItem(OrderCorrectItem OrderCorrectItem );
  340. /**
  341. * 获取更正信息
  342. * @param correctId
  343. * @return
  344. */
  345. OrderCorrectInfo getOrderCorrectInfo(Integer correctId);
  346. /**
  347. * 获取更正信息项
  348. * @param correctId
  349. * @return
  350. */
  351. List<OrderCorrectItem> listOrderCorrectItem(Integer correctId);
  352. /**
  353. * 获取订单项
  354. * @param itemId
  355. * @return
  356. */
  357. SalesOrderItem getSalesOrderItem(Integer itemId);
  358. /**
  359. * 修改订单项数量
  360. * @param salesOrderItem
  361. * @return
  362. */
  363. Integer updateOrderItemById(SalesOrderItem salesOrderItem);
  364. /**
  365. * 查询更正信息集合
  366. * @param orderId
  367. * @return
  368. */
  369. List<OrderCorrectInfo> listOrderCorrectInfo(Integer orderId);
  370. /**
  371. * 根据当前登录人获取所属仓库
  372. * @param adminId
  373. * @return
  374. */
  375. OrderWarehouse selectAdminWarehouse(Integer adminId);
  376. /**
  377. * 获取所有仓库信息
  378. * @return
  379. */
  380. List<OrderWarehouse> listOrderWarehouse();
  381. /**
  382. * 专用于 - 销售统计
  383. * @return
  384. */
  385. List<SalesOrder> salesOrderAndItemStat(SalesOrder salesOrder);
  386. /**
  387. * 拆单
  388. * @param mainOrderId
  389. * @param salesOrderList
  390. * @return
  391. */
  392. Integer splitOrder(String mainOrderId, List<SalesOrder> salesOrderList,Integer adminId);
  393. /**
  394. * 根据店铺id获取售后规则
  395. */
  396. AfterrulesInfo getAfterrulesInfo(Integer storeId);
  397. /**
  398. * 修改订单项退货数据
  399. */
  400. Integer updateOrderItemReturnNum(SalesOrderItem salesOrderItem);
  401. /**
  402. * 查询售后短信签名
  403. */
  404. List<SmsSignatureInfo> listSmsSignatureInfo(SmsSignatureInfo smsSignatureInfo);
  405. /**
  406. * 查询售后短信模板
  407. */
  408. List<SmsTemplateInfo> listSmsTemplateInfo(SmsTemplateInfo smsTemplateInfo);
  409. /**
  410. * 查询订单各个状态数量
  411. */
  412. SalesOrder getStatusNum();
  413. /**
  414. * 根据订单号查询订单
  415. */
  416. SalesOrder getSalesOrderByOrderId(String salesOrderId);
  417. /**
  418. * 修改订单项
  419. */
  420. Integer updateOrderItemObj(SalesOrderItem salesOrderItem);
  421. /**
  422. * 根据订单号修改邮费成本
  423. */
  424. Integer updateSalesOrderBySalesPostNum(SalesOrder salesOrder);
  425. /**
  426. * 根据收件人信息查询字母单
  427. */
  428. List<SalesOrder> listSalesOrderByAddr(SalesOrder salesOrder);
  429. /**
  430. *查询子订单数量
  431. */
  432. List<SalesOrder> listSublistCount(Integer salesId);
  433. /**
  434. *查询一天的发货总数
  435. */
  436. List<LogisticsInfo> dayDeliveryNum(LogisticsInfo logisticsInfo);
  437. /**
  438. *添加拉货数量
  439. */
  440. Integer addCargoInfo(CargoInfo cargoInfo);
  441. /**
  442. *查询拉货信息
  443. */
  444. CargoInfo getCargoInfo(CargoInfo cargoInfo);
  445. /**
  446. *修改拉货信息
  447. */
  448. Integer updateCargoInfo(CargoInfo cargoInfo);
  449. /**
  450. *查询通知配货数量
  451. */
  452. List<OrderStatisticsInfo> listDistributionNum(OrderStatisticsInfo orderStatisticsInfo);
  453. /**
  454. *查询通知配货数量
  455. */
  456. List<OrderStatisticsInfo> listSendNum(OrderStatisticsInfo orderStatisticsInfo);
  457. /**
  458. *查询某天所有拉货数量
  459. */
  460. List<CargoInfo> listCargoInfo(CargoInfo cargoInfo);
  461. /**
  462. *查询打单数量
  463. */
  464. List<OrderStatisticsInfo> listPlaySingleNum(OrderStatisticsInfo orderStatisticsInfo);
  465. /**
  466. *查询出库数量
  467. */
  468. List<OrderStatisticsInfo> listOutboundNum(OrderStatisticsInfo orderStatisticsInfo);
  469. /**
  470. *作废数量,根据通知配货时间查询
  471. */
  472. List<OrderStatisticsInfo> listDistributionInvalidNum(OrderStatisticsInfo orderStatisticsInfo);
  473. /**
  474. *作废数量,根据下单时间查询
  475. */
  476. List<OrderStatisticsInfo> listSendInvalidNum(OrderStatisticsInfo orderStatisticsInfo);
  477. /**
  478. *通知配货数量查询各物流发货数量
  479. */
  480. List<OrderStatisticsInfo> listDeliveryLogisticsNum(OrderStatisticsInfo orderStatisticsInfo);
  481. /**
  482. *定时任务-查询没有揽件时间的订单
  483. */
  484. List<SalesOrder> orderAfterCaseDate();
  485. /**
  486. *查询拣货单信息
  487. */
  488. List<OrderStatisticsInfo> getPickingOrders(OrderStatisticsInfo orderStatisticsInfo);
  489. /**
  490. *查询核对单信息
  491. */
  492. List<OrderStatisticsInfo> getCheckOrders(OrderStatisticsInfo orderStatisticsInfo);
  493. /**
  494. *订单跟踪添加
  495. */
  496. Integer addTracking(OrderTracking orderTracking);
  497. /**
  498. *订单跟踪查询
  499. */
  500. List<OrderTracking> listTracking(String salesDealCode);
  501. /**
  502. *查询手动修改订单号状态的订单数据
  503. */
  504. List<SalesOrder> listUpdateOrderShippingStatus();
  505. /**
  506. *修改订单打单状态信息
  507. */
  508. Integer updateSalesOrderShippingStatus(SalesOrder salesOrder);
  509. /**
  510. *添加快递策略产品项
  511. */
  512. Integer addStrategyProduct(StrategyProduct strategyProduct);
  513. /**
  514. *添加快递策略颜色项
  515. */
  516. Integer addStrategyColor(StrategyColor strategyColor);
  517. /**
  518. *添加快递策略店铺项
  519. */
  520. Integer addStrategyStore(StrategyStore strategyStore);
  521. }