package com.jeesite.modules.mes.web; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson.JSONValidator; import com.jeesite.common.codec.EncodeUtils; import com.jeesite.common.lang.DateUtils; import com.jeesite.common.utils.excel.ExcelExport; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.jeesite.common.config.Global; import com.jeesite.common.entity.Page; import com.jeesite.common.web.BaseController; import com.jeesite.modules.mes.entity.MesMaterial; import com.jeesite.modules.mes.service.MesMaterialService; /** * 物料表Controller * @author mes * @version 2024-03-29 */ @Controller @RequestMapping(value = "${adminPath}/mes/mesMaterial") public class MesMaterialController extends BaseController { @Autowired private MesMaterialService mesMaterialService; /** * 获取数据 */ @ModelAttribute public MesMaterial get(String id, boolean isNewRecord) { return mesMaterialService.get(id, isNewRecord); } /** * 查询列表 */ @RequiresPermissions("mes:mesMaterial:view") @RequestMapping(value = {"list", ""}) public String list(MesMaterial mesMaterial, Model model) { model.addAttribute("mesMaterial", mesMaterial); return "modules/mes/mesMaterialList"; } /** * 查询列表数据 */ @RequiresPermissions("mes:mesMaterial:view") @RequestMapping(value = "listData") @ResponseBody public Page listData(MesMaterial mesMaterial, HttpServletRequest request, HttpServletResponse response) { mesMaterial.setPage(new Page<>(request, response)); Page page = mesMaterialService.findPage(mesMaterial); return page; } /** * 查看编辑表单 */ @RequiresPermissions("mes:mesMaterial:view") @RequestMapping(value = "form") public String form(MesMaterial mesMaterial, Model model) { model.addAttribute("mesMaterial", mesMaterial); return "modules/mes/mesMaterialForm"; } /** * 保存数据 */ @RequiresPermissions("mes:mesMaterial:edit") @PostMapping(value = "save") @ResponseBody public String save(@Validated MesMaterial mesMaterial) { mesMaterialService.save(mesMaterial); return renderResult(Global.TRUE, text("保存物料表成功!")); } /** * 停用数据 */ @RequiresPermissions("mes:mesMaterial:edit") @RequestMapping(value = "disable") @ResponseBody public String disable(MesMaterial mesMaterial) { mesMaterial.setStatus(MesMaterial.STATUS_DISABLE); mesMaterialService.updateStatus(mesMaterial); return renderResult(Global.TRUE, text("停用物料表成功")); } /** * 启用数据 */ @RequiresPermissions("mes:mesMaterial:edit") @RequestMapping(value = "enable") @ResponseBody public String enable(MesMaterial mesMaterial) { mesMaterial.setStatus(MesMaterial.STATUS_NORMAL); mesMaterialService.updateStatus(mesMaterial); return renderResult(Global.TRUE, text("启用物料表成功")); } /** * 删除数据 */ @RequiresPermissions("mes:mesMaterial:edit") @RequestMapping(value = "delete") @ResponseBody public String delete(MesMaterial mesMaterial) { mesMaterialService.delete(mesMaterial); return renderResult(Global.TRUE, text("删除物料表成功!")); } /** * 导出数据 */ @RequiresPermissions("mes:mesMaterial:view") @RequestMapping(value = "exportData") public void exportData(MesMaterial mesMaterial, HttpServletResponse response) { List list = mesMaterialService.findList(mesMaterial); String fileName = "物料表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx"; try(ExcelExport ee = new ExcelExport("物料表", MesMaterial.class)){ ee.setDataList(list).write(response, fileName); } } @RequiresPermissions("mes:mesMaterial:view") @RequestMapping(value = "preventSelect") public String userSelect(MesMaterial mesMaterial, String selectData, Model model) { String selectDataJson = EncodeUtils.decodeUrl(selectData); if (selectDataJson != null && JSONValidator.from(selectDataJson).validate()){ model.addAttribute("selectData", selectDataJson); } model.addAttribute("warehouse", mesMaterial); return "modules/mes/mesMaterialSelect"; } }