package com.matrix.system.hive.action; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; import com.matrix.core.tools.DateUtil; import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.WebUtil; import com.matrix.core.tools.excl.ExcelSheetPO; import com.matrix.core.tools.excl.ExcelVersion; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.tools.ResponseHeadUtil; import com.matrix.system.constance.Dictionary; import com.matrix.system.hive.bean.ShoppingGoods; import com.matrix.system.hive.bean.SysStoreInfo; import com.matrix.system.hive.dao.SysStoreInfoDao; import com.matrix.system.hive.service.SysStoreInfoService; import org.apache.poi.ss.formula.functions.T; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; /** * 库存 * * @author jiangyouyao * @date 2016-07-20 */ @Controller @RequestMapping(value = "admin/store") public class StoreController extends BaseController { @Resource private SysStoreInfoService currentService; @Resource private SysStoreInfoDao sysStoreInfoDao; //记录编辑前的值Before_Edit_Value public static final String BEV = "Store_BEV"; public static final String fnCode = "store"; public static final String fnCode1 = "store1"; public static final String fnCode2 = "store2"; public static final String search = ":search"; public static final String edit = ":edit"; public static final String del = ":del"; public static final String add = ":add"; public static final String excelOut = ":excelOut"; /** * 列表显示 */ @RequestMapping(value = "/showList") public @ResponseBody AjaxResult showList(SysStoreInfo sysStoreInfo, PaginationVO pageVo) { SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); sysStoreInfo.setShopId(users.getShopId()); sysStoreInfo.setCompanyId(users.getCompanyId()); if (StringUtils.isNotBlank(sysStoreInfo.getName())) { ShoppingGoods goods = new ShoppingGoods(); goods.setName(sysStoreInfo.getName()); sysStoreInfo.setGoods(goods); } List dataList = currentService.findInPage(sysStoreInfo, pageVo); AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, currentService.findTotal(sysStoreInfo)); return result; } /** * 按产品批次显示 * @param sysStoreInfo * @param pageVo * @return */ @RequestMapping(value = "/showCountList") public @ResponseBody AjaxResult showCountList(SysStoreInfo sysStoreInfo, PaginationVO pageVo) { SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); sysStoreInfo.setShopId(users.getShopId()); sysStoreInfo.setCompanyId(users.getCompanyId()); List dataList = sysStoreInfoDao.selectCountInPage(sysStoreInfo, pageVo); AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, sysStoreInfoDao.selectCountTotalRecord(sysStoreInfo)); return result; } /** * 新增或修改页面 */ @RequestMapping(value = "/addOrModify") public @ResponseBody AjaxResult addOrModify(SysStoreInfo sysStoreInfo) { if (!getMe().getShopRole().equals(Dictionary.FLAG_YES_Y)) { sysStoreInfo.setStoreId(getMe().getShopId()); } if (sysStoreInfo.getId() != null) { return modify(currentService, sysStoreInfo, "库存"); } else { return add(currentService, sysStoreInfo, "库存"); } } /** * 进入修改界面 */ @RequestMapping(value = "/editForm") public String editForm(Long id) { SysStoreInfo sysStoreInfo; if (id != null) { sysStoreInfo = currentService.findById(id); WebUtil.getRequest().setAttribute("obj", sysStoreInfo); } return "admin/hive/products/goods-form"; } /** * 删除 */ @RequestMapping(value = "/del") public @ResponseBody AjaxResult del(String keys) { return remove(currentService, keys); } /** * 库存按批次导出 */ @RequestMapping(value = "/storeExportExcel") public void storeExportExcel(SysStoreInfo sysStoreInfo, HttpServletResponse response) throws IOException { SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); sysStoreInfo.setShopId(users.getShopId()); sysStoreInfo.setCompanyId(users.getCompanyId()); if (StringUtils.isNotBlank(sysStoreInfo.getName())) { ShoppingGoods goods = new ShoppingGoods(); goods.setName(sysStoreInfo.getName()); sysStoreInfo.setGoods(goods); } doStoreInfoExportExcel(response,sysStoreInfo); } /** * 库存按批次导出-不区分门店 */ @RequestMapping(value = "/erpStoreExportExcel") public void erpStoreExportExcel(SysStoreInfo sysStoreInfo, HttpServletResponse response) throws IOException { SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); sysStoreInfo.setCompanyId(users.getCompanyId()); if (StringUtils.isNotBlank(sysStoreInfo.getName())) { ShoppingGoods goods = new ShoppingGoods(); goods.setName(sysStoreInfo.getName()); sysStoreInfo.setGoods(goods); } doStoreInfoExportExcel(response,sysStoreInfo); } /** * 按产品维度导出库存 */ @RequestMapping(value = "/goodsCountExportExcel") public void goodsCountExportExcel(ModelMap model, HttpServletRequest request, HttpServletResponse response, SysStoreInfo sysStoreInfo) throws IOException { SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); sysStoreInfo.setShopId(users.getShopId()); sysStoreInfo.setCompanyId(users.getCompanyId()); doGoodsCountExportExcel(response, sysStoreInfo); return; } /** * 按产品维度导出库存不区分门店 */ @RequestMapping(value = "/erpGoodsCountExportExcel") public void erpGoodsCountExportExcel(ModelMap model, HttpServletRequest request, HttpServletResponse response, SysStoreInfo sysStoreInfo) throws IOException { SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); sysStoreInfo.setCompanyId(users.getCompanyId()); doGoodsCountExportExcel(response, sysStoreInfo); return; } /** * 产品维度库存导出 */ private void doGoodsCountExportExcel(HttpServletResponse response, SysStoreInfo sysStoreInfo) throws IOException { List res = new ArrayList<>(); ExcelSheetPO orderSheet = new ExcelSheetPO(); String title = "库存明细"; orderSheet.setSheetName(title); orderSheet.setTitle(title); String[] header = {"产品名称", "产品编号", "库存量","入库平均价", "产品单位", "库存预警值", "所属仓库", "分类"}; orderSheet.setHeaders(header); List dataList = sysStoreInfoDao.selectCountInPage(sysStoreInfo, null); List> list = new ArrayList<>(); if (dataList.size() > 0) { for (SysStoreInfo item : dataList) { List temp = new ArrayList<>(); ShoppingGoods getGoods = item.getGoods(); if(getGoods!=null){ temp.add(getGoods.getName()); temp.add(getGoods.getGoodsNo()); temp.add(item.getStoreTotal()); temp.add(item.getGoodsPrice()); temp.add(getGoods.getUnit()); temp.add(getGoods.getAlarmNum()); temp.add(getGoods.getName()); temp.add(item.getStoreName()); list.add(temp); } } } orderSheet.setDataList(list); res.add(orderSheet); response = ResponseHeadUtil.setExcelHead(response); response.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(title + DateUtil.getTimeMark() + ".xlsx".trim(), "UTF-8")); OutputStream os = response.getOutputStream(); com.matrix.core.tools.excl.ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true); } /** * 库存明细导出 */ private void doStoreInfoExportExcel(HttpServletResponse response, SysStoreInfo sysStoreInfo) throws IOException { List res = new ArrayList<>(); ExcelSheetPO orderSheet = new ExcelSheetPO(); String title = "库存明批次汇总"; orderSheet.setSheetName(title); orderSheet.setTitle(title); String[] header = {"产品名称", "产品编号", "批次", "库存量","入库单价", "产品单位", "库存预警值", "所属仓库", "分类"}; orderSheet.setHeaders(header); List dataList = currentService.findInPage(sysStoreInfo, null); List> list = new ArrayList<>(); if (dataList.size() > 0) { for (SysStoreInfo item : dataList) { List temp = new ArrayList<>(); ShoppingGoods getGoods = item.getGoods(); if(getGoods!=null){ temp.add(getGoods.getName()); temp.add(getGoods.getGoodsNo()); temp.add(item.getBatch()); temp.add(item.getStoreTotal()); temp.add(item.getGoodsPrice()); temp.add(getGoods.getUnit()); temp.add(getGoods.getAlarmNum()); temp.add(getGoods.getName()); temp.add(item.getStoreName()); list.add(temp); } } } orderSheet.setDataList(list); res.add(orderSheet); response = ResponseHeadUtil.setExcelHead(response); response.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(title + DateUtil.getTimeMark() + ".xlsx".trim(), "UTF-8")); OutputStream os = response.getOutputStream(); com.matrix.core.tools.excl.ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true); } }