Quellcode durchsuchen

Merge branch 'master_huangjunjie' of http://121.40.253.172:3000/pengyue/jsh_erp

# Conflicts:
#	src/main/java/com/jsh/erp/service/impl/MaterialServiceImpl.java
廖泽勇 vor 1 Monat
Ursprung
Commit
c210c0b440
1 geänderte Dateien mit 399 neuen und 0 gelöschten Zeilen
  1. 399 0
      src/main/java/com/jsh/erp/service/impl/MaterialServiceImpl.java

+ 399 - 0
src/main/java/com/jsh/erp/service/impl/MaterialServiceImpl.java

@@ -10,6 +10,7 @@ import com.jsh.erp.constants.ExceptionConstants;
 import com.jsh.erp.datasource.entities.*;
 import com.jsh.erp.datasource.mappers.*;
 import com.jsh.erp.datasource.vo.MaterialVoSearch;
+import com.jsh.erp.datasource.vo.MaterialWarnListVo;
 import com.jsh.erp.exception.BusinessRunTimeException;
 import com.jsh.erp.exception.JshException;
 import com.jsh.erp.service.*;
@@ -30,6 +31,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 @Service
@@ -72,6 +74,8 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
     private MaterialExtendService materialExtendService;
     @Resource
     private SystemConfigService systemConfigService;
+    @Resource
+    private DepotHeadService depotHeadService;
 
     @Value(value="${file.uploadType}")
     private Long fileUploadType;
@@ -1626,4 +1630,399 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
         return list;
     }
 
+    /**
+     * 获取商品提醒
+     * @return
+     */
+    @Override
+    public MaterialWarnListVo getMaterialWarn() {
+        MaterialWarnListVo vo = new MaterialWarnListVo();
+        List<String> noMovingPinReminders = new ArrayList<>();
+        List<String> expirationReminders = new ArrayList<>();
+        List<String> inventoryReminders = new ArrayList<>();
+        //获取商品信息
+        MaterialExample materialExample = new MaterialExample();
+        materialExample.createCriteria().andDeleteFlagEqualTo("0");
+        List<Material> materials = materialMapper.selectByExample(materialExample);
+        //获取商品子表信息
+        MaterialExtendExample materialExtendExample = new MaterialExtendExample();
+        materialExtendExample.createCriteria().andDeleteFlagEqualTo("0");
+        List<MaterialExtend> extendList = materialExtendMapper.selectByExample(materialExtendExample);
+        //无动销提醒
+        materials.stream().filter( v -> v.getMovingPinReminderCycle() != null)
+                        .forEach(v -> {
+                            //获取商品最后一条动销订单数据
+                            DepotHead depotHead = depotHeadService.getDepotLastByMaterialId(v.getId());
+                            if (depotHead != null){
+                                if (DateUtils.differentDaysByMillisecond(depotHead.getOperTime(),new Date()) > Integer.valueOf(v.getMovingPinReminderCycle())){
+                                    //当前时间对比订单时间是否大于动销提醒周期
+                                    String str = "商品名称:" + v.getName() + ",在[无动销提醒周期]内,无动销,请及时处理";
+                                    noMovingPinReminders.add(str);
+                                }
+                            }else{
+                                //获取商品批次信息
+                                MaterialExtend m = materialExtendMapper.selectByMId(v.getId()).get(0);
+                                if (DateUtils.differentDaysByMillisecond(m.getCreateTime(),new Date()) > Integer.valueOf(v.getMovingPinReminderCycle())){
+                                    String str = "商品名称:" + v.getName() + ",在[无动销提醒周期]内,无动销,请及时处理";
+                                    noMovingPinReminders.add(str);
+                                }
+                            }
+
+                        });
+        vo.setNoMovingPinReminder(noMovingPinReminders);
+        //过期提醒
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        extendList.stream().filter(v -> v.getInventory().doubleValue() > 0 && v.getProductionDate() != null && v.getExpiryNum() != null)
+                .forEach(v ->{
+                    if (DateUtils.differentDaysByMillisecond(v.getProductionDate(),new Date()) >  (v.getExpiryNum() -30)){
+                        String name = materialMapper.selectByPrimaryKey(v.getMaterialId()).getName();
+                        String str = "商品名称:" + name
+                                + ", 批次号:" + v.getBatchNumber()
+                                + ", 条码:" + v.getBarCode()
+                                + ", 生产日期:" + sdf.format(v.getProductionDate())
+                                + ", 保质期:" + v.getExpiryNum() + "天"
+                                + ", 库存:" + v.getInventory()
+                                + ",即将要过期,请及时处理";
+                        expirationReminders.add(str);
+                    }
+                });
+        vo.setExpirationReminder(expirationReminders);
+        //库存提醒
+        MaterialInitialStockExample initialStockExample = new MaterialInitialStockExample();
+        initialStockExample.createCriteria().andDeleteFlagEqualTo("0");
+
+        List<MaterialInitialStock> initialStocks = materialInitialStockMapper.selectByExample(initialStockExample);
+        initialStocks.stream().filter(v -> v.getLowSafeStock() != null && v.getLowSafeStock().doubleValue() > 0)
+                .forEach(v -> {
+                    //根据商品id和仓库id查询当前库存
+                    BigDecimal currentNumber = getCurrentStockByMaterialIdAndDepotId(v.getMaterialId(),v.getDepotId());
+                    if (currentNumber.doubleValue() <= v.getLowSafeStock().doubleValue()){
+                        Material material = materialMapper.selectByPrimaryKey(v.getMaterialId());
+                        String str = "商品名称:" + material.getName()
+                                + ",库存告警,请及时处理";
+                        inventoryReminders.add(str);
+                    }
+                });
+        vo.setInventoryReminder(inventoryReminders);
+        return vo;
+    }
+
+    /**
+     * 导入表格
+     * @param file
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public BaseResponseInfo importExcelTwo(MultipartFile file, HttpServletRequest request) throws Exception {
+        BaseResponseInfo info = new BaseResponseInfo();
+        try {
+            Long beginTime = System.currentTimeMillis();
+            //文件扩展名只能为xls
+            String fileName = file.getOriginalFilename();
+            if(StringUtil.isNotEmpty(fileName)) {
+                String fileExt = fileName.substring(fileName.indexOf(".")+1);
+                if(!"xls".equals(fileExt)) {
+                    throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_EXTENSION_ERROR_CODE,
+                            ExceptionConstants.MATERIAL_EXTENSION_ERROR_MSG);
+                }
+            }
+            Workbook workbook = Workbook.getWorkbook(file.getInputStream());
+            Sheet src = workbook.getSheet(0);
+            //获取真实的行数,剔除掉空白行
+            int rightRows = ExcelUtils.getRightRows(src);
+            List<Depot> depotList= depotService.getDepot();
+            int depotCount = depotList.size();
+            Map<String, Long> depotMap = parseDepotToMap(depotList);
+            User user = userService.getCurrentUser();
+            List<MaterialWithInitStock> mList = new ArrayList<>();
+            //单次导入超出1000条
+            if(rightRows > 1002) {
+                throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_IMPORT_OVER_LIMIT_CODE,
+                        String.format(ExceptionConstants.MATERIAL_IMPORT_OVER_LIMIT_MSG));
+            }
+            for (int i = 2; i < rightRows; i++) {
+                String name = ExcelUtils.getContent(src, i, 0); //名称
+                String standard = ExcelUtils.getContent(src, i, 1); //规格
+                String model = ExcelUtils.getContent(src, i, 2); //型号
+                String color = ExcelUtils.getContent(src, i, 3); //颜色
+                String brand = ExcelUtils.getContent(src, i, 4); //品牌
+                String categoryName = ExcelUtils.getContent(src, i, 5); //类别
+                String weight = ExcelUtils.getContent(src, i, 6); //基础重量(kg)
+                String unit = ExcelUtils.getContent(src, i, 7); //基本单位
+                //名称为空
+                if(StringUtil.isEmpty(name)) {
+                    throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_NAME_EMPTY_CODE,
+                            String.format(ExceptionConstants.MATERIAL_NAME_EMPTY_MSG, i+1));
+                }
+                //名称长度超出
+                if(name.length()>100) {
+                    throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_NAME_OVER_CODE,
+                            String.format(ExceptionConstants.MATERIAL_NAME_OVER_MSG, i+1));
+                }
+                //规格长度超出
+                if(StringUtil.isNotEmpty(standard) && standard.length()>100) {
+                    throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_STANDARD_OVER_CODE,
+                            String.format(ExceptionConstants.MATERIAL_STANDARD_OVER_MSG, i+1));
+                }
+                //型号长度超出
+                if(StringUtil.isNotEmpty(model) && model.length()>100) {
+                    throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_MODEL_OVER_CODE,
+                            String.format(ExceptionConstants.MATERIAL_MODEL_OVER_MSG, i+1));
+                }
+                //基本单位为空
+                if(StringUtil.isEmpty(unit)) {
+                    throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_UNIT_EMPTY_CODE,
+                            String.format(ExceptionConstants.MATERIAL_UNIT_EMPTY_MSG, i+1));
+                }
+                //类别为空
+                if(StringUtil.isEmpty(categoryName)) {
+                    throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_Category_Name_EMPTY_CODE,
+                            String.format(ExceptionConstants.MATERIAL_Category_Name_EMPTY_MSG, i+1));
+                }
+                MaterialWithInitStock m = new MaterialWithInitStock();
+                //设置商品名字、规格、型号、颜色、品牌
+                m.setName(name);
+                m.setStandard(standard);
+                m.setModel(model);
+                m.setColor(color);
+                m.setBrand(brand);
+                //通过名称生成助记码
+                m.setMnemonic(PinYinUtil.getFirstLettersLo(name));
+                //通过类型名查询类型编号
+                Long categoryId = materialCategoryService.getCategoryIdByName(categoryName);
+                //获取类型编码
+                Long serial_no = categoryId == null ? null : materialCategoryService.getMaterialCategory(m.getCategoryId()).getSerialNo();
+                //设置系统sku
+                m.setSystemSku(serial_no + DateUtils.dateTimeNow());
+                if(null!=categoryId){
+                    m.setCategoryId(categoryId);
+                }
+                if(StringUtil.isNotEmpty(weight)) {
+                    //校验基础重量是否是数字(含小数)
+                    if(!StringUtil.isPositiveBigDecimal(weight)) {
+                        throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_WEIGHT_NOT_DECIMAL_CODE,
+                                String.format(ExceptionConstants.MATERIAL_WEIGHT_NOT_DECIMAL_MSG, i+1));
+                    }
+                    m.setWeight(new BigDecimal(weight));
+                }
+                String manyUnit = ExcelUtils.getContent(src, i, 8); //副单位
+                String ratio = ExcelUtils.getContent(src, i, 9); //比例
+                String sku = ExcelUtils.getContent(src, i, 10); //多属性
+                String purchaseDecimal = ExcelUtils.getContent(src, i, 11); //采购价
+                String commodityDecimal = ExcelUtils.getContent(src, i, 12); //零售价
+                String wholesaleDecimal = ExcelUtils.getContent(src, i, 13); //销售价
+                String lowDecimal = ExcelUtils.getContent(src, i, 14); //最低售价
+                String enabled = ExcelUtils.getContent(src, i, 15); //状态
+                String enableSerialNumber = ExcelUtils.getContent(src, i, 16); //序列号
+                String enableBatchNumber = ExcelUtils.getContent(src, i, 17); //批号
+                String systemSku = ExcelUtils.getContent(src, i, 18); //系统sku
+                String productionDate = ExcelUtils.getContent(src, i, 19); //生产日期
+                String expiryNum = ExcelUtils.getContent(src, i, 20); //保质期天数
+                if(StringUtil.isNotEmpty(expiryNum)) {
+                    //校验保质期是否是正整数
+                    if(!StringUtil.isPositiveLong(expiryNum)) {
+                        throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_EXPIRY_NUM_NOT_INTEGER_CODE,
+                                String.format(ExceptionConstants.MATERIAL_EXPIRY_NUM_NOT_INTEGER_MSG, i+1));
+                    }
+                    //m.setExpiryNum(Integer.parseInt(expiryNum));
+                }
+                String supplier = ExcelUtils.getContent(src, i, 21); //供应商
+                String barCode = ExcelUtils.getContent(src, i, 22); //商品条码
+                String batchNumber = ExcelUtils.getContent(src, i, 23); //批次号
+                String depotName = ExcelUtils.getContent(src, i, 24); //仓库名称
+                String position = ExcelUtils.getContent(src, i, 25); //仓位货架
+                String otherField1 = ExcelUtils.getContent(src, i, 26); //自定义1
+                String otherField2 = ExcelUtils.getContent(src, i, 27); //自定义2
+                String otherField3 = ExcelUtils.getContent(src, i, 28); //自定义3
+                String remark = ExcelUtils.getContent(src, i, 29); //备注
+                // m.setPosition(StringUtil.isNotEmpty(position)?position:null);
+                //m.setMfrs(StringUtil.isNotEmpty(mfrs)?mfrs:null);
+                m.setOtherField1(StringUtil.isNotEmpty(otherField1)?otherField1:null);
+                m.setOtherField2(StringUtil.isNotEmpty(otherField2)?otherField2:null);
+                m.setOtherField3(StringUtil.isNotEmpty(otherField3)?otherField3:null);
+                m.setRemark(remark);
+                //状态格式错误
+                if(!"1".equals(enabled) && !"0".equals(enabled)) {
+                    throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_ENABLED_ERROR_CODE,
+                            String.format(ExceptionConstants.MATERIAL_ENABLED_ERROR_MSG, i+1));
+                }
+                //基本条码为空
+                if(StringUtil.isEmpty(barCode)) {
+                    throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_BARCODE_EMPTY_CODE,
+                            String.format(ExceptionConstants.MATERIAL_BARCODE_EMPTY_MSG, i+1));
+                }
+                //校验基本条码长度为4到40位
+                if(!StringUtil.checkBarCodeLength(barCode)) {
+                    throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_BARCODE_LENGTH_ERROR_CODE,
+                            String.format(ExceptionConstants.MATERIAL_BARCODE_LENGTH_ERROR_MSG, barCode));
+                }
+                //批量校验excel中有无重复商品,是指名称、规格、型号、颜色、单位、多属性
+                batchCheckExistMaterialListByParam(mList, name, standard, model, color, unit, sku);
+                //批量校验excel中有无重复条码(1-文档自身校验,2-和数据库里面的商品校验)
+                //batchCheckExistBarCodeByParam(mList, barCode, manyBarCode);
+                //设置商品拓展属性
+                JSONObject materialExObj = new JSONObject();
+                JSONObject basicObj = new JSONObject();
+                basicObj.put("barCode", barCode);
+                basicObj.put("commodityUnit", unit);
+                basicObj.put("sku", sku);
+                basicObj.put("purchaseDecimal", purchaseDecimal);
+                basicObj.put("commodityDecimal", commodityDecimal);
+                basicObj.put("wholesaleDecimal", wholesaleDecimal);
+                basicObj.put("lowDecimal", lowDecimal);
+                materialExObj.put("basic", basicObj);
+                if(StringUtil.isNotEmpty(manyUnit) && StringUtil.isNotEmpty(ratio)){ //多单位
+                    //校验比例是否是数字(含小数)
+                    if(!StringUtil.isPositiveBigDecimal(ratio.trim())) {
+                        throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_RATIO_NOT_INTEGER_CODE,
+                                String.format(ExceptionConstants.MATERIAL_RATIO_NOT_INTEGER_MSG, i+1));
+                    }
+                    Long unitId = unitService.getUnitIdByParam(unit, manyUnit, new BigDecimal(ratio.trim()));
+                    if(unitId != null) {
+                        m.setUnitId(unitId);
+                        m.setUnit("");
+                    }
+//                    else {
+//                        throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_UNIT_MATE_CODE,
+//                                String.format(ExceptionConstants.MATERIAL_UNIT_MATE_MSG, manyBarCode));
+//                    }
+                    JSONObject otherObj = new JSONObject();
+                    //otherObj.put("barCode", manyBarCode);
+                    otherObj.put("commodityUnit", manyUnit);
+                    otherObj.put("purchaseDecimal", parsePrice(purchaseDecimal,ratio));
+                    otherObj.put("commodityDecimal", parsePrice(commodityDecimal,ratio));
+                    otherObj.put("wholesaleDecimal", parsePrice(wholesaleDecimal,ratio));
+                    otherObj.put("lowDecimal", parsePrice(lowDecimal,ratio));
+                    materialExObj.put("other", otherObj);
+                } else {
+                    m.setUnit(unit);
+                    m.setUnitId(null);
+                }
+                m.setMaterialExObj(materialExObj);
+                m.setEnabled("1".equals(enabled));
+                if(StringUtil.isNotEmpty(enableSerialNumber) && "1".equals(enableSerialNumber)) {
+                    m.setEnableSerialNumber("1");
+                } else {
+                    m.setEnableSerialNumber("0");
+                }
+                if(StringUtil.isNotEmpty(enableBatchNumber) && "1".equals(enableBatchNumber)) {
+                    m.setEnableBatchNumber("1");
+                } else {
+                    m.setEnableBatchNumber("0");
+                }
+                if("1".equals(enableSerialNumber) && "1".equals(enableBatchNumber)) {
+                    throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_ENABLE_MUST_ONE_CODE,
+                            String.format(ExceptionConstants.MATERIAL_ENABLE_MUST_ONE_MSG, barCode));
+                }
+                m.setStockMap(getStockMapCache(src, depotCount, depotMap, i));
+                mList.add(m);
+            }
+            List<Long> deleteInitialStockMaterialIdList = new ArrayList<>();
+            List<Long> deleteCurrentStockMaterialIdList = new ArrayList<>();
+            List<MaterialInitialStock> insertInitialStockMaterialList = new ArrayList<>();
+            List<MaterialCurrentStock> insertCurrentStockMaterialList = new ArrayList<>();
+            //防止初始库存和当前库存出现重复
+            Map<String, String> materialDepotInitialMap = new HashMap<>();
+            Map<String, String> materialDepotCurrentMap = new HashMap<>();
+            for(MaterialWithInitStock m: mList) {
+                Long mId = 0L;
+                //判断该商品是否存在,如果不存在就新增,如果存在就更新
+                String basicBarCode = getBasicBarCode(m);
+                //根据条件返回产品列表
+                List<Material> materials = getMaterialListByParam(m.getName(),m.getStandard(),m.getModel(),m.getColor(),m.getUnit(),m.getUnitId(), basicBarCode);
+                if(materials.size() == 0) { //产品列表为0,新增商品
+                    materialMapperEx.insertSelectiveEx(m);
+                    mId = m.getId();
+                } else { //产品列表不为0,商品存在,修改商品属性
+                    mId = materials.get(0).getId();
+                    String materialJson = JSON.toJSONString(m);
+                    Material material = JSONObject.parseObject(materialJson, Material.class);
+                    material.setId(mId);
+                    materialMapper.updateByPrimaryKeySelective(material);
+                    //更新多单位
+                    if(material.getUnitId() == null) {
+                        materialMapperEx.setUnitIdToNull(material.getId());
+                    }
+                    //如果之前有保质期,则更新保质期
+//                    if(materials.get(0).getExpiryNum()!=null && material.getExpiryNum() == null) {
+//                        materialMapperEx.setExpiryNumToNull(material.getId());
+//                    }
+                }
+                //给商品新增或更新条码与价格相关信息
+                JSONObject materialExObj = m.getMaterialExObj();
+                insertOrUpdateMaterialExtend(materialExObj, "basic", "1", mId, user);
+                insertOrUpdateMaterialExtend(materialExObj, "other", "0", mId, user);
+                //给商品更新库存
+                Map<Long, BigDecimal> stockMap = m.getStockMap();
+                for(Depot depot: depotList){
+                    Long depotId = depot.getId();
+                    String materialDepotKey = mId + "_" + depotId;
+                    //获取初始库存
+                    BigDecimal initStock = getInitStock(mId, depotId);
+                    //excel里面的当前库存
+                    BigDecimal stock = stockMap.get(depot.getId());
+                    //新增或更新初始库存
+                    if(stock!=null && stock.compareTo(BigDecimal.ZERO)!=0) {
+                        String basicStr = materialExObj.getString("basic");
+                        MaterialExtend materialExtend = JSONObject.parseObject(basicStr, MaterialExtend.class);
+                        if(StringUtil.isNotEmpty(materialExtend.getSku())) {
+                            throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_SKU_BEGIN_STOCK_FAILED_CODE,
+                                    String.format(ExceptionConstants.MATERIAL_SKU_BEGIN_STOCK_FAILED_MSG, materialExtend.getBarCode()));
+                        }
+                        buildChangeInitialStock(deleteInitialStockMaterialIdList, insertInitialStockMaterialList, materialDepotInitialMap, mId, depotId, materialDepotKey, stock);
+                    } else {
+                        if(initStock.compareTo(BigDecimal.ZERO)!=0) {
+                            buildChangeInitialStock(deleteInitialStockMaterialIdList, insertInitialStockMaterialList, materialDepotInitialMap, mId, depotId, materialDepotKey, stock);
+                        }
+                    }
+                    //新增或更新当前库存
+                    Long billCount = depotItemService.getCountByMaterialAndDepot(mId, depotId);
+                    if(billCount == 0) {
+                        if(stock!=null && stock.compareTo(BigDecimal.ZERO)!=0) {
+                            buildChangeCurrentStock(deleteCurrentStockMaterialIdList, insertCurrentStockMaterialList, materialDepotCurrentMap, mId, depotId, materialDepotKey, stock);
+                        } else {
+                            if(initStock.compareTo(BigDecimal.ZERO)!=0) {
+                                buildChangeCurrentStock(deleteCurrentStockMaterialIdList, insertCurrentStockMaterialList, materialDepotCurrentMap, mId, depotId, materialDepotKey, stock);
+                            }
+                        }
+                    } else {
+                        BigDecimal currentNumber = getCurrentStockByMaterialIdAndDepotId(mId, depotId);
+                        //当前库存的更新:减去初始库存,再加上导入的新初始库存
+                        if(currentNumber!=null && initStock!=null && stock!=null) {
+                            currentNumber = currentNumber.subtract(initStock).add(stock);
+                        }
+                        buildChangeCurrentStock(deleteCurrentStockMaterialIdList, insertCurrentStockMaterialList, materialDepotCurrentMap, mId, depotId, materialDepotKey, currentNumber);
+                    }
+                }
+            }
+            //批量更新库存,先删除后新增
+            if(insertInitialStockMaterialList.size()>0) {
+                batchDeleteInitialStockByMaterialList(deleteInitialStockMaterialIdList);
+                materialInitialStockMapperEx.batchInsert(insertInitialStockMaterialList);
+            }
+            if(insertCurrentStockMaterialList.size()>0) {
+                batchDeleteCurrentStockByMaterialList(deleteCurrentStockMaterialIdList);
+                materialCurrentStockMapperEx.batchInsert(insertCurrentStockMaterialList);
+            }
+            //添加日志
+            logService.insertLog("商品",
+                    new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_IMPORT).append(mList.size()).append(BusinessConstants.LOG_DATA_UNIT).toString(),
+                    ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest());
+            Long endTime = System.currentTimeMillis();
+            logger.info("导入耗时:{}", endTime-beginTime);
+            info.code = 200;
+            info.data = "导入成功";
+        } catch (BusinessRunTimeException e) {
+            info.code = e.getCode();
+            info.data = e.getData().get("message");
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            info.code = 500;
+            info.data = "导入失败";
+        }
+        return info;
+    }
+
 }