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<SysAllottedInfo> 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<SysAllotDetail> 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<SysAllotDetail> 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<SysAllotDetail> 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<SysAllotDetail> 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<ExcelSheetPO> res = new ArrayList<>();
|
ExcelSheetPO orderSheet = new ExcelSheetPO();
|
String title = "调拨单明细";
|
orderSheet.setSheetName(title);
|
orderSheet.setTitle(title);
|
String[] header = {"调拨单编号", "调拨类型", "调出仓库", "调入仓库", "审核状态", "日期", "制单人", "审核人", "备注", "审核意见"};
|
orderSheet.setHeaders(header);
|
QueryUtil.setQueryLimitCom(sysAllottedInfo);
|
List<SysAllottedInfo> dataList = currentService.findInPage(sysAllottedInfo, null);
|
List<List<Object>> list = new ArrayList<>();
|
if (dataList.size() > 0) {
|
for (SysAllottedInfo item : dataList) {
|
List<Object> 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);
|
|
}
|
}
|