AftersalesmagAutoRecheckService.java 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package service;
  2. import beans.datacontrllog.DataContrlLog;
  3. import beans.uploaderpdata.UploadDataToERP_HY;
  4. import com.alibaba.fastjson.JSONArray;
  5. import com.alibaba.fastjson.JSONObject;
  6. import common.ServiceController;
  7. import common.YosException;
  8. import common.data.Row;
  9. import common.data.Rows;
  10. import common.data.RowsMap;
  11. import common.data.SQLFactory;
  12. import common.parameter.properties;
  13. import org.apache.log4j.Logger;
  14. import utility.ERPDocking;
  15. import utility.tools.WebRequest;
  16. import java.util.ArrayList;
  17. import java.util.HashMap;
  18. import java.util.Properties;
  19. /**
  20. * 换货单自动复核任务
  21. */
  22. public class AftersalesmagAutoRecheckService extends ServiceController {
  23. private static Logger logger = Logger.getLogger(AftersalesmagAutoRecheckService.class);
  24. String[] siteids = {"CCYOSG", "DLB"};
  25. @Override
  26. public void serviceRun() throws Exception {
  27. for (String siteid : siteids) {
  28. if (dbConnect.runSqlQuery("SELECT 1 from sys_site WHERE siteid='" + siteid + "'").isEmpty()) {
  29. continue;
  30. }
  31. Properties yosProperties = properties.getYosProperties();
  32. if (yosProperties.getProperty("system.runmode.debug").equalsIgnoreCase("false")) {
  33. Rows rows = dbConnect.runSqlQuery("select * from sa_aftersalesmag where status='审核' and type='换货单' and siteid='" + siteid + "'");
  34. RowsMap rowsMap1 = rows.toRowsMap("billno");
  35. ArrayList<String> sqlList = new ArrayList<>();
  36. ERPDocking erpDocking = new ERPDocking(siteid);
  37. JSONArray ErpSareturns = erpDocking.queryErpSareturns(10000, 1, new JSONArray(), "", "", "换货", "", true);
  38. if (!ErpSareturns.isEmpty()) {
  39. for (Object ErpSareturn : ErpSareturns) {
  40. JSONObject erpSareturn = (JSONObject) ErpSareturn;
  41. String billno = erpSareturn.getString("freturnnum");
  42. long sa_aftersalesmagid = 0;
  43. if (rowsMap1.containsKey(billno)) {
  44. if (rowsMap1.get(billno).isNotEmpty()) {
  45. sa_aftersalesmagid = rowsMap1.get(billno).get(0).getLong("sa_aftersalesmagid");
  46. } else {
  47. logger.info("退货单【" + billno + "】不存在:");
  48. continue;
  49. }
  50. } else {
  51. logger.info("退货单【" + billno + "】不存在:");
  52. continue;
  53. }
  54. JSONObject object = new JSONObject();
  55. JSONObject objectdetail = new JSONObject();
  56. object.put("access_token", "basicDrp");
  57. object.put("classname", "Sareturn");
  58. object.put("method", "closeSareturn");
  59. objectdetail.put("freturnnum", billno);
  60. objectdetail.put("isManual", false);
  61. object.put("content", objectdetail);
  62. HashMap<String, String> map = new HashMap<>();
  63. map.put("content-Type", "application/json");
  64. String result = new WebRequest().doPost(object.toString(), erpDocking.getUrl(), map);
  65. JSONObject resultobject = JSONObject.parseObject(result);
  66. {
  67. Rows erpupdatelogRows = dbConnect.runSqlQuery(
  68. "select * from sys_erpupdatelog where ownertable='sa_aftersalesmag' and type='复核erp退/换货单' and ownerid=" + sa_aftersalesmagid);
  69. SQLFactory sqlFactory;
  70. if (!erpupdatelogRows.isEmpty()) {
  71. sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志更新");
  72. sqlFactory.addParameter("sys_erpupdatelogid", erpupdatelogRows.get(0).getLong("sys_erpupdatelogid"));
  73. } else {
  74. sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志新增");
  75. sqlFactory.addParameter("sys_erpupdatelogid", createTableID("sys_erpupdatelog"));
  76. }
  77. sqlFactory.addParameter("siteid", siteid);
  78. sqlFactory.addParameter("userid", 1);
  79. sqlFactory.addParameter("username", "admin");
  80. sqlFactory.addParameter("ownerid", sa_aftersalesmagid);
  81. sqlFactory.addParameter("ownertable", "sa_aftersalesmag");
  82. sqlFactory.addParameter("type", "复核erp退/换货单");
  83. sqlFactory.addParameter("request", object.toString());
  84. sqlFactory.addParameter("response", resultobject.toJSONString());
  85. if ("0".equals(resultobject.getString("errcode"))) {
  86. sqlFactory.addParameter("erpbillno", billno);
  87. sqlFactory.addParameter("errmsg", "");
  88. } else {
  89. sqlFactory.addParameter("erpbillno", "");
  90. sqlFactory.addParameter("errmsg", resultobject.getString("errmsg"));
  91. }
  92. sqlFactory.addParameter("status", resultobject.getString("errcode"));
  93. sqlList.add(sqlFactory.getSQL());
  94. }
  95. if (resultobject.getString("errcode").equals("0")) {
  96. sqlList.add("update sa_aftersalesmag set status='复核' where sa_aftersalesmagid='" + sa_aftersalesmagid + "' and siteid='" + siteid + "'");
  97. SQLFactory sqlFactory = new SQLFactory(this, "数据操作日志新增");
  98. sqlFactory.addParameter("sys_contrllogid", createTableID("sys_contrllog"));
  99. sqlFactory.addParameter("ownertable", "sa_aftersalesmag");
  100. sqlFactory.addParameter("ownerid", sa_aftersalesmagid);
  101. sqlFactory.addParameter("action", "自动复核");
  102. sqlFactory.addParameter("remarks", "换货单自动复核成功");
  103. sqlFactory.addParameter("actionuserid", "1");
  104. sqlFactory.addParameter("actionby", "admin");
  105. sqlFactory.addParameter("siteid", siteid);
  106. sqlList.add(sqlFactory.getSQL());
  107. } else {
  108. logger.info("换货单自动复核错误:" + resultobject.getString("errmsg"));
  109. }
  110. }
  111. }
  112. dbConnect.runSqlUpdate(sqlList);
  113. }
  114. }
  115. }
  116. }