From ddfa8220125b528f0e391a7842c2583d1c4c75ee Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期三, 04 一月 2023 15:59:51 +0800
Subject: [PATCH] #中间表对接:ERP与LK库存校对完成

---
 src/main/java/com/zy/ints/task/scheduler/ErpDetTbScheduler.java |    1 
 src/main/java/com/zy/ints/task/scheduler/LkDetTbScheduler.java  |    3 -
 src/main/java/com/zy/ints/task/scheduler/ErpLkScheduler.java    |   63 ++++++++++++++++++++++++++-----
 src/main/java/com/zy/ints/task/scheduler/ErpPrdtScheduler.java  |    1 
 4 files changed, 53 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/zy/ints/task/scheduler/ErpDetTbScheduler.java b/src/main/java/com/zy/ints/task/scheduler/ErpDetTbScheduler.java
index ded8698..0f45745 100644
--- a/src/main/java/com/zy/ints/task/scheduler/ErpDetTbScheduler.java
+++ b/src/main/java/com/zy/ints/task/scheduler/ErpDetTbScheduler.java
@@ -3,7 +3,6 @@
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.SnowflakeIdWorker;
-import com.core.exception.CoolException;
 import com.zy.asrs.entity.DocType;
 import com.zy.asrs.entity.Mat;
 import com.zy.asrs.entity.Order;
diff --git a/src/main/java/com/zy/ints/task/scheduler/ErpLkScheduler.java b/src/main/java/com/zy/ints/task/scheduler/ErpLkScheduler.java
index ad2ef51..3b6cb09 100644
--- a/src/main/java/com/zy/ints/task/scheduler/ErpLkScheduler.java
+++ b/src/main/java/com/zy/ints/task/scheduler/ErpLkScheduler.java
@@ -1,8 +1,12 @@
 package com.zy.ints.task.scheduler;
 
+import com.baomidou.mybatisplus.plugins.Page;
+import com.zy.asrs.entity.LocDetl;
 import com.zy.asrs.service.ApiLogService;
-import com.zy.ints.entity.ErpDetTb;
+import com.zy.asrs.service.LocDetlService;
+import com.zy.common.web.BaseController;
 import com.zy.ints.entity.ErpLk;
+import com.zy.ints.entity.ErpLkBak;
 import com.zy.ints.erp.ErpSqlServer;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -11,6 +15,7 @@
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -19,7 +24,7 @@
  */
 @Slf4j
 @Component
-public class ErpLkScheduler {
+public class ErpLkScheduler extends BaseController {
     /**
      * ERP鎺ュ彛鏄惁鍚敤
      */
@@ -31,6 +36,9 @@
     private ApiLogService apiLogService;
     @Autowired
     private ErpSqlServer erpSqlServer;
+    @Autowired
+    private LocDetlService locDetlService;
+
     /**
      * ERP涓巐k搴撳瓨鏁版嵁姣斿
      */
@@ -43,28 +51,63 @@
 
         try {
             List<ErpLk> erpLks = erpSqlServer.select(sqlSelectErpLk, ErpLk.class);
-            if (erpLks.size() > 0){
-                for (ErpLk erpLk:erpLks){
+            if (erpLks.size() > 0) {
+                for (ErpLk erpLk : erpLks) {
                     Integer status = erpLk.getStatus();
-                    if (status == 0){
+                    if (status == 0) {
+                        HashMap<String, Object> param = new HashMap<>();
+                        param.put("curr", 1);
+                        param.put("limit", 20);
+                        param.put("matnr", erpLk.getPrdNo());
+                        param.put("batch", erpLk.getPrdMark());
+                        Page<LocDetl> stockStatis = locDetlService.getStockStatis(toPage(1, 10, param, LocDetl.class));
+                        if (stockStatis.getSize() == 1) {
+                            for (LocDetl locDetl : stockStatis.getRecords()) {
+                                if (locDetl.getAnfme() - erpLk.getQty() == 0) {
+                                    erpSqlServer.update(sqlUpDateErpLkOne + "'" + erpLk.getPrdNo() + "' and prd_mark='" + erpLk.getPrdMark() + "'");
+                                    callApiLogSave(erpLk, "bas_erp_lk", "搴撳瓨瀵规瘮鏁伴噺鐩稿悓锛侊紒锛佹�婚噺涓猴細" + erpLk.getQty(), true);
+                                } else {
+                                    erpSqlServer.update(sqlUpDateErpLkTwo + "'" + erpLk.getPrdNo() + "' and prd_mark='" + erpLk.getPrdMark() + "'");
+                                    callApiLogSave(erpLk, "bas_erp_lk", "搴撳瓨瀵规瘮鏁伴噺涓嶅悓锛侊紒锛佺珛搴撴�婚噺涓猴細" + locDetl.getAnfme() + "銆丒RP鎬婚噺涓猴細" + erpLk.getQty(), false);
+                                }
+                            }
+                        } else {
+                            callApiLogSave(erpLk, "bas_erp_lk", "绔嬪簱搴撳瓨寮傚父锛侊紒锛佺浉鍚屽搧鍙枫�佽揣鍝佺壒寰佺殑璐х墿閲嶅锛侊紒锛�", false);
+                        }
+                    } else if (status == 1) {
+                        HashMap<String, Object> condition = new HashMap<>();
+                        condition.put("prd_no", "'" + erpLk.getPrdNo() + "'");
+                        condition.put("prd_mark", "'" + erpLk.getPrdMark() + "'");
+                        condition.put("qty", "'" + erpLk.getQty() + "'");
+                        condition.put("wh", "'" + erpLk.getWh() + "'");
+                        condition.put("status", "'" + erpLk.getStatus() + "'");
+                        condition.put("temp1", "'" + erpLk.getTemp1() + "'");
+                        condition.put("temp2", "'" + erpLk.getTemp2() + "'");
+                        condition.put("temp3", "'" + erpLk.getTemp3() + "'");
+                        erpSqlServer.insert(ErpLkBak.class, condition);
 
-                    }else if (status == 1){
+                        callApiLogSave(erpLk, "bas_erp_lk", "搴撳瓨瀵规瘮璁板綍澶囦唤鎴愬姛锛侊紒锛佹�婚噺涓猴細" + erpLk.getQty(), true);
 
-                    }else if (status == 2){
+                        HashMap<String, String> condition2 = new HashMap<>();
+                        condition2.put("prd_no", "'" + erpLk.getPrdNo() + "'");
+                        condition2.put("prd_mark", "'" + erpLk.getPrdNo() + "'");
+                        erpSqlServer.delete(ErpLk.class, condition2);
+
+                        callApiLogSave(erpLk, "bas_erp_lk", "搴撳瓨瀵规瘮璁板綍澶囦唤鍚庡垹闄ゆ垚鍔燂紒锛侊紒鎬婚噺涓猴細" + erpLk.getQty(), true);
 
                     }else {
-
+                        callApiLogSave(erpLk, "bas_erp_lk", "搴撳瓨瀵规瘮瀛樺湪寮傚父鏁版嵁鏈鐞嗭紒锛侊紒", false);
                     }
                 }
             }
-        }catch (Exception e){
+        } catch (Exception e) {
             Date date = new Date();
             log.error(date + ": 琛ㄥ悕锛歜as_erp_lk :" + e);
         }
     }
 
     public void callApiLogSave(ErpLk erpLk, String tableName, String response, Boolean bool) {
-        apiLogService.save("ERP涓巐k搴撳瓨鏁版嵁姣斿",  tableName, "null", ip,
+        apiLogService.save("ERP涓巐k搴撳瓨鏁版嵁姣斿", tableName, "null", ip,
                 "鍝佸彿锛�" + erpLk.getPrdNo() + "銆佽揣鍝佺壒寰侊細" + erpLk.getPrdMark() + "銆佹暟閲忥細" + erpLk.getQty() + "銆佺姸鎬侊細" + erpLk.getStatus(),
                 response, bool);
     }
diff --git a/src/main/java/com/zy/ints/task/scheduler/ErpPrdtScheduler.java b/src/main/java/com/zy/ints/task/scheduler/ErpPrdtScheduler.java
index e7d311a..b7f653f 100644
--- a/src/main/java/com/zy/ints/task/scheduler/ErpPrdtScheduler.java
+++ b/src/main/java/com/zy/ints/task/scheduler/ErpPrdtScheduler.java
@@ -6,7 +6,6 @@
 import com.zy.asrs.service.ApiLogService;
 import com.zy.asrs.service.MatService;
 import com.zy.asrs.service.TagService;
-import com.zy.ints.entity.ErpDetTb;
 import com.zy.ints.entity.Prdt;
 import com.zy.ints.entity.PrdtBak;
 import com.zy.ints.erp.ErpSqlServer;
diff --git a/src/main/java/com/zy/ints/task/scheduler/LkDetTbScheduler.java b/src/main/java/com/zy/ints/task/scheduler/LkDetTbScheduler.java
index 6f98f01..9e29300 100644
--- a/src/main/java/com/zy/ints/task/scheduler/LkDetTbScheduler.java
+++ b/src/main/java/com/zy/ints/task/scheduler/LkDetTbScheduler.java
@@ -2,7 +2,6 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
-import com.core.exception.CoolException;
 import com.zy.asrs.entity.DocType;
 import com.zy.asrs.entity.Order;
 import com.zy.asrs.entity.OrderDetl;
@@ -10,8 +9,6 @@
 import com.zy.asrs.service.DocTypeService;
 import com.zy.asrs.service.OrderDetlService;
 import com.zy.asrs.service.OrderService;
-import com.zy.ints.entity.ErpDetTb;
-import com.zy.ints.entity.ErpDetTbBak;
 import com.zy.ints.entity.LkDetTb;
 import com.zy.ints.entity.LkDetTbBak;
 import com.zy.ints.erp.ErpSqlServer;

--
Gitblit v1.9.1