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 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 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 res = new ArrayList<>(); ExcelSheetPO orderSheet = new ExcelSheetPO(); String title = "员工列表"; orderSheet.setSheetName(title); orderSheet.setTitle(title); String[] header = {"员工姓名", "员工编号", "性别", "联系方式", "上级名称", "所属岗位", "所属部门", "所属门店"}; orderSheet.setHeaders(header); QueryUtil.setQueryLimitCom(shopStaffInfo); List dataList = sysUsersService.findInPage(shopStaffInfo, null); List> list = new ArrayList<>(); if (dataList.size() > 0) { for (SysUsers item : dataList) { List 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); } }