470 lines
20 KiB
Plaintext
470 lines
20 KiB
Plaintext
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<FileListEntity> {
|
||
|
||
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<FileListEntity> 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("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
|
||
builder.append("<M Type=\"ComReq\">");
|
||
builder.append("<C Type=\"C\" Prio=\"1\" EPID=\"system\">");
|
||
builder.append("<Res Type=\"PTZ\" Idx=\"0\" OptID=\"C_PTZ_SelectZoom\">");
|
||
builder.append("<Param BeginX=\"" + Sx + "\" BeginY=\"" + Sy + "\" EndX=\"" + Ex + "\" EndY=\"" + Ey + "\"></Param>");
|
||
builder.append("</Res>");
|
||
builder.append("</C>");
|
||
builder.append("</M>");
|
||
} catch (Exception e) {
|
||
log.error(e.toString(), e);
|
||
}
|
||
return builder.toString();
|
||
|
||
}
|
||
|
||
|
||
/**
|
||
* 智能识别xml
|
||
*
|
||
* @return
|
||
*/
|
||
public static String getXmlZnData(Map<String, String> 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("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
|
||
builder.append("<M Type=\"ComReq\">");
|
||
builder.append("<C Type=\"S\" Prio=\"0\" EPID=\"system\">");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_EnableSafetyProduction\">");
|
||
builder.append("<Param Value=\"1\"></Param>");// 启动安全生产: - 0: 关闭; - 1: 启动
|
||
builder.append("</Res>");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_HelmetDetectConfidence\">");
|
||
builder.append("<Param Value=\"50\"></Param>");//安全帽检测可信门限: 0~100
|
||
builder.append("</Res>");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_SendNotWearAlarm\">");
|
||
builder.append("<Param Value=\"" + 检测未带安全帽 + "\"></Param>");//检测未带安全帽: - 0: 不检测; - 1: 检测
|
||
builder.append("</Res>");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_SPSnapTransMode\">");
|
||
builder.append("<Param Value=\"Global\"></Param>");//只能事件图片模式:- Local: 仅局部图;- Global: 仅全景图; - MultiLocalAndGlobal: 多局部图和全景图;
|
||
builder.append("</Res>");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_DrawHelmetColorLogo\">");
|
||
builder.append("<Param Value=\"0\"></Param>");//绘制安全帽颜色图标: - 0: 不绘制; - 1: 绘制
|
||
builder.append("</Res>");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_SPCheckSmoking\">");
|
||
builder.append("<Param Value=\"" + 检测抽烟 + "\"></Param>");//检测抽烟: - 0: 不检测; - 1: 检测
|
||
builder.append("</Res>");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_SPCheckNoMask\">");
|
||
builder.append("<Param Value=\"" + 检测未戴口罩 + "\"></Param>");//检测未戴口罩: - 0: 不检测; - 1: 检测
|
||
builder.append("</Res>");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_SPCheckEPUniform\">");
|
||
builder.append("<Param Value=\"" + 检测工作服 + "\"></Param>");//: - 0: 不检测; - 1: 检测
|
||
builder.append("</Res>");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_SPCheckChkPetroUniform\">");
|
||
builder.append("<Param Value=\"" + 检测石油制服 + "\"></Param>");//检测石油制服: - 0: 不检测; - 1: 检测
|
||
builder.append("</Res>");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_SPCheckChkFireUniform\">");
|
||
builder.append("<Param Value=\"" + 检测消防制服 + "\"></Param>");//检测消防制服: - 0: 不检测; - 1: 检测
|
||
builder.append("</Res>");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_SPCheckChkBareArm\">");
|
||
builder.append("<Param Value=\"" + 检测露胳膊 + "\"></Param>");//检测露胳膊: - 0: 不检测; - 1: 检测
|
||
builder.append("</Res>");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_SPCheckChkWorkVest3C\">");
|
||
builder.append("<Param Value=\"" + 检测三色马甲 + "\"></Param>");//检测三色马甲: - 0: 不检测; - 1: 检测
|
||
builder.append("</Res>");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_SPChkEPGloveBoot\">");
|
||
builder.append("<Param Value=\"" + 检测绝缘手套和绝缘靴 + "\"></Param>");//: - 0: 不检测; - 1: 检测
|
||
builder.append("</Res>");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_RecognizeFace\">");
|
||
builder.append("<Param Value=\"1\"></Param>");//上报时识别人脸: - 0: 不识别; - 1: 识别
|
||
builder.append("</Res>");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_AnalysHelmetInterval\">");
|
||
builder.append("<Param Value=\"1002\"></Param>");// 分析间隔: ≥0(ms)
|
||
builder.append(" </Res>");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_AnalysHelmetEventInterval\">");
|
||
builder.append("<Param Value=\"2\"></Param>");//上传事件间隔: 0~600(s)
|
||
builder.append(" </Res>");
|
||
builder.append(" <Res Type=\"ST\" Idx=\"0\" OptID=\"F_ST_SPOverlying\">");
|
||
builder.append("<Param Value=\"99\"></Param>");//叠加透明度: 0~100(s) 注: 越小越透明
|
||
builder.append("</Res>");
|
||
builder.append("</C>");
|
||
builder.append("</M>");
|
||
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("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
|
||
builder.append("<M Type=\"ComReq\">");
|
||
builder.append("<C Type=\"C\" Prio=\"1\" EPID=\"system\">");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"C_LOG_QueryEventLog\">");
|
||
builder.append("<Param Offset=\"0\" Count=\"200\" Begin=\"" + startTime + "\" End=\"" + endTime + "\">");
|
||
builder.append("<ID>E_PU_Online</ID>");
|
||
builder.append("<ID>E_PU_Offline</ID>");
|
||
builder.append("</Param>");
|
||
builder.append("</Res>");
|
||
builder.append("</C>");
|
||
builder.append("<OSets>");
|
||
builder.append("<Res OType=\"201\" OID=\"" + puid + "\" Type=\"ST\" Idx=\"0\">");
|
||
builder.append("</Res>");
|
||
builder.append("</OSets>");
|
||
builder.append("</M>");
|
||
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<BallUpDownEntity> getXmlData(String xml) {
|
||
List<BallUpDownEntity> list = new ArrayList<BallUpDownEntity>();
|
||
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("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
|
||
builder.append("<M Type=\"ComReq\">");
|
||
builder.append("<C Type=\"S\" Prio=\"1\" EPID=\"system\">");
|
||
builder.append("<Res Type=\"IV\" Idx=\"0\" OptID=\"F_IV_TextAdd\">");
|
||
builder.append("<Param Value=\"" + value + "\"></Param>");
|
||
builder.append("</Res>");
|
||
builder.append("</C>");
|
||
builder.append("</M>");
|
||
} catch (Exception e) {
|
||
log.error(e.toString(), e);
|
||
}
|
||
return builder.toString();
|
||
}
|
||
|
||
|
||
public static String getDeviceNameXml(String value) {
|
||
StringBuffer builder = new StringBuffer();
|
||
try {
|
||
builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
|
||
builder.append("<M Type=\"ComReq\">");
|
||
builder.append("<C Type=\"S\" Prio=\"1\" EPID=\"system\">");
|
||
builder.append("<Res Type=\"ST\" Idx=\"0\" OptID=\"F_RES_Desc\">");
|
||
builder.append("<Param>");
|
||
builder.append("<Res Name=\"" + value + "\" Desc=\"\" Enable=\"1\" Usable=\"1\"/>");
|
||
builder.append("</Param> ");
|
||
builder.append("</Res>");
|
||
builder.append("</C>");
|
||
builder.append("</M>");
|
||
} catch (Exception e) {
|
||
log.error(e.toString(), e);
|
||
}
|
||
return builder.toString();
|
||
|
||
}
|
||
}
|
||
}
|