WzwlDocking.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. package utility;
  2. import beans.uploaderpdata.UploadDataToERP_HY;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import common.BaseClass;
  6. import common.Controller;
  7. import common.YosException;
  8. import common.data.Row;
  9. import common.data.Rows;
  10. import common.data.SQLFactory;
  11. import org.apache.commons.lang.StringUtils;
  12. import org.apache.cxf.common.i18n.Exception;
  13. import utility.tools.WebRequest;
  14. import java.io.UnsupportedEncodingException;
  15. import java.security.MessageDigest;
  16. import java.security.NoSuchAlgorithmException;
  17. import java.util.Base64;
  18. import java.util.HashMap;
  19. public class WzwlDocking extends BaseClass {
  20. String url = "http://w800.zjwqrj.com:9092/zh-CN/Flow/WApi/";
  21. String companyCode = "202409241033166130229eade94bece";
  22. String appKey = "jA0TvC5VOHnmk8P4RdEX1wAgktMQvtlC";
  23. String secretKey = "mIAZwKEaUOpp";
  24. /**创建万中物流订单
  25. * @param logisticRow
  26. * @param logisticItems
  27. * @param controller
  28. * @param sa_logisticsid
  29. * @return
  30. * @throws YosException
  31. * @throws NoSuchAlgorithmException
  32. */
  33. public String createWzwlOrder(Row logisticRow, Rows logisticItems, Controller controller, long sa_logisticsid, JSONObject sender) throws YosException, NoSuchAlgorithmException, UnsupportedEncodingException {
  34. JSONObject request = new JSONObject();
  35. JSONObject data = new JSONObject();
  36. JSONObject consigner = new JSONObject();
  37. JSONObject consignee = new JSONObject();
  38. JSONArray cargo = new JSONArray();
  39. String settleType=logisticRow.getString("paytype");
  40. String deliverType=logisticRow.getString("delivertype");
  41. // switch (logisticRow.getString("paytype")){
  42. // case "发货人付款(现付)":{
  43. // settleType=1;
  44. // break;
  45. // }
  46. // case "按月支付(月结)":{
  47. // settleType=2;
  48. // break;
  49. // }
  50. // case "收货人付款(到付)":{
  51. // settleType=3;
  52. // break;
  53. // }
  54. // case "回付":{
  55. // settleType=4;
  56. // break;
  57. // }
  58. // case "混合支付":{
  59. // settleType=5;
  60. // break;
  61. // }
  62. // default:
  63. // break;
  64. // }
  65. // switch (logisticRow.getString("delivertype")){
  66. // case "送货上门":{
  67. // deliverType=1;
  68. // break;
  69. // }
  70. // case "自提":{
  71. // deliverType=2;
  72. // break;
  73. // }
  74. // case "送货安装":{
  75. // deliverType=4;
  76. // break;
  77. // }
  78. // default:
  79. // break;
  80. // }
  81. data.put("companyCode", companyCode);
  82. data.put("logisticCompanyID", "WZ");
  83. data.put("custOrderNo", logisticRow.getString("billno"));
  84. long timestamp = System.currentTimeMillis() / 1000;
  85. data.put("submitTime",timestamp);
  86. data.put("totalNum", StringUtils.isBlank(logisticRow.getString("packageqty"))?0:logisticRow.getInteger("packageqty")); //待定
  87. data.put("totalWeight", StringUtils.isBlank(logisticRow.getString("weight"))?0:logisticRow.getBigDecimal("weight"));//待定
  88. data.put("totalVolume", StringUtils.isBlank(logisticRow.getString("volume"))?0:logisticRow.getBigDecimal("volume"));//待定
  89. data.put("settleType", StringUtils.isBlank(logisticRow.getString("paytype"))?3:logisticRow.getInteger("paytype"));
  90. data.put("isPickup", "false");
  91. data.put("deliverType", StringUtils.isBlank(logisticRow.getString("delivertype"))?2:logisticRow.getInteger("delivertype"));
  92. data.put("remark", logisticRow.getString("remarks"));
  93. //发货人
  94. consigner.put("company", sender.getString("company"));
  95. consigner.put("name", sender.getString("name"));
  96. consigner.put("mobile", sender.getString("phonenumber"));
  97. consigner.put("phone", sender.getString("phonenumber"));
  98. consigner.put("province", sender.getString("province"));
  99. consigner.put("city", sender.getString("city"));
  100. consigner.put("district", sender.getString("county"));
  101. consigner.put("address", sender.getString("address"));
  102. //收货人
  103. consignee.put("company", "");
  104. consignee.put("name", logisticRow.getString("name"));
  105. consignee.put("mobile", logisticRow.getString("phonenumber"));
  106. consignee.put("phone", logisticRow.getString("phonenumber"));
  107. consignee.put("province", logisticRow.getString("province"));
  108. consignee.put("city", logisticRow.getString("city"));
  109. consignee.put("district", logisticRow.getString("county"));
  110. consignee.put("address", logisticRow.getString("address"));
  111. data.put("consigner", consigner);
  112. data.put("consignee", consignee);
  113. for (Row row : logisticItems) {
  114. JSONObject logisticItem = new JSONObject();
  115. logisticItem.put("name", row.getString("itemname"));
  116. logisticItem.put("num", row.getInteger("qty"));
  117. cargo.add(logisticItem);
  118. }
  119. data.put("cargo", cargo);
  120. String datastr=data.toString().replace("\"", "'");
  121. request.put("data", datastr);
  122. request.put("appKey", appKey);
  123. request.put("digest", digest_MD5_Base64(datastr, secretKey));
  124. HashMap<String, String> map = new HashMap<>();
  125. map.put("content-Type", "application/json");
  126. System.out.println(request.toString());
  127. String result = new WebRequest().doPost(request.toString(), url + "OrderCreate", map);
  128. JSONObject resultobject = JSONObject.parseObject(result);
  129. // saveLog(controller, "sa_logistics", sa_logisticsid, "创建万众物流订单", request.toString(), resultobject);
  130. if (resultobject != null) {
  131. if (resultobject.getString("success").equals("true")) {
  132. return "true";
  133. } else {
  134. return resultobject.getString("errorMessage");
  135. }
  136. } else {
  137. return "false";
  138. }
  139. }
  140. /**
  141. *订单状态查询
  142. * @param orderNo
  143. * @return
  144. * @throws YosException
  145. * @throws NoSuchAlgorithmException
  146. */
  147. public JSONObject queryWzwlOrder(String orderNo) throws YosException, NoSuchAlgorithmException {
  148. JSONObject request = new JSONObject();
  149. JSONObject data = new JSONObject();
  150. data.put("companyCode", companyCode);
  151. data.put("orderNo", orderNo);
  152. HashMap<String, String> map = new HashMap<>();
  153. map.put("content-Type", "application/json");
  154. String result = new WebRequest().doPost(data.toString(), url + "OrderQuery", map);
  155. JSONObject resultobject = JSONObject.parseObject(result);
  156. return resultobject;
  157. }
  158. /**
  159. *查询总费用
  160. * @param orderNo
  161. * @return
  162. * @throws YosException
  163. * @throws NoSuchAlgorithmException
  164. */
  165. public JSONObject queryWzwlOrderAmount(String orderNo) throws YosException, NoSuchAlgorithmException, UnsupportedEncodingException {
  166. JSONObject request = new JSONObject();
  167. JSONObject data = new JSONObject();
  168. data.put("companyCode", companyCode);
  169. data.put("orderNo", orderNo);
  170. String datastr =data.toString().replace("\"", "'");
  171. request.put("data", data.toString().replace("\"", "'"));
  172. request.put("appKey", appKey);
  173. request.put("digest", digest_MD5_Base64(datastr, secretKey));
  174. HashMap<String, String> map = new HashMap<>();
  175. map.put("content-Type", "application/json");
  176. String result = new WebRequest().doPost(request.toString(), url + "OrderAmountList", map);
  177. JSONObject resultobject = JSONObject.parseObject(result);
  178. return resultobject;
  179. }
  180. public JSONObject queryWzwlOrderAmountExtendList(String orderNo) throws YosException, NoSuchAlgorithmException, UnsupportedEncodingException {
  181. JSONObject request = new JSONObject();
  182. JSONObject data = new JSONObject();
  183. data.put("companyCode", companyCode);
  184. data.put("orderNo", orderNo);
  185. String datastr =data.toString().replace("\"", "'");
  186. request.put("data", data.toString().replace("\"", "'"));
  187. request.put("appKey", appKey);
  188. request.put("digest", digest_MD5_Base64(datastr, secretKey));
  189. HashMap<String, String> map = new HashMap<>();
  190. map.put("content-Type", "application/json");
  191. String result = new WebRequest().doPost(request.toString(), url + "OrderAmountExtendList", map);
  192. JSONObject resultobject = JSONObject.parseObject(result);
  193. return resultobject;
  194. }
  195. //生成digest (data 中的内容,使用data+secretKey 进行 MD5,再进行 Base64 转换后生成的摘要内容)
  196. public static String digest_MD5_Base64(String data, String secretKey) throws NoSuchAlgorithmException, UnsupportedEncodingException {
  197. String str = data+secretKey;
  198. System.out.println(str);
  199. // 创建MD5摘要
  200. MessageDigest md = MessageDigest.getInstance("MD5");
  201. byte[] digest = md.digest(str.getBytes("UTF-8"));
  202. // 将摘要转换为Base64字符串
  203. String base64Digest = Base64.getEncoder().encodeToString(digest);
  204. System.out.println(base64Digest);
  205. return base64Digest;
  206. }
  207. /**
  208. * 上传日志更新
  209. *
  210. * @param controller
  211. * @param ownertable
  212. * @param ownerid
  213. * @param type
  214. * @param request
  215. * @param response
  216. * @return
  217. */
  218. public static boolean saveLog(Controller controller, String ownertable, long ownerid, String type, String
  219. request,
  220. JSONObject response) {
  221. boolean issuccess = false;
  222. try {
  223. Rows rows = controller.dbConnect.runSqlQuery(
  224. "select * from sys_erpupdatelog where ownertable='" + ownertable + "' and ownerid=" + ownerid);
  225. SQLFactory sqlFactory;
  226. if (!rows.isEmpty()) {
  227. sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志更新");
  228. sqlFactory.addParameter("sys_erpupdatelogid", rows.get(0).getLong("sys_erpupdatelogid"));
  229. } else {
  230. sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志新增");
  231. sqlFactory.addParameter("sys_erpupdatelogid", controller.createTableID("sys_erpupdatelog"));
  232. }
  233. sqlFactory.addParameter("siteid", controller.siteid);
  234. sqlFactory.addParameter("userid", controller.userid);
  235. sqlFactory.addParameter("username", controller.username);
  236. sqlFactory.addParameter("ownerid", ownerid);
  237. sqlFactory.addParameter("ownertable", ownertable);
  238. sqlFactory.addParameter("type", type);
  239. sqlFactory.addParameter("request", request);
  240. sqlFactory.addParameter("response", response.toJSONString());
  241. if ("true".equals(response.getString("success"))) {
  242. sqlFactory.addParameter("erpbillno", response.getString("orderNo"));
  243. sqlFactory.addParameter("errmsg", "");
  244. issuccess = true;
  245. } else {
  246. sqlFactory.addParameter("erpbillno", "");
  247. sqlFactory.addParameter("errmsg", response.getString("errorMessage"));
  248. issuccess = false;
  249. }
  250. sqlFactory.addParameter("status", response.getString("success"));
  251. logger.info("sql:" + sqlFactory.getSQL());
  252. controller.dbConnect.runSqlUpdate(sqlFactory);
  253. } catch (YosException e) {
  254. e.printStackTrace();
  255. }
  256. return issuccess;
  257. }
  258. }