package com.ruoyi.project.system.company.controller; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.security.ShiroUtils; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.domain.Ztree; import com.ruoyi.framework.web.page.TableDataInfo; import com.ruoyi.project.system.company.domain.Company; import com.ruoyi.project.system.company.service.ICompanyService; import com.ruoyi.project.system.dept.domain.Dept; import com.ruoyi.project.system.dept.service.IDeptService; import com.ruoyi.project.tr.region.domain.Region; import com.ruoyi.project.tr.region.service.IRegionService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 公司信息Controller * * @author ruoyi * @date 2020-05-04 */ @Controller @RequestMapping("/system/company") public class CompanyController extends BaseController { private String prefix = "system/company"; @Autowired private ICompanyService companyService; @Autowired private IRegionService regionService; @Autowired private IDeptService deptService; @RequiresPermissions("system:company:view") @GetMapping() public String company() { return prefix + "/company"; } @GetMapping("/selectCompanyList") public String selectCompanyList() { return prefix + "/selectCompanyList"; } /** * 查询公司信息列表 */ @RequiresPermissions("system:company:list") @PostMapping("/list") @ResponseBody public TableDataInfo list(Company company) { startPage(); List list = companyService.selectCompanyList(company); return getDataTable(list); } /** * 查询公司信息列表 */ @RequiresPermissions("system:company:list") @PostMapping("/treeList") @ResponseBody public List treeList(Company company) { List list = companyService.selectCompanyList(company); return list; } /** * 导出公司信息列表 */ @RequiresPermissions("system:company:export") @Log(title = "公司信息", businessType = BusinessType.EXPORT) @PostMapping("/export") @ResponseBody public AjaxResult export(Company company) { List list = companyService.selectCompanyList(company); ExcelUtil util = new ExcelUtil(Company.class); return util.exportExcel(list, "company"); } /** * 新增公司信息 */ @GetMapping(value = {"/add/{companyId}", "/add"}) public String add(@PathVariable(value = "companyId", required = false) Long companyId, ModelMap mmap) { if (StringUtils.isNotNull(companyId)) { mmap.put("company", companyService.selectCompanyById(companyId)); } return prefix + "/add"; } /** * 新增保存公司信息 */ @RequiresPermissions("system:company:add") @Log(title = "公司信息", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody @Transactional public AjaxResult addSave(Company company) { int num = companyService.insertCompany(company); //根据公司id 增加一个顶级的部门 Long companyId = company.getCompanyId(); //增加一个顶级的区域 Region region = new Region(); region.setParentId(0L); region.setAncestors("0"); region.setRegionName(company.getCompanyName()); region.setOrderNum("0"); region.setCreateBy(ShiroUtils.getSysUser().getUserName()); region.setCompanyId(companyId); regionService.insertRegion(region); //增加一个顶级的部门 Dept dept = new Dept(); dept.setParentId(0L); dept.setAncestors("0"); dept.setDeptName(company.getCompanyName()); dept.setOrderNum("0"); dept.setCreateBy(ShiroUtils.getSysUser().getUserName()); dept.setCompanyId(companyId); deptService.insertDept(dept); return toAjax(num); } /** * 查询当前用户所属的公司信息 * * @param mmap * @return */ @GetMapping("/editByCompanyId") public String edit(ModelMap mmap) { Company company = companyService.selectCompanyById(ShiroUtils.getSysUser().getCompanyId()); mmap.put("company", company); return prefix + "/editByCompanyId"; } /** * 修改公司信息 */ @GetMapping("/edit/{companyId}") public String edit(@PathVariable("companyId") Long companyId, ModelMap mmap) { Company company = companyService.selectCompanyById(companyId); mmap.put("company", company); return prefix + "/edit"; } /** * 修改保存公司信息 */ @RequiresPermissions("system:company:edit") @Log(title = "公司信息", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(Company company) { return toAjax(companyService.updateCompany(company)); } /** * 删除公司信息 */ @RequiresPermissions("system:company:remove") @Log(title = "公司信息", businessType = BusinessType.DELETE) @PostMapping("/remove") @ResponseBody public AjaxResult remove(String ids) { return toAjax(companyService.deleteCompanyByIds(ids)); } /** * 删除 */ @Log(title = "公司管理", businessType = BusinessType.DELETE) @RequiresPermissions("system:company:remove") @GetMapping("/remove/{companyId}") @ResponseBody public AjaxResult remove(@PathVariable("companyId") Long companyId) { if (companyService.selectCompanyCount(companyId) > 0) { return AjaxResult.warn("存在下级公司,不允许删除"); } return toAjax(companyService.deleteCompanyById(companyId)); } /** * 选择公司信息树 */ @GetMapping(value = {"/selectCompanyTree/{companyId}", "/selectCompanyTree/"}) public String selectCompanyTree(@PathVariable(value = "companyId", required = false) Long companyId, ModelMap mmap) { if (StringUtils.isNotNull(companyId)) { mmap.put("company", companyService.selectCompanyById(companyId)); } return prefix + "/tree"; } /** * 加载公司信息树列表 */ @GetMapping("/treeData") @ResponseBody public List treeData() { List ztrees = companyService.selectCompanyTree(); return ztrees; } /** * 查看公司信息 */ @GetMapping("/detail/{companyId}") public String detail(@PathVariable("companyId") Long companyId, ModelMap mmap) { Company company = companyService.selectCompanyById(companyId); mmap.put("company", company); return prefix + "/detail"; } /** * 公司四色平面图 */ @GetMapping("/detailCompanyFourColorMap/{companyId}") public String detailCompanyFourColorMap(@PathVariable("companyId") Long companyId, ModelMap mmap) { Company company = companyService.selectCompanyById(companyId); mmap.put("company", company); return prefix + "/detailCompanyFourColorMap"; } /** * 岗位安全风险柱状图 */ @GetMapping("/detailPostSafetyRiskBarChartUrl/{companyId}") public String detailPostSafetyRiskBarChartUrl(@PathVariable("companyId") Long companyId, ModelMap mmap) { Company company = companyService.selectCompanyById(companyId); mmap.put("company", company); return prefix + "/detailPostSafetyRiskBarChartUrl"; } }