package com.securityControl.task.domain.vo; import com.securityControl.common.core.utils.aes.StringHelper; import com.securityControl.task.util.DateTimeHelper; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; @Data @AllArgsConstructor @NoArgsConstructor public class BallVideoEntity { private String name; private String path; private String begin; private String end; private String reason; private String size; private String data; private String bitRate; private String beginTime; private String endTime; private String puid; private String resIdx; private String id; private String ballId; private String type; private String token; private String downName; private String downPath; private String manufactorId; private List filelist; @Slf4j public static class PostXml { public static String 检测未带安全帽 = "0"; public static String 启动安全生产 = "0"; public static String 检测抽烟 = "0"; public static String 检测未戴口罩 = "0"; public static String 检测工作服 = "0"; public static String 检测石油制服 = "0"; public static String 检测消防制服 = "0"; public static String 检测露胳膊 = "0"; public static String 检测三色马甲 = "0"; public static String 检测绝缘手套和绝缘靴 = "0"; /** * 获取3d云台报文 * * @param Sx 开始横坐标 * @param Sy 开始y坐标 * @param Ex 结束点很坐标 * @param Ey 结束点 y坐标 * @return */ public static String get3DyunXmlData(String Sx, String Sy, String Ex, String Ey) { StringBuffer builder = new StringBuffer(); try { builder.append("\n"); builder.append(""); builder.append(""); builder.append(""); builder.append(""); builder.append(""); builder.append(""); builder.append(""); } catch (Exception e) { log.error(e.toString(), e); } return builder.toString(); } /** * 智能识别xml * * @return */ public static String getXmlZnData(Map map) { if (StringHelper.isNotEmpty(map.get("aqm"))) { 检测未带安全帽 = map.get("aqm"); if ("1".equals(检测未带安全帽)) { 启动安全生产 = "1"; } } if (StringHelper.isNotEmpty(map.get("cy"))) { 检测抽烟 = map.get("cy"); if ("1".equals(检测抽烟)) { 启动安全生产 = "1"; } } if (StringHelper.isNotEmpty(map.get("kz"))) { 检测未戴口罩 = map.get("kz"); if ("1".equals(检测未戴口罩)) { 启动安全生产 = "1"; } } if (StringHelper.isNotEmpty(map.get("dlgzf"))) { 检测工作服 = map.get("dlgzf"); if ("1".equals(检测工作服)) { 启动安全生产 = "1"; } } if (StringHelper.isNotEmpty(map.get("syzf"))) { 检测石油制服 = map.get("syzf"); if ("1".equals(检测石油制服)) { 启动安全生产 = "1"; } } if (StringHelper.isNotEmpty(map.get("xfzf"))) { 检测消防制服 = map.get("xfzf"); if ("1".equals(检测消防制服)) { 启动安全生产 = "1"; } } if (StringHelper.isNotEmpty(map.get("lgb"))) { 检测露胳膊 = map.get("lgb"); if ("1".equals(检测露胳膊)) { 启动安全生产 = "1"; } } if (StringHelper.isNotEmpty(map.get("mj"))) { 检测三色马甲 = map.get("mj"); if ("1".equals(检测三色马甲)) { 启动安全生产 = "1"; } } if (StringHelper.isNotEmpty(map.get("dljyst"))) { 检测绝缘手套和绝缘靴 = map.get("dljyst"); if ("1".equals(检测绝缘手套和绝缘靴)) { 启动安全生产 = "1"; } } StringBuffer builder = new StringBuffer(); builder.append("\n"); builder.append(""); builder.append(""); builder.append(""); builder.append("");// 启动安全生产: - 0: 关闭; - 1: 启动 builder.append(""); builder.append(""); builder.append("");//安全帽检测可信门限: 0~100 builder.append(""); builder.append(""); builder.append("");//检测未带安全帽: - 0: 不检测; - 1: 检测 builder.append(""); builder.append(""); builder.append("");//只能事件图片模式:- Local: 仅局部图;- Global: 仅全景图; - MultiLocalAndGlobal: 多局部图和全景图; builder.append(""); builder.append(""); builder.append("");//绘制安全帽颜色图标: - 0: 不绘制; - 1: 绘制 builder.append(""); builder.append(""); builder.append("");//检测抽烟: - 0: 不检测; - 1: 检测 builder.append(""); builder.append(""); builder.append("");//检测未戴口罩: - 0: 不检测; - 1: 检测 builder.append(""); builder.append(""); builder.append("");//: - 0: 不检测; - 1: 检测 builder.append(""); builder.append(""); builder.append("");//检测石油制服: - 0: 不检测; - 1: 检测 builder.append(""); builder.append(""); builder.append("");//检测消防制服: - 0: 不检测; - 1: 检测 builder.append(""); builder.append(""); builder.append("");//检测露胳膊: - 0: 不检测; - 1: 检测 builder.append(""); builder.append(""); builder.append("");//检测三色马甲: - 0: 不检测; - 1: 检测 builder.append(""); builder.append(""); builder.append("");//: - 0: 不检测; - 1: 检测 builder.append(""); builder.append(""); builder.append("");//上报时识别人脸: - 0: 不识别; - 1: 识别 builder.append(""); builder.append(""); builder.append("");// 分析间隔: ≥0(ms) builder.append(" "); builder.append(""); builder.append("");//上传事件间隔: 0~600(s) builder.append(" "); builder.append(" "); builder.append("");//叠加透明度: 0~100(s) 注: 越小越透明 builder.append(""); builder.append(""); builder.append(""); return builder.toString(); } /** * puid * 清晰上下线 * 开始时间 * * @param puid * @param startTime 开始时间//时间戳 * @param endTime 结束时间//时间戳 * @return */ public static String getXmlData(String puid, String startTime, String endTime) { StringBuffer builder = new StringBuffer(); builder.append("\n"); builder.append(""); builder.append(""); builder.append(""); builder.append(""); builder.append("E_PU_Online"); builder.append("E_PU_Offline"); builder.append(""); builder.append(""); builder.append(""); builder.append(""); builder.append(""); builder.append(""); builder.append(""); builder.append(""); return builder.toString(); } public static String sedPostXml(String postUrl, String xmlString) throws IOException { String postURL; PostMethod postMethod = null; postMethod = new PostMethod(postUrl); postMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); //参数设置,需要注意的就是里边不能传NULL,要传空字符串 NameValuePair[] data = { new NameValuePair("xml", xmlString), }; postMethod.setRequestBody(data); org.apache.commons.httpclient.HttpClient httpClient = new org.apache.commons.httpclient.HttpClient(); int response = httpClient.executeMethod(postMethod); // 执行POST方法 // String result = postMethod.getResponseBodyAsString(); InputStream is = postMethod.getResponseBodyAsStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); StringBuffer sb = new StringBuffer(); String str= ""; while((str = br.readLine()) != null){ sb.append(str); } String result = sb.toString(); return result; } /** * xml解析 * * @return */ public static String getXmlConfigData(String xml) { String msg = "设置成功"; try { Document doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 // System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称 Element C = rootElt.element("C"); // System.out.println("子节点:" + C.getName()); // 拿到子节点名称 Iterator iter = C.elementIterator("Res"); // 获取结果点下的返回数据集合 while (iter.hasNext()) { Element Event = (Element) iter.next();//子节点名//父类节点 // System.out.println("根节点:" + Event.getName()); // 拿到根节点的名称 String type = Event.attributeValue("Type"); if (!"ST".equals(type)) { msg = "设置失败"; } } } catch (Exception e) { msg = "设置失败"; } return msg; } /** * xml解析 * * @return */ public static String getXml3dYunConfigData(String xml) { String msg = "设置成功"; try { Document doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 // System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称 Element C = rootElt.element("C"); // System.out.println("子节点:" + C.getName()); // 拿到子节点名称 Iterator iter = C.elementIterator("Res"); // 获取结果点下的返回数据集合 while (iter.hasNext()) { Element Event = (Element) iter.next();//子节点名//父类节点 // System.out.println("根节点:" + Event.getName()); // 拿到根节点的名称 String type = Event.attributeValue("Type"); if (!"PTZ".equals(type)) { msg = "设置失败"; } } } catch (Exception e) { msg = "设置失败"; } return msg; } /** * xml解析数据 * * @return */ public static List getXmlData(String xml) { List list = new ArrayList(); Document doc = null; try { doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 // System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称 Element C = rootElt.element("C"); // System.out.println("子节点:" + C.getName()); // 拿到子节点名称 Element Res = C.element("Res"); // System.out.println("子节点:" + Res.getName()); // 拿到子节点名称 Element Param = Res.element("Param"); Iterator iter = Param.elementIterator("Event"); // 获取结果点下的返回数据集合 Iterator lengthLeg = Param.elementIterator("Event"); // 获取结果点下的返回数据集合 int length = 0; while (lengthLeg.hasNext()) { Element Event = (Element) lengthLeg.next();//子节点名//父类节点 length++; } BallUpDownEntity entity = null; int i = 0; while (iter.hasNext()) { i++; if (i % 2 != 0) {//为2则是开始时间 entity = new BallUpDownEntity(); } Element Event = (Element) iter.next();//子节点名//父类节点 Element M = Event.element("M"); String type = M.attributeValue("Type"); if ("Event".equals(type)) {//type参数 Element E = M.element("E");//E参数 String ID = E.attributeValue("ID");//获取上下线类型 String time = E.attributeValue("Time");//获取到时间 String date = DateTimeHelper.stampToDate(time);//时间转换 if ("E_PU_Online".equals(ID)) {//球机上线 if (i % 2 != 0) {//为1则是开始时间 entity.setIsActive("1"); entity.setDate(date.substring(0, 10)); entity.setOnLineTime(date); } } else if ("E_PU_Offline".equals(ID)) {//球机下线 if (i % 2 == 0) {//为2则是开始时间 entity.setOffLineTime(date); } } if (i % 2 == 0) {//为2则是开始时间 list.add(entity); } else if (length == i) { list.add(entity); } } } } catch (Exception e) { log.error("xml解析失败", e); } return list; } /** * 设置水印 * * @param value * @return */ public static String getOsDText(String value) { StringBuffer builder = new StringBuffer(); try { builder.append(""); builder.append(""); builder.append(""); builder.append(""); builder.append(""); builder.append(""); builder.append(""); builder.append(""); } catch (Exception e) { log.error(e.toString(), e); } return builder.toString(); } public static String getDeviceNameXml(String value) { StringBuffer builder = new StringBuffer(); try { builder.append(""); builder.append(""); builder.append(""); builder.append(""); builder.append(""); builder.append(""); builder.append(" "); builder.append(""); builder.append(""); builder.append(""); } catch (Exception e) { log.error(e.toString(), e); } return builder.toString(); } } }