|
|
@@ -6,12 +6,9 @@ import cn.vbdsm.hj212.modbus.config.WsProperties;
|
|
|
import cn.vbdsm.hj212.modbus.utils.AESUtil;
|
|
|
import cn.vbdsm.hj212.modbus.utils.RandomHelper;
|
|
|
import cn.vbdsm.hj212.modbus.utils.WsClientUtil;
|
|
|
-import cn.vbdsm.hj212.modbus.ws.data.MockMonitor;
|
|
|
-import cn.vbdsm.hj212.modbus.ws.data.RandomHarmonic;
|
|
|
-import cn.vbdsm.hj212.modbus.ws.data.RandomPower;
|
|
|
-import cn.vbdsm.hj212.modbus.ws.data.TerminalData;
|
|
|
+import cn.vbdsm.hj212.modbus.ws.data.*;
|
|
|
|
|
|
-import com.alibaba.csp.sentinel.annotation.SentinelResource;
|
|
|
+//import com.alibaba.csp.sentinel.annotation.SentinelResource;
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import lombok.var;
|
|
|
@@ -20,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.core.io.Resource;
|
|
|
import org.springframework.core.io.ResourceLoader;
|
|
|
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
|
|
+import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
|
@@ -39,6 +37,10 @@ public class MockUploadWsService {
|
|
|
@Autowired
|
|
|
private MockMonitor mockMonitor;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private TerminalDataDao terminalDataDao;
|
|
|
+
|
|
|
+
|
|
|
// @Autowired
|
|
|
// private ResourceLoader resourceLoader;
|
|
|
|
|
|
@@ -56,7 +58,7 @@ public class MockUploadWsService {
|
|
|
// }
|
|
|
// }
|
|
|
// }
|
|
|
- @SentinelResource("uploadBlockHandler")
|
|
|
+ //@SentinelResource("uploadBlockHandler")
|
|
|
public void loadTerminals(){
|
|
|
String terminals = mockMonitor.getTerminals();
|
|
|
String[] coms = terminals.split("&");
|
|
|
@@ -65,6 +67,9 @@ public class MockUploadWsService {
|
|
|
String[] ts = cts[1].split(",");
|
|
|
for(String t : ts){
|
|
|
TerminalData td = getTerminal(cts[0],t);
|
|
|
+ if(td==null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
RandomPower power = new RandomPower();
|
|
|
setEngine(power,td);
|
|
|
try {
|
|
|
@@ -80,35 +85,44 @@ public class MockUploadWsService {
|
|
|
|
|
|
|
|
|
private TerminalData getTerminal(String companyId,String terminalId){
|
|
|
- String filePath = StrUtil.format("./mock/{}@{}.json",companyId,terminalId);
|
|
|
- //Resource fileResource =resourceLoader.getResource(filePath);
|
|
|
- File file = null;
|
|
|
- try {
|
|
|
- file = new File(filePath);
|
|
|
- if(file.exists()){
|
|
|
- FileReader fr = new FileReader(file);
|
|
|
- String ts = fr.readString();
|
|
|
- return JSON.parseObject(ts, TerminalData.class);
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("{}文件不存在",filePath);
|
|
|
- }
|
|
|
- return new TerminalData(terminalId,companyId);
|
|
|
+// String filePath = StrUtil.format("./mock/{}@{}.json",companyId,terminalId);
|
|
|
+// //Resource fileResource =resourceLoader.getResource(filePath);
|
|
|
+// File file = null;
|
|
|
+// try {
|
|
|
+// file = new File(filePath);
|
|
|
+// if(file.exists()){
|
|
|
+// FileReader fr = new FileReader(file);
|
|
|
+// String ts = fr.readString();
|
|
|
+// return JSON.parseObject(ts, TerminalData.class);
|
|
|
+// }
|
|
|
+// } catch (Exception e) {
|
|
|
+// log.error("{}文件不存在",filePath);
|
|
|
+// }
|
|
|
+// return new TerminalData(terminalId,companyId);
|
|
|
+ return terminalDataDao.getCurDayTerminalData(companyId,terminalId,true);
|
|
|
+
|
|
|
}
|
|
|
private void setEngine(RandomPower power, TerminalData td){
|
|
|
var dp = RandomHelper.getRandom(22000,3000,100);
|
|
|
var de = RandomHelper.getRandom(6600,600,100);
|
|
|
- var pe = td.getCurDayTotalP().equals(new BigDecimal(0))?new BigDecimal(0):td.getCurDayTotalP().add(dp);
|
|
|
- var qe = td.getCurDayTotalE().equals(new BigDecimal(0))?new BigDecimal(0):td.getCurDayTotalE().add(de);
|
|
|
+// var pe = td.getCurDayTotalP().equals(new BigDecimal(0))?new BigDecimal(0):td.getCurDayTotalP().add(dp);
|
|
|
+// var qe = td.getCurDayTotalE().equals(new BigDecimal(0))?new BigDecimal(0):td.getCurDayTotalE().add(de);
|
|
|
+ var pe = td.getDayTotal_p().equals(new BigDecimal(0))?new BigDecimal(0):td.getDayTotal_p().add(dp);
|
|
|
+ var qe = td.getDayTotal_e().equals(new BigDecimal(0))?new BigDecimal(0):td.getDayTotal_e().add(de);
|
|
|
var ps = td.getTotal_p().add(dp);
|
|
|
var qs = td.getTotal_e().add(de);
|
|
|
power.setEngine(pe,qe,ps,qs);
|
|
|
- td.SetDayTotalP(pe.equals(new BigDecimal(0))?new BigDecimal("0.01"):pe)
|
|
|
- .SetTotalP(ps)
|
|
|
- .SetDayTotalE(qe.equals(new BigDecimal(0))?new BigDecimal("0.01"):qe)
|
|
|
- .SetTotalE(qs);
|
|
|
-
|
|
|
- td.saveFileInfo();
|
|
|
+// td.SetDayTotalP(pe.equals(new BigDecimal(0))?new BigDecimal("0.01"):pe)
|
|
|
+// .SetTotalP(ps)
|
|
|
+// .SetDayTotalE(qe.equals(new BigDecimal(0))?new BigDecimal("0.01"):qe)
|
|
|
+// .SetTotalE(qs);
|
|
|
+//
|
|
|
+// td.saveFileInfo();
|
|
|
+ td.setTotal_p(ps);
|
|
|
+ td.setTotal_e(qs);
|
|
|
+ td.setDayTotal_p(pe);
|
|
|
+ td.setDayTotal_e(qe);
|
|
|
+ terminalDataDao.updateOrInsertTerminalData(td);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -135,33 +149,38 @@ public class MockUploadWsService {
|
|
|
onlineData_power.setDataType(type);
|
|
|
List<Map<String,String>> list = new ArrayList<>();
|
|
|
String terminalId = td.getTerminalId();
|
|
|
- if(type.equals("01")||type.equals("02")){
|
|
|
- Map<String,String> map = new HashMap<>();
|
|
|
- map.put("terminalId",terminalId);
|
|
|
- map.put("getTime", Long.toString(date));
|
|
|
- DataListBuilder.buildDataList(type,map,power,
|
|
|
- "",null );
|
|
|
- list.add(map);
|
|
|
- }
|
|
|
- else if(type.equals("03")){
|
|
|
- Map<String, String> uaMap = createHi_HuMap(type, terminalId, "UA",date,power);
|
|
|
- Map<String, String> ubMap = createHi_HuMap(type, terminalId, "UB", date,power);
|
|
|
- Map<String, String> ucMap = createHi_HuMap(type, terminalId, "UC", date,power);
|
|
|
- list.add(uaMap);
|
|
|
- list.add(ubMap);
|
|
|
- list.add(ucMap);
|
|
|
- }else if(type.equals("04")){
|
|
|
- Map<String, String> iaMap = createHi_HuMap(type, terminalId, "IA", date,power);
|
|
|
- Map<String, String> ibMap = createHi_HuMap(type, terminalId, "IB", date,power);
|
|
|
- Map<String, String> icMap = createHi_HuMap(type, terminalId, "IC", date,power);
|
|
|
- list.add(iaMap);
|
|
|
- list.add(ibMap);
|
|
|
- list.add(icMap);
|
|
|
+ switch (type) {
|
|
|
+ case "01":
|
|
|
+ case "02":
|
|
|
+ Map<String, String> map = new HashMap<>();
|
|
|
+ map.put("terminalId", terminalId);
|
|
|
+ map.put("getTime", Long.toString(date));
|
|
|
+ DataListBuilder.buildDataList(type, map, power,
|
|
|
+ "", null);
|
|
|
+ list.add(map);
|
|
|
+ break;
|
|
|
+ case "03":
|
|
|
+ Map<String, String> uaMap = createHi_HuMap(type, terminalId, "UA", date, power);
|
|
|
+ Map<String, String> ubMap = createHi_HuMap(type, terminalId, "UB", date, power);
|
|
|
+ Map<String, String> ucMap = createHi_HuMap(type, terminalId, "UC", date, power);
|
|
|
+ list.add(uaMap);
|
|
|
+ list.add(ubMap);
|
|
|
+ list.add(ucMap);
|
|
|
+ break;
|
|
|
+ case "04":
|
|
|
+ Map<String, String> iaMap = createHi_HuMap(type, terminalId, "IA", date, power);
|
|
|
+ Map<String, String> ibMap = createHi_HuMap(type, terminalId, "IB", date, power);
|
|
|
+ Map<String, String> icMap = createHi_HuMap(type, terminalId, "IC", date, power);
|
|
|
+ list.add(iaMap);
|
|
|
+ list.add(ibMap);
|
|
|
+ list.add(icMap);
|
|
|
+ break;
|
|
|
}
|
|
|
|
|
|
|
|
|
onlineData_power.setDataList(list);
|
|
|
String data = JSON.toJSONString(onlineData_power);
|
|
|
+
|
|
|
String content = null;
|
|
|
try {
|
|
|
content = AESUtil.Encrypt(data, wsProperties.getKey());
|
|
|
@@ -169,10 +188,13 @@ public class MockUploadWsService {
|
|
|
for (String url : urls) {
|
|
|
String result = WsClientUtil.callWebSV(url, wsProperties.getMethod(), content);
|
|
|
log.info("地址:{},企业编号:{},设备号信息:{},上传结果:{}",url,td.getCompanyId(),terminalId,result);
|
|
|
+ //log.info("地址:{},企业编号:{},设备号信息:{}",url,td.getCompanyId(),terminalId);
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
log.error("数据上报异常:" + e.getMessage() + "\nKEY:" + wsProperties.getKey() + "\nCONTENT:" + content);
|
|
|
+ onlineData_power=null;
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private Map<String,String> createHi_HuMap(String type,String terminalId,String ht,Long date,RandomPower power){
|
|
|
@@ -204,4 +226,7 @@ public class MockUploadWsService {
|
|
|
DataListBuilder.buildDataList(type,map,null,ht,randomHarmonic);
|
|
|
return map;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|