package com.matrix.system.hive.action; import com.matrix.core.anotations.RemoveRequestToken; import com.matrix.core.anotations.SaveRequestToken; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; import com.matrix.core.tools.DateUtil; 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.tools.ResponseHeadUtil; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.hive.bean.SysCheckInfo; import com.matrix.core.tools.DateUtil; import com.matrix.system.hive.service.CodeService; import com.matrix.system.hive.service.SysCheckDetailService; import com.matrix.system.hive.service.SysCheckInfoService; import com.matrix.system.hive.service.SysStoreInfoService; 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.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.net.URLDecoder; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 盘点 * * @author jiangyouyao * @date 2016-07-20 */ @Controller @RequestMapping(value = "admin/check") public class CheckInfoController extends BaseController { @Resource private SysCheckInfoService currentService; @Resource private SysCheckDetailService checkDetailService; @Resource private SysStoreInfoService sysStoreInfoService; @Resource private CodeService codeService; /** * 列表显示 */ @RequestMapping(value = "/showList") public @ResponseBody AjaxResult showList(SysCheckInfo sysCheckInfo, PaginationVO pageVo) { QueryUtil.setQueryLimit(sysCheckInfo); return showList(currentService, sysCheckInfo, pageVo); } /** * 新增或修改页面 */ @RequestMapping(value = "/addOrModify") @RemoveRequestToken public @ResponseBody AjaxResult addOrModify(SysCheckInfo sysCheckInfo) { QueryUtil.setQueryLimit(sysCheckInfo); if (sysCheckInfo.getId() != null) { return modify(currentService, sysCheckInfo, "盘点"); } else { QueryUtil.setQueryLimit(sysCheckInfo); return add(currentService, sysCheckInfo, "盘点"); } } /** * 进入修改界面 */ @RequestMapping(value = "/editForm") @SaveRequestToken public String editForm(Long id) { SysCheckInfo sysCheckInfo; if (id != null) { sysCheckInfo = currentService.findById(id); WebUtil.getRequest().setAttribute("obj", sysCheckInfo); } return "admin/hive/instore/checkinfo-form"; } /** * 删除 */ @RequestMapping(value = "/del") public @ResponseBody AjaxResult del(Long keys) { int i = currentService.removeById(keys); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "删除成功"); } else { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "删除失败"); } } /** * 进入查看页面 */ @RequestMapping(value = "/lookInfo") public String lookInfo(Long id) { SysCheckInfo sysCheckInfo; if (id != null) { sysCheckInfo = currentService.findById(id); WebUtil.getRequest().setAttribute("obj", sysCheckInfo); } return "admin/hive/instore/checkinfo-look"; } /** * 进入盘点单明细 */ @RequestMapping(value = "/toCheckDetail") public String toCheckDetail(Long checkId) { SysCheckInfo checkInfo = currentService.findById(checkId); WebUtil.getRequest().setAttribute("obj", checkInfo); return "admin/hive/instore/checkDetail-list"; } @RequestMapping(value = "/toMobileCheckDetail") public String toMobileCheckDetail(Long checkId) { SysCheckInfo checkInfo = currentService.findById(checkId); WebUtil.getRequest().setAttribute("obj", checkInfo); return "admin/hive/mobile/store-check-detail"; } /** * 审核 */ @RequestMapping(value = "/check") public @ResponseBody AjaxResult check(SysCheckInfo sysCheckInfo) { int i = currentService.check(sysCheckInfo); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "审核成功"); } else { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "审核失败"); } } /** * @param bin */ @InitBinder public void initBinder(ServletRequestDataBinder bin) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); CustomDateEditor dateEditor = new CustomDateEditor(format, true); bin.registerCustomEditor(Date.class, dateEditor); } /** * @param @param model * @param @param request * @param @param response * @param @param vipInfo * @param @return 设定文件 * @return ModelAndView 返回类型 * @throws IOException * @throws * @author jiangyouyao * @Title: report * 盘点单导出 */ @RequestMapping(value = "/exportExcel") public void report(ModelMap model, HttpServletRequest request, HttpServletResponse response, SysCheckInfo sysCheckInfo) throws IOException { if (sysCheckInfo.getCheckType() != null && !"".equals(sysCheckInfo.getCheckType())) { sysCheckInfo.setCheckType(URLDecoder.decode(sysCheckInfo.getCheckType(), "UTF-8")); } if (sysCheckInfo.getCheckStatus() != null && !"".equals(sysCheckInfo.getCheckStatus())) { sysCheckInfo.setCheckStatus(URLDecoder.decode(sysCheckInfo.getCheckStatus(), "UTF-8")); } List res = new ArrayList<>(); ExcelSheetPO orderSheet = new ExcelSheetPO(); String title = "盘点信息"; orderSheet.setSheetName(title); orderSheet.setTitle(title); String[] header = {"盘点单类型", "盘点单编号", "盘点时间", "制单人", "审核人", "盘点状态", "备注", "审核意见"}; orderSheet.setHeaders(header); QueryUtil.setQueryLimit(sysCheckInfo); List dataList = currentService.findByModel(sysCheckInfo); List> list = new ArrayList<>(); if (dataList.size() > 0) { for (SysCheckInfo item : dataList) { List temp = new ArrayList<>(); temp.add(item.getCheckType()); temp.add(item.getCheckNo()); //时间转为字符串 String strDate = DateUtil.dateToString(item.getCheckDate(), DateUtil.DATE_FORMAT_DD); temp.add(strDate); temp.add(item.getMakingManName()); temp.add(item.getAppManName()); temp.add(item.getCheckStatus()); temp.add(item.getRemark()); temp.add(item.getAppRemark()); list.add(temp); } } orderSheet.setDataList(list); res.add(orderSheet); response = ResponseHeadUtil.setExcelHead(response); response.setHeader("Content-Disposition", "attachment;filename=" + 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); } }