Explorar o código

对接万中物流

hu hai 1 ano
pai
achega
34d5f6337b

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

@@ -5615,6 +5615,40 @@ public class R {
         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})
     public String insertOrUpdate() throws YosException {
         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 kd100id = content.getString("kd100id");
+        String kd100id = content.getStringValue("kd100id");
+        long interfacetype =content.getLong("interfacetype");
         ArrayList<String> sqlList = new ArrayList<>();
         Rows enterpriseRows = dbConnect.runSqlQuery("select sys_enterpriseid from sys_enterprise where siteid = '" + siteid + "' and sys_enterpriseid =" + sys_enterpriseid);
         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 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 (kd100idRows.isNotEmpty()) {
+            if (kd100idRows.isNotEmpty() && interfacetype==1) {
                 return getErrReturnObject().setErrMsg("k100id已存在").toString();
             }
-            if (enterpriseidRows.isNotEmpty()) {
+            if (enterpriseidRows.isNotEmpty() &&  interfacetype==1) {
                 return getErrReturnObject().setErrMsg("企业已存在").toString();
             }
+            if (nameRows.isNotEmpty() &&  interfacetype==2) {
+                return getErrReturnObject().setErrMsg("物流信息已存在").toString();
+            }
             sa_logiscompid = createTableID("sa_logiscomp");
             sqlFactory = new SQLFactory(this, "物流公司档案新增");
             String sql = DataContrlLog.createLog(this, "sa_logiscomp", sa_logiscompid, "新增", "物流公司档案新增:" + sa_logiscompid).getSQL();
             sqlList.add(sql);
         } 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();
             }
-            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();
             }
+            if (nameRows.isNotEmpty() &&  interfacetype==2) {
+                return getErrReturnObject().setErrMsg("物流信息已存在").toString();
+            }
             sqlFactory = new SQLFactory(this, "物流公司档案更新");
             String sql = DataContrlLog.createLog(this, "sa_logiscomp", sa_logiscompid, "更新", "物流公司档案更新:" + sa_logiscompid).getSQL();
             sqlList.add(sql);
@@ -86,6 +96,7 @@ public class Logiscomp extends Controller {
         sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
         sqlFactory.addParameter("name", name);
         sqlFactory.addParameter("kd100id", kd100id);
+        sqlFactory.addParameter("interfacetype", interfacetype);
         sqlFactory.addParameter("username", username);
         sqlFactory.addParameter("siteid", siteid);
         sqlList.add(sqlFactory.getSQL());
@@ -107,6 +118,9 @@ public class Logiscomp extends Controller {
             if (whereObject.containsKey("isused") && !"".equals(whereObject.getString("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.addParameter("siteid", siteid);
@@ -168,7 +182,7 @@ public class Logiscomp extends Controller {
     @CACHEING
     public String queryById() throws YosException {
         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);
         StringBuffer where = new StringBuffer(" 1=1 ");
         if (content.containsKey("where")) {

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

@@ -4,7 +4,8 @@ select t1.sa_logiscompid,
        t1.isused,
        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,
-       t1.name
+       t1.name,
+       t1.interfacetype
 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$

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

@@ -1,5 +1,5 @@
 insert into sa_logiscomp (sa_logiscompid, siteid, sys_enterpriseid,
                           kd100id, isused, changeby, changedate,
-                          createdate, createby, name)
+                          createdate, createby, name,interfacetype)
 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$,
     kd100id=$kd100id$,
     changeby=$username$,
-    changedate=current_time
+    changedate=current_time,
+    interfacetype=$interfacetype$
 where siteid = $siteid$
   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 restcontroller.R;
 import restcontroller.sale.promotion.promotion;
+import utility.WzwlDocking;
 
+import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
+import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 
 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",
                 "t3.agentnum");
         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.setWhere("t1.sa_logisticsid=" + sa_logisticsid);
         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 {
 
         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("address", controller.content.getStringValue("address"));
         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("packageqty", controller.content.getStringValue("packageqty"));
         return insertSQL;
@@ -82,6 +86,10 @@ public class LSALogisticsHelper extends BaseClass {
         updateSQL.setValue("county", controller.content.getStringValue("county"));
         updateSQL.setValue("address", controller.content.getStringValue("address"));
         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.setValue("sys_enterpriseid", controller.content.getLongValue("sys_enterpriseid"));
         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;
+    }
+}