SalesOrderServiceImpl.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494
  1. package com.iamberry.rst.service.cm;
  2. import com.github.pagehelper.PageHelper;
  3. import com.iamberry.rst.core.cm.FittingsInfo;
  4. import com.iamberry.rst.core.cm.SalesOrder;
  5. import com.iamberry.rst.core.cm.SalesOrderItem;
  6. import com.iamberry.rst.core.cm.StoreInfo;
  7. import com.iamberry.rst.core.order.ProductColor;
  8. import com.iamberry.rst.core.page.PagedResult;
  9. import com.iamberry.rst.core.sys.SysConfig;
  10. import com.iamberry.rst.faces.cm.SalesOrderService;
  11. import com.iamberry.rst.faces.cm.StoreInfoService;
  12. import com.iamberry.rst.faces.order.EfastOrderService;
  13. import com.iamberry.rst.faces.product.ProductService;
  14. import com.iamberry.rst.service.cm.mapper.FittingsInfoMapper;
  15. import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
  16. import com.iamberry.rst.service.sys.mapper.SysConfigMapper;
  17. import com.iamberry.rst.util.PageUtil;
  18. import com.iamberry.wechat.tools.DateTimeUtil;
  19. import net.sf.json.JSONArray;
  20. import net.sf.json.JSONObject;
  21. import org.apache.commons.lang.StringUtils;
  22. import org.slf4j.Logger;
  23. import org.slf4j.LoggerFactory;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.stereotype.Service;
  26. import org.springframework.transaction.annotation.Transactional;
  27. import javax.xml.crypto.Data;
  28. import java.util.ArrayList;
  29. import java.util.Date;
  30. import java.util.List;
  31. /**
  32. * Created by liuzhiwei on 2017/10/31.
  33. */
  34. @Service
  35. public class SalesOrderServiceImpl implements SalesOrderService {
  36. private static Logger logger = LoggerFactory.getLogger(CustomerServiceImpl.class);
  37. @Autowired
  38. private SalesOrderMapper salesOrderMapper;
  39. @Autowired
  40. private ProductService productService;
  41. @Autowired
  42. private StoreInfoService storeInfoService;
  43. @Autowired
  44. private EfastOrderService efastOrderService;
  45. @Autowired
  46. private SalesOrderService salesOrderService;
  47. @Autowired
  48. private FittingsInfoMapper fittingsInfoMapper;
  49. @Autowired
  50. private SysConfigMapper sysConfigMapper;
  51. @Override
  52. public Integer addSalesOrder(SalesOrder salesOrder) {
  53. return salesOrderMapper.addSalesOrder(salesOrder);
  54. }
  55. @Override
  56. public SalesOrder getSalesOrderById(Integer salesId) {
  57. return salesOrderMapper.getSalesOrderById(salesId);
  58. }
  59. @Override
  60. public Integer updateSalesOrder(SalesOrder salesOrder) {
  61. return salesOrderMapper.updateSalesOrder(salesOrder);
  62. }
  63. @Override
  64. public Integer addSalesOrderList(List<SalesOrder> list) {
  65. return salesOrderMapper.addSalesOrderList(list);
  66. }
  67. @Override
  68. public List<SalesOrder> listSalesOrder(SalesOrder salesOrder) {
  69. return salesOrderMapper.listSalesOrder(salesOrder);
  70. }
  71. @Override
  72. public PagedResult<SalesOrder> listSalesOrderPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum) {
  73. PageHelper.startPage(pageNO, pageSize, isTotalNum);
  74. //查询订单列表信息
  75. List<SalesOrder> orderList = salesOrderMapper.listSalesOrder(salesOrder);
  76. return PageUtil.getPage(orderList);
  77. }
  78. @Override
  79. public boolean addOrderAndItem(SalesOrder salesOrder, List<SalesOrderItem> list) throws Exception {
  80. if (list == null || list.size() == 0) {
  81. return false;
  82. }
  83. SalesOrder verifyOrder = new SalesOrder();
  84. verifyOrder.setSalesOrderId(salesOrder.getSalesOrderId());
  85. //查询该订单是否存在,如果存在,不需要再次添加到订单中
  86. int count = salesOrderMapper.getOrderInfoCount(verifyOrder);
  87. if (count > 0) {
  88. return true;
  89. }
  90. //添加订单数据
  91. try {
  92. int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
  93. if (orderNum <= 0) {
  94. return false;
  95. }
  96. }catch (Exception e){
  97. return true;
  98. }
  99. for (SalesOrderItem item : list) {
  100. item.setItemOrderId(salesOrder.getSalesId());
  101. }
  102. //批量添加订单项数据
  103. int itemNum = salesOrderMapper.addOrderItemList(list);
  104. if (itemNum <= 0) {
  105. return false;
  106. }
  107. return true;
  108. }
  109. @Override
  110. @Transactional
  111. public SalesOrder addOrderAndIteminfo(SalesOrder salesOrder, List<SalesOrderItem> list) {
  112. //添加订单数据
  113. int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
  114. if (orderNum <= 0) {
  115. return salesOrder;
  116. }
  117. for (SalesOrderItem item : list) {
  118. item.setItemOrderId(salesOrder.getSalesId());
  119. }
  120. //批量添加订单项数据
  121. int itemNum = salesOrderMapper.addOrderItemList(list);
  122. if (itemNum <= 0) {
  123. return salesOrder;
  124. }
  125. return salesOrder;
  126. }
  127. @Override
  128. public List<SalesOrderItem> listSalesOrderItem(SalesOrderItem salesOrderItem) {
  129. return salesOrderMapper.listSalesOrderItem(salesOrderItem);
  130. }
  131. @Override
  132. public Integer updateOrderList(JSONArray orderList, List<SalesOrder> list) {
  133. List<SalesOrder> salesOrders = new ArrayList<SalesOrder>();
  134. //订单号相同时,判断状态,发货状态,物流公司,物流单号等是否相同,如果有一个不同,则需添加到salesOrders中进行同步
  135. for (int i = 0;i < orderList.size();i++) {
  136. JSONObject orderInfo = orderList.getJSONObject(i);
  137. for (SalesOrder salesOrder : list) {
  138. if (orderInfo.get("order_sn").equals(salesOrder.getSalesOrderId())
  139. && !(orderInfo.getInt("order_status") == salesOrder.getSalesStatus()
  140. && orderInfo.getInt("shipping_status") == salesOrder.getSalesShippingStatus()
  141. && orderInfo.getInt("pay_status") == salesOrder.getSalesPayStatus()
  142. && orderInfo.getInt("process_status") == salesOrder.getSalesProcessStatus()
  143. && orderInfo.getInt("is_send") == salesOrder.getSalesIsSend()
  144. && orderInfo.getInt("is_locked") == salesOrder.getSalesIsLocked()
  145. && orderInfo.getInt("is_separate") == salesOrder.getSalesIsSeparate()
  146. && orderInfo.getString("shipping_name").equals(salesOrder.getSalesPostFirm())
  147. && orderInfo.getString("invoice_no").equals(salesOrder.getSalesPostNum())
  148. )) {
  149. SalesOrder order = new SalesOrder();
  150. order.setSalesId(salesOrder.getSalesId());
  151. order.setSalesStatus(orderInfo.getInt("order_status"));
  152. order.setSalesShippingStatus(orderInfo.getInt("shipping_status"));
  153. order.setSalesPayStatus(orderInfo.getInt("pay_status"));
  154. order.setSalesProcessStatus(orderInfo.getInt("process_status"));
  155. order.setSalesIsSend(orderInfo.getInt("is_send"));
  156. order.setSalesIsLocked(orderInfo.getInt("is_locked"));
  157. order.setSalesIsSeparate(orderInfo.getInt("is_separate"));
  158. order.setSalesPostFirm(orderInfo.getString("shipping_name"));
  159. order.setSalesPostNum(orderInfo.getString("invoice_no"));
  160. salesOrders.add(order);
  161. }
  162. }
  163. }
  164. if (salesOrders != null && salesOrders.size() > 0) {
  165. //批量修改订单状态等信息
  166. return salesOrderMapper.updateOrderList(salesOrders);
  167. } else {
  168. return 1;
  169. }
  170. }
  171. @Override
  172. public Integer updateReturnOrderList(JSONArray orderList, List<SalesOrder> list) {
  173. List<SalesOrder> salesOrders = new ArrayList<SalesOrder>();
  174. //订单号相同时,判断状态,发货状态,物流公司,物流单号等是否相同,如果有一个不同,则需添加到salesOrders中进行同步
  175. for (int i = 0;i < orderList.size();i++) {
  176. JSONObject orderInfo = orderList.getJSONObject(i);
  177. for (SalesOrder salesOrder : list) {
  178. if (orderInfo.get("relating_order_sn").equals(salesOrder.getSalesOrderId())) {
  179. SalesOrder order = new SalesOrder();
  180. switch (orderInfo.getInt("process_type")) {
  181. case 1://退货
  182. order.setSalesOrderStatus(3);
  183. break;
  184. case 4://换货
  185. order.setSalesOrderStatus(2);
  186. break;
  187. default:
  188. order.setSalesOrderStatus(3);
  189. break;
  190. }
  191. order.setSalesId(salesOrder.getSalesId());
  192. salesOrders.add(order);
  193. }
  194. }
  195. }
  196. //批量修改订单状态等信息
  197. return salesOrderMapper.updateOrderList(list);
  198. }
  199. @Override
  200. public void addSalesOrderList(JSONObject obj) throws Exception{
  201. if (obj == null) {
  202. return;
  203. }
  204. JSONArray orderList = obj.getJSONArray("list");
  205. if (orderList == null || orderList.size() == 0) {
  206. return;
  207. }
  208. String endTime = sysConfigMapper.getSysConfig(1);
  209. for (int i = 0;i < orderList.size();i++) {
  210. JSONObject order = orderList.getJSONObject(i);
  211. //获取订单详情
  212. JSONObject orderInfo = null;
  213. try{
  214. orderInfo = efastOrderService.getOrderFormEfast(order.getString("deal_code"));
  215. }catch (Exception e){
  216. logger.info("获取订单失败;异常编号:505;失败原因:"+ e.getMessage() +"--获取失败订单号:" + orderList.getJSONObject(i).getString("deal_code"));
  217. }
  218. if (orderInfo == null) {
  219. continue;
  220. }
  221. if (!orderInfo.has("orders")) {
  222. continue;
  223. }
  224. //获取订单项集合
  225. JSONArray itemArray = orderInfo.getJSONArray("orders");
  226. if (itemArray == null || itemArray.size() == 0) {
  227. continue;
  228. }
  229. SalesOrder salesOrder = new SalesOrder();
  230. salesOrder.setSalesOrderId(order.getString("order_sn"));//订单编号
  231. salesOrder.setSalesDealCode(order.getString("deal_code"));//交易号
  232. salesOrder.setSalesOrderStatus(1);//订单状态
  233. salesOrder.setSalesShippingStatus(order.getInt("shipping_status"));//发货状态 0:未发货,1:已发货,3:备货中
  234. salesOrder.setSalesPayStatus(order.getInt("pay_status"));//是否付款 0:未付款,2:已付款
  235. salesOrder.setSalesProcessStatus(order.getInt("process_status"));//单据状态
  236. salesOrder.setSalesIsSend(order.getInt("is_send"));//是否通知配货
  237. salesOrder.setSalesIsLocked(order.getInt("is_locked"));//是否锁定
  238. salesOrder.setSalesIsSeparate(order.getInt("is_separate"));//是否缺货
  239. salesOrder.setSalesStatus(order.getInt("order_status"));//订单状态 0:未确认,1:已确认,2:挂起,3:作废
  240. salesOrder.setSalesPostFirm(order.getString("shipping_name"));//快递方式代码
  241. salesOrder.setSalesPostNum(order.getString("invoice_no"));//快递单号
  242. salesOrder.setSalesOpenId(order.getString("mobile"));//唯一标识
  243. salesOrder.setSalesPayType(efastOrderService.getPayType(order.getString("pay_name")));//支付方式
  244. salesOrder.setSalesPayTime(new Date(order.getLong("pay_time")*1000));//支付时间
  245. salesOrder.setSalesUserRemark(order.getString("postscript"));//买家留言
  246. salesOrder.setSalesAdminRemark(order.getString("to_buyer"));//商家留言
  247. salesOrder.setSalesAmount((int)(order.getDouble("order_amount")*100));//应付款
  248. salesOrder.setSalesPayMoney((int)(order.getDouble("money_paid")*100));//已付款
  249. salesOrder.setSalesAddressName(order.getString("consignee"));//收货人
  250. salesOrder.setSalesAddressTel(order.getString("mobile"));//收货人电话
  251. salesOrder.setSalesAddressInfo(order.getString("address").replaceAll(" ","-"));//收货地址
  252. salesOrder.setSalesShippingFee((int)(order.getDouble("shipping_fee")*100));//邮费
  253. salesOrder.setSalesCreateTime(DateTimeUtil.parse(order.getString("create_time"),"yyyy-MM-dd HH:mm:ss"));//创建时间
  254. if (StringUtils.isNotEmpty(order.getString("delivery_time"))) {
  255. salesOrder.setSalesSendTime(DateTimeUtil.parse(order.getString("delivery_time"),"yyyy-MM-dd HH:mm:ss"));//发货时间
  256. }
  257. salesOrder.setSalesDiscountMoney(salesOrder.getSalesAmount() - salesOrder.getSalesPayMoney());//优惠金额
  258. salesOrder.setSalesPledgeMoney(0);//押金金额
  259. salesOrder.setSalesRemainDeposit(0);//待提取金额
  260. salesOrder.setSalesSendType(2);//发货方式,默认为物流发货
  261. salesOrder.setSalesSalesTime(salesOrder.getSalesCreateTime());//订购时间
  262. salesOrder.setSalesWaitMoney(0);//待付金额
  263. salesOrder.setSalesLastMoney(salesOrder.getSalesPayMoney());//本次支付金额
  264. salesOrder.setSalesPayNumber("0000");//支付尾号
  265. salesOrder.setSalesType(1);//订单类型
  266. endTime = order.getString("create_time"); //获取
  267. //查询店铺信息
  268. StoreInfo storeInfo = new StoreInfo();
  269. storeInfo.setStoreEfast(order.getString("sd_id"));
  270. List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
  271. int storeId = 0;
  272. int companyId = 0;
  273. if (storeList != null && storeList.size() > 0) {
  274. storeInfo = storeList.get(0);
  275. storeId = storeInfo.getStoreId();
  276. companyId = storeInfo.getCompanyId();
  277. }
  278. salesOrder.setSalesStoreId(storeId);//店铺id
  279. salesOrder.setSalesCompanyId(companyId);//销售公司id
  280. List<SalesOrderItem> itemList = new ArrayList<SalesOrderItem>();
  281. for (int j = 0;j < itemArray.size();j++) {
  282. ProductColor color = new ProductColor();
  283. JSONObject itemJson = itemArray.getJSONObject(j);
  284. SalesOrderItem item = new SalesOrderItem();
  285. color.setColorBar(itemJson.getString("goods_sn"));
  286. List<ProductColor> colorList = productService.listproductAndColor(color);
  287. if (colorList != null && colorList.size() > 0) {
  288. color = colorList.get(0);
  289. item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
  290. item.setItemNum(itemJson.getInt("sn"));//商品数量
  291. item.setItemCreateTime(salesOrder.getSalesCreateTime());
  292. item.setItemColorId(color.getColorId());
  293. item.setItemProductColor(color.getColorName());
  294. item.setItemProductDiscount(color.getColorDiscount());
  295. item.setItemProductId(color.getColorProductId());
  296. item.setItemProductName(color.getProductName());
  297. item.setItemProductPic(color.getColorPicture());
  298. item.setItemProductType(color.getProductType());
  299. item.setItemProductPrice(color.getColorPrice());
  300. item.setItemIsSource(1);
  301. itemList.add(item);
  302. } else {
  303. //获取配件信息
  304. FittingsInfo fittingsInfo = new FittingsInfo();
  305. fittingsInfo.setFittingsBar(itemJson.getString("goods_sn"));
  306. List<FittingsInfo> Fittings = fittingsInfoMapper.listFittings(fittingsInfo);
  307. if (Fittings == null || Fittings.size() == 0) {
  308. continue;
  309. }
  310. fittingsInfo = Fittings.get(0);
  311. item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
  312. item.setItemNum(itemJson.getInt("sn"));//商品数量
  313. item.setItemCreateTime(salesOrder.getSalesCreateTime());
  314. item.setItemColorId(fittingsInfo.getFittingsId());
  315. item.setItemProductColor(fittingsInfo.getFittingsName());
  316. item.setItemProductDiscount(fittingsInfo.getFittingsDiscount());
  317. item.setItemProductId(fittingsInfo.getProductId());
  318. item.setItemProductName(fittingsInfo.getFittingsName());
  319. item.setItemProductPic("");
  320. item.setItemProductType(0);
  321. item.setItemProductPrice(fittingsInfo.getFittingsPrice());
  322. item.setItemIsSource(2);
  323. itemList.add(item);
  324. }
  325. }
  326. //添加订单和订单项
  327. try{
  328. salesOrderService.addOrderAndItem(salesOrder,itemList);
  329. }catch (Exception e){
  330. logger.info("添加订单失败,异常编号:505;失败原因:+"+ e.getMessage() +"Efast编号:"+ salesOrder.getSalesOrderId());
  331. }
  332. }
  333. SysConfig sysConfig = new SysConfig(1,endTime);
  334. sysConfigMapper.updateSysConfig(sysConfig);
  335. }
  336. @Override
  337. public boolean syncEfastOrder(JSONObject orderInfo) throws Exception {
  338. if (orderInfo == null) {
  339. return false;
  340. }
  341. if (!orderInfo.has("orders")) {
  342. return false;
  343. }
  344. //获取订单项集合
  345. JSONArray itemArray = orderInfo.getJSONArray("orders");
  346. if (itemArray == null || itemArray.size() == 0) {
  347. return false;
  348. }
  349. SalesOrder salesOrder = new SalesOrder();
  350. salesOrder.setSalesOrderId(orderInfo.getString("order_sn"));//订单编号
  351. salesOrder.setSalesDealCode(orderInfo.getString("deal_code"));//交易号
  352. salesOrder.setSalesOrderStatus(1);//订单状态
  353. salesOrder.setSalesShippingStatus(orderInfo.getInt("shipping_status"));//发货状态 0:未发货,1:已发货,3:备货中
  354. salesOrder.setSalesPayStatus(orderInfo.getInt("pay_status"));//是否付款 0:未付款,2:已付款
  355. salesOrder.setSalesProcessStatus(orderInfo.getInt("process_status"));//单据状态
  356. salesOrder.setSalesIsSend(orderInfo.getInt("is_send"));//是否通知配货
  357. salesOrder.setSalesIsLocked(orderInfo.getInt("is_locked"));//是否锁定
  358. salesOrder.setSalesIsSeparate(orderInfo.getInt("is_separate"));//是否缺货
  359. salesOrder.setSalesStatus(orderInfo.getInt("order_status"));//订单状态 0:未确认,1:已确认,2:挂起,3:作废
  360. salesOrder.setSalesPostFirm(orderInfo.getString("shipping_name"));//快递方式代码
  361. salesOrder.setSalesPostNum(orderInfo.getString("invoice_no"));//快递单号
  362. salesOrder.setSalesOpenId(orderInfo.getString("mobile"));//唯一标识
  363. salesOrder.setSalesPayType(efastOrderService.getPayType(orderInfo.getString("pay_name")));//支付方式
  364. salesOrder.setSalesPayTime(new Date(orderInfo.getLong("pay_time")*1000));//支付时间
  365. salesOrder.setSalesUserRemark(orderInfo.getString("postscript"));//买家留言
  366. salesOrder.setSalesAdminRemark(orderInfo.getString("to_buyer"));//商家留言
  367. salesOrder.setSalesAmount((int)(orderInfo.getDouble("order_amount")*100));//应付款
  368. salesOrder.setSalesPayMoney((int)(orderInfo.getDouble("money_paid")*100));//已付款
  369. salesOrder.setSalesAddressName(orderInfo.getString("consignee"));//收货人
  370. salesOrder.setSalesAddressTel(orderInfo.getString("mobile"));//收货人电话
  371. salesOrder.setSalesAddressInfo(orderInfo.getString("address").replaceAll(" ","-"));//收货地址
  372. salesOrder.setSalesShippingFee((int)(orderInfo.getDouble("shipping_fee")*100));//邮费
  373. salesOrder.setSalesCreateTime(new Date(orderInfo.getLong("pay_time")*1000));//创建时间
  374. if (orderInfo.getInt("shipping_status") == 1) {
  375. salesOrder.setSalesSendTime(DateTimeUtil.parse(orderInfo.getString("delivery_time"),"yyyy-MM-dd HH:mm:ss"));//发货时间
  376. }
  377. salesOrder.setSalesDiscountMoney(salesOrder.getSalesAmount() - salesOrder.getSalesPayMoney());//优惠金额
  378. salesOrder.setSalesPledgeMoney(0);//押金金额
  379. salesOrder.setSalesRemainDeposit(0);//待提取金额
  380. salesOrder.setSalesSendType(2);//发货方式,默认为物流发货
  381. salesOrder.setSalesSalesTime(salesOrder.getSalesCreateTime());//订购时间
  382. salesOrder.setSalesWaitMoney(0);//待付金额
  383. salesOrder.setSalesLastMoney(salesOrder.getSalesPayMoney());//本次支付金额
  384. salesOrder.setSalesPayNumber("0000");//支付尾号
  385. salesOrder.setSalesType(1);//订单类型
  386. //查询店铺信息
  387. StoreInfo storeInfo = new StoreInfo();
  388. if (orderInfo.has("sd_id")) {
  389. storeInfo.setStoreEfast(orderInfo.getString("sd_id"));
  390. } else {
  391. storeInfo.setStoreEfast("1");
  392. }
  393. List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
  394. int storeId = 0;
  395. int companyId = 0;
  396. if (storeList != null && storeList.size() > 0) {
  397. storeInfo = storeList.get(0);
  398. storeId = storeInfo.getStoreId();
  399. companyId = storeInfo.getCompanyId();
  400. }
  401. salesOrder.setSalesStoreId(storeId);//店铺id
  402. salesOrder.setSalesCompanyId(companyId);//销售公司id
  403. List<SalesOrderItem> itemList = new ArrayList<SalesOrderItem>();
  404. for (int j = 0;j < itemArray.size();j++) {
  405. ProductColor color = new ProductColor();
  406. JSONObject itemJson = itemArray.getJSONObject(j);
  407. SalesOrderItem item = new SalesOrderItem();
  408. color.setColorBar(itemJson.getString("goods_sn"));
  409. List<ProductColor> colorList = productService.listproductAndColor(color);
  410. if (colorList != null && colorList.size() > 0) {
  411. color = colorList.get(0);
  412. item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
  413. item.setItemNum(itemJson.getInt("sn"));//商品数量
  414. item.setItemCreateTime(salesOrder.getSalesCreateTime());
  415. item.setItemColorId(color.getColorId());
  416. item.setItemProductColor(color.getColorName());
  417. item.setItemProductDiscount(color.getColorDiscount());
  418. item.setItemProductId(color.getColorProductId());
  419. item.setItemProductName(color.getProductName());
  420. item.setItemProductPic(color.getColorPicture());
  421. item.setItemProductType(color.getProductType());
  422. item.setItemProductPrice(color.getColorPrice());
  423. item.setItemIsSource(1);
  424. itemList.add(item);
  425. } else {
  426. //获取配件信息
  427. FittingsInfo fittingsInfo = new FittingsInfo();
  428. fittingsInfo.setFittingsBar(itemJson.getString("goods_sn"));
  429. List<FittingsInfo> Fittings = fittingsInfoMapper.listFittings(fittingsInfo);
  430. if (Fittings == null || Fittings.size() == 0) {
  431. continue;
  432. }
  433. fittingsInfo = Fittings.get(0);
  434. item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
  435. item.setItemNum(itemJson.getInt("sn"));//商品数量
  436. item.setItemCreateTime(salesOrder.getSalesCreateTime());
  437. item.setItemColorId(fittingsInfo.getFittingsId());
  438. item.setItemProductColor(fittingsInfo.getFittingsName());
  439. item.setItemProductDiscount(fittingsInfo.getFittingsDiscount());
  440. item.setItemProductId(fittingsInfo.getProductId());
  441. item.setItemProductName(fittingsInfo.getFittingsName());
  442. item.setItemProductPic("");
  443. item.setItemProductType(0);
  444. item.setItemProductPrice(fittingsInfo.getFittingsPrice());
  445. item.setItemIsSource(2);
  446. itemList.add(item);
  447. }
  448. }
  449. //添加订单和订单项
  450. boolean flag = salesOrderService.addOrderAndItem(salesOrder,itemList);
  451. if (flag) {
  452. return true;
  453. } else {
  454. return false;
  455. }
  456. }
  457. @Override
  458. public Integer getOrderInfoCount(SalesOrder salesOrder) {
  459. return salesOrderMapper.getOrderInfoCount(salesOrder);
  460. }
  461. @Override
  462. public List<SalesOrder> listOrderExcel(SalesOrder salesOrder) {
  463. return salesOrderMapper.listOrderExcel(salesOrder);
  464. }
  465. }