Newer
Older
EMS-WEB-3.0 / src / main / java / com / casic / accessControl / user / web / CompanyController.java
zhangyingjie on 19 Dec 2020 5 KB 增加组织管理功能
package com.casic.accessControl.user.web;

import com.casic.accessControl.user.domain.Company;
import com.casic.accessControl.user.domain.User;
import com.casic.accessControl.user.dto.CompanyDto;
import com.casic.accessControl.user.manager.CompanyManager;
import com.casic.accessControl.util.DataTable;
import com.casic.accessControl.util.StringUtils;
import com.google.gson.Gson;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("company")
public class CompanyController {

    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @Resource
    private CompanyManager companyManager;


    @RequestMapping("company-info-list")
    public void list(String jsonParam, HttpServletResponse response, HttpSession session) {
        try {
            User user = (User) session.getAttribute(StringUtils.SYS_USER);
            DataTable<CompanyDto> companyList = companyManager.pageCompany(jsonParam, user);
            Gson gson = new Gson();
            String json = gson.toJson(companyList);
            response.setCharacterEncoding("utf-8");
            response.getWriter().write(json);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    @RequestMapping("company-info-delete")
    @ResponseBody
    public Map<String, Object> delete(@RequestParam(value = "id", required = true) Long id) {
        Map<String, Object> map = new HashMap<String, Object>();
        if (id == null) {
            map.put("success", false);
            map.put("message", "删除组织需要组织ID信息");
            return map;
        }
        if( id != null && id.equals(0L)){
            map.put("success", false);
            map.put("message", "该组织不能删除");
            return map;
        }
        List<Company> checkList = companyManager.getCompanisByParent(id);
        if(checkList != null && checkList.size() > 0){
            map.put("success", false);
            map.put("message", "该组织存在下属组织,不能删除");
            return map;
        }
        boolean temp = companyManager.deleteCompanyById(id);
        if (temp)
        {
            map.put("success", true);
            map.put("message", "组织删除成功");
        }
        else
        {
            map.put("success", false);
            map.put("message", "组织删除失败");
        }
        return map;
    }

    @RequestMapping("company-info-edit")
    public String edit(@RequestParam(value = "id", required = false) Long id, Model model,HttpSession session) {
        User user = (User) session.getAttribute(StringUtils.SYS_USER);
        CompanyDto companyDto = new CompanyDto();
        if(id != null){
            companyDto = companyManager.getCompanyDtoById(id);
        }
        List<Company> companies = companyManager.getParentCompanyList(user);
        List<CompanyDto> companyDtos = CompanyDto.Converts(companies);
        model.addAttribute("model", companyDto);
        model.addAttribute("companies",new Gson().toJson(companyDtos));
        return "company/company-info-edit";
    }

    @RequestMapping("company-info-save")
    @ResponseBody
    public Map<String,Object> save(@ModelAttribute CompanyDto companyDto,HttpSession session){
        //分为新增用户和编辑用户两种,区分标识为companyInfo的id是否为空
        Map<String, Object> map = new HashMap<String, Object>();

        if(companyDto.getId() != null && companyDto.getId().equals(0L)){
            map.put("success", false);
            map.put("message", "该组织不能编辑");
            return map;
        }

        if(companyDto!=null){
            if(companyManager.getCompanyByName(companyDto.getCompanyName(),companyDto.getId()) != null){
                map.put("success", false);
                map.put("message", "数据库中存在相同名称的组织,请更改组织名称");
                return map;
            }
            Company parentCompany = companyManager.getCompanyById(companyDto.getParentCompanyId());
            Company company = new Company();
            company.setId(companyDto.getId());
            company.setCompanyName(companyDto.getCompanyName());
            company.setParentCompany(parentCompany);
            company.setPhone(companyDto.getPhone());
            company.setIsValid(1);
            companyManager.saveCompany(company,session);
            if (company.getId() == null ) {//新增组织
                map.put("success", true);
                map.put("message", "新增组织成功");
            } else {
                map.put("success", true);
                map.put("message", "编辑组织成功");
            }

        }else{
            map.put("success", false);
            map.put("message", "用户信息为空");
        }
        return map;
    }
}