qa-prevention-gwj/src/main/java/com/zcloud/controller/bus/ImgFilesController.java

439 lines
16 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.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.alibaba.fastjson.JSON;
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<String,Object> map = new HashMap<String,Object>();
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<PageData> 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<String,Object> map = new HashMap<String,Object>();
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<String,Object> map = new HashMap<String,Object>();
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<PageData> 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
@DockAnnotation
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读取
File file = new File(PathUtil.getProjectpath()+pd.getString("FILEPATH"));
file.delete();
imgfilesService.delete(pd);
map.put("dockData", JSON.toJSONString(pd));
map.put("result", errInfo); //返回结果
return map;
}
/**修改
* @param
* @throws Exception
*/
@RequestMapping(value="/edit")
@RequiresPermissions("imgfiles:edit")
@ResponseBody
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
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
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
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 = "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<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
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;
}
/**完成
* @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<String,Object> map = new HashMap<String,Object>();
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;
}
}