From f0eeec1f6db4cfc0f9e3f2de5c765d06d5831201 Mon Sep 17 00:00:00 2001
From: 18516761980 <tqsxp@163.com>
Date: 星期六, 04 二月 2023 11:41:50 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/ints/task/scheduler/ErpLkScheduler.java |   93 ++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 80 insertions(+), 13 deletions(-)

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 bb94110..e5e7c3f 100644
--- a/src/main/java/com/zy/ints/task/scheduler/ErpLkScheduler.java
+++ b/src/main/java/com/zy/ints/task/scheduler/ErpLkScheduler.java
@@ -1,6 +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.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;
@@ -8,6 +14,8 @@
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -16,42 +24,101 @@
  */
 @Slf4j
 @Component
-public class ErpLkScheduler {
+public class ErpLkScheduler extends BaseController {
     /**
      * ERP鎺ュ彛鏄惁鍚敤
      */
     @Value("${erp.enabled}")
     private Boolean erpEnabled;
+    @Value("${erp.useName.ip}")
+    private String ip;
+    @Autowired
+    private ApiLogService apiLogService;
     @Autowired
     private ErpSqlServer erpSqlServer;
+    @Autowired
+    private LocDetlService locDetlService;
+
     /**
-     * 鑾峰彇鍏ュ嚭搴撹鍗曚俊鎭�
+     * ERP涓巐k搴撳瓨鏁版嵁姣斿
      */
     @Scheduled(cron = "${erp.refreshtime}")
-    public void InOrOutOrder() {
+    public void proofread() {
         if (!erpEnabled) return;
         String sqlSelectErpLk = "select prd_no as prdNo,prd_mark as prdMark,qty,wh,status,temp1,temp2,temp3 from bas_erp_lk where 1=1";
+        String sqlSelectErpLkBak = "select prd_no as prdNo,prd_mark as prdMark,qty,wh,status,temp1,temp2,temp3 from bas_erp_lk_bak where 1=1";
         String sqlUpDateErpLkOne = "update bas_erp_lk set status=1 where prd_no=";
         String sqlUpDateErpLkTwo = "update bas_erp_lk set status=2 where prd_no=";
+        String sqlUpDateErpLkBak = "update bas_erp_lk_bak set qty=";
 
         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.getRecords().size() == 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) {
+                        List<ErpLkBak> erpLkBaks = erpSqlServer.select(sqlSelectErpLkBak + " and prd_no='" + erpLk.getPrdNo() + "' and prd_mark='" + erpLk.getPrdMark() + "'", ErpLkBak.class);
+                        if (erpLkBaks.size() == 1) {
+                            erpSqlServer.update(sqlUpDateErpLkBak + "'" + erpLk.getQty() + "' where 1=1  " +
+                                    "and prd_no='" + erpLk.getPrdNo() + "'" +
+                                    "and prd_mark='" + erpLk.getPrdMark() + "'"
+                            );
+                        } else if (erpLkBaks.size() == 0) {
+                            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 {
+                            callApiLogSave(erpLk, "bas_erp_lk", "搴撳瓨瀵规瘮璁板綍澶囦唤瀛樺湪寮傚父锛侊紒锛�", false);
+                        }
+//                        callApiLogSave(erpLk, "bas_erp_lk", "搴撳瓨瀵规瘮璁板綍澶囦唤鎴愬姛锛侊紒锛佹�婚噺涓猴細" + erpLk.getQty(), true);
 
-                    }else if (status == 1){
+                        HashMap<String, String> condition2 = new HashMap<>();
+                        condition2.put("prd_no", "'" + erpLk.getPrdNo() + "'");
+                        condition2.put("prd_mark", "'" + erpLk.getPrdMark() + "'");
+                        erpSqlServer.delete(ErpLk.class, condition2);
+//                        callApiLogSave(erpLk, "bas_erp_lk", "搴撳瓨瀵规瘮璁板綍澶囦唤鍚庡垹闄ゆ垚鍔燂紒锛侊紒鎬婚噺涓猴細" + erpLk.getQty(), true);
 
-                    }else if (status == 2){
-
-                    }else {
-
+                    } 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,
+                "鍝佸彿锛�" + erpLk.getPrdNo() + "銆佽揣鍝佺壒寰侊細" + erpLk.getPrdMark() + "銆佹暟閲忥細" + erpLk.getQty() + "銆佺姸鎬侊細" + erpLk.getStatus$(),
+                response, bool);
+    }
 }

--
Gitblit v1.9.1