瀏覽代碼

对接万中物流

hu 1 年之前
父節點
當前提交
34d5f6337b

+ 34 - 0
src/custom/restcontroller/R.java

@@ -5615,6 +5615,40 @@ public class R {
         public static class v1 {
         public static class v1 {
         }
         }
     }
     }
+
+    public static class ID2024101114031103 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID2024101114155503 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID2024101114265803 {
+        public static class v1 {
+        }
+    }
+
+
+    public static class ID20241012102003 {
+        public static class v1 {
+        }
+    }
+    public static class ID20241012102103 {
+        public static class v1 {
+        }
+    }
+    public static class ID20241012102203 {
+        public static class v1 {
+        }
+    }
+    public static class ID20241012102303 {
+        public static class v1 {
+        }
+    }
+
 }
 }
 
 
 
 

+ 127 - 0
src/custom/restcontroller/webmanage/delivery/delivery.java

@@ -0,0 +1,127 @@
+package restcontroller.webmanage.delivery;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import common.Controller;
+import common.YosException;
+import common.annotation.API;
+import common.annotation.CACHEING;
+import common.annotation.CACHEING_CLEAN;
+import common.data.*;
+import restcontroller.R;
+
+
+public class delivery extends Controller {
+
+    /**
+     * 构造函数
+     *
+     * @param content
+     */
+    public delivery(JSONObject content) throws YosException {
+        super(content);
+    }
+    String sys_enterprise_delivery="sys_enterprise_delivery";
+    @API(title = "发货人新增或编辑", apiversion = R.ID20241012102003.v1.class)
+    @CACHEING_CLEAN(apiClass = {delivery.class})
+    public String insertOrUpdate() throws YosException {
+        Long sys_enterprise_deliveryid = content.getLongValue("sys_enterprise_deliveryid");
+        Long sys_enterpriseid = content.getLongValue("sys_enterpriseid");
+
+        if (sys_enterprise_deliveryid <= 0) {
+            sys_enterprise_deliveryid = createTableID(sys_enterprise_delivery);
+            InsertSQL sqlFactory = SQLFactory.createInsertSQL(this, sys_enterprise_delivery);
+            sqlFactory.setSiteid(siteid);
+            sqlFactory.setUniqueid(sys_enterprise_deliveryid);
+            sqlFactory.setValue("province", content.getStringValue("province"));
+            sqlFactory.setValue("city", content.getStringValue("city"));
+            sqlFactory.setValue("county", content.getStringValue("county", true));
+            sqlFactory.setValue("address", content.getStringValue("address", true));
+            sqlFactory.setValue("name", content.getStringValue("name", true));
+            sqlFactory.setValue("phonenumber", content.getStringValue("phonenumber"));
+            sqlFactory.setValue("telephone", content.getStringValue("telephone"));
+            sqlFactory.insert();
+        } else {
+            UpdateSQL sqlFactory = SQLFactory.createUpdateSQL(this, sys_enterprise_delivery);
+            sqlFactory.setUniqueid(sys_enterprise_deliveryid);
+            sqlFactory.setSiteid(siteid);
+            sqlFactory.setValue("province", content.getStringValue("province"));
+            sqlFactory.setValue("city", content.getStringValue("city"));
+            sqlFactory.setValue("county", content.getStringValue("county", true));
+            sqlFactory.setValue("address", content.getStringValue("address", true));
+            sqlFactory.setValue("name", content.getStringValue("name", true));
+            sqlFactory.setValue("phonenumber", content.getStringValue("phonenumber"));
+            sqlFactory.setValue("telephone", content.getStringValue("telephone"));
+            sqlFactory.update();
+        }
+
+        return getSucReturnObject().toString();
+    }
+
+    @API(title = "发货人详情", apiversion = R.ID20241012102103.v1.class)
+    @CACHEING
+    public String detail() throws YosException {
+        Long sys_enterprise_deliveryid = content.getLongValue("sys_enterprise_deliveryid");
+        String ownertable = sys_enterprise_delivery;
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, sys_enterprise_delivery)
+                .setTableAlias("t1");
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere("sys_enterprise_deliveryid", sys_enterprise_deliveryid);
+        Rows rows = querySQL.query();
+
+        Row detailRow = rows.isNotEmpty() ? rows.get(0) : new Row();
+
+        return getSucReturnObject().setData(detailRow).toString();
+    }
+
+    @API(title = "发货人删除", apiversion = R.ID20241012102203.v1.class)
+    @CACHEING_CLEAN(apiClass = {delivery.class})
+    public String delete() throws YosException {
+        JSONArray sys_enterprise_deliveryids = content.getJSONArray("sys_enterprise_deliveryids");
+        if (sys_enterprise_deliveryids.size() == 0) {
+            return getErrReturnObject().setErrMsg("请选择要删除的数据").toString();
+        }
+        DeleteSQL sqlFactory = SQLFactory.createDeleteSQL(this, sys_enterprise_delivery);
+        sqlFactory.setSiteid(siteid);
+        sqlFactory.setWhere("sys_enterprise_deliveryid", sys_enterprise_deliveryids.toArray());
+        sqlFactory.delete();
+
+        return getSucReturnObject().toString();
+    }
+
+    @API(title = "发货人列表", apiversion = R.ID20241012102303.v1.class)
+    @CACHEING
+    public String list() throws YosException {
+        /*
+          过滤条件设置
+         */
+        StringBuffer where = new StringBuffer(" 1=1 ");
+        if (content.containsKey("where")) {
+            JSONObject whereObject = content.getJSONObject("where");
+            if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
+                where.append(" and (");
+                where.append("t1.name like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.address like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.phonenumber like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append(")");
+            }
+            if (whereObject.containsKey("sys_enterpriseid") && !"".equals(whereObject.getString("sys_enterpriseid"))) {
+                where.append(" and (");
+                where.append("t1.sys_enterpriseid ='").append(whereObject.getString("sys_enterpriseid")).append("' ");
+                where.append(")");
+            }
+        }
+
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, sys_enterprise_delivery,
+                        "sys_enterprise_deliveryid", "name", "phonenumber","province", "city", "county", "address", "createby", "createdate", "changedate", "changeby","telephone")
+                .setTableAlias("t1");
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere(where.toString());
+        querySQL.setOrderBy(pageSorting).setPage(pageSize, pageNumber);
+        Rows rows = querySQL.query();
+
+        return getSucReturnObject().setData(rows).toString();
+    }
+}

+ 36 - 22
src/custom/restcontroller/webmanage/sale/logiscomp/Logiscomp.java

@@ -34,50 +34,60 @@ public class Logiscomp extends Controller {
     @CACHEING_CLEAN(apiversions = {R.ID20221121135804.v1.class, R.ID20221121140104.v1.class})
     @CACHEING_CLEAN(apiversions = {R.ID20221121135804.v1.class, R.ID20221121140104.v1.class})
     public String insertOrUpdate() throws YosException {
     public String insertOrUpdate() throws YosException {
         Long sa_logiscompid = content.getLong("sa_logiscompid");
         Long sa_logiscompid = content.getLong("sa_logiscompid");
-        Long sys_enterpriseid = content.getLong("sys_enterpriseid");
+        Long sys_enterpriseid = content.getLongValue("sys_enterpriseid");
         String name = content.getStringValue("name");
         String name = content.getStringValue("name");
-        String kd100id = content.getString("kd100id");
+        String kd100id = content.getStringValue("kd100id");
+        long interfacetype =content.getLong("interfacetype");
         ArrayList<String> sqlList = new ArrayList<>();
         ArrayList<String> sqlList = new ArrayList<>();
         Rows enterpriseRows = dbConnect.runSqlQuery("select sys_enterpriseid from sys_enterprise where siteid = '" + siteid + "' and sys_enterpriseid =" + sys_enterpriseid);
         Rows enterpriseRows = dbConnect.runSqlQuery("select sys_enterpriseid from sys_enterprise where siteid = '" + siteid + "' and sys_enterpriseid =" + sys_enterpriseid);
         SQLFactory sqlFactory = new SQLFactory(this, "合作企业档案新增");
         SQLFactory sqlFactory = new SQLFactory(this, "合作企业档案新增");
-        if (sys_enterpriseid <= 0 || enterpriseRows.isEmpty()) {
-            sys_enterpriseid = createTableID("sys_enterprise");
-            String sql = DataContrlLog.createLog(this, "sys_enterprise", sys_enterpriseid, "新增", "物流公司档案新增:" + sys_enterpriseid).getSQL();
-            sqlList.add(sql);
-        } else {
-            sqlFactory = new SQLFactory(this, "合作企业档案更新");
-            String sql = DataContrlLog.createLog(this, "sys_enterprise", sys_enterpriseid, "更新", "物流公司档案更新:" + sys_enterpriseid).getSQL();
-            sqlList.add(sql);
+        if(interfacetype==1){
+            if (sys_enterpriseid <= 0 || enterpriseRows.isEmpty()) {
+                sys_enterpriseid = createTableID("sys_enterprise");
+                String sql = DataContrlLog.createLog(this, "sys_enterprise", sys_enterpriseid, "新增", "物流公司档案新增:" + sys_enterpriseid).getSQL();
+                sqlList.add(sql);
+            } else {
+                sqlFactory = new SQLFactory(this, "合作企业档案更新");
+                String sql = DataContrlLog.createLog(this, "sys_enterprise", sys_enterpriseid, "更新", "物流公司档案更新:" + sys_enterpriseid).getSQL();
+                sqlList.add(sql);
+            }
+            sqlFactory.addParameter("siteid", siteid);
+            sqlFactory.addParameter("userid", userid);
+            sqlFactory.addParameter("username", username);
+            sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
+            sqlFactory.addParameter("enterprisename", content.getString("enterprisename"));
+            sqlList.add(sqlFactory.getSQL());
         }
         }
-        sqlFactory.addParameter("siteid", siteid);
-        sqlFactory.addParameter("userid", userid);
-        sqlFactory.addParameter("username", username);
-        sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
-        sqlFactory.addParameter("enterprisename", content.getString("enterprisename"));
-        sqlList.add(sqlFactory.getSQL());
-        
         Rows enterpriseidRows = dbConnect.runSqlQuery("select sa_logiscompid from sa_logiscomp where siteid = '" + siteid + "' and sys_enterpriseid=" + sys_enterpriseid);
         Rows enterpriseidRows = dbConnect.runSqlQuery("select sa_logiscompid from sa_logiscomp where siteid = '" + siteid + "' and sys_enterpriseid=" + sys_enterpriseid);
 
 
         Rows kd100idRows = dbConnect.runSqlQuery("select sa_logiscompid from sa_logiscomp where siteid = '" + siteid + "' and kd100id='" + kd100id + "'");
         Rows kd100idRows = dbConnect.runSqlQuery("select sa_logiscompid from sa_logiscomp where siteid = '" + siteid + "' and kd100id='" + kd100id + "'");
 
 
+        Rows nameRows = dbConnect.runSqlQuery("select sa_logiscompid from sa_logiscomp where siteid = '" + siteid + "' and name='" + name + "'");
+
         if (sa_logiscompid <= 0 || dbConnect.runSqlQuery("select sa_logiscompid from sa_logiscomp where siteid = '" + siteid + "' and sa_logiscompid =" + sa_logiscompid).isEmpty()) {
         if (sa_logiscompid <= 0 || dbConnect.runSqlQuery("select sa_logiscompid from sa_logiscomp where siteid = '" + siteid + "' and sa_logiscompid =" + sa_logiscompid).isEmpty()) {
-            if (kd100idRows.isNotEmpty()) {
+            if (kd100idRows.isNotEmpty() && interfacetype==1) {
                 return getErrReturnObject().setErrMsg("k100id已存在").toString();
                 return getErrReturnObject().setErrMsg("k100id已存在").toString();
             }
             }
-            if (enterpriseidRows.isNotEmpty()) {
+            if (enterpriseidRows.isNotEmpty() &&  interfacetype==1) {
                 return getErrReturnObject().setErrMsg("企业已存在").toString();
                 return getErrReturnObject().setErrMsg("企业已存在").toString();
             }
             }
+            if (nameRows.isNotEmpty() &&  interfacetype==2) {
+                return getErrReturnObject().setErrMsg("物流信息已存在").toString();
+            }
             sa_logiscompid = createTableID("sa_logiscomp");
             sa_logiscompid = createTableID("sa_logiscomp");
             sqlFactory = new SQLFactory(this, "物流公司档案新增");
             sqlFactory = new SQLFactory(this, "物流公司档案新增");
             String sql = DataContrlLog.createLog(this, "sa_logiscomp", sa_logiscompid, "新增", "物流公司档案新增:" + sa_logiscompid).getSQL();
             String sql = DataContrlLog.createLog(this, "sa_logiscomp", sa_logiscompid, "新增", "物流公司档案新增:" + sa_logiscompid).getSQL();
             sqlList.add(sql);
             sqlList.add(sql);
         } else {
         } else {
-            if (kd100idRows.isNotEmpty() && kd100idRows.get(0).getLong("sa_logiscompid") != sa_logiscompid) {
+            if (kd100idRows.isNotEmpty() && interfacetype==1 && kd100idRows.get(0).getLong("sa_logiscompid") != sa_logiscompid) {
                 return getErrReturnObject().setErrMsg("k100id已存在").toString();
                 return getErrReturnObject().setErrMsg("k100id已存在").toString();
             }
             }
-            if (enterpriseidRows.isNotEmpty() && enterpriseidRows.get(0).getLong("sa_logiscompid") != sa_logiscompid) {
+            if (enterpriseidRows.isNotEmpty() &&  interfacetype==1 && enterpriseidRows.get(0).getLong("sa_logiscompid") != sa_logiscompid) {
                 return getErrReturnObject().setErrMsg("企业已存在").toString();
                 return getErrReturnObject().setErrMsg("企业已存在").toString();
             }
             }
+            if (nameRows.isNotEmpty() &&  interfacetype==2) {
+                return getErrReturnObject().setErrMsg("物流信息已存在").toString();
+            }
             sqlFactory = new SQLFactory(this, "物流公司档案更新");
             sqlFactory = new SQLFactory(this, "物流公司档案更新");
             String sql = DataContrlLog.createLog(this, "sa_logiscomp", sa_logiscompid, "更新", "物流公司档案更新:" + sa_logiscompid).getSQL();
             String sql = DataContrlLog.createLog(this, "sa_logiscomp", sa_logiscompid, "更新", "物流公司档案更新:" + sa_logiscompid).getSQL();
             sqlList.add(sql);
             sqlList.add(sql);
@@ -86,6 +96,7 @@ public class Logiscomp extends Controller {
         sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
         sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
         sqlFactory.addParameter("name", name);
         sqlFactory.addParameter("name", name);
         sqlFactory.addParameter("kd100id", kd100id);
         sqlFactory.addParameter("kd100id", kd100id);
+        sqlFactory.addParameter("interfacetype", interfacetype);
         sqlFactory.addParameter("username", username);
         sqlFactory.addParameter("username", username);
         sqlFactory.addParameter("siteid", siteid);
         sqlFactory.addParameter("siteid", siteid);
         sqlList.add(sqlFactory.getSQL());
         sqlList.add(sqlFactory.getSQL());
@@ -107,6 +118,9 @@ public class Logiscomp extends Controller {
             if (whereObject.containsKey("isused") && !"".equals(whereObject.getString("isused"))) {
             if (whereObject.containsKey("isused") && !"".equals(whereObject.getString("isused"))) {
                 where.append(" and t1.isused =").append(whereObject.getLong("isused"));
                 where.append(" and t1.isused =").append(whereObject.getLong("isused"));
             }
             }
+            if (whereObject.containsKey("interfacetype") && !"".equals(whereObject.getString("interfacetype"))) {
+                where.append(" and t1.interfacetype =").append(whereObject.getLong("interfacetype"));
+            }
         }
         }
         SQLFactory sqlFactory = new SQLFactory(this, "物流公司档案列表查询", pageSize, pageNumber, pageSorting);
         SQLFactory sqlFactory = new SQLFactory(this, "物流公司档案列表查询", pageSize, pageNumber, pageSorting);
         sqlFactory.addParameter("siteid", siteid);
         sqlFactory.addParameter("siteid", siteid);
@@ -168,7 +182,7 @@ public class Logiscomp extends Controller {
     @CACHEING
     @CACHEING
     public String queryById() throws YosException {
     public String queryById() throws YosException {
         Long sa_logiscompid = content.getLong("sa_logiscompid");
         Long sa_logiscompid = content.getLong("sa_logiscompid");
-        Rows rows = dbConnect.runSqlQuery("select t2.sys_enterpriseid,t1.kd100id, t2.abbreviation from sa_logiscomp t1 inner join sys_enterprise t2 on t1.siteid = t2.siteid and t1.sys_enterpriseid = t2.sys_enterpriseid where t1.siteid = '" + siteid +
+        Rows rows = dbConnect.runSqlQuery("select t1.*,t2.sys_enterpriseid,t1.kd100id, t2.abbreviation from sa_logiscomp t1 left join sys_enterprise t2 on t1.siteid = t2.siteid and t1.sys_enterpriseid = t2.sys_enterpriseid where t1.siteid = '" + siteid +
                 "' and t1.sa_logiscompid = " + sa_logiscompid);
                 "' and t1.sa_logiscompid = " + sa_logiscompid);
         StringBuffer where = new StringBuffer(" 1=1 ");
         StringBuffer where = new StringBuffer(" 1=1 ");
         if (content.containsKey("where")) {
         if (content.containsKey("where")) {

+ 2 - 1
src/custom/restcontroller/webmanage/sale/logiscomp/SQL/物流公司档案列表查询.sql

@@ -4,7 +4,8 @@ select t1.sa_logiscompid,
        t1.isused,
        t1.isused,
        case when t2.enterprisename is null then t1.name else t2.enterprisename end as enterprisename,
        case when t2.enterprisename is null then t1.name else t2.enterprisename end as enterprisename,
        case when t2.abbreviation is null then t1.name else t2.abbreviation end     as abbreviation,
        case when t2.abbreviation is null then t1.name else t2.abbreviation end     as abbreviation,
-       t1.name
+       t1.name,
+       t1.interfacetype
 from sa_logiscomp t1
 from sa_logiscomp t1
          left join sys_enterprise t2 on t1.siteid = t2.siteid and t1.sys_enterpriseid = t2.sys_enterpriseid
          left join sys_enterprise t2 on t1.siteid = t2.siteid and t1.sys_enterpriseid = t2.sys_enterpriseid
 where t1.siteid = $siteid$
 where t1.siteid = $siteid$

+ 2 - 2
src/custom/restcontroller/webmanage/sale/logiscomp/SQL/物流公司档案新增.sql

@@ -1,5 +1,5 @@
 insert into sa_logiscomp (sa_logiscompid, siteid, sys_enterpriseid,
 insert into sa_logiscomp (sa_logiscompid, siteid, sys_enterpriseid,
                           kd100id, isused, changeby, changedate,
                           kd100id, isused, changeby, changedate,
-                          createdate, createby, name)
+                          createdate, createby, name,interfacetype)
 values ($sa_logiscompid$, $siteid$, $sys_enterpriseid$, $kd100id$, 1, $username$, current_time, current_time,
 values ($sa_logiscompid$, $siteid$, $sys_enterpriseid$, $kd100id$, 1, $username$, current_time, current_time,
-        $username$, $name$)
+        $username$, $name$,$interfacetype$)

+ 2 - 1
src/custom/restcontroller/webmanage/sale/logiscomp/SQL/物流公司档案更新.sql

@@ -2,6 +2,7 @@ update sa_logiscomp
 set sys_enterpriseid=$sys_enterpriseid$,
 set sys_enterpriseid=$sys_enterpriseid$,
     kd100id=$kd100id$,
     kd100id=$kd100id$,
     changeby=$username$,
     changeby=$username$,
-    changedate=current_time
+    changedate=current_time,
+    interfacetype=$interfacetype$
 where siteid = $siteid$
 where siteid = $siteid$
   and sa_logiscompid = $sa_logiscompid$
   and sa_logiscompid = $sa_logiscompid$

+ 57 - 1
src/custom/restcontroller/webmanage/sale/logistics/LSALogistics.java

@@ -16,8 +16,11 @@ import common.annotation.CACHEING_CLEAN;
 import common.data.*;
 import common.data.*;
 import restcontroller.R;
 import restcontroller.R;
 import restcontroller.sale.promotion.promotion;
 import restcontroller.sale.promotion.promotion;
+import utility.WzwlDocking;
 
 
+import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.ArrayList;
 
 
 import static restcontroller.webmanage.sale.logistics.LSALogisticsHelper.*;
 import static restcontroller.webmanage.sale.logistics.LSALogisticsHelper.*;
@@ -248,7 +251,7 @@ public class LSALogistics extends Controller {
         querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t3", "t3.sys_enterpriseid=t2.sys_enterpriseid and t3.siteid=t2.siteid",
         querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t3", "t3.sys_enterpriseid=t2.sys_enterpriseid and t3.siteid=t2.siteid",
                 "t3.agentnum");
                 "t3.agentnum");
         querySQL.addJoinTable(JOINTYPE.left, "sa_logiscomp", "t4", "t4.sa_logiscompid=t1.sa_logiscompid and t4.siteid=t1.siteid",
         querySQL.addJoinTable(JOINTYPE.left, "sa_logiscomp", "t4", "t4.sa_logiscompid=t1.sa_logiscompid and t4.siteid=t1.siteid",
-                "t4.kd100id");
+                "t4.kd100id","interfacetype");
         querySQL.addQueryFields("logiscomp_name", "t4.name");
         querySQL.addQueryFields("logiscomp_name", "t4.name");
         querySQL.setWhere("t1.sa_logisticsid=" + sa_logisticsid);
         querySQL.setWhere("t1.sa_logisticsid=" + sa_logisticsid);
         querySQL.setWhere("t1.siteid='" + siteid + "'");
         querySQL.setWhere("t1.siteid='" + siteid + "'");
@@ -474,6 +477,59 @@ public class LSALogistics extends Controller {
 
 
     }
     }
 
 
+    @API(title = "发送至物流", apiversion = R.ID2024101114031103.v1.class)
+    public String SendToLogistics() throws YosException, NoSuchAlgorithmException, UnsupportedEncodingException {
+
+        WzwlDocking wzwlDocking =new WzwlDocking();
+        Long sa_logisticsid = content.getLong("sa_logisticsid");
+        Rows rows = LSALogisticsHelper.getLogisticsRows(this);
+        if (rows.isEmpty()) {
+            return getErrReturnObject().setErrMsg("请选择物流单").toString();
+        }
+        if (!rows.get(0).getString("status").equals("审核")) {
+            return getErrReturnObject().setErrMsg("该物流单为非审核状态,无法发送至物流").toString();
+        }
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_logistics_items");
+        querySQL.setTableAlias("t1");
+
+        querySQL.addJoinTable(JOINTYPE.left, "st_stockbill_items", "t2", "t2.st_stockbill_itemsid=t1.st_stockbill_itemsid and t2.siteid=t1.siteid",
+                "rowno", "itemid", "unit", "price", "amount", "remarks");
+        querySQL.addJoinTable(JOINTYPE.left, "st_stockbill", "t3", "t3.st_stockbillid =t2.st_stockbillid and t3.siteid=t2.siteid",
+                "billno");
+        querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t4", "t4.itemid =t2.itemid and t4.siteid=t2.siteid",
+                "spec","itemno", "itemname", "model");
+        querySQL.setWhere("t1.sa_logisticsid=" + sa_logisticsid);
+        querySQL.setWhere("t1.siteid='" + siteid + "'");
+        Rows itemsrows = querySQL.query();
+
+       String result = wzwlDocking.createWzwlOrder(rows.get(0),itemsrows,this,sa_logisticsid,content.getJSONObject("consigner"));
+       if(result.equals("true")) {
+           return getSucReturnObject().toString();
+       }else{
+           return getErrReturnObject().setErrMsg(result).toString();
+       }
+    }
+
+    @API(title = "物流状态查询", apiversion = R.ID2024101114155503.v1.class)
+    public String queryWzwlOrder() throws YosException, NoSuchAlgorithmException {
+
+        WzwlDocking wzwlDocking =new WzwlDocking();
+        String billno = content.getString("billno");
+        JSONObject jsonObject = wzwlDocking.queryWzwlOrder(billno);
+        return getSucReturnObject().setData(jsonObject).toString();
+    }
+
+    @API(title = "物流费用查询", apiversion = R.ID2024101114265803.v1.class)
+    public String queryWzwlOrderAmount() throws YosException, NoSuchAlgorithmException, UnsupportedEncodingException {
+
+        WzwlDocking wzwlDocking =new WzwlDocking();
+        String billno = content.getString("billno");
+        JSONObject jsonObject = wzwlDocking.queryWzwlOrderAmount(billno);
+        return getSucReturnObject().setData(jsonObject).toString();
+    }
+
+
+
     public void sendMsg(String content, Long sa_orderid, Long sys_enterpriseid) throws YosException {
     public void sendMsg(String content, Long sa_orderid, Long sys_enterpriseid) throws YosException {
 
 
         ArrayList<Long> userList = getEnterpriseHrs(sys_enterpriseid).toArrayList("userid", new ArrayList<>());
         ArrayList<Long> userList = getEnterpriseHrs(sys_enterpriseid).toArrayList("userid", new ArrayList<>());

+ 8 - 0
src/custom/restcontroller/webmanage/sale/logistics/LSALogisticsHelper.java

@@ -59,6 +59,10 @@ public class LSALogisticsHelper extends BaseClass {
         insertSQL.setValue("county", controller.content.getStringValue("county"));
         insertSQL.setValue("county", controller.content.getStringValue("county"));
         insertSQL.setValue("address", controller.content.getStringValue("address"));
         insertSQL.setValue("address", controller.content.getStringValue("address"));
         insertSQL.setValue("remarks", controller.content.getStringValue("remarks"));
         insertSQL.setValue("remarks", controller.content.getStringValue("remarks"));
+        insertSQL.setValue("name", controller.content.getStringValue("name"));
+        insertSQL.setValue("phonenumber", controller.content.getStringValue("phonenumber"));
+        insertSQL.setValue("delivertype", controller.content.getStringValue("delivertype"));
+        insertSQL.setValue("paytype", controller.content.getStringValue("paytype"));
         insertSQL.setValue("logisticsamount", controller.content.getStringValue("logisticsamount"));
         insertSQL.setValue("logisticsamount", controller.content.getStringValue("logisticsamount"));
         insertSQL.setValue("packageqty", controller.content.getStringValue("packageqty"));
         insertSQL.setValue("packageqty", controller.content.getStringValue("packageqty"));
         return insertSQL;
         return insertSQL;
@@ -82,6 +86,10 @@ public class LSALogisticsHelper extends BaseClass {
         updateSQL.setValue("county", controller.content.getStringValue("county"));
         updateSQL.setValue("county", controller.content.getStringValue("county"));
         updateSQL.setValue("address", controller.content.getStringValue("address"));
         updateSQL.setValue("address", controller.content.getStringValue("address"));
         updateSQL.setValue("remarks", controller.content.getStringValue("remarks"));
         updateSQL.setValue("remarks", controller.content.getStringValue("remarks"));
+        updateSQL.setValue("name", controller.content.getStringValue("name"));
+        updateSQL.setValue("phonenumber", controller.content.getStringValue("phonenumber"));
+        updateSQL.setValue("delivertype", controller.content.getStringValue("delivertype"));
+        updateSQL.setValue("paytype", controller.content.getStringValue("paytype"));
         updateSQL.setWhere("sa_logisticsid", sa_logisticsid);
         updateSQL.setWhere("sa_logisticsid", sa_logisticsid);
         updateSQL.setValue("sys_enterpriseid", controller.content.getLongValue("sys_enterpriseid"));
         updateSQL.setValue("sys_enterpriseid", controller.content.getLongValue("sys_enterpriseid"));
         updateSQL.setWhere("siteid", controller.siteid);
         updateSQL.setWhere("siteid", controller.siteid);

+ 261 - 0
src/custom/utility/WzwlDocking.java

@@ -0,0 +1,261 @@
+package utility;
+
+import beans.uploaderpdata.UploadDataToERP_HY;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import common.BaseClass;
+import common.Controller;
+import common.YosException;
+import common.data.Row;
+import common.data.Rows;
+import common.data.SQLFactory;
+import org.apache.cxf.common.i18n.Exception;
+import utility.tools.WebRequest;
+
+import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.Base64;
+import java.util.HashMap;
+
+public class WzwlDocking extends BaseClass {
+    String url = "http://w800.zjwqrj.com:9092/zh-CN/Flow/WApi/";
+    String companyCode = "202409241033166130229eade94bece";
+    String appKey = "jA0TvC5VOHnmk8P4RdEX1wAgktMQvtlC";
+    String secretKey = "mIAZwKEaUOpp";
+
+    /**创建万中物流订单
+     * @param logisticRow
+     * @param logisticItems
+     * @param controller
+     * @param sa_logisticsid
+     * @return
+     * @throws YosException
+     * @throws NoSuchAlgorithmException
+     */
+    public String createWzwlOrder(Row logisticRow, Rows logisticItems, Controller controller, long sa_logisticsid, JSONObject sender) throws YosException, NoSuchAlgorithmException, UnsupportedEncodingException {
+        JSONObject request = new JSONObject();
+        JSONObject data = new JSONObject();
+        JSONObject consigner = new JSONObject();
+        JSONObject consignee = new JSONObject();
+        JSONArray cargo = new JSONArray();
+        int settleType=1;
+        int deliverType=2;
+        switch (logisticRow.getString("paytype")){
+            case "发货人付款(现付)":{
+                settleType=1;
+                break;
+            }
+            case "按月支付(月结)":{
+                settleType=2;
+                break;
+            }
+            case "收货人付款(到付)":{
+                settleType=3;
+                break;
+            }
+            case "回付":{
+                settleType=4;
+                break;
+            }
+            case "混合支付":{
+                settleType=5;
+                break;
+            }
+            default:
+                break;
+        }
+        switch (logisticRow.getString("delivertype")){
+            case "送货上门":{
+                deliverType=1;
+                break;
+            }
+            case "自提":{
+                deliverType=2;
+                break;
+            }
+            case "送货安装":{
+                deliverType=4;
+                break;
+            }
+            default:
+                break;
+        }
+        data.put("companyCode", companyCode);
+        data.put("logisticCompanyID", "WZ");
+        data.put("custOrderNo", logisticRow.getString("billno"));
+        long timestamp = System.currentTimeMillis() / 1000;
+        data.put("submitTime",timestamp);
+        data.put("totalNum", 0); //待定
+        data.put("totalWeight", 0);//待定
+        data.put("totalVolume", 0);//待定
+        data.put("settleType", settleType);
+        data.put("isPickup", "false");
+        data.put("deliverType", deliverType);
+        data.put("remark", logisticRow.getString("remarks"));
+        //发货人
+        consigner.put("company", sender.getString("company"));
+        consigner.put("name", sender.getString("name"));
+        consigner.put("mobile", sender.getString("phonenumber"));
+        consigner.put("phone", sender.getString("phonenumber"));
+        consigner.put("province", sender.getString("province"));
+        consigner.put("city", sender.getString("city"));
+        consigner.put("district", sender.getString("county"));
+        consigner.put("address", sender.getString("address"));
+        //收货人
+        consignee.put("company", "");
+        consignee.put("name", logisticRow.getString("name"));
+        consignee.put("mobile", logisticRow.getString("phonenumber"));
+        consignee.put("phone",  logisticRow.getString("phonenumber"));
+        consignee.put("province",  logisticRow.getString("province"));
+        consignee.put("city",  logisticRow.getString("city"));
+        consignee.put("district", logisticRow.getString("county"));
+        consignee.put("address",  logisticRow.getString("address"));
+        data.put("consigner", consigner);
+        data.put("consignee", consignee);
+        for (Row row : logisticItems) {
+            JSONObject logisticItem = new JSONObject();
+            logisticItem.put("name", row.getString("itemname"));
+            logisticItem.put("num", row.getInteger("qty"));
+            cargo.add(logisticItem);
+        }
+        data.put("cargo", cargo);
+        String datastr=data.toString().replace("\"", "'");
+        request.put("data", datastr);
+        request.put("appKey", appKey);
+        request.put("digest", digest_MD5_Base64(datastr, secretKey));
+        HashMap<String, String> map = new HashMap<>();
+        map.put("content-Type", "application/json");
+        System.out.println(request.toString());
+        String result = new WebRequest().doPost(request.toString(), url + "OrderCreate", map);
+        JSONObject resultobject = JSONObject.parseObject(result);
+
+//        saveLog(controller, "sa_logistics", sa_logisticsid, "创建万众物流订单", request.toString(), resultobject);
+
+        if (resultobject != null) {
+            if (resultobject.getString("success").equals("true")) {
+                return "true";
+            } else {
+                return resultobject.getString("errorMessage");
+            }
+        } else {
+            return "false";
+        }
+
+    }
+
+    /**
+     *订单状态查询
+     * @param orderNo
+     * @return
+     * @throws YosException
+     * @throws NoSuchAlgorithmException
+     */
+    public JSONObject queryWzwlOrder(String orderNo) throws YosException, NoSuchAlgorithmException {
+        JSONObject request = new JSONObject();
+        JSONObject data = new JSONObject();
+
+        data.put("companyCode", companyCode);
+        data.put("orderNo", orderNo);
+
+        HashMap<String, String> map = new HashMap<>();
+        map.put("content-Type", "application/json");
+        String result = new WebRequest().doPost(data.toString(), url + "OrderQuery", map);
+        JSONObject resultobject = JSONObject.parseObject(result);
+
+        return  resultobject;
+    }
+
+    /**
+     *查询总费用
+     * @param orderNo
+     * @return
+     * @throws YosException
+     * @throws NoSuchAlgorithmException
+     */
+    public JSONObject queryWzwlOrderAmount(String orderNo) throws YosException, NoSuchAlgorithmException, UnsupportedEncodingException {
+        JSONObject request = new JSONObject();
+        JSONObject data = new JSONObject();
+
+        data.put("companyCode", companyCode);
+        data.put("orderNo", orderNo);
+        String datastr =data.toString().replace("\"", "'");
+        request.put("data", data.toString().replace("\"", "'"));
+        request.put("appKey", appKey);
+        request.put("digest", digest_MD5_Base64(datastr, secretKey));
+        HashMap<String, String> map = new HashMap<>();
+        map.put("content-Type", "application/json");
+        String result = new WebRequest().doPost(request.toString(), url + "OrderAmountList", map);
+        JSONObject resultobject = JSONObject.parseObject(result);
+
+        return  resultobject;
+    }
+
+
+    //生成digest (data 中的内容,使用data+secretKey 进行 MD5,再进行 Base64 转换后生成的摘要内容)
+    public static String digest_MD5_Base64(String data, String secretKey) throws NoSuchAlgorithmException, UnsupportedEncodingException {
+        String str = data+secretKey;
+        System.out.println(str);
+        // 创建MD5摘要
+        MessageDigest md = MessageDigest.getInstance("MD5");
+        byte[] digest = md.digest(str.getBytes("UTF-8"));
+
+        // 将摘要转换为Base64字符串
+        String base64Digest = Base64.getEncoder().encodeToString(digest);
+        System.out.println(base64Digest);
+        return base64Digest;
+    }
+
+    /**
+     * 上传日志更新
+     *
+     * @param controller
+     * @param ownertable
+     * @param ownerid
+     * @param type
+     * @param request
+     * @param response
+     * @return
+     */
+    public static boolean saveLog(Controller controller, String ownertable, long ownerid, String type, String
+            request,
+                                  JSONObject response) {
+        boolean issuccess = false;
+        try {
+            Rows rows = controller.dbConnect.runSqlQuery(
+                    "select * from sys_erpupdatelog where ownertable='" + ownertable + "' and ownerid=" + ownerid);
+            SQLFactory sqlFactory;
+            if (!rows.isEmpty()) {
+                sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志更新");
+                sqlFactory.addParameter("sys_erpupdatelogid", rows.get(0).getLong("sys_erpupdatelogid"));
+            } else {
+                sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志新增");
+                sqlFactory.addParameter("sys_erpupdatelogid", controller.createTableID("sys_erpupdatelog"));
+            }
+            sqlFactory.addParameter("siteid", controller.siteid);
+            sqlFactory.addParameter("userid", controller.userid);
+            sqlFactory.addParameter("username", controller.username);
+            sqlFactory.addParameter("ownerid", ownerid);
+            sqlFactory.addParameter("ownertable", ownertable);
+            sqlFactory.addParameter("type", type);
+            sqlFactory.addParameter("request", request);
+            sqlFactory.addParameter("response", response.toJSONString());
+
+            if ("true".equals(response.getString("success"))) {
+                sqlFactory.addParameter("erpbillno", response.getString("orderNo"));
+                sqlFactory.addParameter("errmsg", "");
+                issuccess = true;
+            } else {
+                sqlFactory.addParameter("erpbillno", "");
+                sqlFactory.addParameter("errmsg", response.getString("errorMessage"));
+                issuccess = false;
+            }
+            sqlFactory.addParameter("status", response.getString("success"));
+            logger.info("sql:" + sqlFactory.getSQL());
+            controller.dbConnect.runSqlUpdate(sqlFactory);
+        } catch (YosException e) {
+            e.printStackTrace();
+        }
+        return issuccess;
+    }
+}