package cn.com.lzt.relatedunits.controller; import cn.com.lzt.common.service.TSysFileServiceI; import cn.com.lzt.common.util.CustomerConstant; import cn.com.lzt.relatedunits.entity.RelatedUnitsEntity; import cn.com.lzt.relatedunits.page.RelatedUnitsPage; import cn.com.lzt.relatedunits.service.RelatedUnitsServiceI; import cn.com.lzt.relatedunitscontacts.entity.RelatedUnitsContactsEntity; import cn.com.lzt.relatedunitsextrainfo.entity.RelatedUnitsExtrainfoEntity; import cn.com.lzt.tools.SaltUtil; import com.aliyun.oss.OSSClient; import com.aliyun.oss.model.OSSObject; import org.apache.commons.lang.xwork.StringUtils; import org.apache.log4j.Logger; import org.jeecgframework.core.beanvalidator.BeanValidators; import org.jeecgframework.core.common.controller.BaseController; import org.jeecgframework.core.common.exception.BusinessException; import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery; import org.jeecgframework.core.common.model.json.AjaxJson; import org.jeecgframework.core.common.model.json.DataGrid; import org.jeecgframework.core.constant.Globals; import org.jeecgframework.core.util.ExceptionUtil; import org.jeecgframework.core.util.MyBeanUtils; import org.jeecgframework.core.util.ResourceUtil; import org.jeecgframework.core.util.StringUtil; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants; import org.jeecgframework.tag.core.easyui.TagUtil; import org.jeecgframework.tag.vo.datatable.SortDirection; import org.jeecgframework.web.system.pojo.base.TSBaseUser; import org.jeecgframework.web.system.pojo.base.TSUser; import org.jeecgframework.web.system.service.SystemService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.util.UriComponentsBuilder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.ConstraintViolation; import javax.validation.Validator; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URI; import java.text.SimpleDateFormat; import java.util.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; /** * @Title: Controller * @Description: 往来单位管理表 * @author onlineGenerator * @date 2017-06-17 15:13:52 * @version V1.0 * */ @Controller @RequestMapping("/relatedUnitsController") public class RelatedUnitsController extends BaseController { /** * Logger for this class */ private static final Logger logger = Logger.getLogger(RelatedUnitsController.class); @Autowired private RelatedUnitsServiceI relatedUnitsService; @Autowired private SystemService systemService; @Autowired private Validator validator; @Autowired private TSysFileServiceI tSysFileService; /** * 往来单位管理表列表 页面跳转 * * @return */ @RequestMapping(params = "list") public ModelAndView list(HttpServletRequest request) { return new ModelAndView("cn/com/lzt/relatedunits/relatedUnitsList"); } /** * easyui AJAX请求数据 * * @param request * @param response * @param dataGrid * @param user */ @RequestMapping(params = "datagrid") public void datagrid(RelatedUnitsEntity relatedUnits,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { CriteriaQuery cq = new CriteriaQuery(RelatedUnitsEntity.class, dataGrid); try{ //自定义追加查询条件 String[] unitstate = new String[]{Globals.Enable_Forbidden, Globals.Enable_Normal}; cq.in("status", unitstate); cq.eq("deleteFlag", Globals.Delete_Normal.toString()); if(StringUtils.isNotBlank(relatedUnits.getUnitName())){ //模糊查询 cq.like("unitName", "%"+relatedUnits.getUnitName()+"%"); relatedUnits.setUnitName(null); } cq.addOrder("createDate", SortDirection.desc); }catch (Exception e) { throw new BusinessException(e.getMessage()); } //查询条件组装器 org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, relatedUnits); cq.add(); this.relatedUnitsService.getDataGridReturn(cq, true); List list = systemService.getListByCriteriaQuery(cq, false); if(list != null) { for(RelatedUnitsEntity entity : list) { String id = entity.getId(); String hql0 = "from RelatedUnitsContactsEntity where 1 = 1 AND rELATED_UNITS_ID =? "; try{ List relatedUnitsContactsEntityList = systemService.findHql(hql0,id); if(relatedUnitsContactsEntityList != null && relatedUnitsContactsEntityList.size()>0) { entity.setFirstContacts(relatedUnitsContactsEntityList.get(0).getName()); entity.setFirstContactsTel(relatedUnitsContactsEntityList.get(0).getTelphone()); } }catch(Exception e){ logger.info(e.getMessage()); } String chargePerson = entity.getChargePersons(); TSUser user = systemService.getEntity(TSUser.class, chargePerson); if(user!=null) entity.setChargePersonsRealname(user.getRealName()); } } dataGrid.setResults(list); TagUtil.datagrid(response, dataGrid); } /** * 删除往来单位管理表 * * @return */ @RequestMapping(params = "doDel") @ResponseBody public AjaxJson doDel(RelatedUnitsEntity relatedUnits, HttpServletRequest request) { AjaxJson j = new AjaxJson(); relatedUnits = systemService.getEntity(RelatedUnitsEntity.class, relatedUnits.getId()); String message = "单位管理表删除成功"; try{ message = "单位:" + relatedUnits.getUnitName() + "删除成功"; relatedUnits.setDeleteFlag(Globals.Delete_Forbidden.toString()); relatedUnitsService.updateEntitie(relatedUnits); systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); }catch(Exception e){ e.printStackTrace(); message = "单位管理表删除失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 批量删除往来单位管理表 * * @return */ @RequestMapping(params = "doBatchDel") @ResponseBody public AjaxJson doBatchDel(String ids,HttpServletRequest request){ AjaxJson j = new AjaxJson(); String message = "单位管理表删除成功"; try{ for(String id:ids.split(",")){ RelatedUnitsEntity relatedUnits = systemService.getEntity(RelatedUnitsEntity.class, id ); relatedUnitsService.delMain(relatedUnits); systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); } }catch(Exception e){ e.printStackTrace(); message = "单位管理表删除失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 自定义按钮-[停用仓库]业务 * @return */ @RequestMapping(params = "lock") @ResponseBody public AjaxJson lock(RelatedUnitsEntity relatedUnits, HttpServletRequest request) { String message = null; AjaxJson j = new AjaxJson(); message = "停用单位成功"; String lockValue=request.getParameter("lockvalue"); RelatedUnitsEntity t = relatedUnitsService.get(RelatedUnitsEntity.class, relatedUnits.getId()); try{ t.setStatus(lockValue); relatedUnitsService.updateEntitie(t); systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO); }catch(Exception e){ e.printStackTrace(); message = "停用单位失败"; } j.setMsg(message); return j; } /** * 自定义按钮-[停用仓库]业务 * @return */ @RequestMapping(params = "unLock") @ResponseBody public AjaxJson unLock(RelatedUnitsEntity relatedUnits, HttpServletRequest request) { String message = null; AjaxJson j = new AjaxJson(); message = "启用单位成功"; String lockValue=request.getParameter("lockvalue"); RelatedUnitsEntity t = relatedUnitsService.get(RelatedUnitsEntity.class, relatedUnits.getId()); try{ t.setStatus(lockValue); relatedUnitsService.updateEntitie(t); systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO); }catch(Exception e){ e.printStackTrace(); message = "启用单位失败"; } j.setMsg(message); return j; } /** * 添加往来单位管理表 * * @return */ @RequestMapping(params = "doAdd") @ResponseBody public AjaxJson doAdd(RelatedUnitsEntity relatedUnits,RelatedUnitsPage relatedUnitsPage, HttpServletRequest request) { AjaxJson j = new AjaxJson(); String message = "添加成功"; String unitName = relatedUnits.getUnitName(); CriteriaQuery cq = new CriteriaQuery(RelatedUnitsEntity.class); cq.eq("unitName", unitName); cq.add(); List listInDB = systemService.getListByCriteriaQuery(cq, false); if(listInDB != null && listInDB.size()>0) { j.setSuccess(false); message = "不能重复添加供应商"; return j; } List relatedUnitsContactsList = relatedUnitsPage.getRelatedUnitsContactsList(); List relatedUnitsExtrainfoList = relatedUnitsPage.getRelatedUnitsExtrainfoList(); try{ relatedUnits.setUnitCode(SaltUtil.randomSalt(4)); relatedUnits.setStatus(Globals.Enable_Normal);// 启用 relatedUnits.setDeleteFlag(Globals.Delete_Normal.toString());// 正常 if(relatedUnits.getEarlyPayment() != null && relatedUnits.getEarlyPayment() > 0){ relatedUnits.setPayableBalance(relatedUnits.getEarlyPayment()); } if(relatedUnits.getInitialReceivable() != null && relatedUnits.getInitialReceivable() > 0){ relatedUnits.setAmountReceivable(relatedUnits.getInitialReceivable()); } relatedUnitsService.addMain(relatedUnits, relatedUnitsContactsList,relatedUnitsExtrainfoList); tSysFileService.updateBusiId(relatedUnits.getAttachment(), relatedUnits.getId()); systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO); }catch(Exception e){ e.printStackTrace(); message = "往来单位管理表添加失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 更新往来单位管理表 * * @return */ @RequestMapping(params = "doUpdate") @ResponseBody public AjaxJson doUpdate(RelatedUnitsEntity relatedUnits,RelatedUnitsPage relatedUnitsPage, HttpServletRequest request) { List relatedUnitsContactsList = relatedUnitsPage.getRelatedUnitsContactsList(); List relatedUnitsExtrainfoList = relatedUnitsPage.getRelatedUnitsExtrainfoList(); AjaxJson j = new AjaxJson(); String message = "更新成功"; try{ relatedUnitsService.updateMain(relatedUnits, relatedUnitsContactsList,relatedUnitsExtrainfoList); tSysFileService.updateBusiId(relatedUnits.getAttachment(), relatedUnits.getId()); systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO); }catch(Exception e){ e.printStackTrace(); message = "更新往来单位管理表失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 往来单位管理表新增页面跳转 * * @return */ @RequestMapping(params = "goAdd") public ModelAndView goAdd(RelatedUnitsEntity relatedUnits, HttpServletRequest req) { if (StringUtil.isNotEmpty(relatedUnits.getId())) { relatedUnits = relatedUnitsService.getEntity(RelatedUnitsEntity.class, relatedUnits.getId()); req.setAttribute("relatedUnitsPage", relatedUnits); } return new ModelAndView("cn/com/lzt/relatedunits/relatedUnits-add"); } /** * 往来单位管理表编辑页面跳转 * * @return */ @RequestMapping(params = "goUpdate") public ModelAndView goUpdate(RelatedUnitsEntity relatedUnits, HttpServletRequest req) { String isView = req.getParameter("viewFlag"); req.setAttribute("viewFlag", isView); if (StringUtil.isNotEmpty(relatedUnits.getId())) { relatedUnits = relatedUnitsService.getEntity(RelatedUnitsEntity.class, relatedUnits.getId()); setReferName(req,relatedUnits); Object id1 = relatedUnits.getId(); //=================================================================================== //查询-附加信息 String hql1 = "from RelatedUnitsExtrainfoEntity where 1 = 1 AND rELATED_UNITS_ID =? "; try{ List relatedUnitsExtrainfoEntityList = systemService.findHql(hql1,id1); if(relatedUnitsExtrainfoEntityList != null && relatedUnitsExtrainfoEntityList.size()>0) { req.setAttribute("relatedUnitsExtrainfo", relatedUnitsExtrainfoEntityList.get(0)); } }catch(Exception e){ logger.info(e.getMessage()); } String load = req.getParameter("load"); req.setAttribute("load", load); req.setAttribute("relatedUnitsPage", relatedUnits); } return new ModelAndView("cn/com/lzt/relatedunits/relatedUnits-update"); } // 获取参照名称 public void setReferName(HttpServletRequest req, RelatedUnitsEntity relatedUnits) { TSBaseUser user = systemService.findUniqueByProperty(TSBaseUser.class, "id", relatedUnits.getChargePersons()); // 负责人 String handlerPersonName=""; if (user != null) { handlerPersonName= user.getRealName(); req.setAttribute("realName", handlerPersonName); } } /** * 加载明细列表[联系人信息] * * @return */ @RequestMapping(params = "relatedUnitsContactsList") public ModelAndView relatedUnitsContactsList(RelatedUnitsEntity relatedUnits, HttpServletRequest req) { //=================================================================================== //获取参数 Object id0 = relatedUnits.getId(); //=================================================================================== //查询-联系人信息 String hql0 = "from RelatedUnitsContactsEntity where 1 = 1 AND rELATED_UNITS_ID =? "; try{ List relatedUnitsContactsEntityList = systemService.findHql(hql0,id0); req.setAttribute("relatedUnitsContactsList", relatedUnitsContactsEntityList); }catch(Exception e){ logger.info(e.getMessage()); } return new ModelAndView("cn/com/lzt/relatedunitscontacts/relatedUnitsContactsList"); } /** * 加载明细列表[附加信息] * * @return */ @RequestMapping(params = "relatedUnitsExtrainfoList") public ModelAndView relatedUnitsExtrainfoList(RelatedUnitsEntity relatedUnits, HttpServletRequest req) { //=================================================================================== //获取参数 Object id1 = relatedUnits.getId(); //=================================================================================== //查询-附加信息 String hql1 = "from RelatedUnitsExtrainfoEntity where 1 = 1 AND rELATED_UNITS_ID =? "; try{ List relatedUnitsExtrainfoEntityList = systemService.findHql(hql1,id1); req.setAttribute("relatedUnitsExtrainfoList", relatedUnitsExtrainfoEntityList); }catch(Exception e){ logger.info(e.getMessage()); } return new ModelAndView("cn/com/lzt/relatedunitsextrainfo/relatedUnitsExtrainfoList"); } @RequestMapping(params = "relatedUnitsAttachment") public ModelAndView relatedUnitsAttachment(RelatedUnitsEntity relatedUnits, HttpServletRequest req) { try{ req.setAttribute("relatedUnitsPage", relatedUnits); String load = req.getParameter("load"); req.setAttribute("load", load); }catch(Exception e){ logger.info(e.getMessage()); } return new ModelAndView("cn/com/lzt/relatedunits/relatedUnitsAttachment"); } /** * 导出excel * * @param request * @param response */ @RequestMapping(params = "exportXls") public String exportXls(RelatedUnitsEntity relatedUnits,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid,ModelMap map) { CriteriaQuery cq = new CriteriaQuery(RelatedUnitsEntity.class, dataGrid); //查询条件组装器 org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, relatedUnits); try{ //自定义追加查询条件 }catch (Exception e) { throw new BusinessException(e.getMessage()); } cq.add(); List list=this.relatedUnitsService.getListByCriteriaQuery(cq, false); List pageList=new ArrayList(); if(list!=null&&list.size()>0){ for(RelatedUnitsEntity entity:list){ try{ RelatedUnitsPage page=new RelatedUnitsPage(); MyBeanUtils.copyBeanNotNull2Bean(entity,page); Object id0 = entity.getId(); String hql0 = "from RelatedUnitsContactsEntity where 1 = 1 AND rELATED_UNITS_ID =? "; List relatedUnitsContactsEntityList = systemService.findHql(hql0,id0); page.setRelatedUnitsContactsList(relatedUnitsContactsEntityList); Object id1 = entity.getId(); String hql1 = "from RelatedUnitsExtrainfoEntity where 1 = 1 AND rELATED_UNITS_ID =? "; List relatedUnitsExtrainfoEntityList = systemService.findHql(hql1,id1); page.setRelatedUnitsExtrainfoList(relatedUnitsExtrainfoEntityList); pageList.add(page); }catch(Exception e){ logger.info(e.getMessage()); } } } map.put(NormalExcelConstants.FILE_NAME,"往来单位管理表"); map.put(NormalExcelConstants.CLASS,RelatedUnitsPage.class); map.put(NormalExcelConstants.PARAMS,new ExportParams("往来单位管理表列表", "导出人:Jeecg", "导出信息")); map.put(NormalExcelConstants.DATA_LIST,pageList); return NormalExcelConstants.JEECG_EXCEL_VIEW; } /** * 通过excel导入数据 * @param request * @param * @return */ @RequestMapping(params = "importExcel", method = RequestMethod.POST) @ResponseBody public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) { AjaxJson j = new AjaxJson(); MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map fileMap = multipartRequest.getFileMap(); for (Map.Entry entity : fileMap.entrySet()) { MultipartFile file = entity.getValue();// 获取上传文件对象 ImportParams params = new ImportParams(); params.setTitleRows(2); params.setHeadRows(2); params.setNeedSave(true); try { List list = ExcelImportUtil.importExcel(file.getInputStream(), RelatedUnitsPage.class, params); RelatedUnitsEntity entity1=null; for (RelatedUnitsPage page : list) { entity1=new RelatedUnitsEntity(); MyBeanUtils.copyBeanNotNull2Bean(page,entity1); relatedUnitsService.addMain(entity1, page.getRelatedUnitsContactsList(),page.getRelatedUnitsExtrainfoList()); } j.setMsg("文件导入成功!"); } catch (Exception e) { j.setMsg("文件导入失败!"); logger.error(ExceptionUtil.getExceptionMessage(e)); }finally{ try { file.getInputStream().close(); } catch (IOException e) { e.printStackTrace(); } } } return j; } /** * 导出excel 使模板 */ @RequestMapping(params = "exportXlsByT") public String exportXlsByT(ModelMap map) { map.put(NormalExcelConstants.FILE_NAME,"往来单位管理表"); map.put(NormalExcelConstants.CLASS,RelatedUnitsPage.class); map.put(NormalExcelConstants.PARAMS,new ExportParams("往来单位管理表列表", "导出人:"+ ResourceUtil.getSessionUserName().getRealName(), "导出信息")); map.put(NormalExcelConstants.DATA_LIST,new ArrayList()); return NormalExcelConstants.JEECG_EXCEL_VIEW; } /** * 导入功能跳转 * * @return */ @RequestMapping(params = "upload") public ModelAndView upload(HttpServletRequest req) { req.setAttribute("controller_name", "relatedUnitsController"); return new ModelAndView("common/upload/pub_excel_upload"); } @RequestMapping(method = RequestMethod.GET) @ResponseBody public List list() { List listRelatedUnitss=relatedUnitsService.getList(RelatedUnitsEntity.class); return listRelatedUnitss; } @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody public ResponseEntity get(@PathVariable("id") String id) { RelatedUnitsEntity task = relatedUnitsService.get(RelatedUnitsEntity.class, id); if (task == null) { return new ResponseEntity(HttpStatus.NOT_FOUND); } return new ResponseEntity(task, HttpStatus.OK); } @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public ResponseEntity create(@RequestBody RelatedUnitsPage relatedUnitsPage, UriComponentsBuilder uriBuilder) { //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息. Set> failures = validator.validate(relatedUnitsPage); if (!failures.isEmpty()) { return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST); } //保存 List relatedUnitsContactsList = relatedUnitsPage.getRelatedUnitsContactsList(); List relatedUnitsExtrainfoList = relatedUnitsPage.getRelatedUnitsExtrainfoList(); RelatedUnitsEntity relatedUnits = new RelatedUnitsEntity(); try{ MyBeanUtils.copyBeanNotNull2Bean(relatedUnits,relatedUnitsPage); }catch(Exception e){ logger.info(e.getMessage()); } relatedUnitsService.addMain(relatedUnits, relatedUnitsContactsList,relatedUnitsExtrainfoList); //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象. String id = relatedUnitsPage.getId(); URI uri = uriBuilder.path("/rest/relatedUnitsController/" + id).build().toUri(); HttpHeaders headers = new HttpHeaders(); headers.setLocation(uri); return new ResponseEntity(headers, HttpStatus.CREATED); } @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity update(@RequestBody RelatedUnitsPage relatedUnitsPage) { //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息. Set> failures = validator.validate(relatedUnitsPage); if (!failures.isEmpty()) { return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST); } //保存 List relatedUnitsContactsList = relatedUnitsPage.getRelatedUnitsContactsList(); List relatedUnitsExtrainfoList = relatedUnitsPage.getRelatedUnitsExtrainfoList(); RelatedUnitsEntity relatedUnits = new RelatedUnitsEntity(); try{ MyBeanUtils.copyBeanNotNull2Bean(relatedUnits,relatedUnitsPage); }catch(Exception e){ logger.info(e.getMessage()); } relatedUnitsService.updateMain(relatedUnits, relatedUnitsContactsList,relatedUnitsExtrainfoList); //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码. return new ResponseEntity(HttpStatus.NO_CONTENT); } @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) @ResponseStatus(HttpStatus.NO_CONTENT) public void delete(@PathVariable("id") String id) { RelatedUnitsEntity relatedUnits = relatedUnitsService.get(RelatedUnitsEntity.class, id); relatedUnitsService.delMain(relatedUnits); } @RequestMapping(params = "relatedUnitsExtrainfo") @ResponseBody public Object relatedUnitsExtrainfo(String relatedUnitsId, HttpServletRequest req) { RelatedUnitsExtrainfoEntity extrainfoEntity =null; RelatedUnitsContactsEntity contactsEntity=null; //查询出数据库的明细数据-联系人信息 String hql0 = "from RelatedUnitsContactsEntity where 1 = 1 AND rELATED_UNITS_ID =? "; List relatedUnitsContactsEntityList = systemService.findHql(hql0,relatedUnitsId); if(relatedUnitsContactsEntityList.size()>0){ contactsEntity = relatedUnitsContactsEntityList.get(0); } //查询-附加信息 String hql1 = "from RelatedUnitsExtrainfoEntity where 1 = 1 AND rELATED_UNITS_ID =? "; List relatedUnitsExtrainfoEntityList = systemService.findHql(hql1,relatedUnitsId); if(relatedUnitsExtrainfoEntityList.size()>0){ extrainfoEntity = relatedUnitsExtrainfoEntityList.get(0); } Map map = new HashMap<>(); if(extrainfoEntity!=null) { map.put("depositBank", extrainfoEntity.getDepositBank()); map.put("unitname", extrainfoEntity.getUnitname()); map.put("account", extrainfoEntity.getAccount()); } if(contactsEntity!=null){ map.put("contactName", contactsEntity.getName()); map.put("telPhone", contactsEntity.getTelphone()); } return map; } // 下载所有附件附件 @RequestMapping(params = "downloadAll") public void downloadAll(String id, HttpServletRequest request, HttpServletResponse response) { RelatedUnitsEntity relatedunits = systemService.get(RelatedUnitsEntity.class, id); String fileInfoSql = "select file_url,file_name,busi_id\n" + "from t_sys_file file " + "where busi_id = ?"; List> fileInfo = systemService.findForJdbc(fileInfoSql, id); if (fileInfo.size() == 0) { return; } zipfiles(fileInfo, relatedunits.getUnitName(), request, response); } private void zipfiles(List> fileInfo,String unitname,HttpServletRequest request, HttpServletResponse response) { InputStream inputStream = null; OutputStream outputStream = null; ZipOutputStream zipOutputStream = null; String timenow = ""; SimpleDateFormat formater = new SimpleDateFormat("yyMMddHHmmss_sss"); try { timenow = formater.format(new Date()); } catch (Exception e) { } OSSClient ossClient = null; try { outputStream=response.getOutputStream(); String codedFileName = unitname+"_附件下载_"+timenow+".zip"; if (isIE(request)) { codedFileName = java.net.URLEncoder.encode(codedFileName, "UTF8"); } else { codedFileName = new String(codedFileName.getBytes("UTF-8"), "ISO-8859-1"); } zipOutputStream = new ZipOutputStream(outputStream); response.setContentType("application/octet-stream "); response.setHeader("Connection", "close"); // 表示不能用浏览器直接打开 response.setHeader("Accept-Ranges", "bytes");// 告诉客户端允许断点续传多线程连接下载 response.setHeader("Content-Disposition", "attachment;filename=" + codedFileName); response.setCharacterEncoding("UTF-8"); ossClient = new OSSClient(CustomerConstant.ENDPOINT, CustomerConstant.ACCESSKEY_ID, CustomerConstant.ACCESSKEY_SECRET); for (Map map : fileInfo) { String fileUrl = map.get("file_url").toString(); String fileName = unitname+ "_"+map.get("file_name").toString(); OSSObject ossObject = ossClient.getObject(CustomerConstant.BUCKETNAME, fileUrl); inputStream = new BufferedInputStream(ossObject.getObjectContent()); ZipEntry entry = new ZipEntry(fileName); zipOutputStream.putNextEntry(entry); byte[] buf = new byte[1024]; int len; while ((len = inputStream.read(buf)) > 0) { zipOutputStream.write(buf, 0, len); } } // 关闭client ossClient.shutdown(); zipOutputStream.flush(); } catch (Exception e) { logger.info("--通过流的方式获取文件异常--" + e.getMessage()); }finally{ try { if(zipOutputStream != null) { zipOutputStream.close(); } if(inputStream != null){ inputStream.close(); } if(outputStream != null){ outputStream.close(); } } catch (IOException e) { org.jeecgframework.core.util.LogUtil.error(e.getMessage()); } } } boolean isIE(HttpServletRequest request) { return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0 || request.getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0) ? true : false; } }