wangpengfei 2 years ago
parent
commit
091a1e5a34
  1. 148
      yxt/yxt-common/yxt-common-base/src/main/java/com/yxt/common/base/utils/HttpUtils.java
  2. 1
      yxt_supervise/supervise-report/supervise-report-api/src/main/java/com/yxt/supervise/report/api/imgmessageslog/ImgMessagesLogVo.java
  3. 38
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/dailysalesreport/DailySalesReportService.java
  4. 1
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/imgmessageslog/ImgMessagesLogService.java
  5. 55
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/wechat/WechatRest.java
  6. 16
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/rms/Device.java
  7. 14
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/wx/SuperviseWxMessSender.java
  8. 3
      yxt_supervise/supervise-rms/supervise-rms-api/src/main/java/com/supervise/rms/api/riskalarm/RiskAlarm.java
  9. 1
      yxt_supervise/supervise-rms/supervise-rms-api/src/main/java/com/supervise/rms/api/riskalarm/RiskAlarmVo.java
  10. 8
      yxt_supervise/supervise-rms/supervise-rms-biz/src/main/java/com/supervise/rms/biz/riskalarm/RiskAlarmMapper.java
  11. 103
      yxt_supervise/supervise-rms/supervise-rms-biz/src/main/java/com/supervise/rms/biz/riskalarm/RiskAlarmService.java
  12. 2
      yxt_supervise/supervise-rms/supervise-rms-biz/src/main/java/com/supervise/rms/feign/report/WechatFeign.java
  13. 25
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/device/DeviceRest.java
  14. 57
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/device/DeviceService.java

148
yxt/yxt-common/yxt-common-base/src/main/java/com/yxt/common/base/utils/HttpUtils.java

@ -1,22 +1,47 @@
package com.yxt.common.base.utils; package com.yxt.common.base.utils;
import org.apache.http.HttpEntity; import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException; import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CookieStore;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig; import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.cookie.Cookie;
import org.apache.http.entity.ContentType; import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity; import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils; import org.apache.http.util.EntityUtils;
import java.io.IOException; import java.io.IOException;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.PrintWriter; import java.io.PrintWriter;
@ -33,7 +58,7 @@ import java.util.Iterator;
public class HttpUtils { public class HttpUtils {
private final Logger LOG = LogManager.getLogger(this.getClass()); private final Logger LOG = LogManager.getLogger(this.getClass());
private static CloseableHttpClient httpClient;
/** /**
* 向指定 URL 发送POST方法的请求 * 向指定 URL 发送POST方法的请求
* *
@ -172,5 +197,126 @@ public class HttpUtils {
return result; return result;
} }
public static String sendPostMap(String url, Map<String, Object> map, String token) {
String charset = "UTF-8";
HttpClient httpClient = null;
HttpPost httpPost = null;
String result = null;
try {
httpClient = new SSLClient();
httpPost = new HttpPost(url);
//设置参数
List<NameValuePair> list = new ArrayList<NameValuePair>();
Iterator iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> elem = (Map.Entry<String, String>) iterator.next();
list.add(new BasicNameValuePair(elem.getKey(), elem.getValue()));
}
if (list.size() > 0) {
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, charset);
httpPost.setEntity(entity);
}
if (token != "") {
httpPost.setHeader("Authorization", "Bearer " + token);
}
HttpResponse response = httpClient.execute(httpPost);
if (response != null) {
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
result = EntityUtils.toString(resEntity, charset);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
return result;
}
/**
* 链接GET请求
*
* @param url
* @return
* @throws KeyManagementException
* @throws NoSuchAlgorithmException
* @throws KeyStoreException
* @throws ClientProtocolException
* @throws IOException
*/
public static String sendGet(String url, String token) throws KeyManagementException,
NoSuchAlgorithmException, KeyStoreException, ClientProtocolException, IOException {
String[] strArray = new String[5];
// 获取cookies信息
CookieStore store = new BasicCookieStore();
CloseableHttpClient client = HttpClients.custom().setDefaultCookieStore(store).build();
HttpGet httpGet = null;
CloseableHttpResponse resp = null;
String jsonString = "";
try {
httpGet = new HttpGet(url);
httpGet.setHeader("Authorization", "Bearer " + token);
resp = client.execute(httpGet);
//读取cookie信息
List<Cookie> cookielist = store.getCookies();
for (Cookie c : cookielist) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String cookie_name = c.getName();
String cookie_value = c.getValue();
String cookie_expiry_date = sdf.format(c.getExpiryDate());
}
HttpEntity entity = resp.getEntity();
jsonString = EntityUtils.toString(entity, "UTF-8");
// String headCookie = "";
// Header[] hs = resp.getHeaders("Set-Cookie");
// if (hs.length > 0) {
// headCookie = hs[0].toString();
// }
// strArray[0] = headCookie;
// strArray[1] = jsonString;
// return strArray;
return jsonString;
} catch (Exception ex) {
return null;
} finally {
if (resp != null) {
try {
resp.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (httpGet != null) {
httpGet.releaseConnection();
}
}
}
} }
class SSLClient extends DefaultHttpClient {
//用于进行Https请求的HttpClient
public SSLClient() throws Exception {
super();
SSLContext ctx = SSLContext.getInstance("TLS");
X509TrustManager tm = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
ctx.init(null, new TrustManager[]{tm}, null);
SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
ClientConnectionManager ccm = this.getConnectionManager();
SchemeRegistry sr = ccm.getSchemeRegistry();
sr.register(new Scheme("https", 443, ssf));
}
}

1
yxt_supervise/supervise-report/supervise-report-api/src/main/java/com/yxt/supervise/report/api/imgmessageslog/ImgMessagesLogVo.java

@ -23,6 +23,7 @@ public class ImgMessagesLogVo implements Vo {
private Map<String,String> map; private Map<String,String> map;
private String riskSid; private String riskSid;
private String shName; private String shName;
private String shSid;
private List<String> devices; private List<String> devices;
private String text; private String text;

38
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/dailysalesreport/DailySalesReportService.java

@ -1,6 +1,7 @@
package com.yxt.supervise.report.biz.dailysalesreport; package com.yxt.supervise.report.biz.dailysalesreport;
import cn.hutool.Hutool; import cn.hutool.Hutool;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -14,6 +15,7 @@ import com.yxt.supervise.report.api.dailysalesreport.ListSalesChannelData;
import com.yxt.supervise.report.ds.supplychain.SupplyChainMapper; import com.yxt.supervise.report.ds.supplychain.SupplyChainMapper;
import org.junit.Test; import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@ -31,8 +33,14 @@ public class DailySalesReportService extends MybatisBaseService<DailySalesReport
SupplyChainMapper supplyChainMapper; SupplyChainMapper supplyChainMapper;
// @Scheduled(cron = "0 0 0,23 * * ?")
public ResultBean saveSales(String orderDate) { public ResultBean saveSales(String orderDate) {
ResultBean rb=new ResultBean(); ResultBean rb=new ResultBean();
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm");
if(StringUtils.isNull(orderDate)){
orderDate=ft.format(DateUtil.date());
}
DailySalesReport dailySalesReport=new DailySalesReport(); DailySalesReport dailySalesReport=new DailySalesReport();
dailySalesReport.setSid(UUID.randomUUID().toString()); dailySalesReport.setSid(UUID.randomUUID().toString());
double lwlsd=supplyChainMapper.amountOfLsdOnDay(orderDate); double lwlsd=supplyChainMapper.amountOfLsdOnDay(orderDate);
@ -146,21 +154,21 @@ public class DailySalesReportService extends MybatisBaseService<DailySalesReport
} }
public boolean test() throws ParseException { public boolean test() throws ParseException {
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd"); // SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
//String date=ft.format(new Date()-1); // //String date=ft.format(new Date()-1);
//昨天时间 // //昨天时间
Date date= DateUtil.yesterday(); // Date date= DateUtil.yesterday();
//结束时间 // //结束时间
String d="2023-07-01"; // String d="2023-07-01";
Date date1=ft.parse(d); // Date date1=ft.parse(d);
while (date1.before(date)){ // while (date1.before(date)){
Calendar calendar = Calendar.getInstance(); // Calendar calendar = Calendar.getInstance();
calendar.setTime(date); // calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, -1); // calendar.add(Calendar.DAY_OF_MONTH, -1);
date = calendar.getTime(); // date = calendar.getTime();
System.out.println(ft.format(date)); // System.out.println(ft.format(date));
saveSales(ft.format(date)); // saveSales(ft.format(date));
} // }
return true; return true;
} }
} }

1
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/imgmessageslog/ImgMessagesLogService.java

@ -72,6 +72,7 @@ public class ImgMessagesLogService extends MybatisBaseService<ImgMessagesLogMapp
ImgMessagesLogVo vo= baseMapper.getMessageBySid(riskAlarm.getSid()); ImgMessagesLogVo vo= baseMapper.getMessageBySid(riskAlarm.getSid());
vo.setShName(riskAlarm.getPositionName()); vo.setShName(riskAlarm.getPositionName());
vo.setText(riskAlarm.getContent()); vo.setText(riskAlarm.getContent());
vo.setShSid(riskAlarm.getPositionSid());
ResultBean<JSONObject> rbJsonObject = projectDailyRest.wxLogin(wxCode, APP_ID, SECRET); ResultBean<JSONObject> rbJsonObject = projectDailyRest.wxLogin(wxCode, APP_ID, SECRET);
JSONObject jsonObject = rbJsonObject.getData(); JSONObject jsonObject = rbJsonObject.getData();
String openid = jsonObject.get("openid").toString(); String openid = jsonObject.get("openid").toString();

55
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/wechat/WechatRest.java

@ -25,6 +25,7 @@ import com.yxt.supervise.report.biz.stock.StockDayRest;
import com.yxt.supervise.report.biz.util.WeixinCheckoutUtil; import com.yxt.supervise.report.biz.util.WeixinCheckoutUtil;
import com.yxt.supervise.report.ds.crm.CrmMapper; import com.yxt.supervise.report.ds.crm.CrmMapper;
import com.yxt.supervise.report.ds.crm.UserProject; import com.yxt.supervise.report.ds.crm.UserProject;
import com.yxt.supervise.report.ds.rms.Device;
import com.yxt.supervise.report.ds.rms.RiskAlarm; import com.yxt.supervise.report.ds.rms.RiskAlarm;
import com.yxt.supervise.report.ds.rms.RmsMapper; import com.yxt.supervise.report.ds.rms.RmsMapper;
import com.yxt.supervise.report.ds.system.SysUser; import com.yxt.supervise.report.ds.system.SysUser;
@ -55,6 +56,7 @@ import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import static com.yxt.common.base.utils.MsgWs.SendWaitWorkMsg; import static com.yxt.common.base.utils.MsgWs.SendWaitWorkMsg;
import static javax.xml.bind.JAXBIntrospector.getValue;
/** /**
* @author wangpengfei * @author wangpengfei
@ -305,6 +307,12 @@ public class WechatRest {
r= SuperviseWxMessSender.jgsjzlSend("赵丽晓",openIds,projectSid,projectDaily.getProjectName(),projectDaily.getReportTime()); r= SuperviseWxMessSender.jgsjzlSend("赵丽晓",openIds,projectSid,projectDaily.getProjectName(),projectDaily.getReportTime());
System.out.println(r); System.out.println(r);
} }
/**
* 设备异常
* @param shSid
* @param riskSid
*/
@GetMapping("/shMessage") @GetMapping("/shMessage")
public void shMessage(@RequestParam("shSid") String shSid,@RequestParam("riskSid") String riskSid){ public void shMessage(@RequestParam("shSid") String shSid,@RequestParam("riskSid") String riskSid){
//String messSid=riskMessagesLogMapper.getRiskByCode(); //String messSid=riskMessagesLogMapper.getRiskByCode();
@ -346,6 +354,53 @@ public class WechatRest {
r= SuperviseWxMessSender.jkSend("赵丽晓",openIds,projectSid,riskSid,name,riskSid,ft.format(new Date())); r= SuperviseWxMessSender.jkSend("赵丽晓",openIds,projectSid,riskSid,name,riskSid,ft.format(new Date()));
System.out.println(r); System.out.println(r);
} }
/**
* 异常解除
* @param shSid
* @param riskSid
*/
@GetMapping("/secureMessage")
public void secureMessage(@RequestParam("shSid") String shSid,@RequestParam("riskSid") String riskSid){
//String messSid=riskMessagesLogMapper.getRiskByCode();
RespMessReturn r=new RespMessReturn();
List<UserProject> user= crmMapper.users(shSid);
List<String> openIds=new ArrayList<>();
List<String> mobiles=new ArrayList<>();
openIds.add("oA-GE69cBwiWG5Tx5R3vvy60o8qk");
mobiles.add("15932270269");
openIds.add("oA-GE68JFODQucAXkJQYHPoFOAgs");
mobiles.add("18603312020");
openIds.add("oA-GE68gus7lbb-oy4iqCF0ZhNgo");
mobiles.add("13513219196");
openIds.add("oA-GE67j581HgEsim_waItx2KOzE");
mobiles.add("13513211777");
openIds.add("oA-GE67P_1xD1uKBcexK3wWtFO5Y");
mobiles.add("13623307393");
openIds.add("oA-GE6zKB_5wQsVX6USlRQYV39vE");
mobiles.add("13131170271");
openIds.add("oA-GE668qWFcn4O-HpeiPe1FOecE");
mobiles.add("13333113292");
openIds.add("oA-GE65ExG9RVkqPhOc4e2ctdh0c");
mobiles.add("19933133338");
// for(UserProject u:user){
// SysUser sysUser=systemMapper.getAppletOpenidByUsersid(u.getUserSid());
// if(null!=sysUser) {
// if (com.yxt.common.base.utils.StringUtils.isNotNull(sysUser.getAppletOpenid())) {
// openIds.add(sysUser.getAppletOpenid());
// mobiles.add(sysUser.getMobile());
// }
// }
// }
String projectSid=crmMapper.ProjectSidByshSid(shSid);
String name=warehouseMapper.getNameBySid(shSid);
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
// 公众号的模板id(也有相应的接口可以查询到)
//sendVerificationCode(name,mobiles,"030404");
System.out.println("推送中");
r= SuperviseWxMessSender.secureSend(openIds,projectSid,riskSid,name,riskSid,ft.format(new Date()));
System.out.println(r);
}
@GetMapping("/shImgMessage") @GetMapping("/shImgMessage")
public void shImgMessage(@RequestParam("shSid") String shSid,@RequestParam("riskSid") String riskSid){ public void shImgMessage(@RequestParam("shSid") String shSid,@RequestParam("riskSid") String riskSid){
//String messSid=imgMessagesLogMapper.getImgRiskByCode(); //String messSid=imgMessagesLogMapper.getImgRiskByCode();

16
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/rms/Device.java

@ -0,0 +1,16 @@
package com.yxt.supervise.report.ds.rms;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/9/3 17:06
*/
@Data
public class Device {
private String name;
private String serialNumber;
private String status;
}

14
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/wx/SuperviseWxMessSender.java

@ -100,6 +100,20 @@ public class SuperviseWxMessSender {
}); });
return respMessReturn; return respMessReturn;
} }
public static RespMessReturn secureSend(List<String> tousers, String projectSid,String riskSid, String projectName,String messSid, String reportTime) {
RespMessReturn respMessReturn=new RespMessReturn();
String orderDate = reportTime.substring(0, 10);
String pagepath ="pages/index/DeviceException"+"?sid="+messSid;
HashMap<String, String> data = new HashMap<>();
data.put("thing3", projectName);
data.put("thing2", "设备名");
data.put("time5", reportTime);
for(String touser:tousers){
respMessReturn = WxMessage.sendMessage("A1u0HdEegfdJl3_MndronKahtvwkAa5IFDSy2NRHu8U", touser, pagepath, data);
}
return respMessReturn;
}
public static RespMessReturn jkImgSend(String sender, List<String> tousers, String projectSid,String riskSid, String projectName, String messSid,String reportTime) { public static RespMessReturn jkImgSend(String sender, List<String> tousers, String projectSid,String riskSid, String projectName, String messSid,String reportTime) {
RespMessReturn respMessReturn=new RespMessReturn(); RespMessReturn respMessReturn=new RespMessReturn();
String orderDate = reportTime.substring(0, 10); String orderDate = reportTime.substring(0, 10);

3
yxt_supervise/supervise-rms/supervise-rms-api/src/main/java/com/supervise/rms/api/riskalarm/RiskAlarm.java

@ -68,5 +68,8 @@ public class RiskAlarm {
private String typeCode; private String typeCode;
@ApiModelProperty("风险类别名称") @ApiModelProperty("风险类别名称")
private String typeName; private String typeName;
//内容
private String content; private String content;
private String state;
private int count;
} }

1
yxt_supervise/supervise-rms/supervise-rms-api/src/main/java/com/supervise/rms/api/riskalarm/RiskAlarmVo.java

@ -62,4 +62,5 @@ public class RiskAlarmVo implements Vo {
@ApiModelProperty("风险类别名称") @ApiModelProperty("风险类别名称")
private String typeName; private String typeName;
private String bigTypeName; private String bigTypeName;
private int count;
} }

8
yxt_supervise/supervise-rms/supervise-rms-biz/src/main/java/com/supervise/rms/biz/riskalarm/RiskAlarmMapper.java

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.supervise.rms.api.riskalarm.RiskAlarm; import com.supervise.rms.api.riskalarm.RiskAlarm;
import com.supervise.rms.api.riskalarm.RiskAlarmVo; import com.supervise.rms.api.riskalarm.RiskAlarmVo;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
@ -21,4 +22,11 @@ public interface RiskAlarmMapper extends BaseMapper<RiskAlarm> {
RiskAlarmVo getRiskAlarm(@Param("shSid")String shSid,@Param("code")String code); RiskAlarmVo getRiskAlarm(@Param("shSid")String shSid,@Param("code")String code);
@Select("select * from risk_alarm where indicatorCode=#{code} order by triggerTime desc limit 1") @Select("select * from risk_alarm where indicatorCode=#{code} order by triggerTime desc limit 1")
RiskAlarmVo getRiskAlarmByCode(@Param("code")String code); RiskAlarmVo getRiskAlarmByCode(@Param("code")String code);
@Select("select * from risk_alarm where indicatorCode=#{code} and positionSid=#{shSid} and state=#{state} order by triggerTime desc limit 1")
RiskAlarm getRiskAlarmByState(@Param("code")String code,@Param("shSid")String shSid,@Param("state")String state);
@Insert("insert into device_img (sid,endImage,endTime,name,similarity,startImage,startTime,shSid) value(#{sid},#{endImage},#{endTime},#{name},#{similarity}," +
"#{startImage},#{startTime},#{shSid})")
int insertImg(@Param("sid")String sid,@Param("endImage")String endImage,@Param("endTime")String endTime,@Param("name")String name,
@Param("similarity")String similarity,@Param("startImage")String startImage,@Param("startTime")String startTime,
@Param("shSid")String shSid);
} }

103
yxt_supervise/supervise-rms/supervise-rms-biz/src/main/java/com/supervise/rms/biz/riskalarm/RiskAlarmService.java

@ -62,7 +62,28 @@ public class RiskAlarmService extends MybatisBaseService<RiskAlarmMapper, RiskAl
PagerVo<RiskAlarmVo> vo = PagerUtil.pageToVo(page1, null); PagerVo<RiskAlarmVo> vo = PagerUtil.pageToVo(page1, null);
return vo; return vo;
} }
public void saveOrUpdateDto(RiskAlarmDto dto){
String dtoSid = dto.getSid();
if (org.apache.commons.lang3.StringUtils.isBlank(dtoSid)) {
this.insertByDto(dto);
return;
}
this.updateByDto(dto);
}
public void insertByDto(RiskAlarmDto dto){
RiskAlarm entity = new RiskAlarm();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(RiskAlarmDto dto){
String dtoSid = dto.getSid();
if (org.apache.commons.lang3.StringUtils.isBlank(dtoSid)) {
return;
}
RiskAlarm entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public ResultBean saveRiskAlarm(RiskAlarmDto dto) { public ResultBean saveRiskAlarm(RiskAlarmDto dto) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(dto.getSid())) { if (StringUtils.isBlank(dto.getSid())) {
@ -83,17 +104,28 @@ public class RiskAlarmService extends MybatisBaseService<RiskAlarmMapper, RiskAl
* @return * @return
*/ */
public ResultBean saveRisk(RiskAlarmDto dto) { public ResultBean saveRisk(RiskAlarmDto dto) {
//dto.getSid 是仓库sid
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
RiskAlarm riskAlarm = new RiskAlarm(); RiskAlarm riskAlarm = new RiskAlarm();
BeanUtil.copyProperties(dto, riskAlarm); BeanUtil.copyProperties(dto, riskAlarm);
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm"); SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String date=ft.format(new Date()); String date=ft.format(new Date());
//更新最后请求的时间
RiskRecordDto riskRecord=new RiskRecordDto(); RiskRecordDto riskRecord=new RiskRecordDto();
//riskRecord.setCode("030404"); //riskRecord.setCode("030404");
riskRecord.setDate(date); riskRecord.setDate(date);
riskRecordService.saveRecord(riskRecord); riskRecordService.saveRecord(riskRecord);
//正常状态 //正常状态
if (dto.getDevices().size() == 0) { if (dto.getDevices().size() == 0) {
RiskAlarm riskAlarm1=baseMapper.getRiskAlarmByState("030404",dto.getSid(),"0");
if(null!=riskAlarm1){
riskAlarm1.setState("1");
baseMapper.updateById(riskAlarm1);
ThreadUtil.execute(()->{
wechatFeign.secureMessage(riskAlarm1.getPositionSid(),riskAlarm.getSid());
});
}
baseMapper.delete(new QueryWrapper<RiskAlarm>().eq("indicatorCode","030404").eq("positionSid",dto.getSid()).eq("state","0"));
} else { } else {
RiskIndicators riskIndicators = riskIndicatorsService.getOne(new QueryWrapper<RiskIndicators>().eq("code", "030404")); RiskIndicators riskIndicators = riskIndicatorsService.getOne(new QueryWrapper<RiskIndicators>().eq("code", "030404"));
riskAlarm.setIndicatorSid(riskIndicators.getSid()); riskAlarm.setIndicatorSid(riskIndicators.getSid());
@ -106,6 +138,7 @@ public class RiskAlarmService extends MybatisBaseService<RiskAlarmMapper, RiskAl
riskAlarm.setTreatmentTime(new Date()); riskAlarm.setTreatmentTime(new Date());
riskAlarm.setContent(dto.getDevices().toString()); riskAlarm.setContent(dto.getDevices().toString());
RiskAlarmVo riskAlarmVo = baseMapper.getRiskAlarm(dto.getSid(),"030404"); RiskAlarmVo riskAlarmVo = baseMapper.getRiskAlarm(dto.getSid(),"030404");
//判断是否要通知
determine(riskAlarmVo,riskAlarm,dto.getSid(),"030404"); determine(riskAlarmVo,riskAlarm,dto.getSid(),"030404");
} }
return rb.success().setMsg("成功"); return rb.success().setMsg("成功");
@ -122,21 +155,20 @@ public class RiskAlarmService extends MybatisBaseService<RiskAlarmMapper, RiskAl
Integer s = 0; Integer s = 0;
RiskAlarm riskAlarm = new RiskAlarm(); RiskAlarm riskAlarm = new RiskAlarm();
BeanUtil.copyProperties(dto, riskAlarm); BeanUtil.copyProperties(dto, riskAlarm);
//最后提交时间
// SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm");
// String date=ft.format(new Date());
// RiskRecordDto riskRecord=new RiskRecordDto();
// //riskRecord.setCode("030405");
// riskRecord.setDate(date);
// riskRecordService.saveRecord(riskRecord);
dto.getDeviceImages(); dto.getDeviceImages();
for(DeviceImages deviceImages:dto.getDeviceImages()){
baseMapper.insertImg(UUID.randomUUID().toString(),deviceImages.getEndImage(),deviceImages.getEndTime(),dto.getName()
,deviceImages.getSimilarity(),
deviceImages.getStartImage(),deviceImages.getStartTime(),dto.getSid());
}
for(DeviceImages deviceImages:dto.getDeviceImages()){ for(DeviceImages deviceImages:dto.getDeviceImages()){
deviceImages.setEndImage("https://supervise.yxtsoft.com/downfile/monitor/"+deviceImages.getEndImage()); deviceImages.setEndImage("https://supervise.yxtsoft.com/downfile/monitor/"+deviceImages.getEndImage());
deviceImages.setStartImage("https://supervise.yxtsoft.com/downfile/monitor/"+deviceImages.getStartImage()); deviceImages.setStartImage("https://supervise.yxtsoft.com/downfile/monitor/"+deviceImages.getStartImage());
} }
for(DeviceImages deviceImages:dto.getDeviceImages()){ for(DeviceImages deviceImages:dto.getDeviceImages()){
Integer sim=Integer.valueOf(deviceImages.getSimilarity().replace("%","")); Integer sim=Integer.valueOf(deviceImages.getSimilarity().replace("%",""));
if(sim<90){ if(sim<95){
RiskIndicators riskIndicators = riskIndicatorsService.getOne(new QueryWrapper<RiskIndicators>().eq("code", "030405")); RiskIndicators riskIndicators = riskIndicatorsService.getOne(new QueryWrapper<RiskIndicators>().eq("code", "030405"));
riskAlarm.setContent(dto.getDeviceImages().toString()); riskAlarm.setContent(dto.getDeviceImages().toString());
riskAlarm.setIndicatorSid(riskIndicators.getSid()); riskAlarm.setIndicatorSid(riskIndicators.getSid());
@ -148,20 +180,43 @@ public class RiskAlarmService extends MybatisBaseService<RiskAlarmMapper, RiskAl
riskAlarm.setSid(UUID.randomUUID().toString()); riskAlarm.setSid(UUID.randomUUID().toString());
riskAlarm.setTreatmentTime(new Date()); riskAlarm.setTreatmentTime(new Date());
riskAlarm.setContent(dto.getDeviceImages().toString()); riskAlarm.setContent(dto.getDeviceImages().toString());
riskAlarm.setCount(1);
RiskAlarmVo riskAlarmVo = baseMapper.getRiskAlarm(dto.getSid(),"030405"); RiskAlarmVo riskAlarmVo = baseMapper.getRiskAlarm(dto.getSid(),"030405");
determine(riskAlarmVo,riskAlarm,dto.getSid(),"030405"); determine(riskAlarmVo,riskAlarm,dto.getSid(),"030405");
} }
} }
return rb.success().setMsg("成功"); return rb.success().setMsg("成功");
} }
/**
* 判断此风险是否连续发送3次
* @param riskAlarm
* @return
*/
public boolean deviceDetermine(RiskAlarm riskAlarm) {
RiskAlarm risk = baseMapper.getRiskAlarmByState("030404", riskAlarm.getPositionSid(), "0");
if (null == risk) {
baseMapper.insert(riskAlarm);
} else {
if(risk.getCount()>=2){
return true;
}else {
risk.setCount(risk.getCount() + 1);
baseMapper.updateById(risk);
}
}
return false;
}
public boolean determine(RiskAlarmVo riskAlarmVo,RiskAlarm riskAlarm,String shSid,String type) { public boolean determine(RiskAlarmVo riskAlarmVo,RiskAlarm riskAlarm,String shSid,String type) {
if (null == riskAlarmVo) { if (null == riskAlarmVo) {
baseMapper.insert(riskAlarm); baseMapper.insert(riskAlarm);
if(type.equals("030404")){
ThreadUtil.execute(()->{ // if(type.equals("030404")){
wechatFeign.shMessage(shSid,riskAlarm.getSid()); // ThreadUtil.execute(()->{
}); // wechatFeign.shMessage(shSid,riskAlarm.getSid());
}else if(type.equals("030405")){ // });
// }else
if(type.equals("030405")){
ThreadUtil.execute(()->{ ThreadUtil.execute(()->{
wechatFeign.shImgMessage(shSid,riskAlarm.getSid()); wechatFeign.shImgMessage(shSid,riskAlarm.getSid());
}); });
@ -171,18 +226,28 @@ public class RiskAlarmService extends MybatisBaseService<RiskAlarmMapper, RiskAl
}); });
} }
}else{ }else{
Date newDate = addHour(riskAlarmVo.getCreateTime(), 4); Date newDate;
if(type.equals("030404")){
RiskAlarm risk = baseMapper.getRiskAlarmByState("030404", riskAlarm.getPositionSid(), "1");
newDate = addHour(risk.getCreateTime(), 4);
}else {
newDate = addHour(riskAlarmVo.getCreateTime(), 4);
}
if (newDate.before(new Date())) { if (newDate.before(new Date())) {
baseMapper.insert(riskAlarm);
if(type.equals("030404")){ if(type.equals("030404")){
ThreadUtil.execute(()->{ boolean d=deviceDetermine(riskAlarm);
wechatFeign.shMessage(shSid,riskAlarm.getSid()); if(d==true){
}); ThreadUtil.execute(()->{
wechatFeign.shMessage(shSid,riskAlarm.getSid());
});
}
}else if(type.equals("030405")){ }else if(type.equals("030405")){
baseMapper.insert(riskAlarm);
ThreadUtil.execute(()->{ ThreadUtil.execute(()->{
wechatFeign.shImgMessage(shSid,riskAlarm.getSid()); wechatFeign.shImgMessage(shSid,riskAlarm.getSid());
}); });
}else if (type.equals("030406")){ }else if (type.equals("030406")){
baseMapper.insert(riskAlarm);
ThreadUtil.execute(()->{ ThreadUtil.execute(()->{
wechatFeign.sysErrMessage(riskAlarm.getSid()); wechatFeign.sysErrMessage(riskAlarm.getSid());
}); });

2
yxt_supervise/supervise-rms/supervise-rms-biz/src/main/java/com/supervise/rms/feign/report/WechatFeign.java

@ -21,4 +21,6 @@ public interface WechatFeign {
public void shImgMessage(@RequestParam("shSid") String shSid,@RequestParam("riskSid") String riskSid); public void shImgMessage(@RequestParam("shSid") String shSid,@RequestParam("riskSid") String riskSid);
@GetMapping("/sysErrMessage") @GetMapping("/sysErrMessage")
public void sysErrMessage(@RequestParam("riskSid") String riskSid); public void sysErrMessage(@RequestParam("riskSid") String riskSid);
@GetMapping("/secureMessage")
public void secureMessage(@RequestParam("shSid") String shSid,@RequestParam("riskSid") String riskSid);
} }

25
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/device/DeviceRest.java

@ -0,0 +1,25 @@
package com.yxt.supervise.system.device;
import com.alibaba.nacos.common.model.RestResult;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author wangpengfei
* @date 2023/9/9 10:30
*/
@RestController
@RequestMapping("/device")
public class DeviceRest {
@Autowired
private DeviceService deviceService;
@GetMapping("/token")
public ResultBean token (){
ResultBean rb=new ResultBean();
String token=deviceService.spToken();
return rb.success().setData(token);
}
}

57
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/device/DeviceService.java

@ -0,0 +1,57 @@
package com.yxt.supervise.system.device;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yxt.common.base.utils.HttpUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author wangpengfei
* @date 2023/9/9 10:30
*/
@Service
public class DeviceService {
@Value("${haiKangConsumer.clientId}")
private String clientId;
@Value("${haiKangConsumer.clientSecret}")
private String clientSecret;
public static String haiKangToken = "";
public static String haiKangMessageConsumer = "";
public void initMain() {
// 先登录
String loginUrl = "https://api2.hik-cloud.com/oauth/token";
Map<String, Object> tokenParam = new HashMap<>();
tokenParam.put("client_id", clientId); // 客户端ID String
tokenParam.put("client_secret", clientSecret); //访问密钥 String
tokenParam.put("grant_type", "client_credentials"); //认证模式 String 目前仅支持client_credentials
String tokenResult = HttpUtils.sendPostMap(loginUrl, tokenParam, "");
JSONObject tokenObject = JSONObject.parseObject(tokenResult);
haiKangToken = tokenObject.get("access_token").toString();
}
public String spToken(){
initMain();
String lUrl = "https://api2.hik-cloud.com/v1/ezviz/account/info";
String qlToken="";
try {
String result=HttpUtils.sendGet(lUrl,haiKangToken);
JSONObject jsonObject = JSONObject.parseObject(result);
JSONObject dataJson = (JSONObject) jsonObject.get("data");
String appKey = dataJson.get("appKey").toString();
qlToken = dataJson.get("token").toString();
} catch (Exception e) {
throw new RuntimeException(e);
}
return qlToken;
}
}
Loading…
Cancel
Save