Browse Source

万里牛订单同步逻辑修改

24282 1 year ago
parent
commit
9f1d75a73a
1 changed files with 29 additions and 18 deletions
  1. 29 18
      sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

+ 29 - 18
sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

@@ -117,19 +117,6 @@ public class WlnOrderServiceImpl implements WlnOrderService {
         // 循环万里牛订单
         for (JSONObject wlnOrder : wlnOrderList) {
 
-            // 如果订单存在于数据库,且订单状态改变,执行update
-            OrderInfo orderInfo = orderMap.get(wlnOrder.getString("uid"));
-            if (orderInfo != null) {
-                Integer processStatus = wlnOrder.getInteger("process_status");
-                if (ObjectUtil.notEqual(orderInfo.getWlnStatus(), processStatus)) {
-                    OrderInfo updateOrder = new OrderInfo();
-                    updateOrder.setId(orderInfo.getId());
-                    updateOrder.setWlnStatus(processStatus);
-                    updateOrderList.add(updateOrder);
-                }
-                continue;
-            }
-
             // 没有匹配到事业部,则跳过
             String storageCode = wlnOrder.getString("storage_code");
             Department department = departmentMap.get(storageCode);
@@ -139,7 +126,30 @@ public class WlnOrderServiceImpl implements WlnOrderService {
             }
 
             // 创建订单
-            orderInfo = createOrder(wlnOrder, department);
+            OrderInfo orderInfo = createOrder(wlnOrder, department);
+
+            // 如果订单存在于数据库,且订单状态改变,执行update
+            OrderInfo oldOrderInfo = orderMap.get(orderInfo.getWlnUid());
+            if (oldOrderInfo != null) {
+                if (ObjectUtil.notEqual(oldOrderInfo.getWlnStatus(), orderInfo.getWlnStatus())
+                        || ObjectUtil.notEqual(oldOrderInfo.getModifyTime(), orderInfo.getModifyTime())
+                        || ObjectUtil.notEqual(DateUtil.formatDateTime(oldOrderInfo.getWlnApproveTime()), DateUtil.formatDateTime(orderInfo.getWlnApproveTime()))
+                        || ObjectUtil.notEqual(DateUtil.formatDateTime(oldOrderInfo.getWlnPrintTime()), DateUtil.formatDateTime(orderInfo.getWlnPrintTime()))
+                        || ObjectUtil.notEqual(oldOrderInfo.getWlnStorageCode(), orderInfo.getWlnStorageCode())
+                        || ObjectUtil.notEqual(oldOrderInfo.getDepartmentId(), orderInfo.getDepartmentId())) {
+                    OrderInfo updateOrder = new OrderInfo();
+                    updateOrder.setId(oldOrderInfo.getId());
+                    updateOrder.setWlnStatus(orderInfo.getWlnStatus());
+                    updateOrder.setModifyTime(orderInfo.getModifyTime());
+                    updateOrder.setWlnApproveTime(orderInfo.getWlnApproveTime());
+                    updateOrder.setWlnPrintTime(orderInfo.getWlnPrintTime());
+                    updateOrder.setWlnStorageCode(orderInfo.getWlnStorageCode());
+                    updateOrder.setDepartmentId(orderInfo.getDepartmentId());
+                    updateOrderList.add(updateOrder);
+                }
+                continue;
+            }
+
             List<OrderSku> tempOrderSkuList = new ArrayList<>();
             List<OrderSkuBom> tempOrderSkuBomList = new ArrayList<>();
 
@@ -442,10 +452,10 @@ public class WlnOrderServiceImpl implements WlnOrderService {
                 .collect(Collectors.toMap(BaseIdPo::getId, Department::getPriceBillingStandardId));
 
         // 加工计费标准id 报价规则列表 map
-        Map<Long, List<PriceBillingStandardDetail>> priceBillingStandardMap =
-                priceBillingStandardDetailService.list().stream()
-                        .filter(item -> ObjectUtil.isNotNull(item.getPriceBillingStandardId()))
-                        .collect(Collectors.groupingBy(PriceBillingStandardDetail::getPriceBillingStandardId));
+        Map<Long, List<PriceBillingStandardDetail>> priceBillingStandardMap = priceBillingStandardDetailService.list()
+                .stream()
+                .filter(item -> ObjectUtil.isNotNull(item.getPriceBillingStandardId()))
+                .collect(Collectors.groupingBy(PriceBillingStandardDetail::getPriceBillingStandardId));
 
         // 根据sku规格id获取bomId和bom规格id
         Map<Long, BomBo> bomBoMap = skuSpecService.getBomBySkuSpecIdList(
@@ -494,6 +504,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
     private void assignedUnitPrice(OrderSku orderSku, Map<Long, BomBo> bomBoMap) {
         BomBo bomBo = bomBoMap.get(orderSku.getSkuSpecId());
         if (bomBo != null) {
+            orderSku.setBomSpecId(bomBo.getBomSpecId());
             orderSku.setUnitPrice(ObjectUtil.defaultIfNull(bomBo.getInternalSellingPrice(), BigDecimal.ZERO));
         } else {
             orderSku.setUnitPrice(BigDecimal.ZERO);