integrated_traffic/src/main/java/com/zcloud/controller/system/ImgFilesController.java

312 lines
11 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.zcloud.controller.system;
import com.zcloud.controller.base.BaseController;
import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;
import com.zcloud.logs.LogAnno;
import com.zcloud.service.system.ImgFilesService;
import com.zcloud.util.*;
import org.apache.commons.io.FileUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
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 java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 说明:图片管理
* 作者luoxiaobao
* 时间2020-12-24
* 官网www.zcloudchina.com
*/
@Controller
@RequestMapping("/imgfiles")
public class ImgFilesController extends BaseController {
@Autowired
private ImgFilesService imgfilesService;
@Autowired
private Smb smb;
/**完成
* @param
* @throws Exception
*/
@RequestMapping(value="/add", headers = "content-type=multipart/form-data")
@ResponseBody
@Transactional
@LogAnno(menuType= "双重预防",menuServer= "隐患排查",instructionsOperate = "清单排查",instructionsType = "新增图片")
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<String,Object> map = new HashMap<String,Object>();
String errInfo = "success";
String FILEPATH = Const.FILEPATHYHTP;
if ("15".equals(TYPE) || "16".equals(TYPE) || "17".equals(TYPE)) {
FILEPATH = Const.FILEPATHIMGSPECIAL;
}
if (files != null && files.length > 0) {
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") && !TYPE.equals("3") && !TYPE.equals("129")) {//四色图改为json文件,不用判断类型
map.put("result", "failed");
map.put("exception", "上传图片格式不正确,请重新上传");
return map;
}
tempFile.delete();
if(TYPE.equals("2")) {//先删除原四色图
PageData pd2 = new PageData();
pd2.put("FOREIGN_KEY",FOREIGN_KEY);
pd2.put("TYPE",TYPE);
List<PageData> four = imgfilesService.listAll(pd2);
for (PageData pageData : four) {
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("."));
smb.sshSftp(file, fileName,FILEPATH + Jurisdiction.getCORPINFO_ID() + "/" + ffile);
PageData pd = new PageData();
pd.put("IMGFILES_ID", this.get32UUID());
pd.put("FILEPATH", FILEPATH + 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
* @throws Exception
*/
@RequestMapping(value="/edit", headers = "content-type=multipart/form-data")
@ResponseBody
@Transactional
@LogAnno(menuType= "双重预防",menuServer= "隐患排查",instructionsOperate = "清单排查",instructionsType = "完成")
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<String,Object> map = new HashMap<String,Object>();
String errInfo = "success";
String FILEPATH = Const.FILEPATHYHTP;
if ("15".equals(TYPE) || "16".equals(TYPE) || "17".equals(TYPE)) {
FILEPATH = Const.FILEPATHIMGSPECIAL;
}
if (files != null && files.length > 0) {
PageData pd2 = new PageData();
pd2.put("FOREIGN_KEY",FOREIGN_KEY);
pd2.put("TYPE",TYPE);
List<PageData> four = imgfilesService.listAll(pd2);
for (PageData pageData : four) {
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") && !TYPE.equals("3")) {//四色图改为json文件,不用判断类型
map.put("result", "failed");
map.put("exception", "上传图片格式不正确,请重新上传");
return map;
}
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,FILEPATH + Jurisdiction.getCORPINFO_ID() + "/" + ffile);
PageData pd = new PageData();
pd.put("IMGFILES_ID", this.get32UUID());
pd.put("FILEPATH", FILEPATH + 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
* @throws Exception
*/
@RequestMapping(value="/delete")
@ResponseBody
@LogAnno(menuType= "双重预防",menuServer= "隐患排查",instructionsOperate = "清单排查",instructionsType = "删除")
public Object delete() throws Exception{
Map<String,String> map = new HashMap<String,String>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
pd = imgfilesService.findById(pd); //根据ID读取
smb.deleteFile(pd.getString("FILEPATH"));
imgfilesService.delete(pd);
map.put("result", errInfo); //返回结果
return map;
}
/**修改
* @param
* @throws Exception
*/
@RequestMapping(value="/edit")
// @RequiresPermissions("imgfiles:edit")
@ResponseBody
@LogAnno(menuType= "双重预防",menuServer= "隐患排查",instructionsOperate = "清单排查",instructionsType = "修改")
public Object edit() throws Exception{
Map<String,Object> map = new HashMap<String,Object>();
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
@LogAnno(menuType= "双重预防",menuServer= "隐患排查",instructionsOperate = "清单排查",instructionsType = "列表")
public Object list(Page page) throws Exception{
Map<String,Object> map = new HashMap<String,Object>();
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<PageData> 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
@LogAnno(menuType= "双重预防",menuServer= "隐患排查",instructionsOperate = "清单排查",instructionsType = "去修改页面获取数据")
public Object goEdit() throws Exception{
Map<String,Object> map = new HashMap<String,Object>();
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
@LogAnno(menuType= "双重预防",menuServer= "隐患排查",instructionsOperate = "清单排查",instructionsType = "批量删除")
public Object deleteAll() throws Exception{
Map<String,Object> map = new HashMap<String,Object>();
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 = "error";
}
map.put("result", errInfo); //返回结果
return map;
}
/**导出到excel
* @param
* @throws Exception
*/
@RequestMapping(value="/excel")
// @RequiresPermissions("toExcel")
@LogAnno(menuType= "双重预防",menuServer= "隐患排查",instructionsOperate = "清单排查",instructionsType = "导出到excel")
public ModelAndView exportExcel() throws Exception{
ModelAndView mv = new ModelAndView();
PageData pd = new PageData();
pd = this.getPageData();
Map<String,Object> dataMap = new HashMap<String,Object>();
List<String> titles = new ArrayList<String>();
titles.add("路径"); //1
titles.add("类型"); //2
titles.add("外键"); //3
dataMap.put("titles", titles);
List<PageData> varOList = imgfilesService.listAll(pd);
List<PageData> varList = new ArrayList<PageData>();
for(int i=0;i<varOList.size();i++){
PageData vpd = new PageData();
vpd.put("var1", varOList.get(i).getString("FILEPATH")); //1
vpd.put("var2", varOList.get(i).get("TYPE").toString()); //2
vpd.put("var3", varOList.get(i).getString("FOREIGN_KEY")); //3
varList.add(vpd);
}
dataMap.put("varList", varList);
ObjectExcelView erv = new ObjectExcelView();
mv = new ModelAndView(erv,dataMap);
return mv;
}
/**查询图片集合
* @param
* @throws Exception
*/
@RequestMapping(value="/listImgs")
@ResponseBody
@LogAnno(menuType= "双重预防",menuServer= "隐患排查",instructionsOperate = "清单排查",instructionsType = "查询图片集合")
public Object listImgs() throws Exception{
Map<String,Object> map = new HashMap<String,Object>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
List<PageData> imgs = imgfilesService.listAll(pd); //根据ID读取
map.put("imgs", imgs);
map.put("result", errInfo);
return map;
}
}