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

470 lines
20 KiB
Plaintext
Raw Normal View History

2024-05-24 16:09:40 +08:00
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();
}
}
}