Jelajahi Sumber

批量上下架bug修复

郭齐峰 3 tahun lalu
induk
melakukan
7c35857986
1 mengubah file dengan 70 tambahan dan 67 penghapusan
  1. 70 67
      src/custom/restcontroller/webmanage/sale/item/Item.java

+ 70 - 67
src/custom/restcontroller/webmanage/sale/item/Item.java

@@ -54,38 +54,38 @@ public class Item extends Controller {
                     .isEmpty()) {
                 return getErrReturnObject().setErrMsg("数据不存在").toString();
             }
-            Rows itemRows =dbConnect.runSqlQuery("SELECT t1.*,t2.material from plm_item t1 left join plm_itemextend t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid WHERE t1.itemid=" + itemid + " and t1.siteid ='" + siteid + "'");
+            Rows itemRows = dbConnect.runSqlQuery("SELECT t1.*,t2.material from plm_item t1 left join plm_itemextend t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid WHERE t1.itemid=" + itemid + " and t1.siteid ='" + siteid + "'");
 
             sqlFactory = new SQLFactory(this, "货品档案更新");
-            if(content.getLongValue("sa_customschemeid")>0){
-                Rows customschemeRows =dbConnect.runSqlQuery("SELECT  t1.*,t2.schemename from sa_customscheme_items t1 left join sa_customscheme t2 on t1.sa_customschemeid=t2.sa_customschemeid and t1.siteid=t2.siteid WHERE t1.sa_customschemeid=" + content.getLongValue("sa_customschemeid") + " and  t1.siteid ='" + siteid + "'");
-                String where = " and 1=1 and t1.itemid != "+itemid+" and sa_customschemeid="+content.getLongValue("sa_customschemeid");
-                if(!customschemeRows.isEmpty()){
-                    for (Row row:customschemeRows) {
-
-                        if(StringUtils.isBlank(itemRows.get(0).getString(row.getString("value"))) &&  StringUtils.isBlank(content.getStringValue(row.getString("value")))){
-                            return getErrReturnObject().setErrMsg("该商品定制方案"+row.getString("schemename")+"下"+row.getString("description")+"不可为空").toString();
-                        }else if(StringUtils.isBlank(itemRows.get(0).getString(row.getString("value"))) || StringUtils.isBlank(content.getStringValue(row.getString("value")))){
-                             System.out.println(1111);
+            if (content.getLongValue("sa_customschemeid") > 0) {
+                Rows customschemeRows = dbConnect.runSqlQuery("SELECT  t1.*,t2.schemename from sa_customscheme_items t1 left join sa_customscheme t2 on t1.sa_customschemeid=t2.sa_customschemeid and t1.siteid=t2.siteid WHERE t1.sa_customschemeid=" + content.getLongValue("sa_customschemeid") + " and  t1.siteid ='" + siteid + "'");
+                String where = " and 1=1 and t1.itemid != " + itemid + " and sa_customschemeid=" + content.getLongValue("sa_customschemeid");
+                if (!customschemeRows.isEmpty()) {
+                    for (Row row : customschemeRows) {
+
+                        if (StringUtils.isBlank(itemRows.get(0).getString(row.getString("value"))) && StringUtils.isBlank(content.getStringValue(row.getString("value")))) {
+                            return getErrReturnObject().setErrMsg("该商品定制方案" + row.getString("schemename") + "下" + row.getString("description") + "不可为空").toString();
+                        } else if (StringUtils.isBlank(itemRows.get(0).getString(row.getString("value"))) || StringUtils.isBlank(content.getStringValue(row.getString("value")))) {
+                            System.out.println(1111);
                             System.out.println(StringUtils.isBlank(itemRows.get(0).getString(row.getString("value"))));
-                            where=where+" and "+row.getString("value")+"='"+ (StringUtils.isBlank(itemRows.get(0).getString(row.getString("value"))) ? content.getStringValue(row.getString("value")) : itemRows.get(0).getString(row.getString("value")))+"'";
+                            where = where + " and " + row.getString("value") + "='" + (StringUtils.isBlank(itemRows.get(0).getString(row.getString("value"))) ? content.getStringValue(row.getString("value")) : itemRows.get(0).getString(row.getString("value"))) + "'";
 
-                        }else if(StringUtils.isNotBlank(itemRows.get(0).getString(row.getString("value"))) && StringUtils.isNotBlank(content.getStringValue(row.getString("value"))))
-                            where=where+" and "+row.getString("value")+"='"+ content.getStringValue(row.getString("value"))+"'";
+                        } else if (StringUtils.isNotBlank(itemRows.get(0).getString(row.getString("value"))) && StringUtils.isNotBlank(content.getStringValue(row.getString("value"))))
+                            where = where + " and " + row.getString("value") + "='" + content.getStringValue(row.getString("value")) + "'";
                     }
-                    System.out.println("select * from plm_item where siteid='"+siteid+"'"+where);
-                    Rows items =dbConnect.runSqlQuery("select t1.*,t2.material from plm_item t1 left join plm_itemextend t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.siteid='"+siteid+"'"+where);
-                    if(items.isNotEmpty()){
-                        return getErrReturnObject().setErrMsg("该商品与定制方案下的"+items.get(0).getString("itemno")+"商品重复,请修改").toString();
+                    System.out.println("select * from plm_item where siteid='" + siteid + "'" + where);
+                    Rows items = dbConnect.runSqlQuery("select t1.*,t2.material from plm_item t1 left join plm_itemextend t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.siteid='" + siteid + "'" + where);
+                    if (items.isNotEmpty()) {
+                        return getErrReturnObject().setErrMsg("该商品与定制方案下的" + items.get(0).getString("itemno") + "商品重复,请修改").toString();
                     }
                 }
             }
-                if(content.getLongValue("sa_customschemeid")!=itemRows.get(0).getLong("sa_customschemeid")){
-                    Rows rowsCount = dbConnect.runSqlQuery("select count(1) count,min(groupnum) groupnum from (select ifnull(t3.sa_customschemeid,0) count,t1.sa_itemgroupid,t1.groupnum,t1.siteid from sa_itemgroup t1 inner join sa_itemgroupmx t2 on t1.siteid=t2.siteid and t1.sa_itemgroupid=t2.sa_itemgroupid inner join plm_item t3 on t2.itemid=t3.itemid and t2.siteid=t3.siteid group by t1.sa_itemgroupid,t1.groupnum,t1.siteid,ifnull(t3.sa_customschemeid,0))t where t.siteid='"+siteid+"' and t.sa_itemgroupid in (select sa_itemgroupid from sa_itemgroupmx where itemid="+itemid+")");
-                    if(rowsCount.get(0).getLong("count")>0){
-                        return getErrReturnObject().setErrMsg("该商品存在与商品组"+rowsCount.get(0).getString("groupnum")+",请在商品组删除该商品后进行保存").toString();
-                    }
+            if (content.getLongValue("sa_customschemeid") != itemRows.get(0).getLong("sa_customschemeid")) {
+                Rows rowsCount = dbConnect.runSqlQuery("select count(1) count,min(groupnum) groupnum from (select ifnull(t3.sa_customschemeid,0) count,t1.sa_itemgroupid,t1.groupnum,t1.siteid from sa_itemgroup t1 inner join sa_itemgroupmx t2 on t1.siteid=t2.siteid and t1.sa_itemgroupid=t2.sa_itemgroupid inner join plm_item t3 on t2.itemid=t3.itemid and t2.siteid=t3.siteid group by t1.sa_itemgroupid,t1.groupnum,t1.siteid,ifnull(t3.sa_customschemeid,0))t where t.siteid='" + siteid + "' and t.sa_itemgroupid in (select sa_itemgroupid from sa_itemgroupmx where itemid=" + itemid + ")");
+                if (rowsCount.get(0).getLong("count") > 0) {
+                    return getErrReturnObject().setErrMsg("该商品存在与商品组" + rowsCount.get(0).getString("groupnum") + ",请在商品组删除该商品后进行保存").toString();
                 }
+            }
         }
 
         sqlFactory.addParameter("siteid", siteid);
@@ -194,11 +194,11 @@ public class Item extends Controller {
         // 添加领域
         if (content.containsKey("tradefields")) {
             JSONArray tradefields = content.getJSONArray("tradefields");
-            if(!tradefields.isEmpty()){
-                if(tradefields.size()>1){
+            if (!tradefields.isEmpty()) {
+                if (tradefields.size() > 1) {
                     return getErrReturnObject().setErrMsg("商品只能维护一个领域").toString();
                 }
-                sqlList.add("delete from plm_item_tradefield where itemid ="+itemid+" and siteid='"+siteid+"'");
+                sqlList.add("delete from plm_item_tradefield where itemid =" + itemid + " and siteid='" + siteid + "'");
                 for (Object obj : tradefields) {
                     String tradefield = (String) obj;
                     sqlFactory = new SQLFactory(this, "新增领域");
@@ -224,11 +224,11 @@ public class Item extends Controller {
 
         if (content.containsKey("itemclassids")) {
             JSONArray itemclassids = content.getJSONArray("itemclassids");
-            if(!itemclassids.isEmpty()){
-                if(itemclassids.size()>1){
+            if (!itemclassids.isEmpty()) {
+                if (itemclassids.size() > 1) {
                     return getErrReturnObject().setErrMsg("商品只能维护一个营销类别").toString();
                 }
-                sqlList.add("delete from sa_itemsaleclass where itemid ="+itemid+" and siteid='"+siteid+"'");
+                sqlList.add("delete from sa_itemsaleclass where itemid =" + itemid + " and siteid='" + siteid + "'");
                 for (Object obj : itemclassids) {
                     int itemclassid = (int) obj;
                     sqlFactory = new SQLFactory(this, "商品营销类别新增");
@@ -326,7 +326,7 @@ public class Item extends Controller {
                 where.append(")");
             }
             if (whereObject.containsKey("isonsalebutnotingroup") && !"".equals(whereObject.getString("isonsalebutnotingroup"))) {
-                if(whereObject.getBooleanValue("isonsalebutnotingroup")){
+                if (whereObject.getBooleanValue("isonsalebutnotingroup")) {
                     where.append(" and(");
                     where.append("t1.isonsale =1 and t1.itemid not in (select t1.itemid from sa_itemgroupmx t1 inner join sa_itemgroup t2 on t1.sa_itemgroupid=t2.sa_itemgroupid and t1.siteid=t2.siteid where t2.isonsale=1 )");
                     where.append(")");
@@ -335,32 +335,31 @@ public class Item extends Controller {
 
 
             if (whereObject.containsKey("itemclassids") && !whereObject.getJSONArray("itemclassids").isEmpty()) {
-                if ( whereObject.getJSONArray("itemclassids").size() > 0) {
-                    String sql = " and t1.itemid in ( SELECT itemid from sa_itemsaleclass WHERE itemclassid IN " +  whereObject.getJSONArray("itemclassids") + "  and siteid='" + siteid + "')";
+                if (whereObject.getJSONArray("itemclassids").size() > 0) {
+                    String sql = " and t1.itemid in ( SELECT itemid from sa_itemsaleclass WHERE itemclassid IN " + whereObject.getJSONArray("itemclassids") + "  and siteid='" + siteid + "')";
                     sql = sql.replace("[", "(").replace("]", ")");
                     where.append(sql);
                 }
             }
 
             if (whereObject.containsKey("tradefield") && !whereObject.getJSONArray("tradefield").isEmpty()) {
-                String where1 =" 1=1 ";
-                if ( whereObject.getJSONArray("tradefield").size() > 0) {
-                    for (Object object:whereObject.getJSONArray("tradefield")) {
+                String where1 = " 1=1 ";
+                if (whereObject.getJSONArray("tradefield").size() > 0) {
+                    for (Object object : whereObject.getJSONArray("tradefield")) {
                         String str = String.valueOf(object);
-                        where1=where1 +" or tradefield ='"+str+"' ";
+                        where1 = where1 + " or tradefield ='" + str + "' ";
                     }
                 }
-                where.append("and t1.itemid in (SELECT itemid from plm_item_tradefield WHERE ("+where1+") and siteid = '"+siteid+"')");
+                where.append("and t1.itemid in (SELECT itemid from plm_item_tradefield WHERE (" + where1 + ") and siteid = '" + siteid + "')");
             }
 
         }
 
 
-
         SQLFactory sqlFactory = new SQLFactory(this, "货品档案列表", pageSize, pageNumber, pageSorting);
         sqlFactory.addParameter("siteid", siteid);
         sqlFactory.addParameter_SQL("where", where);
-         System.out.println(sqlFactory.getSQL());
+        System.out.println(sqlFactory.getSQL());
         Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
         // 默认商品图片
         Rows defaultImageRows = getAttachmentUrl("system", (long) 1, "defaultImage");
@@ -414,7 +413,7 @@ public class Item extends Controller {
         JSONArray jsonArray = content.getJSONArray("itemids");
         String status = content.getString("status");
 
-        Rows itemRows = dbConnect.runSqlQuery("select itemid,itemno,itemname,sa_customschemeid,isonsale from plm_item where siteid='"+siteid+"'");
+        Rows itemRows = dbConnect.runSqlQuery("select itemid,itemno,itemname,sa_customschemeid,isonsale from plm_item where siteid='" + siteid + "'");
         RowsMap itemRowsMap = itemRows.toRowsMap("itemid");
 
         ArrayList<String> sqlList = new ArrayList<>();
@@ -425,10 +424,10 @@ public class Item extends Controller {
             sqlFactory.addParameter("siteid", siteid);
             sqlFactory.addParameter("username", username);
             sqlFactory.addParameter("status", status.equals("0") ? "新建" : "审核");
-            if(status.equals("0")){
-                if(itemRowsMap.containsKey(String.valueOf(id))){
-                    if(!itemRowsMap.get(String.valueOf(id)).isEmpty()){
-                        if(itemRowsMap.get(String.valueOf(id)).get(0).getBoolean("isonsale")){
+            if (status.equals("0")) {
+                if (itemRowsMap.containsKey(String.valueOf(id))) {
+                    if (!itemRowsMap.get(String.valueOf(id)).isEmpty()) {
+                        if (itemRowsMap.get(String.valueOf(id)).get(0).getBoolean("isonsale")) {
                             return getErrReturnObject().setErrMsg("上架状态无法反审核").toString();
                         }
                     }
@@ -445,11 +444,15 @@ public class Item extends Controller {
     }
 
     @API(title = "货品档案上架", apiversion = R.ID20220923154802.v1.class)
-    @CACHEING_CLEAN(apiversions = {R.ID20220923140602.v1.class},apiClass = {itemgroup.class,restcontroller.sale.itemgroup.itemgroup.class})
+    @CACHEING_CLEAN(apiversions = {R.ID20220923140602.v1.class}, apiClass = {itemgroup.class, restcontroller.sale.itemgroup.itemgroup.class})
     public String onsale() throws YosException {
 
         JSONArray jsonArray = content.getJSONArray("itemids");
         String isonsale = content.getString("isonsale");
+        if (jsonArray.size() == 0) {
+            return getErrReturnObject().setErrMsg("未选择商品").toString();
+        }
+
         if (isonsale.equals("1")) {
 
             SQLFactory isHas = new SQLFactory(this, "查询是否存在新建货品");
@@ -467,12 +470,12 @@ public class Item extends Controller {
             if (hasOnSaleRows.isNotEmpty()) {
                 return getErrReturnObject().setErrMsg("存在已上架的货品,无法上架!").toString();
             }
-             System.out.println("select * from sa_itemsaleclass where siteid='"+siteid+"' and itemid in "+ jsonArray.toArray());
-            String sql ="select * from sa_itemsaleclass where siteid='"+siteid+"' and itemid in "+ jsonArray.toJSONString();
+            System.out.println("select * from sa_itemsaleclass where siteid='" + siteid + "' and itemid in " + jsonArray.toArray());
+            String sql = "select * from sa_itemsaleclass where siteid='" + siteid + "' and itemid in " + jsonArray.toJSONString();
             sql = sql.replace("[", "(").replace("]", ")");
             Rows itemsaleclassRows = dbConnect.runSqlQuery(sql);
 
-            if(itemsaleclassRows.isEmpty()){
+            if (itemsaleclassRows.isEmpty()) {
                 return getErrReturnObject().setErrMsg("商品未维护营销类别,无法上架!").toString();
             }
 
@@ -484,15 +487,15 @@ public class Item extends Controller {
                 return getErrReturnObject().setErrMsg("存在未维护价格的货品,无法上架!").toString();
             }
         }
-        Rows brandRows = dbConnect.runSqlQuery("select sa_brandid from sa_brand where siteid='"+siteid+"'");
-        long sa_brandid=0;
-        if(!brandRows.isEmpty()){
-            sa_brandid=brandRows.get(0).getLong("sa_brandid");
+        Rows brandRows = dbConnect.runSqlQuery("select sa_brandid from sa_brand where siteid='" + siteid + "'");
+        long sa_brandid = 0;
+        if (!brandRows.isEmpty()) {
+            sa_brandid = brandRows.get(0).getLong("sa_brandid");
         }
-        Rows itemRows = dbConnect.runSqlQuery("select itemid,itemno,itemname,sa_customschemeid,isonsale from plm_item where siteid='"+siteid+"'");
+        Rows itemRows = dbConnect.runSqlQuery("select itemid,itemno,itemname,sa_customschemeid,isonsale from plm_item where siteid='" + siteid + "'");
         RowsMap itemRowsMap = itemRows.toRowsMap("itemid");
 
-        Rows tradefieldRows = dbConnect.runSqlQuery("select itemid,tradefield from plm_item_tradefield where siteid='"+siteid+"'");
+        Rows tradefieldRows = dbConnect.runSqlQuery("select itemid,tradefield from plm_item_tradefield where siteid='" + siteid + "'");
         RowsMap tradefieldRowsMap = tradefieldRows.toRowsMap("itemid");
 
         ArrayList<String> sqlList = new ArrayList<>();
@@ -506,26 +509,26 @@ public class Item extends Controller {
             sqlList.add(sqlFactory.getSQL(false));
 
             //审核商品时,自动添加至商品组中
-            if(itemRowsMap.containsKey(String.valueOf(obj))){
-                if(!itemRowsMap.get(String.valueOf(obj)).isEmpty()){
-                    if(itemRowsMap.get(String.valueOf(obj)).get(0).getLong("sa_customschemeid")!=0){
-                        if(isonsale.equals("1")){
-                            Rows rowsCount = dbConnect.runSqlQuery("select count(1) count,min(groupnum) groupnum from (select ifnull(t3.sa_customschemeid,0) count,t1.sa_itemgroupid,t1.groupnum,t1.siteid from sa_itemgroup t1 inner join sa_itemgroupmx t2 on t1.siteid=t2.siteid and t1.sa_itemgroupid=t2.sa_itemgroupid inner join plm_item t3 on t2.itemid=t3.itemid and t2.siteid=t3.siteid group by t1.sa_itemgroupid,t1.groupnum,t1.siteid,ifnull(t3.sa_customschemeid,0))t where t.siteid='"+siteid+"' and t.sa_itemgroupid in (select sa_itemgroupid from sa_itemgroupmx where itemid="+id+")");
-                            if(rowsCount.get(0).getLong("count")>1){
+            if (itemRowsMap.containsKey(String.valueOf(obj))) {
+                if (!itemRowsMap.get(String.valueOf(obj)).isEmpty()) {
+                    if (itemRowsMap.get(String.valueOf(obj)).get(0).getLong("sa_customschemeid") != 0) {
+                        if (isonsale.equals("1")) {
+                            Rows rowsCount = dbConnect.runSqlQuery("select count(1) count,min(groupnum) groupnum from (select ifnull(t3.sa_customschemeid,0) count,t1.sa_itemgroupid,t1.groupnum,t1.siteid from sa_itemgroup t1 inner join sa_itemgroupmx t2 on t1.siteid=t2.siteid and t1.sa_itemgroupid=t2.sa_itemgroupid inner join plm_item t3 on t2.itemid=t3.itemid and t2.siteid=t3.siteid group by t1.sa_itemgroupid,t1.groupnum,t1.siteid,ifnull(t3.sa_customschemeid,0))t where t.siteid='" + siteid + "' and t.sa_itemgroupid in (select sa_itemgroupid from sa_itemgroupmx where itemid=" + id + ")");
+                            if (rowsCount.get(0).getLong("count") > 1) {
                                 //return getErrReturnObject().setErrMsg("该商品存在与商品组"+rowsCount.get(0).getString("groupnum")+",请在商品组删除该商品后进行审核").toString();
                             }
                         }
-                    }else{
-                        if(isonsale.equals("0")){
-                            sqlList.add("delete from sa_itemgroup where sa_itemgroupid in(select sa_itemgroupid from sa_itemgroupmx where itemid="+id+" and siteid='"+siteid+"')");
-                            sqlList.add("delete from sa_itemgroupmx where itemid="+id+" and siteid='"+siteid+"'");
-                        }else {
-                            sqlList.addAll(Itemgroup.createItemGroupSql(this, id,itemRowsMap.get(String.valueOf(obj)).get(0).getString("itemname"), itemRowsMap.get(String.valueOf(obj)).get(0).getString("itemno"),tradefieldRowsMap.get(String.valueOf(obj)).toJsonArray("tradefield"),sa_brandid ));
+                    } else {
+                        if (isonsale.equals("0")) {
+                            sqlList.add("delete from sa_itemgroup where sa_itemgroupid in(select sa_itemgroupid from sa_itemgroupmx where itemid=" + id + " and siteid='" + siteid + "')");
+                            sqlList.add("delete from sa_itemgroupmx where itemid=" + id + " and siteid='" + siteid + "'");
+                        } else {
+                            sqlList.addAll(Itemgroup.createItemGroupSql(this, id, itemRowsMap.get(String.valueOf(obj)).get(0).getString("itemname"), itemRowsMap.get(String.valueOf(obj)).get(0).getString("itemno"), tradefieldRowsMap.get(String.valueOf(obj)).toJsonArray("tradefield"), sa_brandid));
                         }
                     }
 
 
-                }else {
+                } else {
                     return getErrReturnObject().setErrMsg("商品不存在").toString();
                 }