第四次提交,添加导入功能

master
duhl 6 years ago
parent 5c0294fa1e
commit b641f43ec1

@ -26,6 +26,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
@ -66,7 +67,7 @@ public class BaseCarbrandController extends BaseController
* *
*/ */
@RequiresPermissions("tyre:carbrand:export") @RequiresPermissions("tyre:carbrand:export")
@Log(title = "牌", businessType = BusinessType.EXPORT) @Log(title = "车辆车牌", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
@ResponseBody @ResponseBody
public AjaxResult export(BaseCarbrand baseCarbrand) public AjaxResult export(BaseCarbrand baseCarbrand)
@ -77,7 +78,37 @@ public class BaseCarbrandController extends BaseController
} }
/** /**
* *
* @param file
* @param updateSupport
* @return
* @throws Exception
*/
@Log(title = "车辆车牌", businessType = BusinessType.IMPORT)
@RequiresPermissions("tyre:carbrand:import")
@PostMapping("/importData")
@ResponseBody
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
{
ExcelUtil<BaseCarbrand> util = new ExcelUtil<BaseCarbrand>(BaseCarbrand.class);
List<BaseCarbrand> brandList = util.importExcel(file.getInputStream());
String operName = ShiroUtils.getSysUser().getLoginName();
String message = baseCarbrandService.importBrand(brandList, updateSupport, operName);
return AjaxResult.success(message);
}
@RequiresPermissions("tyre:carbrand:view")
@GetMapping("/importTemplate")
@ResponseBody
public AjaxResult importTemplate()
{
ExcelUtil<BaseCarbrand> util = new ExcelUtil<BaseCarbrand>(BaseCarbrand.class);
return util.importTemplateExcel("车牌数据");
}
/**
*
*/ */
@GetMapping("/add") @GetMapping("/add")
public String add() public String add()
@ -86,10 +117,10 @@ public class BaseCarbrandController extends BaseController
} }
/** /**
* *
*/ */
@RequiresPermissions("tyre:carbrand:add") @RequiresPermissions("tyre:carbrand:add")
@Log(title = "牌", businessType = BusinessType.INSERT) @Log(title = "车辆车牌", businessType = BusinessType.INSERT)
@PostMapping("/add") @PostMapping("/add")
@ResponseBody @ResponseBody
public AjaxResult addSave(BaseCarbrand baseCarbrand) public AjaxResult addSave(BaseCarbrand baseCarbrand)
@ -108,7 +139,7 @@ public class BaseCarbrandController extends BaseController
} }
/** /**
* *
*/ */
@GetMapping("/edit/{objid}") @GetMapping("/edit/{objid}")
public String edit(@PathVariable("objid") Long objid, ModelMap mmap) public String edit(@PathVariable("objid") Long objid, ModelMap mmap)
@ -119,10 +150,10 @@ public class BaseCarbrandController extends BaseController
} }
/** /**
* *
*/ */
@RequiresPermissions("tyre:carbrand:edit") @RequiresPermissions("tyre:carbrand:edit")
@Log(title = "牌", businessType = BusinessType.UPDATE) @Log(title = "车辆车牌", businessType = BusinessType.UPDATE)
@PostMapping("/edit") @PostMapping("/edit")
@ResponseBody @ResponseBody
public AjaxResult editSave(BaseCarbrand baseCarbrand) public AjaxResult editSave(BaseCarbrand baseCarbrand)
@ -141,10 +172,10 @@ public class BaseCarbrandController extends BaseController
} }
/** /**
* *
*/ */
@RequiresPermissions("tyre:carbrand:remove") @RequiresPermissions("tyre:carbrand:remove")
@Log(title = "牌", businessType = BusinessType.DELETE) @Log(title = "车辆车牌", businessType = BusinessType.DELETE)
@PostMapping( "/remove") @PostMapping( "/remove")
@ResponseBody @ResponseBody
public AjaxResult remove(String ids) public AjaxResult remove(String ids)

@ -47,6 +47,9 @@
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="tyre:carbrand:remove"> <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="tyre:carbrand: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="tyre:carbrand:import">
<i class="fa fa-upload"></i> 导入
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="tyre:carbrand:export"> <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="tyre:carbrand:export">
<i class="fa fa-download"></i> 导出 <i class="fa fa-download"></i> 导出
</a> </a>
@ -69,6 +72,10 @@
updateUrl: prefix + "/edit/{id}", updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove", removeUrl: prefix + "/remove",
exportUrl: prefix + "/export", exportUrl: prefix + "/export",
importUrl: prefix + "/importData",
importTemplateUrl: prefix + "/importTemplate",
sortName: "recordtime",
sortOrder: "desc",
modalName: "车牌", modalName: "车牌",
columns: [{ columns: [{
checkbox: true checkbox: true
@ -118,4 +125,19 @@
}); });
</script> </script>
</body> </body>
<!-- 导入区域 -->
<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>
</html> </html>

@ -64,5 +64,7 @@ public interface IBaseCarbrandService
* @param branno * @param branno
* @return * @return
*/ */
String checkBrannoUnique(BaseCarbrand branno); public String checkBrannoUnique(BaseCarbrand branno);
public String importBrand(List<BaseCarbrand> brandList, boolean updateSupport, String operName);
} }

@ -4,8 +4,11 @@ import java.util.List;
import com.ruoyi.common.constant.TyreConstants; import com.ruoyi.common.constant.TyreConstants;
import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.SysPost;
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.tyre.mapper.BaseCarbrandMapper; import com.ruoyi.tyre.mapper.BaseCarbrandMapper;
@ -22,6 +25,8 @@ import com.ruoyi.common.core.text.Convert;
@Service @Service
public class BaseCarbrandServiceImpl implements IBaseCarbrandService public class BaseCarbrandServiceImpl implements IBaseCarbrandService
{ {
private static final Logger log = LoggerFactory.getLogger(BaseCarbrandServiceImpl.class);
@Autowired @Autowired
private BaseCarbrandMapper baseCarbrandMapper; private BaseCarbrandMapper baseCarbrandMapper;
@ -105,7 +110,7 @@ public class BaseCarbrandServiceImpl implements IBaseCarbrandService
/** /**
* *
* *
* @param objid ID * @param objid ID
* @return * @return
*/ */
@ -113,4 +118,63 @@ public class BaseCarbrandServiceImpl implements IBaseCarbrandService
{ {
return baseCarbrandMapper.deleteBaseCarbrandById(objid); return baseCarbrandMapper.deleteBaseCarbrandById(objid);
} }
@Override
public String importBrand(List<BaseCarbrand> brandList, boolean updateSupport, String operName)
{
if (StringUtils.isNull(brandList) || brandList.size() == 0)
{
throw new BusinessException("导入车牌数据不能为空!");
}
int successNum = 0;
int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
for (BaseCarbrand brand : brandList)
{
try
{
// 验证是否存在这个车牌
BaseCarbrand baseCarbrand = baseCarbrandMapper.checkBrannoUnique(brand.getBranno());
if (StringUtils.isNull(baseCarbrand))
{
brand.setRecorderid(operName);
this.insertBaseCarbrand(brand);
successNum++;
successMsg.append("<br/>" + successNum + "、车牌号 " + brand.getBranno() + " 导入成功");
}
else if (updateSupport)
{
brand.setRecorderid(operName);
this.updateBaseCarbrand(brand);
successNum++;
successMsg.append("<br/>" + successNum + "、车牌号 " + brand.getBranno() + " 更新成功");
}
else
{
failureNum++;
failureMsg.append("<br/>" + failureNum + "、车牌号 " + brand.getBranno() + " 已存在");
}
}
catch (Exception e)
{
failureNum++;
String msg = "<br/>" + failureNum + "、车牌号 " + brand.getBranno() + " 导入失败:";
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();
}
} }

Loading…
Cancel
Save