package com.smallrig.oms.service;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.jcraft.jsch.SftpException;
import com.smallrig.api.basics.entity.Currency;
import com.smallrig.api.basics.entity.*;
import com.smallrig.api.oms.entity.*;
import com.smallrig.api.sku.entity.PlatformProductRelation;
import com.smallrig.common.bean.PageResult;
import com.smallrig.common.bean.ResponseBean;
import com.smallrig.common.constant.CommonConstant;
import com.smallrig.common.enums.CodeEnums;
import com.smallrig.common.enums.CountryTaxEnums;
import com.smallrig.common.enums.MqTypeEnums;
import com.smallrig.common.exception.BusinessException;
import com.smallrig.common.utils.Common;
import com.smallrig.common.utils.SmallrigConstant;
import com.smallrig.oms.baen.vo.*;
import com.smallrig.oms.cache.MarketCache;
import com.smallrig.oms.cache.OrderCache;
import com.smallrig.oms.cache.OrderStatCache;
import com.smallrig.oms.cache.PlatformCache;
import com.smallrig.oms.common.util.SFtpUtils;
import com.smallrig.oms.feign.BasicsClient;
import com.smallrig.oms.feign.OrderDbClient;
import com.smallrig.oms.feign.SkuClient;
import com.smallrig.oms.mapper.ExternalOrderImportMapper;
import com.smallrig.oms.mq.MessagesEntity;
import com.smallrig.oms.request.BasicsRequest;
import com.smallrig.oms.request.OrderImportRequest;
import com.smallrig.oms.response.OrderImportResponse;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.joda.time.DateTime;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @author zhangfangming <zhangfangming@smallrig.com>
* @version 1.0.0
* @date 2019/12/20 18:21
* @since 1.0
*/
@Service
@Slf4j
public class OrderImportService {
@Autowired
private ExternalOrderImportMapper externalOrderImportMapper;
@Autowired
private BasicsClient basicsClient;
@Autowired
private OrderCache orderCache;
@Autowired
private SFtpUtils sftpHelper;
@Value("${sftp.upload.file}")
private String fileUploadBasePath;
@Value("${sftp.config.baseUploadPath}")
private String fileUploadPath;
@Autowired
private OrderAddressService orderAddressService;
@Autowired
private OrderCostService orderCostService;
@Autowired
private OrderItemService orderItemService;
@Autowired
private OrderLogService orderLogService;
@Autowired
private OrderBaseService orderBaseService;
@Autowired
private SkuClient skuClient;
@Autowired
private OrderSysItemService sysItemService;
@Autowired
private CommonService commonService;
@Autowired
private OrderDbClient orderDbClient;
@Autowired
private MarketCache marketCache;
@Autowired
private PlatformCache platformCache;
@Autowired
private OrderStatCache orderStatCache;
@Autowired
private ApplicationEventPublisher publisher;
/**
* @return void
* @throws IOException
* @throws SftpException
* @exception @author zhangfangming <zhangfangming@smallrig.com>
* @date 2019/12/20 20:46
*/
@Transactional(rollbackFor = Exception.class)
public String importOrderFile(MultipartFile file) throws Exception {
//导入的文件上传到服务器
String fileName = file.getOriginalFilename();
String suffixName = fileName.substring(fileName.lastIndexOf("."));
String filePath = new DateTime().toString("yyyyMMdd");//文件目录
fileName = System.currentTimeMillis() + suffixName;
if(!sftpHelper.uploadFile(fileUploadBasePath, filePath, fileName,file.getInputStream())){
return "";
}
return filePath+"/"+fileName;
}
/**
* 订单列表查询
* @return ResponseBean
* @exception
* @author zhangfangming <zhangfangming@smallrig.com>
* @date 2019/12/21 17:14
*/
public ResponseBean listOrder(OrderImportRequest request) {
Object o=commonService.getAuthRequest(request,request.getUserName());
if(o==null){
return ResponseBean.buildSuccess();
}
List<Long> ids=commonService.getAndCheckAuthWarehouse(request.getWarehouseIds(),request.getPermissionWarehouseIds(),request.getUserName());
if(CollectionUtils.isEmpty(ids)){
if(CommonConstant.ADMIN.equals(request.getUserName())){
request.setWarehouseIds(null);
}else {
return ResponseBean.buildSuccess();
}
}else {
request.setWarehouseIds(ids);
}
JSONObject json = new JSONObject();
String channelIdss = request.getChannelIdss();
if (!StringUtils.isEmpty(channelIdss)){
String[] channelIdSplit = channelIdss.split(",");
List<Long> channelIdList=new ArrayList<>();
for (String s : channelIdSplit) {
channelIdList.add(Long.parseLong(s));
}
request.setChannelIdList(channelIdList);
}
String platformIds = request.getPlatformIds();
if (!StringUtils.isEmpty(platformIds)){
String[] platformIdsSplit = platformIds.split(",");
List<Long> platformIdsList=new ArrayList<>();
for (String s : platformIdsSplit) {
platformIdsList.add(Long.parseLong(s));
}
request.setPlatformIdList(platformIdsList);
}
String warehouseIds = request.getWarehouseIdArr();
if (!StringUtils.isEmpty(warehouseIds)){
String[] warehouseIdsSplit = warehouseIds.split(",");
List<Long> warehouseIdsList=new ArrayList<>();
for (String s : warehouseIdsSplit) {
warehouseIdsList.add(Long.parseLong(s));
}
request.setWarehouseIdList(warehouseIdsList);
}
PageHelper.startPage(Integer.valueOf(request.getPageNum()), Integer.valueOf(request.getPageSize()));
List<ExternalOrderImport> orderImportList = externalOrderImportMapper.selectOrderImportPaging(request);
PageResult<ExternalOrderImport> pageInfo = new PageResult<>(orderImportList);
List<OrderImportResponse> orderImportResponseList = new ArrayList<>(100);
for (ExternalOrderImport externalOrderImport : orderImportList) {
//1.查询订单里面的平台名称
String platformName = getPlatform(externalOrderImport);
//2.查询订单里面的仓库名称
String warehouseName = getWarehouse(externalOrderImport);
//3.查询订单里面的渠道名称
String channelName = getMarketChannel(externalOrderImport);
OrderImportResponse orderImportResponse = new OrderImportResponse();
orderImportResponse.setPlatformName(platformName);
orderImportResponse.setWarehouseName(warehouseName);
orderImportResponse.setChannelName(channelName);
orderImportResponse.setRemark(externalOrderImport.getRemark());
orderImportResponse.setImportStatus(externalOrderImport.getImportStatus());
orderImportRes
没有合适的资源?快使用搜索试试~ 我知道了~
2022业务中台项目案例
共6066个文件
java:5355个
xml:435个
log:88个
需积分: 5 5 下载量 30 浏览量
2022-06-29
10:12:41
上传
评论
收藏 249.58MB ZIP 举报
温馨提示
2022业务中台项目案例
资源详情
资源评论
资源推荐
收起资源包目录
2022业务中台项目案例 (6066个子文件)
smallrig-platform.conf 19KB
nginx.conf 3KB
spring.factories 296B
spring.factories 130B
spring.factories 128B
test.ftl 119B
官网项目数据库设计.html 133KB
smallrig-crm-1.0.0.jar 124.33MB
open-api-sdk-2.0.jar 5.74MB
OrderImportService.java 344KB
HeadDeliverGoodsService.java 209KB
ProductService.java 208KB
OrderBaseService.java 151KB
TCustomsOrderServiceImpl.java 133KB
PurchaseService.java 126KB
HeadDeliverLogisticsService.java 115KB
HeadFbaPlatformInformationService.java 109KB
OrderService.java 94KB
FSaleOrderBaseServiceImpl.java 92KB
AutoPartWarehouseService.java 90KB
FInvoiceBaseServiceImpl.java 88KB
HeadDeliverLogisticsDetailService.java 86KB
Test.java 80KB
TCustomsOrderBaseServiceImpl.java 71KB
BasicsApiImpl.java 67KB
OrderController.java 63KB
ProductPricingCalculService.java 63KB
SellTargetDataService.java 59KB
InventoryChangeService.java 56KB
SysRoleService.java 55KB
TCustomsHeadServiceImpl.java 53KB
CustomerEmailManageServiceImpl.java 53KB
TCustomsOrderCombinedShipmentServiceImpl.java 52KB
PlatformProductService.java 52KB
ShopifyService.java 51KB
FOutInventoryServiceImpl.java 49KB
CommonService.java 49KB
EccangService.java 48KB
ZplPrinterDefault.java 46KB
SellStatService.java 44KB
OWInInventoryService.java 44KB
ProductPlanInfoService.java 44KB
InventoryAllotService.java 42KB
ChangeBatchService.java 42KB
FPutInventoryServiceImpl.java 41KB
SupplementaryPriceServiceImpl.java 41KB
IntelligentStockPlanService.java 39KB
AutoPartWHProcessor.java 39KB
UpdateAmazonInventoryThread.java 38KB
OrderController.java 37KB
SellStatContrastService.java 36KB
CommonService.java 35KB
PushFbaTransferHandler.java 34KB
OrderApiImpl.java 34KB
HttpUtil.java 34KB
UpdateAmazonInventoryThreadNew.java 34KB
MergeService.java 34KB
AmazonSyncInventoryJobHandler.java 33KB
InventoryApiImpl.java 33KB
AutoPartitionService.java 33KB
PurchaseGoodsReceivingService.java 32KB
TransferManageService.java 32KB
AssembleFinishedService.java 31KB
RmaService.java 31KB
OfficialInventoryService.java 31KB
SalesQuantityAndVolumeService.java 31KB
IntelligentSalePlanService.java 30KB
ProductInventoryService.java 30KB
HttpClient.java 30KB
OrderImportController.java 30KB
UpdateSkuGradeJobHandler.java 30KB
AutoAuditService.java 30KB
AvgrageSalesVolumeService.java 30KB
WarehouseProdectService.java 30KB
MarketChannelService.java 29KB
OrderInventoryService.java 29KB
PutInventoryService.java 28KB
BasicsFeignService.java 28KB
HeadSubmitFeedService.java 28KB
HeadFbaPlatformInformationController.java 28KB
FAmazonRefundServiceImpl.java 28KB
RmaController.java 27KB
PinShenWmsTransferService.java 27KB
YunWmsTransferService.java 27KB
OrderApiService.java 26KB
PinShenWmsService.java 26KB
ImlWmsService.java 26KB
HeadDeliverGoodsAuditController.java 26KB
Demo.java 25KB
BasicsFeignService.java 25KB
SellSaleVolumeVisitsService.java 25KB
MailUtil.java 25KB
YahooService.java 25KB
PinShenEnglishWmsTransferService.java 25KB
IntelligentSkuGradeService.java 25KB
WmsHeadPicketTicketServiceImpl.java 25KB
OWInorderService.java 25KB
ImportProductVO.java 25KB
FProductInventoryServiceImpl.java 25KB
SkuAnalysisService.java 24KB
共 6066 条
- 1
- 2
- 3
- 4
- 5
- 6
- 61
微云村
- 粉丝: 4
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0