Explorar el Código

对接万中物流物流费及物流状态等

hu hace 1 año
padre
commit
f755ffc4c9

+ 24 - 2
src/custom/restcontroller/webmanage/sale/logistics/LSALogistics.java

@@ -40,7 +40,7 @@ public class LSALogistics extends Controller {
 
     @API(title = "新增或更新", apiversion = R.ID20230719165802.v1.class)
     @CACHEING_CLEAN(apiClass = {LSALogistics.class})
-    public String insertOrUpdate() throws YosException {
+    public String insertOrUpdate() throws YosException, UnsupportedEncodingException, NoSuchAlgorithmException {
         //物流单ID
         Long sa_logisticsid = content.getLongValue("sa_logisticsid");
         //经销商编号(选择经销商)
@@ -240,7 +240,7 @@ public class LSALogistics extends Controller {
 
     @API(title = "物流单详情", apiversion = R.ID20230720142002.v1.class)
     @CACHEING
-    public String detail() throws YosException {
+    public String detail() throws YosException, UnsupportedEncodingException, NoSuchAlgorithmException {
         //物流单ID
         Long sa_logisticsid = content.getLongValue("sa_logisticsid");
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_logistics");
@@ -253,6 +253,7 @@ public class LSALogistics extends Controller {
         querySQL.addJoinTable(JOINTYPE.left, "sa_logiscomp", "t4", "t4.sa_logiscompid=t1.sa_logiscompid and t4.siteid=t1.siteid",
                 "t4.kd100id","interfacetype");
         querySQL.addQueryFields("logiscomp_name", "t4.name");
+        querySQL.addQueryFields("logisticsamount1","if(ifnull(t1.logisticsamount,'')='',0,t1.logisticsamount)");
         querySQL.setWhere("t1.sa_logisticsid=" + sa_logisticsid);
         querySQL.setWhere("t1.siteid='" + siteid + "'");
         Rows rows = querySQL.query();
@@ -260,7 +261,28 @@ public class LSALogistics extends Controller {
         row.putIfAbsent("billdate", "");
         row.putIfAbsent("checkdate", "");
         row.putIfAbsent("receivedate", "");
+        //对接万中物流
+        if(siteid.equalsIgnoreCase("lsa")){
+            WzwlDocking wzwlDocking =new WzwlDocking();
+            if(row.getBigDecimal("logisticsamount1").compareTo(BigDecimal.ZERO)<=0){
+                JSONObject jsonObject = wzwlDocking.queryWzwlOrderAmount(row.getString("billno"));
+                if(jsonObject.getString("success").equals("true")){
+                    JSONArray data = jsonObject.getJSONArray("data");
+                    dbConnect.runSqlUpdate("update sa_logistics set logisticsamount="+((JSONObject)data.get(0)).getBigDecimalValue("transportFee")+" where sa_logisticsid="+sa_logisticsid);
+                    row.put("logisticsamount",((JSONObject)data.get(0)).getBigDecimalValue("transportFee"));
+                }
+            }
+            if(!row.getString("logisticsstatus").equals("签收")){
+                JSONObject wzwlOrder = wzwlDocking.queryWzwlOrder(row.getString("billno"));
+                if(wzwlOrder.getString("success").equals("true")){
+                    JSONArray data = wzwlOrder.getJSONArray("data");
+                    dbConnect.runSqlUpdate("update sa_logistics set logisticsstatus='"+((JSONObject)data.get(0)).getStringValue("status")+"',logisticno='"+((JSONObject)data.get(0)).getStringValue("waybillNo")+"' where sa_logisticsid="+sa_logisticsid);
+                    row.put("logisticsstatus",((JSONObject)data.get(0)).getStringValue("status"));
+                    row.put("logisticno",((JSONObject)data.get(0)).getStringValue("waybillNo"));
+                }
+            }
 
+        }
         return getSucReturnObject().setData(row).toString();
     }
 

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

@@ -65,6 +65,9 @@ public class LSALogisticsHelper extends BaseClass {
         insertSQL.setValue("paytype", controller.content.getStringValue("paytype"));
         insertSQL.setValue("logisticsamount", controller.content.getStringValue("logisticsamount"));
         insertSQL.setValue("packageqty", controller.content.getStringValue("packageqty"));
+        insertSQL.setValue("weight", controller.content.getBigDecimalValue("weight"));
+        insertSQL.setValue("volume", controller.content.getBigDecimalValue("volume"));
+
         return insertSQL;
     }
 
@@ -95,6 +98,8 @@ public class LSALogisticsHelper extends BaseClass {
         updateSQL.setWhere("siteid", controller.siteid);
         updateSQL.setValue("logisticsamount", controller.content.getStringValue("logisticsamount"));
         updateSQL.setValue("packageqty", controller.content.getStringValue("packageqty"));
+        updateSQL.setValue("weight", controller.content.getBigDecimalValue("weight"));
+        updateSQL.setValue("volume", controller.content.getBigDecimalValue("volume"));
         return updateSQL;
     }
 

+ 4 - 3
src/custom/utility/WzwlDocking.java

@@ -9,6 +9,7 @@ import common.YosException;
 import common.data.Row;
 import common.data.Rows;
 import common.data.SQLFactory;
+import org.apache.commons.lang.StringUtils;
 import org.apache.cxf.common.i18n.Exception;
 import utility.tools.WebRequest;
 
@@ -86,9 +87,9 @@ public class WzwlDocking extends BaseClass {
         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("totalNum", StringUtils.isBlank(logisticRow.getString("packageqty"))?0:logisticRow.getInteger("packageqty")); //待定
+        data.put("totalWeight", StringUtils.isBlank(logisticRow.getString("weight"))?0:logisticRow.getBigDecimal("weight"));//待定
+        data.put("totalVolume", StringUtils.isBlank(logisticRow.getString("volume"))?0:logisticRow.getBigDecimal("volume"));//待定
         data.put("settleType", settleType);
         data.put("isPickup", "false");
         data.put("deliverType", deliverType);