ErpTask.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.fs.task;
  2. import com.fs.erp.domain.ErpOrder;
  3. import com.fs.erp.domain.FsErpFinishPush;
  4. import com.fs.erp.dto.ErpOrderResponse;
  5. import com.fs.erp.mapper.FsErpFinishPushMapper;
  6. import com.fs.erp.service.IErpOrderService;
  7. import com.fs.store.domain.FsStoreOrder;
  8. import com.fs.store.service.IFsStoreOrderService;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.apache.commons.lang.exception.ExceptionUtils;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import java.util.Date;
  14. import java.util.List;
  15. @Service("erpTask")
  16. @Slf4j
  17. public class ErpTask {
  18. @Autowired
  19. private FsErpFinishPushMapper fsErpFinishPushMapper;
  20. @Autowired
  21. private IErpOrderService erpOrderService;
  22. @Autowired
  23. private IFsStoreOrderService fsStoreOrderService;
  24. /**
  25. * 推送完成订单到ERP
  26. */
  27. public void pushFinishOrderToErp(){
  28. List<FsErpFinishPush> fsErpFinishPushes = fsErpFinishPushMapper.queryPenddingOrder();
  29. for (FsErpFinishPush fsErpFinishPush : fsErpFinishPushes) {
  30. FsStoreOrder fsStoreOrder = fsStoreOrderService.selectFsStoreOrderById(fsErpFinishPush.getOrderId());
  31. try {
  32. ErpOrder erpOrder = fsStoreOrderService.getErpOrder(fsStoreOrder);
  33. ErpOrderResponse erpOrderResponse = erpOrderService.finishOrder(erpOrder);
  34. fsErpFinishPush.setParams(erpOrderResponse.getRequestRawData());
  35. fsErpFinishPush.setResult(erpOrderResponse.getResponseRawData());
  36. fsErpFinishPush.setUpdateTime(new Date());
  37. if(erpOrderResponse.getSuccess()!= null && erpOrderResponse.getSuccess()){
  38. fsErpFinishPush.setTaskStatus(1);
  39. log.error("推送完成订单到ERP成功! 订单号: {}",fsErpFinishPush.getOrderId());
  40. } else {
  41. fsErpFinishPush.setTaskStatus(2);
  42. fsErpFinishPush.setRetryCount(fsErpFinishPush.getRetryCount()+1);
  43. log.error("推送完成订单到ERP失败! 订单号: {}",fsErpFinishPush.getOrderId());
  44. }
  45. } catch (Throwable e) {
  46. fsErpFinishPush.setRetryCount(fsErpFinishPush.getRetryCount()+1);
  47. fsErpFinishPush.setErrorMessage(ExceptionUtils.getStackTrace(e));
  48. fsErpFinishPush.setTaskStatus(2);
  49. log.error("订单推送失败!原因: {}", ExceptionUtils.getStackTrace(e),e);
  50. }
  51. fsErpFinishPushMapper.updateById(fsErpFinishPush);
  52. }
  53. }
  54. }