FhfileController.java 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. package com.zhcs.dt.controller.fhoa.fhfile;
  2. import java.io.PrintWriter;
  3. import java.text.DateFormat;
  4. import java.text.SimpleDateFormat;
  5. import java.util.ArrayList;
  6. import java.util.Date;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10. import javax.annotation.Resource;
  11. import javax.servlet.http.HttpServletResponse;
  12. import org.springframework.beans.propertyeditors.CustomDateEditor;
  13. import org.springframework.stereotype.Controller;
  14. import org.springframework.web.bind.WebDataBinder;
  15. import org.springframework.web.bind.annotation.InitBinder;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.ResponseBody;
  18. import org.springframework.web.servlet.ModelAndView;
  19. import com.zhcs.dt.controller.base.BaseController;
  20. import com.zhcs.dt.entity.Page;
  21. import com.zhcs.dt.service.fhoa.fhfile.FhfileManager;
  22. import com.zhcs.dt.util.AppUtil;
  23. import com.zhcs.dt.util.Const;
  24. import com.zhcs.dt.util.DelAllFile;
  25. import com.zhcs.dt.util.FileDownload;
  26. import com.zhcs.dt.util.FileUtil;
  27. import com.zhcs.dt.util.Jurisdiction;
  28. import com.zhcs.dt.util.PageData;
  29. import com.zhcs.dt.util.PathUtil;
  30. import com.zhcs.dt.util.Tools;
  31. /**
  32. * 说明:文件管理
  33. * 创建人:FH Q313596790
  34. * 创建时间:2016-05-27
  35. */
  36. @Controller
  37. @RequestMapping(value="/fhfile")
  38. public class FhfileController extends BaseController {
  39. String menuUrl = "fhfile/list.do"; //菜单地址(权限用)
  40. @Resource(name="fhfileService")
  41. private FhfileManager fhfileService;
  42. /**保存
  43. * @param
  44. * @throws Exception
  45. */
  46. @RequestMapping(value="/save")
  47. public ModelAndView save() throws Exception{
  48. logBefore(logger, Jurisdiction.getUsername()+"新增Fhfile");
  49. if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限
  50. ModelAndView mv = this.getModelAndView();
  51. PageData pd = new PageData();
  52. pd = this.getPageData();
  53. pd.put("FHFILE_ID", this.get32UUID()); //主键
  54. pd.put("CTIME", Tools.date2Str(new Date())); //上传时间
  55. pd.put("USERNAME", Jurisdiction.getUsername()); //上传者
  56. pd.put("DEPARTMENT_ID", Jurisdiction.getDEPARTMENT_ID()); //部门ID
  57. pd.put("FILESIZE", FileUtil.getFilesize(PathUtil.getClasspath() + Const.FILEPATHFILEOA + pd.getString("FILEPATH"))); //文件大小
  58. fhfileService.save(pd);
  59. mv.addObject("msg","success");
  60. mv.setViewName("save_result");
  61. return mv;
  62. }
  63. /**删除
  64. * @param out
  65. * @throws Exception
  66. */
  67. @RequestMapping(value="/delete")
  68. public void delete(PrintWriter out) throws Exception{
  69. logBefore(logger, Jurisdiction.getUsername()+"删除Fhfile");
  70. if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return;} //校验权限
  71. PageData pd = new PageData();
  72. pd = this.getPageData();
  73. pd = fhfileService.findById(pd);
  74. fhfileService.delete(pd);
  75. DelAllFile.delFolder(PathUtil.getClasspath()+ Const.FILEPATHFILEOA + pd.getString("FILEPATH")); //删除文件
  76. out.write("success");
  77. out.close();
  78. }
  79. /**列表
  80. * @param page
  81. * @throws Exception
  82. */
  83. @RequestMapping(value="/list")
  84. public ModelAndView list(Page page) throws Exception{
  85. logBefore(logger, Jurisdiction.getUsername()+"列表Fhfile");
  86. //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
  87. ModelAndView mv = this.getModelAndView();
  88. PageData pd = new PageData();
  89. pd = this.getPageData();
  90. String keywords = pd.getString("keywords"); //关键词检索条件
  91. if(null != keywords && !"".equals(keywords)){
  92. pd.put("keywords", keywords.trim());
  93. }
  94. String item = Jurisdiction.getDEPARTMENT_IDS();
  95. if("0".equals(item) || "无权".equals(item)){
  96. pd.put("item",""); //根据部门ID过滤
  97. }else{
  98. pd.put("item", item.replaceFirst("\\(", "\\('"+Jurisdiction.getDEPARTMENT_ID()+"',"));
  99. }
  100. page.setPd(pd);
  101. List<PageData> varList = fhfileService.list(page); //列出Fhfile列表
  102. List<PageData> nvarList = new ArrayList<PageData>();
  103. for(int i=0;i<varList.size();i++){
  104. PageData npd = new PageData();
  105. String FILEPATH = varList.get(i).getString("FILEPATH");
  106. String Extension_name = FILEPATH.substring(20, FILEPATH.length());//文件拓展名
  107. String fileType = "file";
  108. int zindex1 = "java,php,jsp,html,css,txt,asp".indexOf(Extension_name);
  109. if(zindex1 != -1){
  110. fileType = "wenben"; //文本类型
  111. }
  112. int zindex2 = "jpg,gif,bmp,png".indexOf(Extension_name);
  113. if(zindex2 != -1){
  114. fileType = "tupian"; //图片文件类型
  115. }
  116. int zindex3 = "rar,zip,rar5".indexOf(Extension_name);
  117. if(zindex3 != -1){
  118. fileType = "yasuo"; //压缩文件类型
  119. }
  120. int zindex4 = "doc,docx".indexOf(Extension_name);
  121. if(zindex4 != -1){
  122. fileType = "doc"; //doc文件类型
  123. }
  124. int zindex5 = "xls,xlsx".indexOf(Extension_name);
  125. if(zindex5 != -1){
  126. fileType = "xls"; //xls文件类型
  127. }
  128. int zindex6 = "ppt,pptx".indexOf(Extension_name);
  129. if(zindex6 != -1){
  130. fileType = "ppt"; //ppt文件类型
  131. }
  132. int zindex7 = "pdf".indexOf(Extension_name);
  133. if(zindex7 != -1){
  134. fileType = "pdf"; //ppt文件类型
  135. }
  136. int zindex8 = "fly,f4v,mp4,m3u8,webm,ogg,avi".indexOf(Extension_name);
  137. if(zindex8 != -1){
  138. fileType = "video"; //视频文件类型
  139. }
  140. npd.put("fileType", fileType); //用于文件图标
  141. npd.put("FHFILE_ID", varList.get(i).getString("FHFILE_ID")); //唯一ID
  142. npd.put("NAME", varList.get(i).getString("NAME")); //文件名
  143. npd.put("FILEPATH", FILEPATH); //文件名+扩展名
  144. npd.put("CTIME", varList.get(i).getString("CTIME")); //上传时间
  145. npd.put("USERNAME", varList.get(i).getString("USERNAME")); //用户名
  146. npd.put("DEPARTMENT_ID", varList.get(i).getString("DEPARTMENT_ID"));//机构级别
  147. npd.put("FILESIZE", varList.get(i).getString("FILESIZE")); //文件大小
  148. npd.put("BZ", varList.get(i).getString("BZ")); //备注
  149. nvarList.add(npd);
  150. }
  151. mv.setViewName("fhoa/fhfile/fhfile_list");
  152. mv.addObject("varList", nvarList);
  153. mv.addObject("pd", pd);
  154. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  155. return mv;
  156. }
  157. /**去新增页面
  158. * @param
  159. * @throws Exception
  160. */
  161. @RequestMapping(value="/goAdd")
  162. public ModelAndView goAdd()throws Exception{
  163. ModelAndView mv = this.getModelAndView();
  164. PageData pd = new PageData();
  165. pd = this.getPageData();
  166. mv.setViewName("fhoa/fhfile/fhfile_edit");
  167. mv.addObject("msg", "save");
  168. mv.addObject("pd", pd);
  169. return mv;
  170. }
  171. /**去预览pdf文件页面
  172. * @param
  173. * @throws Exception
  174. */
  175. @RequestMapping(value="/goViewPdf")
  176. public ModelAndView goViewPdf()throws Exception{
  177. ModelAndView mv = this.getModelAndView();
  178. PageData pd = new PageData();
  179. pd = this.getPageData();
  180. pd = fhfileService.findById(pd);
  181. mv.setViewName("fhoa/fhfile/fhfile_view_pdf");
  182. mv.addObject("pd", pd);
  183. return mv;
  184. }
  185. /**去预览txt,java,php,等文本文件页面
  186. * @param
  187. * @throws Exception
  188. */
  189. @RequestMapping(value="/goViewTxt")
  190. public ModelAndView goViewTxt()throws Exception{
  191. ModelAndView mv = this.getModelAndView();
  192. PageData pd = new PageData();
  193. pd = this.getPageData();
  194. String encoding = pd.getString("encoding");
  195. pd = fhfileService.findById(pd);
  196. String code = Tools.readTxtFileAll(Const.FILEPATHFILEOA+pd.getString("FILEPATH"),encoding);
  197. pd.put("code", code);
  198. mv.setViewName("fhoa/fhfile/fhfile_view_txt");
  199. mv.addObject("pd", pd);
  200. return mv;
  201. }
  202. /**批量删除
  203. * @param
  204. * @throws Exception
  205. */
  206. @RequestMapping(value="/deleteAll")
  207. @ResponseBody
  208. public Object deleteAll() throws Exception{
  209. logBefore(logger, Jurisdiction.getUsername()+"批量删除Fhfile");
  210. if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限
  211. PageData pd = new PageData();
  212. Map<String,Object> map = new HashMap<String,Object>();
  213. pd = this.getPageData();
  214. List<PageData> pdList = new ArrayList<PageData>();
  215. String DATA_IDS = pd.getString("DATA_IDS");
  216. if(null != DATA_IDS && !"".equals(DATA_IDS)){
  217. String ArrayDATA_IDS[] = DATA_IDS.split(",");
  218. PageData fpd = new PageData();
  219. for(int i=0;i<ArrayDATA_IDS.length;i++){
  220. fpd.put("FHFILE_ID", ArrayDATA_IDS[i]);
  221. fpd = fhfileService.findById(fpd);
  222. DelAllFile.delFolder(PathUtil.getClasspath()+ Const.FILEPATHFILEOA + fpd.getString("FILEPATH")); //删除物理文件
  223. }
  224. fhfileService.deleteAll(ArrayDATA_IDS); //删除数据库记录
  225. pd.put("msg", "ok");
  226. }else{
  227. pd.put("msg", "no");
  228. }
  229. pdList.add(pd);
  230. map.put("list", pdList);
  231. return AppUtil.returnObject(pd, map);
  232. }
  233. /**下载
  234. * @param response
  235. * @throws Exception
  236. */
  237. @RequestMapping(value="/download")
  238. public void download(HttpServletResponse response)throws Exception{
  239. PageData pd = new PageData();
  240. pd = this.getPageData();
  241. pd = fhfileService.findById(pd);
  242. String fileName = pd.getString("FILEPATH");
  243. FileDownload.fileDownload(response, PathUtil.getClasspath() + Const.FILEPATHFILEOA + fileName, pd.getString("NAME")+fileName.substring(19, fileName.length()));
  244. }
  245. @InitBinder
  246. public void initBinder(WebDataBinder binder){
  247. DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  248. binder.registerCustomEditor(Date.class, new CustomDateEditor(format,true));
  249. }
  250. }