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

423 lines
15 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.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
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.shiro.authz.annotation.RequiresPermissions;
import com.zcloud.controller.base.BaseController;
import com.zcloud.entity.Page;
import com.zcloud.util.Const;
import com.zcloud.util.DateUtil;
import com.zcloud.util.FileDownload;
import com.zcloud.util.FileUpload;
import com.zcloud.util.Jurisdiction;
import com.zcloud.util.ObjectExcelRead;
import com.zcloud.util.ObjectExcelView;
import com.zcloud.util.PathUtil;
import com.zcloud.util.Smb;
import com.zcloud.util.Tools;
import com.zcloud.entity.PageData;
import com.zcloud.entity.system.Dictionaries;
import com.zcloud.service.bus.ImgFilesService;
import com.zcloud.service.bus.RestrictedSpaceService;
import com.zcloud.service.system.DictionariesService;
/**
* 说明:有(受)限空间
* 作者luoxiaobao
* 时间2021-01-07
* 官网www.zcloudchina.com
*/
@Controller
@RequestMapping("/restrictedspace")
public class RestrictedSpaceController extends BaseController {
@Autowired
private RestrictedSpaceService restrictedspaceService;
@Autowired
private ImgFilesService imgFilesService;
@Autowired
private DictionariesService dictionariesService;
/**新增
* @param
* @throws Exception
*/
@RequestMapping(value="/add")
@RequiresPermissions("restrictedspace:add")
@ResponseBody
public Object add() throws Exception{
Map<String,Object> map = new HashMap<String,Object>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
pd.put("RESTRICTEDSPACE_ID", this.get32UUID()); //主键
pd.put("CREATOR", Jurisdiction.getUsername()); //添加人
pd.put("CREATTIME", DateUtil.date2Str(new Date())); //添加时间
pd.put("OPERATOR", Jurisdiction.getUsername()); //修改人
pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
pd.put("ISDELETE", "0"); //是否删除 1-是 0-否
restrictedspaceService.save(pd);
map.put("result", errInfo);
map.put("pd", pd);
return map;
}
/**删除
* @param out
* @throws Exception
*/
@RequestMapping(value="/delete")
@RequiresPermissions("restrictedspace:del")
@ResponseBody
public Object delete() throws Exception{
Map<String,String> map = new HashMap<String,String>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
pd.put("OPERATOR", Jurisdiction.getUsername()); //修改人
pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间
restrictedspaceService.delete(pd);
PageData pd2 = new PageData();
pd2.put("FOREIGN_KEY", pd.getString("RESTRICTEDSPACE_ID"));
pd2.put("TYPE",7);
List<PageData> imgs = imgFilesService.listAll(pd2);//隐患图片
if(imgs != null && imgs.size() > 0) {
for (PageData pageData : imgs) {
File old = new File(PathUtil.getProjectpath()+pageData.getString("FILEPATH"));
old.delete();
imgFilesService.delete(pageData);
}
}
map.put("result", errInfo); //返回结果
return map;
}
/**修改
* @param
* @throws Exception
*/
@RequestMapping(value="/edit")
@RequiresPermissions("restrictedspace: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();
pd.put("OPERATOR", Jurisdiction.getUsername()); //修改人
pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间
restrictedspaceService.edit(pd);
map.put("result", errInfo);
map.put("pd", pd);
return map;
}
/**列表
* @param page
* @throws Exception
*/
@RequestMapping(value="/list")
@RequiresPermissions("restrictedspace: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());
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
page.setPd(pd);
List<PageData> varList = restrictedspaceService.list(page); //列出RestrictedSpace列表
if(varList.size()>0) {//如果有数据就去查询图片
String varIds[] = new String[varList.size()]; //需要查询的图片ids
for (int i = 0; i < varList.size(); i++) {
varIds[i] = varList.get(i).getString("RESTRICTEDSPACE_ID");
}
PageData pd2 = new PageData();
pd2.put("ArrayDATA_IDS", varIds);
List<PageData> varImgList = imgFilesService.listAllByIds(pd2);//
for(int i=0;i<varList.size();i++) {
PageData varPd = new PageData();
varPd = varList.get(i);
String listKey = varPd.getString("RESTRICTEDSPACE_ID");
for(int j =0 ;j<varImgList.size(); j++) {
String imgKey = varImgList.get(j).getString("FOREIGN_KEY");
if(imgKey.equals(listKey)) {
varPd.put("img", varImgList.get(j).getString("FILEPATH"));
break;
}
}
}
}
map.put("varList", varList);
map.put("page", page);
map.put("result", errInfo);
return map;
}
/**去修改页面获取数据
* @param
* @throws Exception
*/
@RequestMapping(value="/goEdit")
@RequiresPermissions("restrictedspace: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 = restrictedspaceService.findById(pd); //根据ID读取
PageData pd2 = new PageData();
pd2.put("FOREIGN_KEY", pd.getString("RESTRICTEDSPACE_ID"));
pd2.put("TYPE",7);
List<PageData> hImgs = imgFilesService.listAll(pd2);//
map.put("hImgs", hImgs);
map.put("pd", pd);
map.put("result", errInfo);
return map;
}
/**批量删除
* @param
* @throws Exception
*/
@RequestMapping(value="/deleteAll")
@RequiresPermissions("restrictedspace: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(",");
restrictedspaceService.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{
String DICTIONARIES_ID = "723d3cc7b2c8497c83fd6b4b6cc9a45d";
DICTIONARIES_ID = Tools.isEmpty(DICTIONARIES_ID)?"0":DICTIONARIES_ID;
List<Dictionaries> dicListVal = dictionariesService.listSubDictByParentId(DICTIONARIES_ID); //用传过来的ID获取此ID下的子列表数据
Map<String, Object> dicMap = new HashMap<>();
for (Dictionaries dictionaries : dicListVal) {
dicMap.put(dictionaries.getBIANMA(), dictionaries.getNAME());
}
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("NO"); //1
titles.add("名称"); //1
titles.add("存在区域"); //2
titles.add("涉及岗位"); //3
titles.add("进入频率"); //4
titles.add("主要危害因素"); //5
titles.add("可能事故后果"); //6
titles.add("防护要求"); //7
titles.add("作业形式"); //8
titles.add("审批责任人"); //9
titles.add("现场责任人"); //10
titles.add("备注"); //11
titles.add("添加人"); //13
titles.add("添加时间"); //14
titles.add("修改人"); //15
titles.add("修改时间"); //16
// titles.add("是否删除 1-是 0-否"); //17
dataMap.put("titles", titles);
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
pd.put("ISDELETE", "0");
List<PageData> varOList = restrictedspaceService.listAll(pd);
List<PageData> varList = new ArrayList<PageData>();
for(int i=0;i<varOList.size();i++){
PageData vpd = new PageData();
vpd.put("var1", i+1+""); //1
vpd.put("var2", varOList.get(i).getString("NAME")); //1
vpd.put("var3", varOList.get(i).getString("AREA")); //2
vpd.put("var4", varOList.get(i).getString("POST")); //3
vpd.put("var5", varOList.get(i).getString("FREQUENCY")); //4
vpd.put("var6", varOList.get(i).getString("HAZARDFACTORS")); //5
vpd.put("var7", varOList.get(i).getString("CONSEQUENCE")); //6
vpd.put("var8", varOList.get(i).getString("REQUIREMENTS")); //7
vpd.put("var9",dicMap.get(varOList.get(i).getString("HOMEWORKFORM"))); //8
vpd.put("var10", varOList.get(i).getString("EXAMINEOR")); //9
vpd.put("var11", varOList.get(i).getString("SCENEOR")); //10
vpd.put("var12", varOList.get(i).getString("DESCR")); //11
vpd.put("var13", varOList.get(i).getString("CREATOR")); //13
vpd.put("var14", varOList.get(i).getString("CREATTIME")); //14
vpd.put("var15", varOList.get(i).getString("OPERATOR")); //15
vpd.put("var16", varOList.get(i).getString("OPERATTIME")); //16
varList.add(vpd);
}
dataMap.put("varList", varList);
ObjectExcelView erv = new ObjectExcelView();
mv = new ModelAndView(erv,dataMap);
return mv;
}
/**导出到excel
* @param
* @throws Exception
*/
@RequestMapping(value="/excelModel")
// @RequiresPermissions("toExcel")
public void exportExcelModel(HttpServletResponse response) throws Exception{
FileDownload.fileDownload(response, PathUtil.getProjectpath() + Const.FILEPATHFILE + "restrictedspaceTemplate.xls", "restrictedspaceTemplate.xls");
}
/**从EXCEL导入到数据库
* @param file
* @return
* @throws Exception
*/
@RequestMapping(value="/readExcel")
@RequiresPermissions("fromExcel")
@SuppressWarnings("unchecked")
@ResponseBody
@Transactional
public Object readExcel(@RequestParam(value="FFILE",required=false) MultipartFile file) throws Exception{
Map<String,String> map = new HashMap<String,String>();
String errInfo = "success";
PageData pdPublic = new PageData();
pdPublic = this.getPageData();
StringBuffer errorStr = new StringBuffer();
if (null != file && !file.isEmpty()) {
String suffixName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
if (!"xls".equals(suffixName)) {
errInfo = "fail";
map.put("result", errInfo);
map.put("msg", "文件格式不正确!");
return map;
}
String ffile = "restrictedspace/"+DateUtil.getDays()+"/";
String filePath = Const.FILEURL + Const.FILEPATHFILE + Jurisdiction.getCORPINFO_ID() + "/" + ffile;
String fileName = this.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
Smb.sshSftp(file, fileName,Const.FILEPATHFILE + Jurisdiction.getCORPINFO_ID() + "/" + ffile);
List<PageData> listPd = (List)ObjectExcelRead.readExcel(filePath, fileName, 1, 0, 0);//执行读EXCEL操作,读出的数据导入List 2:从第3行开始0:从第A列开始0:第0个sheet
if(listPd.size()==0) {
errInfo="error";
errorStr.append("未找到上传内容,请确认后重新上传");
map.put("result", errInfo); //返回结果
map.put("resultStr", errorStr.toString());
return map;
}
String DICTIONARIES_ID = "723d3cc7b2c8497c83fd6b4b6cc9a45d";
DICTIONARIES_ID = Tools.isEmpty(DICTIONARIES_ID)?"0":DICTIONARIES_ID;
List<Dictionaries> dicListVal = dictionariesService.listSubDictByParentId(DICTIONARIES_ID); //用传过来的ID获取此ID下的子列表数据
Map<String, Object> dicMap = new HashMap<>();
for (Dictionaries dictionaries : dicListVal) {
dicMap.put(dictionaries.getNAME(),dictionaries.getBIANMA());
}
int line= 12;
int row =0;
List<Map<String, Object>> addList = new ArrayList<>();
for(PageData lpd:listPd) {
row ++;
String biaoshi = Tools.excelHandle(lpd.get("var0").toString());
if(Tools.isEmpty(biaoshi)) {
break;
}
for(int i=1;i<line;i++) {
String key = "var"+i;
String val = lpd.get(key).toString();
if(i== 8) {
if(!dicMap.containsKey(val)) {
errInfo="error";
errorStr.append("第"+row+"行的"+line+"列字段未找到信息。请检查导入信息");
map.put("result", errInfo); //返回结果
map.put("resultStr", errorStr.toString());
return map;
}
}
if(Tools.isEmpty(val)) {
errInfo="error";
errorStr.append("第"+row+"行的"+line+"列字段为空。请检查导入信息");
map.put("result", errInfo); //返回结果
map.put("resultStr", errorStr.toString());
return map;
}
}
Map<String, Object> valPd = new HashMap<>();
String NAME= Tools.excelHandle(lpd.get("var1").toString());
String AREA= Tools.excelHandle(lpd.get("var2").toString());
String POST= Tools.excelHandle(lpd.get("var3").toString());
String FREQUENCY= Tools.excelHandle(lpd.get("var4").toString());
String HAZARDFACTORS= Tools.excelHandle(lpd.get("var5").toString());
String CONSEQUENCE= Tools.excelHandle(lpd.get("var6").toString());
String REQUIREMENTS= Tools.excelHandle(lpd.get("var7").toString());
String HOMEWORKFORM= dicMap.get(Tools.excelHandle(lpd.get("var8").toString())).toString();
String EXAMINEOR= Tools.excelHandle(lpd.get("var9").toString());
String SCENEOR=Tools.excelHandle( lpd.get("var10").toString());
String DESCR= Tools.excelHandle(lpd.get("var11").toString());
valPd.put("NAME", NAME);
valPd.put("AREA", AREA);
valPd.put("POST", POST);
valPd.put("FREQUENCY", FREQUENCY);
valPd.put("HAZARDFACTORS", HAZARDFACTORS);
valPd.put("CONSEQUENCE", CONSEQUENCE);
valPd.put("REQUIREMENTS", REQUIREMENTS);
valPd.put("HOMEWORKFORM", HOMEWORKFORM);
valPd.put("EXAMINEOR", EXAMINEOR);
valPd.put("SCENEOR", SCENEOR);
valPd.put("DESCR", DESCR);
valPd.put("RESTRICTEDSPACE_ID", this.get32UUID()); //主键
valPd.put("CREATOR", Jurisdiction.getUsername()); //添加人
valPd.put("CREATTIME", DateUtil.date2Str(new Date())); //添加时间
valPd.put("OPERATOR", Jurisdiction.getUsername()); //修改人
valPd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间
valPd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
valPd.put("ISDELETE", "0"); //是否删除 1-是 0-否
addList.add(valPd);
}
PageData pd = new PageData();
pd.put("list", addList);
restrictedspaceService.savaAll(pd);
}else {
errInfo="error";
errorStr.append("上传文件错误!请联系管理员");
}
map.put("result", errInfo); //返回结果
map.put("resultStr", errorStr.toString());
return map;
}
}