IntelligentRecognition/ah-jjsp-service/.svn/pristine/1e/1eef3e4ffb365e0a27f679bc8a5...

470 lines
20 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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();
}
}
}