SalesOrderServiceImpl.java 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017
  1. package com.iamberry.rst.service.cm;
  2. import com.github.pagehelper.PageHelper;
  3. import com.iamberry.rst.core.address.Province;
  4. import com.iamberry.rst.core.cm.FittingsInfo;
  5. import com.iamberry.rst.core.cm.SalesOrder;
  6. import com.iamberry.rst.core.cm.SalesOrderItem;
  7. import com.iamberry.rst.core.cm.StoreInfo;
  8. import com.iamberry.rst.core.order.*;
  9. import com.iamberry.rst.core.page.PagedResult;
  10. import com.iamberry.rst.core.sys.SysConfig;
  11. import com.iamberry.rst.core.tools.LogisticsInfo;
  12. import com.iamberry.rst.faces.address.AddressService;
  13. import com.iamberry.rst.faces.cm.SalesOrderService;
  14. import com.iamberry.rst.faces.cm.StoreInfoService;
  15. import com.iamberry.rst.faces.order.EfastOrderService;
  16. import com.iamberry.rst.faces.product.ProductService;
  17. import com.iamberry.rst.service.cm.mapper.FittingsInfoMapper;
  18. import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
  19. import com.iamberry.rst.service.order.mapper.LogisticsInfoMapper;
  20. import com.iamberry.rst.service.order.mapper.ProvincesLogisticsMapper;
  21. import com.iamberry.rst.service.sys.mapper.SysConfigMapper;
  22. import com.iamberry.rst.util.PageUtil;
  23. import com.iamberry.wechat.tools.DateTimeUtil;
  24. import net.sf.json.JSONArray;
  25. import net.sf.json.JSONObject;
  26. import org.slf4j.Logger;
  27. import org.slf4j.LoggerFactory;
  28. import org.springframework.beans.BeanUtils;
  29. import org.springframework.beans.factory.annotation.Autowired;
  30. import org.springframework.stereotype.Service;
  31. import org.springframework.transaction.annotation.Transactional;
  32. import java.beans.Transient;
  33. import java.util.*;
  34. /**
  35. * Created by liuzhiwei on 2017/10/31.
  36. */
  37. @Service
  38. public class SalesOrderServiceImpl implements SalesOrderService {
  39. private static Logger logger = LoggerFactory.getLogger(CustomerServiceImpl.class);
  40. @Autowired
  41. private SalesOrderMapper salesOrderMapper;
  42. @Autowired
  43. private ProductService productService;
  44. @Autowired
  45. private StoreInfoService storeInfoService;
  46. @Autowired
  47. private EfastOrderService efastOrderService;
  48. @Autowired
  49. private SalesOrderService salesOrderService;
  50. @Autowired
  51. private FittingsInfoMapper fittingsInfoMapper;
  52. @Autowired
  53. private SysConfigMapper sysConfigMapper;
  54. @Autowired
  55. private AddressService addressService;
  56. @Autowired
  57. private ProvincesLogisticsMapper provincesLogisticsMapper;
  58. @Override
  59. public Integer addSalesOrder(SalesOrder salesOrder) {
  60. return salesOrderMapper.addSalesOrder(salesOrder);
  61. }
  62. @Override
  63. @Transactional
  64. public Integer addSalesOrderManual(SalesOrder salesOrder) {
  65. salesOrderMapper.addSalesOrder(salesOrder);
  66. return null;
  67. }
  68. @Override
  69. public SalesOrder getSalesOrderById(Integer salesId) {
  70. return salesOrderMapper.getSalesOrderById(salesId);
  71. }
  72. @Override
  73. public Integer updateSalesOrder(SalesOrder salesOrder) {
  74. return salesOrderMapper.updateSalesOrder(salesOrder);
  75. }
  76. @Transactional
  77. @Override
  78. public Integer updateOrderInfo(SalesOrder salesOrder) {
  79. int flag = 0;
  80. //删除订单项
  81. flag = salesOrderMapper.delOrderItem(salesOrder.getSalesId());
  82. if (flag <= 0) {
  83. throw new RuntimeException("删除订单项失败!");
  84. }
  85. //修改订单
  86. salesOrderMapper.updateSalesOrder(salesOrder);
  87. if (flag <= 0) {
  88. throw new RuntimeException("修改订单失败!");
  89. }
  90. //批量添加订单项数据
  91. flag = salesOrderMapper.addOrderItemList(salesOrder.getSalesOrderItemList());
  92. if (flag <= 0) {
  93. throw new RuntimeException("增加订单项失败!");
  94. }
  95. return flag;
  96. }
  97. @Override
  98. public Integer addSalesOrderList(List<SalesOrder> list) {
  99. return salesOrderMapper.addSalesOrderList(list);
  100. }
  101. @Override
  102. public List<SalesOrder> listSalesOrder(SalesOrder salesOrder) {
  103. return salesOrderMapper.listSalesOrder(salesOrder);
  104. }
  105. @Override
  106. public Integer listSalesOrderNum(SalesOrder salesOrder) {
  107. return salesOrderMapper.listSalesOrderNum(salesOrder);
  108. }
  109. @Override
  110. public PagedResult<SalesOrder> listSalesOrderPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum) {
  111. salesOrder.setStartOrderNO((pageNO-1) * pageSize);
  112. salesOrder.setEndOrderNO(pageSize);
  113. //查询订单列表信息
  114. List<SalesOrder> orderList = salesOrderMapper.listSalesOrderNew(salesOrder);
  115. for(SalesOrder so : orderList){
  116. SalesOrderItem salesOrderItem = new SalesOrderItem();
  117. salesOrderItem.setItemOrderId(so.getSalesId());
  118. List<SalesOrderItem> salesOrderItemList = salesOrderMapper.listSalesOrderItem(salesOrderItem);
  119. so.setSalesOrderItemList(salesOrderItemList);
  120. }
  121. PagedResult<SalesOrder> result = PageUtil.getPage(orderList);
  122. // 查询分页的数据
  123. int count = salesOrderMapper.listSalesOrderNum(salesOrder);
  124. result.setTotal(count);
  125. if(count%pageSize==0){
  126. count=count/pageSize;
  127. } else{
  128. count=count/pageSize+1;
  129. }
  130. result.setPages(count);
  131. result.setPageNo(pageNO);
  132. result.setPageSize(pageSize);
  133. return result;
  134. }
  135. @Override
  136. public List<PostInfo> listWaitPrintOrderNum() {
  137. return salesOrderMapper.listWaitPrintOrderNum();
  138. }
  139. @Override
  140. public PagedResult<SalesOrder> listAwaitSendSalesOrderPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum) {
  141. PageHelper.startPage(pageNO, pageSize, isTotalNum);
  142. //查询订单列表信息
  143. List<SalesOrder> orderList = salesOrderMapper.listAwaitSendSalesOrderPage(salesOrder);
  144. return PageUtil.getPage(orderList);
  145. }
  146. @Override
  147. @Transactional
  148. public boolean addOrderAndItem(SalesOrder salesOrder, List<SalesOrderItem> list) throws Exception {
  149. if (list == null || list.size() == 0) {
  150. throw new RuntimeException("获取订单信息出错!");
  151. }
  152. SalesOrder verifyOrder = new SalesOrder();
  153. verifyOrder.setSalesOrderId(salesOrder.getSalesOrderId());
  154. //查询该订单是否存在,如果存在,不需要再次添加到订单中
  155. int count = salesOrderMapper.getOrderInfoCount(verifyOrder);
  156. if (count > 0) {
  157. return true;
  158. }
  159. //添加订单数据
  160. try {
  161. int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
  162. if (orderNum <= 0) {
  163. throw new RuntimeException("获取订单信息出错!");
  164. }
  165. } catch (Exception e) {
  166. return true;
  167. }
  168. for (SalesOrderItem item : list) {
  169. item.setItemOrderId(salesOrder.getSalesId());
  170. }
  171. //批量添加订单项数据
  172. int itemNum = salesOrderMapper.addOrderItemList(list);
  173. if (itemNum <= 0) {
  174. throw new RuntimeException("获取订单信息出错!");
  175. }
  176. return true;
  177. }
  178. @Override
  179. @Transactional
  180. public SalesOrder addOrderAndIteminfo(SalesOrder salesOrder, List<SalesOrderItem> list) {
  181. //添加订单数据
  182. int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
  183. if (orderNum <= 0) {
  184. return salesOrder;
  185. }
  186. for (SalesOrderItem item : list) {
  187. item.setItemOrderId(salesOrder.getSalesId());
  188. }
  189. //批量添加订单项数据
  190. int itemNum = salesOrderMapper.addOrderItemList(list);
  191. if (itemNum <= 0) {
  192. return salesOrder;
  193. }
  194. return salesOrder;
  195. }
  196. public void parseOrder(SalesOrder oginerOrder, List<SalesOrder> listOrder) {
  197. // 订单项拆分完成,直接返回
  198. if (oginerOrder.getSalesOrderItemList().size() <= 0) {
  199. return;
  200. }
  201. List<DownsingleRuleInfo> listDownsingleRuleInfo = salesOrderService.listDownsingleRule();
  202. if(listDownsingleRuleInfo.size() < 1){
  203. listOrder.add(oginerOrder);
  204. return;
  205. }
  206. // 拆单,比较的是数量和产品
  207. Map<String, SalesOrderItem> itemMap = new HashMap<>(oginerOrder.getSalesOrderItemList().size());
  208. for (SalesOrderItem item : oginerOrder.getSalesOrderItemList()) {
  209. SalesOrderItem itemTwo = new SalesOrderItem();
  210. BeanUtils.copyProperties(item,itemTwo);
  211. itemMap.put(item.getItemColorBar(), itemTwo);
  212. }
  213. // 遍历拆单规则
  214. int ruleCount = 0;
  215. for (DownsingleRuleInfo rule : listDownsingleRuleInfo) {
  216. // 一个拆单规则
  217. int count = 0;
  218. for (DownsingleRuleItemInfo item : rule.getDownsingleRuleItemList()) {
  219. if (itemMap.get(item.getDownsingleItemBar()) != null) {
  220. if (item.getDownsingleItemNum() <= itemMap.get(item.getDownsingleItemBar()).getItemNum()) {
  221. count ++;
  222. }
  223. }
  224. }
  225. if (count == rule.getDownsingleRuleItemList().size()) {
  226. // 满足拆单条件
  227. SalesOrder newOrder = new SalesOrder();
  228. BeanUtils.copyProperties(oginerOrder,newOrder);
  229. newOrder.setSalesOrderItemList(new ArrayList<SalesOrderItem>(count));
  230. for (DownsingleRuleItemInfo item : rule.getDownsingleRuleItemList()) {
  231. SalesOrderItem temp = new SalesOrderItem();
  232. BeanUtils.copyProperties(itemMap.get(item.getDownsingleItemBar()),temp);
  233. temp.setItemNum(item.getDownsingleItemNum());
  234. newOrder.getSalesOrderItemList().add(temp);
  235. }
  236. listOrder.add(newOrder);
  237. // 继续递归
  238. for (DownsingleRuleItemInfo item : rule.getDownsingleRuleItemList()) {
  239. if (item.getDownsingleItemNum().equals(itemMap.get(item.getDownsingleItemBar()).getItemNum())) {
  240. // 数量和拆单规则相同,则删除原订单的订单项
  241. /*oginerOrder.getSalesOrderItemList().remove(itemMap.get(item.getDownsingleItemBar()));*/
  242. for(int i = 0;i<oginerOrder.getSalesOrderItemList().size();i++){
  243. if(oginerOrder.getSalesOrderItemList().get(i).getItemColorBar() .equals(item.getDownsingleItemBar())){
  244. oginerOrder.getSalesOrderItemList().remove(i);
  245. }
  246. }
  247. } else {
  248. // SalesOrderItem orderItem = itemMap.get(item.getDownsingleItemBar());
  249. SalesOrderItem orderItem = new SalesOrderItem();
  250. BeanUtils.copyProperties(itemMap.get(item.getDownsingleItemBar()),orderItem);
  251. int oldCount = orderItem.getItemNum();
  252. /*orderItem.setItemNum(oldCount - item.getDownsingleItemNum());*/
  253. for(int i = 0;i<oginerOrder.getSalesOrderItemList().size();i++){
  254. if(oginerOrder.getSalesOrderItemList().get(i).getItemColorBar() .equals(item.getDownsingleItemBar())){
  255. oginerOrder.getSalesOrderItemList().get(i).setItemNum(oldCount - item.getDownsingleItemNum());
  256. }
  257. }
  258. }
  259. }
  260. salesOrderService.parseOrder(oginerOrder, listOrder);
  261. break;
  262. } else {
  263. // 不满足, 继续下一个规则
  264. // 如果是最后一个拆单规则,则不拆单
  265. if ((ruleCount + 1) == listDownsingleRuleInfo.size()) {
  266. if (oginerOrder.getSalesOrderItemList().size() > 0) {
  267. listOrder.add(oginerOrder);
  268. }
  269. }
  270. }
  271. ruleCount++;
  272. }
  273. }
  274. @Override
  275. @Transactional
  276. public boolean addRstOrderAndIteminfo(SalesOrder salesOrder){
  277. //合并订单项-------------statr
  278. List<SalesOrderItem> listItem = salesOrder.getSalesOrderItemList();
  279. salesOrder.setSalesOrderItemList(null);
  280. List<SalesOrderItem> list = new ArrayList<>();
  281. for (int i = 0;i<listItem.size();i++){
  282. if(i < listItem.size() - 1 ){
  283. for(int j = 0;j<listItem.size();j++){
  284. if (i != j){
  285. if(listItem.get(i).getItemColorBar().equals(listItem.get(j).getItemColorBar())){
  286. listItem.get(i).setItemNum(listItem.get(i).getItemNum()+listItem.get(j).getItemNum());
  287. }
  288. }
  289. }
  290. }
  291. boolean bl = true;
  292. for (SalesOrderItem salesOrderItem : list){
  293. if(salesOrderItem.getItemColorBar().equals(listItem.get(i).getItemColorBar())){
  294. bl = false;
  295. }
  296. }
  297. if(bl){
  298. list.add(listItem.get(i));
  299. }
  300. }
  301. //合并订单项----------------------end
  302. //匹配拆单规则 分割订单-------------state
  303. List<SalesOrder> listSalesOrder = new ArrayList<>();
  304. salesOrder.setSalesOrderItemList(list);
  305. salesOrderService.parseOrder(salesOrder, listSalesOrder);
  306. //匹配拆单规则 分割订单-------------end
  307. boolean msg = false;
  308. /*根据省份来分配物流公司*/
  309. salesOrderService.setProvincesLogistics(listSalesOrder);
  310. //判断主从订单--------------------state
  311. if (listSalesOrder.size() > 0){
  312. SalesOrder mainOrder = null;
  313. for (int s = 0;s < listSalesOrder.size();s++){
  314. if(mainOrder == null){
  315. for(int i = 0;i<listSalesOrder.get(s).getSalesOrderItemList().size();i++){
  316. int isMachine = salesOrderService.getIsMachine(listSalesOrder.get(s).getSalesOrderItemList().get(i).getItemColorBar());
  317. if( isMachine == 1){//1:水机 2:其它产品 0:未查到
  318. mainOrder = listSalesOrder.get(s);
  319. listSalesOrder.remove(s);
  320. break;
  321. }
  322. }
  323. }
  324. }
  325. if(mainOrder == null){//如果不存有水机的订单则默认第一个订单为主订单
  326. mainOrder = listSalesOrder.get(0);
  327. listSalesOrder.remove(0);
  328. }
  329. //判断主从订单--------------------end
  330. msg = salesOrderService.addRstOrderinfo(mainOrder,listSalesOrder);
  331. }
  332. return msg;
  333. }
  334. @Override
  335. @Transactional
  336. public boolean addRstOrderinfo(SalesOrder mainOrder,List<SalesOrder> listSalesOrder) {
  337. Integer flag = salesOrderMapper.getOrderBySalesDealCodeNum(mainOrder.getSalesDealCode());
  338. if(flag > 0){
  339. throw new RuntimeException("交易号("+ mainOrder.getSalesDealCode() +")重复,请重新生成交易号!");
  340. }
  341. if(mainOrder.getSalesCreateTime() == null){
  342. /*保证时间与以前一样*/
  343. mainOrder.setSalesCreateTime(new Date());
  344. }
  345. int orderNum = salesOrderMapper.addSalesOrder(mainOrder);
  346. if (orderNum <= 0) {
  347. throw new RuntimeException("添加订单出错--------!");
  348. }
  349. for (SalesOrderItem item : mainOrder.getSalesOrderItemList()) {
  350. item.setItemOrderId(mainOrder.getSalesId());
  351. }
  352. //批量添加订单项数据
  353. int itemNum = salesOrderMapper.addOrderItemList(mainOrder.getSalesOrderItemList());
  354. if (itemNum <= 0) {
  355. throw new RuntimeException("添加订单出错--------!");
  356. }else{
  357. if(listSalesOrder.size() > 0){
  358. for (int i = 0;i<listSalesOrder.size();i++){
  359. listSalesOrder.get(i).setSalesDealCode(listSalesOrder.get(i).getSalesDealCode()+"-"+(i+1));
  360. listSalesOrder.get(i).setSalesMainOrderId(mainOrder.getSalesId());
  361. listSalesOrder.get(i).setSalesId(null);
  362. orderNum = salesOrderMapper.addSalesOrder(listSalesOrder.get(i));
  363. if (orderNum <= 0) {
  364. throw new RuntimeException("添加订单出错--------!");
  365. }
  366. for (SalesOrderItem item : listSalesOrder.get(i).getSalesOrderItemList()) {
  367. item.setItemOrderId(listSalesOrder.get(i).getSalesId());
  368. }
  369. //批量添加订单项数据
  370. itemNum = salesOrderMapper.addOrderItemList(listSalesOrder.get(i).getSalesOrderItemList());
  371. if (itemNum <= 0) {
  372. throw new RuntimeException("添加订单出错--------!");
  373. }
  374. }
  375. }
  376. }
  377. return true;
  378. }
  379. /**
  380. * 根据省份来分配物流公司
  381. * @param listSalesOrder
  382. * @return
  383. */
  384. @Override
  385. public void setProvincesLogistics(List<SalesOrder> listSalesOrder){
  386. for (SalesOrder salesOrder:listSalesOrder) {
  387. boolean flag = false;
  388. for (SalesOrderItem salesOrderItem:salesOrder.getSalesOrderItemList()) {
  389. ProductColor productColor = productService.getColorByBar(salesOrderItem.getItemColorBar());
  390. if(productColor.getColorIsMachine() == 1){
  391. flag = true;
  392. }
  393. }
  394. if(flag){
  395. String addresses[] = salesOrder.getSalesAddressInfo().split("-");
  396. if(addresses == null || addresses.length < 3){
  397. addresses = salesOrder.getSalesAddressInfo().split(" ");
  398. }
  399. if(addresses == null || addresses.length < 3){
  400. addresses = salesOrder.getSalesAddressInfo().split("_");
  401. }
  402. if(addresses == null || addresses.length < 3){
  403. break;
  404. }
  405. String provincesStr = addresses[0];
  406. provincesStr = provincesStr.substring(0,2);
  407. ProvincesLogistics provincesLogistics = new ProvincesLogistics();
  408. provincesLogistics.setProvince(provincesStr);
  409. List<ProvincesLogistics> provincesLogisticsList = provincesLogisticsMapper.getProvincesLogisticsList(provincesLogistics);
  410. if(provincesLogisticsList == null || provincesLogisticsList.size() < 1){
  411. /*未查到地址*/
  412. break;
  413. }
  414. //设置快递公司
  415. provincesLogistics = provincesLogisticsList.get(0);
  416. if(provincesLogistics.getLogisticsRstCode() != null){
  417. salesOrder.setSalesPostFirm(provincesLogistics.getLogisticsRstCode());
  418. }
  419. }
  420. }
  421. }
  422. @Override
  423. public List<SalesOrderItem> listSalesOrderItem(SalesOrderItem salesOrderItem) {
  424. return salesOrderMapper.listSalesOrderItem(salesOrderItem);
  425. }
  426. @Override
  427. public Integer updateOrderList(JSONArray orderList, List<SalesOrder> list) {
  428. List<SalesOrder> salesOrders = new ArrayList<SalesOrder>();
  429. //订单号相同时,判断状态,发货状态,物流公司,物流单号等是否相同,如果有一个不同,则需添加到salesOrders中进行同步
  430. for (int i = 0;i < orderList.size();i++) {
  431. JSONObject orderInfo = orderList.getJSONObject(i);
  432. for (SalesOrder salesOrder : list) {
  433. if (orderInfo.get("order_sn").equals(salesOrder.getSalesOrderId())
  434. && !(orderInfo.getInt("order_status") == salesOrder.getSalesStatus()
  435. && orderInfo.getInt("shipping_status") == salesOrder.getSalesShippingStatus()
  436. && orderInfo.getInt("pay_status") == salesOrder.getSalesPayStatus()
  437. && orderInfo.getInt("process_status") == salesOrder.getSalesProcessStatus()
  438. && orderInfo.getInt("is_send") == salesOrder.getSalesIsSend()
  439. && orderInfo.getInt("is_locked") == salesOrder.getSalesIsLocked()
  440. && orderInfo.getInt("is_separate") == salesOrder.getSalesIsSeparate()
  441. && orderInfo.getString("shipping_name").equals(salesOrder.getSalesPostFirm())
  442. && orderInfo.getString("invoice_no").equals(salesOrder.getSalesPostNum())
  443. )) {
  444. SalesOrder order = new SalesOrder();
  445. order.setSalesId(salesOrder.getSalesId());
  446. order.setSalesStatus(orderInfo.getInt("order_status"));
  447. order.setSalesShippingStatus(orderInfo.getInt("shipping_status"));
  448. order.setSalesPayStatus(orderInfo.getInt("pay_status"));
  449. order.setSalesProcessStatus(orderInfo.getInt("process_status"));
  450. order.setSalesIsSend(orderInfo.getInt("is_send"));
  451. order.setSalesIsLocked(orderInfo.getInt("is_locked"));
  452. order.setSalesIsSeparate(orderInfo.getInt("is_separate"));
  453. order.setSalesPostFirm(orderInfo.getString("shipping_name"));
  454. order.setSalesPostNum(orderInfo.getString("invoice_no"));
  455. salesOrders.add(order);
  456. }
  457. }
  458. }
  459. if (salesOrders != null && salesOrders.size() > 0) {
  460. //批量修改订单状态等信息
  461. return salesOrderMapper.updateOrderList(salesOrders);
  462. } else {
  463. return 1;
  464. }
  465. }
  466. @Override
  467. public Integer updateReturnOrderList(JSONArray orderList, List<SalesOrder> list) {
  468. List<SalesOrder> salesOrders = new ArrayList<SalesOrder>();
  469. //订单号相同时,判断状态,发货状态,物流公司,物流单号等是否相同,如果有一个不同,则需添加到salesOrders中进行同步
  470. for (int i = 0;i < orderList.size();i++) {
  471. JSONObject orderInfo = orderList.getJSONObject(i);
  472. for (SalesOrder salesOrder : list) {
  473. if (orderInfo.get("relating_order_sn").equals(salesOrder.getSalesOrderId())) {
  474. SalesOrder order = new SalesOrder();
  475. switch (orderInfo.getInt("process_type")) {
  476. case 1://退货
  477. order.setSalesOrderStatus(3);
  478. break;
  479. case 4://换货
  480. order.setSalesOrderStatus(2);
  481. break;
  482. default:
  483. order.setSalesOrderStatus(3);
  484. break;
  485. }
  486. order.setSalesId(salesOrder.getSalesId());
  487. salesOrders.add(order);
  488. }
  489. }
  490. }
  491. //批量修改订单状态等信息
  492. return salesOrderMapper.updateOrderList(list);
  493. }
  494. @Override
  495. public void addSalesOrderList(JSONObject obj) throws Exception{
  496. if (obj == null) {
  497. return;
  498. }
  499. JSONArray orderList = obj.getJSONArray("list");
  500. if (orderList == null || orderList.size() == 0) {
  501. return;
  502. }
  503. String endTime = sysConfigMapper.getSysConfig(1);
  504. for (int i = 0;i < orderList.size();i++) {
  505. JSONObject order = orderList.getJSONObject(i);
  506. //获取订单详情
  507. JSONObject orderInfo = null;
  508. try{
  509. orderInfo = efastOrderService.getOrderFormEfast(order.getString("deal_code"));
  510. }catch (Exception e){
  511. logger.info("获取订单失败;异常编号:505;失败原因:"+ e.getMessage() +"--获取失败订单号:" + orderList.getJSONObject(i).getString("deal_code"));
  512. }
  513. if (orderInfo == null) {
  514. continue;
  515. }
  516. if (!orderInfo.has("orders")) {
  517. continue;
  518. }
  519. //获取订单项集合
  520. JSONArray itemArray = orderInfo.getJSONArray("orders");
  521. if (itemArray == null || itemArray.size() == 0) {
  522. continue;
  523. }
  524. SalesOrder salesOrder = new SalesOrder();
  525. salesOrder.setSalesOrderId(order.getString("order_sn"));//订单编号
  526. salesOrder.setSalesDealCode(order.getString("deal_code"));//交易号
  527. salesOrder.setSalesOrderStatus(1);//订单状态
  528. salesOrder.setSalesShippingStatus(order.getInt("shipping_status"));//发货状态 0:未发货,1:已发货,3:备货中
  529. salesOrder.setSalesPayStatus(order.getInt("pay_status"));//是否付款 0:未付款,2:已付款
  530. salesOrder.setSalesProcessStatus(order.getInt("process_status"));//单据状态
  531. salesOrder.setSalesIsSend(order.getInt("is_send"));//是否通知配货
  532. salesOrder.setSalesIsLocked(order.getInt("is_locked"));//是否锁定
  533. salesOrder.setSalesIsSeparate(order.getInt("is_separate"));//是否缺货
  534. salesOrder.setSalesStatus(order.getInt("order_status"));//订单状态 0:未确认,1:已确认,2:挂起,3:作废
  535. salesOrder.setSalesPostFirm(order.getString("shipping_name").trim());//快递方式代码
  536. salesOrder.setSalesPostNum(order.getString("invoice_no").trim());//快递单号
  537. salesOrder.setSalesOpenId(order.getString("mobile").trim());//唯一标识
  538. salesOrder.setSalesPayType(efastOrderService.getPayType(order.getString("pay_name").trim()));//支付方式
  539. salesOrder.setSalesPayTime(new Date(order.getLong("pay_time")*1000));//支付时间
  540. salesOrder.setSalesUserRemark(order.getString("postscript"));//买家留言
  541. salesOrder.setSalesAdminRemark(order.getString("to_buyer"));//商家留言
  542. salesOrder.setSalesAmount((int)(order.getDouble("order_amount")*100));//应付款
  543. salesOrder.setSalesPayMoney((int)(order.getDouble("money_paid")*100));//已付款
  544. salesOrder.setSalesAddressName(order.getString("consignee").trim());//收货人
  545. String mobile = order.getString("mobile").replaceAll("[\\u00A0]+", "").trim();
  546. salesOrder.setSalesAddressTel(mobile);//收货人电话
  547. salesOrder.setSalesAddressInfo(order.getString("address").replaceAll(" ","-"));//收货地址
  548. salesOrder.setSalesShippingFee((int)(order.getDouble("shipping_fee")*100));//邮费
  549. salesOrder.setSalesCreateTime(DateTimeUtil.parse(order.getString("create_time"),"yyyy-MM-dd HH:mm:ss"));//创建时间
  550. if (order.getInt("shipping_status") == 1) {
  551. if(order.has("delivery_time")){
  552. salesOrder.setSalesSendTime(DateTimeUtil.parse(order.getString("delivery_time"),"yyyy-MM-dd HH:mm:ss"));//发货时间
  553. }else{
  554. salesOrder.setSalesSendTime(new Date());//发货时间
  555. }
  556. }
  557. salesOrder.setSalesDiscountMoney(salesOrder.getSalesAmount() - salesOrder.getSalesPayMoney());//优惠金额
  558. salesOrder.setSalesPledgeMoney(0);//押金金额
  559. salesOrder.setSalesRemainDeposit(0);//待提取金额
  560. salesOrder.setSalesSendType(2);//发货方式,默认为物流发货
  561. salesOrder.setSalesSalesTime(salesOrder.getSalesCreateTime());//订购时间
  562. salesOrder.setSalesWaitMoney(0);//待付金额
  563. salesOrder.setSalesLastMoney(salesOrder.getSalesPayMoney());//本次支付金额
  564. salesOrder.setSalesPayNumber("0000");//支付尾号
  565. salesOrder.setSalesType(1);//订单类型
  566. endTime = order.getString("create_time"); //获取
  567. //查询店铺信息
  568. StoreInfo storeInfo = new StoreInfo();
  569. storeInfo.setStoreEfast(order.getString("sd_id"));
  570. List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
  571. int storeId = 0;
  572. int companyId = 0;
  573. if (storeList != null && storeList.size() > 0) {
  574. storeInfo = storeList.get(0);
  575. storeId = storeInfo.getStoreId();
  576. companyId = storeInfo.getCompanyId();
  577. }
  578. salesOrder.setSalesStoreId(storeId);//店铺id
  579. salesOrder.setSalesCompanyId(companyId);//销售公司id
  580. List<SalesOrderItem> itemList = new ArrayList<SalesOrderItem>();
  581. for (int j = 0;j < itemArray.size();j++) {
  582. ProductColor color = new ProductColor();
  583. JSONObject itemJson = itemArray.getJSONObject(j);
  584. SalesOrderItem item = new SalesOrderItem();
  585. color.setColorBar(itemJson.getString("goods_sn"));
  586. List<ProductColor> colorList = productService.listproductAndColor(color);
  587. if (colorList != null && colorList.size() > 0) {
  588. color = colorList.get(0);
  589. item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
  590. item.setItemNum(itemJson.getInt("goods_number"));//商品数量
  591. item.setItemCreateTime(salesOrder.getSalesCreateTime());
  592. item.setItemColorId(color.getColorId());
  593. item.setItemProductColor(color.getColorName());
  594. item.setItemProductDiscount(color.getColorDiscount());
  595. item.setItemProductId(color.getColorProductId());
  596. item.setItemProductName(color.getProductName());
  597. item.setItemProductPic(color.getColorPicture());
  598. item.setItemProductType(color.getProductType());
  599. item.setItemProductPrice(color.getColorPrice());
  600. item.setItemIsSource(1);
  601. itemList.add(item);
  602. } else {
  603. //获取配件信息
  604. FittingsInfo fittingsInfo = new FittingsInfo();
  605. fittingsInfo.setFittingsBar(itemJson.getString("goods_sn"));
  606. List<FittingsInfo> Fittings = fittingsInfoMapper.listFittings(fittingsInfo);
  607. if (Fittings == null || Fittings.size() == 0) {
  608. continue;
  609. }
  610. fittingsInfo = Fittings.get(0);
  611. item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
  612. item.setItemNum(itemJson.getInt("goods_number"));//商品数量
  613. item.setItemCreateTime(salesOrder.getSalesCreateTime());
  614. item.setItemColorId(fittingsInfo.getFittingsId());
  615. item.setItemProductColor(fittingsInfo.getFittingsName());
  616. item.setItemProductDiscount(fittingsInfo.getFittingsDiscount());
  617. item.setItemProductId(fittingsInfo.getProductId());
  618. item.setItemProductName(fittingsInfo.getFittingsName());
  619. item.setItemProductPic("");
  620. item.setItemProductType(0);
  621. item.setItemProductPrice(fittingsInfo.getFittingsPrice());
  622. item.setItemIsSource(2);
  623. itemList.add(item);
  624. }
  625. }
  626. //添加订单和订单项
  627. try{
  628. salesOrderService.addOrderAndItem(salesOrder,itemList);
  629. }catch (Exception e){
  630. logger.info("添加订单失败,异常编号:505;失败原因:+"+ e.getMessage() +"Efast编号:"+ salesOrder.getSalesOrderId());
  631. }
  632. }
  633. SysConfig sysConfig = new SysConfig(1,endTime);
  634. sysConfigMapper.updateSysConfig(sysConfig);
  635. }
  636. @Override
  637. @Transactional
  638. public boolean syncEfastOrder(JSONObject orderInfo) throws Exception {
  639. if (orderInfo == null) {
  640. throw new RuntimeException("获取Efast订单信息出错!");
  641. }
  642. if (!orderInfo.has("orders")) {
  643. throw new RuntimeException("获取Efast订单信息出错!");
  644. }
  645. //获取订单项集合
  646. JSONArray itemArray = orderInfo.getJSONArray("orders");
  647. if (itemArray == null || itemArray.size() == 0) {
  648. throw new RuntimeException("获取Efast订单信息出错!");
  649. }
  650. SalesOrder salesOrder = new SalesOrder();
  651. salesOrder.setSalesOrderId(orderInfo.getString("order_sn"));//订单编号
  652. salesOrder.setSalesDealCode(orderInfo.getString("deal_code"));//交易号
  653. salesOrder.setSalesOrderStatus(1);//订单状态
  654. salesOrder.setSalesShippingStatus(orderInfo.getInt("shipping_status"));//发货状态 0:未发货,1:已发货,3:备货中
  655. salesOrder.setSalesPayStatus(orderInfo.getInt("pay_status"));//是否付款 0:未付款,2:已付款
  656. salesOrder.setSalesProcessStatus(orderInfo.getInt("process_status"));//单据状态
  657. salesOrder.setSalesIsSend(orderInfo.getInt("is_send"));//是否通知配货
  658. salesOrder.setSalesIsLocked(orderInfo.getInt("is_locked"));//是否锁定
  659. salesOrder.setSalesIsSeparate(orderInfo.getInt("is_separate"));//是否缺货
  660. salesOrder.setSalesStatus(orderInfo.getInt("order_status"));//订单状态 0:未确认,1:已确认,2:挂起,3:作废
  661. salesOrder.setSalesPostFirm(new String(orderInfo.getString("shipping_name")).trim());//快递方式代码
  662. salesOrder.setSalesPostNum(new String(orderInfo.getString("invoice_no")).trim());//快递单号
  663. salesOrder.setSalesOpenId(orderInfo.getString("mobile").trim());//唯一标识
  664. salesOrder.setSalesPayType(efastOrderService.getPayType(orderInfo.getString("pay_name").trim()));//支付方式
  665. salesOrder.setSalesPayTime(new Date(orderInfo.getLong("pay_time")*1000));//支付时间
  666. salesOrder.setSalesUserRemark(orderInfo.getString("postscript"));//买家留言
  667. salesOrder.setSalesAdminRemark(orderInfo.getString("to_buyer"));//商家留言
  668. salesOrder.setSalesAmount((int)(orderInfo.getDouble("order_amount")*100));//应付款
  669. salesOrder.setSalesPayMoney((int)(orderInfo.getDouble("money_paid")*100));//已付款
  670. salesOrder.setSalesAddressName(orderInfo.getString("consignee"));//收货人
  671. String mobile = orderInfo.getString("mobile").replaceAll("[\\u00A0]+", "");
  672. salesOrder.setSalesAddressTel(mobile.trim());//收货人电话
  673. salesOrder.setSalesAddressInfo(orderInfo.getString("address").replaceAll(" ","-"));//收货地址
  674. salesOrder.setSalesShippingFee((int)(orderInfo.getDouble("shipping_fee")*100));//邮费
  675. salesOrder.setSalesCreateTime(new Date(orderInfo.getLong("pay_time")*1000));//创建时间
  676. if (orderInfo.getInt("shipping_status") == 1) {
  677. if(orderInfo.has("delivery_time")){
  678. salesOrder.setSalesSendTime(DateTimeUtil.parse(orderInfo.getString("delivery_time"),"yyyy-MM-dd HH:mm:ss"));//发货时间
  679. }else{
  680. salesOrder.setSalesSendTime(new Date());//发货时间
  681. }
  682. }
  683. salesOrder.setSalesDiscountMoney(salesOrder.getSalesAmount() - salesOrder.getSalesPayMoney());//优惠金额
  684. salesOrder.setSalesPledgeMoney(0);//押金金额
  685. salesOrder.setSalesRemainDeposit(0);//待提取金额
  686. salesOrder.setSalesSendType(2);//发货方式,默认为物流发货
  687. salesOrder.setSalesSalesTime(salesOrder.getSalesCreateTime());//订购时间
  688. salesOrder.setSalesWaitMoney(0);//待付金额
  689. salesOrder.setSalesLastMoney(salesOrder.getSalesPayMoney());//本次支付金额
  690. salesOrder.setSalesPayNumber("0000");//支付尾号
  691. salesOrder.setSalesType(1);//订单类型
  692. //查询店铺信息
  693. StoreInfo storeInfo = new StoreInfo();
  694. if (orderInfo.has("sd_id")) {
  695. storeInfo.setStoreEfast(orderInfo.getString("sd_id"));
  696. } else {
  697. storeInfo.setStoreEfast("1");
  698. }
  699. List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
  700. int storeId = 0;
  701. int companyId = 0;
  702. if (storeList != null && storeList.size() > 0) {
  703. storeInfo = storeList.get(0);
  704. storeId = storeInfo.getStoreId();
  705. companyId = storeInfo.getCompanyId();
  706. }
  707. salesOrder.setSalesStoreId(storeId);//店铺id
  708. salesOrder.setSalesCompanyId(companyId);//销售公司id
  709. List<SalesOrderItem> itemList = new ArrayList<SalesOrderItem>();
  710. for (int j = 0;j < itemArray.size();j++) {
  711. ProductColor color = new ProductColor();
  712. JSONObject itemJson = itemArray.getJSONObject(j);
  713. SalesOrderItem item = new SalesOrderItem();
  714. color.setColorBar(itemJson.getString("goods_barcode"));
  715. List<ProductColor> colorList = productService.listproductAndColor(color);
  716. if (colorList != null && colorList.size() > 0) {
  717. color = colorList.get(0);
  718. item.setItemColorBar(itemJson.getString("goods_barcode"));//商品69码
  719. item.setItemNum(itemJson.getInt("goods_number"));//商品数量
  720. item.setItemCreateTime(salesOrder.getSalesCreateTime());
  721. item.setItemColorId(color.getColorId());
  722. item.setItemProductColor(color.getColorName());
  723. item.setItemProductDiscount(color.getColorDiscount());
  724. item.setItemProductId(color.getColorProductId());
  725. item.setItemProductName(color.getProductName());
  726. item.setItemProductPic(color.getColorPicture());
  727. item.setItemProductType(color.getProductType());
  728. item.setItemProductPrice(color.getColorPrice());
  729. item.setItemIsSource(1);
  730. itemList.add(item);
  731. } else {
  732. //获取配件信息
  733. FittingsInfo fittingsInfo = new FittingsInfo();
  734. fittingsInfo.setFittingsBar(itemJson.getString("goods_barcode"));
  735. List<FittingsInfo> Fittings = fittingsInfoMapper.listFittings(fittingsInfo);
  736. if (Fittings == null || Fittings.size() == 0) {
  737. continue;
  738. }
  739. fittingsInfo = Fittings.get(0);
  740. item.setItemColorBar(itemJson.getString("goods_barcode"));//商品69码
  741. item.setItemNum(itemJson.getInt("goods_number"));//商品数量
  742. item.setItemCreateTime(salesOrder.getSalesCreateTime());
  743. item.setItemColorId(fittingsInfo.getFittingsId());
  744. item.setItemProductColor(fittingsInfo.getFittingsName());
  745. item.setItemProductDiscount(fittingsInfo.getFittingsDiscount());
  746. item.setItemProductId(fittingsInfo.getProductId());
  747. item.setItemProductName(fittingsInfo.getFittingsName());
  748. item.setItemProductPic("");
  749. item.setItemProductType(0);
  750. item.setItemProductPrice(fittingsInfo.getFittingsPrice());
  751. item.setItemIsSource(2);
  752. itemList.add(item);
  753. }
  754. }
  755. boolean flag = salesOrderService.addOrderAndItem(salesOrder,itemList);
  756. if (flag) {
  757. return true;
  758. } else {
  759. throw new RuntimeException("添加订单项出错!");
  760. }
  761. }
  762. @Override
  763. public Integer getOrderInfoCount(SalesOrder salesOrder) {
  764. return salesOrderMapper.getOrderInfoCount(salesOrder);
  765. }
  766. @Override
  767. public List<SalesOrder> listOrderExcel(SalesOrder salesOrder) {
  768. return salesOrderMapper.listOrderExcel(salesOrder);
  769. }
  770. @Override
  771. public Integer listOrderExcelNum(SalesOrder salesOrder) {
  772. return salesOrderMapper.listOrderExcelNum(salesOrder);
  773. }
  774. @Override
  775. public Integer delOrder(String orderId) {
  776. return salesOrderMapper.delOrder(orderId);
  777. }
  778. @Override
  779. @Transactional
  780. public Integer delSalesOrder(Integer id) {
  781. // 检查客诉是否使用订单,如果有使用订单,无法删除
  782. salesOrderMapper.delOrderItem(id);
  783. salesOrderMapper.delSalesOrder(id);
  784. return 1;
  785. }
  786. @Override
  787. public Integer updateOrderItem(SalesOrderItem salesOrderItem) {
  788. return salesOrderMapper.updateOrderItem(salesOrderItem);
  789. }
  790. @Override
  791. public SalesOrder getSalesOrderByLogistics(SalesOrder salesOrder) {
  792. return salesOrderMapper.getSalesOrderByLogistics(salesOrder);
  793. }
  794. @Override
  795. public Integer updateOrderListIsDownload(List<SalesOrder> list) {
  796. return salesOrderMapper.updateOrderListIsDownload(list);
  797. }
  798. @Override
  799. public Integer updateSalesOrderByDealCode(SalesOrder salesOrder) {
  800. return salesOrderMapper.updateSalesOrderByDealCode(salesOrder);
  801. }
  802. @Override
  803. public List<LogisticsInfo> getLogisticsInfo(LogisticsInfo logisticsInfo) {
  804. return salesOrderMapper.getLogisticsInfo(logisticsInfo);
  805. }
  806. @Override
  807. public List<DownsingleRuleInfo> listDownsingleRule() {
  808. return salesOrderMapper.listDownsingleRule();
  809. }
  810. @Override
  811. public Integer getIsMachine(String colorBar) {
  812. return salesOrderMapper.getIsMachine(colorBar);
  813. }
  814. @Override
  815. public Integer getOrderBySalesDealCodeNum(String code) {
  816. return salesOrderMapper.getOrderBySalesDealCodeNum(code);
  817. }
  818. @Override
  819. public Integer listSalesOrderAndItemNum(SalesOrder salesOrder) {
  820. return salesOrderMapper.listSalesOrderAndItemNum(salesOrder);
  821. }
  822. @Override
  823. public List<SalesOrder> listSalesOrderAndItem(SalesOrder salesOrder) {
  824. return salesOrderMapper.listSalesOrderAndItem(salesOrder);
  825. }
  826. @Override
  827. public Integer getSalesOrderNum(SalesOrder salesOrder) {
  828. return salesOrderMapper.getSalesOrderNum(salesOrder);
  829. }
  830. @Transactional
  831. @Override
  832. public Integer listConfirmSalesOrderByBatch(String salesBatchId) {
  833. Integer flag = 0;
  834. SalesOrder salesOrder = new SalesOrder();
  835. salesOrder.setSalesBatchId(salesBatchId);
  836. List<SalesOrder> salesOrderList = salesOrderMapper.listSalesOrder(salesOrder);
  837. if(salesOrderList == null || salesOrderList.size() < 1){
  838. throw new RuntimeException("查询订单失败!");
  839. }
  840. for (SalesOrder so:salesOrderList){
  841. flag = salesOrderService.confirmSalesOrder(so.getSalesId());
  842. }
  843. return flag;
  844. }
  845. @Override
  846. public Integer noticeDistribution(SalesOrder salesOrder) {
  847. // 检查订单是否已经有了配送方式,如果没有不允许通知配货 -- 移到controller中自己添加
  848. // SalesOrder temp = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
  849. // if (temp == null || temp.getSalesPostFirm() == null || temp.getSalesPostFirm().isEmpty()) {
  850. // return 0;
  851. // }
  852. return salesOrderMapper.noticeDistribution(salesOrder);
  853. }
  854. @Transactional
  855. @Override
  856. public Integer confirmSalesOrder(Integer saleId) {
  857. /*
  858. * 查询订单
  859. * 查询订单项
  860. * 删除订单
  861. * 修改查询的订单状态
  862. * 添加订单
  863. */
  864. if(saleId == null ){
  865. throw new RuntimeException("确认订单-订单id异常!");
  866. }
  867. SalesOrder salesOrder = salesOrderMapper.getSalesOrderById(saleId);
  868. if(salesOrder == null){
  869. throw new RuntimeException("确认订单-订单异常!");
  870. }
  871. Integer flag = 0;
  872. SalesOrderItem salesOrderItem = new SalesOrderItem();
  873. salesOrderItem.setItemOrderId(salesOrder.getSalesId());
  874. List<SalesOrderItem> salesOrderItemList = salesOrderMapper.listSalesOrderItem(salesOrderItem);
  875. if(salesOrderItemList == null || salesOrderItemList.size()<1){
  876. throw new RuntimeException("确认订单-查询订单项失败!");
  877. }
  878. salesOrder.setSalesOrderItemList(salesOrderItemList);
  879. flag = salesOrderMapper.delOrderById(salesOrder.getSalesId());
  880. if(flag < 1){
  881. throw new RuntimeException("确认订单-删除订单失败!");
  882. }
  883. flag = salesOrderMapper.delOrderItem(salesOrder.getSalesId());
  884. if(flag < 1){
  885. throw new RuntimeException("确认订单-删除订单项失败!");
  886. }
  887. //1:确认 状态
  888. salesOrder.setSalesStatus(1);
  889. boolean fl = salesOrderService.addRstOrderAndIteminfo(salesOrder);
  890. if(!fl){
  891. throw new RuntimeException("确认订单-添加订单失败!");
  892. }
  893. return flag;
  894. }
  895. @Override
  896. public Integer distributionExpress(SalesOrder salesOrder) {
  897. return salesOrderMapper.distributionExpress(salesOrder);
  898. }
  899. @Override
  900. public Integer listSalesPostFirm(SalesOrder salesOrder) {
  901. return salesOrderMapper.listSalesPostFirm(salesOrder);
  902. }
  903. @Override
  904. public SalesOrder getSalesOrderByPostNum(String postNum) {
  905. return salesOrderMapper.getSalesOrderByPostNum(postNum);
  906. }
  907. @Override
  908. public Integer updateDeliver(SalesOrder salesOrder) {
  909. return salesOrderMapper.updateDeliver(salesOrder);
  910. }
  911. @Override
  912. public List<SalesOrderItem> getDeliverNum(SalesOrder salesOrder) {
  913. return salesOrderMapper.getDeliverNum(salesOrder);
  914. }
  915. @Override
  916. public List<Date> getNotSendDate() {
  917. return salesOrderMapper.getNotSendDate();
  918. }
  919. @Override
  920. public List<SalesOrder> salesOrderListAndItem(SalesOrder salesOrder) {
  921. return salesOrderMapper.salesOrderListAndItem(salesOrder);
  922. }
  923. @Override
  924. public PagedResult<SalesOrder> salesOrderListAndItemPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum) {
  925. PageHelper.startPage(pageNO, pageSize, isTotalNum);
  926. List<SalesOrder> list = salesOrderMapper.salesOrderListAndItem(salesOrder);
  927. return PageUtil.getPage(list);
  928. }
  929. @Override
  930. public List<SalesOrderItem> selectSalesOrderItemList(Integer salesId) {
  931. return salesOrderMapper.selectSalesOrderItemList(salesId);
  932. }
  933. }