package com.matrix.system.hive.action; import com.matrix.core.anotations.RemoveRequestToken; import com.matrix.core.anotations.SaveRequestToken; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; import com.matrix.core.tools.WebUtil; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.hive.bean.SysOutStore; import com.matrix.system.hive.bean.SysOutStoreItem; import com.matrix.system.hive.dao.SysOutStoreItemDao; import com.matrix.system.hive.dao.WarehouseDao; import com.matrix.system.hive.plugin.util.ExcelUtil; import com.matrix.system.hive.service.SysOutStoreService; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.ServletRequestDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; /** * 出库 * * @author jiangyouyao * @date 2016-07-25 */ @Controller @RequestMapping(value = "admin/outstore") public class OutStoreController extends BaseController { @Resource private SysOutStoreService currentService; private SysOutStoreItemDao outStoreItemDao; public static final String fnCode = "outStore"; public static final String search = fnCode + ":search"; public static final String edit = fnCode + ":edit"; public static final String del = fnCode + ":del"; public static final String add = fnCode + ":add"; public static final String excelOut = fnCode + ":excelOut"; /** * 列表显示 */ @Autowired WarehouseDao warehouseDao; @RequestMapping(value = "/showList") public @ResponseBody AjaxResult showList(SysOutStore sysOutStore, PaginationVO pageVo) { SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); sysOutStore.setShopId(users.getShopId()); return showList(currentService, sysOutStore, pageVo); } /** * 添加或修改出库单 */ @RequestMapping(value = "/addOrModify") @RemoveRequestToken public @ResponseBody AjaxResult addOrModify(SysOutStore sysOutStore) { if (sysOutStore.getId() != null) { return modify(currentService, sysOutStore, "出库单"); } else { return add(currentService, sysOutStore, "出库单"); } } @RequestMapping(value = "/addOrModifyJson") @ResponseBody public AjaxResult addOrModifyJson(@RequestBody SysOutStore sysOutStore) { SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); if (sysOutStore.getId() != null) { return modify(currentService, sysOutStore, "出库单"); } else { return add(currentService, sysOutStore, "出库单"); } } @RequestMapping(value = "/editForm") @SaveRequestToken public String editForm() { return "admin/hive/store/outStore-form"; } /** * 弹出框,积分规则 */ @RequestMapping(value = "/findById") public @ResponseBody AjaxResult findById(Long id) { SysOutStore sysOutStore = currentService.findById(id); List outStoreItemList= outStoreItemDao.selectByOrderId(id); sysOutStore.setOutStoreItems(outStoreItemList); return AjaxResult.buildSuccessInstance(Arrays.asList(sysOutStore)); } @RequestMapping(value = "/toCheck") @SaveRequestToken public String toCheck(Long id, HttpServletRequest request) { SysOutStore sysOutStore; if (id != null) { sysOutStore = currentService.findById(id); request.setAttribute("obj", sysOutStore); } return "admin/hive/store/outStore-check"; } @RequestMapping(value = "/checkForm") @RemoveRequestToken public @ResponseBody AjaxResult checkForm(SysOutStore sysOutStore) { int i=0; if (sysOutStore.getId() != null) { i=currentService.checkInfo(sysOutStore); } if(i>0){ return new AjaxResult(AjaxResult.STATUS_SUCCESS, "审核成功!"); } else{ return new AjaxResult(AjaxResult.STATUS_FAIL, "审核失败"); } } @RequestMapping(value = "/lookForm") @SaveRequestToken public String lookForm(Long id, HttpServletRequest request) { SysOutStore sysOutStore; if (id != null) { sysOutStore = currentService.findById(id); request.setAttribute("obj", sysOutStore); } return "admin/hive/store/outStore-look"; } /** * @param bin */ @InitBinder public void initBinder(ServletRequestDataBinder bin) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); CustomDateEditor dateEditor = new CustomDateEditor(format, true); bin.registerCustomEditor(Date.class, dateEditor); } /** * 导出库存 * @param model * @param request * @param response * @return */ @RequestMapping(value = "/exportExcel") public @ResponseBody ModelAndView report(ModelMap model, HttpServletRequest request, HttpServletResponse response, SysOutStore sysOutStore) { // 这里是从数据库里查数据并组装成我们想要的数据结构的过程 QueryUtil.setQueryLimit(sysOutStore); List dataList = currentService.findInPage(sysOutStore, null); List> list = new ArrayList<>(); if (dataList.size() > 0) { for (SysOutStore outStore : dataList) { List outStoreItemList = outStoreItemDao.selectByOrderId(sysOutStore.getId()); for (SysOutStoreItem obj:outStoreItemList) { List temp = new ArrayList<>(); temp.add(outStore.getShopName()); temp.add(outStore.getSuName()); temp.add(outStore.getServiceNo()); temp.add(obj.getGoods().getName()); temp.add(obj.getGoods().getName()); temp.add(obj.getAmount()); temp.add(obj.getRemark()); list.add(temp); } } } String[] tdNames ={ "产品名称", "门店名称","服务单号","商品名称", "存货名称", "数量","备注"}; XSSFWorkbook workbook = ExcelUtil.createSimple2007("出库明细",tdNames,list ); return null; } }