ERPDocking.java 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894
  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.dom4j.Document;
  12. import utility.tools.WebRequest;
  13. import java.io.BufferedReader;
  14. import java.io.IOException;
  15. import java.io.InputStreamReader;
  16. import java.io.PrintWriter;
  17. import java.net.CookieHandler;
  18. import java.net.CookieManager;
  19. import java.net.HttpURLConnection;
  20. import java.net.URL;
  21. import java.nio.charset.StandardCharsets;
  22. import java.util.HashMap;
  23. public class ERPDocking extends BaseClass {
  24. public static boolean loginstatus = false;
  25. String url = "";
  26. public ERPDocking(String siteid) throws YosException {
  27. Rows rows = dbConnect.runSqlQuery("SELECT erp_url from sys_site_parameter WHERE siteid='" + siteid + "'");
  28. if (rows.isNotEmpty()) {
  29. url = rows.get(0).getString("erp_url");
  30. }
  31. System.err.println(siteid + ":" + url);
  32. }
  33. public String getUrl() {
  34. return url;
  35. }
  36. /*
  37. crm登陆
  38. */
  39. // private void login() throws YosException {
  40. // if (!loginstatus) {
  41. // /*
  42. // 自动保存cookie
  43. // */
  44. // CookieManager manager = new CookieManager();
  45. // CookieHandler.setDefault(manager);
  46. // String s = new WebRequest().doPost("username=yosAdmin&password=yosAdmin123", "http://crm.meida.com/dmsService/ext/partner/login");
  47. // JSONObject object = JSONObject.parseObject(s);
  48. // if (object.getIntValue("code") == 1) {
  49. // loginstatus = true;
  50. // } else {
  51. // loginstatus = false;
  52. // }
  53. // }
  54. // }
  55. /**
  56. * 获取erp物料档案
  57. *
  58. * @param begindate
  59. * @param pagerows
  60. * @param pagenum
  61. * @return
  62. * @throws YosException
  63. */
  64. public JSONArray getErpItemRows(String begindate, int pagerows, int pagenum) throws YosException {
  65. JSONObject object = new JSONObject();
  66. JSONObject objectdetail = new JSONObject();
  67. objectdetail.put("fstatus", "审核");
  68. objectdetail.put("fmodel", "");
  69. objectdetail.put("fitemname", "");
  70. objectdetail.put("fitemclsnum", "");
  71. objectdetail.put("fitemnos", new JSONArray());
  72. objectdetail.put("pagerows", pagerows);
  73. objectdetail.put("pagenum", pagenum);
  74. objectdetail.put("changedateBeg", begindate);
  75. object.put("access_token", "basicDrp");
  76. object.put("classname", "Titem");
  77. object.put("method", "queryPage");
  78. object.put("content", objectdetail);
  79. HashMap<String, String> map = new HashMap<>();
  80. map.put("content-Type", "application/json");
  81. String result = new WebRequest().doPost(object.toString(), url, map);
  82. JSONObject resultobject = JSONObject.parseObject(result);
  83. // System.out.println(object.toString());
  84. // System.out.println(resultobject.toJSONString());
  85. if (resultobject != null) {
  86. if (resultobject.getString("errcode").equals("0")) {
  87. return resultobject.getJSONObject("results").getJSONArray("list");
  88. } else {
  89. return new JSONArray();
  90. }
  91. } else {
  92. return new JSONArray();
  93. }
  94. }
  95. /**
  96. * 查询Erp库存
  97. *
  98. * @param pagerows
  99. * @param pagenum
  100. * @param fitemnos
  101. * @return
  102. * @throws YosException
  103. */
  104. public JSONArray getErpIcinvbalRows(int pagerows, int pagenum, JSONArray fitemnos) throws YosException {
  105. {
  106. JSONObject object = new JSONObject();
  107. JSONObject objectdetail = new JSONObject();
  108. objectdetail.put("fstockno", "01");
  109. objectdetail.put("fmodel", "");
  110. objectdetail.put("fitemname", "");
  111. objectdetail.put("fitemclsnum", "");
  112. objectdetail.put("fitemnos", fitemnos);
  113. objectdetail.put("pagerows", pagerows);
  114. objectdetail.put("pagenum", pagenum);
  115. object.put("access_token", "basicDrp");
  116. object.put("classname", "Icinvbal");
  117. object.put("method", "queryPage");
  118. object.put("content", objectdetail);
  119. HashMap<String, String> map = new HashMap<>();
  120. map.put("content-Type", "application/json");
  121. String result = new WebRequest().doPost(object.toString(), url, map);
  122. JSONObject resultobject = JSONObject.parseObject(result);
  123. if (resultobject != null) {
  124. if (resultobject.getString("errcode").equals("0")) {
  125. return resultobject.getJSONObject("results").getJSONArray("list");
  126. } else {
  127. return new JSONArray();
  128. }
  129. } else {
  130. return new JSONArray();
  131. }
  132. }
  133. }
  134. /**
  135. * 查询Erp批次库存
  136. *
  137. * @param pagerows
  138. * @param pagenum
  139. * @param fitemnos
  140. * @return
  141. * @throws YosException
  142. */
  143. public JSONArray getErpIcinvbalBatchRows(int pagerows, int pagenum, JSONArray fitemnos) throws YosException {
  144. {
  145. JSONObject object = new JSONObject();
  146. JSONObject objectdetail = new JSONObject();
  147. objectdetail.put("fstockno", "01");
  148. objectdetail.put("fstockname", "");
  149. objectdetail.put("fmodel", "");
  150. objectdetail.put("fitemname", "");
  151. objectdetail.put("fbatchno", "");
  152. objectdetail.put("fitemclsnum", "");
  153. objectdetail.put("onlyFqtyPositive", "true");
  154. objectdetail.put("fitemnos", fitemnos);
  155. objectdetail.put("pagerows", pagerows);
  156. objectdetail.put("pagenum", pagenum);
  157. object.put("access_token", "basicDrp");
  158. object.put("classname", "Icinvbal");
  159. object.put("method", "queryPageOfBatch");
  160. object.put("content", objectdetail);
  161. HashMap<String, String> map = new HashMap<>();
  162. map.put("content-Type", "application/json");
  163. String result = new WebRequest().doPost(object.toString(), url, map);
  164. JSONObject resultobject = JSONObject.parseObject(result);
  165. if (resultobject != null) {
  166. if (resultobject.getString("errcode").equals("0")) {
  167. return resultobject.getJSONObject("results").getJSONArray("list");
  168. } else {
  169. return new JSONArray();
  170. }
  171. } else {
  172. return new JSONArray();
  173. }
  174. }
  175. }
  176. /**
  177. * 查询Erp批次库存
  178. *
  179. * @param pagerows
  180. * @param pagenum
  181. * @param fitemnos
  182. * @return
  183. * @throws YosException
  184. */
  185. public JSONArray getErpIcinvbalBatchRowsforbatchno(int pagerows, int pagenum, JSONArray fitemnos,String fbatchno) throws YosException {
  186. {
  187. JSONObject object = new JSONObject();
  188. JSONObject objectdetail = new JSONObject();
  189. objectdetail.put("fstockno", "01");
  190. objectdetail.put("fstockname", "");
  191. objectdetail.put("fmodel", "");
  192. objectdetail.put("fitemname", "");
  193. objectdetail.put("fbatchno", fbatchno);
  194. objectdetail.put("fitemclsnum", "");
  195. objectdetail.put("onlyFqtyPositive", "true");
  196. objectdetail.put("fitemnos", fitemnos);
  197. objectdetail.put("pagerows", pagerows);
  198. objectdetail.put("pagenum", pagenum);
  199. object.put("access_token", "basicDrp");
  200. object.put("classname", "Icinvbal");
  201. object.put("method", "queryPageOfBatch");
  202. object.put("content", objectdetail);
  203. HashMap<String, String> map = new HashMap<>();
  204. map.put("content-Type", "application/json");
  205. String result = new WebRequest().doPost(object.toString(), url, map);
  206. JSONObject resultobject = JSONObject.parseObject(result);
  207. if (resultobject != null) {
  208. if (resultobject.getString("errcode").equals("0")) {
  209. return resultobject.getJSONObject("results").getJSONArray("list");
  210. } else {
  211. return new JSONArray();
  212. }
  213. } else {
  214. return new JSONArray();
  215. }
  216. }
  217. }
  218. /**
  219. * 创建Erp发货单
  220. *
  221. * @param dispatchRow
  222. * @param dispatchItems
  223. * @return
  224. * @throws YosException
  225. */
  226. public String createErpSainvoice(Row dispatchRow, Rows dispatchItems, Controller controller, long sa_dispatchid) throws YosException {
  227. {
  228. JSONObject object = new JSONObject();
  229. JSONObject objectdetail = new JSONObject();
  230. JSONArray jsonArray = new JSONArray();
  231. object.put("access_token", "basicDrp");
  232. object.put("classname", "Sainvoice");
  233. object.put("method", "createSainvoice");
  234. objectdetail.put("finvonum", dispatchRow.getString("billno"));
  235. objectdetail.put("fagentnum", dispatchRow.getString("agentnum"));
  236. objectdetail.put("fagentname", dispatchRow.getString("enterprisename"));
  237. objectdetail.put("fsonum", dispatchRow.getString("sonum"));
  238. objectdetail.put("fdate", dispatchRow.getString("billdate"));
  239. objectdetail.put("fnotes", dispatchRow.getString("remarks"));
  240. objectdetail.put("fcontact", dispatchRow.getString("name"));
  241. objectdetail.put("fmobilephone", dispatchRow.getString("phonenumber"));
  242. objectdetail.put("faddress", dispatchRow.getString("address"));
  243. objectdetail.put("createby", dispatchRow.getString("createby"));
  244. if (dispatchItems.isNotEmpty()) {
  245. for (Row row : dispatchItems) {
  246. JSONObject jsonObject = new JSONObject();
  247. jsonObject.put("fsonum", row.getString("sonum"));
  248. jsonObject.put("fsorownum", row.getString("sorowno"));
  249. jsonObject.put("fprodnum", row.getString("itemno"));
  250. jsonObject.put("fbatchbnum", row.getString("batchno"));
  251. jsonObject.put("frownum", row.getString("rowno"));
  252. jsonObject.put("fqty", row.getString("qty"));
  253. jsonObject.put("fprice", row.getString("price"));
  254. jsonObject.put("fremarks", row.getString("remarks"));
  255. jsonArray.add(jsonObject);
  256. }
  257. }
  258. objectdetail.put("details", jsonArray);
  259. object.put("content", objectdetail);
  260. HashMap<String, String> map = new HashMap<>();
  261. map.put("content-Type", "application/json");
  262. String result = new WebRequest().doPost(object.toString(), url, map);
  263. JSONObject resultobject = JSONObject.parseObject(result);
  264. saveLog(controller, "sa_dispatch", sa_dispatchid, "创建erp发货单", object.toString(), resultobject, dispatchRow.getString("billno"));
  265. if (resultobject != null) {
  266. if (resultobject.getString("errcode").equals("0")) {
  267. return "true";
  268. } else {
  269. return resultobject.getString("errmsg");
  270. }
  271. } else {
  272. return "false";
  273. }
  274. }
  275. }
  276. /**
  277. * 查询Erp发货单(单个)
  278. *
  279. * @param billno
  280. * @return
  281. * @throws YosException
  282. */
  283. public JSONArray queryErpSainvoice(String billno) throws YosException {
  284. {
  285. JSONObject object = new JSONObject();
  286. JSONObject objectdetail = new JSONObject();
  287. object.put("access_token", "basicDrp");
  288. object.put("classname", "Sainvoice");
  289. object.put("method", "queryOne");
  290. objectdetail.put("finvonum", billno);
  291. object.put("content", objectdetail);
  292. HashMap<String, String> map = new HashMap<>();
  293. map.put("content-Type", "application/json");
  294. String result = new WebRequest().doPost(object.toString(), url, map);
  295. JSONObject resultobject = JSONObject.parseObject(result);
  296. System.out.println(resultobject);
  297. if (resultobject == null || resultobject.getString("errcode").equals("error")) {
  298. return new JSONArray();
  299. } else {
  300. return resultobject.getJSONObject("results").getJSONArray("details");
  301. }
  302. }
  303. }
  304. /**
  305. * 查询Erp发货单(批量)
  306. *
  307. * @param pagerows
  308. * @param pagenum
  309. * @param finvonums
  310. * @param fagentnum
  311. * @param fsonum
  312. * @param fstatus
  313. * @param onlyNeedClosed
  314. * @return
  315. * @throws YosException
  316. */
  317. public JSONArray queryErpSainvoices(int pagerows, int pagenum, JSONArray finvonums, String fagentnum, String
  318. fsonum, String fstatus, boolean onlyNeedClosed, boolean onlyNeedPartialOuts, boolean onlyWithCheckedOuts) throws
  319. YosException {
  320. {
  321. JSONObject object = new JSONObject();
  322. JSONObject objectdetail = new JSONObject();
  323. object.put("access_token", "basicDrp");
  324. object.put("classname", "Sainvoice");
  325. object.put("method", "queryPage");
  326. objectdetail.put("pagenum", pagenum);
  327. objectdetail.put("pagerows", pagerows);
  328. objectdetail.put("finvonums", finvonums);
  329. objectdetail.put("fagentnum", fagentnum);
  330. objectdetail.put("fsonum", fsonum);
  331. objectdetail.put("fstatus", fstatus);
  332. objectdetail.put("onlyNeedClosed", onlyNeedClosed);
  333. objectdetail.put("onlyNeedPartialOuts", onlyNeedPartialOuts);
  334. objectdetail.put("onlyWithCheckedOuts", onlyWithCheckedOuts);
  335. object.put("content", objectdetail);
  336. HashMap<String, String> map = new HashMap<>();
  337. map.put("content-Type", "application/json");
  338. System.out.println(object.toString());
  339. String result = new WebRequest().doPost(object.toString(), url, map);
  340. JSONObject resultobject = JSONObject.parseObject(result);
  341. System.out.println(resultobject);
  342. if (resultobject == null || resultobject.getString("errcode").equals("error")) {
  343. return new JSONArray();
  344. } else {
  345. return resultobject.getJSONObject("results").getJSONArray("list");
  346. }
  347. }
  348. }
  349. /**
  350. * 关闭Erp发货单
  351. *
  352. * @param billno
  353. * @param isManual
  354. * @return
  355. * @throws YosException
  356. */
  357. public String closeErpSainvoice(String billno, boolean isManual, Controller controller, long sa_dispatchid) throws
  358. YosException {
  359. {
  360. JSONObject object = new JSONObject();
  361. JSONObject objectdetail = new JSONObject();
  362. object.put("access_token", "basicDrp");
  363. object.put("classname", "Sainvoice");
  364. object.put("method", "closeSainvoice");
  365. objectdetail.put("finvonum", billno);
  366. objectdetail.put("isManual", isManual);
  367. object.put("content", objectdetail);
  368. HashMap<String, String> map = new HashMap<>();
  369. map.put("content-Type", "application/json");
  370. String result = new WebRequest().doPost(object.toString(), url, map);
  371. JSONObject resultobject = JSONObject.parseObject(result);
  372. saveLog(controller, "sa_dispatch", sa_dispatchid, "关闭发货单", object.toString(), resultobject, billno);
  373. if (resultobject != null) {
  374. if (resultobject.getString("errcode").equals("0")) {
  375. return "true";
  376. } else {
  377. return resultobject.getString("errmsg");
  378. }
  379. } else {
  380. return "false";
  381. }
  382. }
  383. }
  384. /**
  385. * Erp发货单行关闭
  386. *
  387. * @param billno
  388. * @param controller
  389. * @param rowno
  390. * @param itemno
  391. * @param sa_dispatchid
  392. * @return
  393. * @throws YosException
  394. */
  395. public String closeErpSainvoiceRow(String billno, Controller controller, long rowno, String itemno,
  396. long sa_dispatchid) throws YosException {
  397. {
  398. JSONObject object = new JSONObject();
  399. JSONObject objectdetail = new JSONObject();
  400. object.put("access_token", "basicDrp");
  401. object.put("classname", "Sainvoice");
  402. object.put("method", "closeRowOfSainvoice");
  403. objectdetail.put("finvonum", billno);
  404. objectdetail.put("fprodnum", itemno);
  405. objectdetail.put("frownum", rowno);
  406. object.put("content", objectdetail);
  407. HashMap<String, String> map = new HashMap<>();
  408. map.put("content-Type", "application/json");
  409. String result = new WebRequest().doPost(object.toString(), url, map);
  410. JSONObject resultobject = JSONObject.parseObject(result);
  411. saveLog(controller, "sa_dispatch", sa_dispatchid, "发货单行关闭", object.toString(), resultobject, billno);
  412. if (resultobject != null) {
  413. if (resultobject.getString("errcode").equals("0")) {
  414. return "true";
  415. } else {
  416. return resultobject.getString("errmsg");
  417. }
  418. } else {
  419. return resultobject.getString("false");
  420. }
  421. }
  422. }
  423. /**
  424. * 创建Erp退/换货单
  425. *
  426. * @param aftersalesmagRow
  427. * @param aftersalesmagItems
  428. * @return
  429. * @throws YosException
  430. */
  431. public String createErpSareturn(Row aftersalesmagRow, Rows aftersalesmagItems, Controller controller,
  432. long sa_aftersalesmagid) throws YosException {
  433. {
  434. JSONObject object = new JSONObject();
  435. JSONObject objectdetail = new JSONObject();
  436. JSONArray jsonArray = new JSONArray();
  437. object.put("access_token", "basicDrp");
  438. object.put("classname", "Sareturn");
  439. object.put("method", "createSareturn");
  440. objectdetail.put("freturnnum", aftersalesmagRow.getString("billno"));
  441. objectdetail.put("fagentnum", aftersalesmagRow.getString("agentnum"));
  442. objectdetail.put("fagentname", aftersalesmagRow.getString("enterprisename"));
  443. objectdetail.put("faccclsnum", "01");
  444. objectdetail.put("fdate", aftersalesmagRow.getString("billdate"));
  445. objectdetail.put("fnotes", aftersalesmagRow.getString("reason"));
  446. objectdetail.put("createby", aftersalesmagRow.getString("createby"));
  447. if (aftersalesmagRow.getString("type").equals("退货单")) {
  448. objectdetail.put("freturntype", "退货");
  449. } else if (aftersalesmagRow.getString("type").equals("换货单")) {
  450. objectdetail.put("freturntype", "换货");
  451. }
  452. if (aftersalesmagItems.isNotEmpty()) {
  453. for (Row row : aftersalesmagItems) {
  454. JSONObject jsonObject = new JSONObject();
  455. jsonObject.put("fprodnum", row.getString("itemno"));
  456. jsonObject.put("fbatchbnum", row.getString("batchno"));
  457. jsonObject.put("fqty", row.getString("qty"));
  458. jsonObject.put("fprice", row.getString("price"));
  459. jsonObject.put("fremarks", row.getString("reason"));
  460. jsonArray.add(jsonObject);
  461. }
  462. }
  463. objectdetail.put("details", jsonArray);
  464. object.put("content", objectdetail);
  465. HashMap<String, String> map = new HashMap<>();
  466. map.put("content-Type", "application/json");
  467. System.out.println(object.toString());
  468. String result = new WebRequest().doPost(object.toString(), url, map);
  469. JSONObject resultobject = JSONObject.parseObject(result);
  470. saveLog(controller, "sa_aftersalesmag", sa_aftersalesmagid, "创建erp退/换货单", object.toString(), resultobject, aftersalesmagRow.getString("billno"));
  471. if (resultobject != null) {
  472. if (resultobject.getString("errcode").equals("0")) {
  473. return "true";
  474. } else {
  475. return resultobject.getString("errmsg");
  476. }
  477. } else {
  478. return "false";
  479. }
  480. }
  481. }
  482. /**
  483. * 查询Erp退/换货单(单个)
  484. *
  485. * @param billno
  486. * @return
  487. * @throws YosException
  488. */
  489. public JSONArray queryErpSareturn(String billno) throws YosException {
  490. {
  491. JSONObject object = new JSONObject();
  492. JSONObject objectdetail = new JSONObject();
  493. object.put("access_token", "basicDrp");
  494. object.put("classname", "Sareturn");
  495. object.put("method", "queryOne");
  496. objectdetail.put("freturnnum", billno);
  497. object.put("content", objectdetail);
  498. HashMap<String, String> map = new HashMap<>();
  499. map.put("content-Type", "application/json");
  500. String result = new WebRequest().doPost(object.toString(), url, map);
  501. JSONObject resultobject = JSONObject.parseObject(result);
  502. System.out.println(resultobject);
  503. if (resultobject == null || resultobject.getString("errcode").equals("error")) {
  504. return new JSONArray();
  505. } else {
  506. return resultobject.getJSONObject("results").getJSONArray("details");
  507. }
  508. }
  509. }
  510. /**
  511. * 查询Erpt退/换货单(批量)
  512. *
  513. * @param pagerows
  514. * @param pagenum
  515. * @param freturnnums
  516. * @param fagentnum
  517. * @param fsonum
  518. * @param fstatus
  519. * @param onlyNeedClosed
  520. * @return
  521. * @throws YosException
  522. */
  523. public JSONArray queryErpSareturns(int pagerows, int pagenum, JSONArray freturnnums, String fagentnum, String
  524. fsonum, String freturntype, String fstatus, boolean onlyNeedClosed) throws YosException {
  525. {
  526. JSONObject object = new JSONObject();
  527. JSONObject objectdetail = new JSONObject();
  528. object.put("access_token", "basicDrp");
  529. object.put("classname", "Sareturn");
  530. object.put("method", "queryPage");
  531. objectdetail.put("pagenum", pagenum);
  532. objectdetail.put("pagerows", pagerows);
  533. objectdetail.put("freturnnums", freturnnums);
  534. objectdetail.put("fagentnum", fagentnum);
  535. objectdetail.put("fsonum", fsonum);
  536. objectdetail.put("freturntype", freturntype);
  537. objectdetail.put("fstatus", fstatus);
  538. objectdetail.put("onlyNeedClosed", onlyNeedClosed);
  539. object.put("content", objectdetail);
  540. HashMap<String, String> map = new HashMap<>();
  541. map.put("content-Type", "application/json");
  542. System.out.println(object.toString());
  543. String result = new WebRequest().doPost(object.toString(), url, map);
  544. JSONObject resultobject = JSONObject.parseObject(result);
  545. System.out.println(resultobject);
  546. if (resultobject == null || resultobject.getString("errcode").equals("error")) {
  547. return new JSONArray();
  548. } else {
  549. return resultobject.getJSONObject("results").getJSONArray("list");
  550. }
  551. }
  552. }
  553. /**
  554. * 复核Erp退/换货单
  555. *
  556. * @param billno
  557. * @param isManual
  558. * @return
  559. * @throws YosException
  560. */
  561. public String recheckErpSareturn(String billno, boolean isManual, Controller controller, long sa_aftersalesmagid) throws
  562. YosException {
  563. {
  564. JSONObject object = new JSONObject();
  565. JSONObject objectdetail = new JSONObject();
  566. object.put("access_token", "basicDrp");
  567. object.put("classname", "Sareturn");
  568. object.put("method", "closeSareturn");
  569. objectdetail.put("freturnnum", billno);
  570. objectdetail.put("isManual", isManual);
  571. object.put("content", objectdetail);
  572. HashMap<String, String> map = new HashMap<>();
  573. map.put("content-Type", "application/json");
  574. String result = new WebRequest().doPost(object.toString(), url, map);
  575. JSONObject resultobject = JSONObject.parseObject(result);
  576. saveLog(controller, "sa_aftersalesmag", sa_aftersalesmagid, "复核erp退/换货单", object.toString(), resultobject, billno);
  577. if (resultobject != null) {
  578. if (resultobject.getString("errcode").equals("0")) {
  579. return "true";
  580. } else {
  581. return resultobject.getString("errmsg");
  582. }
  583. } else {
  584. return "false";
  585. }
  586. }
  587. }
  588. /**
  589. * 上传日志更新
  590. *
  591. * @param controller
  592. * @param ownertable
  593. * @param ownerid
  594. * @param type
  595. * @param request
  596. * @param response
  597. * @param billno
  598. * @return
  599. */
  600. public static boolean saveLog(Controller controller, String ownertable, long ownerid, String type, String
  601. request,
  602. JSONObject response, String billno) {
  603. boolean issuccess = false;
  604. try {
  605. Rows rows = controller.dbConnect.runSqlQuery(
  606. "select * from sys_erpupdatelog where ownertable='" + ownertable + "' and ownerid=" + ownerid);
  607. SQLFactory sqlFactory;
  608. if (!rows.isEmpty()) {
  609. sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志更新");
  610. sqlFactory.addParameter("sys_erpupdatelogid", rows.get(0).getLong("sys_erpupdatelogid"));
  611. } else {
  612. sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志新增");
  613. sqlFactory.addParameter("sys_erpupdatelogid", controller.createTableID("sys_erpupdatelog"));
  614. }
  615. sqlFactory.addParameter("siteid", controller.siteid);
  616. sqlFactory.addParameter("userid", controller.userid);
  617. sqlFactory.addParameter("username", controller.username);
  618. sqlFactory.addParameter("ownerid", ownerid);
  619. sqlFactory.addParameter("ownertable", ownertable);
  620. sqlFactory.addParameter("type", type);
  621. sqlFactory.addParameter("request", request);
  622. sqlFactory.addParameter("response", response.toJSONString());
  623. if ("0".equals(response.getString("errcode"))) {
  624. sqlFactory.addParameter("erpbillno", billno);
  625. sqlFactory.addParameter("errmsg", "");
  626. issuccess = true;
  627. } else {
  628. sqlFactory.addParameter("erpbillno", "");
  629. sqlFactory.addParameter("errmsg", response.getString("errmsg"));
  630. issuccess = false;
  631. }
  632. sqlFactory.addParameter("status", response.getString("errcode"));
  633. controller.dbConnect.runSqlUpdate(sqlFactory);
  634. } catch (Exception e) {
  635. e.printStackTrace();
  636. }
  637. return issuccess;
  638. }
  639. /**
  640. * 查询销售出库单
  641. *
  642. * @param pagerows
  643. * @param pagenum
  644. * @return
  645. * @throws YosException
  646. */
  647. public JSONArray queryErpStockBill(int pagerows, int pagenum, String fbtname) throws YosException {
  648. {
  649. JSONArray fupdateFlags = new JSONArray();
  650. fupdateFlags.add(0);
  651. fupdateFlags.add(99);
  652. fupdateFlags.add(2);
  653. JSONObject object = new JSONObject();
  654. JSONObject objectdetail = new JSONObject();
  655. object.put("access_token", "basicDrp");
  656. object.put("classname", "TstockbillOuts");
  657. object.put("method", "queryPageForSyncYos");
  658. objectdetail.put("pagenum", pagenum);
  659. objectdetail.put("pagerows", pagerows);
  660. objectdetail.put("fbillnums", new JSONArray());
  661. objectdetail.put("fagentnum", "");
  662. objectdetail.put("fstatus", "审核");
  663. objectdetail.put("frb", "");
  664. objectdetail.put("fstockno", "");
  665. objectdetail.put("fbtname", fbtname);
  666. objectdetail.put("fminperiod", "");
  667. objectdetail.put("fupdateFlags", fupdateFlags);
  668. object.put("content", objectdetail);
  669. HashMap<String, String> map = new HashMap<>();
  670. map.put("content-Type", "application/json");
  671. System.out.println(object.toString());
  672. String result = new WebRequest().doPost(object.toString(), url, map);
  673. JSONObject resultobject = JSONObject.parseObject(result);
  674. System.out.println(resultobject);
  675. if (resultobject == null || resultobject.getString("errcode").equals("error")) {
  676. return new JSONArray();
  677. } else {
  678. return resultobject.getJSONObject("results").getJSONArray("list");
  679. }
  680. }
  681. }
  682. /**
  683. * 更新erp出库单标志
  684. *
  685. * @return
  686. * @throws YosException
  687. */
  688. public String updateErpupdateFlag(JSONArray flags) throws YosException {
  689. {
  690. JSONObject object = new JSONObject();
  691. JSONObject objectdetail = new JSONObject();
  692. object.put("access_token", "basicDrp");
  693. object.put("classname", "TstockbillOuts");
  694. object.put("method", "syncFupdateFlags");
  695. objectdetail.put("flags", flags);
  696. object.put("content", objectdetail);
  697. HashMap<String, String> map = new HashMap<>();
  698. map.put("content-Type", "application/json");
  699. String result = new WebRequest().doPost(object.toString(), url, map);
  700. JSONObject resultobject = JSONObject.parseObject(result);
  701. if (resultobject != null) {
  702. if (resultobject.getString("errcode").equals("0")) {
  703. return "true";
  704. } else {
  705. return resultobject.getString("errmsg");
  706. }
  707. } else {
  708. return "false";
  709. }
  710. }
  711. }
  712. // /**
  713. // * crm账号同步反馈
  714. // *
  715. // * @param id crm账号id
  716. // * @param succ 同步是否成功
  717. // * @param errmsg 错误原因
  718. // * @return
  719. // * @throws YosException
  720. // */
  721. // public boolean feedback1(long id, boolean succ, String errmsg) throws YosException {
  722. // JSONArray array = new JSONArray();
  723. // JSONObject object = new JSONObject();
  724. // object.put("id", id);
  725. // object.put("fupdateFlag", succ ? 99 : 4);
  726. // object.put("fupdateWarnLog", errmsg);
  727. // array.add(object);
  728. // HashMap<String, String> map = new HashMap<>();
  729. // map.put("content-Type", "application/json");
  730. //
  731. // System.out.println("feedback1:"+array.toString());
  732. // String result = new WebRequest().doPost(array.toString(), "http://crm.meida.com/dmsService/ext/partner/userYos/syncFupdateFlags", map);
  733. // JSONObject resultobject = JSONObject.parseObject(result);
  734. // return resultobject.getIntValue("code") == 1;
  735. // }
  736. // /**
  737. // * 获取指定的账号信息
  738. // *
  739. // * @param id crm账号id
  740. // * @return
  741. // * @throws YosException
  742. // */
  743. // public JSONObject getSingleAccount(long id) throws YosException {
  744. // String result = doGet("http://crm.meida.com/dmsService/ext/partner/userYos/getSynUserYos?id=" + id);
  745. // JSONObject resultobject = JSONObject.parseObject(result);
  746. // if (resultobject.getIntValue("code") == 20001) {
  747. // loginstatus = false;
  748. // throw new YosException("crm不在登陆状态");
  749. // } else {
  750. // return resultobject.getJSONObject("data");
  751. // }
  752. // }
  753. //
  754. // /**
  755. // * 更新账号有效期
  756. // *
  757. // * @param id crm账号id
  758. // * @param fexpireTime 账号到期时间
  759. // * @return
  760. // * @throws YosException
  761. // */
  762. // public boolean updateAccount(long id, String fexpireTime) throws YosException {
  763. // JSONObject object = new JSONObject();
  764. // object.put("id", id);
  765. // object.put("fexpireTime", fexpireTime);
  766. // HashMap<String, String> map = new HashMap<>();
  767. // map.put("content-Type", "application/json");
  768. // String result = new WebRequest().doPost(object.toString(), "http://crm.meida.com/dmsService/ext/partner/userYos/editSynUserYos", map);
  769. // JSONObject resultobject = JSONObject.parseObject(result);
  770. // if (resultobject.getIntValue("code") == 20001) {
  771. // loginstatus = false;
  772. // throw new YosException("crm不在登陆状态");
  773. // } else {
  774. // return resultobject.getIntValue("code") == 1;
  775. // }
  776. // }
  777. private String doGet(String url) {
  778. PrintWriter out = null;
  779. BufferedReader in = null;
  780. StringBuilder result = new StringBuilder();
  781. HttpURLConnection conn = null;
  782. try {
  783. URL realUrl = new URL(url);
  784. // 打开和URL之间的连接
  785. conn = (HttpURLConnection) realUrl.openConnection();
  786. conn.setRequestProperty("accept", "*/*");
  787. conn.setRequestProperty("connection", "Keep-Alive");
  788. conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
  789. conn.setConnectTimeout(8000);
  790. in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
  791. String line;
  792. while ((line = in.readLine()) != null) {
  793. result.append(line);
  794. }
  795. } catch (Exception e) {
  796. e.printStackTrace();
  797. System.err.println("[POST请求]向地址:" + url + " 发送数据:发生错误!");
  798. } finally {// 使用finally块来关闭输出流、输入流
  799. if (out != null) {
  800. out.close();
  801. out = null;
  802. }
  803. if (in != null) {
  804. try {
  805. in.close();
  806. } catch (IOException e) {
  807. e.printStackTrace();
  808. }
  809. in = null;
  810. }
  811. if (conn != null) {
  812. conn.disconnect();
  813. conn = null;
  814. }
  815. }
  816. return result.toString();
  817. }
  818. }