|
@@ -202,7 +202,7 @@ public class expressform extends Controller {
|
|
|
JSONObject whereObject = content.getJSONObject("where");
|
|
JSONObject whereObject = content.getJSONObject("where");
|
|
|
if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
|
|
if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
|
|
|
where.append(" and(");
|
|
where.append(" and(");
|
|
|
- where.append("t1.billno like'%").append(whereObject.getString("condition")).append("%' ");
|
|
|
|
|
|
|
+ where.append("t1.txlogisticid like'%").append(whereObject.getString("condition")).append("%' ");
|
|
|
where.append("or t1.remarks like'%").append(whereObject.getString("condition")).append("%' ");
|
|
where.append("or t1.remarks like'%").append(whereObject.getString("condition")).append("%' ");
|
|
|
where.append(")");
|
|
where.append(")");
|
|
|
}
|
|
}
|
|
@@ -471,104 +471,118 @@ public class expressform extends Controller {
|
|
|
*/
|
|
*/
|
|
|
@API(title = "申请圆通电子面单号", apiversion = R.ID2025080714245303.v1.class)
|
|
@API(title = "申请圆通电子面单号", apiversion = R.ID2025080714245303.v1.class)
|
|
|
public String applyMailNo_YTO() throws YosException {
|
|
public String applyMailNo_YTO() throws YosException {
|
|
|
- long expressformid = content.getLong("expressformid");
|
|
|
|
|
|
|
+ JSONArray expressformids = content.getJSONArray("expressformids");
|
|
|
ArrayList<String> sqlList = new ArrayList<>();
|
|
ArrayList<String> sqlList = new ArrayList<>();
|
|
|
- Rows rows = dbConnect.runSqlQuery("select * from expressform where siteid='" + siteid + "' and expressformid=" + expressformid);
|
|
|
|
|
- if (rows.isEmpty()) {
|
|
|
|
|
- return getErrReturnObject().setErrMsg("该快递信息不存在").toString();
|
|
|
|
|
- }
|
|
|
|
|
- if (rows.get(0).getBoolean("success")) {
|
|
|
|
|
- return getErrReturnObject().setErrMsg("该快递信息单已成功申请电子面单!").toString();
|
|
|
|
|
- } else if (StringUtils.isNotBlank(rows.get(0).getString("mailno"))) {
|
|
|
|
|
- return getErrReturnObject().setErrMsg("该快递信息单已有快递面单单号,不需要重复申请!").toString();
|
|
|
|
|
- } else if ("关闭".equals(rows.get(0).getString("status"))) {
|
|
|
|
|
- return getErrReturnObject().setErrMsg("该快递信息单已关闭,不能申请电子面单!").toString();
|
|
|
|
|
- } else if (!"YTO".equalsIgnoreCase(rows.get(0).getString("logisticproviderid"))) {
|
|
|
|
|
- return getErrReturnObject().setErrMsg("目前只支持申请圆通的电子面单!").toString();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- String ordertype = rows.get(0).getString("ordertype");
|
|
|
|
|
- Rows expressvalRows = dbConnect.runSqlQuery("select * from expressval where siteid='" + siteid + "' and logisticproviderid='YTO' and ordertype='" + ordertype + "'");
|
|
|
|
|
- if (expressvalRows.isEmpty()) {
|
|
|
|
|
- return getErrReturnObject().setErrMsg("数据表'expressVal'中,缺少圆通快递开放平台的对接信息! 发货方式: " + ordertype + ";快递公司: YTO").toString();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- String url_mailno = expressvalRows.get(0).getString("url_mailno");
|
|
|
|
|
- String clientId = expressvalRows.get(0).getString("clientid");
|
|
|
|
|
- String partnerID = expressvalRows.get(0).getString("partnerid");
|
|
|
|
|
-
|
|
|
|
|
- Rows expresssdrRows = dbConnect.runSqlQuery("select * from expresssdr where siteid='" + siteid + "' and expresssdrid=" + rows.get(0).getLong("expresssdrid"));
|
|
|
|
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "expressform", "*");
|
|
|
|
|
+ querySQL.setTableAlias("t1");
|
|
|
|
|
+ querySQL.setWhere("t1.siteid", siteid);
|
|
|
|
|
+ querySQL.setWhere("t1.expressformid", expressformids);
|
|
|
|
|
+ Rows rows = querySQL.query();
|
|
|
|
|
+ BatchDeleteErr batchDeleteErr = BatchDeleteErr.create(this, expressformids.size());
|
|
|
|
|
+ for(Row row : rows){
|
|
|
|
|
+ if (row.getBoolean("success")) {
|
|
|
|
|
+ batchDeleteErr.addErr(row.getString("txlogisticid"), "该快递信息单已成功申请电子面单");
|
|
|
|
|
+ continue;
|
|
|
|
|
+ } else if (StringUtils.isNotBlank(row.getString("mailno"))) {
|
|
|
|
|
+ batchDeleteErr.addErr(row.getString("txlogisticid"), "该快递信息单已有快递面单单号,不需要重复申请!");
|
|
|
|
|
+ continue;
|
|
|
|
|
+ } else if ("关闭".equals(row.getString("status"))) {
|
|
|
|
|
+ batchDeleteErr.addErr(row.getString("txlogisticid"), "该快递信息单已关闭,不能申请电子面单!");
|
|
|
|
|
+ continue;
|
|
|
|
|
+ } else if (!"YTO".equalsIgnoreCase(row.getString("logisticproviderid"))) {
|
|
|
|
|
+ batchDeleteErr.addErr(row.getString("txlogisticid"), "目前只支持申请圆通的电子面单");
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ String ordertype = row.getString("ordertype");
|
|
|
|
|
+ Rows expressvalRows = dbConnect.runSqlQuery("select * from expressval where siteid='" + siteid + "' and logisticproviderid='YTO' and ordertype='" + ordertype + "'");
|
|
|
|
|
+ if (expressvalRows.isEmpty()) {
|
|
|
|
|
+ batchDeleteErr.addErr(row.getString("txlogisticid"), "数据表'expressVal'中,缺少圆通快递开放平台的对接信息! 发货方式: " + ordertype + ";快递公司: YTO");
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ Rows expresssdrRows = dbConnect.runSqlQuery("select * from expresssdr where siteid='" + siteid + "' and expresssdrid=" + rows.get(0).getLong("expresssdrid"));
|
|
|
|
|
|
|
|
- if (expresssdrRows.isEmpty()) {
|
|
|
|
|
- return getErrReturnObject().setErrMsg("未设置默认发件人信息").toString();
|
|
|
|
|
- }
|
|
|
|
|
- Person sender = new Person(expresssdrRows.get(0).getString("name"), expresssdrRows.get(0).getString("postcode"),
|
|
|
|
|
- expresssdrRows.get(0).getString("phonenumber"), expresssdrRows.get(0).getString("mobile"),
|
|
|
|
|
- expresssdrRows.get(0).getString("province"), expresssdrRows.get(0).getString("city") + "," + expresssdrRows.get(0).getString("county"), expresssdrRows.get(0).getString("address"));
|
|
|
|
|
-
|
|
|
|
|
- YTOExpressMailNoClient client = new YTOExpressMailNoClient(url_mailno, clientId, partnerID, sender);
|
|
|
|
|
-
|
|
|
|
|
- YTORequestOrder requestOrder = client.newYTORequestOrder();
|
|
|
|
|
- //tradeNo,orderType,serviceType,remark
|
|
|
|
|
- //rcv_name,rcv_postCode,rcv_phone,rcv_mobile,rcv_prov,rcv_city,rcv_address
|
|
|
|
|
- //itemName,number,itemsweight
|
|
|
|
|
- requestOrder.setTxLogisticID(rows.get(0).getString("txlogisticid"));
|
|
|
|
|
- requestOrder.setTradeNo(rows.get(0).getString("tradeno"));
|
|
|
|
|
- if (StringUtils.isBlank(rows.get(0).getString("ordertype"))) {
|
|
|
|
|
- return getErrReturnObject().setErrMsg("未设置快递付款类型").toString();
|
|
|
|
|
- }
|
|
|
|
|
- requestOrder.setOrderType(rows.get(0).getInteger("ordertype"));
|
|
|
|
|
- requestOrder.setServiceType(rows.get(0).getInteger("servicetype"));
|
|
|
|
|
- requestOrder.setRemark(rows.get(0).getString("remarks"));
|
|
|
|
|
- //if(requestOrder.getOrderType()==0 || requestOrder.getOrderType()==4) {
|
|
|
|
|
- if (requestOrder.getOrderType() == 4) {
|
|
|
|
|
- requestOrder.setAgencyFund(rows.get(0).getDouble("agencyfund"));
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (expresssdrRows.isEmpty()) {
|
|
|
|
|
+ batchDeleteErr.addErr(row.getString("txlogisticid"), "未设置默认发件人信息");
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isBlank(row.getString("ordertype"))) {
|
|
|
|
|
+ batchDeleteErr.addErr(row.getString("txlogisticid"), "未设置快递付款类型");
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ String url_mailno = expressvalRows.get(0).getString("url_mailno");
|
|
|
|
|
+ String clientId = expressvalRows.get(0).getString("clientid");
|
|
|
|
|
+ String partnerID = expressvalRows.get(0).getString("partnerid");
|
|
|
|
|
+ Person sender = new Person(expresssdrRows.get(0).getString("name"), expresssdrRows.get(0).getString("postcode"),
|
|
|
|
|
+ expresssdrRows.get(0).getString("phonenumber"), expresssdrRows.get(0).getString("mobile"),
|
|
|
|
|
+ expresssdrRows.get(0).getString("province"), expresssdrRows.get(0).getString("city") + "," + expresssdrRows.get(0).getString("county"), expresssdrRows.get(0).getString("address"));
|
|
|
|
|
+
|
|
|
|
|
+ YTOExpressMailNoClient client = new YTOExpressMailNoClient(url_mailno, clientId, partnerID, sender);
|
|
|
|
|
+
|
|
|
|
|
+ YTORequestOrder requestOrder = client.newYTORequestOrder();
|
|
|
|
|
+ //tradeNo,orderType,serviceType,remark
|
|
|
|
|
+ //rcv_name,rcv_postCode,rcv_phone,rcv_mobile,rcv_prov,rcv_city,rcv_address
|
|
|
|
|
+ //itemName,number,itemsweight
|
|
|
|
|
+ requestOrder.setTxLogisticID(row.getString("txlogisticid"));
|
|
|
|
|
+ requestOrder.setTradeNo(row.getString("tradeno"));
|
|
|
|
|
+
|
|
|
|
|
+ requestOrder.setOrderType(row.getInteger("ordertype"));
|
|
|
|
|
+ requestOrder.setServiceType(row.getInteger("servicetype"));
|
|
|
|
|
+ requestOrder.setRemark(row.getString("remarks"));
|
|
|
|
|
+ //if(requestOrder.getOrderType()==0 || requestOrder.getOrderType()==4) {
|
|
|
|
|
+ if (requestOrder.getOrderType() == 4) {
|
|
|
|
|
+ requestOrder.setAgencyFund(row.getDouble("agencyfund"));
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- Person receiver = new Person(rows.get(0).getString("rcv_name"), rows.get(0).getString("rcv_postcode"),
|
|
|
|
|
- rows.get(0).getString("rcv_phone"), rows.get(0).getString("rcv_mobile"),
|
|
|
|
|
- rows.get(0).getString("rcv_prov"), rows.get(0).getString("rcv_city") + "," + rows.get(0).getString("rcv_county"), rows.get(0).getString("rcv_address"));
|
|
|
|
|
- requestOrder.setReceiver(receiver);
|
|
|
|
|
-
|
|
|
|
|
- Item item = new Item(rows.get(0).getString("itemname"), rows.get(0).getInteger("number"), rows.get(0).getDouble("itemsweight"));
|
|
|
|
|
- requestOrder.setItems(new Item[]{item});
|
|
|
|
|
- //Map<String, Object> resultMap = new HashMap<>();
|
|
|
|
|
- Map<String, Object> resultMap= client.sendRequestForMailNo(requestOrder);
|
|
|
|
|
- if (resultMap != null) {
|
|
|
|
|
- String code = (String) resultMap.get("code");
|
|
|
|
|
- if ("200".equals(code)) {//成功
|
|
|
|
|
- UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "expressform");
|
|
|
|
|
- updateSQL.setUniqueid(expressformid);
|
|
|
|
|
- updateSQL.setSiteid(siteid);
|
|
|
|
|
- updateSQL.setDateValue("pushdate");
|
|
|
|
|
- updateSQL.setValue("code", code);
|
|
|
|
|
- updateSQL.setValue("mailno", (String) resultMap.get("mailNo"));
|
|
|
|
|
- Map<String, String> distributeInfoMap = (Map<String, String>) resultMap.get("distributeInfo");
|
|
|
|
|
- updateSQL.setValue("shortAddress", distributeInfoMap.get("shortAddress"));
|
|
|
|
|
- updateSQL.setValue("consigneebranchcode", distributeInfoMap.get("consigneeBranchCode"));
|
|
|
|
|
- updateSQL.setValue("packagecentercode", distributeInfoMap.get("packageCenterCode"));
|
|
|
|
|
- updateSQL.setValue("packagecentername", distributeInfoMap.get("packageCenterName"));
|
|
|
|
|
- updateSQL.setValue("success", 1);
|
|
|
|
|
- updateSQL.setValue("changeby", username);
|
|
|
|
|
- updateSQL.setDateValue("changedate");
|
|
|
|
|
- sqlList.add(updateSQL.getSQL());
|
|
|
|
|
- } else {//失败
|
|
|
|
|
- UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "expressform");
|
|
|
|
|
- updateSQL.setUniqueid(expressformid);
|
|
|
|
|
- updateSQL.setSiteid(siteid);
|
|
|
|
|
- updateSQL.setDateValue("pushdate");
|
|
|
|
|
- updateSQL.setValue("code", code);
|
|
|
|
|
- updateSQL.setValue("reason", (String) resultMap.get("reason"));
|
|
|
|
|
- updateSQL.setValue("success", 0);
|
|
|
|
|
- updateSQL.setValue("changeby", username);
|
|
|
|
|
- updateSQL.setDateValue("changedate");
|
|
|
|
|
- sqlList.add(updateSQL.getSQL());
|
|
|
|
|
|
|
+ Person receiver = new Person(row.getString("rcv_name"), row.getString("rcv_postcode"),
|
|
|
|
|
+ row.getString("rcv_phone"), row.getString("rcv_mobile"),
|
|
|
|
|
+ row.getString("rcv_prov"), row.getString("rcv_city") + "," + row.getString("rcv_county"), row.getString("rcv_address"));
|
|
|
|
|
+ requestOrder.setReceiver(receiver);
|
|
|
|
|
+
|
|
|
|
|
+ Item item = new Item(row.getString("itemname"), row.getInteger("number"), row.getDouble("itemsweight"));
|
|
|
|
|
+ requestOrder.setItems(new Item[]{item});
|
|
|
|
|
+ //Map<String, Object> resultMap = new HashMap<>();
|
|
|
|
|
+ Map<String, Object> resultMap= client.sendRequestForMailNo(requestOrder);
|
|
|
|
|
+ if (resultMap != null) {
|
|
|
|
|
+ String code = (String) resultMap.get("code");
|
|
|
|
|
+ if ("200".equals(code)) {//成功
|
|
|
|
|
+ UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "expressform");
|
|
|
|
|
+ updateSQL.setUniqueid(row.getLong("expressformid"));
|
|
|
|
|
+ updateSQL.setSiteid(siteid);
|
|
|
|
|
+ updateSQL.setDateValue("pushdate");
|
|
|
|
|
+ updateSQL.setValue("code", code);
|
|
|
|
|
+ updateSQL.setValue("mailno", (String) resultMap.get("mailNo"));
|
|
|
|
|
+ Map<String, String> distributeInfoMap = (Map<String, String>) resultMap.get("distributeInfo");
|
|
|
|
|
+ updateSQL.setValue("shortAddress", distributeInfoMap.get("shortAddress"));
|
|
|
|
|
+ updateSQL.setValue("consigneebranchcode", distributeInfoMap.get("consigneeBranchCode"));
|
|
|
|
|
+ updateSQL.setValue("packagecentercode", distributeInfoMap.get("packageCenterCode"));
|
|
|
|
|
+ updateSQL.setValue("packagecentername", distributeInfoMap.get("packageCenterName"));
|
|
|
|
|
+ updateSQL.setValue("success", 1);
|
|
|
|
|
+ updateSQL.setValue("changeby", username);
|
|
|
|
|
+ updateSQL.setDateValue("changedate");
|
|
|
|
|
+ sqlList.add(updateSQL.getSQL());
|
|
|
|
|
+ } else {//失败
|
|
|
|
|
+ UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "expressform");
|
|
|
|
|
+ updateSQL.setUniqueid(row.getLong("expressformid"));
|
|
|
|
|
+ updateSQL.setSiteid(siteid);
|
|
|
|
|
+ updateSQL.setDateValue("pushdate");
|
|
|
|
|
+ updateSQL.setValue("code", code);
|
|
|
|
|
+ updateSQL.setValue("reason", (String) resultMap.get("reason"));
|
|
|
|
|
+ updateSQL.setValue("success", 0);
|
|
|
|
|
+ updateSQL.setValue("changeby", username);
|
|
|
|
|
+ updateSQL.setDateValue("changedate");
|
|
|
|
|
+ sqlList.add(updateSQL.getSQL());
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ batchDeleteErr.addErr(row.getString("txlogisticid"), "请求电子面单接口超时");
|
|
|
|
|
+ continue;
|
|
|
}
|
|
}
|
|
|
- } else {
|
|
|
|
|
- throw new YosException("请求电子面单接口超时");
|
|
|
|
|
}
|
|
}
|
|
|
dbConnect.runSqlUpdate(sqlList);
|
|
dbConnect.runSqlUpdate(sqlList);
|
|
|
- return getSucReturnObject().toString();
|
|
|
|
|
|
|
+ HashMap<String,Object> result=new HashMap<>();
|
|
|
|
|
+ String success= "共申请"+expressformids.size()+"张圆通电子面单号,其中失败"+ batchDeleteErr.size()+"张!";
|
|
|
|
|
+ result.put("success",success);
|
|
|
|
|
+ result.put("errinfo",batchDeleteErr.getReturnObject());
|
|
|
|
|
+ return getSucReturnObject().setData(result).toString();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|