Forráskód Böngészése

查验单还原库存完成

lhm 3 éve
szülő
commit
93b761bffd

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java

@@ -720,7 +720,7 @@ public class OrderController {
         try {
             Boolean restore = orderService.restore(orderSns);
             if (restore) {
-                return R.ok();
+                return R.ok("恢复【" + orderSns + "】这些查验订单的库存成功");
             }
         } catch (Exception e) {
             return R.error("恢复【 " + orderSns + " 】这些查验订单的库存失败!");

+ 9 - 8
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -1641,6 +1641,7 @@ public class OrderServiceImpl implements OrderService {
      * @return          是否还原成功, true: 成功,false: 失败
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean restore(String orderSns) {
 
         if (org.springframework.util.StringUtils.isEmpty(orderSns)) {
@@ -1668,14 +1669,14 @@ public class OrderServiceImpl implements OrderService {
             productStoreRelaEntities.add(wrapProductStoreRela(orderGoodsRestoreVo));
         });
 
-        try {
-            // 还原园区库存
-            goodsService.restoreBatch(goodsEntities);
-            // 还原门店库存
-            productStoreRelaService.restoreBatch(productStoreRelaEntities);
-        } catch (Exception e) {
-            return false;
-        }
+        // 还原园区库存
+        goodsService.restoreBatch(goodsEntities);
+        // 还原门店库存
+        productStoreRelaService.restoreBatch(productStoreRelaEntities);
+
+        // 添加还原记录
+        List<NewRetailOrderRestoreStockRecordEntity> stockRecordEntityList = orderGoodsRestoreVos.stream().map(this::wrapRestoreRecord).collect(Collectors.toList());
+        newRetailOrderRestoreStockRecordService.saveBatch(stockRecordEntityList);
 
         return true;
     }

+ 2 - 2
kmall-admin/src/main/resources/mybatis/mapper/record/NewRetailOrderRestoreStockRecordDao.xml

@@ -121,8 +121,8 @@
         values
         <foreach collection="list" index="index" item="item" separator=",">
             (
-                #{orderId},#{orderSn},#{storeId},#{shopName},#{sku},#{restoreNum},
-                #{status},#{createSn},#{createTime},#{updateSn},#{updateTime}
+                #{item.orderId},#{item.orderSn},#{item.storeId},#{item.shopName},#{item.sku},#{item.restoreNum},
+                #{item.status},#{item.createSn},#{item.createTime},#{item.updateSn},#{item.updateTime}
             )
         </foreach>
 

+ 1 - 1
kmall-admin/src/main/webapp/WEB-INF/page/shop/offilineOrderList.html

@@ -44,7 +44,7 @@
                 </i-col>-->
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>
-                <i-button type="primary" @click="checkOrderRestore"></i>&nbsp;查验单恢复库存</i-button>
+                <i-button type="info" @click="checkOrderRestore"></i>&nbsp;查验单恢复库存</i-button>
                 #if($shiro.hasPermission("order:exportOffilineOrder"))
                 <i-button type="primary" @click="exportOffilineOrder"><i class="fa fa-cloud-download"></i>&nbsp;导出</i-button>
                 #end

+ 31 - 16
kmall-admin/src/main/webapp/js/shop/offilineOrderList.js

@@ -488,23 +488,38 @@ let vm = new Vue({
             });
         },
         checkOrderRestore : function () {
-            var ids = $("#jqGrid").jqGrid("getGridParam", "selarrrow");
-            var param = ids.toString();
-            $.ajax({
-                type: "post",
-                url: "../order/restore",
-                data: param,
-                contentType: "application/json;charset=utf-8",
-                success: function (res) {
-                    if (r.code === 0) {
-                        alert('恢复库存成功', function (index) {
-                            vm.reload();
-                        });
-                    } else {
-                        alert(r.msg);
-                    }
+            let $jqGrid = $("#jqGrid");
+            // 获取多行数据内容
+            let ids = $jqGrid.jqGrid('getGridParam', 'selarrrow');
+            let orderSns  = "";
+            for (let i = 0; i < ids.length; i++) {
+                orderSns+=$jqGrid.getCell(ids[i], 'orderSn');
+                if (i < ids.length-1) {
+                    orderSns+=",";
                 }
-            })
+            }
+            let param = ids.toString();
+            if (!param) {
+                alert('请选择一行或多行数据!');
+                return false;
+            }
+            confirm('确定要还原查验单【' + orderSns + '】的库存吗?提示:谨慎操作,该操作不可逆!', function () {
+                $.ajax({
+                    type: 'post',
+                    url: '../order/restore',
+                    data: param,
+                    contentType: 'application/json;charset=utf-8',
+                    success: function (res) {
+                        if (res.code === 0) {
+                            alert('恢复库存成功', function (index) {
+                                vm.reload();
+                            });
+                        } else {
+                            alert(res.msg);
+                        }
+                    }
+                });
+            });
         },
         exportOffilineOrder : function () {
 

+ 27 - 0
sql/mall_new_retail_order_restore_stock_record.sql

@@ -0,0 +1,27 @@
+-- ----------------------------
+-- 新零售查验单会员库存记录表
+-- ----------------------------
+drop table if exists mall_new_retail_order_restore_stock_record;
+
+/*==============================================================*/
+/* Table: mall_new_retail_order_restore_stock_record            */
+/*==============================================================*/
+create table mall_new_retail_order_restore_stock_record
+(
+    id                   int(11) not null auto_increment  comment '编号',
+    order_id             int(11)  comment '订单表id',
+    order_sn             varchar(32)  comment '订单编号',
+    store_id             int(11)  comment '门店编号',
+    shop_name            varchar(64)  comment '门店名称',
+    sku                  varchar(60)  comment 'sku',
+    restore_num          int(11)  comment '查验单还原数量',
+    status               char(1)  comment '还原是否成功,0:成功,1:失败',
+    creater_sn           varchar(22)  comment '创建人编号',
+    create_time          datetime  comment '创建时间,yyyy-MM-dd HH:mm:ss',
+    moder_sn             varchar(22)  comment '修改人编号',
+    mod_time             datetime  comment '修改时间,yyyy-MM-dd HH:mm:ss',
+    tstm                 datetime default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP  comment '时间戳',
+    primary key (id)
+);
+
+alter table mall_new_retail_order_restore_stock_record comment '查验单如果从保税仓发货, 会导致kmall门店库存变少, 因此提供了还原查验单库存的功能以及还原库存记录';