package com.jeesite.modules.mes.web; import com.jeesite.common.config.Global; import com.jeesite.common.collect.ListUtils; import com.jeesite.common.entity.Page; import com.jeesite.common.lang.DateUtils; import com.jeesite.common.lang.StringUtils; import com.jeesite.common.utils.excel.ExcelExport; import com.jeesite.common.utils.excel.annotation.ExcelField.Type; import com.jeesite.common.web.BaseController; import com.jeesite.modules.mes.entity.MesEmployee; import com.jeesite.modules.mes.service.MesEmployeeService; import org.apache.shiro.authz.annotation.Logical; 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 org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; @Controller @RequestMapping(value = "${adminPath}/mes/mesEmployee") public class MesEmployeeController extends BaseController { @Autowired private MesEmployeeService mesEmployeeService; @ModelAttribute public MesEmployee get(String empCode, boolean isNewRecord) { if (StringUtils.isNotBlank(empCode)) { MesEmployee employee = mesEmployeeService.get(new MesEmployee(empCode)); if (employee != null) { return employee; } } MesEmployee employee = new MesEmployee(); employee.setIsNewRecord(isNewRecord); return employee; } @RequiresPermissions("mes:mesEmployee:view") @RequestMapping(value = {"list", ""}) public String list(MesEmployee mesEmployee, Model model) { model.addAttribute("mesEmployee", mesEmployee); return "modules/mes/mesEmployeeList"; } @RequiresPermissions(value={"mes:mesEmployee:view", "sys:empUser:edit"}, logical= Logical.OR) @RequestMapping(value = "listData") @ResponseBody public Page listData(MesEmployee mesEmployee, HttpServletRequest request, HttpServletResponse response) { mesEmployee.setPage(new Page<>(request, response)); return mesEmployeeService.findPage(mesEmployee); } @RequiresPermissions("mes:mesEmployee:view") @RequestMapping(value = "form") public String form(MesEmployee mesEmployee, Model model) { model.addAttribute("mesEmployee", mesEmployee); model.addAttribute("ctrlPermi", Global.getConfig("user.adminCtrlPermi", "2")); return "modules/mes/mesEmployeeForm"; } @RequiresPermissions("mes:mesEmployee:edit") @PostMapping(value = "save") @ResponseBody public String save(@Validated MesEmployee mesEmployee) { mesEmployeeService.save(mesEmployee); return renderResult(Global.TRUE, text("保存员工信息成功!")); } /** * 导出员工信息数据 */ @RequiresPermissions("mes:mesEmployee:view") @RequestMapping(value = "exportData") public void exportData(MesEmployee mesEmployee, HttpServletResponse response) { List list = mesEmployeeService.findList(mesEmployee); String fileName = "\u5458\u5de5\u4fe1\u606f\u6570\u636e" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx"; try (ExcelExport ee = new ExcelExport("\u5458\u5de5\u4fe1\u606f\u6570\u636e", MesEmployee.class)) { ee.setDataList(list).write(response, fileName); } } /** * 下载员工信息导入模板 */ @RequiresPermissions("mes:mesEmployee:view") @RequestMapping(value = "importTemplate") public void importTemplate(HttpServletResponse response) { MesEmployee mesEmployee = new MesEmployee(); List list = ListUtils.newArrayList(mesEmployee); String fileName = "\u5458\u5de5\u4fe1\u606f\u5bfc\u5165\u6a21\u677f.xlsx"; try (ExcelExport ee = new ExcelExport("\u5458\u5de5\u4fe1\u606f\u6570\u636e", MesEmployee.class, Type.IMPORT)) { ee.setDataList(list).write(response, fileName); } } /** * 导入员工信息数据 */ @ResponseBody @RequiresPermissions("mes:mesEmployee:edit") @PostMapping(value = "importData") public String importData(MultipartFile file) { try { String message = mesEmployeeService.importData(file); return renderResult(Global.TRUE, "posfull:" + message); } catch (Exception ex) { return renderResult(Global.FALSE, "posfull:" + ex.getMessage()); } } @RequiresPermissions("mes:mesEmployee:edit") @RequestMapping(value = "disable") @ResponseBody public String disable(MesEmployee mesEmployee) { mesEmployee.setStatus(MesEmployee.STATUS_DISABLE); mesEmployeeService.updateStatus(mesEmployee); return renderResult(Global.TRUE, text("停用员工信息成功")); } @RequiresPermissions("mes:mesEmployee:edit") @RequestMapping(value = "enable") @ResponseBody public String enable(MesEmployee mesEmployee) { mesEmployee.setStatus(MesEmployee.STATUS_NORMAL); mesEmployeeService.updateStatus(mesEmployee); return renderResult(Global.TRUE, text("启用员工信息成功")); } @RequiresPermissions("mes:mesEmployee:edit") @RequestMapping(value = "delete") @ResponseBody public String delete(MesEmployee mesEmployee) { mesEmployeeService.delete(mesEmployee); return renderResult(Global.TRUE, text("删除员工信息成功!")); } @RequestMapping(value = "search") @ResponseBody public List search(String keyword) { MesEmployee employee = new MesEmployee(); if (StringUtils.isNotBlank(keyword)) { employee.setEmpName(keyword); } employee.setStatus(MesEmployee.STATUS_NORMAL); return mesEmployeeService.findList(employee); } @RequestMapping(value = "searchPage") public String searchPage(String keyword, Model model) { MesEmployee mesEmployee = new MesEmployee(); mesEmployee.setEmpName(keyword); model.addAttribute("mesEmployee", mesEmployee); model.addAttribute("keyword", keyword); return "modules/mes/mesEmployeeSelect"; } }