package com.thhy.materials.modules.biz.materials.service.impl; import cn.hutool.core.io.IoUtil; import cn.hutool.poi.excel.ExcelWriter; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.github.pagehelper.util.StringUtil; import com.thhy.general.common.BasicResult; import com.thhy.general.config.SysUserInfo; import com.thhy.general.utils.UserInfoUtils; import com.thhy.materials.modules.biz.materials.entity.SysAssistGood; import com.thhy.materials.modules.biz.materials.entity.dto.AssistDto; import com.thhy.materials.modules.biz.materials.mapper.SysAssistGoodMapper; import com.thhy.materials.modules.biz.materials.service.SysAssistGoodService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import java.util.Map; @Service public class SysAssistGoodServiceImpl implements SysAssistGoodService { @Resource private SysAssistGoodMapper assistGoodMapper; @Override public BasicResult assistInsert(Map values) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); values.put("companyId",sysUserInfo.getCompanyId()); String assistName = values.get("assistName").toString(); String assistType = values.get("assistModel").toString(); String id = assistGoodMapper.assistNameAndType(assistName,assistType); if(!StringUtil.isEmpty(id)){ return BasicResult.faild("11111","error","名称和规格型号不可重复"); } values.put("id",""); assistGoodMapper.assistInsert(values); return BasicResult.success("添加成功"); } @Override public BasicResult assistList(Map values) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String companyId = sysUserInfo.getCompanyId(); values.put("companyId",companyId); Integer pageSize = Integer.valueOf(values.get("pageSize").toString()); Integer pageNum = Integer.valueOf(values.get("pageNum").toString()); PageHelper.startPage(pageNum,pageSize); List assistGoods = assistGoodMapper.assistList(values); PageInfo sysAssistGoodPageInfo = new PageInfo<>(assistGoods); return BasicResult.success(sysAssistGoodPageInfo); } @Override public BasicResult assistInfo(String assistId) { SysAssistGood assistGoods = assistGoodMapper.assistInfo(assistId); return BasicResult.success(assistGoods); } @Override public BasicResult assistDel(String assistId) { List ids = assistGoodMapper.assistGood(assistId); if(ids!=null && ids.size()>0){ return BasicResult.faild("11111","该类型已被占用","error"); } assistGoodMapper.assistDel(assistId); return BasicResult.success("删除成功"); } @Override public BasicResult assistUpdate(Map values) { String assistName = values.get("assistName").toString(); String assistType = values.get("assistModel").toString(); String assistId = values.get("id").toString(); String id = assistGoodMapper.assistNameAndType(assistName,assistType); if(!StringUtil.isEmpty(id)&&!assistId.equals(id)){ return BasicResult.faild("11111","error","名称和规格型号不可重复"); } assistGoodMapper.assistUpdate(values); return BasicResult.success("修改成功"); } @Override public void assistExport(Map values, HttpServletResponse response) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String companyId = sysUserInfo.getCompanyId(); values.put("companyId",companyId); List assistGoods = assistGoodMapper.assistList(values); List assistDtos = new ArrayList<>(); for (SysAssistGood assistGood : assistGoods){ AssistDto assistDto = new AssistDto(); assistDto.setAssistName(assistGood.getAssistName()); assistDto.setAssistModel(assistGood.getAssistModel()); assistDto.setUnit(assistGood.getUnit()); assistDto.setStock(assistGood.getStock()); assistDto.setAlarmCount(assistGood.getAlarmCount()); assistDto.setPosition(assistGood.getPosition()); assistDto.setDictName(assistGood.getDictName()); assistDtos.add(assistDto); } ExcelWriter excel = new ExcelWriter();//定义excel excel.addHeaderAlias("assistName", "物品名称"); excel.addHeaderAlias("assistModel", "规格型号"); excel.addHeaderAlias("dictName", "类别"); excel.addHeaderAlias("unit", "计量单位"); excel.addHeaderAlias("stock", "库存个数"); excel.addHeaderAlias("alarmCount", "报警数"); excel.addHeaderAlias("position", "位置"); response.setContentType("application/vnd.ms-excel;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=test.xls"); OutputStream out = null; try { out = response.getOutputStream(); excel.write(assistDtos); excel.flush(out, true); } catch (IOException e) { e.printStackTrace(); } finally { // 关闭writer,释放内存 excel.close(); } IoUtil.close(out); } }