Ver Fonte

导入脚本

24282 há 1 ano atrás
pai
commit
86e0ef642d

+ 1 - 0
pom.xml

@@ -16,6 +16,7 @@
         <module>sd-business</module>
         <module>sd-wln</module>
         <module>code-generation</module>
+        <module>sd-cainiao</module>
     </modules>
 
     <properties>

+ 36 - 0
sd-cainiao/pom.xml

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.sd</groupId>
+        <artifactId>sd_project</artifactId>
+        <version>1.0</version>
+    </parent>
+
+    <artifactId>sd-cainiao</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>com.sd</groupId>
+            <artifactId>sd-business</artifactId>
+        </dependency>
+
+        <!--菜鸟快递-->
+        <dependency>
+            <groupId>com.fjhx.kd-cainiao</groupId>
+            <artifactId>common</artifactId>
+            <version>1.0</version>
+        </dependency>
+
+    </dependencies>
+
+</project>

+ 110 - 0
sd-starter/src/test/java/A10_SyncSkuLinkTest.java

@@ -0,0 +1,110 @@
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.ruoyi.common.core.domain.BaseIdPo;
+import com.sd.SdApplication;
+import com.sd.business.entity.bom.po.BomSpec;
+import com.sd.business.entity.sku.po.SkuSpec;
+import com.sd.business.entity.sku.po.SkuSpecLink;
+import com.sd.business.service.bom.BomSpecService;
+import com.sd.business.service.sku.SkuSpecLinkService;
+import com.sd.business.service.sku.SkuSpecService;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import javax.sql.DataSource;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = SdApplication.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
+public class A10_SyncSkuLinkTest {
+
+    @Autowired
+    private SkuSpecService skuSpecService;
+
+    @Autowired
+    private SkuSpecLinkService skuSpecLinkService;
+
+    @Autowired
+    private BomSpecService bomSpecService;
+
+    @Autowired
+    private DataSource dataSource;
+
+    public static void main(String[] args) {
+        String sql = "SELECT\n" +
+                "\tt1.id oldId,\n" +
+                "\tt2.spec_code skuSpecCode,\n" +
+                "\tt1.bom_color_id bomSpecId,\n" +
+                "\tt1.subsidiary_id departmentId,\n" +
+                "\t'1' type,\n" +
+                "\tquantity quantity\n" +
+                "FROM\n" +
+                "\tt_sd_product_color_bom_mountings t1\n" +
+                "\tINNER JOIN t_sd_product_color t2 ON t1.product_color_id = t2.id" +
+                " where t1.subsidiary_id = '0'";
+        System.out.println(sql);
+    }
+
+    @DSTransactional
+    @Test
+    public void test() {
+
+        List<SkuSpecLink> skuSpecLinkList = skuSpecLinkService.list(q -> q.eq(SkuSpecLink::getDepartmentId, 100L));
+        Map<String, SkuSpecLink> collect1 = skuSpecLinkList.stream().collect(Collectors.toMap(
+                item -> (item.getSkuId() + "" + item.getSkuSpecId() + "" + item.getBomSpecId()),
+                Function.identity(),
+                (v1, v2) -> v1
+        ));
+
+        Map<String, SkuSpec> skuSpecMap = skuSpecService.mapKEntity(SkuSpec::getCode, null);
+        Map<String, Long> bomSpecMap = bomSpecService.mapKV(BomSpec::getOldId, BaseIdPo::getId, null);
+
+        DynamicRoutingDataSource dynamicRoutingDataSource = (DynamicRoutingDataSource) dataSource;
+        DataSource sdDataSource = dynamicRoutingDataSource.getDataSource("business");
+
+        String sql = "SELECT\n" +
+                "\tt1.id oldId,\n" +
+                "\tt2.spec_code skuSpecCode,\n" +
+                "\tt1.bom_color_id bomSpecId,\n" +
+                "\tt1.subsidiary_id departmentId,\n" +
+                "\t'1' type,\n" +
+                "\tquantity quantity\n" +
+                "FROM\n" +
+                "\tt_sd_product_color_bom_mountings t1\n" +
+                "\tINNER JOIN t_sd_product_color t2 ON t1.product_color_id = t2.id" +
+                " where t1.subsidiary_id = '0'";
+
+        List<Map<String, Object>> list = new JdbcTemplate(sdDataSource).queryForList(sql);
+
+        List<SkuSpecLink> collect = list.stream()
+                .peek(item -> item.put("departmentId", 100))
+                .peek(item -> {
+                    SkuSpec skuSpec = skuSpecMap.get(item.get("skuSpecCode").toString());
+                    if (skuSpec == null) {
+                        return;
+                    }
+                    item.put("skuId", skuSpec.getSkuId());
+                    item.put("skuSpecId", skuSpec.getId());
+                })
+                .peek(item -> item.put("bomSpecId", bomSpecMap.get(item.get("bomSpecId").toString())))
+                .map(item -> BeanUtil.toBean(item, SkuSpecLink.class))
+                .filter(item -> ObjectUtil.isNotNull(item.getBomSpecId()))
+                .filter(item -> ObjectUtil.isNotNull(item.getDepartmentId()))
+                .filter(item -> ObjectUtil.isNotNull(item.getSkuId()))
+                .filter(item -> collect1.get(item.getSkuId() + "" + item.getSkuSpecId() + "" + item.getBomSpecId()) == null)
+                .collect(Collectors.toList());
+
+        skuSpecLinkService.saveBatch(collect);
+
+    }
+
+}

+ 0 - 1
sd-starter/src/test/java/A4_SyncSkuLinkTest.java

@@ -94,7 +94,6 @@ public class A4_SyncSkuLinkTest {
 
         List<Map<String, Object>> list = new JdbcTemplate(sdDataSource).queryForList(sql);
 
-
         List<SkuSpecLink> collect = list.stream()
                 .peek(item -> item.put("departmentId", departmentIdMap.get(item.get("departmentId").toString())))
                 .peek(item -> {

+ 12 - 1
sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

@@ -37,6 +37,7 @@ import org.springframework.transaction.TransactionStatus;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -596,7 +597,17 @@ public class WlnOrderServiceImpl implements WlnOrderService {
             getOrderList(startTime, endTime, warehouseCode, list);
         }
 
-        return list;
+        Map<String, JSONObject> collect = list.stream().collect(Collectors.toMap(
+                item -> item.getString("uid"),
+                Function.identity(),
+                (v1, v2) -> {
+                    Long v1ModifyTime = v1.getLong("modify_time");
+                    Long v2ModifyTime = v2.getLong("modify_time");
+                    return v1ModifyTime > v2ModifyTime ? v1 : v2;
+                })
+        );
+
+        return new ArrayList<>(collect.values());
     }
 
     private void getOrderList(Long startTime, Long endTime, String warehouseCode, List<JSONObject> list) {