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 map = new HashMap(); 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 map = new HashMap(); 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 map = new HashMap(); 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 map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("STATUS",1); pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 List hiddenIdList = new ArrayList(); if (Tools.notEmpty(pd.getString("HIDDENJSON"))) { List list = (List) 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("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 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 = 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 map = new HashMap(); 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 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(","); 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 map = new HashMap(); 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; } }