Jelajahi Sumber

完成定时调用拉取产品编码方法

sh4wmoo 3 tahun lalu
induk
melakukan
dfb260710f

+ 27 - 23
src/main/java/com/dk/mnls_mp/infrastructure/web/Scheduler.java

@@ -2,9 +2,12 @@ package com.dk.mnls_mp.infrastructure.web;
 
 import com.dk.mnls_mp.constant.Constant;
 import com.dk.mnls_mp.infrastructure.base.ResponseCodeEnum;
+import com.dk.mnls_mp.mapper.basic.CodeFacRecordMapper;
+import com.dk.mnls_mp.mapper.basic.CustomerMapper;
 import com.dk.mnls_mp.mapper.basic.WCFinfoMapper;
 import com.dk.mnls_mp.service.basic.SynchFacService;
 import com.dk.mnls_mp.service.iboss.PullIbossDataService;
+import com.dk.mnls_mp.service.mnls.PullFacGoodsCodeService;
 import com.dk.mnls_mp.service.synchCode.SynchCodeService;
 import com.dongke.base.exceptionHandler.ResponseResultVO;
 import lombok.extern.slf4j.Slf4j;
@@ -12,45 +15,46 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 
 @Slf4j
 @Component
 public class Scheduler {
     @Autowired
-    private SynchFacService kindCrmService;
+    PullFacGoodsCodeService pullFacGoodsCodeService;
 
     @Autowired
-    private WCFinfoMapper wcfinfoMapper;
+    CustomerMapper customerMapper;
 
     @Autowired
-    private SynchCodeService synchCodeService;
+    CodeFacRecordMapper codeFacRecordMapper;
 
     @Autowired
     PullIbossDataService pullIbossDataService;
 
     /**
-     * @author :    sh4wmoo
-     * @date :    2021-9-6 10:18
-     * @desc :    1.调用抓取crm层级方法。
-     * 2.调用抓取crm产品编码方法。
-     * 3.调用抓取bom总单、明细方法。
-     * 4.调用同步iBOSS产品编码。
-     * 5.调用同步iBOSS bom方法。
+     * @desc   : 1.调用拉取产品编码方法。
+     * @author : 张潇木
+     * @date   : 2022/9/28 15:06
      */
-//    @Scheduled(cron = "0 0 0 * * ?")
-//    public void syncGoodsData() {
-//        Date startTime;
-//        String type = "";
-
-//        4.调用抓取crm层级方法。
-//        startTime = new Date();
-//        type = "syncGoodsData-1.调用抓取crm层级";
-//        log.info("开始定时任务:{},开始时间:{}", type, startTime);
-//        ResponseResultVO res1 = kindCrmService.translateKind();
-//        checkRes(res1, type, startTime);
+    @Scheduled(cron = "1 0 0 * * ?")
+    public void syncGoodsData() {
+        Date startTime;
+        String type = "";
+
+        // region 调用抓取crm产品编码方法。
+        //定义拉取履历
+        Map pullRecord=new HashMap(4){{put("CreateTime", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now()));put("Status",0);}};
+        //插入历史履历
+        codeFacRecordMapper.insertHistory(pullRecord);
+        //调用接口拉取编码
+        pullFacGoodsCodeService.pullFacGoodsCode(Integer.valueOf(pullRecord.get("syncId").toString()));
+        // endregion
 
-//        5.调用抓取crm产品编码方法。
 //        startTime = new Date();
 //        type = "syncGoodsData-2.抓取crm产品编码";
 //        log.info("开始定时任务:{},开始时间:{}", type, startTime);
@@ -70,7 +74,7 @@ public class Scheduler {
 //        ResponseResultVO res7 = synchCodeService.synchCode(map);
 //        checkRes(res7, type, startTime);
 
-//    }
+    }
 
     /**
      * @author : sh4wmoo

+ 1 - 1
src/main/java/com/dk/mnls_mp/mapper/basic/CodeFacRecordMapper.xml

@@ -259,7 +259,7 @@
     </select>
 
     <!--插入履历-->
-    <insert id="insertHistory" useGeneratedKeys="true" keyProperty="SynchID" keyColumn="SynchID">
+    <insert id="insertHistory" useGeneratedKeys="true" keyProperty="syncId" keyColumn="SynchID">
         insert into t_mst_codehistory_fac (CreateTime,Status) values (#{map.CreateTime},#{map.Status})
     </insert>
 

+ 3 - 20
src/main/java/com/dk/mnls_mp/service/mnls/PullFacGoodsCodeService.java

@@ -51,30 +51,21 @@ public class PullFacGoodsCodeService {
     @Autowired
     CodeFacRecordMapper codeFacRecordMapper;
 
+
     /**
      * 厂家商品编码明细集合
      */
     List<FacCodeDetailDto> facCodeDetailDtoList;
 
     /**
-     * 定义抓取履历
-     */
-    Map pullRecord=new HashMap();
-
-    /**
      * @desc   : 拉取厂家商品编码
      * @author : 张潇木
      * @date   : 2022/9/23 16:54
      */
-    public ResponseResultVO pullFacGoodsCode() {
+    public ResponseResultVO pullFacGoodsCode(int syncId) {
         //初始化商品编码结果集
         facCodeDetailDtoList=new ArrayList<>();
-        //初始化抓取履历
-        pullRecord.put("CreateTime",DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now()));
-        pullRecord.put("Status",0);
         try {
-            //todo 调用了接口但是异常了。status应该是0 而不是没有履历记录
-            int syncId=this.recordPullDetail(pullRecord);
             //组装查询参数
             FacCodeQuery facCodeQuery = this.packageQuery(null,null);
             //定义开始时间
@@ -89,7 +80,7 @@ public class PullFacGoodsCodeService {
                 this.insertGoodsCode(facCodeDetailDtoList);
             }
             //将履历表状态修改为成功
-            codeFacRecordMapper.updateCodeHistoryStatusByID(new HashMap(){{put("Status",1);put("SynchID",syncId);}});
+            codeFacRecordMapper.updateCodeHistoryStatusByID(new HashMap(4){{put("Status",1);put("SynchID",syncId);}});
             //处理返回值
             return ResponseResultUtil.success(ResponseCodeEnum.SUCCESS.getCode(),"拉取厂家商品编码,并插入中台数据库成功");
         } catch (Exception ex) {
@@ -157,12 +148,4 @@ public class PullFacGoodsCodeService {
 
     }
 
-    /**
-     * @desc   : 记录拉取履历
-     * @author : 张潇木
-     * @date   : 2022/9/23 16:54
-     */
-    public int recordPullDetail(Map pullRecord){
-        return codeFacRecordMapper.insertHistory(pullRecord);
-    }
 }

+ 13 - 1
src/main/java/com/dk/mnls_mp/test/ApiTest.java

@@ -2,6 +2,7 @@ package com.dk.mnls_mp.test;
 
 import com.dk.mnls_mp.MainApplication;
 import com.dk.mnls_mp.constant.Constant;
+import com.dk.mnls_mp.mapper.basic.CodeFacRecordMapper;
 import com.dk.mnls_mp.mapper.basic.CustomerMapper;
 import com.dk.mnls_mp.model.pojo.basic.Customer;
 import com.dk.mnls_mp.service.iboss.PullIbossDataService;
@@ -15,7 +16,10 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @desc   : 接口测试类
@@ -39,6 +43,9 @@ public class ApiTest {
     @Autowired
     CustomerMapper customerMapper;
 
+    @Autowired
+    CodeFacRecordMapper codeFacRecordMapper;
+
     @Test
     public void callWebService() {
         Customer customer=customerMapper.selectById(212);
@@ -61,7 +68,12 @@ public class ApiTest {
 
     @Test
     public void pullFacGoodsCode(){
-        pullFacGoodsCodeService.pullFacGoodsCode();
+        //定义拉取履历
+        Map pullRecord=new HashMap(4){{put("CreateTime", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now()));put("Status",0);}};
+        //插入历史履历
+        codeFacRecordMapper.insertHistory(pullRecord);
+        //调用接口拉取编码
+        pullFacGoodsCodeService.pullFacGoodsCode(Integer.valueOf(pullRecord.get("syncId").toString()));
     }
 
 }