|
@@ -151,7 +151,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public synchronized Integer syncXYTOrder(Integer type,Date creatTime) {
|
|
|
+ public synchronized Integer syncXYTOrder(Integer type,String sta,Date creatTime) {
|
|
|
if(type == 1){
|
|
|
SysConfig sysConfig = sysConfigMapper.getSysConfigAllLock(CONFIG_ID);
|
|
|
Date date = new Date();
|
|
@@ -173,7 +173,6 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
OrderSyncPlatform orderSyncPlatform = getXYTPlatform();
|
|
|
if(orderSyncPlatform.getSyncPlatStatus() != 1){
|
|
|
logger.info("小亚通接口已关闭!");
|
|
@@ -202,12 +201,14 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
conditionTypeList.add(endCreateTimeMap);
|
|
|
|
|
|
//订单状态 只获取代发货的订单
|
|
|
- Map<String,Object> statusTimeMap = new HashMap<>();
|
|
|
- statusTimeMap.put("condType","orderStatus"); //receiverName 收件人姓名 //receiverMobile收件人手机号码 //outOrderId原始订单号 //orderId系统订单号
|
|
|
- String[] condValueStatuss = new String[1];
|
|
|
- condValueStatuss[0] = "20"; //只查询待发货
|
|
|
- statusTimeMap.put("condValue",condValueStatuss);//生成结束时间
|
|
|
- conditionTypeList.add(statusTimeMap);
|
|
|
+ if(sta != null && !"".equals(sta)){
|
|
|
+ Map<String,Object> statusTimeMap = new HashMap<>();
|
|
|
+ statusTimeMap.put("condType","orderStatus"); //receiverName 收件人姓名 //receiverMobile收件人手机号码 //outOrderId原始订单号 //orderId系统订单号
|
|
|
+ String[] condValueStatuss = new String[1];
|
|
|
+ condValueStatuss[0] = sta; //只查询待发货
|
|
|
+ statusTimeMap.put("condValue",condValueStatuss);//生成结束时间
|
|
|
+ conditionTypeList.add(statusTimeMap);
|
|
|
+ }
|
|
|
|
|
|
StringBuffer stringBuffer = new StringBuffer();
|
|
|
Integer amountAllNum = 0; //同步总数量
|
|
@@ -316,10 +317,161 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
return amountSuccessAllNum;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Integer syncXYTOrderPostNum(Integer salesId){
|
|
|
+ SalesOrder salesOrder = salesOrderService.getSalesOrderByIdConcise(salesId);
|
|
|
+ OrderSyncPlatform orderSyncPlatform = getXYTPlatform();
|
|
|
+ Map<String,Object> paramsMap = new HashMap<>();
|
|
|
+ List<Map<String,Object>> conditionTypeList = new ArrayList<>();
|
|
|
+
|
|
|
+ String[] orderIds = {salesOrder.getSalesDealCode()};
|
|
|
+
|
|
|
+ Map<String,Object> orderIdMap = new HashMap<>();
|
|
|
+ orderIdMap.put("condType","orderId");
|
|
|
+ orderIdMap.put("condValue",orderIds);
|
|
|
+ conditionTypeList.add(orderIdMap);
|
|
|
+
|
|
|
+ boolean flag = true;
|
|
|
+
|
|
|
+ StringBuffer errorMsg = new StringBuffer();
|
|
|
+ errorMsg.append( "京东仓订单同步订单("+ salesOrder.getSalesDealCode() +")状态,京东订单号:"+ salesOrder.getSalesExOrderId() +",");
|
|
|
+
|
|
|
+ Map<String,Object> condMap = new HashMap<>();
|
|
|
+ condMap.put("pageNumber",1);
|
|
|
+ condMap.put("pageSize",20);
|
|
|
+ condMap.put("conditionType",conditionTypeList);
|
|
|
+ paramsMap.put("cond",condMap);
|
|
|
+ String json = this.syncXYT("IOrderService.query",paramsMap);
|
|
|
+ try {
|
|
|
+ JSONObject jsonObj = new JSONObject(json);//转化为json格式
|
|
|
+ String resultMsg = jsonObj.getString("result_msg");
|
|
|
+ if(resultMsg.equals("success")) {
|
|
|
+ JSONObject dataObj = jsonObj.getJSONObject("data"); //数据
|
|
|
+ JSONArray beanListArray = dataObj.getJSONArray("beanList");
|
|
|
+ if (beanListArray.length() > 0) {
|
|
|
+ for (int i = 0; i < beanListArray.length(); i++) {
|
|
|
+ JSONObject job = beanListArray.getJSONObject(i);
|
|
|
+ Long otherOrderId = null;
|
|
|
+ String otherExtOrderId = null;
|
|
|
+
|
|
|
+// JSONObject consigneeObj = job.getJSONObject("consignee"); //用户信息
|
|
|
+ JSONObject infoObj = job.getJSONObject("info"); //订单基本信息
|
|
|
+// JSONArray itemsArray = job.getJSONArray("items"); //订单项基本信息
|
|
|
+
|
|
|
+ //小亚通订单编号
|
|
|
+ otherOrderId = infoObj.getLong("orderId");
|
|
|
+ String otherOrderIdStr = String.valueOf(otherOrderId);
|
|
|
+ if(!Objects.equals(salesOrder.getSalesDealCode(),otherOrderIdStr)){
|
|
|
+ errorMsg.append("未查询到该订单!");
|
|
|
+ flag = false;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ //订单状态::0 待支付;10 待成团;20 待发货;30 预售中;40 待审批;50 仓库代发货;60 已发货;70 已签收;80 已拒收;999 已作废
|
|
|
+ Integer orderStatus = infoObj.getInt("orderStatus");
|
|
|
+ if (60 == orderStatus) {
|
|
|
+ JSONArray logisticsArray = null;
|
|
|
+ if(job.has("logistics")){
|
|
|
+ logisticsArray = job.getJSONArray("logistics");
|
|
|
+ }
|
|
|
+ if(logisticsArray.length() < 1){
|
|
|
+ errorMsg.append("该订单发货异常!");
|
|
|
+ flag = false;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ JSONObject logistics = logisticsArray.getJSONObject(0);
|
|
|
+
|
|
|
+ String companyCode = logistics.getString("companyCode");
|
|
|
+ String deliveryNo = logistics.getString("deliveryNo");
|
|
|
+
|
|
|
+ SalesOrder so = new SalesOrder();
|
|
|
+ switch (companyCode){
|
|
|
+ case "2087":{
|
|
|
+ so.setSalesPostFirm("jd"); //快递公司
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "STO":{
|
|
|
+ so.setSalesPostFirm("STO"); //快递公司
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ default:{
|
|
|
+ so.setSalesPostFirm(companyCode);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ so.setSalesPostNum(deliveryNo); //快递单号
|
|
|
+ so.setSalesId(salesId);
|
|
|
+ so.setSalesStatus(1);
|
|
|
+ so.setSalesShippingStatus(1);
|
|
|
+ so.setSalesDeliver(2);
|
|
|
+ Integer res = salesOrderMapper.updateSalesOrder(so);
|
|
|
+ if(res > 0){
|
|
|
+ //添加操作跟踪信息
|
|
|
+ OrderTracking orderTracking = new OrderTracking();
|
|
|
+ orderTracking.setAdminId(1);
|
|
|
+ orderTracking.setSalesDealCode(salesOrder.getSalesDealCode());
|
|
|
+ orderTracking.setTrackingDesc("发货(同步京东仓发货信息)");
|
|
|
+ salesOrderService.addTracking(orderTracking);
|
|
|
+ }
|
|
|
+ }else if(80 == orderStatus){
|
|
|
+ errorMsg.append("该订单已被拒收!");
|
|
|
+ flag = false;
|
|
|
+ continue;
|
|
|
+ }else if(999 == orderStatus){
|
|
|
+ //如果该订单已作废,那么本系统将跟随作废
|
|
|
+ SalesOrder so = new SalesOrder();
|
|
|
+ so.setSalesId(salesOrder.getSalesId());
|
|
|
+ so.setSalesStatus(3);
|
|
|
+ Integer res = salesOrderService.updateSalesOrder(so);
|
|
|
+ if(res > 0){
|
|
|
+ //添加操作跟踪信息
|
|
|
+ OrderTracking orderTracking = new OrderTracking();
|
|
|
+ orderTracking.setAdminId(1);
|
|
|
+ orderTracking.setSalesDealCode(salesOrder.getSalesDealCode());
|
|
|
+ orderTracking.setTrackingDesc("作废订单(同步第三方系统状态已作废)");
|
|
|
+ salesOrderService.addTracking(orderTracking);
|
|
|
+ }
|
|
|
+ errorMsg.append("该订单已被作废,系统自动作废!");
|
|
|
+ flag = false;
|
|
|
+ continue;
|
|
|
+ }else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ errorMsg.append("未查询到该订单");
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ errorMsg.append("<br>");
|
|
|
+
|
|
|
+ if(!flag){
|
|
|
+ OrderSyncLog orderSyncLog = new OrderSyncLog();
|
|
|
+ orderSyncLog.setSyncPlatId(orderSyncPlatform.getSyncPlatId());
|
|
|
+ orderSyncLog.setSyncLogType(1);
|
|
|
+ orderSyncLog.setSyncLogMode(4);
|
|
|
+ orderSyncLog.setSyncLogRecentNum(1); //同步总数量
|
|
|
+ orderSyncLog.setSyncLogErrorNum(1); //同步失败数量
|
|
|
+ orderSyncLog.setSyncLogMsg("同步状态"); //备注
|
|
|
+ if(!errorMsg.toString().equals("")){
|
|
|
+ String newErrorMsg = errorMsg.toString();
|
|
|
+ if(newErrorMsg.length() > 5000){
|
|
|
+ newErrorMsg.substring(0,4999);
|
|
|
+ }
|
|
|
+ orderSyncLog.setSyncLogErrorMsg(newErrorMsg); //失败信息
|
|
|
+ }
|
|
|
+ orderSyncLogMapper.save(orderSyncLog);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 单个订单拉取
|
|
|
* @param type
|
|
|
- * @param orderId 小亚通订单账号
|
|
|
+ * @param orderId 小亚通订单id
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
@@ -603,13 +755,21 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
|
|
|
if(salesOrderItemList==null || salesOrderItemList.size()<1){
|
|
|
logger.info("小亚通发货失败,未查询到订单信息!");
|
|
|
+ errorSb.append("发货失败交易号:" + salesOrder.getSalesDealCode() + ",失败原因:未查询到订单信息;");
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
HashSet<Long> itemIdSet = new HashSet();
|
|
|
- for (SalesOrderItem salesOrderItem:salesOrderItemList) {
|
|
|
- Long otherItemId = Long.valueOf(salesOrderItem.getItemOtherId());
|
|
|
- itemIdSet.add(otherItemId);
|
|
|
+ try{
|
|
|
+ for (SalesOrderItem salesOrderItem:salesOrderItemList) {
|
|
|
+ Long otherItemId = Long.valueOf(salesOrderItem.getItemOtherId());
|
|
|
+ itemIdSet.add(otherItemId);
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ logger.info("小亚通发货失败,订单项没有商城订单项Id!");
|
|
|
+ errorSb.append("发货失败交易号:" + salesOrder.getSalesDealCode() + ",失败原因:订单项没有商城订单项Id;");
|
|
|
+ continue;
|
|
|
}
|
|
|
|
|
|
Long[] itemIds = new Long[itemIdSet.size()];
|
|
@@ -852,7 +1012,6 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
salesOrder.setSalesDealCode(String.valueOf(otherOrderId)); //小亚通订单编号
|
|
|
salesOrder.setSalesExOrderId(otherExtOrderId);
|
|
|
|
|
|
-
|
|
|
//平台 SELF- 自身
|
|
|
//有赞平台:KDT 虚拟店铺:OFFLINE 天猫:TMALL 微店:WEIDIAN 京东:JD 阿里巴巴:1688 微盟微商城:WEIMENGWSC
|
|
|
//有量平台:YOULIANG 拼多多:PINDUODUO 楚楚街:CHUCHUJIE 蘑菇街:MGJ 美丽说:MLS 贝贝网:BEIBEI 云集:YUNJI
|
|
@@ -875,15 +1034,15 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
}
|
|
|
case "JD":{
|
|
|
//JD店铺id:100206182446
|
|
|
- salesOrder.setSalesStoreId(40); //天猫爱贝源旗舰店
|
|
|
+ salesOrder.setSalesStoreId(40); //京东
|
|
|
salesOrder.setSalesCompanyId(1); //深圳爱贝源
|
|
|
- salesOrder.setSalesPayType(5);//付款方式5:支付宝支付
|
|
|
+ salesOrder.setSalesPayType(1);
|
|
|
break;
|
|
|
}
|
|
|
case "OFFLINE": //小亚通虚拟店铺
|
|
|
default:
|
|
|
- salesOrder.setSalesStoreId(124); //天猫爱贝源旗舰店
|
|
|
- salesOrder.setSalesCompanyId(1); //深圳爱贝源
|
|
|
+ salesOrder.setSalesStoreId(124); //虚拟店铺
|
|
|
+ salesOrder.setSalesCompanyId(1); //
|
|
|
salesOrder.setSalesPayType(5);//付款方式5:支付宝支付
|
|
|
break;
|
|
|
}
|
|
@@ -1069,7 +1228,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
salesOrder.setSalesIsSend(0);//是否通知配货0:否1:是
|
|
|
salesOrder.setSalesIsLocked(0);//是否锁定0:否1:是
|
|
|
salesOrder.setSalesIsSeparate(0);//是否缺货0:否1:是
|
|
|
- salesOrder.setSalesStatus(0); //确认状态0(未确认)
|
|
|
+ salesOrder.setSalesStatus(0); //确认状态0(未确认) -- 在订单项判断中,可能会变成京东仓库自发状态
|
|
|
salesOrder.setSalesShippingStatus(0);////发货状态0(未发货)1(已发货,即已扫描出库)3(备货中)4(收货)11(已通知配货,后加)
|
|
|
salesOrder.setSalesDeliver(1); //出库状态1:未出库2:已出库
|
|
|
salesOrder.setSalesAdminId(1); //录入人id
|
|
@@ -1094,12 +1253,16 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+ if(productColor.getColorIsJdAuto() == 1 && salesOrder.getSalesStoreId() == 40){
|
|
|
+ //京东仓自发 && 京东店铺
|
|
|
+ salesOrder.setSalesStatus(4); //4:京东自发
|
|
|
+ }
|
|
|
+
|
|
|
Long orderItemId = item.getLong("orderItemId"); //小亚通订单项编号
|
|
|
Integer num = item.getInt("num"); //数量
|
|
|
Long totalFeeLong = item.getLong("totalFee"); //应付金额是指:购买数量的总应付金额
|
|
|
Integer totalFeeInt = totalFeeLong.intValue();
|
|
|
|
|
|
-
|
|
|
if(productColor.getProductIsSplit() == 1){
|
|
|
List<ProductCombinatInfo> productCombinatList = productMapper.combinatList(productColor.getColorProductId());
|
|
|
if(productCombinatList == null || productCombinatList.size() < 1){
|
|
@@ -1384,7 +1547,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
salesOrderService.addTracking(orderTracking);
|
|
|
amountSuccessNum++;
|
|
|
}catch (Exception e){
|
|
|
- errorMsg.append(otherOrderId+"添加订单失败,失败原因"+ e.getMessage() +";");
|
|
|
+ errorMsg.append(otherOrderId+"添加订单失败,失败原因"+ e.getMessage() +";</br>");
|
|
|
e.printStackTrace();
|
|
|
logger.info("XYT拉取订单-添加订单错误-错误信息:"+e.getMessage());
|
|
|
}
|