|
@@ -755,7 +755,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
//生成结束时间
|
|
|
conditionTypeList.add(orderMap);
|
|
|
|
|
|
- Map<String,Object> condMap = new HashMap<>();
|
|
|
+ Map<String,Object> condMap = new HashMap<>(3);
|
|
|
condMap.put("pageNumber",1);
|
|
|
condMap.put("pageSize",20);
|
|
|
condMap.put("conditionType",conditionTypeList);
|
|
@@ -764,12 +764,12 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
//转化为json格式
|
|
|
JSONObject jsonObj = new JSONObject(json);
|
|
|
String resultMsg = jsonObj.getString("result_msg");
|
|
|
- if(resultMsg.equals("success")){
|
|
|
- JSONObject dataObj = jsonObj.getJSONObject("data"); //数据
|
|
|
+ if("success".equals(resultMsg)){
|
|
|
+ //数据
|
|
|
+ JSONObject dataObj = jsonObj.getJSONObject("data");
|
|
|
JSONArray beanListArray = dataObj.getJSONArray("beanList");
|
|
|
if(beanListArray.length() > 0){
|
|
|
JSONObject job = beanListArray.getJSONObject(0);
|
|
|
-
|
|
|
//为了避免小亚通同一个订单查询多次,将订单保存在MAP中
|
|
|
// 该map数据存活周期仅为一个选中打单发货,在AwaitSendController中,调用完了会直接清掉,这样数据不会重复,又能让每次重复的订单项快速查询
|
|
|
orderJsonMap.put(orderId,job);
|
|
@@ -788,26 +788,32 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
* @return
|
|
|
*/
|
|
|
private boolean getIsShip(JSONObject job,SalesOrder salesOrder){
|
|
|
- JSONObject infoObj = job.getJSONObject("info"); //订单基本信息
|
|
|
+ //订单基本信息
|
|
|
+ JSONObject infoObj = job.getJSONObject("info");
|
|
|
//订单状态::0 待支付;10 待成团;20 待发货;30 预售中;40 待审批;50 仓库代发货;60 已发货;70 已签收;80 已拒收;999 已作废
|
|
|
- Integer orderStatus = infoObj.getInt("orderStatus");
|
|
|
+ int orderStatus = infoObj.getInt("orderStatus");
|
|
|
//售后状态:0 没有售后 1 退款中 2 退款关闭 3 退款成功 4 退货中 5 退货关闭 6 退货成功 7 其它售后中 8 部分退货成功
|
|
|
- Integer warrantyStatus = infoObj.getInt("warrantyStatus");
|
|
|
- if(20 == orderStatus){ //20 待发货
|
|
|
- JSONArray itemsArray = job.getJSONArray("items"); //订单项基本信息
|
|
|
+ int warrantyStatus = infoObj.getInt("warrantyStatus");
|
|
|
+ if(20 == orderStatus){
|
|
|
+ //20 待发货
|
|
|
+
|
|
|
+ //订单项基本信息
|
|
|
+ JSONArray itemsArray = job.getJSONArray("items");
|
|
|
//循环检测所有订单项是否能够发货
|
|
|
boolean allStatus = true;
|
|
|
for (SalesOrderItem salesOrderItem : salesOrder.getSalesOrderItemList()) {
|
|
|
if(salesOrderItem.getItemOtherId() == null || "".equals(salesOrderItem.getItemOtherId())){
|
|
|
continue;
|
|
|
}
|
|
|
- Long otherId = Long.valueOf(salesOrderItem.getItemOtherId()); //外部订单id
|
|
|
+ //外部订单id
|
|
|
+ Long otherId = Long.valueOf(salesOrderItem.getItemOtherId());
|
|
|
boolean sonStatus = true;
|
|
|
- Integer itemStatus = 0;
|
|
|
- Integer itemWarrantyStatus = 0;
|
|
|
+ int itemStatus = 0;
|
|
|
+ int itemWarrantyStatus = 0;
|
|
|
for(int j=0;j<itemsArray.length();j++) {
|
|
|
JSONObject item = itemsArray.getJSONObject(j);
|
|
|
- Long orderItemId = item.getLong("orderItemId"); //订单项id
|
|
|
+ //订单项id
|
|
|
+ Long orderItemId = item.getLong("orderItemId");
|
|
|
itemStatus = item.getInt("itemStatus");
|
|
|
itemWarrantyStatus = item.getInt("warrantyStatus");
|
|
|
if(Objects.equals(orderItemId, otherId)){
|
|
@@ -850,8 +856,10 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
SalesOrder sonOrder = new SalesOrder();
|
|
|
sonOrder.setSalesId(so.getSalesId());
|
|
|
sonOrder.setSalesShippingStatus(0);
|
|
|
- sonOrder.setSalesStatus(0); //确认状态 0(未确认)1(确认)2(挂起)3(作废)
|
|
|
- sonOrder.setSalesWarrantyStatus(1); //有退款
|
|
|
+ // 确认状态 0(未确认)1(确认)2(挂起)3(作废)
|
|
|
+ sonOrder.setSalesStatus(0);
|
|
|
+ // 有退款
|
|
|
+ sonOrder.setSalesWarrantyStatus(1);
|
|
|
if(salesOrderService.update(sonOrder) > 0){
|
|
|
//添加操作跟踪信息
|
|
|
OrderTracking orderTracking = new OrderTracking();
|
|
@@ -866,8 +874,10 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
SalesOrder order = new SalesOrder();
|
|
|
order.setSalesId(mainSalesId);
|
|
|
order.setSalesShippingStatus(0);
|
|
|
- order.setSalesStatus(0); //确认状态 0(未确认)1(确认)2(挂起)3(作废)
|
|
|
- order.setSalesWarrantyStatus(1); //有退款
|
|
|
+ //确认状态 0(未确认)1(确认)2(挂起)3(作废)
|
|
|
+ order.setSalesStatus(0);
|
|
|
+ //有退款
|
|
|
+ order.setSalesWarrantyStatus(1);
|
|
|
if(salesOrderService.update(order) > 0){
|
|
|
//添加操作跟踪信息
|
|
|
OrderTracking orderTracking = new OrderTracking();
|
|
@@ -878,23 +888,25 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
}
|
|
|
}
|
|
|
return allStatus;
|
|
|
- }else if(60 == orderStatus || 70 == orderStatus || 80 == orderStatus ){ //该产品已发货
|
|
|
- //如果该订单已发货,无需判断其他,直接return true
|
|
|
+ }else if(60 == orderStatus || 70 == orderStatus || 80 == orderStatus ){
|
|
|
+ // 该产品已发货
|
|
|
+ // 如果该订单已发货,无需判断其他,直接return true
|
|
|
return true;
|
|
|
- }else if(999 == orderStatus){ //实际应该不可能为0
|
|
|
- //如果该订单已作废,那么本系统将跟随作废
|
|
|
- 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);
|
|
|
- }
|
|
|
+ }else if(999 == orderStatus){
|
|
|
+ //实际应该不可能为0
|
|
|
+ //如果该订单已作废,那么本系统将跟随作废
|
|
|
+ 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);
|
|
|
+ }
|
|
|
}
|
|
|
logger.info("小亚通调用检测该订单无法发货,该订单状态异常-订单状态:"+getStatusMsg(orderStatus));
|
|
|
return false;
|
|
@@ -917,7 +929,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
Integer salesOrderId = salesOrderIds[m];
|
|
|
SalesOrder salesOrder = salesOrderService.getSalesOrderByIdConcise(salesOrderId);
|
|
|
if(!generateKeyUtil.isXytBatchId(salesOrder.getSalesBatchId())){
|
|
|
- //不是小亚通第三方的订单,直接通过,不走该程序
|
|
|
+ // 不是小亚通第三方的订单,直接通过,不走该程序
|
|
|
logger.info("不是小亚通订单,退出!");
|
|
|
continue;
|
|
|
}
|