/* * Copyright [2020] [MaxKey of copyright http://www.maxkey.top] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.maxkey.web.contorller; import java.util.HashMap; import java.util.List; import org.apache.mybatis.jpa.persistence.JpaPageResults; import org.maxkey.constants.ConstantsOperateMessage; import org.maxkey.entity.ExcelImport; import org.maxkey.entity.Organizations; import org.maxkey.persistence.service.OrganizationsService; import org.maxkey.web.WebContext; import org.maxkey.web.component.TreeNode; import org.maxkey.web.component.TreeNodeList; import org.maxkey.web.message.Message; import org.maxkey.web.message.MessageScope; import org.maxkey.web.message.MessageType; import org.maxkey.web.message.OperateType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping({"/orgs"}) public class OrganizationsController { static final Logger _logger = LoggerFactory.getLogger(OrganizationsController.class); @Autowired OrganizationsService organizationsService; @ResponseBody @RequestMapping({"/tree"}) public List> organizationsTree(@RequestParam(value = "id", required = false) String id) { _logger.debug("organizationsTree id :" + id); Organizations queryOrg = new Organizations(); List organizationsList = this.organizationsService.queryOrgs(queryOrg); TreeNodeList treeNodeList = new TreeNodeList(); for (Organizations org : organizationsList) { TreeNode treeNode = new TreeNode(org.getId(), org.getName()); if (org.getHasChild() != null && org.getHasChild().startsWith("Y")) { treeNode.setHasChild(); } treeNode.setAttr("data", org); treeNode.setPId(org.getParentId()); if (org.getId().equals("1")) { treeNode.setAttr("open", Boolean.valueOf(true)); } else { treeNode.setAttr("open", Boolean.valueOf(false)); } treeNodeList.addTreeNode(treeNode.getAttr()); } return treeNodeList.getTreeNodeList(); } @RequestMapping({ "/list" }) public ModelAndView orgsTreeList() { return new ModelAndView("orgs/orgsList"); } @RequestMapping(value = { "/pageresults" }) @ResponseBody public JpaPageResults pageResults(@ModelAttribute("orgs") Organizations orgs) { return organizationsService.queryPageResults(orgs); } @RequestMapping({"/orgsSelect/{deptId}/{department}"}) public ModelAndView orgsSelect(@PathVariable("deptId") String deptId, @PathVariable("department") String department) { ModelAndView modelAndView = new ModelAndView("orgs/orgsSelect"); modelAndView.addObject("deptId", deptId); modelAndView.addObject("department", department); return modelAndView; } @RequestMapping(value = { "/forwardAdd" }) public ModelAndView forwardAdd(@ModelAttribute("org") Organizations org) { ModelAndView modelAndView=new ModelAndView("/orgs/orgsAdd"); org =organizationsService.get(org.getId()); modelAndView.addObject("model",org); return modelAndView; } @ResponseBody @RequestMapping({"/add"}) public Message insert(@ModelAttribute("org") Organizations org) { _logger.debug("-Add :" + org); if (null == org.getId() || org.getId().equals("")) { org.generateId(); } if (this.organizationsService.insert(org)) { return new Message(WebContext.getI18nValue("message.action.insert.success"), MessageType.success); } return new Message(WebContext.getI18nValue("message.action.insert.success"), MessageType.error); } @ResponseBody @RequestMapping({"/query"}) public Message query(@ModelAttribute("org") Organizations org) { _logger.debug("-query :" + org); if (this.organizationsService.load(org) != null) { return new Message(WebContext.getI18nValue("message.action.insert.success"), MessageType.success); } return new Message(WebContext.getI18nValue("message.action.insert.error"), MessageType.error); } @RequestMapping(value = { "/forwardUpdate/{id}" }) public ModelAndView forwardUpdate(@PathVariable("id") String id) { ModelAndView modelAndView=new ModelAndView("/orgs/orgsUpdate"); Organizations org =organizationsService.get(id); modelAndView.addObject("model",org); return modelAndView; } @ResponseBody @RequestMapping({"/update"}) public Message update(@ModelAttribute("org") Organizations org) { _logger.debug("-update organization :" + org); if (this.organizationsService.update(org)) { return new Message(WebContext.getI18nValue("message.action.update.success"), MessageType.success); } return new Message(WebContext.getI18nValue("message.action.update.error"), MessageType.error); } @ResponseBody @RequestMapping({"/delete"}) public Message delete(@ModelAttribute("org") Organizations org) { _logger.debug("-delete organization :" + org); if (this.organizationsService.batchDelete(org.getId())) { return new Message(WebContext.getI18nValue("message.action.delete.success"), MessageType.success); } return new Message(WebContext.getI18nValue("message.action.delete.success"), MessageType.error); } @RequestMapping({"/orgUsersList"}) public ModelAndView orgUsersList() { return new ModelAndView("orgs/orgUsersList"); } @RequestMapping(value = "/import") public ModelAndView importing(@ModelAttribute("excelImportFile")ExcelImport excelImportFile) { ModelAndView modelAndView=new ModelAndView("/orgs/orgsImport"); if (excelImportFile.getExcelFile() != null && !excelImportFile.getExcelFile().isEmpty() && organizationsService.importing(excelImportFile.getExcelFile())) { new Message(WebContext.getI18nValue(ConstantsOperateMessage.INSERT_SUCCESS), null, MessageType.success, OperateType.add, MessageScope.DB); }else { new Message(WebContext.getI18nValue(ConstantsOperateMessage.INSERT_ERROR), MessageType.error); } return modelAndView; } }