qa-prevention-gwj/src/main/java/com/zcloud/controller/keyProjects/app/AppAIWarningController.java

319 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.keyProjects.app;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zcloud.controller.base.BaseController;
import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;
import com.zcloud.service.bus.ImgFilesService;
import com.zcloud.service.keyProjects.AIWarningService;
import com.zcloud.service.keyProjects.KeyprojectHiddenService;
import com.zcloud.util.*;
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.ResponseBody;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.*;
/**
* 说明AI报警
* 作者luoxiaobao
* 时间2022-09-21
* 官网www.zcloudchina.com
*/
@Controller
@RequestMapping("/app/aiwarning")
public class AppAIWarningController extends BaseController {
@Autowired
private AIWarningService aiwarningService;
@Autowired
private KeyprojectHiddenService keyprojectHiddenService;
@Autowired
private ImgFilesService imgFilesService;
/**新增
* @param
* @throws Exception
*/
@RequestMapping(value="/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("AIWARNING_ID", this.get32UUID()); //主键
pd.put("CREATTIME", DateUtil.date2Str(new Date())); //添加时间
pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间
pd.put("ISDELETE", 0); //是否删除
aiwarningService.save(pd);
map.put("result", errInfo);
return map;
}
/**新增
* @param
* @throws Exception
*/
@RequestMapping(value="/addPeople")
@ResponseBody
public Object addPeople() throws Exception{
Map<String,Object> map = new HashMap<String,Object>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
pd.put("CONTRACT_PIC_ID", this.get32UUID()); //主键
pd.put("CREATTIME", DateUtil.date2Str(new Date())); //添加时间
pd.put("CREATOR", DateUtil.date2Str(new Date())); //添加人
pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间
pd.put("OPERATOR", DateUtil.date2Str(new Date())); //修改人
pd.put("ISDELETE", 0); //是否删除
aiwarningService.addPeople(pd);
map.put("result", errInfo);
return map;
}
/**删除
* @param out
* @throws Exception
*/
@RequestMapping(value="/delete")
@ResponseBody
public Object delete() throws Exception{
Map<String,String> map = new HashMap<String,String>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
aiwarningService.delete(pd);
map.put("result", errInfo); //返回结果
return map;
}
/**修改
* @param
* @throws Exception
*/
@RequestMapping(value="/edit")
@ResponseBody
@Transactional
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("STATUS",1);
pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间
List<String> hiddenIdList = new ArrayList<String>();
if (Tools.notEmpty(pd.getString("HIDDENJSON"))) {
List<JSONObject> list = (List<JSONObject>) JSON.parse(pd.getString("HIDDENJSON"));
if(list != null){
for (JSONObject json : list) {
PageData hidden = new PageData();
String HIDDEN_ID = UuidUtil.get32UUID();
hiddenIdList.add(HIDDEN_ID);
hidden.put("HIDDEN_ID",HIDDEN_ID); //主键
pd.put("HIDDEN_ID",hidden.getString("HIDDEN_ID"));
hidden.put("FOREIGN_ID", pd.getString("OUTSOURCED_ID")); //外键ID
hidden.put("CORPINFO_ID", pd.getString("CORPINFO_ID")); //隐患发现人的公司
hidden.put("HIDDENDESCR", json.getString("HIDDENDESCR")); //隐患描述
hidden.put("HIDDENPART", json.getString("HIDDENPART")); //隐患部位
hidden.put("HIDDENLEVEL", json.getString("HIDDENLEVEL")); //隐患级别
hidden.put("HIDDENTYPE", json.getString("HIDDENTYPE")); //隐患类型1
hidden.put("HIDDENTYPE2", json.getString("HIDDENTYPE2")); //隐患类型2
hidden.put("LONGITUDE", json.getString("LONGITUDE")); //隐患位置经度
hidden.put("LATITUDE", json.getString("LATITUDE")); //隐患位置纬度
hidden.put("DISCOVERYTIME", json.getString("DISCOVERYTIME")); //隐患发现时间
hidden.put("HIDDENFINDDEPT", json.getString("HIDDENFINDDEPT")); //隐患发现部门(隐患责任人部门)
hidden.put("RECTIFICATIONTYPE", json.getString("RECTIFICATIONTYPE")); //隐患处置
hidden.put("RECTIFICATIONDEADLINE", json.getString("RECTIFICATIONDEADLINE")); //整改期限
hidden.put("RECTIFYDESCR", json.getString("RECTIFYDESCR")); //整改描述
hidden.put("RECTIFICATIONDEPT", json.getString("RECTIFICATIONDEPT")); //整改部门
hidden.put("RECTIFICATIONOR", json.getString("RECTIFICATIONOR")); //整改人
hidden.put("CREATOR", pd.getString("OPERATOR")); //发现人(隐患责任人)
hidden.put("SOURCE", 1); //隐患来源
hidden.put("STATE", "1"); //隐患状态 100-安全环保检查暂存的隐患流程完转0
hidden.put("CREATTIME", DateUtil.date2Str(new Date())); //发现时间
hidden.put("ISDELETE", "0"); //是否删除(0:有效 1删除)
hidden.put("POSITIONDESC",json.getString("POSITIONDESC"));// 隐患位置描述
if(!Tools.isEmpty(json.getString("IMG_PATH"))){//添加隐患图片
PageData imgAddPd = new PageData();
imgAddPd.put("IMGFILES_ID", this.get32UUID());
imgAddPd.put("FILEPATH", json.getString("IMG_PATH") );
imgAddPd.put("TYPE", "3");
imgAddPd.put("FOREIGN_KEY", hidden.getString("HIDDEN_ID"));
imgFilesService.save(imgAddPd);
}
if(!Tools.isEmpty(json.getString("REMARKS"))){//添加隐患图片
PageData imgAddPd = new PageData();
imgAddPd.put("IMGFILES_ID", this.get32UUID());
imgAddPd.put("FILEPATH", json.getString("REMARKS") );
imgAddPd.put("TYPE", "102");
imgAddPd.put("FOREIGN_KEY", hidden.getString("HIDDEN_ID"));
imgFilesService.save(imgAddPd);
}
keyprojectHiddenService.save(hidden);
try {
// this.DownloadPicturn(pd);
}catch (Exception e){
e.printStackTrace();
}
// PageData img = new PageData();
// img.put("IMGFILES_ID", this.get32UUID());
// img.put("FILEPATH", pd.get("IMG_PATH"));
// img.put("TYPE", 3);
// img.put("FOREIGN_KEY", hidden.get("HIDDEN_ID"));
// imgFilesService.save(img);
}
}
}
if (!hiddenIdList.isEmpty()) {
pd.put("HIDDEN_IDS", hiddenIdList.toString().replace("[","").replace("]","").replace(" ",""));
}
aiwarningService.edit(pd);
map.put("result", errInfo);
return map;
}
/**列表
* @param page
* @throws Exception
*/
@RequestMapping(value="/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 = aiwarningService.listApp(page); //列出AIWarning列表
map.put("varList", varList);
map.put("page", page);
map.put("result", errInfo);
return map;
}
/**去修改页面获取数据
* @param
* @throws Exception
*/
@RequestMapping(value="/goEdit")
@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 = aiwarningService.findById(pd); //根据ID读取
PageData user = aiwarningService.findByOperatorId(pd);//查询处置人ID
if(user != null){
pd.put("NAME",user.getString("name"));
}
pd.put("FOREIGN_ID", pd.getString("OUTSOURCED_ID"));
if (Tools.notEmpty(pd.getString("HIDDEN_IDS"))){
PageData pageData = new PageData();
pageData.put("AI_WARNING","Y");
pageData.put("array",pd.getString("HIDDEN_IDS").split(","));
pd.put("hiddenList", keyprojectHiddenService.listAllInspection(pageData));
}
map.put("pd", pd);
map.put("result", errInfo);
return map;
}
/**批量删除
* @param
* @throws Exception
*/
@RequestMapping(value="/deleteAll")
@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(",");
aiwarningService.deleteAll(ArrayDATA_IDS);
errInfo = "success";
}else{
errInfo = "fail";
}
map.put("result", errInfo); //返回结果
return map;
}
/**处理隐患
* @param
* @throws Exception
*/
@RequestMapping(value="/handle")
@ResponseBody
public Object handle() throws Exception{
Map<String,Object> map = new HashMap<String,Object>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
map.put("result", errInfo); //返回结果
return map;
}
public void DownloadPicturn(PageData pd) throws Exception {
String url = pd.getString("IMG_PATH");
String suffix = url.substring(url.lastIndexOf(".")+1);
// String suffixName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
String suffixName = suffix.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;
System.out.println("文件格式不正确!");
} else {
InputStream input = this.getInputStreamFromUrl(url);//获取流
String fileName = this.get32UUID()+"." +suffix;
Smb.sshSftpForInput(input, fileName, Const.FILEPATHYHTP + pd.getString("OPERATOR") + "/" + DateUtil.getDays());
input.close();
PageData savePicturn = new PageData();
savePicturn.put("IMGFILES_ID", this.get32UUID());
savePicturn.put("FILEPATH", Const.FILEPATHYHTP + pd.getString("OPERATOR") + "/" + DateUtil.getDays()+ "/" + fileName);
savePicturn.put("TYPE", 114);
savePicturn.put("FOREIGN_KEY", pd.getString("HIDDEN_ID"));
imgFilesService.save(savePicturn);
}
}
/**
* 根据url下载文件流
* @param urlStr
* @return
*/
public static InputStream getInputStreamFromUrl(String urlStr) {
InputStream inputStream=null;
try {
//url解码
URL url = new URL(java.net.URLDecoder.decode(urlStr, "UTF-8"));
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//设置超时间为3秒
conn.setConnectTimeout(3 * 1000);
//防止屏蔽程序抓取而返回403错误
conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
//得到输入流
inputStream = conn.getInputStream();
} catch (IOException e) {
}
return inputStream;
}
}