导入功能完成

master
森屿海巷 3 years ago
parent 008d3cb288
commit 1e11d8ebb5

@ -3,6 +3,8 @@ package com.ruoyi.web.controller.basic;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.system.domain.BaseStoreInfo;
import com.ruoyi.web.controller.tool.UUIDTool; import com.ruoyi.web.controller.tool.UUIDTool;
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;
@ -21,6 +23,7 @@ import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
/** /**
* Controller * Controller
@ -128,4 +131,29 @@ public class BaseEfficiencyLevelController extends BaseController
{ {
return toAjax(baseEfficiencyLevelService.deleteBaseEfficiencyLevelByObjids(ids)); return toAjax(baseEfficiencyLevelService.deleteBaseEfficiencyLevelByObjids(ids));
} }
@RequiresPermissions("system:baseefficiencylevel:view")
@GetMapping("/importTemplate")
@ResponseBody
public AjaxResult importTemplate()
{
ExcelUtil<BaseEfficiencyLevel> util = new ExcelUtil<>(BaseEfficiencyLevel.class);
return util.importTemplateExcel("效率级别信息导入");
}
@Log(title = "效率级别信息导入", businessType = BusinessType.IMPORT)
@RequiresPermissions("system:baseefficiencylevel:import")
@PostMapping("/importData")
@ResponseBody
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
{
ExcelUtil<BaseEfficiencyLevel> util = new ExcelUtil<BaseEfficiencyLevel>(BaseEfficiencyLevel.class);
List<BaseEfficiencyLevel> baseEfficiencyLevels = util.importExcel(file.getInputStream());
String operName = ShiroUtils.getSysUser().getLoginName();
String message = baseEfficiencyLevelService.importData(baseEfficiencyLevels, updateSupport, operName);
return AjaxResult.success(message);
}
} }

@ -3,6 +3,8 @@ package com.ruoyi.web.controller.basic;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.system.domain.BaseEfficiencyLevel;
import com.ruoyi.system.domain.BaseLocationInfo; import com.ruoyi.system.domain.BaseLocationInfo;
import com.ruoyi.system.domain.BaseStoreInfo; import com.ruoyi.system.domain.BaseStoreInfo;
import com.ruoyi.system.service.IBaseStoreInfoService; import com.ruoyi.system.service.IBaseStoreInfoService;
@ -25,6 +27,7 @@ import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
/** /**
* Controller * Controller
@ -141,4 +144,28 @@ public class BaseMaterialStoreController extends BaseController
{ {
return toAjax(baseMaterialStoreService.deleteBaseMaterialStoreByObjids(ids)); return toAjax(baseMaterialStoreService.deleteBaseMaterialStoreByObjids(ids));
} }
@RequiresPermissions("system:basematerialstore:view")
@GetMapping("/importTemplate")
@ResponseBody
public AjaxResult importTemplate()
{
ExcelUtil<BaseMaterialStore> util = new ExcelUtil<>(BaseMaterialStore.class);
return util.importTemplateExcel("物料库位关系导入");
}
@Log(title = "物料库位关系信息导入", businessType = BusinessType.IMPORT)
@RequiresPermissions("system:basematerialstore:import")
@PostMapping("/importData")
@ResponseBody
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
{
ExcelUtil<BaseMaterialStore> util = new ExcelUtil<BaseMaterialStore>(BaseMaterialStore.class);
List<BaseMaterialStore> baseMaterialStores = util.importExcel(file.getInputStream());
String operName = ShiroUtils.getSysUser().getLoginName();
String message = baseMaterialStoreService.importData(baseMaterialStores, updateSupport, operName);
return AjaxResult.success(message);
}
} }

@ -3,6 +3,8 @@ package com.ruoyi.web.controller.basic;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.system.domain.BaseLocationInfo;
import com.ruoyi.web.controller.tool.UUIDTool; import com.ruoyi.web.controller.tool.UUIDTool;
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;
@ -21,6 +23,7 @@ import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
/** /**
* Controller * Controller
@ -128,4 +131,30 @@ public class BaseStoreInfoController extends BaseController
{ {
return toAjax(baseStoreInfoService.deleteBaseStoreInfoByObjids(ids)); return toAjax(baseStoreInfoService.deleteBaseStoreInfoByObjids(ids));
} }
@RequiresPermissions("system:basestoreinfo:view")
@GetMapping("/importTemplate")
@ResponseBody
public AjaxResult importTemplate()
{
ExcelUtil<BaseStoreInfo> util = new ExcelUtil<>(BaseStoreInfo.class);
return util.importTemplateExcel("仓库信息导入");
}
@Log(title = "仓库信息导入", businessType = BusinessType.IMPORT)
@RequiresPermissions("system:basestoreinfo:import")
@PostMapping("/importData")
@ResponseBody
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
{
ExcelUtil<BaseStoreInfo> util = new ExcelUtil<BaseStoreInfo>(BaseStoreInfo.class);
List<BaseStoreInfo> baseStoreInfos = util.importExcel(file.getInputStream());
String operName = ShiroUtils.getSysUser().getLoginName();
String message = baseStoreInfoService.importData(baseStoreInfos, updateSupport, operName);
return AjaxResult.success(message);
}
} }

@ -37,6 +37,9 @@
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:baseefficiencylevel:remove"> <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:baseefficiencylevel:remove">
<i class="fa fa-remove"></i> 删除 <i class="fa fa-remove"></i> 删除
</a> </a>
<a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:baseefficiencylevel:import">
<i class="fa fa-upload"></i> 导入
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:baseefficiencylevel:export"> <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:baseefficiencylevel:export">
<i class="fa fa-download"></i> 导出 <i class="fa fa-download"></i> 导出
</a> </a>
@ -59,6 +62,8 @@
updateUrl: prefix + "/edit/{id}", updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove", removeUrl: prefix + "/remove",
exportUrl: prefix + "/export", exportUrl: prefix + "/export",
importTemplateUrl: prefix + "/importTemplate",
importUrl: prefix + "/importData",
modalName: "效率级别", modalName: "效率级别",
columns: [{ columns: [{
checkbox: true checkbox: true
@ -98,5 +103,21 @@
$.table.init(options); $.table.init(options);
}); });
</script> </script>
<!-- 导入区域 -->
<script id="importTpl" type="text/template">
<form enctype="multipart/form-data" class="mt20 mb10">
<div class="col-xs-offset-1">
<input type="file" id="file" name="file"/>
<div class="mt10 pt5">
<input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在,更新这条数据。"> 是否更新已经存在的用户数据
&nbsp; <a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i class="fa fa-file-excel-o"></i> 下载模板</a>
</div>
<font color="red" class="pull-left mt10">
提示仅允许导入“xls”或“xlsx”格式文件
</font>
</div>
</form>
</script>
</body> </body>
</html> </html>

@ -59,6 +59,9 @@
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:basematerialstore:remove"> <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:basematerialstore:remove">
<i class="fa fa-remove"></i> 删除 <i class="fa fa-remove"></i> 删除
</a> </a>
<a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:basematerialstore:import">
<i class="fa fa-upload"></i> 导入
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:basematerialstore:export"> <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:basematerialstore:export">
<i class="fa fa-download"></i> 导出 <i class="fa fa-download"></i> 导出
</a> </a>
@ -83,6 +86,8 @@
updateUrl: prefix + "/edit/{id}", updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove", removeUrl: prefix + "/remove",
exportUrl: prefix + "/export", exportUrl: prefix + "/export",
importTemplateUrl: prefix + "/importTemplate",
importUrl: prefix + "/importData",
modalName: "物料库位关系", modalName: "物料库位关系",
columns: [{ columns: [{
checkbox: true checkbox: true
@ -145,5 +150,21 @@
$.table.init(options); $.table.init(options);
}); });
</script> </script>
<!-- 导入区域 -->
<script id="importTpl" type="text/template">
<form enctype="multipart/form-data" class="mt20 mb10">
<div class="col-xs-offset-1">
<input type="file" id="file" name="file"/>
<div class="mt10 pt5">
<input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在,更新这条数据。"> 是否更新已经存在的用户数据
&nbsp; <a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i class="fa fa-file-excel-o"></i> 下载模板</a>
</div>
<font color="red" class="pull-left mt10">
提示仅允许导入“xls”或“xlsx”格式文件
</font>
</div>
</form>
</script>
</body> </body>
</html> </html>

@ -70,6 +70,8 @@
updateUrl: prefix + "/edit/{id}", updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove", removeUrl: prefix + "/remove",
exportUrl: prefix + "/export", exportUrl: prefix + "/export",
importTemplateUrl: prefix + "/importTemplate",
importUrl: prefix + "/importData",
modalName: "仓库信息", modalName: "仓库信息",
columns: [{ columns: [{
checkbox: true checkbox: true

@ -37,7 +37,7 @@ public class BaseEfficiencyLevel extends BaseEntity
/** 记录时间 */ /** 记录时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd") // @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date recordTime; private Date recordTime;
public void setObjid(String objid) public void setObjid(String objid)

@ -49,7 +49,7 @@ public class BaseMaterialStore extends BaseEntity
/** 记录时间 */ /** 记录时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd") // @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date recordTime; private Date recordTime;
public void setObjid(String objid) public void setObjid(String objid)

@ -49,7 +49,7 @@ public class BaseStoreInfo extends BaseEntity
/** 记录时间 */ /** 记录时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd") // @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date recordTime; private Date recordTime;
public void setObjid(String objid) public void setObjid(String objid)

@ -2,6 +2,7 @@ package com.ruoyi.system.service;
import java.util.List; import java.util.List;
import com.ruoyi.system.domain.BaseEfficiencyLevel; import com.ruoyi.system.domain.BaseEfficiencyLevel;
import com.ruoyi.system.domain.BaseStoreInfo;
/** /**
* Service * Service
@ -58,4 +59,13 @@ public interface IBaseEfficiencyLevelService
* @return * @return
*/ */
public int deleteBaseEfficiencyLevelByObjid(String objid); public int deleteBaseEfficiencyLevelByObjid(String objid);
/**
*
* @param baseEfficiencyLevels
* @param updateSupport
* @param operName
* @return
*/
String importData(List<BaseEfficiencyLevel> baseEfficiencyLevels, boolean updateSupport, String operName);
} }

@ -66,4 +66,13 @@ public interface IBaseMaterialStoreService
* @return * @return
*/ */
public int deleteBaseMaterialStoreByObjid(String objid); public int deleteBaseMaterialStoreByObjid(String objid);
/**
*
* @param baseMaterialStores
* @param updateSupport
* @param operName
* @return
*/
String importData(List<BaseMaterialStore> baseMaterialStores, boolean updateSupport, String operName);
} }

@ -1,6 +1,8 @@
package com.ruoyi.system.service; package com.ruoyi.system.service;
import java.util.List; import java.util.List;
import com.ruoyi.system.domain.BaseLocationInfo;
import com.ruoyi.system.domain.BaseStoreInfo; import com.ruoyi.system.domain.BaseStoreInfo;
/** /**
@ -58,4 +60,14 @@ public interface IBaseStoreInfoService
* @return * @return
*/ */
public int deleteBaseStoreInfoByObjid(String objid); public int deleteBaseStoreInfoByObjid(String objid);
/**
*
* @param baseStoreInfos
* @param updateSupport
* @param operName
* @return
*/
String importData(List<BaseStoreInfo> baseStoreInfos, boolean updateSupport, String operName);
} }

@ -1,6 +1,14 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.UUID;
import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.BaseStoreInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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 com.ruoyi.system.mapper.BaseEfficiencyLevelMapper; import com.ruoyi.system.mapper.BaseEfficiencyLevelMapper;
@ -17,6 +25,8 @@ import com.ruoyi.common.core.text.Convert;
@Service("baseEfficiencyLevelService") @Service("baseEfficiencyLevelService")
public class BaseEfficiencyLevelServiceImpl implements IBaseEfficiencyLevelService public class BaseEfficiencyLevelServiceImpl implements IBaseEfficiencyLevelService
{ {
private Logger log = LoggerFactory.getLogger(BaseStoreInfoServiceImpl.class);
@Autowired @Autowired
private BaseEfficiencyLevelMapper baseEfficiencyLevelMapper; private BaseEfficiencyLevelMapper baseEfficiencyLevelMapper;
@ -93,4 +103,53 @@ public class BaseEfficiencyLevelServiceImpl implements IBaseEfficiencyLevelServi
{ {
return baseEfficiencyLevelMapper.deleteBaseEfficiencyLevelByObjid(objid); return baseEfficiencyLevelMapper.deleteBaseEfficiencyLevelByObjid(objid);
} }
@Override
public String importData(List<BaseEfficiencyLevel> baseEfficiencyLevels, boolean updateSupport, String operName) {
if (StringUtils.isNull(baseEfficiencyLevels) || baseEfficiencyLevels.size() == 0) {
throw new BusinessException("效率级别信息不能为空");
}
int successNum = 0;
int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
for (BaseEfficiencyLevel baseEfficiencyLevel : baseEfficiencyLevels) {
try {
if (!StringUtils.isEmpty(baseEfficiencyLevel.getLevelName())) {
baseEfficiencyLevel.setDeleteFlag(Long.valueOf(0));
baseEfficiencyLevel.setObjid(generate());
baseEfficiencyLevel.setRecordTime(new Date());
this.insertBaseEfficiencyLevel(baseEfficiencyLevel);
successNum++;
successMsg.append("<br/>" + successNum + "、级别名称 " + baseEfficiencyLevel.getLevelName() + " 导入成功");
} else if (updateSupport) {
baseEfficiencyLevel.setUpdateBy(operName);
this.updateBaseEfficiencyLevel(baseEfficiencyLevel);
successNum++;
successMsg.append("<br/>" + successNum + "、级别名称 " + baseEfficiencyLevel.getLevelName() + " 更新成功");
} else {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、级别名称 " + baseEfficiencyLevel.getLevelName() + " 已存在");
}
} catch (Exception e) {
failureNum++;
String msg = "<br/>" + failureNum + "、级别名称 " + baseEfficiencyLevel.getLevelName() + " 导入失败:";
failureMsg.append(msg + e.getMessage());
log.error(msg, e);
}
}
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new BusinessException(failureMsg.toString());
} else {
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
public static String generate(){
return String.valueOf(UUID.randomUUID());
}
} }

@ -1,6 +1,14 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.UUID;
import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.BaseEfficiencyLevel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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 com.ruoyi.system.mapper.BaseMaterialStoreMapper; import com.ruoyi.system.mapper.BaseMaterialStoreMapper;
@ -17,6 +25,8 @@ import com.ruoyi.common.core.text.Convert;
@Service @Service
public class BaseMaterialStoreServiceImpl implements IBaseMaterialStoreService public class BaseMaterialStoreServiceImpl implements IBaseMaterialStoreService
{ {
private Logger log = LoggerFactory.getLogger(BaseMaterialStoreServiceImpl.class);
@Autowired @Autowired
private BaseMaterialStoreMapper baseMaterialStoreMapper; private BaseMaterialStoreMapper baseMaterialStoreMapper;
@ -96,4 +106,53 @@ public class BaseMaterialStoreServiceImpl implements IBaseMaterialStoreService
{ {
return baseMaterialStoreMapper.deleteBaseMaterialStoreByObjid(objid); return baseMaterialStoreMapper.deleteBaseMaterialStoreByObjid(objid);
} }
@Override
public String importData(List<BaseMaterialStore> baseMaterialStores, boolean updateSupport, String operName) {
if (StringUtils.isNull(baseMaterialStores) || baseMaterialStores.size() == 0) {
throw new BusinessException("物料库位关系信息不能为空");
}
int successNum = 0;
int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
for (BaseMaterialStore baseMaterialStore : baseMaterialStores) {
try {
if (!StringUtils.isEmpty(baseMaterialStore.getMaterialCode())) {
baseMaterialStore.setObjid(generate());
baseMaterialStore.setRecordTime(new Date());
this.insertBaseMaterialStore(baseMaterialStore);
successNum++;
successMsg.append("<br/>" + successNum + "、物料编码 " + baseMaterialStore.getMaterialCode() + " 导入成功");
} else if (updateSupport) {
baseMaterialStore.setUpdateBy(operName);
this.updateBaseMaterialStore(baseMaterialStore);
successNum++;
successMsg.append("<br/>" + successNum + "、物料编码 " + baseMaterialStore.getMaterialCode() + " 更新成功");
} else {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、物料编码 " + baseMaterialStore.getMaterialCode() + " 已存在");
}
} catch (Exception e) {
failureNum++;
String msg = "<br/>" + failureNum + "、物料编码 " + baseMaterialStore.getMaterialCode() + " 导入失败:";
failureMsg.append(msg + e.getMessage());
log.error(msg, e);
}
}
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new BusinessException(failureMsg.toString());
} else {
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
public static String generate(){
return String.valueOf(UUID.randomUUID());
}
} }

@ -1,6 +1,14 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.UUID;
import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.BaseLocationInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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 com.ruoyi.system.mapper.BaseStoreInfoMapper; import com.ruoyi.system.mapper.BaseStoreInfoMapper;
@ -17,6 +25,8 @@ import com.ruoyi.common.core.text.Convert;
@Service("baseStoreInfoService") @Service("baseStoreInfoService")
public class BaseStoreInfoServiceImpl implements IBaseStoreInfoService public class BaseStoreInfoServiceImpl implements IBaseStoreInfoService
{ {
private Logger log = LoggerFactory.getLogger(BaseStoreInfoServiceImpl.class);
@Autowired @Autowired
private BaseStoreInfoMapper baseStoreInfoMapper; private BaseStoreInfoMapper baseStoreInfoMapper;
@ -91,4 +101,52 @@ public class BaseStoreInfoServiceImpl implements IBaseStoreInfoService
{ {
return baseStoreInfoMapper.deleteBaseStoreInfoByObjid(objid); return baseStoreInfoMapper.deleteBaseStoreInfoByObjid(objid);
} }
@Override
public String importData(List<BaseStoreInfo> baseStoreInfos, boolean updateSupport, String operName) {
if (StringUtils.isNull(baseStoreInfos) || baseStoreInfos.size() == 0) {
throw new BusinessException("仓库信息不能为空");
}
int successNum = 0;
int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
for (BaseStoreInfo baseStoreInfo : baseStoreInfos) {
try {
if (!StringUtils.isEmpty(baseStoreInfo.getStoreCode())) {
baseStoreInfo.setObjid(generate());
baseStoreInfo.setRecordTime(new Date());
this.insertBaseStoreInfo(baseStoreInfo);
successNum++;
successMsg.append("<br/>" + successNum + "、仓库编码 " + baseStoreInfo.getStoreCode() + " 导入成功");
} else if (updateSupport) {
baseStoreInfo.setUpdateBy(operName);
this.updateBaseStoreInfo(baseStoreInfo);
successNum++;
successMsg.append("<br/>" + successNum + "、仓库编码 " + baseStoreInfo.getStoreCode() + " 更新成功");
} else {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、仓库编码 " + baseStoreInfo.getStoreCode() + " 已存在");
}
} catch (Exception e) {
failureNum++;
String msg = "<br/>" + failureNum + "、仓库编码 " + baseStoreInfo.getStoreCode() + " 导入失败:";
failureMsg.append(msg + e.getMessage());
log.error(msg, e);
}
}
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new BusinessException(failureMsg.toString());
} else {
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
public static String generate(){
return String.valueOf(UUID.randomUUID());
}
} }

@ -24,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where> <where>
<if test="efficiencyLevel != null "> and efficiency_level like concat(concat('%', #{efficiencyLevel}), '%')</if> <if test="efficiencyLevel != null "> and efficiency_level like concat(concat('%', #{efficiencyLevel}), '%')</if>
<if test="levelName != null and levelName != ''"> and level_name like concat(concat('%', #{levelName}), '%')</if> <if test="levelName != null and levelName != ''"> and level_name like concat(concat('%', #{levelName}), '%')</if>
and delete_flag = '0' and delete_flag = '1'
</where> </where>
</select> </select>

@ -27,6 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="storeCode != null and storeCode != ''"> and store_code like concat(concat('%', #{storeCode}), '%')</if> <if test="storeCode != null and storeCode != ''"> and store_code like concat(concat('%', #{storeCode}), '%')</if>
<if test="storeName != null and storeName != ''"> and store_name like concat(concat('%', #{storeName}), '%')</if> <if test="storeName != null and storeName != ''"> and store_name like concat(concat('%', #{storeName}), '%')</if>
<if test="storeStatus != null"> and store_status = #{storeStatus} </if> <if test="storeStatus != null"> and store_status = #{storeStatus} </if>
and delete_flag = '1'
</where> </where>
</select> </select>

Loading…
Cancel
Save