package com.zcloud.controller.bus; import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import com.zcloud.aspect.DockAnnotation; import com.zcloud.util.*; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import org.apache.commons.io.FileUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import com.zcloud.controller.base.BaseController; import com.zcloud.entity.Page; import com.zcloud.entity.PageData; import com.zcloud.service.bus.ImgFilesService; /** * 说明:图片管理 * 作者:luoxiaobao * 时间:2020-12-24 * 官网:www.zcloudchina.com */ @Controller @RequestMapping("/imgfiles") public class ImgFilesController extends BaseController { @Autowired private ImgFilesService imgfilesService; /**完成 * @param * f.TYPE 图片类型 * 2-企业四色图 * 3-隐患照片 * 4-隐患整改照片 * 5-隐患验照片 * 6-证书照片 * 7-受限空间平面图 * 8-隐患整改方案图 * 9-有限空间确认人签字 * 10-有限空间审核人签字 * 11-有限空间检测人签字 * 12-发票 * 13-清单检查记录签名 * 14-清单检查记录合格照片 * 15-特种设备故障照片 * 16-特种设备故障处理后照片 * 17-特种设备巡检照片 * 18-人员信息证书图片 * 19- * 20-重大危险源报警处置前照片 * 21-重大危险源报警处置后照片 * 22-智能门禁外来车辆驾驶证照片 * 23-智能门禁外来车辆行驶证照片 * 101.隐患延期临时措施附件 * 102隐患视频 * 201 特种动火,动火操作员,临时人员,人员照片 * 202 特种动火,动火操作员,临时人员,证件照片 * 203 特级动火, 项目主管部门负责人审核 * 204 特级动火, 项目主管部门负责人审核 * 205 特级动火, (港股)安委办公室审批 -- 上传会议纪要: * 206 特级动火, (港股)安委办公室审批 -- 上传附件: * 300 重点工程的 安全管理协议(附件): * * @throws Exception */ @RequestMapping(value="/add", headers = "content-type=multipart/form-data") @ResponseBody @Transactional public Object finish( @RequestParam(value="FFILE",required=false) MultipartFile[] files, @RequestParam(value="TYPE",required=false) String TYPE, @RequestParam(value="FOREIGN_KEY",required=false) String FOREIGN_KEY ) throws Exception{ Map map = new HashMap(); System.out.println("+++++++++++++++"+files); String errInfo = "success"; if (files != null && files.length > 0) { for (int i = 0; i < files.length; i++) { String suffixName = files[i].getOriginalFilename().substring(files[i].getOriginalFilename().lastIndexOf(".")+1).toLowerCase(); if (!"json".equals(suffixName) && !"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) { errInfo = "fail"; map.put("result", errInfo); map.put("msg", "文件格式不正确!"); return map; } } for (int i = 0; i < files.length; i++) { MultipartFile file = files[i]; // 保存文件 File tempFile = new File(file.getOriginalFilename()); FileUtils.copyInputStreamToFile(file.getInputStream(), tempFile); if(!FileUpload.isImage(tempFile) && !TYPE.equals("2")) {//四色图改为json文件,不用判断类型 tempFile.delete(); map.put("result", "failed"); map.put("exception", "上传图片格式不正确,请重新上传"); return map; } if (tempFile.exists()) { tempFile.delete(); } if(TYPE.equals("2")) {//先删除原四色图 PageData pd2 = new PageData(); pd2.put("FOREIGN_KEY",FOREIGN_KEY); pd2.put("TYPE",TYPE); List four = imgfilesService.listAll(pd2); for (PageData pageData : four) { File old = new File(PathUtil.getProjectpath()+pageData.getString("FILEPATH")); old.delete(); imgfilesService.delete(pageData); } } String ffile = DateUtil.getDays(); // String filePath = PathUtil.getProjectpath() + Const.FILEPATHFILE + ffile; //文件上传路径 // String fileName = FileUpload.fileUp(file, filePath, this.get32UUID()); //执行上传 String fileName = this.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); PageData pd = new PageData(); String IMGFILES_ID = this.get32UUID(); pd.put("IMGFILES_ID", IMGFILES_ID); pd.put("FILEPATH", Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile + "/" + fileName); pd.put("TYPE", TYPE); pd.put("FOREIGN_KEY", FOREIGN_KEY); Smb.sshSftp(file, fileName,Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile,IMGFILES_ID,FOREIGN_KEY,TYPE); imgfilesService.save(pd); } } map.put("result", errInfo); return map; } /**新增 * @param * @throws Exception */ @RequestMapping(value="/add64") @ResponseBody public Object add64() throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); MultipartFile img = BASE64DecodedMultipartFile.base64ToMultipart(pd.getString("FILEPATH")); String suffixName = img.getOriginalFilename().substring(img.getOriginalFilename().lastIndexOf(".")+1).toLowerCase(); if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) { errInfo = "fail"; map.put("result", errInfo); map.put("msg", "文件格式不正确!"); return map; } String ffile = DateUtil.getDays(); String fileName = this.get32UUID()+img.getOriginalFilename().substring(img.getOriginalFilename().lastIndexOf(".")); Smb.sshSftp(img, fileName, Const.FILEPATHFILE + Jurisdiction.getCORPINFO_ID() + "/" + ffile); pd.put("FILEPATH", Const.FILEPATHFILE + Jurisdiction.getCORPINFO_ID() + "/" + ffile + "/" + fileName); pd.put("IMGFILES_ID", this.get32UUID()); pd.put("TYPE", pd.getString("TYPE")); pd.put("FOREIGN_KEY", pd.getString("FOREIGN_KEY")); imgfilesService.save(pd); map.put("pd", pd); map.put("result", errInfo); return map; } /**完成 * @param * @throws Exception */ @RequestMapping(value="/edit", headers = "content-type=multipart/form-data") @ResponseBody @Transactional public Object edit( @RequestParam(value="FFILE",required=false) MultipartFile[] files, @RequestParam(value="TYPE",required=false) String TYPE, @RequestParam(value="FOREIGN_KEY",required=false) String FOREIGN_KEY ) throws Exception{ Map map = new HashMap(); String errInfo = "success"; if (files != null && files.length > 0) { for (int i = 0; i < files.length; i++) { String suffixName = files[i].getOriginalFilename().substring(files[i].getOriginalFilename().lastIndexOf(".")+1).toLowerCase(); if (!"json".equals(suffixName) && !"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) { errInfo = "fail"; map.put("result", errInfo); map.put("msg", "文件格式不正确!"); return map; } } PageData pd2 = new PageData(); pd2.put("FOREIGN_KEY",FOREIGN_KEY); pd2.put("TYPE",TYPE); List four = imgfilesService.listAll(pd2); for (PageData pageData : four) { File old = new File(PathUtil.getProjectpath()+pageData.getString("FILEPATH")); old.delete(); imgfilesService.delete(pageData); } for (int i = 0; i < files.length; i++) { MultipartFile file = files[i]; // 保存文件 File tempFile = new File(file.getOriginalFilename()); FileUtils.copyInputStreamToFile(file.getInputStream(), tempFile); if(!FileUpload.isImage(tempFile) && !TYPE.equals("2")) {//四色图改为json文件,不用判断类型 tempFile.delete(); map.put("result", "failed"); map.put("exception", "上传图片格式不正确,请重新上传"); return map; } if (tempFile.exists()) { tempFile.delete(); } String ffile = DateUtil.getDays(); // String filePath = PathUtil.getProjectpath() + Const.FILEPATHFILE + ffile; //文件上传路径 // String fileName = FileUpload.fileUp(file, filePath, this.get32UUID()); //执行上传 String fileName = this.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); Smb.sshSftp(file, fileName,Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile); PageData pd = new PageData(); pd.put("IMGFILES_ID", this.get32UUID()); pd.put("FILEPATH", Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile + "/" + fileName); pd.put("TYPE", TYPE); pd.put("FOREIGN_KEY", FOREIGN_KEY); imgfilesService.save(pd); } } map.put("result", errInfo); return map; } /**删除 * @param out * @throws Exception */ @RequestMapping(value="/delete") @ResponseBody public Object delete() throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd = imgfilesService.findById(pd); //根据ID读取 File file = new File(PathUtil.getProjectpath()+pd.getString("FILEPATH")); file.delete(); imgfilesService.delete(pd); map.put("result", errInfo); //返回结果 return map; } /**修改 * @param * @throws Exception */ @RequestMapping(value="/edit") @RequiresPermissions("imgfiles:edit") @ResponseBody public Object edit() throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); imgfilesService.edit(pd); map.put("result", errInfo); return map; } /**列表 * @param page * @throws Exception */ @RequestMapping(value="/list") @RequiresPermissions("imgfiles:list") @ResponseBody public Object list(Page page) throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件 if(Tools.notEmpty(KEYWORDS))pd.put("KEYWORDS", KEYWORDS.trim()); page.setPd(pd); List varList = imgfilesService.list(page); //列出ImgFiles列表 map.put("varList", varList); map.put("page", page); map.put("result", errInfo); return map; } /**去修改页面获取数据 * @param * @throws Exception */ @RequestMapping(value="/goEdit") @RequiresPermissions("imgfiles:edit") @ResponseBody public Object goEdit() throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd = imgfilesService.findById(pd); //根据ID读取 map.put("pd", pd); map.put("result", errInfo); return map; } /**批量删除 * @param * @throws Exception */ @RequestMapping(value="/deleteAll") // @RequiresPermissions("imgfiles:del") @ResponseBody public Object deleteAll() throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); String DATA_IDS = pd.getString("DATA_IDS"); if(Tools.notEmpty(DATA_IDS)){ String ArrayDATA_IDS[] = DATA_IDS.split(","); imgfilesService.deleteAll(ArrayDATA_IDS); errInfo = "success"; }else{ errInfo = "fail"; } map.put("result", errInfo); //返回结果 return map; } /**导出到excel * @param * @throws Exception */ @RequestMapping(value="/excel") // @RequiresPermissions("toExcel") public ModelAndView exportExcel() throws Exception{ ModelAndView mv = new ModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); Map dataMap = new HashMap(); List titles = new ArrayList(); titles.add("路径"); //1 titles.add("类型"); //2 titles.add("外键"); //3 dataMap.put("titles", titles); List varOList = imgfilesService.listAll(pd); List varList = new ArrayList(); for(int i=0;i map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); List imgs = imgfilesService.listAll(pd); //根据ID读取 map.put("imgs", imgs); map.put("result", errInfo); return map; } /**完成 * @param * @throws Exception */ @RequestMapping(value="/addVideo", headers = "content-type=multipart/form-data") @ResponseBody @Transactional public Object addVideo( @RequestParam(value="FFILE",required=false) MultipartFile[] files, @RequestParam(value="TYPE",required=false) String TYPE, @RequestParam(value="FOREIGN_KEY",required=false) String FOREIGN_KEY ) throws Exception{ Map map = new HashMap(); String errInfo = "success"; if (files != null && files.length > 0) { for (int i = 0; i < files.length; i++) { String suffixName = files[i].getOriginalFilename().substring(files[i].getOriginalFilename().lastIndexOf(".")+1).toLowerCase(); if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) { errInfo = "fail"; map.put("result", errInfo); map.put("msg", "文件格式不正确!"); return map; } } for (int i = 0; i < files.length; i++) { MultipartFile file = files[i]; String ffile = DateUtil.getDays(); // String filePath = PathUtil.getProjectpath() + Const.FILEPATHFILE + ffile; //文件上传路径 // String fileName = FileUpload.fileUp(file, filePath, this.get32UUID()); //执行上传 String fileName = this.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); Smb.sshSftp(file, fileName,Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile); PageData pd = new PageData(); pd.put("IMGFILES_ID", this.get32UUID()); pd.put("FILEPATH", Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile + "/" + fileName); pd.put("TYPE", TYPE); pd.put("FOREIGN_KEY", FOREIGN_KEY); imgfilesService.save(pd); } } map.put("result", errInfo); return map; } }