浏览代码

异常订单搜索

24282 1 年之前
父节点
当前提交
0efbcd3af6

+ 1 - 1
sd-business/src/main/java/com/sd/business/entity/order/enums/OrderExceptionTypeEnum.java

@@ -18,7 +18,7 @@ public enum OrderExceptionTypeEnum {
     UNKNOWN_WAREHOUSE(4, "无法通过仓库编码找到事业部"),
     UNKNOWN_SKU_SPEC(5, "订单存在未知sku规格"),
     UNKNOWN_BOM_SPEC(6, "订单sku规格未绑定bom规格"),
-
+    SKU_UPDATE(7, "订单商品被更改"),
     ;
 
     private static final Map<Integer, OrderExceptionTypeEnum> map = new HashMap<>();

+ 25 - 0
sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

@@ -224,6 +224,31 @@ public class WlnOrderServiceImpl implements WlnOrderService {
             orderInfo.setDepartmentId(department.getId());
         }
 
+        Long orderInfoId = orderInfo.getId();
+
+        List<OrderSku> list = orderSkuService.list(q -> q.eq(OrderSku::getOrderId, orderInfoId));
+        List<JSONObject> wlnOrderSkuList = wlnOrder.getJSONArray("orders").toJavaList(JSONObject.class);
+
+        if (list.size() != wlnOrderSkuList.size()) {
+            addExceptionType(orderInfo, OrderExceptionTypeEnum.SKU_UPDATE);
+        } else {
+            for (JSONObject wlnOrderSku : wlnOrderSkuList) {
+                for (OrderSku orderSku : list) {
+                    if (Objects.equals(wlnOrderSku.getString("sys_goods_uid"), orderSku.getWlnSkuId())
+                            && Objects.equals(wlnOrderSku.getString("sys_spec_uid"), orderSku.getWlnSkuSpecId())
+                            && Objects.equals(wlnOrderSku.getString("oln_sku_name"), orderSku.getWlnSkuName())
+                            && Objects.equals(wlnOrderSku.getBigDecimal("size"), orderSku.getQuantity())) {
+                        list.remove(orderSku);
+                        break;
+                    }
+                }
+            }
+
+            if (list.size() != 0) {
+                addExceptionType(orderInfo, OrderExceptionTypeEnum.SKU_UPDATE);
+            }
+        }
+
         updateOrderList.add(orderInfo);
     }