1
0
Pārlūkot izejas kodu

增加商品供货商导入模块

zhh 3 gadi atpakaļ
vecāks
revīzija
0a9f2cf7dc

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

@@ -1,18 +1,28 @@
 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.entity.SupplierEntity;
 import com.kmall.admin.entity.SupplierEntity;
 import com.kmall.admin.service.SupplierService;
 import com.kmall.admin.service.SupplierService;
 import com.kmall.admin.utils.ParamUtils;
 import com.kmall.admin.utils.ParamUtils;
+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.RRException;
+import com.kmall.common.utils.excel.ExcelUtil;
+import com.kmall.manager.manager.express.sf.ServiceException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.jxls.reader.XLSDataReadException;
 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;
 
 
 /**
 /**
  * Controller
  * Controller
@@ -21,12 +31,18 @@ import org.springframework.web.bind.annotation.*;
  * @email admin@qhdswl.com
  * @email admin@qhdswl.com
  * @date 2018-11-26 15:14:24
  * @date 2018-11-26 15:14:24
  */
  */
-@Controller
+@RestController
 @RequestMapping("supplier")
 @RequestMapping("supplier")
 public class SupplierController {
 public class SupplierController {
+
+    private Log logger = LogFactory.getLog(SupplierController.class);
+
     @Autowired
     @Autowired
     private SupplierService supplierService;
     private SupplierService supplierService;
 
 
+    @Autowired
+    private ExcelUtil excelUtil;
+
     /**
     /**
      * 查看列表
      * 查看列表
      */
      */
@@ -105,4 +121,56 @@ public class SupplierController {
 
 
         return R.ok().put("list", list);
         return R.ok().put("list", list);
     }
     }
+
+    /**
+     * 导入 excel 数据
+     * @author zhuhh
+     * @param file
+     * @return
+     */
+    @RequestMapping("/upload")
+    public R upload(@RequestParam("file") MultipartFile file) {
+        List<SupplierEntity> supplierEntityList = new ArrayList<>();
+        // 读取 excel 数据
+        try {
+            SupplierEntity supplierEntity = new SupplierEntity();
+            Map<String, Object> beans = new HashMap<>();
+            beans.put("SupplierEntity", supplierEntity);
+            beans.put("SupplierEntityList", supplierEntityList);
+            if (file.isEmpty()) {
+                return R.error("文件不能为空!");
+            }
+            excelUtil.readExcel(JxlsXmlTemplateName.SUPPLIER_DTO_List, beans, file.getInputStream());
+        } catch (XLSDataReadException e) {
+            e.printStackTrace();
+            logger.error("商品供货商读取excel失败:" + e.getMessage());
+            return R.error("导入失败!请在单元格输入正确的数据格式");
+        } catch (Exception e) {
+            e.printStackTrace();
+            logger.error("商品供货商读取excel失败:" + e.getMessage());
+            return R.error("读取excel数据失败!");
+        }
+        // 新增数据
+        try {
+            if (supplierEntityList == null || supplierEntityList.size() == 0) {
+                return R.error("读取excel失败!单元格内容不能为空!");
+            }
+
+            supplierService.uploadExcel(supplierEntityList);
+        } catch (ServiceException e) {
+            e.printStackTrace();
+            logger.error("商品供货商数据格式校验失败:" + e.getMessage());
+            return R.error(e.getMessage());
+        } catch (RRException e) {
+            e.printStackTrace();
+            logger.error("商品供货商添加数据失败:" + e.getMsg());
+            return R.error(e.getMsg());
+        } catch (Exception e) {
+            e.printStackTrace();
+            logger.error("商品供货商添加数据失败:" + e.getMessage());
+            return R.error("数据保存数据库失败!");
+        }
+        return R.ok("导入成功!");
+    }
+
 }
 }

+ 17 - 1
kmall-admin/src/main/java/com/kmall/admin/entity/SupplierEntity.java

@@ -7,7 +7,7 @@ import java.util.Date;
  * 实体
  * 实体
  * 表名 mall_supplier
  * 表名 mall_supplier
  *
  *
- * @author huangyq
+ * @author huangyq, zhuhh
  * @email admin@qhdswl.com
  * @email admin@qhdswl.com
  * @date 2018-11-26 15:14:24
  * @date 2018-11-26 15:14:24
  */
  */
@@ -45,6 +45,8 @@ public class SupplierEntity implements Serializable {
 
 
     private String thirdPartyMerchCode;
     private String thirdPartyMerchCode;
 
 
+    private Date createTime;
+
     public String getThirdPartyMerchCode() {
     public String getThirdPartyMerchCode() {
         return thirdPartyMerchCode;
         return thirdPartyMerchCode;
     }
     }
@@ -139,4 +141,18 @@ public class SupplierEntity implements Serializable {
     public String getIsShow() {
     public String getIsShow() {
         return isShow;
         return isShow;
     }
     }
+
+    /**
+     * 获取:创建时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    /**
+     * 设置:创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
 }
 }

+ 8 - 0
kmall-admin/src/main/java/com/kmall/admin/service/SupplierService.java

@@ -69,4 +69,12 @@ public interface SupplierService {
      * @return 删除条数
      * @return 删除条数
      */
      */
     int deleteBatch(Integer[] ids);
     int deleteBatch(Integer[] ids);
+
+    /**
+     * 导入 excel 数据
+     * @author zhuhh
+     * @param supplierEntityList
+     */
+    void uploadExcel(List<SupplierEntity> supplierEntityList);
+
 }
 }

+ 67 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/SupplierServiceImpl.java

@@ -5,11 +5,15 @@ import com.kmall.admin.dao.SupplierDao;
 import com.kmall.admin.entity.MerchEntity;
 import com.kmall.admin.entity.MerchEntity;
 import com.kmall.admin.entity.SupplierEntity;
 import com.kmall.admin.entity.SupplierEntity;
 import com.kmall.admin.service.SupplierService;
 import com.kmall.admin.service.SupplierService;
+import com.kmall.admin.utils.ValidateUtils;
 import com.kmall.common.utils.RRException;
 import com.kmall.common.utils.RRException;
+import com.kmall.manager.manager.express.sf.ServiceException;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 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 org.springframework.transaction.annotation.Transactional;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -86,4 +90,67 @@ public class SupplierServiceImpl implements SupplierService {
     public int deleteBatch(Integer[]ids) {
     public int deleteBatch(Integer[]ids) {
         return supplierDao.deleteBatch(ids);
         return supplierDao.deleteBatch(ids);
     }
     }
+
+    @Override
+    @Transactional
+    public void uploadExcel(List<SupplierEntity> supplierEntityList) {
+        for (SupplierEntity supplierEntity : supplierEntityList) {
+            // id
+            Integer id = supplierEntity.getId();
+            // 一级商户编号
+            String levelMerchSn = supplierEntity.getLevelMerchSn();
+            // 一级商户标识
+            String levelMerchFlag = supplierEntity.getLevelMerchFlag();
+            // 所属第三方商户代码
+            String thirdPartyMerchCode = supplierEntity.getThirdPartyMerchCode();
+            // 二级供货商名称
+            String childSupplierName = supplierEntity.getChildSupplierName();
+            // 二级供货商标识
+            String childSupplierFlag = supplierEntity.getChildSupplierFlag();
+            // 排序
+            Integer sortOrder = supplierEntity.getSortOrder();
+            // 是否禁用
+            String isShow = supplierEntity.getIsShow();
+
+            if (!ValidateUtils.validateSpecial(levelMerchSn)) {
+                throw new ServiceException("请输入正确的一级商户编号,有问题的一级商户编号:" + levelMerchSn);
+            }
+            if (!ValidateUtils.validateFirstIsUpper(levelMerchFlag)) {
+                throw new ServiceException("请输入正确的一级商户标识,有问题的一级商户标识:" + levelMerchFlag);
+            }
+            if (!ValidateUtils.validateSpecial(thirdPartyMerchCode)) {
+                throw new ServiceException("请输入正确的所属第三方商户代码,有问题的所属第三方商户代码:" + thirdPartyMerchCode);
+            }
+            if (!ValidateUtils.validateSpecialAllowChinese(childSupplierName)) {
+                throw new ServiceException("请输入正确的二级供货商名称,有问题的二级供货商名称:" + childSupplierName);
+            }
+            if (!ValidateUtils.validateFirstIsUpper(childSupplierFlag)) {
+                throw new ServiceException("请输入正确的二级供货商标识,有问题的二级供货商标识:" + childSupplierFlag);
+            }
+            if (sortOrder == null || sortOrder < 0) {
+                throw new ServiceException("请输入正确的排序,有问题的排序:" + sortOrder);
+            }
+            if (!("0").equals(isShow) && !("1").equals(isShow)) {
+                throw new ServiceException("请填写正确的是否禁用,有问题的是否禁用:" + isShow);
+            }
+
+            if (id == 0) {
+                // 新增
+                supplierEntity.setCreateTime(new Date());
+
+                this.save(supplierEntity);
+            } else if (id > 0) {
+                // 修改
+                SupplierEntity supplierTemp =  this.queryObject(id);
+                if (supplierTemp == null) {
+                    throw new ServiceException("不存在 id=" + id + " 的商品供货商");
+                }
+
+                this.update(supplierEntity);
+            } else if (id < 0) {
+                throw new ServiceException("供货商id不能为负数");
+            }
+        }
+    }
+
 }
 }

+ 143 - 0
kmall-admin/src/main/java/com/kmall/admin/utils/ValidateUtils.java

@@ -0,0 +1,143 @@
+package com.kmall.admin.utils;
+
+
+import org.apache.commons.lang.StringUtils;
+
+import java.util.regex.Pattern;
+
+/**
+ * 验证参数工具类
+ * @author zhuhh
+ * @date 2021年11月20日 09:04:02
+ */
+public class ValidateUtils {
+
+    /**
+     * 验证特殊符号,只允许包含字符[a-zA-Z0-9_]
+     * @return
+     */
+    public static boolean validateSpecial(String str) {
+        if (StringUtils.isNotBlank(str)) {
+            String regex = "^[_a-zA-Z0-9]+$";
+            return Pattern.matches(regex, str);
+        }
+        return false;
+    }
+
+    /**
+     * 验证特殊符号,只允许包含字符[a-zA-Z0-9_]和中文
+     * @return
+     */
+    public static boolean validateSpecialAllowChinese(String str) {
+        if (StringUtils.isNotBlank(str)) {
+            String regex = "^[\u4e00-\u9fa5_a-zA-Z0-9]+$";
+            return Pattern.matches(regex, str);
+        }
+        return false;
+    }
+
+    /**
+     * 验证是否首字母大写
+     * @param str
+     * @return
+     */
+    public static boolean validateFirstIsUpper(String str) {
+        if (validateSpecial(str)) {
+            String regex = "^[A-Z]+.*$";
+            return Pattern.matches(regex, str);
+        }
+
+        return false;
+    }
+
+    /**
+     * 验证是否包含空格
+     * @param str
+     * @return
+     */
+    public static boolean validateContainWhitespace(String str) {
+        for(int i = 0; i < str.length(); i++) {
+            if (Character.isWhitespace(str.charAt(i))) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * 验证数字是否为0或1
+     * @param integer
+     * @return
+     */
+    public static boolean validateIntegerZeroAndOne(Integer integer) {
+        if (integer == 0 || integer == 1) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 验证数字是否为整数
+     */
+    public static boolean validateSpace(Integer integer) {
+        String str = String.valueOf(integer);
+        if (StringUtils.isNotBlank(str)) {
+            String regex = "^-?[1-9]\\d*$";
+            return Pattern.matches(regex, str);
+        }
+        return false;
+    }
+
+    /**
+     * 验证字符串是否为整数
+     * @return
+     */
+    public static boolean validateStrIsInteger(String str) {
+        if (StringUtils.isNotBlank(str)) {
+            for(int i = 0; i < str.length(); i++) {
+                if (!Character.isDigit(str.charAt(i))) {
+                    return false;
+                }
+            }
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 验证字符串,只允许包含中文字符
+     * @return
+     */
+    public static boolean validateChinese(String str) {
+        if (StringUtils.isNotBlank(str)) {
+            String regex = "^[\u4e00-\u9fa5]+$";
+            return Pattern.matches(regex, str);
+        }
+        return false;
+    }
+
+    /**
+     * 验证常规英文名称,如:jack、jack ma
+     * @return
+     */
+    public static boolean validateEName(String str) {
+        if (StringUtils.isNotBlank(str)) {
+            String regex = "^[A-Za-z]+(\\s[A-Za-z]+)*$";
+            return Pattern.matches(regex, str);
+        }
+        return false;
+    }
+
+    /**
+     * 验证是否为单个英文字母
+     * @return
+     */
+    public static boolean validateEnglishChar(String str) {
+        if (StringUtils.isNotBlank(str)) {
+            String regex = "^[A-Za-z]{1}$";
+            return Pattern.matches(regex, str);
+        }
+        return false;
+    }
+
+}

+ 24 - 0
kmall-admin/src/main/resources/XmlTemplate/SupplierDtoList.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<workbook>
+    <worksheet name="Sheet1">
+        <section startRow="0" endRow="1"/>
+        <loop startRow="1" endRow="1" items="SupplierEntityList" var="SupplierEntity"
+              varType="com.kmall.admin.entity.SupplierEntity">
+            <section startRow="1" endRow="1">
+                <mapping row="1" col="0">SupplierEntity.id</mapping>
+                <mapping row="1" col="1">SupplierEntity.levelMerchSn</mapping>
+                <mapping row="1" col="2">SupplierEntity.levelMerchFlag</mapping>
+                <mapping row="1" col="3">SupplierEntity.thirdPartyMerchCode</mapping>
+                <mapping row="1" col="4">SupplierEntity.childSupplierName</mapping>
+                <mapping row="1" col="5">SupplierEntity.childSupplierFlag</mapping>
+                <mapping row="1" col="6">SupplierEntity.sortOrder</mapping>
+                <mapping row="1" col="7">SupplierEntity.isShow</mapping>
+            </section>
+            <loopbreakcondition>
+                <rowcheck offset="0">
+                    <cellcheck offset="0"></cellcheck>
+                </rowcheck>
+            </loopbreakcondition>
+        </loop>
+    </worksheet>
+</workbook>

+ 12 - 7
kmall-admin/src/main/resources/mybatis/mapper/SupplierDao.xml

@@ -12,6 +12,7 @@
         <result property="sortOrder" column="sort_order"/>
         <result property="sortOrder" column="sort_order"/>
         <result property="isShow" column="is_show"/>
         <result property="isShow" column="is_show"/>
 		<result property="thirdPartyMerchCode" column="third_party_merch_code"/>
 		<result property="thirdPartyMerchCode" column="third_party_merch_code"/>
+		<result property="createTime" column="create_time"/>
     </resultMap>
     </resultMap>
 
 
 	<select id="queryObject" resultType="com.kmall.admin.entity.SupplierEntity">
 	<select id="queryObject" resultType="com.kmall.admin.entity.SupplierEntity">
@@ -23,7 +24,8 @@
 			`child_supplier_flag`,
 			`child_supplier_flag`,
 			`sort_order`,
 			`sort_order`,
 			`is_show`,
 			`is_show`,
-			third_party_merch_code
+			third_party_merch_code,
+		    `create_time`
 		from mall_supplier
 		from mall_supplier
 		where id = #{id}
 		where id = #{id}
 	</select>
 	</select>
@@ -37,7 +39,8 @@
 		`child_supplier_flag`,
 		`child_supplier_flag`,
 		`sort_order`,
 		`sort_order`,
 		`is_show`,
 		`is_show`,
-		third_party_merch_code
+		third_party_merch_code,
+		`create_time`
 		from mall_supplier
 		from mall_supplier
 		where child_supplier_name = #{supplierName}
 		where child_supplier_name = #{supplierName}
 		<if test="merchSn != null and merchSn.trim() != ''">
 		<if test="merchSn != null and merchSn.trim() != ''">
@@ -56,7 +59,8 @@
 		s.`child_supplier_name`,
 		s.`child_supplier_name`,
 		s.`child_supplier_flag`,
 		s.`child_supplier_flag`,
 		s.`sort_order`,
 		s.`sort_order`,
-		s.`is_show`,s.third_party_merch_code
+		s.`is_show`,s.third_party_merch_code,
+		s.`create_time`
 		from mall_supplier s left join third_merchant_biz t on s.third_party_merch_code = t.third_party_merch_code
 		from mall_supplier s left join third_merchant_biz t on s.third_party_merch_code = t.third_party_merch_code
 		WHERE 1=1
 		WHERE 1=1
 		<if test="name != null and name.trim() != ''">
 		<if test="name != null and name.trim() != ''">
@@ -108,14 +112,14 @@
 			`child_supplier_name`,
 			`child_supplier_name`,
 			`child_supplier_flag`,
 			`child_supplier_flag`,
 			`sort_order`,
 			`sort_order`,
-			`is_show`,third_party_merch_code)
+			`is_show`,third_party_merch_code, `create_time`)
 		values(
 		values(
 			#{levelMerchSn},
 			#{levelMerchSn},
 			#{levelMerchFlag},
 			#{levelMerchFlag},
 			#{childSupplierName},
 			#{childSupplierName},
 			#{childSupplierFlag},
 			#{childSupplierFlag},
 			#{sortOrder},
 			#{sortOrder},
-			#{isShow},#{thirdPartyMerchCode})
+			#{isShow},#{thirdPartyMerchCode}, #{createTime})
 	</insert>
 	</insert>
 
 
 	<update id="update" parameterType="com.kmall.admin.entity.SupplierEntity">
 	<update id="update" parameterType="com.kmall.admin.entity.SupplierEntity">
@@ -150,7 +154,7 @@
 		`child_supplier_name`,
 		`child_supplier_name`,
 		`child_supplier_flag`,
 		`child_supplier_flag`,
 		`sort_order`,
 		`sort_order`,
-		`is_show`,third_party_merch_code)
+		`is_show`,third_party_merch_code, `create_time`)
 		values
 		values
 		<foreach collection="list" index="index" item="item" separator=",">
 		<foreach collection="list" index="index" item="item" separator=",">
 		(
 		(
@@ -160,7 +164,8 @@
 		#{item.childSupplierFlag},
 		#{item.childSupplierFlag},
 		#{item.sortOrder},
 		#{item.sortOrder},
 		#{item.isShow},
 		#{item.isShow},
-		#{item.thirdPartyMerchCode}
+		#{item.thirdPartyMerchCode},
+		#{item.createTime}
 		)
 		)
 		</foreach>
 		</foreach>
 	</insert>
 	</insert>

+ 9 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/supplier.html

@@ -16,6 +16,15 @@
                 <i-button @click="reloadSearch">重置</i-button>
                 <i-button @click="reloadSearch">重置</i-button>
             </div>
             </div>
             <div class="buttons-group">
             <div class="buttons-group">
+                <a @click="importTemplateSupplier">商品供货商导入模板下载</a>&nbsp;&nbsp;&nbsp;&nbsp;
+                <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="../supplier/upload">
+                        <i-button type="ghost" icon="ios-cloud-upload-outline">商品供货商导入</i-button>
+                    </Upload>
+                </i-col>
                 #if($shiro.hasPermission("supplier:save"))
                 #if($shiro.hasPermission("supplier:save"))
                 <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
                 <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
                 #end
                 #end

+ 45 - 2
kmall-admin/src/main/webapp/js/shop/supplier.js

@@ -3,7 +3,7 @@ $(function () {
         url: '../supplier/list',
         url: '../supplier/list',
         datatype: "json",
         datatype: "json",
         colModel: [
         colModel: [
-			{label: 'id', name: 'id', index: 'id', key: true, hidden: true},
+			{label: 'id', name: 'id', index: 'id', key: true, align: 'center'},
 			{label: '一级商户编号', name: 'levelMerchSn', index: 'level_merch_sn', width: 200, align: 'center'},
 			{label: '一级商户编号', name: 'levelMerchSn', index: 'level_merch_sn', width: 200, align: 'center'},
 			{label: '一级商户标识', name: 'levelMerchFlag', index: 'level_merch_flag', width: 120, align: 'center'},
 			{label: '一级商户标识', name: 'levelMerchFlag', index: 'level_merch_flag', width: 120, align: 'center'},
             {label: '所属第三方商户', name: 'thirdPartyMerchCode', index: 'thirdPartyMerchCode', width: 120, align: 'center'},
             {label: '所属第三方商户', name: 'thirdPartyMerchCode', index: 'thirdPartyMerchCode', width: 120, align: 'center'},
@@ -16,7 +16,7 @@ $(function () {
                     '<span class="label label-success">是</span>';
                     '<span class="label label-success">是</span>';
             }}],
             }}],
 		viewrecords: true,
 		viewrecords: true,
-        height: 550,
+        height: '100%',
         rowNum: 10,
         rowNum: 10,
         rowList: [10, 30, 50],
         rowList: [10, 30, 50],
         rownumbers: true,
         rownumbers: true,
@@ -174,6 +174,49 @@ let vm = new Vue({
         },
         },
         handleReset: function (name) {
         handleReset: function (name) {
             handleResetForm(this, name);
             handleResetForm(this, name);
+        },
+        // 下载导入的模板方法
+        importTemplateSupplier: function (){
+            const msg = this.$Message.loading({
+                content: 'Loading...',
+                duration: 0
+            });
+            window.location.href='../statics/file/supplier_export_yyyy_mm_dd_v1.0.0.xls';
+            setTimeout(msg, 1000);
+        },
+        // 上传方法开始 ----
+        uploadExcelSuccess: function (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
+            });
+        },
+        uploadExcelFormatError: function (file) {
+            this.$Notice.warning({
+                title: '文件格式不正确',
+                desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
+            });
+            setTimeout(exportMsg, 100);
         }
         }
+        // 上传方法结束----
 	}
 	}
 });
 });

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


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

@@ -68,4 +68,11 @@ public class JxlsXmlTemplateName {
     //积分规则导入
     //积分规则导入
     public static final String MALL_RULES_LIST = "/XmlTemplate/mallRulesList.xml";
     public static final String MALL_RULES_LIST = "/XmlTemplate/mallRulesList.xml";
 
 
+    // 商品供货商导入
+    public static final String SUPPLIER_DTO_List = "/XmlTemplate/SupplierDtoList.xml";
+
+    // 国别代码导入
+    public static final String SYS_CUS_NATION_CODE_DTO_List = "/XmlTemplate/SysCusNationCodeDtoList.xml";
+
+
 }
 }

+ 5 - 0
sql/mall_supplier.sql

@@ -0,0 +1,5 @@
+
+-- ----------------------------
+-- add table column
+-- ----------------------------
+alter table mall_supplier add create_time datetime not null comment '创建时间';