package com.matrix.system.hiveErp.action; 
 | 
  
 | 
import com.matrix.core.anotations.RemoveRequestToken; 
 | 
import com.matrix.core.anotations.SaveRequestToken; 
 | 
import com.matrix.core.constance.MatrixConstance; 
 | 
import com.matrix.core.constance.SystemErrorCode; 
 | 
import com.matrix.core.constance.SystemMessageCode; 
 | 
import com.matrix.core.exception.GlobleException; 
 | 
import com.matrix.core.pojo.AjaxResult; 
 | 
import com.matrix.core.pojo.PaginationVO; 
 | 
import com.matrix.core.tools.DateUtil; 
 | 
import com.matrix.core.tools.WebUtil; 
 | 
import com.matrix.core.tools.excl.ExcelSheetPO; 
 | 
import com.matrix.core.tools.excl.ExcelUtil; 
 | 
import com.matrix.core.tools.excl.ExcelVersion; 
 | 
import com.matrix.core.web.BaseAction; 
 | 
import com.matrix.system.common.bean.SysUsers; 
 | 
import com.matrix.system.common.constance.AppConstance; 
 | 
import com.matrix.system.common.constance.AppVocabularyCode; 
 | 
import com.matrix.system.common.service.SysUsersService; 
 | 
import com.matrix.system.common.tools.ResponseHeadUtil; 
 | 
import com.matrix.system.hive.action.util.QueryUtil; 
 | 
import org.apache.commons.lang.StringUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Controller; 
 | 
import org.springframework.ui.ModelMap; 
 | 
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.servlet.ModelAndView; 
 | 
  
 | 
import javax.servlet.http.HttpServletRequest; 
 | 
import javax.servlet.http.HttpServletResponse; 
 | 
import java.io.OutputStream; 
 | 
import java.net.URLEncoder; 
 | 
import java.util.ArrayList; 
 | 
import java.util.List; 
 | 
import java.util.Objects; 
 | 
  
 | 
/** 
 | 
 * @author 姜ø友瑶 
 | 
 * @description 公司管理员管理 
 | 
 * @email 935090232@qq.com 
 | 
 * @date 2016-06-26 
 | 
 */ 
 | 
@Controller 
 | 
@RequestMapping(value = "hiveErp/adminUsers") 
 | 
public class AdminUsersAction extends BaseAction { 
 | 
  
 | 
    @Autowired 
 | 
    private SysUsersService sysUsersService; 
 | 
  
 | 
  
 | 
    public static final String BEV = "SYSUSERS_BEV"; 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 列表显示 
 | 
     */ 
 | 
    @RequestMapping(value =  "/showList") 
 | 
    public @ResponseBody 
 | 
    AjaxResult showList(SysUsers sysUsers, PaginationVO pageVo) { 
 | 
        // 默认按创建时间排序 
 | 
        if (StringUtils.isBlank(pageVo.getSort())) { 
 | 
            pageVo.setSort("createTime"); 
 | 
            pageVo.setOrder("desc"); 
 | 
        } 
 | 
        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); 
 | 
        sysUsers.setCompanyId(user.getCompanyId()); 
 | 
        sysUsers.setSuUserType(AppConstance.USER_TYPE_EMPLOYEE); 
 | 
        sysUsers.setSuValid(SysUsers.VALID_Y); 
 | 
        List<SysUsers> dataList = sysUsersService.findInPage(sysUsers, pageVo); 
 | 
        AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, sysUsersService.findTotal(sysUsers)); 
 | 
        return result; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 新增管理员 
 | 
     * 
 | 
     * @param sysUsers 
 | 
     * @return 
 | 
     * @author JIANGYOUYAO 
 | 
     * @email 935090232@qq.com 
 | 
     * @date Dec 10, 2017 
 | 
     */ 
 | 
    @RemoveRequestToken 
 | 
    @PostMapping(value =  "/addAdmin") 
 | 
    public @ResponseBody 
 | 
    AjaxResult addAdmin(SysUsers sysUsers) { 
 | 
  
 | 
        SysUsers loginUser = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); 
 | 
        loginUser.setCreateBy(loginUser.getSuName()); 
 | 
        sysUsers.setCompanyId(loginUser.getCompanyId()); 
 | 
        int i = sysUsersService.addAdmin(sysUsers); 
 | 
        if (i > 0) { 
 | 
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.ADD_SUCCES, AppVocabularyCode.ADMIN); 
 | 
        } else { 
 | 
            throw new GlobleException(SystemErrorCode.DATA_ADD_FAIL); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 修改公司管理员 
 | 
     * 不含密码 
 | 
     * 
 | 
     * @param sysUsers 
 | 
     * @return 
 | 
     * @author JIANGYOUYAO 
 | 
     * @email 935090232@qq.com 
 | 
     * @date Dec 10, 2017 
 | 
     */ 
 | 
    @RemoveRequestToken 
 | 
    @PostMapping(value =  "/modifyAdmin") 
 | 
    public @ResponseBody 
 | 
    AjaxResult modifyAdmin(SysUsers sysUsers) { 
 | 
        sysUsers.setSuPassword(null); 
 | 
  
 | 
        //上级不能为自己 
 | 
        if (Objects.equals(sysUsers.getSuId(), sysUsers.getParentUserId())) { 
 | 
            return new AjaxResult(AjaxResult.STATUS_FAIL, "不能设置自己为自己的上级"); 
 | 
        } 
 | 
        int i = sysUsersService.modifyByMap(WebUtil.getSessionAttribute(BEV), sysUsers); 
 | 
        if (i > 0) { 
 | 
            WebUtil.removeSessionAttribute(BEV); 
 | 
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.UPDATE_SUCCES, "员工"); 
 | 
        } else { 
 | 
            throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL); 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
    /** 
 | 
     * 进入修改界面 
 | 
     * 
 | 
     * @param id 
 | 
     * @return 
 | 
     * @author JIANGYOUYAO 
 | 
     * @email 935090232@qq.com 
 | 
     * @date Dec 10, 2017 
 | 
     */ 
 | 
    @SaveRequestToken 
 | 
    @RequestMapping(value =  "/editForm") 
 | 
    public ModelAndView editForm(Long id) { 
 | 
        ModelAndView mv = new ModelAndView("admin/hive-erp/user/admin-form"); 
 | 
        SysUsers sysUsers = new SysUsers(); 
 | 
        mv.addObject("obj", sysUsers); 
 | 
        if (id != null) { 
 | 
            sysUsers = sysUsersService.findById(id); 
 | 
            mv.addObject("obj", sysUsers); 
 | 
            //WebUtil.getRequest().setAttribute("obj", sysUsers); 
 | 
            WebUtil.setSessionAttribute(BEV, sysUsers); 
 | 
        } 
 | 
        List<SysUsers> staffs = sysUsersService.findByModel(null); 
 | 
        mv.addObject("staffs", staffs); 
 | 
        return mv; 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
    /** 
 | 
     * 员工列表导出 
 | 
     */ 
 | 
    @RequestMapping(value = "/exportExcel") 
 | 
    public void report(ModelMap model, HttpServletRequest request, HttpServletResponse response, 
 | 
                       SysUsers shopStaffInfo) throws Exception { 
 | 
  
 | 
        List<ExcelSheetPO> res = new ArrayList<>(); 
 | 
        ExcelSheetPO orderSheet = new ExcelSheetPO(); 
 | 
        String title = "员工列表"; 
 | 
        orderSheet.setSheetName(title); 
 | 
        orderSheet.setTitle(title); 
 | 
        String[] header = {"员工姓名", "员工编号", "性别", "联系方式", "上级名称", "所属岗位", "所属部门", "所属门店"}; 
 | 
        orderSheet.setHeaders(header); 
 | 
        QueryUtil.setQueryLimitCom(shopStaffInfo); 
 | 
        List<SysUsers> dataList = sysUsersService.findInPage(shopStaffInfo, null); 
 | 
        List<List<Object>> list = new ArrayList<>(); 
 | 
        if (dataList.size() > 0) { 
 | 
            for (SysUsers item : dataList) { 
 | 
                List<Object> temp = new ArrayList<>(); 
 | 
                temp.add(item.getSuName()); 
 | 
                temp.add(item.getSuJobNo()); 
 | 
                temp.add(item.getSuSex()); 
 | 
                temp.add(item.getSuTel()); 
 | 
                temp.add(item.getParDirectName()); 
 | 
                temp.add(item.getRoleName()); 
 | 
                temp.add(item.getDepartName()); 
 | 
                temp.add(item.getShopName()); 
 | 
                list.add(temp); 
 | 
            } 
 | 
        } 
 | 
        orderSheet.setDataList(list); 
 | 
        res.add(orderSheet); 
 | 
        response = ResponseHeadUtil.setExcelHead(response); 
 | 
        response.setHeader("Content-Disposition", 
 | 
                "attachment;filename=" + URLEncoder.encode(title + DateUtil.getTimeMark() + ".xlsx".trim(), "UTF-8")); 
 | 
        OutputStream os = response.getOutputStream(); 
 | 
        ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true); 
 | 
    } 
 | 
} 
 |