控制器:
//物品批量导入
@RequestMapping(value="sendGoods",method= RequestMethod.POST)
public Object sendGoods(@RequestParam("file") MultipartFile file) throws IOException {
HttpResult result = new HttpResult();
if(!file.isEmpty()){
FileInputStream inputStream = (FileInputStream) file.getInputStream();
result = MailManageProvider.sendGoods(inputStream);
}else{
result.setState(false);
result.setMessage("文件找不到!");
}
return result;
}
//物品批量导入
public HttpResult sendGoods(InputStream fis) {
HttpResult result = new HttpResult();
ArrayList<goods> infos = new ArrayList<goods>();
goods goods = null;
try{
//创建Excel工作薄
HSSFWorkbook hwb = new HSSFWorkbook(fis);
//得到第一个工作表
HSSFSheet sheet = hwb.getSheetAt(0);
HSSFRow row = null;
//遍历该表格中所有的工作表,i表示工作表的数量 getNumberOfSheets表示工作表的总数
for(int i = 0; i < hwb.getNumberOfSheets(); i++) {
sheet = hwb.getSheetAt(i);
//遍历该行所有的行,j表示行数 getPhysicalNumberOfRows行的总数
for(int j = 1; j < sheet.getPhysicalNumberOfRows(); j++) {
row = sheet.getRow(j);
goods = new goods();
//此方法调用getCellValue(HSSFCell cell)对解析出来的数据进行判断,并做相应的处理
if(StringUtils.isNotBlank(MailManageProvider.getCellValue(row.getCell(0)))){
if(StringUtils.isBlank(MailManageProvider.getCellValue(row.getCell(1)))||
StringUtils.isBlank(MailManageProvider.getCellValue(row.getCell(2)))){
result.setMessage("有空信息,请补充完整。");
result.setState(false);
return result;
}else{
goods.setGoodsCode(MailManageProvider.getCellValue(row.getCell(0)));
goods.setGoodsName(MailManageProvider.getCellValue(row.getCell(1)));
goods.setGoodsUpper(Integer.valueOf(MailManageProvider.getCellValue(row.getCell(2))));
}
infos.add(goods);
}else {
result.setMessage("有空信息,请补充完整。");
result.setState(false);
return result;
}
infos.add(goods);
}
}
}catch(IOException e) {
e.printStackTrace();
result.setMessage(e.getMessage());
return result;
}
result = mailMS.sendGoods(infos);
return result;
}
sendGoods方法:
//物品批量导入
@Override
public HttpResult sendGoods(ArrayList<goods> infos) {
HttpResult result = new HttpResult();
if(!infos.isEmpty()) {
int value = 0;
String b = "";
for (goods g : infos){
goods gds = gdsDao.selectByGoodsCode(g);
if(gds==null||gds.equals("")){
value += gdsDao.insertSelective(g);
}else {
String a = g.getGoodsCode().toString()+",";
b += a;
}
}
if (value != infos.size()) {
result.setState(false);
result.setMessage(b+"已存在于列表,插入失败!");
} else {
result.setState(true);
result.setMessage("已完成!");
}
}else{
result.setState(false);
result.setMessage("插入失败!");
}
return result;
}
实体类:
public class goods extends BaseEntity{
private static final long serialVersionUID = 9055584736506854530L;
//唯一id
private Integer gId;
//物品编号
private String goodsCode;
//物品名称
private String goodsName;
//数量上线
private Integer goodsUpper;
public Integer getGId() {
return this.gId;
}
public void setGId(Integer value) {
this.gId = value;
}
public String getGoodsCode() {
return this.goodsCode;
}
public void setGoodsCode(String value) {
this.goodsCode = value;
}
public String getGoodsName() {
return this.goodsName;
}
public void setGoodsName(String value) {
this.goodsName = value;
}
public Integer getGoodsUpper() {
return this.goodsUpper;
}
public void setGoodsUpper(Integer value) {
this.goodsUpper = value;
}
}