package com.tld.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.tld.excel.ExcelUtils; import com.tld.mapper.ContainerMapper; import com.tld.model.Container; import com.tld.model.Department; import com.tld.model.Scrap; import com.tld.service.ContainerService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.text.SimpleDateFormat; import java.util.*; @Service public class ContainerServiceImpl implements ContainerService { @Autowired private ContainerMapper containerMapper; @Override public Map getContainer(Container container) { Map map = new HashMap<>(); try{ PageHelper.startPage(container.getPage(), container.getLimit()); PageInfo pageInfo = new PageInfo<>(containerMapper.getContainer(container)); map.put("data", pageInfo); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", "服务器请求异常,请稍后再试"); } return map; } @Override @Transactional(rollbackFor = Exception.class) public Map addContainer(Container container) { Map map = new HashMap<>(); try{ containerMapper.addContainer(container); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", "服务器请求异常,请稍后再试"); } return map; } @Override @Transactional(rollbackFor = Exception.class) public Map updateContainer(Container container) { Map map = new HashMap<>(); try{ containerMapper.updateContainer(container); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", "服务器请求异常,请稍后再试"); } return map; } @Override @Transactional(rollbackFor = Exception.class) public Map delContainer(Map param) { Map map = new HashMap<>(); try{ //新增报废日志 Scrap scrap = new Scrap() .setOperationName(param.get("userId").toString()) .setScrapCause(param.get("scrapCause").toString()) .setScrapNum(param.get("scrapNum").toString()) .setContainerName(param.get("id").toString()); containerMapper.addScrap(scrap); //删除容器 Container container = new Container() .setId(param.get("id").toString()); List list = containerMapper.getContainer(container); if(Integer.parseInt(list.get(0).getNum()) < Integer.parseInt(param.get("scrapNum").toString())){ map.put("msg", "500"); map.put("errMsg", "库存数量不足"); return map; } //剩余数量 总数量 - 报废数量 int num = Integer.parseInt(list.get(0).getNum()) - Integer.parseInt(param.get("scrapNum").toString()); container.setNum(String.valueOf(num)); containerMapper.updateContainer(container); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", "服务器请求异常,请稍后再试"); } return map; } @Override public void export(Container container, HttpServletResponse response) { try{ //导出数据汇总 List> sheetDataList = new ArrayList<>(); //表头数据 List head = Arrays.asList("部门", "类别", "容器编号","容器名称","数量","创建时间"); //查询数据 PageHelper.startPage(container.getPage(), container.getLimit()); PageInfo> list = new PageInfo<>(containerMapper.export(container)); sheetDataList.add(head); for(Map userMap : list.getList()){ List listSheet = new ArrayList<>(); for(String key: userMap.keySet()){ listSheet.add(userMap.get(key)); } sheetDataList.add(listSheet); } //当前时间 Date time = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMddHHmmss"); ExcelUtils.export(response, "仓库容器信息数据导出" + sdf.format(time), sheetDataList); }catch (Exception e){ e.printStackTrace(); } } @Override public Map getScrap(Scrap scrap) { Map map = new HashMap<>(); try{ PageHelper.startPage(scrap.getPage(), scrap.getLimit()); PageInfo pageInfo = new PageInfo<>(containerMapper.getScrap(scrap)); map.put("data", pageInfo); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", "服务器请求异常,请稍后再试"); } return map; } @Override public void exportScrap(Scrap scrap, HttpServletResponse response) { try{ //导出数据汇总 List> sheetDataList = new ArrayList<>(); //表头数据 List head = Arrays.asList("操作人", "报废原因", "报废时间","报废数量","容器名称"); //查询数据 PageHelper.startPage(scrap.getPage(), scrap.getLimit()); PageInfo> list = new PageInfo<>(containerMapper.exportScrap(scrap)); sheetDataList.add(head); for(Map userMap : list.getList()){ List listSheet = new ArrayList<>(); for(String key: userMap.keySet()){ listSheet.add(userMap.get(key)); } sheetDataList.add(listSheet); } //当前时间 Date time = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMddHHmmss"); ExcelUtils.export(response, "废弃信息数据导出" + sdf.format(time), sheetDataList); }catch (Exception e){ e.printStackTrace(); } } @Override @Transactional(rollbackFor = Exception.class) public Map delCon(String id) { Map map = new HashMap<>(); try{ containerMapper.delContainer(id); map.put("msg", "200"); }catch (Exception e){ e.printStackTrace(); map.put("msg", "500"); map.put("errMsg", "服务器请求异常,请稍后再试"); } return map; } }