Browse Source

门店库存转移

yangbo 4 years ago
parent
commit
52974834d8

+ 39 - 7
kmall-admin/src/main/java/com/kmall/admin/controller/StoreTransferInventoryOrderController.java

@@ -1,18 +1,24 @@
 package com.kmall.admin.controller;
 package com.kmall.admin.controller;
 
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
+import com.kmall.admin.dto.StoreGoodsDto;
+import com.kmall.admin.dto.StoreTransferInventoryOrderImportDto;
 import com.kmall.admin.entity.StoreTransferInventoryOrderEntity;
 import com.kmall.admin.entity.StoreTransferInventoryOrderEntity;
 import com.kmall.admin.service.StoreTransferInventoryOrderService;
 import com.kmall.admin.service.StoreTransferInventoryOrderService;
+import com.kmall.common.constant.JxlsXmlTemplateName;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
 import com.kmall.common.utils.R;
+import com.kmall.common.utils.excel.ExcelUtil;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
-
+import org.springframework.web.multipart.MultipartFile;
 
 
 
 
 /**
 /**
@@ -27,12 +33,13 @@ import org.springframework.web.bind.annotation.*;
 public class StoreTransferInventoryOrderController {
 public class StoreTransferInventoryOrderController {
     @Autowired
     @Autowired
     private StoreTransferInventoryOrderService storeTransferInventoryOrderService;
     private StoreTransferInventoryOrderService storeTransferInventoryOrderService;
-
+    @Autowired
+    private ExcelUtil excelUtil;
     /**
     /**
      * 查看列表
      * 查看列表
      */
      */
     @RequestMapping("/list")
     @RequestMapping("/list")
-    @RequiresPermissions("storetransferinventoryorder:list")
+//    @RequiresPermissions("storetransferinventoryorder:list")
     @ResponseBody
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
     public R list(@RequestParam Map<String, Object> params) {
         //查询列表数据
         //查询列表数据
@@ -50,7 +57,7 @@ public class StoreTransferInventoryOrderController {
      * 查看信息
      * 查看信息
      */
      */
     @RequestMapping("/info/{id}")
     @RequestMapping("/info/{id}")
-    @RequiresPermissions("storetransferinventoryorder:info")
+//    @RequiresPermissions("storetransferinventoryorder:info")
     @ResponseBody
     @ResponseBody
     public R info(@PathVariable("id") Integer id) {
     public R info(@PathVariable("id") Integer id) {
         StoreTransferInventoryOrderEntity storeTransferInventoryOrder = storeTransferInventoryOrderService.queryObject(id);
         StoreTransferInventoryOrderEntity storeTransferInventoryOrder = storeTransferInventoryOrderService.queryObject(id);
@@ -62,7 +69,7 @@ public class StoreTransferInventoryOrderController {
      * 保存
      * 保存
      */
      */
     @RequestMapping("/save")
     @RequestMapping("/save")
-    @RequiresPermissions("storetransferinventoryorder:save")
+//    @RequiresPermissions("storetransferinventoryorder:save")
     @ResponseBody
     @ResponseBody
     public R save(@RequestBody StoreTransferInventoryOrderEntity storeTransferInventoryOrder) {
     public R save(@RequestBody StoreTransferInventoryOrderEntity storeTransferInventoryOrder) {
         storeTransferInventoryOrderService.save(storeTransferInventoryOrder);
         storeTransferInventoryOrderService.save(storeTransferInventoryOrder);
@@ -71,10 +78,35 @@ public class StoreTransferInventoryOrderController {
     }
     }
 
 
     /**
     /**
+     * 导入
+     */
+    @RequestMapping("/upload")
+//    @RequiresPermissions("storetransferinventoryorder:save")
+    @ResponseBody
+    public R upload(MultipartFile file) {
+        List<StoreTransferInventoryOrderImportDto> storeTransferInventoryOrderImportDtoList = new ArrayList<>();//信息
+        try {
+            StoreTransferInventoryOrderImportDto storeTransferInventoryOrderImportDto = new StoreTransferInventoryOrderImportDto();
+            Map<String, Object> beans = new HashMap<String, Object>();
+            beans.put("storeTransferInventoryOrderImportDto", storeTransferInventoryOrderImportDto);
+            beans.put("storeTransferInventoryOrderImportDtoList", storeTransferInventoryOrderImportDtoList);
+            if (file.isEmpty()) {
+                return R.error("文件不能为空!");
+            }
+            excelUtil.readExcel(JxlsXmlTemplateName.STORE_TRANSFER_INVENTORY_ORDER_IMPORT_DTO_LIST, beans, file.getInputStream());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("导入失败!");
+        }
+        storeTransferInventoryOrderService.uploadExcel(storeTransferInventoryOrderImportDtoList);
+        return R.ok();
+    }
+
+    /**
      * 修改
      * 修改
      */
      */
     @RequestMapping("/update")
     @RequestMapping("/update")
-    @RequiresPermissions("storetransferinventoryorder:update")
+//    @RequiresPermissions("storetransferinventoryorder:update")
     @ResponseBody
     @ResponseBody
     public R update(@RequestBody StoreTransferInventoryOrderEntity storeTransferInventoryOrder) {
     public R update(@RequestBody StoreTransferInventoryOrderEntity storeTransferInventoryOrder) {
         storeTransferInventoryOrderService.update(storeTransferInventoryOrder);
         storeTransferInventoryOrderService.update(storeTransferInventoryOrder);
@@ -86,7 +118,7 @@ public class StoreTransferInventoryOrderController {
      * 删除
      * 删除
      */
      */
     @RequestMapping("/delete")
     @RequestMapping("/delete")
-    @RequiresPermissions("storetransferinventoryorder:delete")
+//    @RequiresPermissions("storetransferinventoryorder:delete")
     @ResponseBody
     @ResponseBody
     public R delete(@RequestBody Integer[]ids) {
     public R delete(@RequestBody Integer[]ids) {
         storeTransferInventoryOrderService.deleteBatch(ids);
         storeTransferInventoryOrderService.deleteBatch(ids);

+ 5 - 5
kmall-admin/src/main/java/com/kmall/admin/controller/StoreTransferInventoryOrderDetailController.java

@@ -31,7 +31,7 @@ public class StoreTransferInventoryOrderDetailController {
      * 查看列表
      * 查看列表
      */
      */
     @RequestMapping("/list")
     @RequestMapping("/list")
-    @RequiresPermissions("storetransferinventoryorderdetail:list")
+//    @RequiresPermissions("storetransferinventoryorderdetail:list")
     @ResponseBody
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
     public R list(@RequestParam Map<String, Object> params) {
         //查询列表数据
         //查询列表数据
@@ -49,7 +49,7 @@ public class StoreTransferInventoryOrderDetailController {
      * 查看信息
      * 查看信息
      */
      */
     @RequestMapping("/info/{id}")
     @RequestMapping("/info/{id}")
-    @RequiresPermissions("storetransferinventoryorderdetail:info")
+//    @RequiresPermissions("storetransferinventoryorderdetail:info")
     @ResponseBody
     @ResponseBody
     public R info(@PathVariable("id") Integer id) {
     public R info(@PathVariable("id") Integer id) {
         StoreTransferInventoryOrderDetailEntity storeTransferInventoryOrderDetail = storeTransferInventoryOrderDetailService.queryObject(id);
         StoreTransferInventoryOrderDetailEntity storeTransferInventoryOrderDetail = storeTransferInventoryOrderDetailService.queryObject(id);
@@ -61,7 +61,7 @@ public class StoreTransferInventoryOrderDetailController {
      * 保存
      * 保存
      */
      */
     @RequestMapping("/save")
     @RequestMapping("/save")
-    @RequiresPermissions("storetransferinventoryorderdetail:save")
+//    @RequiresPermissions("storetransferinventoryorderdetail:save")
     @ResponseBody
     @ResponseBody
     public R save(@RequestBody StoreTransferInventoryOrderDetailEntity storeTransferInventoryOrderDetail) {
     public R save(@RequestBody StoreTransferInventoryOrderDetailEntity storeTransferInventoryOrderDetail) {
         storeTransferInventoryOrderDetailService.save(storeTransferInventoryOrderDetail);
         storeTransferInventoryOrderDetailService.save(storeTransferInventoryOrderDetail);
@@ -73,7 +73,7 @@ public class StoreTransferInventoryOrderDetailController {
      * 修改
      * 修改
      */
      */
     @RequestMapping("/update")
     @RequestMapping("/update")
-    @RequiresPermissions("storetransferinventoryorderdetail:update")
+//    @RequiresPermissions("storetransferinventoryorderdetail:update")
     @ResponseBody
     @ResponseBody
     public R update(@RequestBody StoreTransferInventoryOrderDetailEntity storeTransferInventoryOrderDetail) {
     public R update(@RequestBody StoreTransferInventoryOrderDetailEntity storeTransferInventoryOrderDetail) {
         storeTransferInventoryOrderDetailService.update(storeTransferInventoryOrderDetail);
         storeTransferInventoryOrderDetailService.update(storeTransferInventoryOrderDetail);
@@ -85,7 +85,7 @@ public class StoreTransferInventoryOrderDetailController {
      * 删除
      * 删除
      */
      */
     @RequestMapping("/delete")
     @RequestMapping("/delete")
-    @RequiresPermissions("storetransferinventoryorderdetail:delete")
+//    @RequiresPermissions("storetransferinventoryorderdetail:delete")
     @ResponseBody
     @ResponseBody
     public R delete(@RequestBody Integer[]ids) {
     public R delete(@RequestBody Integer[]ids) {
         storeTransferInventoryOrderDetailService.deleteBatch(ids);
         storeTransferInventoryOrderDetailService.deleteBatch(ids);

+ 115 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/StoreTransferInventoryOrderImportDto.java

@@ -0,0 +1,115 @@
+package com.kmall.admin.dto;
+
+import java.io.Serializable;
+
+public class StoreTransferInventoryOrderImportDto implements Serializable {
+
+    /**
+     * 商户编号
+     */
+    private String merchSn;
+    /**
+     * 商户名称
+     */
+    private String merchName;
+    /**
+     * 转入门店编号
+     */
+    private String inStoreSn;
+    /**
+     * 转入门店名称
+     */
+    private String inStoreName;
+    /**
+     * 转出门店编号
+     */
+    private String outStoreSn;
+    /**
+     * 转出门店名称
+     */
+    private String outStoreName;
+    /**
+     * 转移商品sku
+     */
+    private String sku;
+    /**
+     * 转移商品数量
+     */
+    private Integer num;
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public String getMerchSn() {
+        return merchSn;
+    }
+
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
+    public String getMerchName() {
+        return merchName;
+    }
+
+    public void setMerchName(String merchName) {
+        this.merchName = merchName;
+    }
+
+    public String getInStoreSn() {
+        return inStoreSn;
+    }
+
+    public void setInStoreSn(String inStoreSn) {
+        this.inStoreSn = inStoreSn;
+    }
+
+    public String getInStoreName() {
+        return inStoreName;
+    }
+
+    public void setInStoreName(String inStoreName) {
+        this.inStoreName = inStoreName;
+    }
+
+    public String getOutStoreSn() {
+        return outStoreSn;
+    }
+
+    public void setOutStoreSn(String outStoreSn) {
+        this.outStoreSn = outStoreSn;
+    }
+
+    public String getOutStoreName() {
+        return outStoreName;
+    }
+
+    public void setOutStoreName(String outStoreName) {
+        this.outStoreName = outStoreName;
+    }
+
+    public String getSku() {
+        return sku;
+    }
+
+    public void setSku(String sku) {
+        this.sku = sku;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+}

+ 3 - 0
kmall-admin/src/main/java/com/kmall/admin/service/StoreTransferInventoryOrderService.java

@@ -1,5 +1,6 @@
 package com.kmall.admin.service;
 package com.kmall.admin.service;
 
 
+import com.kmall.admin.dto.StoreTransferInventoryOrderImportDto;
 import com.kmall.admin.entity.StoreTransferInventoryOrderEntity;
 import com.kmall.admin.entity.StoreTransferInventoryOrderEntity;
 
 
 import java.util.List;
 import java.util.List;
@@ -69,4 +70,6 @@ public interface StoreTransferInventoryOrderService {
      * @return 删除条数
      * @return 删除条数
      */
      */
     int deleteBatch(Integer[]ids);
     int deleteBatch(Integer[]ids);
+
+    void uploadExcel(List<StoreTransferInventoryOrderImportDto> dtoList);
 }
 }

+ 9 - 1
kmall-admin/src/main/java/com/kmall/admin/service/impl/StoreTransferInventoryOrderDetailServiceImpl.java

@@ -3,10 +3,13 @@ package com.kmall.admin.service.impl;
 import com.kmall.admin.dao.StoreTransferInventoryOrderDetailDao;
 import com.kmall.admin.dao.StoreTransferInventoryOrderDetailDao;
 import com.kmall.admin.dto.TransferGoodsDto;
 import com.kmall.admin.dto.TransferGoodsDto;
 import com.kmall.admin.entity.StoreTransferInventoryOrderDetailEntity;
 import com.kmall.admin.entity.StoreTransferInventoryOrderDetailEntity;
+import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.admin.service.StoreTransferInventoryOrderDetailService;
 import com.kmall.admin.service.StoreTransferInventoryOrderDetailService;
+import com.kmall.admin.utils.ShiroUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -40,11 +43,16 @@ public class StoreTransferInventoryOrderDetailServiceImpl implements StoreTransf
 
 
     @Override
     @Override
     public int save(StoreTransferInventoryOrderDetailEntity storeTransferInventoryOrderDetail) {
     public int save(StoreTransferInventoryOrderDetailEntity storeTransferInventoryOrderDetail) {
+        SysUserEntity userEntity = ShiroUtils.getUserEntity();
+        storeTransferInventoryOrderDetail.setCreateSn(userEntity.getUserId() + "");
         return storeTransferInventoryOrderDetailDao.save(storeTransferInventoryOrderDetail);
         return storeTransferInventoryOrderDetailDao.save(storeTransferInventoryOrderDetail);
     }
     }
 
 
     @Override
     @Override
     public int update(StoreTransferInventoryOrderDetailEntity storeTransferInventoryOrderDetail) {
     public int update(StoreTransferInventoryOrderDetailEntity storeTransferInventoryOrderDetail) {
+        SysUserEntity userEntity = ShiroUtils.getUserEntity();
+        storeTransferInventoryOrderDetail.setModifySn(userEntity.getUserId() + "");
+        storeTransferInventoryOrderDetail.setModifyTime(new Date());
         return storeTransferInventoryOrderDetailDao.update(storeTransferInventoryOrderDetail);
         return storeTransferInventoryOrderDetailDao.update(storeTransferInventoryOrderDetail);
     }
     }
 
 
@@ -54,7 +62,7 @@ public class StoreTransferInventoryOrderDetailServiceImpl implements StoreTransf
     }
     }
 
 
     @Override
     @Override
-    public int deleteBatch(Integer[]ids) {
+    public int deleteBatch(Integer[] ids) {
         return storeTransferInventoryOrderDetailDao.deleteBatch(ids);
         return storeTransferInventoryOrderDetailDao.deleteBatch(ids);
     }
     }
 
 

+ 49 - 1
kmall-admin/src/main/java/com/kmall/admin/service/impl/StoreTransferInventoryOrderServiceImpl.java

@@ -1,14 +1,21 @@
 package com.kmall.admin.service.impl;
 package com.kmall.admin.service.impl;
 
 
+import com.kmall.admin.dto.StoreTransferInventoryOrderImportDto;
+import com.kmall.admin.entity.StoreTransferInventoryOrderDetailEntity;
+import com.kmall.admin.fromcomm.entity.SysUserEntity;
+import com.kmall.admin.service.StoreTransferInventoryOrderDetailService;
+import com.kmall.admin.utils.ShiroUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 import com.kmall.admin.dao.StoreTransferInventoryOrderDao;
 import com.kmall.admin.dao.StoreTransferInventoryOrderDao;
 import com.kmall.admin.entity.StoreTransferInventoryOrderEntity;
 import com.kmall.admin.entity.StoreTransferInventoryOrderEntity;
 import com.kmall.admin.service.StoreTransferInventoryOrderService;
 import com.kmall.admin.service.StoreTransferInventoryOrderService;
+import org.springframework.util.CollectionUtils;
 
 
 /**
 /**
  * 门店库存转移单表Service实现类
  * 门店库存转移单表Service实现类
@@ -21,6 +28,8 @@ import com.kmall.admin.service.StoreTransferInventoryOrderService;
 public class StoreTransferInventoryOrderServiceImpl implements StoreTransferInventoryOrderService {
 public class StoreTransferInventoryOrderServiceImpl implements StoreTransferInventoryOrderService {
     @Autowired
     @Autowired
     private StoreTransferInventoryOrderDao storeTransferInventoryOrderDao;
     private StoreTransferInventoryOrderDao storeTransferInventoryOrderDao;
+    @Autowired
+    private StoreTransferInventoryOrderDetailService storeTransferInventoryOrderDetailService;
 
 
     @Override
     @Override
     public StoreTransferInventoryOrderEntity queryObject(Integer id) {
     public StoreTransferInventoryOrderEntity queryObject(Integer id) {
@@ -39,11 +48,17 @@ public class StoreTransferInventoryOrderServiceImpl implements StoreTransferInve
 
 
     @Override
     @Override
     public int save(StoreTransferInventoryOrderEntity storeTransferInventoryOrder) {
     public int save(StoreTransferInventoryOrderEntity storeTransferInventoryOrder) {
+        SysUserEntity userEntity = ShiroUtils.getUserEntity();
+        storeTransferInventoryOrder.setCreateSn(userEntity.getUserId() + "");
+        storeTransferInventoryOrder.setCreateTime(new Date());
         return storeTransferInventoryOrderDao.save(storeTransferInventoryOrder);
         return storeTransferInventoryOrderDao.save(storeTransferInventoryOrder);
     }
     }
 
 
     @Override
     @Override
     public int update(StoreTransferInventoryOrderEntity storeTransferInventoryOrder) {
     public int update(StoreTransferInventoryOrderEntity storeTransferInventoryOrder) {
+        SysUserEntity userEntity = ShiroUtils.getUserEntity();
+        storeTransferInventoryOrder.setModifySn(userEntity.getUserId() + "");
+        storeTransferInventoryOrder.setModifyTime(new Date());
         return storeTransferInventoryOrderDao.update(storeTransferInventoryOrder);
         return storeTransferInventoryOrderDao.update(storeTransferInventoryOrder);
     }
     }
 
 
@@ -53,7 +68,40 @@ public class StoreTransferInventoryOrderServiceImpl implements StoreTransferInve
     }
     }
 
 
     @Override
     @Override
-    public int deleteBatch(Integer[]ids) {
+    public int deleteBatch(Integer[] ids) {
         return storeTransferInventoryOrderDao.deleteBatch(ids);
         return storeTransferInventoryOrderDao.deleteBatch(ids);
     }
     }
+
+    @Override
+    public void uploadExcel(List<StoreTransferInventoryOrderImportDto> dtoList) {
+        if (CollectionUtils.isEmpty(dtoList)) {
+            return;
+        }
+        StoreTransferInventoryOrderImportDto base = dtoList.get(0);
+        String merchSn = base.getMerchSn();
+        String merchName = base.getMerchName();
+        String inStoreSn = base.getInStoreSn();
+        String inStoreName = base.getInStoreName();
+        String outStoreSn = base.getOutStoreSn();
+        String outStoreName = base.getOutStoreName();
+        StoreTransferInventoryOrderEntity entity = new StoreTransferInventoryOrderEntity();
+        entity.setMerchSn(merchSn);
+        entity.setMerchName(merchName);
+        entity.setInStoreSn(inStoreSn);
+        entity.setInStoreName(inStoreName);
+        entity.setOutStoreSn(outStoreSn);
+        entity.setOutStoreName(outStoreName);
+        entity.setCreateSn("");
+        entity.setCreateTime(new Date());
+        entity.setStatus(0);
+        save(entity);
+        for (StoreTransferInventoryOrderImportDto dto : dtoList) {
+            StoreTransferInventoryOrderDetailEntity tmp = new StoreTransferInventoryOrderDetailEntity();
+            tmp.setOrderId(entity.getId());
+            tmp.setSku(dto.getSku());
+            tmp.setNum(dto.getNum());
+            tmp.setRemark(dto.getRemark());
+            storeTransferInventoryOrderDetailService.save(tmp);
+        }
+    }
 }
 }

+ 25 - 0
kmall-admin/src/main/resources/XmlTemplate/StoreTransferInventoryOrderImportDtoList.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<workbook>
+    <worksheet name="Sheet1">
+        <section startRow="0" endRow="1"/>
+        <loop startRow="1" endRow="1" items="storeTransferInventoryOrderImportDtoList" var="storeTransferInventoryOrderImportDto"
+              varType="com.kmall.admin.dto.StoreTransferInventoryOrderImportDto">
+            <section startRow="1" endRow="1">
+                <mapping row="1" col="0">storeTransferInventoryOrderImportDto.merchSn</mapping>
+                <mapping row="1" col="1">storeTransferInventoryOrderImportDto.merchName</mapping>
+                <mapping row="1" col="2">storeTransferInventoryOrderImportDto.inStoreSn</mapping>
+                <mapping row="1" col="3">storeTransferInventoryOrderImportDto.inStoreName</mapping>
+                <mapping row="1" col="4">storeTransferInventoryOrderImportDto.outStoreSn</mapping>
+                <mapping row="1" col="5">storeTransferInventoryOrderImportDto.outStoreName</mapping>
+                <mapping row="1" col="6">storeTransferInventoryOrderImportDto.sku</mapping>
+                <mapping row="1" col="7">storeTransferInventoryOrderImportDto.num</mapping>
+                <mapping row="1" col="8">storeTransferInventoryOrderImportDto.remark</mapping>
+            </section>
+            <loopbreakcondition>
+                <rowcheck offset="0">
+                    <cellcheck offset="0"></cellcheck>
+                </rowcheck>
+            </loopbreakcondition>
+        </loop>
+    </worksheet>
+</workbook>

+ 1 - 0
kmall-admin/src/main/resources/spring/spring-shiro.xml

@@ -83,6 +83,7 @@
                 /ktoeccs/sendToEccs=anon
                 /ktoeccs/sendToEccs=anon
                 /ws/server/**=anon
                 /ws/server/**=anon
                 /restored/toBeRestored/**=anon
                 /restored/toBeRestored/**=anon
+                /omstokmall/**=anon
                 /**=authc
                 /**=authc
             </value>
             </value>
         </property>
         </property>

+ 88 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/storetransferinventoryorder.html

@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>门店库存转移单表</title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+            <div class="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.name" @on-enter="query" placeholder="名称"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
+                <i-button type="info" @click="transfer"><i class="fa fa-plus"></i>&nbsp;库存转移</i-button>
+                <i-col style="display: inline-grid;">
+                    <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-format-error="uploadExcelFormatError"
+                            :format="['xls','xlsx']"
+                            :on-progress="uploadExcelProgress"
+                            action="../storetransferinventoryorder/upload">
+                        <i-button type="ghost" icon="ios-cloud-upload-outline">导入</i-button>
+                    </Upload>
+                </i-col>
+                <a href="../statics/file/store_transfer_inventory_order_import_yyyy_mm_dd_v1.0.0.xls">导入模板下载</a>&nbsp;&nbsp;&nbsp;&nbsp;
+            </div>
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="storeTransferInventoryOrder" :rules="ruleValidate" :label-width="80">
+            <Form-item label="商户编号" prop="merchSn">
+                <i-input v-model="storeTransferInventoryOrder.merchSn" placeholder="商户编号"/>
+            </Form-item>
+            <Form-item label="商户名称" prop="merchName">
+                <i-input v-model="storeTransferInventoryOrder.merchName" placeholder="商户名称"/>
+            </Form-item>
+            <Form-item label="转入门店编号" prop="inStoreSn">
+                <i-input v-model="storeTransferInventoryOrder.inStoreSn" placeholder="转入门店编号"/>
+            </Form-item>
+            <Form-item label="转入门店名称" prop="inStoreName">
+                <i-input v-model="storeTransferInventoryOrder.inStoreName" placeholder="转入门店名称"/>
+            </Form-item>
+            <Form-item label="转出门店编号" prop="outStoreSn">
+                <i-input v-model="storeTransferInventoryOrder.outStoreSn" placeholder="转出门店编号"/>
+            </Form-item>
+            <Form-item label="转出门店名称" prop="outStoreName">
+                <i-input v-model="storeTransferInventoryOrder.outStoreName" placeholder="转出门店名称"/>
+            </Form-item>
+            <Form-item label="状态 0:未转移 1:转移成功 2:转移失败" prop="status">
+                <i-input v-model="storeTransferInventoryOrder.status" placeholder="状态 0:未转移 1:转移成功 2:转移失败"/>
+            </Form-item>
+            <Form-item label="备注" prop="remark">
+                <i-input v-model="storeTransferInventoryOrder.remark" placeholder="备注"/>
+            </Form-item>
+            <Form-item label="创建时间" prop="createTime">
+                <i-input v-model="storeTransferInventoryOrder.createTime" placeholder="创建时间"/>
+            </Form-item>
+            <Form-item label="创建人" prop="createSn">
+                <i-input v-model="storeTransferInventoryOrder.createSn" placeholder="创建人"/>
+            </Form-item>
+            <Form-item label="修改时间" prop="modifyTime">
+                <i-input v-model="storeTransferInventoryOrder.modifyTime" placeholder="修改时间"/>
+            </Form-item>
+            <Form-item label="修改人" prop="modifySn">
+                <i-input v-model="storeTransferInventoryOrder.modifySn" placeholder="修改人"/>
+            </Form-item>
+            <Form-item>
+                <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
+                <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
+                <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+            </Form-item>
+        </i-form>
+	</Card>
+</div>
+
+<script src="${rc.contextPath}/js/shop/storetransferinventoryorder.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 63 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/storetransferinventoryorderdetail.html

@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>门店库存转移单详情表</title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+            <div class="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.name" @on-enter="query" placeholder="名称"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
+            </div>
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="storeTransferInventoryOrderDetail" :rules="ruleValidate" :label-width="80">
+            <Form-item label="门店转移单id" prop="orderId">
+                <i-input v-model="storeTransferInventoryOrderDetail.orderId" placeholder="门店转移单id"/>
+            </Form-item>
+            <Form-item label="转移商品sku" prop="sku">
+                <i-input v-model="storeTransferInventoryOrderDetail.sku" placeholder="转移商品sku"/>
+            </Form-item>
+            <Form-item label="转移商品数量" prop="num">
+                <i-input v-model="storeTransferInventoryOrderDetail.num" placeholder="转移商品数量"/>
+            </Form-item>
+            <Form-item label="备注" prop="remark">
+                <i-input v-model="storeTransferInventoryOrderDetail.remark" placeholder="备注"/>
+            </Form-item>
+            <Form-item label="创建人" prop="createSn">
+                <i-input v-model="storeTransferInventoryOrderDetail.createSn" placeholder="创建人"/>
+            </Form-item>
+            <Form-item label="修改时间" prop="modifyTime">
+                <i-input v-model="storeTransferInventoryOrderDetail.modifyTime" placeholder="修改时间"/>
+            </Form-item>
+            <Form-item label="修改人" prop="modifySn">
+                <i-input v-model="storeTransferInventoryOrderDetail.modifySn" placeholder="修改人"/>
+            </Form-item>
+            <Form-item>
+                <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
+                <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
+                <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+            </Form-item>
+        </i-form>
+	</Card>
+</div>
+
+<script src="${rc.contextPath}/js/shop/storetransferinventoryorderdetail.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 209 - 0
kmall-admin/src/main/webapp/js/shop/storetransferinventoryorder.js

@@ -0,0 +1,209 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../storetransferinventoryorder/list',
+        datatype: "json",
+        colModel: [
+			{label: 'id', name: 'id', index: 'id', key: true, hidden: true},
+			{label: '商户编号', name: 'merchSn', index: 'merch_sn', width: 80},
+			{label: '商户名称', name: 'merchName', index: 'merch_name', width: 80},
+			{label: '转入门店编号', name: 'inStoreSn', index: 'in_store_sn', width: 80},
+			{label: '转入门店名称', name: 'inStoreName', index: 'in_store_name', width: 80},
+			{label: '转出门店编号', name: 'outStoreSn', index: 'out_store_sn', width: 80},
+			{label: '转出门店名称', name: 'outStoreName', index: 'out_store_name', width: 80},
+			{label: '状态', name: 'status', index: 'status', width: 80},
+			{label: '备注', name: 'remark', index: 'remark', width: 80},
+			{label: '创建时间', name: 'createTime', index: 'create_time', width: 80},
+			{label: '创建人', name: 'createSn', index: 'create_sn', width: 80},
+			{label: '修改时间', name: 'modifyTime', index: 'modify_time', width: 80},
+			{label: '修改人', name: 'modifySn', index: 'modify_sn', width: 80}],
+		viewrecords: true,
+        height: 550,
+        rowNum: 10,
+        rowList: [10, 30, 50],
+        rownumbers: true,
+        rownumWidth: 25,
+        autowidth: true,
+        multiselect: true,
+        pager: "#jqGridPager",
+        jsonReader: {
+            root: "page.list",
+            page: "page.currPage",
+            total: "page.totalPage",
+            records: "page.totalCount"
+        },
+        prmNames: {
+            page: "page",
+            rows: "limit",
+            order: "order"
+        },
+        gridComplete: function () {
+            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
+        }
+    });
+});
+let exportMsg;
+
+let vm = new Vue({
+	el: '#rrapp',
+	data: {
+        showList: true,
+        title: null,
+		storeTransferInventoryOrder: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.storeTransferInventoryOrder = {};
+		},
+		uploadExcelSuccess: function (data) {
+			// console.log(data);
+			if(data.code==0){
+				alert('导入成功', function (index) {
+					$("#jqGrid").trigger("reloadGrid");
+				});
+			}else{
+				alert(data.msg);
+			}
+			setTimeout(exportMsg, 100);
+		},
+		uploadExcelError: function () {
+			alert('上传出现异常,请重试!');
+			setTimeout(exportMsg, 100);
+		},
+		uploadExcelProgress:function(event, file, fileList){
+			console.log("上传中")
+			console.log(event)
+			console.log(file)
+			console.log(fileList)
+			console.log("上传中")
+			exportMsg = this.$Message.loading({
+				content: 'Loading...',
+				duration: 0
+			});
+			// setTimeout(msg, 3000);
+		},
+		uploadExcelFormatError: function (file) {
+			this.$Notice.warning({
+				title: '文件格式不正确',
+				desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
+			});
+			setTimeout(exportMsg, 100);
+		},
+		update: function (event) {
+            let id = getSelectedRow();
+			if (id == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(id)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.storeTransferInventoryOrder.id == null ? "../storetransferinventoryorder/save" : "../storetransferinventoryorder/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.storeTransferInventoryOrder),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let ids = getSelectedRows();
+			if (ids == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../storetransferinventoryorder/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(ids),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		transfer: function (event) {
+			let id = getSelectedRow();
+			if (id == null){
+				return;
+			}
+
+			confirm('确定要对选中的记录进行转移吗?', function () {
+				$.ajax({
+					type: "POST",
+					url: "../ktooms/sendTransfer/" + id,
+					contentType: "application/json",
+					data: "{}",
+					success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(id){
+			$.get("../storetransferinventoryorder/info/"+id, function (r) {
+                vm.storeTransferInventoryOrder = r.storeTransferInventoryOrder;
+            });
+		},
+        reloadSearch: function() {
+            vm.q = {
+                name: ''
+            }
+            vm.reload();
+		},
+		reload: function (event) {
+			vm.showList = true;
+            let page = $("#jqGrid").jqGrid('getGridParam', 'page');
+			$("#jqGrid").jqGrid('setGridParam', {
+                postData: {'name': vm.q.name},
+                page: page
+            }).trigger("reloadGrid");
+            vm.handleReset('formValidate');
+		},
+        handleSubmit: function (name) {
+            handleSubmitValidate(this, name, function () {
+                vm.saveOrUpdate()
+            });
+        },
+        handleReset: function (name) {
+            handleResetForm(this, name);
+        }
+	}
+});

+ 145 - 0
kmall-admin/src/main/webapp/js/shop/storetransferinventoryorderdetail.js

@@ -0,0 +1,145 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../storetransferinventoryorderdetail/list',
+        datatype: "json",
+        colModel: [
+			{label: 'id', name: 'id', index: 'id', key: true, hidden: true},
+			{label: '门店转移单id', name: 'orderId', index: 'order_id', width: 80},
+			{label: '转移商品sku', name: 'sku', index: 'sku', width: 80},
+			{label: '转移商品数量', name: 'num', index: 'num', width: 80},
+			{label: '备注', name: 'remark', index: 'remark', width: 80},
+			{label: '创建人', name: 'createSn', index: 'create_sn', width: 80},
+			{label: '修改时间', name: 'modifyTime', index: 'modify_time', width: 80},
+			{label: '修改人', name: 'modifySn', index: 'modify_sn', width: 80}],
+		viewrecords: true,
+        height: 550,
+        rowNum: 10,
+        rowList: [10, 30, 50],
+        rownumbers: true,
+        rownumWidth: 25,
+        autowidth: true,
+        multiselect: true,
+        pager: "#jqGridPager",
+        jsonReader: {
+            root: "page.list",
+            page: "page.currPage",
+            total: "page.totalPage",
+            records: "page.totalCount"
+        },
+        prmNames: {
+            page: "page",
+            rows: "limit",
+            order: "order"
+        },
+        gridComplete: function () {
+            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
+        }
+    });
+});
+
+let vm = new Vue({
+	el: '#rrapp',
+	data: {
+        showList: true,
+        title: null,
+		storeTransferInventoryOrderDetail: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.storeTransferInventoryOrderDetail = {};
+		},
+		update: function (event) {
+            let id = getSelectedRow();
+			if (id == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(id)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.storeTransferInventoryOrderDetail.id == null ? "../storetransferinventoryorderdetail/save" : "../storetransferinventoryorderdetail/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.storeTransferInventoryOrderDetail),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let ids = getSelectedRows();
+			if (ids == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../storetransferinventoryorderdetail/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(ids),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(id){
+			$.get("../storetransferinventoryorderdetail/info/"+id, function (r) {
+                vm.storeTransferInventoryOrderDetail = r.storeTransferInventoryOrderDetail;
+            });
+		},
+        reloadSearch: function() {
+            vm.q = {
+                name: ''
+            }
+            vm.reload();
+		},
+		reload: function (event) {
+			vm.showList = true;
+            let page = $("#jqGrid").jqGrid('getGridParam', 'page');
+			$("#jqGrid").jqGrid('setGridParam', {
+                postData: {'name': vm.q.name},
+                page: page
+            }).trigger("reloadGrid");
+            vm.handleReset('formValidate');
+		},
+        handleSubmit: function (name) {
+            handleSubmitValidate(this, name, function () {
+                vm.saveOrUpdate()
+            });
+        },
+        handleReset: function (name) {
+            handleResetForm(this, name);
+        }
+	}
+});

BIN
kmall-admin/src/main/webapp/statics/file/store_transfer_inventory_order_import_yyyy_mm_dd_v1.0.0.xls


+ 2 - 0
kmall-common/src/main/java/com/kmall/common/constant/JxlsXmlTemplateName.java

@@ -56,4 +56,6 @@ public class JxlsXmlTemplateName {
     public static final String BRAND_DTO_LIST = "/XmlTemplate/BrandDtoList.xml";
     public static final String BRAND_DTO_LIST = "/XmlTemplate/BrandDtoList.xml";
     // 产品备案导入
     // 产品备案导入
     public static final String GOODS_PRODUCT_DTO_LIST = "/XmlTemplate/GoodsProductDtoList.xml";
     public static final String GOODS_PRODUCT_DTO_LIST = "/XmlTemplate/GoodsProductDtoList.xml";
+    // 门店转移单导入
+    public static final String STORE_TRANSFER_INVENTORY_ORDER_IMPORT_DTO_LIST = "/XmlTemplate/StoreTransferInventoryOrderImportDtoList.xml";
 }
 }