Browse Source

序列号查询优化

shenjingwei 2 months ago
parent
commit
ff533458db
1 changed files with 17 additions and 33 deletions
  1. 17 33
      src/custom/restcontroller/webmanage/sale/toolscode/toolscode.java

+ 17 - 33
src/custom/restcontroller/webmanage/sale/toolscode/toolscode.java

@@ -99,14 +99,14 @@ public class toolscode extends Controller {
             querySQL.setTableAlias("t1");
             querySQL.setSiteid(siteid);
             querySQL.setWhere("t1.status='审核'");
-            querySQL.setWhere("t1.itemno",rows.toArrayList("itemno"));
+            querySQL.setWhere("t1.itemno", rows.toArrayList("itemno"));
             Rows itemRows = querySQL.query();
             RowsMap itemRowsMap = itemRows.toRowsMap("itemno");
 
             QuerySQL skuquerySQL = SQLFactory.createQuerySQL(this, "sa_itemsku", "sku");
             skuquerySQL.setTableAlias("t1");
             skuquerySQL.setSiteid(siteid);
-            skuquerySQL.setWhere("t1.sku",rows.toArrayList("sku"));
+            skuquerySQL.setWhere("t1.sku", rows.toArrayList("sku"));
             Rows skuRows = skuquerySQL.query();
             RowsMap skuRowsMap = skuRows.toRowsMap("sku");
             for (Row row : rows) {
@@ -119,11 +119,11 @@ public class toolscode extends Controller {
                     // msg = "手机号,省市县及来源不能为空";
                 } else {
                     if (itemRowsMap.containsKey(row.getString("itemno"))) {
-                        if(skuRowsMap.containsKey(row.getString("sku"))){
+                        if (skuRowsMap.containsKey(row.getString("sku"))) {
                             iserr = true;
                             row.put("msg", "错误信息:序列号" + row.getString("sku") + "已存在");
                             rowserr.add(row);
-                        }else{
+                        } else {
                             row.put("itemid", itemRowsMap.get(row.getString("itemno")).get(0).getString("itemid"));
                             rowssuc.add(row);
                         }
@@ -326,9 +326,21 @@ public class toolscode extends Controller {
 
     @API(title = "查询商品序列号档案列表", apiversion = R.ID20221215101003.v1.class)
     public String queryToolscodeList() throws YosException {
+        this.tableColCanFilterAndSortValidate = false;
         QuerySQL skuQuery = SQLFactory.createQuerySQL(this, "sa_itemsku").setTableAlias("t1");
-        skuQuery.setPage(pageSize, pageNumber);
+        skuQuery.addJoinTable(JOINTYPE.left, "plm_item", "t2", "t1.itemid=t2.itemid", "itemid", "itemno", "itemname", "spec", "model", "topclassnum");
+        skuQuery.addJoinTable(JOINTYPE.left, "plm_unit", "t3", "t2.unitid=t3.unitid");
+        skuQuery.addJoinTable(JOINTYPE.left, "st_stock", "t4", "t4.stockno=t2.stockno");
+        skuQuery.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t1.sys_enterpriseid=t5.sys_enterpriseid", "t5.enterprisename");
+        skuQuery.addJoinTable(JOINTYPE.left, "sa_agents", "t6", "t1.sys_enterpriseid=t6.sys_enterpriseid", "t6.agentnum");
+        skuQuery.addJoinTable(JOINTYPE.left, "st_stock", "t7", "t1.stockid=t7.stockid", "stockno", "stockname");
+
+        skuQuery.addQueryFields("itemstockno", "t2.stockno");
+        skuQuery.addQueryFields("itemstockname", "t4.stockname");
+        skuQuery.addQueryFields("unit", "t2.unitname");
+
         skuQuery.setWhere("siteid", siteid);
+        skuQuery.setPage(pageSize, pageNumber);
         skuQuery.setOrderBy("sa_itemskuid desc");
         if (content.containsKey("where")) {
             JSONObject whereObject = content.getJSONObject("where");
@@ -345,36 +357,8 @@ public class toolscode extends Controller {
         }
         Rows skuRows = skuQuery.query();
         if (skuRows.isNotEmpty()) {
-            RowsMap itemRowsMap = SQLFactory.createQuerySQL(this, "plm_item", "itemid", "itemno", "itemname", "spec", "model", "topclassnum", "stockno").addJoinTable(JOINTYPE.left, "plm_unit", "plm_unit", "plm_unit.unitid=plm_item.unitid", "unitname").addJoinTable(JOINTYPE.left, "st_stock", "st_stock", "st_stock.stockno=plm_item.stockno", "stockname").setWhere("itemid", skuRows.toArrayList("itemid")).query().toRowsMap("itemid");
-            RowsMap agentsRowsMap = SQLFactory.createQuerySQL(this, "sa_agents", "sa_agentsid", "agentnum").addJoinTable(JOINTYPE.inner, "sys_enterprise", "sys_enterprise", "sa_agentsid=:sa_agentsid", "enterprisename").setWhere("sa_agentsid", skuRows.toArrayList("sa_agentsid")).query().toRowsMap("sa_agentsid");
-            RowsMap stockRowsMap = SQLFactory.createQuerySQL(this, "st_stock", "stockid", "stockno", "stockname").setWhere("stockid", skuRows.toArrayList("stockid")).query().toRowsMap("stockid");
             RowsMap skuChangeRowsMap = SQLFactory.createQuerySQL(this, "sa_itemsku_change", "sa_itemskuid", "changenotes").setWhere("sa_itemskuid", skuRows.toArrayList("sa_itemskuid")).setOrderBy("sa_itemsku_changeid desc").query().toRowsMap("sa_itemskuid");
-
             for (Row skuRow : skuRows) {
-                String itemid = skuRow.getString("itemid");
-                if (itemRowsMap.containsKey(itemid) && itemRowsMap.get(itemid).isNotEmpty()) {
-                    Row itemRow = itemRowsMap.get(itemid).get(0);
-                    skuRow.put("itemno", itemRow.getString("itemno"));
-                    skuRow.put("itemname", itemRow.getString("itemname"));
-                    skuRow.put("spec", itemRow.getString("spec"));
-                    skuRow.put("model", itemRow.getString("model"));
-                    skuRow.put("topclassnum", itemRow.getString("topclassnum"));
-                    skuRow.put("itemstockno", itemRow.getString("stockno"));
-                    skuRow.put("itemstockname", itemRow.getString("stockname"));
-                    skuRow.put("unit", itemRow.getString("unitname"));
-                }
-                String sa_agentsid = skuRow.getString("sa_agentsid");
-                if (agentsRowsMap.containsKey(sa_agentsid) && agentsRowsMap.get(sa_agentsid).isNotEmpty()) {
-                    Row agentRow = agentsRowsMap.get(sa_agentsid).get(0);
-                    skuRow.put("agentnum", agentRow.getString("agentnum"));
-                    skuRow.put("enterprisename", agentRow.getString("enterprisename"));
-                }
-                String stockid = skuRow.getString("stockid");
-                if (stockRowsMap.containsKey(stockid) && stockRowsMap.get(stockid).isNotEmpty()) {
-                    Row stockRow = stockRowsMap.get(stockid).get(0);
-                    skuRow.put("stockno", stockRow.getString("stockno"));
-                    skuRow.put("stockname", stockRow.getString("stockname"));
-                }
                 String sa_itemskuid = skuRow.getString("sa_itemskuid");
                 if (skuChangeRowsMap.containsKey(sa_itemskuid) && skuChangeRowsMap.get(sa_itemskuid).isNotEmpty()) {
                     Row changeNoteRow = skuChangeRowsMap.get(sa_itemskuid).get(0);