Kaynağa Gözat

商品类别逻辑优化

hu 8 ay önce
ebeveyn
işleme
d8556b0d1b

+ 14 - 0
src/custom/beans/itemclass/ItemClass.java

@@ -114,4 +114,18 @@ public class ItemClass extends BaseClass {
         sqlFactory.addParameter_in("itemid", itemids);
         return controller.dbConnect.runSqlQuery(sqlFactory).toRowsMap("itemid");
     }
+    /**
+     * 查询货品的所有分类名称
+     *
+     * @param controller
+     * @param itemids
+     * @return
+     * @throws YosException
+     */
+    public static RowsMap getAllItemClassRowsMap_new(Controller controller, ArrayList<Long> itemids) throws YosException {
+        SQLFactory sqlFactory = new SQLFactory(new ItemClass(), "查询货品的营销分类");
+        sqlFactory.addParameter("siteid", controller.siteid);
+        sqlFactory.addParameter_in("itemid", itemids);
+        return controller.dbConnect.runSqlQuery(sqlFactory).toRowsMap("classtype");
+    }
 }

+ 1 - 1
src/custom/beans/itemclass/SQL/查询货品的营销分类.sql

@@ -1,4 +1,4 @@
-SELECT t1.itemid, t2.itemclassname,t2.itemclassfullname
+SELECT t1.itemid, t2.itemclassname,t2.itemclassfullname,t1.classtype
 from sa_itemsaleclass t1
          INNER JOIN plm_itemclass t2 ON t2.itemclassid = t1.itemclassid and t2.siteid = t1.siteid
 WHERE t1.itemid IN $itemid$

+ 19 - 7
src/custom/restcontroller/webmanage/sale/item/Item.java

@@ -314,18 +314,20 @@ public class Item extends Controller {
         if (content.containsKey("itemclassids")) {
             JSONArray itemclassids = content.getJSONArray("itemclassids");
             if (!itemclassids.isEmpty()) {
-                if (itemclassids.size() > 1) {
-                    return getErrReturnObject().setErrMsg("商品只能维护一个营销类别").toString();
-                }
+//                if (itemclassids.size() > 1) {
+//                    return getErrReturnObject().setErrMsg("商品只能维护一个营销类别").toString();
+//                }
                 sqlList.add("delete from sa_itemsaleclass where itemid =" + itemid + " and siteid='" + siteid + "'");
                 for (Object obj : itemclassids) {
-                    int itemclassid = (int) obj;
+                    JSONObject itemclass = (JSONObject) obj;
                     sqlFactory = new SQLFactory(this, "商品营销类别新增");
                     sqlFactory.addParameter("sa_itemsaleclassid", createTableID("sa_itemsaleclass"));
                     sqlFactory.addParameter("siteid", siteid);
                     sqlFactory.addParameter("itemid", itemid);
                     sqlFactory.addParameter("itemno", itemno);
-                    sqlFactory.addParameter("itemclassid", itemclassid);
+                    sqlFactory.addParameter("classtype", itemclass.getStringValue("classtype"));
+
+                    sqlFactory.addParameter("itemclassid", itemclass.getLongValue("itemclassid"));
                     sqlList.add(sqlFactory.getSQL());
                 }
             }
@@ -363,7 +365,9 @@ public class Item extends Controller {
         // 品牌
         RowsMap brandRowsMap = Brand.getBrandRowsMap(this, itemids);
         // 营销类别
-        RowsMap itemClassRowsMap = ItemClass.getAllItemClassRowsMap(this, itemids);
+        RowsMap itemSaleClassRowsMap = ItemClass.getAllItemClassRowsMap_new(this, itemids).get("营销").toRowsMap("itemid");
+        // 存货类别
+        RowsMap itemClassRowsMap = ItemClass.getAllItemClassRowsMap_new(this, itemids).get("存货").toRowsMap("itemid");
         // 附件
         RowsMap attRowsMap = getAttachmentUrl("plm_item", itemids);
         // 商品领域
@@ -417,6 +421,7 @@ public class Item extends Controller {
             }
             row.put("brand", brandRowsMap.getOrDefault(row.getString("itemid"), new Rows()));
             row.put("itemclass", itemClassRowsMap.getOrDefault(row.getString("itemid"), new Rows()));
+            row.put("itemsaleclass", itemSaleClassRowsMap.getOrDefault(row.getString("itemid"), new Rows()));
             row.put("tradefield", tradefieldRowsMap.getOrDefault(row.getString("itemid"), new Rows()));
             if (siteParameterRows.isNotEmpty()) {
                 row.put("defaultlevelprice",siteParameterRows.get(0).getString("defaultlevelprice"));
@@ -580,7 +585,11 @@ public class Item extends Controller {
         RowsMap tradefieldRowsMap = beans.Item.Item.getTradefieldRowsMap(this, ids);
         // 商品品牌
         RowsMap brandRowsMap = Brand.getBrandRowsMap(this, ids);
-        RowsMap itemclassRowsMap = ItemClass.getAllItemClassRowsMap(this, ids);
+        // 营销类别
+        RowsMap itemSaleClassRowsMap = ItemClass.getAllItemClassRowsMap_new(this, ids).get("营销").toRowsMap("itemid");
+        // 存货类别
+        RowsMap itemclassRowsMap = ItemClass.getAllItemClassRowsMap_new(this, ids).get("存货").toRowsMap("itemid");
+//        RowsMap itemclassRowsMap = ItemClass.getAllItemClassRowsMap(this, ids);
         for (Row row : rows) {
             if (attRowsMapCover.getOrDefault(row.getString("itemid"), new Rows()).isNotEmpty()) {
                 row.put("attinfos", attRowsMapCover.getOrDefault(row.getString("itemid"), new Rows()));
@@ -595,6 +604,9 @@ public class Item extends Controller {
 
             String[] itemclass = itemclassRowsMap.getOrDefault(row.getString("itemid"), new Rows()).toArray("itemclassname");
             row.put("itemclass", StringUtils.join(itemclass, ","));
+
+            String[] itemsaleclass = itemSaleClassRowsMap.getOrDefault(row.getString("itemid"), new Rows()).toArray("itemclassname");
+            row.put("itemsaleclass", StringUtils.join(itemsaleclass, ","));
         }
 
 

+ 4 - 3
src/custom/restcontroller/webmanage/sale/item/SQL/商品营销类别新增.sql

@@ -1,9 +1,10 @@
-insert into sa_itemsaleclass (siteid, sa_itemsaleclassid, itemid, itemno, itemclassid)
-select $siteid$, $sa_itemsaleclassid$, $itemid$, $itemno$, $itemclassid$
+insert into sa_itemsaleclass (siteid, sa_itemsaleclassid, itemid, itemno, itemclassid,classtype)
+select $siteid$, $sa_itemsaleclassid$, $itemid$, $itemno$, $itemclassid$,$classtype$
 FROM dual
 WHERE not exists(SELECT 1
                  FROM sa_itemsaleclass
                  WHERE siteid = $siteid$
                    and itemid = $itemid$
                    and itemclassid = $itemclassid$
-                   AND itemno = $itemno$)
+                   AND itemno = $itemno$
+                   AND classtype = $classtype$)

+ 2 - 2
src/custom/restcontroller/webmanage/sale/item/SQL/新增营销类别.sql

@@ -1,2 +1,2 @@
-insert into sa_itemsaleclass(sa_itemsaleclassid, siteid, itemclassid, itemid, itemno)
-values ($sa_itemsaleclassid$, $siteid$, $itemclassid$, $itemid$, $itemno$)
+insert into sa_itemsaleclass(sa_itemsaleclassid, siteid, itemclassid, itemid, itemno,classtype)
+values ($sa_itemsaleclassid$, $siteid$, $itemclassid$, $itemid$, $itemno$,$classtype$)

+ 2 - 0
src/custom/restcontroller/webmanage/sale/itemsaleclass/ItemSaleClass.java

@@ -29,6 +29,7 @@ public class ItemSaleClass extends Controller {
         JSONArray itemclassids = content.getJSONArray("itemclassids");
         Long itemid = content.getLong("itemid");
         String itemno = content.getString("itemno");
+        String classtype = content.getString("classtype");
 
         Rows itemRows = dbConnect.runSqlQuery("SELECT status from plm_item WHERE itemid=" + itemid + " and siteid='" + siteid + "'");
         if (itemRows.isEmpty()) {
@@ -51,6 +52,7 @@ public class ItemSaleClass extends Controller {
                 sqlFactory.addParameter("siteid", siteid);
                 sqlFactory.addParameter("itemid", itemid);
                 sqlFactory.addParameter("itemno", itemno);
+                sqlFactory.addParameter("classtype", classtype);
                 sqlFactory.addParameter("itemclassid", itemclassid);
                 sqlList.add(sqlFactory.getSQL());
             }

+ 4 - 3
src/custom/restcontroller/webmanage/sale/itemsaleclass/SQL/商品营销类别新增.sql

@@ -1,9 +1,10 @@
-insert into sa_itemsaleclass (siteid, sa_itemsaleclassid, itemid, itemno, itemclassid)
-select $siteid$, $sa_itemsaleclassid$, $itemid$, $itemno$, $itemclassid$
+insert into sa_itemsaleclass (siteid, sa_itemsaleclassid, itemid, itemno, itemclassid,classtype)
+select $siteid$, $sa_itemsaleclassid$, $itemid$, $itemno$, $itemclassid$,$classtype$)
 FROM dual
 WHERE not exists(SELECT 1
                  FROM sa_itemsaleclass
                  WHERE siteid = $siteid$
                    and itemid = $itemid$
                    and itemclassid = $itemclassid$
-                   AND itemno = $itemno$)
+                   AND itemno = $itemno$
+                   and classtype=$classtype$)