Explorar el Código

来斯奥对接功能更新

hu hace 1 año
padre
commit
64ec8f4a64

+ 68 - 15
src/custom/restcontroller/webmanage/sale/dispatch/dispatch.java

@@ -712,6 +712,57 @@ public class dispatch extends Controller {
 
         Rows rowscurrentDispatchDetail = dbConnect.runSqlQuery("select sum(t1.qty) qty,t1.sa_orderitemsid,t1.siteid,t2.itemno from sa_dispatch_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid  where t1.sa_dispatchid=" + sa_dispatchid + " group by t1.sa_orderitemsid,t1.siteid,t2.itemno");
 
+        Rows rowsDispatchDetailGroupByItem = dbConnect.runSqlQuery("select sum(t1.qty) qty,t2.itemno from sa_dispatch_items t1 inner join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid  where t1.sa_dispatchid=" + sa_dispatchid + " group by t2.itemno");
+        RowsMap rowsMapDispatchDetailGroupByItem = rowsDispatchDetailGroupByItem.toRowsMap("itemno");
+
+        if (siteid.equalsIgnoreCase("lsa") && Parameter.get(siteid, "dispatchinstock").equals("1")) {
+            JSONObject object = new JSONObject();
+            object.put("classname", "getIcinvbal");
+            object.put("method", "getMsg");
+
+            JSONObject content = new JSONObject();
+            content.put("fitemnos", rowsDispatchDetail.toJsonArray("itemno"));
+            object.put("content", content);
+
+            WebRequest request = new WebRequest();
+            String result = request.doPost(object.toString(),
+                    "http://60.190.151.198:8089/BYESB/jaxrs/webclientrest");
+            JSONArray jsonArray = new JSONArray();
+            if (isJSONArray(result)) {
+                jsonArray = JSONArray.parseArray(result);
+            }
+            SQLFactory sqlFactory1 = new SQLFactory(this, "商品发货数量汇总");
+            sqlFactory1.addParameter("siteid", siteid);
+            sqlFactory1.addParameter_in("itemno", rowsDispatchDetail.toArrayList("itemno", new ArrayList<>()));
+            Rows sumQtyRows = dbConnect.runSqlQuery(sqlFactory1);
+            RowsMap sumQtyRowsMap = sumQtyRows.toRowsMap("itemno");
+
+            for (Object obj : jsonArray) {
+                JSONObject jsonObject = (JSONObject) obj;
+                if (rowsMapDispatchDetailGroupByItem.containsKey(jsonObject.getString("fitemno"))) {
+                    if (rowsMapDispatchDetailGroupByItem.get(jsonObject.getString("fitemno")).isNotEmpty()) {
+                        rowsMapDispatchDetailGroupByItem.get(jsonObject.getString("fitemno")).get(0).put("invbalqty", jsonObject.getBigDecimalValue("FQty"));
+                    } else {
+                        rowsMapDispatchDetailGroupByItem.get(jsonObject.getString("fitemno")).get(0).put("invbalqty", 0);
+                    }
+                }
+            }
+
+            for (Row row : rowsDispatchDetailGroupByItem) {
+                if (sumQtyRowsMap.containsKey(row.getString("itemno"))) {
+                    row.put("delinvbalqty", (row.containsKey("invbalqty") ? row.getBigDecimal("invbalqty") : BigDecimal.ZERO).subtract(sumQtyRowsMap.get(row.getString("itemno")).get(0).getBigDecimal("qty")));
+                } else {
+                    row.put("delinvbalqty", row.containsKey("invbalqty") ? row.getBigDecimal("invbalqty") : BigDecimal.ZERO);
+                }
+
+                if (row.getBigDecimal("qty").compareTo(row.getBigDecimal("delinvbalqty")) > 0) {
+                    return getErrReturnObject().setErrMsg("发货商品" + row.getString("itemno") + ",库存不足,无法操作复核!")
+                            .toString();
+                }
+            }
+        }
+
+
         if (!rowscurrentDispatchDetail.isEmpty()) {
             for (Row row : rowscurrentDispatchDetail) {
 
@@ -821,22 +872,24 @@ public class dispatch extends Controller {
                         .toString();
             }
         }
+        if (siteid.equalsIgnoreCase("lsa")) {
+            JSONObject object = new JSONObject();
+            object.put("classname", "getIcinvbal");
+            object.put("method", "getSainvoiceMsg");
+
+            JSONObject content = new JSONObject();
+            content.put("billno", dispatchRows.get(0).getString("billno"));
+            object.put("content", content);
+
+            WebRequest request = new WebRequest();
+            String result = request.doPost(object.toString(),
+                    "http://60.190.151.198:8089/BYESB/jaxrs/webclientrest");
+            if (result.equals("true")) {
+                return getErrReturnObject().setErrMsg("K3发货单为非删除状态,无法反复核")
+                        .toString();
+            }
+        }
 
-//        JSONObject object = new JSONObject();
-//        object.put("classname", "getIcinvbal");
-//        object.put("method", "getSainvoiceMsg");
-//
-//        JSONObject content = new JSONObject();
-//        content.put("billno", dispatchRows.get(0).getString("billno"));
-//        object.put("content", content);
-//
-//        WebRequest request = new WebRequest();
-//        String result = request.doPost(object.toString(),
-//                "http://60.190.151.198:8089/BYESB/jaxrs/webclientrest");
-//        if (result.equals("true")) {
-//            return getErrReturnObject().setErrMsg("K3发货单为非删除状态,无法反复核")
-//                    .toString();
-//        }
 
 
         ArrayList<String> sqlList = new ArrayList<>();

+ 11 - 9
src/custom/restcontroller/webmanage/sale/dispatch/dispatchItems.java

@@ -268,16 +268,18 @@ public class dispatchItems extends Controller {
 
         WebRequest request = new WebRequest();
         //System.out.println(object.toString());
-//        String result = request.doPost(object.toString(),
-//                "http://60.190.151.198:8089/BYESB/jaxrs/webclientrest");
-//        if(isJSONArray(result)){
-//            jsonArray = JSONArray.parseArray(result);
-//        }
-        if (rows.toJsonArray("itemno").size() != 0) {
-            if (Parameter.get("system.ccerp_dockswitch").equalsIgnoreCase("true") ) {
-                jsonArray = erpDocking.getErpIcinvbalRows(200000, 1, rows.toJsonArray("itemno"));
+        if(siteid.equalsIgnoreCase("lsa")){
+            String result = request.doPost(object.toString(),
+                "http://60.190.151.198:8089/BYESB/jaxrs/webclientrest");
+            if(isJSONArray(result)){
+                jsonArray = JSONArray.parseArray(result);
+            }
+        }else{
+            if (rows.toJsonArray("itemno").size() != 0) {
+                if (Parameter.get("system.ccerp_dockswitch").equalsIgnoreCase("true") ) {
+                    jsonArray = erpDocking.getErpIcinvbalRows(200000, 1, rows.toJsonArray("itemno"));
+                }
             }
-
         }
         SQLFactory sqlFactory1 = new SQLFactory(this, "商品发货数量汇总");
         sqlFactory1.addParameter("siteid", siteid);

+ 41 - 35
src/custom/restcontroller/webmanage/sale/item/Item.java

@@ -382,46 +382,52 @@ public class Item extends Controller {
         Long itemid = content.getLong("itemid");
         Rows rows = dbConnect.runSqlQuery("select itemno from plm_item where siteid='" + siteid + "' and itemid=" + itemid);
 
-//        JSONObject object = new JSONObject();
-//        object.put("classname", "getIcinvbal");
-//        object.put("method", "getMsg");
-//
-//        JSONObject content = new JSONObject();
-//        content.put("fitemnos",  rows.toJsonArray("itemno"));
-//        object.put("content", content);
-//
-//        WebRequest request = new WebRequest();
-//        String result = request.doPost(object.toString(),
-//                "http://60.190.151.198:8089/BYESB/jaxrs/webclientrest");
-//        for (Row row : rows) {
-//            JSONArray jsonArrayResult = new JSONArray();
-//            if(isJSONArray(result)){
-//                jsonArrayResult = JSONArray.parseArray(result);
-//            }
-//            if(!jsonArrayResult.isEmpty()){
-//                row.put("invbal_qty",((JSONObject)jsonArrayResult.get(0)).getBigDecimal("FQty"));
-//            }else{
-//                row.put("invbal_qty",0);
-//            }
-//        }
-        ERPDocking erpDocking = new ERPDocking(siteid);
-        JSONArray jsonArray = new JSONArray();
-        if (Parameter.get("system.ccerp_dockswitch").equalsIgnoreCase("true")) {
-            if (!rows.toJsonArray("itemno").isEmpty()) {
-                jsonArray = erpDocking.getErpIcinvbalRows(200000, 1, rows.toJsonArray("itemno"));
+        if(siteid.equalsIgnoreCase("lsa")){
+            JSONObject object = new JSONObject();
+            object.put("classname", "getIcinvbal");
+            object.put("method", "getMsg");
+
+            JSONObject content = new JSONObject();
+            content.put("fitemnos",  rows.toJsonArray("itemno"));
+            object.put("content", content);
+
+            WebRequest request = new WebRequest();
+            String result = request.doPost(object.toString(),
+                    "http://60.190.151.198:8089/BYESB/jaxrs/webclientrest");
+            for (Row row : rows) {
+                JSONArray jsonArrayResult = new JSONArray();
+                if(isJSONArray(result)){
+                    jsonArrayResult = JSONArray.parseArray(result);
+                }
+                if(!jsonArrayResult.isEmpty()){
+                    row.put("invbal_qty",((JSONObject)jsonArrayResult.get(0)).getBigDecimal("FQty"));
+                }else{
+                    row.put("invbal_qty",0);
+                }
             }
-        }
-        if (!jsonArray.isEmpty()) {
-            for (Object object : jsonArray) {
-                JSONObject jsonObject = (JSONObject) object;
-                if (!rows.isEmpty()) {
-                    if (rows.get(0).getString("itemno").equals(jsonObject.getString("fitemno"))) {
-                        rows.get(0).put("invbal_qty", jsonObject.getBigDecimalValue("fqty"));
-                    }
+        }else{
+            ERPDocking erpDocking = new ERPDocking(siteid);
+            JSONArray jsonArray = new JSONArray();
+            if (Parameter.get("system.ccerp_dockswitch").equalsIgnoreCase("true")) {
+                if (!rows.toJsonArray("itemno").isEmpty()) {
+                    jsonArray = erpDocking.getErpIcinvbalRows(200000, 1, rows.toJsonArray("itemno"));
                 }
+            }
+            if (!jsonArray.isEmpty()) {
+                for (Object object : jsonArray) {
+                    JSONObject jsonObject = (JSONObject) object;
+                    if (!rows.isEmpty()) {
+                        if (rows.get(0).getString("itemno").equals(jsonObject.getString("fitemno"))) {
+                            rows.get(0).put("invbal_qty", jsonObject.getBigDecimalValue("fqty"));
+                        }
+                    }
 
+                }
             }
         }
+
+
+
         return getSucReturnObject().setData(rows.isNotEmpty() ? rows.get(0) : new Row()).toString();
     }
 

+ 41 - 35
src/custom/restcontroller/webmanage/sale/order/OrderItems.java

@@ -25,6 +25,7 @@ import restcontroller.webmanage.sale.aftersalesmag.twriteoffbill_orderchange;
 import restcontroller.webmanage.sale.rebate.Rebate;
 import restcontroller.webmanage.sale.toolbill.ToolBill;
 import utility.ERPDocking;
+import utility.tools.WebRequest;
 
 import java.io.IOException;
 import java.math.BigDecimal;
@@ -607,50 +608,55 @@ public class OrderItems extends Controller {
         RowsMap itempriceRowsMap = itempriceRows.toRowsMap("itemno");
 
         JSONArray jsonArray = new JSONArray();
-
-//        JSONObject object = new JSONObject();
-//        object.put("classname", "getIcinvbal");
-//        object.put("method", "getMsg");
-//
-//        JSONObject content = new JSONObject();
-//        content.put("fitemnos", rows.toJsonArray("itemno"));
-//        object.put("content", content);
-//
-//        WebRequest request = new WebRequest();
-//        String result = request.doPost(object.toString(),
-//                "http://60.190.151.198:8089/BYESB/jaxrs/webclientrest");
-//        if (isJSONArray(result)) {
-//            jsonArray = JSONArray.parseArray(result);
-//        }
-//        for (Object obj : jsonArray) {
-//            JSONObject jsonObject = (JSONObject) obj;
-//            if (rowsMap.containsKey(jsonObject.getString("fitemno"))) {
-//                if (rowsMap.get(jsonObject.getString("fitemno")).isNotEmpty()) {
-//                    rowsMap.get(jsonObject.getString("fitemno")).get(0).put("invbalqty", jsonObject.getBigDecimalValue("FQty"));
-//                }
-//            }
-//        }
-
-        ERPDocking erpDocking = new ERPDocking(siteid);
-        if (rows.toJsonArray("itemno").size() != 0) {
-            if (Parameter.get("system.ccerp_dockswitch").equalsIgnoreCase("true")) {
-                jsonArray = erpDocking.getErpIcinvbalRows(1000, 1, rows.toJsonArray("itemno"));
+        if(siteid.equalsIgnoreCase("lsa")){
+            JSONObject object = new JSONObject();
+            object.put("classname", "getIcinvbal");
+            object.put("method", "getMsg");
+
+            JSONObject content = new JSONObject();
+            content.put("fitemnos", rows.toJsonArray("itemno"));
+            object.put("content", content);
+
+            WebRequest request = new WebRequest();
+            String result = request.doPost(object.toString(),
+                    "http://60.190.151.198:8089/BYESB/jaxrs/webclientrest");
+            if (isJSONArray(result)) {
+                jsonArray = JSONArray.parseArray(result);
             }
-        }
-        if (!jsonArray.isEmpty()) {
-            for (Object object : jsonArray) {
-                JSONObject jsonObject = (JSONObject) object;
+            for (Object obj : jsonArray) {
+                JSONObject jsonObject = (JSONObject) obj;
                 if (rowsMap.containsKey(jsonObject.getString("fitemno"))) {
                     if (rowsMap.get(jsonObject.getString("fitemno")).isNotEmpty()) {
-                        for (Row row : rowsMap.get(jsonObject.getString("fitemno"))
-                        ) {
-                            row.put("invbalqty", jsonObject.getBigDecimalValue("fqty"));
+                        rowsMap.get(jsonObject.getString("fitemno")).get(0).put("invbalqty", jsonObject.getBigDecimalValue("FQty"));
+                    }
+                }
+            }
+        }else{
+            ERPDocking erpDocking = new ERPDocking(siteid);
+            if (rows.toJsonArray("itemno").size() != 0) {
+                if (Parameter.get("system.ccerp_dockswitch").equalsIgnoreCase("true")) {
+                    jsonArray = erpDocking.getErpIcinvbalRows(1000, 1, rows.toJsonArray("itemno"));
+                }
+            }
+            if (!jsonArray.isEmpty()) {
+                for (Object object : jsonArray) {
+                    JSONObject jsonObject = (JSONObject) object;
+                    if (rowsMap.containsKey(jsonObject.getString("fitemno"))) {
+                        if (rowsMap.get(jsonObject.getString("fitemno")).isNotEmpty()) {
+                            for (Row row : rowsMap.get(jsonObject.getString("fitemno"))
+                            ) {
+                                row.put("invbalqty", jsonObject.getBigDecimalValue("fqty"));
+                            }
                         }
                     }
                 }
             }
         }
 
+
+
+
+
         //查询附件
         RowsMap attinfoRowsMap = getAttachmentUrl("plm_item", ids);
         for (Row row : rows) {