Order.java 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. package restcontroller.sale.order;
  2. import com.alibaba.fastjson.JSONObject;
  3. import common.Controller;
  4. import common.YosException;
  5. import common.annotation.API;
  6. import common.annotation.CACHEING;
  7. import common.data.*;
  8. import restcontroller.R;
  9. import java.io.IOException;
  10. import java.util.ArrayList;
  11. import java.util.HashMap;
  12. public class Order extends Controller {
  13. /**
  14. * 构造函数
  15. *
  16. * @param content
  17. */
  18. public Order(JSONObject content) throws YosException {
  19. super(content);
  20. }
  21. @API(title = "查询订单列表(经销商)", apiversion = R.ID20221224180302.v1.class)
  22. public String selectList() throws YosException, IOException {
  23. StringBuffer where = new StringBuffer(" 1=1 ");
  24. if (content.containsKey("where")) {
  25. JSONObject whereObject = content.getJSONObject("where");
  26. if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
  27. where.append(" and(");
  28. where.append("t1.sonum like'%").append(whereObject.getString("condition")).append("%' ");
  29. where.append("or t1.remarks like'%").append(whereObject.getString("condition")).append("%' ");
  30. where.append(")");
  31. }
  32. //状态
  33. if (whereObject.containsKey("status") && !"".equals(whereObject.getString("status"))) {
  34. where.append(" and(");
  35. where.append("t1.status like'%").append(whereObject.getString("status")).append("%' ");
  36. where.append(")");
  37. }
  38. //品牌
  39. if (whereObject.containsKey("brandname") && !"".equals(whereObject.getString("brandname"))) {
  40. where.append(" and(");
  41. where.append("t3.brandname like'%").append(whereObject.getString("brandname")).append("%' ");
  42. where.append(")");
  43. }
  44. //领域
  45. if (whereObject.containsKey("tradefield") && !"".equals(whereObject.getString("tradefield"))) {
  46. where.append(" and(");
  47. where.append("t1.tradefield like'%").append(whereObject.getString("tradefield")).append("%' ");
  48. where.append(")");
  49. }
  50. if (whereObject.containsKey("type") && !"".equals(whereObject.getString("type"))) {
  51. where.append(" and(");
  52. where.append("t1.type like'%").append(whereObject.getString("type")).append("%' ");
  53. where.append(")");
  54. }
  55. if (whereObject.containsKey("begindate") && !"".equals(whereObject.getString("begindate"))) {
  56. where.append(" and DATE_FORMAT(t1.billdate, '%Y-%m-%d') >='").append(whereObject.getString("begindate")).append("' ");
  57. }
  58. if (whereObject.containsKey("enddate") && !"".equals(whereObject.getString("enddate"))) {
  59. where.append(" and DATE_FORMAT(t1.billdate, '%Y-%m-%d') <='").append(whereObject.getString("enddate")).append("' ");
  60. }
  61. }
  62. boolean isExport = content.getBooleanValue("isExport");
  63. QuerySQL querySQL = queryList(where.toString());
  64. querySQL.setOrderBy(pageSorting);
  65. Rows rows;
  66. if (!isExport) {
  67. querySQL.setPage(pageSize, pageNumber);
  68. }
  69. rows = querySQL.query();
  70. //查询数据:amount,defaultamount,qty
  71. ArrayList<Long> sa_orderids = rows.toArrayList("sa_orderid", new ArrayList<>());
  72. SQLFactory sqlFactory = new SQLFactory(this, "订单_查询数据");
  73. sqlFactory.addParameter("siteid", siteid);
  74. sqlFactory.addParameter_in("sa_orderid", sa_orderids);
  75. RowsMap dataRowsMap = dbConnect.runSqlQuery(sqlFactory).toRowsMap("sa_orderid");
  76. //查询收货人信息
  77. for (Row row : rows) {
  78. Rows dataRows = dataRowsMap.getOrDefault(row.getString("sa_orderid"), new Rows());
  79. if (dataRows.isNotEmpty()) {
  80. row.putAll(dataRows.get(0));
  81. } else {
  82. row.put("amount", 0);
  83. row.put("qty", 0);
  84. }
  85. }
  86. if (isExport) {
  87. //去除不需要导出项
  88. rows.getFieldList().remove("sa_orderid");
  89. rows.getFieldList().remove("submitdate");
  90. rows.getFieldList().remove("checkdate");
  91. rows.getFieldList().remove("typemx");
  92. rows.getFieldList().remove("sys_enterpriseid");
  93. //添加
  94. rows.getFieldList().add("amount");
  95. rows.getFieldList().add("qty");
  96. Rows uploadRows = uploadExcelToObs("order", "订单列表", rows, getTitleMap());
  97. return getSucReturnObject().setData(uploadRows).toString();
  98. }
  99. if (systemclient.equalsIgnoreCase("web")) {
  100. return getSucReturnObject().setData(rows).toString();
  101. }
  102. sqlFactory = new SQLFactory(this, "订单-查询筛选出的价格");
  103. sqlFactory.addParameter("siteid", siteid);
  104. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  105. sqlFactory.addParameter_SQL("where", where);
  106. Rows amountrows = dbConnect.runSqlQuery(sqlFactory);
  107. return getSucReturnObject().setData(rows).setTips(amountrows.get(0).toJsonObject()).toString();
  108. }
  109. //查询订单列表(经销商)
  110. public QuerySQL queryList(String where) throws YosException {
  111. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_order",
  112. "sa_orderid","sonum","status","type","billdate","tradefield","remarks");
  113. querySQL.setTableAlias("t1");
  114. querySQL.addJoinTable(JOINTYPE.left, "sa_brand", "t3", "t3.sa_brandid = t1.sa_brandid",
  115. "brandname");
  116. querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise_contacts", "t4", "t4.contactsid = t1.rec_contactsid and t4.siteid = t1.siteid",
  117. "name");
  118. querySQL.setWhere("t1.siteid", siteid);
  119. querySQL.setWhere(where);
  120. querySQL.setWhere("t1.sys_enterpriseid = $sys_enterpriseid$");
  121. querySQL.setWhere("t1.deleted=0");
  122. querySQL.setWhere("((t1.createflag=1 and t1.status!='新建') or t1.createflag=0)");
  123. querySQL.addParameter("sys_enterpriseid", sys_enterpriseid);
  124. return querySQL;
  125. }
  126. @API(title = "获取当前经销商的所有订单的金额", apiversion = R.ID20221227161902.v1.class)
  127. @CACHEING
  128. public String getAmount() throws YosException {
  129. Rows rows = dbConnect.runSqlQuery("SELECT sum(amount) amount from sa_orderitems WHERE sa_orderid in (SELECT sa_orderid from sa_order WHERE sys_enterpriseid = " + sys_enterpriseid + " and siteid='" + siteid + "') and siteid='" + siteid + "'");
  130. return getSucReturnObject().setData(rows.get(0)).toString();
  131. }
  132. @API(title = "获取订单的金额", apiversion = R.ID20230105101102.v1.class)
  133. @CACHEING
  134. public String getOrderAmount() throws YosException {
  135. Long sa_orderid = content.getLong("sa_orderid");
  136. Rows rows = dbConnect.runSqlQuery("SELECT sum(amount) amount from sa_orderitems WHERE sa_orderid = '" + sa_orderid + "' and siteid='" + siteid + "'");
  137. return getSucReturnObject().setData(rows.get(0)).toString();
  138. }
  139. //返回导出的标题
  140. public HashMap<String, String> getTitleMap() {
  141. HashMap<String, String> titleMap = new HashMap<>();
  142. titleMap.put("sonum", "订单编号");
  143. titleMap.put("brandname", "品牌名称");
  144. titleMap.put("type", "订单类型");
  145. titleMap.put("tradefield", "领域");
  146. titleMap.put("remarks", "备注");
  147. titleMap.put("status", "状态");
  148. titleMap.put("createdate", "创建时间");
  149. titleMap.put("name", "收货人");
  150. titleMap.put("amount", "订单金额");
  151. titleMap.put("qty", "订单数量");
  152. return titleMap;
  153. }
  154. }