Browse Source

qxm-修改HANA订单数据去重,增加库位和库位描述字段

qxm 3 years ago
parent
commit
db049859bc

+ 81 - 35
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/HanaOrderComponent.java

@@ -3,6 +3,7 @@ package com.dgtly.sync.service;
 import com.dgtly.common.config.Global;
 import com.dgtly.common.utils.DateUtils;
 import com.dgtly.common.utils.http.HttpUtils;
+import org.apache.poi.ss.formula.functions.T;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
@@ -51,40 +52,81 @@ public class HanaOrderComponent {
 
     public void hanaSalesOrderSync() throws Exception {
         Connection con = this.getHanaConnection();
-        PreparedStatement pstmt = con.prepareStatement("SELECT\t\n" +
-                "A.VBELN,\t\n" +
-                "A.POSNR,\t\n" +
-                "A.VKORG,\t\n" +
-                "A.VKORG_TXT,\t\n" +
-                "A.VTWEG,\t\n" +
-                "A.KUNNR,\t\n" +
-                "A.NAME1,\t\n" +
-                "A.ROUTE,\t\n" +
-                "A.SPART,\t\n" +
-                "A.VKGRP,\t\n" +
-                "A.WERKS,\t\n" +
-                "C.NAME1 WERKS_NAME,\t\n" +
-                "A.AUART,\t\n" +
-                "A.ERDAT,\t\n" +
-                "A.ERDAT_P,\t\n" +
-                "A.LFSTA,\t\n" +
-                "A.MATNR,\t\n" +
-                "A.ZMAKTXX,\t\n" +
-                "D.PRODHA3_TXT PRODHA_TXT,\t\n" +
-                "A.GROES,\t\n" +
-                "A.ZCMFRE,\t\n" +
-                "A.ZCMGST,\t\n" +
-                "A.ABGRU,\t\n" +
-                "A.ZZMENG,\t\n" +
-                "A.ZZMENG2,\t\n" +
-                "A.ZNETWR,\t\n" +
-                "A.ZRFMNG,\t\n" +
-                "A.ZRFMNG2,\t\n" +
-                "A.ZNETWR1,\t\n" +
-                "A.VSBED,\t\n" +
-                "A.VSBED_TXT,\t\n" +
-                "A.MEINS,\t\n" +
-                "B.TRAGR\n" +
+        PreparedStatement pstmt = con.prepareStatement("SELECT\n" +
+                "                T.VBELN,\n" +
+                "                T.POSNR,\n" +
+                "                T.VKORG,\n" +
+                "                T.VKORG_TXT,\n" +
+                "                T.VTWEG,\n" +
+                "                T.KUNNR,\n" +
+                "                T.NAME1,\n" +
+                "                T.ROUTE,\n" +
+                "                T.SPART,\n" +
+                "                T.VKGRP,\n" +
+                "                T.WERKS,\n" +
+                "                T.WERKS_NAME,\n" +
+                "                T.LGORT ,\n" +
+                "                T.LGOBE ,\n" +
+                "                T.AUART,\n" +
+                "                T.ERDAT,\n" +
+                "                T.ERDAT_P,\n" +
+                "                T.LFSTA,\n" +
+                "                T.MATNR,\n" +
+                "                T.ZMAKTXX,\n" +
+                "                T.PRODHA_TXT, \n" +
+                "                T.GROES,\n" +
+                "                T.ZCMFRE,\n" +
+                "                T.ZCMGST,\n" +
+                "                T.ABGRU,\n" +
+                "                T.ZZMENG,\n" +
+                "                T.ZZMENG2,\n" +
+                "                T.ZNETWR,\n" +
+                "                T.ZRFMNG,\n" +
+                "                T.ZRFMNG2,\n" +
+                "                T.ZNETWR1,\n" +
+                "                T.VSBED,\n" +
+                "                T.VSBED_TXT,\n" +
+                "                T.MEINS,\n" +
+                "                T.TRAGR\n" +
+                "FROM (\n" +
+                "\n" +
+                "SELECT\n" +
+                "\t\t\t\tDISTINCT  concat(A.VBELN, A.POSNR) ss,\n" +
+                "                A.VBELN,\n" +
+                "                A.POSNR,\n" +
+                "                A.VKORG,\n" +
+                "                A.VKORG_TXT,\n" +
+                "                A.VTWEG,\n" +
+                "                A.KUNNR,\n" +
+                "                A.NAME1,\n" +
+                "                A.ROUTE,\n" +
+                "                A.SPART,\n" +
+                "                A.VKGRP,\n" +
+                "                A.WERKS,\n" +
+                "                C.NAME1 WERKS_NAME,\n" +
+                "                E.LGORT ,\n" +
+                "                E.LGOBE ,\n" +
+                "                A.AUART,\n" +
+                "                A.ERDAT,\n" +
+                "                A.ERDAT_P,\n" +
+                "                A.LFSTA,\n" +
+                "                A.MATNR,\n" +
+                "                A.ZMAKTXX,\n" +
+                "                D.PRODHA3_TXT PRODHA_TXT, \n" +
+                "                A.GROES,\n" +
+                "                A.ZCMFRE,\n" +
+                "                A.ZCMGST,\n" +
+                "                A.ABGRU,\n" +
+                "                A.ZZMENG,\n" +
+                "                A.ZZMENG2,\n" +
+                "                A.ZNETWR,\n" +
+                "                A.ZRFMNG,\n" +
+                "                A.ZRFMNG2,\n" +
+                "                A.ZNETWR1,\n" +
+                "                A.VSBED,\n" +
+                "                A.VSBED_TXT,\n" +
+                "                A.MEINS,\n" +
+                "                B.TRAGR "+
                 "FROM \"_SYS_BIC\".\"com.sd/CAL_SALES\"" +
                 "('PLACEHOLDER' = ('$$IP_ENDDATE$$',\n" +
                 "\t '"+DateUtils.dateTime()+"'),\n" +
@@ -92,9 +134,11 @@ public class HanaOrderComponent {
                 "\t '"+DateUtils.getThreeMonthDate()+"')) A  LEFT JOIN ERP.MARA B ON B.MATNR = A.MATNR \n" +
                 "\t LEFT JOIN ERP.T001W C ON C.WERKS = A.WERKS \n" +
                 "\t LEFT JOIN ERP.ZHANAMATDOWN D ON D.MATNR = A.MATNR \n" +
+                "\t LEFT JOIN ERP.T001L E ON E.WERKS = A.WERKS AND E.LGORT = A.LGORT \n" +
                 "\t WHERE A.VKORG != '4000' AND A.VTWEG = 'D9' AND A.SPART != '16' AND A.AUART NOT IN ('31','32','33','35','36','39') " +
                 "and ((A.ZCMGST !='信用通过' and A.ABGRU='') or (A.ZCMGST ='信用通过' and A.ABGRU=''))\n" +
-                " order by A.VBELN,A.POSNR ");
+                " order by A.VBELN,A.POSNR " +
+                " ) T");
 
         Long startTime = System.currentTimeMillis();
         ResultSet rs = pstmt.executeQuery();
@@ -253,6 +297,8 @@ public class HanaOrderComponent {
                                 +"?"+ result.getString("VKGRP")
                                 +"?"+ result.getString("WERKS")
                                 +"?"+ result.getString("WERKS_NAME")
+                                +"?"+ result.getString("LGORT")
+                                +"?"+ result.getString("LGOBE")
                                 +"?"+ result.getString("AUART")
                                 +"?"+ result.getString("ERDAT")
                                 +"?"+ result.getString("ERDAT_P")