From 0925a458d92d33aa05b2fb03aec3ac8c13e5d763 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期三, 04 一月 2023 11:23:16 +0800
Subject: [PATCH] #中间表对接:订单完结上报完成

---
 src/main/java/com/zy/ints/task/scheduler/ErpDetTbScheduler.java |    1 
 src/main/java/com/zy/ints/task/scheduler/LkDetTbScheduler.java  |   90 ++++++++++++++++++++++++++----
 src/main/java/com/zy/asrs/entity/DocType.java                   |   30 ++++++++++
 3 files changed, 109 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/DocType.java b/src/main/java/com/zy/asrs/entity/DocType.java
index 14e5776..3cd4c70 100644
--- a/src/main/java/com/zy/asrs/entity/DocType.java
+++ b/src/main/java/com/zy/asrs/entity/DocType.java
@@ -159,5 +159,35 @@
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
     }
 
+    public String getDocName$(){
+        if (Cools.isEmpty(this.docName)){
+            return "";
+        }else {
+            switch (this.docName){
+                case "閲囪喘閿�鍞紙鍑哄簱锛�":
+                case "閲囪喘閿�鍞紙鍏ュ簱锛�":
+                    return "TF_PSS";
+                case "搴撳瓨璋冩嫧锛堝嚭搴擄級":
+                case "搴撳瓨璋冩嫧锛堝叆搴擄級":
+                    return "TF_IC";
+                case "搴撳瓨璋冩暣锛堝嚭搴擄級":
+                case "搴撳瓨璋冩暣锛堝叆搴擄級":
+                    return "TF_IJ";
+                case "鐢熶骇棰嗘枡锛堝嚭搴擄級":
+                case "鐢熶骇棰嗘枡锛堝叆搴擄級":
+                    return "TF_ML";
+                case "鐢熶骇缂村簱锛堝嚭搴擄級":
+                case "鐢熶骇缂村簱锛堝叆搴擄級":
+                    return "TF_MM0";
+                case "鎵樺伐閫�鍥烇紙鍑哄簱锛�":
+                case "鎵樺伐閫�鍥烇紙鍏ュ簱锛�":
+                    return "TF_TC";
+                default:
+                    return this.docName;
+            }
+        }
+
+    }
+
 
 }
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 66605c0..8cb6b98 100644
--- a/src/main/java/com/zy/ints/task/scheduler/ErpDetTbScheduler.java
+++ b/src/main/java/com/zy/ints/task/scheduler/ErpDetTbScheduler.java
@@ -139,6 +139,7 @@
                                     orderDetl.setCreateTime(now);
                                     orderDetl.setUpdateBy(9999L);
                                     orderDetl.setUpdateTime(now);
+                                    orderDetl.setMemo(erpDetTb.getWh());
                                     if (orderDetlService.insert(orderDetl)){
                                         erpSqlServer.update(sqlUpDateErpDetTbOne + "'" + erpDetTb.getPrdNo() + "'");
                                     }else {
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 c2bd126..282b5ac 100644
--- a/src/main/java/com/zy/ints/task/scheduler/LkDetTbScheduler.java
+++ b/src/main/java/com/zy/ints/task/scheduler/LkDetTbScheduler.java
@@ -1,6 +1,17 @@
 package com.zy.ints.task.scheduler;
 
+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;
+import com.zy.asrs.service.DocTypeService;
+import com.zy.asrs.service.OrderDetlService;
+import com.zy.asrs.service.OrderService;
+import com.zy.ints.entity.ErpDetTbBak;
 import com.zy.ints.entity.LkDetTb;
+import com.zy.ints.entity.LkDetTbBak;
 import com.zy.ints.erp.ErpSqlServer;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -8,6 +19,9 @@
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -24,6 +38,12 @@
     private Boolean erpEnabled;
     @Autowired
     private ErpSqlServer erpSqlServer;
+    @Autowired
+    private OrderService orderService;
+    @Autowired
+    private OrderDetlService orderDetlService;
+    @Autowired
+    private DocTypeService docTypeService;
     /**
      * 涓婃姤鍏ュ嚭搴撳畬缁撹鍗曚俊鎭�
      */
@@ -31,25 +51,71 @@
     public void InOrOutOrder() {
         if (!erpEnabled) return;
         String sqlSelectLkDetTb = "select bill_no as billNo,prd_no as prdNo,iokindid,add_id as addId,qty,prd_mark as prdMark,wh,billdate,status,temp1,temp2,temp3 from lk_det_tb where 1=1";
-        String sqlUpDateLkDetTbOne = "update lk_det_tb set status=1 where prd_no=";
-        String sqlUpDateLkDetTbTwo = "update lk_det_tb set status=2 where prd_no=";
+        String sqlSelectLkDetTbBak = "select bill_no as billNo,prd_no as prdNo,iokindid,add_id as addId,qty,prd_mark as prdMark,wh,billdate,status,temp1,temp2,temp3 from lk_det_tb_bak where 1=1";
 
         try {
-            List<LkDetTb> lkDetTbs = erpSqlServer.select(sqlSelectLkDetTb, LkDetTb.class);
-            if (lkDetTbs.size() > 0){
-                for (LkDetTb lkDetTb:lkDetTbs){
-                    Integer status = lkDetTb.getStatus();
-                    if (status == 0){
+            List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L));
+            if (orders.size()>0){
+                for (Order order:orders){
+                    List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+                    if (!Cools.isEmpty(orderDetls)){
+                        for (OrderDetl orderDetl:orderDetls){
+                            Date now = new Date();
+                            List<LkDetTb> lkDetTbs = erpSqlServer.select(sqlSelectLkDetTb+
+                                            " and bill_no='"+orderDetl.getOrderNo()+"'" +
+                                            " and prd_no='"+orderDetl.getMatnr()+"'" +
+                                            " and prd_mark='"+orderDetl.getBatch()+"'"
+                                    , LkDetTb.class);
+                            List<LkDetTbBak> lkDetTbBaks = erpSqlServer.select(sqlSelectLkDetTbBak+
+                                            " and bill_no='"+orderDetl.getOrderNo()+"'" +
+                                            " and prd_no='"+orderDetl.getMatnr()+"'" +
+                                            " and prd_mark='"+orderDetl.getBatch()+"'"
+                                    , LkDetTbBak.class);
+                            if (lkDetTbs.size() == 1 || lkDetTbBaks.size()==1){
+                                log.error("璁㈠崟鍙凤細"+orderDetl.getOrderNo()+"銆佸晢鍝佺紪鍙凤細"+orderDetl.getMatnr()+"銆佽揣鍝佺壒寰侊細"+orderDetl.getBatch()+" " +
+                                        "宸茬粡涓婃姤浣嗘槸鏄庣粏渚濇棫瀛樺湪锛岃鑱旂郴寮�鍙戜汉鍛橈紒锛侊紒");
+                                continue;
+                            }else if (lkDetTbs.size()>1 || lkDetTbBaks.size()>1){
+                                log.error("鐩稿悓 璁㈠崟鍙凤細"+orderDetl.getOrderNo()+"銆佸晢鍝佺紪鍙凤細"+orderDetl.getMatnr()+"銆佽揣鍝佺壒寰侊細"+orderDetl.getBatch()+" " +
+                                        "瀛樺湪閲嶅璧勬枡锛岃仈绯诲紑鍙戜汉鍛橈紒锛侊紒");
+                                continue;
+//                                throw new CoolException("鐩稿悓 璁㈠崟鍙凤細"+orderDetl.getOrderNo()+"銆佸晢鍝佺紪鍙凤細"+orderDetl.getMatnr()+"銆佽揣鍝佺壒寰侊細"+orderDetl.getBatch()+" " +
+//                                        "瀛樺湪閲嶅璧勬枡锛岃仈绯诲紑鍙戜汉鍛橈紒锛侊紒");
+                            }else {
+                                String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(now);
+                                HashMap<String, Object> condition = new HashMap<>();
+                                condition.put("bill_no", "'" + orderDetl.getOrderNo() + "'");
+                                condition.put("prd_no", "'" + orderDetl.getMatnr() + "'");
 
-                    }else if (status == 1){
+                                DocType docType = docTypeService.selectById(order.getDocType());
+                                if (!Cools.isEmpty(docType)){
+                                    int addid = docType.getPakin() == 1 ? 1 : 2;
+                                    condition.put("iokindid", "'" + docType.getDocName$() + "'");
+                                    condition.put("add_id", "'" + addid + "'");
+                                }
 
-                    }else if (status == 2){
-
-                    }else {
-
+                                condition.put("qty", "'" + orderDetl.getQty() + "'");
+                                condition.put("prd_mark", "'" + orderDetl.getBatch() + "'");
+                                condition.put("wh", "'" + orderDetl.getMemo() + "'");
+                                condition.put("billdate", "'" + format + "'");
+                                condition.put("status", "'" + 0 + "'");
+                                erpSqlServer.insert(LkDetTb.class, condition);
+                            }
+                            //淇濆瓨璁㈠崟鏄庣粏鍘嗗彶妗�
+                            if (orderDetlService.addToLogTable(orderDetl)){
+                                //鍒犻櫎璁㈠崟鏄庣粏
+                                orderDetlService.deleteById(orderDetl.getId());
+                            }
+                        }
+                        //淇濆瓨璁㈠崟鍘嗗彶妗�
+                        if (orderService.addToLogTable(order)){
+                            //鍒犻櫎瀹岀粨璁㈠崟
+                            orderService.deleteById(order.getId());
+                        }
                     }
                 }
             }
+
         }catch (Exception e){
 
         }

--
Gitblit v1.9.1