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.exception.GlobleException; 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.bean.SysUsers; import com.matrix.system.common.tools.ResponseHeadUtil; import com.matrix.system.constance.Dictionary; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.hive.bean.SysAllotDetail; import com.matrix.system.hive.bean.SysAllottedInfo; import com.matrix.system.hive.dao.SysAllotDetailDao; import com.matrix.core.tools.DateUtil; import com.matrix.system.hive.service.SysAllottedInfoService; 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.OutputStream; import java.net.URLDecoder; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; /** * 调拨 * * @author jiangyouyao * @date 2016-07-20 */ @Controller @RequestMapping(value = "admin/allotted") public class AllottedInfoController extends BaseController { @Resource private SysAllottedInfoService currentService; @Resource private SysAllotDetailDao sysAllotDetailDao; /** * 列表显示 */ @RequestMapping(value = "/showList") public @ResponseBody AjaxResult showList(SysAllottedInfo sysAllottedInfo, PaginationVO pageVo) { QueryUtil.setQueryLimitCom(sysAllottedInfo); List dataList = currentService.findInPage(sysAllottedInfo, pageVo); AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, currentService.findTotal(sysAllottedInfo)); return result; } /** * 新增或修改页面 */ @RequestMapping(value = "/addOrModify") @RemoveRequestToken public @ResponseBody AjaxResult addOrModify(SysAllottedInfo sysAllottedInfo) { //调入仓库和调出仓库不能是同一个仓库 if (sysAllottedInfo.getAllottedOutstoreId() == sysAllottedInfo.getAllottedInstoreId()) { throw new GlobleException("调入仓库和调出仓库不能相同"); } if (sysAllottedInfo.getId() != null) { return modify(currentService, sysAllottedInfo, "调拨"); } else { QueryUtil.setQueryLimitCom(sysAllottedInfo); return add(currentService, sysAllottedInfo, "调拨"); } } /** * 进入门店调拨修改界面 */ @RequestMapping(value = "/editForm") @SaveRequestToken public String editForm(Long id) { SysAllottedInfo sysAllottedInfo; if (id != null) { sysAllottedInfo = currentService.findById(id); List sysAllotDetails = sysAllotDetailDao.selectAllottedDetailByOrderId(id); sysAllottedInfo.setSysAllotDetails(sysAllotDetails); WebUtil.getRequest().setAttribute("obj", sysAllottedInfo); } return "admin/hive/store/allottedinfo-form"; } /** * 进入库存调拨修改界面 */ @RequestMapping(value = "/editFormAll") @SaveRequestToken public String editFormAll(Long id) { SysAllottedInfo sysAllottedInfo; if (id != null) { sysAllottedInfo = currentService.findById(id); List sysAllotDetails = sysAllotDetailDao.selectAllottedDetailByOrderId(id); sysAllottedInfo.setSysAllotDetails(sysAllotDetails); WebUtil.getRequest().setAttribute("obj", sysAllottedInfo); } return "admin/hive/instore/allottedinfo-form"; } /** * 删除 */ @RequestMapping(value = "/del") public @ResponseBody AjaxResult del(String keys) { return remove(currentService, keys); } /** * 进入查看页面 */ @RequestMapping(value = "/lookInfo") public String lookInfo(Long id) { SysAllottedInfo sysAllottedInfo; if (id != null) { sysAllottedInfo = currentService.findById(id); List sysAllotDetails = sysAllotDetailDao.selectAllottedDetailByOrderId(id); sysAllottedInfo.setSysAllotDetails(sysAllotDetails); int count = 0; for (SysAllotDetail allDetail : sysAllottedInfo.getSysAllotDetails()) { count += allDetail.getReceiveTotal(); } WebUtil.getRequest().setAttribute("count", count); WebUtil.getRequest().setAttribute("obj", sysAllottedInfo); } return "admin/hive/instore/allottedinfo-look"; } /** * 进入审核页面 */ @RequestMapping(value = "/checkInfo") public String checkInfo(Long id) { SysAllottedInfo sysAllottedInfo; if (id != null) { sysAllottedInfo = currentService.findById(id); List sysAllotDetails = sysAllotDetailDao.selectAllottedDetailByOrderId(id); sysAllottedInfo.setSysAllotDetails(sysAllotDetails); WebUtil.getRequest().setAttribute("obj", sysAllottedInfo); } return "admin/hive/instore/allottedinfo-check"; } /** * 审核 */ @RequestMapping(value = "/check") public @ResponseBody AjaxResult check(SysAllottedInfo sysAllottedInfo) { int i = currentService.check(sysAllottedInfo); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "审核成功"); } else { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "审核失败"); } } /** * 撤销审核 * * @param sysAllottedInfo * @return AjaxResult 返回类型 * @throws * @Title: unCheck * @author:jyy * @date 2016年8月22日 下午7:56:05 */ @RequestMapping(value = "/unCheck") public @ResponseBody AjaxResult unCheck(SysAllottedInfo sysAllottedInfo) { int i = currentService.unCheck(sysAllottedInfo); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "撤销成功"); } else { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "撤销失败"); } } /** * 确认发货 * * @param sysAllottedInfo * @return AjaxResult 返回类型 * @throws * @Title: sendGoods * @author:jyy * @date 2016年8月23日 上午9:22:18 */ @RequestMapping(value = "/sendGoods") public @ResponseBody AjaxResult sendGoods(SysAllottedInfo sysAllottedInfo) { int i = currentService.sendGoods(sysAllottedInfo); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "发货成功"); } else { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "撤销失败"); } } /** * 确认收货 * * @param sysAllottedInfo * @return AjaxResult 返回类型 * @throws * @Title: rejectGoods * @author:jyy * @date 2016年8月23日 上午9:22:18 */ @RequestMapping(value = "/rejectGoods") public @ResponseBody AjaxResult rejectGoods(SysAllottedInfo sysAllottedInfo) { int i = currentService.rejectGoods(sysAllottedInfo); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "收货成功"); } else { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "撤销失败"); } } /** * 不予审核方法,做权限控制 */ @RequestMapping(value = "/addcheckremark") public @ResponseBody AjaxResult addcheckremark(SysAllottedInfo sysAllottedInfo) { //1.判断是否有修改的权限 SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); if (user.getRoleName().contains(Dictionary.USER_ROLE_PLZG) || user.getRoleName().contains(Dictionary.USER_ROLE_CCZG)) { //2.去数据库判断该单的状态,如果审核通过不能修改 SysAllottedInfo checkAllottedInfo = currentService.findById(sysAllottedInfo.getId()); if (checkAllottedInfo != null && !(checkAllottedInfo.getCheckStatus().equals(Dictionary.CHECK_STATUS_DSH))) { throw new GlobleException("该单据状态为" + checkAllottedInfo.getCheckStatus() + ",不可再审核!"); } //3、满足条件则更改 sysAllottedInfo.setCheckStatus(Dictionary.CHECK_STATUS_SHWTG); int count = currentService.update(sysAllottedInfo); if (count > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, null); } else { return new AjaxResult(AjaxResult.STATUS_SUCCESS, null); } } else { throw new GlobleException("审核人必须为配料主管或者仓库主管!"); } } /** * @param @param model * @param @param request * @param @param response * @param @param vipInfo * @param @return 设定文件 * @return ModelAndView 返回类型 * @throws * @author jiangyouyao * @Title: report * 调拨单导出 */ @RequestMapping(value = "/exportExcel") public void report(ModelMap model, HttpServletRequest request, HttpServletResponse response, SysAllottedInfo sysAllottedInfo, String gridName) throws Exception { if (sysAllottedInfo.getCheckStatus() != null && !"".equals(sysAllottedInfo.getCheckStatus())) { sysAllottedInfo.setCheckStatus(URLDecoder.decode(sysAllottedInfo.getCheckStatus(), "UTF-8")); } if (sysAllottedInfo.getAllottedType() != null && !"".equals(sysAllottedInfo.getAllottedType())) { sysAllottedInfo.setAllottedType(URLDecoder.decode(sysAllottedInfo.getAllottedType(), "UTF-8")); } List res = new ArrayList<>(); ExcelSheetPO orderSheet = new ExcelSheetPO(); String title = "调拨单明细"; orderSheet.setSheetName(title); orderSheet.setTitle(title); String[] header = {"调拨单编号", "调拨类型", "调出仓库", "调入仓库", "审核状态", "日期", "制单人", "审核人", "备注", "审核意见"}; orderSheet.setHeaders(header); QueryUtil.setQueryLimitCom(sysAllottedInfo); List dataList = currentService.findInPage(sysAllottedInfo, null); List> list = new ArrayList<>(); if (dataList.size() > 0) { for (SysAllottedInfo item : dataList) { List temp = new ArrayList<>(); temp.add(item.getAllottedId()); temp.add(item.getAllottedType()); temp.add(item.getAllottedOutstoreName()); temp.add(item.getAllottedInstoreName()); temp.add(item.getCheckStatus()); temp.add(DateUtil.dateToString(item.getAllottedDate(), DateUtil.DATE_FORMAT_MM)); temp.add(item.getMakingManName()); temp.add(item.getAppManName()); temp.add(item.getAllottedRemark()); 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); } }