Java tutorial
package com.softtek.mdm.web.admin; import java.io.IOException; import java.io.OutputStream; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFDataFormat; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.CellRangeAddress; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.security.authentication.encoding.Md5PasswordEncoder; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import com.softtek.mdm.helper.breadcrumb.Link; import com.softtek.mdm.model.ManagerModel; import com.softtek.mdm.model.OrganizationModel; import com.softtek.mdm.model.Page; import com.softtek.mdm.service.LicenseService; import com.softtek.mdm.service.ManagerService; import com.softtek.mdm.service.OrganizationService; import com.softtek.mdm.status.SessionStatus; import com.softtek.mdm.util.CommUtil; import com.softtek.mdm.util.UserPass; import com.softtek.mdm.web.BaseController; import com.softtek.mdm.web.http.JsonResult; import com.softtek.mdm.web.http.MessageType; @SuppressWarnings("deprecation") @Controller("adminIndexController") @RequestMapping("/admin") public class IndexController extends BaseController { private static final Logger logger = Logger.getLogger(IndexController.class); @Autowired private OrganizationService organizationService; @Autowired private ManagerService managerService; @Autowired private LicenseService licenseService; @Autowired private MessageSource messageSource; /** * * @param request * @param response * @param model * @param session * @return * @throws IOException */ @Link(family = "admin", label = "web.institution.IndexController.admin.index.label.belong") @RequestMapping(method = RequestMethod.GET) public String organization(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException { return null == session.getAttribute("islicense") ? "redirect:/system/license/manager" : "admin/index/organization/index"; } /** * ? * @param request * @param response * @param model * @param session * @return * @throws IOException */ @Link(family = "admin", label = "web.institution.IndexController.admin.manger.index.label") @RequestMapping(value = "/index/manager", method = RequestMethod.GET) public String manager(HttpServletRequest request, HttpServletResponse response, Model model) throws IOException { //? model.addAttribute("organizationList", organizationService.findAllOrganization()); return "admin/index/manager/index"; } /** * * @param request * @param response * @param session * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/validOrgType", method = RequestMethod.GET) @ResponseBody public String validOrgType(HttpServletRequest request, HttpServletResponse response, HttpSession session) { ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); Map<String, Object> map = new HashMap<String, Object>(); map.put("org_type", request.getParameter("orgType")); map.put("id", StringUtils.trimToNull(request.getParameter("orgId"))); map.put("create_by", manager.getId()); OrganizationModel organization = organizationService.findOrganizationByMap(map); return (organization == null) ? "false" : "true"; } /** * ?? * @param request * @param response * @param session * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/validOrgName", method = RequestMethod.GET) @ResponseBody public String validOrgName(HttpServletRequest request, HttpServletResponse response, HttpSession session) { ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); Map<String, Object> map = new HashMap<String, Object>(); map.put("name", request.getParameter("name")); map.put("id", StringUtils.trimToNull(request.getParameter("orgId"))); map.put("create_by", manager.getId()); OrganizationModel organization = organizationService.findOrganizationByMap(map); return (organization == null) ? "false" : "true"; } /** * ?id? * @param request * @param response * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/getOrganizationById", method = RequestMethod.POST) @ResponseBody public OrganizationModel getOrganizationById(HttpServletRequest request, HttpServletResponse response) { String id = StringUtils.trim(request.getParameter("id")); OrganizationModel organization = organizationService.findOne(Integer.parseInt(id)); List<OrganizationModel> lists = managerService.getManagerListsById(Integer.parseInt(id)); organization.setLists(lists); return organization; } /** * ?? * @param request * @param response * @param session * @param organization * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/saveOrganization", method = RequestMethod.POST) @ResponseBody public JsonResult saveOrganization(HttpServletRequest request, HttpServletResponse response, HttpSession session, OrganizationModel organization) { JsonResult jsonResult = null; ManagerModel sessionManager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); String[] managers = request.getParameterValues("managers"); organization.setCreateBy(sessionManager.getId()); //???licenseCount????2016-08-24 jackson //????license? Integer totalLicense = licenseService.getGenereateMemberCount(); ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); Map<String, Object> paramMap = new HashMap<String, Object>(); paramMap.put("create_by", manager.getId()); Integer useLicense = organizationService.getUserLicenseByMap(paramMap); Integer remainderLicense = totalLicense - useLicense; if (remainderLicense < organization.getLicenseCount()) { jsonResult = createJsonResult(MessageType.danger, "web.institution.message.success.label", null, null); } else { organizationService.saveOrganization(organization, managers); jsonResult = createJsonResult(MessageType.success, "web.institution.message.success.label", null, null); } return jsonResult; } /** * ??license * @param request * @param response * @param session * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/getRemainderLicense", method = RequestMethod.GET) @ResponseBody public JsonResult getRemainderLicense(HttpServletRequest request, HttpServletResponse response, HttpSession session) { JsonResult jsonResult = new JsonResult(); Integer totalLicense = licenseService.getGenereateMemberCount(); ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); Map<String, Object> paramMap = new HashMap<String, Object>(); paramMap.put("create_by", manager.getId()); Integer useLicense = organizationService.getUserLicenseByMap(paramMap); if (useLicense != null) { jsonResult.setContent(totalLicense - useLicense); } else { jsonResult.setContent(totalLicense); } return jsonResult; } /** * ? * @param request * @param response * @param session * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/updateOrganization", method = RequestMethod.POST) @ResponseBody public JsonResult updateOrganization(HttpServletRequest request, HttpServletResponse response, HttpSession session, OrganizationModel organization) { JsonResult jsonResult = null; ManagerModel sessionManager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); String[] managers = request.getParameterValues("editManagers"); organization.setCreateBy(sessionManager.getId()); Integer totalLicense = licenseService.getGenereateMemberCount(); ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); Map<String, Object> paramMap = new HashMap<String, Object>(); paramMap.put("create_by", manager.getId()); Integer useLicense = organizationService.getUserLicenseByMap(paramMap); //??license? Integer remainderLicense = totalLicense - useLicense; OrganizationModel org = organizationService.findOne(organization.getId()); if (organization.getLicenseCount() > remainderLicense + org.getLicenseCount()) { jsonResult = createJsonResult(MessageType.danger, "web.institution.message.success.label", null, null); } else { organizationService.updateOrganization(organization, managers); jsonResult = createJsonResult(MessageType.success, "web.institution.message.success.label", null, null); } return jsonResult; } /** * ? * @param request * @param response * @param session * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/deleteOrganization", method = RequestMethod.POST) @ResponseBody public JsonResult deleteOrganization(HttpServletRequest request, HttpServletResponse response, HttpSession session) { //??? ManagerModel sessionManager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); OrganizationModel organization = new OrganizationModel(); organization.setId(Integer.parseInt(StringUtils.trim(request.getParameter("id")))); organization.setUpdateBy(sessionManager.getId()); organization.setDeleteTime(new Date()); organization.setUpdateTime(new Date()); organizationService.deleteOrgization(organization); return createJsonResult(MessageType.success, "web.institution.message.success.label", null, null); } /** * ? * @param request * @param response * @param session * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/lockOrganization", method = RequestMethod.POST) @ResponseBody public JsonResult lockOrganization(HttpServletRequest request, HttpServletResponse response, HttpSession session) { ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); OrganizationModel organization = new OrganizationModel(); organization.setId(Integer.parseInt(StringUtils.trim(request.getParameter("id")))); organization.setUpdateBy(manager.getId()); organization.setUpdateTime(new Date()); //disabled 0 organization.setStatus("0"); organizationService.updateLockOrganization(organization); return createJsonResult(MessageType.success, "web.institution.message.success.label", null, null); } /** * ? * @param request * @param response * @param session * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/unLockOrganization", method = RequestMethod.POST) @ResponseBody public JsonResult unLockOrganization(HttpServletRequest request, HttpServletResponse response, HttpSession session) { ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); OrganizationModel organization = new OrganizationModel(); organization.setId(Integer.parseInt(StringUtils.trim(request.getParameter("id")))); organization.setUpdateBy(manager.getId()); organization.setUpdateTime(new Date()); //enabled organization.setStatus("1"); organizationService.updateLockOrganization(organization); return createJsonResult(MessageType.success, "web.institution.message.success.label", null, null); } /** * ? * @param id * @param session * @param request * @param response * @param start * @param length * @return * @throws IOException */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/organizationLists", method = RequestMethod.POST) @ResponseBody public Page organizationLists(HttpSession session, HttpServletRequest request, HttpServletResponse response, Integer start, Integer length) throws IOException { //?????? ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); Integer create_by = manager.getId(); String orgType = request.getParameter("orgType"); String name = request.getParameter("name"); start = start == null ? 0 : start; length = length == null ? 10 : length; Map<String, Object> paramMap = new HashMap<String, Object>(); paramMap.put("pageNum", start); paramMap.put("pageSize", length); paramMap.put("create_by", create_by); paramMap.put("orgType", StringUtils.trimToNull(orgType)); paramMap.put("name", StringUtils.trimToNull(name)); Page page = organizationService.findOrganizationListsByMap(paramMap); return page; } /** * ????? * @param request * @param response * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/validUsername", method = RequestMethod.GET) @ResponseBody public String validUsername(HttpServletRequest request, HttpServletResponse response) { Map<String, Object> map = new HashMap<String, Object>(); map.put("username", request.getParameter("username")); String id = request.getParameter("orgId"); map.put("id", StringUtils.trimToNull(id)); ManagerModel manager = managerService.getManagerByMap(map); return manager == null ? "false" : "true"; } /** * ?? * @param request * @param response * @param session * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/saveManager", method = RequestMethod.POST) @ResponseBody public JsonResult saveManager(HttpServletRequest request, HttpServletResponse response, HttpSession session, ManagerModel managerModel) { ManagerModel sessionManager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); String[] orgs = request.getParameterValues("orgs"); managerModel.setCreateBy(sessionManager.getId()); managerService.saveManager(managerModel, orgs); return createJsonResult(MessageType.success, "web.institution.message.success.label", null, null); } /** * * @param session * @param request * @param response * @param start * @param length * @return * @throws IOException */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/managerLists", method = RequestMethod.POST) @ResponseBody public Page managerLists(HttpSession session, HttpServletRequest request, HttpServletResponse response, Integer start, Integer length) throws IOException { //?????? ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); Integer create_by = manager.getId(); String username = request.getParameter("username"); String name = request.getParameter("name"); String orgId = request.getParameter("orgId"); start = start == null ? 0 : start; length = length == null ? 10 : length; Map<String, Object> paramMap = new HashMap<String, Object>(); paramMap.put("pageNum", start); paramMap.put("pageSize", length); paramMap.put("create_by", create_by); paramMap.put("username", StringUtils.trimToNull(username)); paramMap.put("name", StringUtils.trimToNull(name)); paramMap.put("orgId", StringUtils.trimToNull(orgId)); Page page = managerService.findManagerListsByMap(paramMap); return page; } /** * ??id?? * @param request * @param response * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/getManagerById", method = RequestMethod.POST) @ResponseBody public ManagerModel getManagerById(HttpServletRequest request, HttpServletResponse response) { String id = StringUtils.trim(request.getParameter("id")); ManagerModel manager = managerService.findOne(Integer.parseInt(id)); List<OrganizationModel> organizationLists = organizationService .findOrgManagerListsById(Integer.parseInt(id)); manager.setLists(organizationLists); return manager; } /** * ? * @param request * @param response * @param session * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/getAllOrganizationLists", method = RequestMethod.GET) @ResponseBody public List<OrganizationModel> getAllOrganizationLists(HttpServletRequest request, HttpServletResponse response, HttpSession session) { ManagerModel sessionManager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); Map<String, Object> paramMap = new HashMap<String, Object>(); paramMap.put("create_by", sessionManager.getId()); List<OrganizationModel> organizationLists = organizationService.getOrganizationListsByMap(paramMap); return organizationLists; } /** * ?? * @param request * @param response * @param session * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/getAllManagerLists", method = RequestMethod.GET) @ResponseBody public List<ManagerModel> getAllManagerLists(HttpServletRequest request, HttpServletResponse response, HttpSession session) { ManagerModel sessionManager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); Map<String, Object> paramMap = new HashMap<String, Object>(); paramMap.put("create_by", sessionManager.getId()); List<ManagerModel> managerLists = managerService.getManagerListsByMap(paramMap); return managerLists; } /** * ? * @param request * @param response * @param session * @param managerModel * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/updateManager", method = RequestMethod.POST) @ResponseBody public JsonResult updateManager(HttpServletRequest request, HttpServletResponse response, HttpSession session, ManagerModel managerModel) { ManagerModel sessionManager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); String[] orgs = request.getParameterValues("editOrgs"); managerModel.setCreateBy(sessionManager.getId()); managerService.updateManager(managerModel, orgs); return createJsonResult(MessageType.success, "web.institution.message.success.label", null, null); } /** * ?? * @param request * @param response * @param session * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/lockManager", method = RequestMethod.POST) @ResponseBody public JsonResult lockManager(HttpServletRequest request, HttpServletResponse response, HttpSession session) { ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); String id = request.getParameter("id"); ManagerModel managerModel = new ManagerModel(); managerModel.setId(Integer.parseInt(StringUtils.trim(id))); managerModel.setUpdateBy(manager.getId()); managerModel.setUpdateTime(new Date()); //disabled managerModel.setStatus("0"); managerService.updateManagerWithLock(managerModel); return createJsonResult(MessageType.success, "web.institution.message.success.label", null, null); } /** * ?? * @param request * @param response * @param session * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/unLockManager", method = RequestMethod.POST) @ResponseBody public JsonResult unLockManager(HttpServletRequest request, HttpServletResponse response, HttpSession session) { ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); String id = request.getParameter("id"); ManagerModel managerModel = new ManagerModel(); managerModel.setId(Integer.parseInt(StringUtils.trim(id))); managerModel.setUpdateBy(manager.getId()); managerModel.setUpdateTime(new Date()); //enabled managerModel.setStatus("1"); managerService.updateManagerWithLock(managerModel); return createJsonResult(MessageType.success, "web.institution.message.success.label", null, null); } /** * ? * @param request * @param response * @param session * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/deleteManager", method = RequestMethod.POST) @ResponseBody public JsonResult deleteManager(HttpServletRequest request, HttpServletResponse response, HttpSession session) { String id = request.getParameter("id"); //??? ManagerModel sessionManager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); ManagerModel manager = new ManagerModel(); manager.setId(Integer.parseInt(StringUtils.trim(id))); manager.setUpdateBy(sessionManager.getId()); manager.setDeleteTime(new Date()); manager.setUpdateTime(new Date()); managerService.deleteManager(manager); return createJsonResult(MessageType.success, "web.institution.message.success.label", null, null); } /** * ??? * @param request * @param response * @param session * @param model * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/personal", method = RequestMethod.GET) public String getPersonInfo(HttpServletRequest request, HttpServletResponse response, HttpSession session, Model model) { //?? ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); model.addAttribute("personInfo", manager); return "admin/personal/basic/index"; } /** * ??? * @param request * @param response * @param session * @param model * @return */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/password", method = RequestMethod.GET) public String getPassword(HttpServletRequest request, HttpServletResponse response, HttpSession session, Model model) { //?? ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); model.addAttribute("personInfo", manager); return "admin/personal/password/index"; } /** * ?? * @param request * @param response * @param managerModel * @param session * @return * @throws IOException */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/personal/update", method = RequestMethod.POST) @ResponseBody public JsonResult updatePersonalInfo(HttpServletRequest request, HttpServletResponse response, ManagerModel managerModel, HttpSession session) throws IOException { ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); ManagerModel newManager = new ManagerModel(); newManager.setId(manager.getId()); newManager.setName(managerModel.getName()); newManager.setPhone(managerModel.getPhone()); newManager.setEmail(managerModel.getEmail()); newManager.setMark(managerModel.getMark()); managerService.update(newManager); ManagerModel sessionManager = managerService.findOne(newManager.getId()); session.setAttribute(SessionStatus.SOFTTEK_MANAGER.toString(), sessionManager); return createJsonResult(MessageType.success, "institution.user.update.label", null, null); } /** * ?? * @param session * @param request * @param response * @param user * @return * @throws IOException */ @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/password/update", method = RequestMethod.POST) @ResponseBody public JsonResult updatePersonalPass(HttpSession session, HttpServletRequest request, HttpServletResponse response, UserPass user) throws IOException { JsonResult jsonResult = null; ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); ManagerModel newManager = new ManagerModel(); if (StringUtils.isNotBlank(user.getPassword())) { Md5PasswordEncoder md5PasswordEncoder = new Md5PasswordEncoder(); if (StringUtils.equals(md5PasswordEncoder.encodePassword(user.getPassword(), null), manager.getPassword())) { String newPwdStr = md5PasswordEncoder.encodePassword(user.getNewPassword(), null); newManager.setId(manager.getId()); newManager.setPassword(newPwdStr); managerService.update(newManager); ManagerModel sessionManager = managerService.findOne(newManager.getId()); session.setAttribute(SessionStatus.SOFTTEK_MANAGER.toString(), sessionManager); jsonResult = createJsonResult(MessageType.success, "defes.institution.person.update.success", null, null); } else { jsonResult = createJsonResult(MessageType.danger, "defes.institution.person.pwd.failed", null, null); } } return jsonResult; } @Link(family = "admin", label = "web.institution.homecontroller.index.link.label") @RequestMapping(value = "/index/export", method = RequestMethod.POST) public void exportOrganization(HttpServletRequest request, HttpServletResponse response, HttpSession session) { //?? ManagerModel manager = (ManagerModel) session.getAttribute(SessionStatus.SOFTTEK_MANAGER.toString()); Integer create_by = manager.getId(); String orgType = request.getParameter("orgType"); String name = request.getParameter("name"); Map<String, Object> paramMap = new HashMap<String, Object>(); paramMap.put("create_by", create_by); paramMap.put("orgType", StringUtils.trimToNull(orgType)); paramMap.put("name", StringUtils.trimToNull(name)); List<OrganizationModel> lists = organizationService.findOrganizationListByMap(paramMap); //excel // String sheetName = messageSource.getMessage("web.institution.indexcontroller.exportshhetname", null, LocaleContextHolder.getLocale()); String[] headNames = { messageSource.getMessage("web.institution.indexcontroller.export.title1", null, LocaleContextHolder.getLocale()), messageSource.getMessage("web.institution.indexcontroller.export.title2", null, LocaleContextHolder.getLocale()), messageSource.getMessage("web.institution.indexcontroller.export.title3", null, LocaleContextHolder.getLocale()), messageSource.getMessage("web.institution.indexcontroller.export.title4", null, LocaleContextHolder.getLocale()), messageSource.getMessage("web.institution.indexcontroller.export.title5", null, LocaleContextHolder.getLocale()), messageSource.getMessage("web.institution.indexcontroller.export.title6", null, LocaleContextHolder.getLocale()), messageSource.getMessage("web.institution.indexcontroller.export.title7", null, LocaleContextHolder.getLocale()), }; exportExcel(sheetName, headNames, lists, response); } private void exportExcel(String sheetName, String[] headNames, List<OrganizationModel> lists, HttpServletResponse response) { OutputStream out = null; try { HSSFWorkbook workbook = new HSSFWorkbook(); // HSSFSheet sheet = workbook.createSheet(sheetName); // // HSSFRow rowm = sheet.createRow(0); HSSFCell cellTiltle = rowm.createCell(0); //sheet??getColumnTopStyle()/getStyle()? - ? - ? HSSFCellStyle columnTopStyle = CommUtil.getColumnTopStyle(workbook);//?? sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, (headNames.length - 1))); cellTiltle.setCellStyle(columnTopStyle); cellTiltle.setCellValue(sheetName); // int columnNum = headNames.length; HSSFRow rowRowName = sheet.createRow(2); // 2?() // sheet? for (int n = 0; n < columnNum; n++) { HSSFCell cellRowName = rowRowName.createCell(n); //? cellRowName.setCellType(HSSFCell.CELL_TYPE_STRING); //?? HSSFRichTextString text = new HSSFRichTextString(headNames[n]); cellRowName.setCellValue(text); //? cellRowName.setCellStyle(columnTopStyle); //?? } //?sheet? HSSFDataFormat format = workbook.createDataFormat(); short formatDate = format.getFormat("yyyy-MM-dd hh:mm:ss"); for (int i = 0; i < lists.size(); i++) { HSSFRow row = sheet.createRow(i + 3);// OrganizationModel obj = lists.get(i);//??? /*row.createCell(0).setCellValue(obj.getOrgType());*/ row.createCell(0).setCellValue(obj.getName()); row.createCell(1).setCellValue(obj.getCreateName()); row.createCell(2).setCellValue(obj.getTotalUsers() == null ? 0 : obj.getTotalUsers()); row.createCell(3).setCellValue(obj.getTotalDevices() == null ? 0 : obj.getTotalDevices()); row.createCell(4).setCellValue(obj.getLicenseCount() == null ? 0 : obj.getLicenseCount()); row.createCell(5).setCellValue(obj.getUseUsers() == null ? 0 : obj.getUseUsers()); HSSFCell cell = row.createCell(6); cell.setCellValue(obj.getCreateTime()); HSSFCellStyle cellStyle = workbook.createCellStyle(); cellStyle.setDataFormat(formatDate); cell.setCellStyle(cellStyle); } //?? for (int colNum = 0; colNum < columnNum; colNum++) { int columnWidth = sheet.getColumnWidth(colNum) / 256; for (int rowNum = 0; rowNum < sheet.getLastRowNum(); rowNum++) { HSSFRow currentRow; //? currentRow = (sheet.getRow(rowNum) == null) ? sheet.createRow(rowNum) : sheet.getRow(rowNum); if (currentRow.getCell(colNum) != null) { HSSFCell currentCell = currentRow.getCell(colNum); if (currentCell.getCellType() == HSSFCell.CELL_TYPE_STRING) { int length = currentCell.getStringCellValue().getBytes().length; if (columnWidth < length) { columnWidth = length; } } } } sheet.setColumnWidth(colNum, (colNum == 0) ? (columnWidth * 256) : ((columnWidth + 10) * 256)); } if (workbook != null) { try { String fileName = "Excel-" + String.valueOf(System.currentTimeMillis()).substring(4, 13) + ".xls"; String headStr = "attachment; filename=\"" + fileName + "\""; response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", headStr); out = response.getOutputStream(); workbook.write(out); } catch (IOException e) { logger.error(e.getMessage()); } finally { if (out != null) { out.close(); } } } } catch (Exception e) { logger.error(e.getMessage()); } } }