Jelajahi Sumber

红字销售出库单审核反审核逻辑增加及序列号导入优化

hu 2 bulan lalu
induk
melakukan
a48df2da6a

+ 34 - 16
src/custom/beans/stockbill/bills/XSCK.java

@@ -93,21 +93,26 @@ public class XSCK extends BasicBill {
                         sqlList.add("update st_stockbill_items set wmsuploadflag2=1 where st_stockbill_itemsid=" + row.getLong("st_stockbill_itemsid"));
                     }
                 }
+                sqlList.addAll(updateAccountbalance_freez(isInStock(ischeck)));
             } else {
-//            for(Row row :rowsdetail){
-//                String itemid= row.getString("itemid");
-//                long stockid=row.getLong("stockid");
-//                if(stockRowsMap.containsKey(itemid)){
-//                    for(Row row1 :stockRowsMap.get(itemid)){
-//                        if(row1.getLong("stockid")==stockid){
-//                            sqlList.add("update st_stock set qty="+row1.getBigDecimal("qty").subtract(row.getBigDecimal("qty"))+" where stockid="+stockid);
-//                        }
-//                    }
-//                }
-//                // String batchno = row.getString("batchno");
-//            }
+                if (order_paymentnode.equals("3")) {
+                    CashbillEntity entity = getCashbillEntity(billRow.getBigDecimal("payamount").negate(), billRow.getBigDecimal("paydiscountamount").negate(), st_stockbillid, "销售出库单审核", billno, "由销售出库单" + billno + "审核时生成");
+                    JSONObject createCashbillPay = Accountbalance.createCashbillPay(dbConnect, userInfo, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), entity, true);
+                    sqlList.addAll(createCashbillPay.getJSONArray("sqlList").toJavaList(String.class));
+                }
+                Rows rowsOrderDetail = dbConnect.runSqlQuery("select t1.undeliqty,t1.deliedqty,t1.qty,t1.sa_orderitemsid from sa_orderitems t1 where t1.sa_orderitemsid in (select sa_orderitemsid from st_stockbill_items where sa_orderitemsid>0 and st_stockbillid=" + st_stockbillid + ")");
+                RowsMap rowsMap = rowsOrderDetail.toRowsMap("sa_orderitemsid");
+                Rows rowsDispatchDetailGroup = dbConnect.runSqlQuery("select sum(t1.qty) qty,t1.sa_orderitemsid,t1.siteid from st_stockbill_items t1  where t1.sa_orderitemsid>0 and t1.st_stockbillid=" + st_stockbillid + " group by t1.sa_orderitemsid,t1.siteid");
+                for (Row row : rowsDispatchDetailGroup) {
+                    sqlList.add("update sa_orderitems set undeliqty=" + rowsMap.get(row.getLong("sa_orderitemsid")).get(0).getBigDecimal("undeliqty").add(row.getBigDecimal("qty")) + ",deliedqty=" + (rowsMap.get(row.getLong("sa_orderitemsid")).get(0).getBigDecimal("deliedqty").subtract(row.getBigDecimal("qty"))) + " where sa_orderitemsid=" + row.getLong("sa_orderitemsid"));
+                }
+                for (Row row : itemRows) {
+                    if (row.getBoolean("skucontrol")) {
+                        sqlList.add("update st_stockbill_items set wmsuploadflag2=0 where st_stockbill_itemsid=" + row.getLong("st_stockbill_itemsid"));
+                    }
+                }
             }
-            sqlList.addAll(updateAccountbalance_freez(isInStock(ischeck)));
+
 
         } else {
             Rows accountbalancerows = dbConnect.runSqlQuery("select * from  sa_accountbalance t1 inner join sa_accountclass t2 on  t1.sa_accountclassid=t2.sa_accountclassid and t1.siteid=t2.siteid where t2.accountname='现金账户' and t1.sys_enterpriseid=" + sys_enterpriseid);
@@ -129,10 +134,24 @@ public class XSCK extends BasicBill {
                         sqlList.add("update st_stockbill_items set wmsuploadflag2=0 where st_stockbill_itemsid=" + row.getLong("st_stockbill_itemsid"));
                     }
                 }
+                sqlList.addAll(updateAccountbalance_freez(isInStock(ischeck)));
             } else {
-
+                if (order_paymentnode.equals("3")) {
+                    CashbillEntity entity = getCashbillEntity(billRow.getBigDecimal("payamount"), billRow.getBigDecimal("paydiscountamount"), st_stockbillid, "销售出库单反审核", billno, "由销售出库单" + billno + "反审核时生成");
+                    JSONObject createCashbillPay = Accountbalance.createCashbillPay(dbConnect, userInfo, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), entity, true);
+                    sqlList.addAll(createCashbillPay.getJSONArray("sqlList").toJavaList(String.class));
+                }
+                Rows rowsDispatchDetailGroup = dbConnect.runSqlQuery("select sum(t1.qty) qty,t1.sa_orderitemsid,t1.siteid from st_stockbill_items t1  where t1.sa_orderitemsid>0 and t1.st_stockbillid=" + st_stockbillid + " group by t1.sa_orderitemsid,t1.siteid");
+                for (Row row : rowsDispatchDetailGroup) {
+                    sqlList.add("update sa_orderitems set undeliqty=undeliqty-" + row.getDouble("qty") + ",deliedqty=deliedqty+" + row.getDouble("qty") + ",offstatus=if(billingstatus='保内收费','待核销','不可核销'),offdate=CURRENT_TIME  where sa_orderitemsid=" + row.getLong("sa_orderitemsid"));
+                }
+                for (Row row : itemRows) {
+                    if (row.getBoolean("skucontrol")) {
+                        sqlList.add("update st_stockbill_items set wmsuploadflag2=1 where st_stockbill_itemsid=" + row.getLong("st_stockbill_itemsid"));
+                    }
+                }
             }
-            sqlList.addAll(updateAccountbalance_freez(isInStock(ischeck)));
+
         }
         return sqlList;
     }
@@ -164,7 +183,6 @@ public class XSCK extends BasicBill {
                 if (accountbalancefreezrows.isNotEmpty()) {
                     sqllist.add("update sa_accountbalance_freez set amount=amount+" + amount + " where sa_accountbalance_freezid=" + accountbalancefreezrows.get(0).getLong("sa_accountbalance_freezid"));
                 } else {
-
                     InsertSQL insertSQL = SQLFactory.createInsertSQL(dbConnect, "sa_accountbalance_freez");
                     insertSQL.setSiteid(siteid);
                     insertSQL.setValue("sa_accountbalanceid", sa_accountbalanceid);

+ 1 - 1
src/custom/restcontroller/webmanage/sale/order/OrderItems.java

@@ -633,7 +633,7 @@ public class OrderItems extends Controller {
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_orderitems", "*");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "st_invbal_sale", "t2", "t2.siteid = t1.siteid AND t2.itemid = t1.itemid", "cansaleqty", "candispatchqty");
-        querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t3", "t3.itemid = t1.itemid and t3.siteid = t1.siteid", "orderminqty_auxunit", "orderaddqty_auxunit", "spec", "iscustomsize", "widthschemeid", "lengthschemeid", "standards", "k3outcode");
+        querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t3", "t3.itemid = t1.itemid and t3.siteid = t1.siteid", "orderminqty_auxunit", "orderaddqty_auxunit", "spec", "iscustomsize", "widthschemeid", "lengthschemeid", "standards", "k3outcode","outplace");
         if (sa_promotionid > 0) {
             querySQL.addJoinTable(JOINTYPE.left, "sa_promotion_items", "t4", "t4.sa_promotion_itemsid = t1.sa_promotion_itemsid and t4.siteid = t1.siteid and t4.sa_promotionid=" + sa_promotionid, "packagetypemx", "saledqty", "groupqty");
         }

+ 15 - 0
src/custom/restcontroller/webmanage/sale/sendplan/sendplandetail.java

@@ -225,6 +225,7 @@ public class sendplandetail extends Controller {
         Iterator<Map.Entry<String, HashMap<String, List<JSONObject>>>> iter = agentmap
                 .entrySet().iterator();
 
+        ArrayList <Long> st_stockbillids =new ArrayList<Long>();
 
         while (iter.hasNext()) {
             Map.Entry entry = (Map.Entry) iter.next();
@@ -243,6 +244,7 @@ public class sendplandetail extends Controller {
                 Iterator<JSONObject> senddetailpaoit = paolist.iterator();
                 SQLFactory sqlFactory = new SQLFactory(this, "销售出库单新增");
                 long st_stockbillid = createTableID("st_stockbill");
+                st_stockbillids.add(st_stockbillid);
                 sqlFactory.addParameter("siteid", siteid);
                 sqlFactory.addParameter("st_stockbillid", st_stockbillid);
                 sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
@@ -312,6 +314,19 @@ public class sendplandetail extends Controller {
             }
         }
         dbConnect.runSqlUpdate(sqlList);
+        ArrayList<String> sqlList1 = new ArrayList<>();
+        QuerySQL detailquerySQL = SQLFactory.createQuerySQL(this, "st_stockbill_items", "amount", "qty", "st_stockbillid");
+        detailquerySQL.setTableAlias("t1");
+        detailquerySQL.setSiteid(siteid);
+        detailquerySQL.setWhere("t1.st_stockbillid", st_stockbillids);
+        Rows rowsdetail = detailquerySQL.query();
+        RowsMap rowsdetailMap =rowsdetail.toRowsMap("st_stockbillid");
+        for (long st_stockbillid :st_stockbillids){
+            if(rowsdetailMap.containsKey(String.valueOf(st_stockbillid))){
+                sqlList1.add("update st_stockbill set payamount="+ rowsdetailMap.get(String.valueOf(st_stockbillid)).sum("amount")+" where st_stockbillid="+st_stockbillid);
+            }
+        }
+        dbConnect.runSqlUpdate(sqlList1);
         return getSucReturnObject().toString();
     }
 

+ 2 - 0
src/custom/restcontroller/webmanage/sale/stockbill/stockbillitems.java

@@ -252,6 +252,8 @@ public class stockbillitems extends Controller {
         }
 
         dbConnect.runSqlUpdate(sqlList);
+        Rows rowsdetail = dbConnect.runSqlQuery("select amount,qty from st_stockbill_items where st_stockbillid=" + st_stockbillid);
+        dbConnect.runSqlUpdate("update st_stockbill set payamount="+rowsdetail.sum("amount")+" where st_stockbillid="+st_stockbillid);
         return querStcokbillItemsList();
     }
 

+ 25 - 5
src/custom/restcontroller/webmanage/sale/toolscode/toolscode.java

@@ -60,8 +60,7 @@ public class toolscode extends Controller {
     public String uploadToolscodeByExcel() throws YosException {
 
         long itemid = 0;
-        Rows itemRows = dbConnect.runSqlQuery("select itemid,itemno from plm_item where siteid='" + siteid + "' and status='审核'   ");
-        RowsMap itemRosMap = itemRows.toRowsMap("itemno");
+
 
 //		JSONArray jsonArray = new JSONArray();
 //		jsonArray.add(content.getLong("attachmentid"));
@@ -96,6 +95,20 @@ public class toolscode extends Controller {
             boolean iserr = false;
             Rows rowserr = new Rows();
             Rows rowssuc = new Rows();
+            QuerySQL querySQL = SQLFactory.createQuerySQL(this, "plm_item", "itemid", "itemno");
+            querySQL.setTableAlias("t1");
+            querySQL.setSiteid(siteid);
+            querySQL.setWhere("t1.status='审核'");
+            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"));
+            Rows skuRows = skuquerySQL.query();
+            RowsMap skuRowsMap = skuRows.toRowsMap("sku");
             for (Row row : rows) {
 
                 if (StringUtils.isEmpty(row.getString("itemno")) || StringUtils.isEmpty(row.getString("sku"))) {
@@ -105,9 +118,16 @@ public class toolscode extends Controller {
                     // rows.remove(row);
                     // msg = "手机号,省市县及来源不能为空";
                 } else {
-                    if (!itemRosMap.get(row.getString("itemno")).isEmpty()) {
-                        row.put("itemid", itemRosMap.get(row.getString("itemno")).get(0).getString("itemid"));
-                        rowssuc.add(row);
+                    if (itemRowsMap.containsKey(row.getString("itemno"))) {
+                        if(skuRowsMap.containsKey(row.getString("sku"))){
+                            iserr = true;
+                            row.put("msg", "错误信息:序列号" + row.getString("sku") + "已存在");
+                            rowserr.add(row);
+                        }else{
+                            row.put("itemid", itemRowsMap.get(row.getString("itemno")).get(0).getString("itemid"));
+                            rowssuc.add(row);
+                        }
+
                     } else {
                         iserr = true;
                         row.put("msg", "错误信息:不存在商品编号为" + row.getString("itemno") + "的商品");