Explorar o código

订单新增批量删除功能。如果订单状态是提交状态则自动退回并删除

shenjingwei hai 3 semanas
pai
achega
cae7310796

+ 5 - 0
src/custom/restcontroller/R.java

@@ -7070,6 +7070,11 @@ public class R {
         public static class v1 {
         }
     }
+
+    public static class ID2026032614060601 {
+        public static class v1 {
+        }
+    }
 }
 
 

+ 143 - 19
src/custom/restcontroller/webmanage/sale/order/Order.java

@@ -49,7 +49,11 @@ public class Order extends Controller {
     }
 
     @API(title = "新增或更新", apiversion = R.ID20221108111402.v1.class, intervaltime = 200)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            accessoryorder.class})
     public String insertOrUpdate() throws YosException {
 
         ArrayList<String> sqlList = new ArrayList<>();
@@ -303,7 +307,11 @@ public class Order extends Controller {
     }
 
     @API(title = "购物车转化订单", apiversion = R.ID20221128183202.v1.class, intervaltime = 2000)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            accessoryorder.class})
     public String ship() throws YosException {
         ArrayList<String> sqlList1 = new ArrayList<>();
         Long istool = content.getLongValue("istool");
@@ -1410,7 +1418,11 @@ public class Order extends Controller {
     }
 
     @API(title = "删除", apiversion = R.ID20221108152102.v1.class)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            accessoryorder.class})
     public String delete() throws YosException {
         JSONArray sa_orderids = content.getJSONArray("sa_orderids");
 
@@ -1431,17 +1443,62 @@ public class Order extends Controller {
         //订单删除原因
         DataExtend.createDeleteReasonSql(this, "sa_order", sa_orderids.toJavaList(Long.class), content.getStringValue("deletereason"));
         //操作记录
-
         for (Object obj : sa_orderids) {
             Long sa_orderid = Long.valueOf(obj.toString());
             sqlList.add(DataContrlLog.createLog(this, "sa_order", sa_orderid, "删除", "订单删除").getSQL());
         }
         dbConnect.runSqlUpdate(sqlList);
-        //ClearData.clearOrder(this);
         return getSucReturnObject().toString();
     }
 
 
+    @API(title = "批量删除新建及提交状态的订单", apiversion = R.ID2026032614060601.v1.class)
+    public String delete2() throws YosException {
+        JSONArray sa_orderids = content.getJSONArray("sa_orderids");
+        if (sa_orderids.size() <= 0) {
+            return getErrReturnObject().setErrMsg("请选择要执行删除操作的数据。").toString();
+        }
+        JSONObject resultObject = new JSONObject();
+        JSONArray errArray = new JSONArray();
+        JSONArray sucArray = new JSONArray();
+        QuerySQL orderQuery = SQLFactory.createQuerySQL(this, "sa_order", "sa_orderid", "sonum", "status");
+        orderQuery.setWhere("sa_orderid", sa_orderids);
+        orderQuery.setSiteid(siteid);
+        Rows orderRows = orderQuery.query();
+        for (Row row : orderRows) {
+            long sa_orderid = row.getLong("sa_orderid");
+            String sonum = row.getString("sonum");
+            String status = row.getString("status");
+            if (!status.equals("提交") && !status.equals("新建")) {
+                errArray.add("订单" + sonum + "当前处于" + status + "状态无法删除!");
+                continue;
+            }
+            if (status.equals("提交")) {
+                content.put("sa_orderid", sa_orderid);
+                JSONObject returnobject = JSONObject.parseObject(back());
+                if (returnobject.getIntValue("status") == 0) {
+                    errArray.add("订单" + sonum + ":" + returnobject.getString("msg"));
+                    continue;
+                } else {
+                    status = SQLFactory.getRow(this, "sa_order", sa_orderid).getString("status");
+                }
+            }
+            if ("新建".equals(status)) {
+                SQLDump sqlDump = new SQLDump();
+                sqlDump.add(SQLFactory.createUpdateSQL(this, "sa_order").setValue("deleted", 1).setUniqueid(sa_orderid).setWhere("status", "新建"));
+                sqlDump.add(DataContrlLog.createLog(this, "sa_order", sa_orderid, "删除", "订单删除"));
+                sqlDump.commit(this);
+                sucArray.add(sa_orderid);
+                DataExtend.createDeleteReasonSql(this, "sa_order", sa_orderids.toJavaList(Long.class), content.getStringValue("deletereason"));
+            }
+        }
+        resultObject.put("err", errArray);
+        resultObject.put("suc", sucArray);
+
+        return getSucReturnObject().setData(errArray).toString();
+    }
+
+
     @API(title = "更新项目备注,备注,销售类别,摘要", apiversion = R.ID20230301152702.v1.class)
     public String update() throws YosException {
 
@@ -2475,7 +2532,14 @@ public class Order extends Controller {
 
 
     @API(title = "提交", apiversion = R.ID20221108153402.v1.class, intervaltime = 5000)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, cashbill.class, promotion.class, restcontroller.webmanage.sale.promotion.promotion.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            cashbill.class,
+            promotion.class,
+            restcontroller.webmanage.sale.promotion.promotion.class,
+            accessoryorder.class})
     public String submit() throws YosException {
         Long sa_orderid = content.getLong("sa_orderid");
 
@@ -3100,7 +3164,12 @@ public class Order extends Controller {
 
 
     @API(title = "审核", apiversion = R.ID20221108153502.v1.class, intervaltime = 5000)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, cashbill.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            cashbill.class,
+            accessoryorder.class})
     public String check() throws YosException {
         boolean isdebug = content.getBooleanValue("isdebug");
         Long sa_orderid = content.getLong("sa_orderid");
@@ -3225,7 +3294,12 @@ public class Order extends Controller {
     }
 
     @API(title = "反审核", apiversion = R.ID20230102141502.v1.class, intervaltime = 5000)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, cashbill.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            cashbill.class,
+            accessoryorder.class})
     public String uncheck() throws YosException {
         Long sa_orderid = content.getLong("sa_orderid");
         Rows rows = getOrderRows(this, sa_orderid);
@@ -3283,7 +3357,11 @@ public class Order extends Controller {
     }
 
     @API(title = "预提交反预提交", apiversion = R.ID20230331152503.v1.class)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            accessoryorder.class})
     public String presubmit() throws YosException {
         boolean isrecheck = content.getBooleanValue("isrecheck");
         Long sa_orderid = content.getLong("sa_orderid");
@@ -3350,7 +3428,11 @@ public class Order extends Controller {
     }
 
     @API(title = "确认反确认", apiversion = R.ID20230331102503.v1.class)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            accessoryorder.class})
     public String recheck() throws YosException {
         boolean isrecheck = content.getBooleanValue("isrecheck");
         Long sa_orderid = content.getLong("sa_orderid");
@@ -3412,7 +3494,14 @@ public class Order extends Controller {
     }
 
     @API(title = "退回", apiversion = R.ID20221108161902.v1.class, intervaltime = 5000)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, cashbill.class, promotion.class, restcontroller.webmanage.sale.promotion.promotion.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            cashbill.class,
+            promotion.class,
+            restcontroller.webmanage.sale.promotion.promotion.class,
+            accessoryorder.class})
     public String back() throws YosException {
         Long sa_orderid = content.getLong("sa_orderid");
         Rows rows = getOrderRows(this, sa_orderid);
@@ -3547,7 +3636,14 @@ public class Order extends Controller {
     }
 
     @API(title = "撤回", apiversion = R.ID20230301190202.v1.class, intervaltime = 5000)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, cashbill.class, promotion.class, restcontroller.webmanage.sale.promotion.promotion.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            cashbill.class,
+            promotion.class,
+            restcontroller.webmanage.sale.promotion.promotion.class,
+            accessoryorder.class})
     public String revoke() throws YosException {
         Long sa_orderid = content.getLong("sa_orderid");
         Rows rows = getOrderRows(this, sa_orderid);
@@ -3629,7 +3725,11 @@ public class Order extends Controller {
     }
 
     @API(title = "交期待确认", apiversion = R.ID20230102143502.v1.class)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            accessoryorder.class})
     public String confirmDelivery() throws YosException {
         Long sa_orderid = content.getLong("sa_orderid");
 
@@ -3690,7 +3790,11 @@ public class Order extends Controller {
     }
 
     @API(title = "确认交期,操作交期待确认的订单", apiversion = R.ID20221230094802.v1.class)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            accessoryorder.class})
     public String confirmDeliveryDate() throws YosException {
         Long sa_orderid = content.getLong("sa_orderid");
         Rows rows = getOrderRows(this, sa_orderid);
@@ -3727,7 +3831,11 @@ public class Order extends Controller {
     }
 
     @API(title = "交期撤回", apiversion = R.ID20230227160002.v1.class)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            accessoryorder.class})
     public String revokeDelivery() throws YosException {
         Long sa_orderid = content.getLong("sa_orderid");
         Rows rows = getOrderRows(this, sa_orderid);
@@ -4059,7 +4167,11 @@ public class Order extends Controller {
     }
 
     @API(title = "一键复制订单", apiversion = R.ID20230102144502.v1.class)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            accessoryorder.class})
     public String copyOrder() throws YosException {
 
         Long sa_orderid = content.getLong("sa_orderid");
@@ -4345,7 +4457,11 @@ public class Order extends Controller {
     }
 
     @API(title = "一键填写交货日期", apiversion = R.ID20230104143102.v1.class)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            accessoryorder.class})
     public String updateDelivery() throws YosException {
         Long sa_orderid = content.getLong("sa_orderid");
         //通过版本更新订单表头数据
@@ -4357,7 +4473,11 @@ public class Order extends Controller {
     }
 
     @API(title = "一键填写需求日期", apiversion = R.ID20230104143802.v1.class)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            accessoryorder.class})
     public String updateNeeddate() throws YosException {
         Long sa_orderid = content.getLong("sa_orderid");
 
@@ -4417,7 +4537,11 @@ public class Order extends Controller {
     }
 
     @API(title = "修改业务员", apiversion = R.ID20230213154802.v1.class)
-    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, accessoryorder.class})
+    @CACHEING_CLEAN(apiClass = {
+            Order.class,
+            OrderItems.class,
+            restcontroller.sale.order.Order.class,
+            accessoryorder.class})
     public String changeSaler() throws YosException {
 
         Long saler_hrid = content.getLong("saler_hrid");