From 99a1ad074c7720b157fbb8d7e9417c3ef09dd22c Mon Sep 17 00:00:00 2001
From: XMnhwj_BackTechnologyDevelopment <3512363680@qq.com>
Date: Fri, 15 Mar 2024 17:13:09 +0800
Subject: [PATCH] =?UTF-8?q?2024-03-15=2017:12:56=20=E5=BB=BA=E7=AD=91?=
=?UTF-8?q?=E4=BE=9B=E6=9A=96=E6=A8=A1=E5=9E=8B=E6=8E=A5=E5=8F=A3=E4=BC=98?=
=?UTF-8?q?=E5=8C=96=E5=AE=8C=E5=96=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/dky/calculate/SchemeRating.java | 10 +-
dntd-tool/pom.xml | 2 +-
.../com/dky/generate/BuildHeatingScene.java | 2 +
.../java/com/dky/security/GetCpuInfo.java | 43 +++---
.../main/java/com/dky/security/SM4Utils.java | 60 ++++++--
.../src/main/java/com/dky/test/TestMain.java | 135 ++++++++++++++++++
.../src/main/java/com/dky/tool/ModelTool.java | 37 +++--
file.txt | 3 +
8 files changed, 237 insertions(+), 55 deletions(-)
create mode 100644 dntd-tool/src/main/java/com/dky/test/TestMain.java
create mode 100644 file.txt
diff --git a/dntd-model-buildheating/src/main/java/com/dky/calculate/SchemeRating.java b/dntd-model-buildheating/src/main/java/com/dky/calculate/SchemeRating.java
index 978676f..484ae14 100644
--- a/dntd-model-buildheating/src/main/java/com/dky/calculate/SchemeRating.java
+++ b/dntd-model-buildheating/src/main/java/com/dky/calculate/SchemeRating.java
@@ -30,23 +30,15 @@ public class SchemeRating {
cost = cost + ((device.getCount() * device.getDeviceHeatScene().getDevPrice()) + (device.getCount()) * device.getDeviceHeatScene().getDevSubstituteLaborCost() * device.getDeviceHeatScene().getDevServiceLife());
}
-
double v1 = (maxEff.get(devSubType) - eff) / maxEff.get(devSubType); // 热效率占比计算
double v = (cost - minPrice.get(devSubType)) / minPrice.get(devSubType); // 成本占比计算
- System.out.println("当前方案成本: " + cost + ",当前方案热效率: " + eff + ",技术选型: " + devSubType + ",最小成本Map: " + minPrice + ",最大热效率Map: " + maxEff);
- // System.out.println("成本除法运算 = " + v + ",减法运算 = " + (1 - v) + ",乘法运算 = " + (1 -v) * 20 + "。");
- // System.out.println("热效率除法运算 = " + v1 + ",减法运算 = " + (1 - v1) + ",乘法运算 = " + (1 -v1) * 80 + "。\n");
+
// 3、(1-(选择对应设备细类的效率最大的效率值(效率最大值)-当前设备的效率值值)/效率最大值)*100*系数 +(1-(当前成本值-对应设备细类的成本最小值)/对应设备细类的成本最小值)*100*0.2。取最高得分。
rating.set(((1 - v1) * 100 * effRatio) + ((1 - v) * 100 * costRatio));
// 方案评分结果
SchemeRatingRes schemeRatingRes = new SchemeRatingRes(plan, rating.get(), devTechType);
optimalMap.put(devTechType, schemeRatingRes);
- System.out.println("方案详情 = ");
- for (MatchedDevice matchedDevice : plan){
- System.out.println(matchedDevice);
- }
- System.out.println("当前方案评分: " + rating.get() + "\n");
});
return optimalMap;
}
diff --git a/dntd-tool/pom.xml b/dntd-tool/pom.xml
index 3212419..fe2bd98 100644
--- a/dntd-tool/pom.xml
+++ b/dntd-tool/pom.xml
@@ -10,7 +10,7 @@
dntd-tool
- 1.1-SNAPSHOT
+ 1.2-SNAPSHOT
8
diff --git a/dntd-tool/src/main/java/com/dky/generate/BuildHeatingScene.java b/dntd-tool/src/main/java/com/dky/generate/BuildHeatingScene.java
index d14e012..c093d5d 100644
--- a/dntd-tool/src/main/java/com/dky/generate/BuildHeatingScene.java
+++ b/dntd-tool/src/main/java/com/dky/generate/BuildHeatingScene.java
@@ -91,6 +91,7 @@ public class BuildHeatingScene implements DntdModelI {
*/
double costRatio = 0.2;
double effRatio = 0.8;
+ /*
try{
double costRatio1 = Double.parseDouble(jsonObject.get("costRatio").toString());
double effRatio1 = Double.parseDouble(jsonObject.get("effRatio").toString());
@@ -101,6 +102,7 @@ public class BuildHeatingScene implements DntdModelI {
}catch (Exception e){
e.printStackTrace();
}
+ */
List matchedDeviceList ;
Map listMap ;
diff --git a/dntd-tool/src/main/java/com/dky/security/GetCpuInfo.java b/dntd-tool/src/main/java/com/dky/security/GetCpuInfo.java
index 92f0f23..bd0730d 100644
--- a/dntd-tool/src/main/java/com/dky/security/GetCpuInfo.java
+++ b/dntd-tool/src/main/java/com/dky/security/GetCpuInfo.java
@@ -16,7 +16,7 @@ public class GetCpuInfo {
// 获取当前操作系统名称
String os = System.getProperty("os.name");
os = os.toUpperCase();
- System.out.println("当前操作系统:"+os);
+ System.out.println("当前操作系统:" + os);
// linux系统用Runtime.getRuntime().exec()执行 dmidecode -t processor 查询cpu序列
// windows系统用 wmic cpu get ProcessorId 查看cpu序列
if ("LINUX".equals(os)) {
@@ -24,12 +24,18 @@ public class GetCpuInfo {
} else {
cpuId = getWindowsCpuId();
}
+ // String macK = cpuId.toUpperCase().replace(" ", "");
+ // macK.replace(":", "");
+ System.out.println("本机mac地址:" + cpuId.toUpperCase().replace(" ", "").replace(":", ""));
+ return getString(cpuId);
+ }
+
+ /**
+ * 解析本地:将获取得到的CPU—Id 格式化
+ */
+ public static String getString(String cpuId) {
String macK = cpuId.toUpperCase().replace(" ", "");
- macK.replace(":","");
- System.out.println(
- "本机mac地址:"+macK.replace(":","")
- );
- return macK.replace(":","");
+ return macK.replace(":", "");
}
/**
@@ -37,38 +43,35 @@ public class GetCpuInfo {
*/
public static String getLinuxCpuId() {
String mac = "";
- try
- {
+ try {
Process p = new ProcessBuilder("ifconfig").start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
- while ((line = br.readLine()) != null)
- {
+ while ((line = br.readLine()) != null) {
Pattern pat = Pattern.compile("\\b\\w+:\\w+:\\w+:\\w+:\\w+:\\w+\\b");
- Matcher mat= pat.matcher(line);
- if(mat.find())
- {
- mac=mat.group(0);
+ Matcher mat = pat.matcher(line);
+ if (mat.find()) {
+ mac = mat.group(0);
}
}
br.close();
- }catch (IOException e) {
+ } catch (IOException e) {
e.printStackTrace();
}
- System.out.println("本机mac地址:"+mac);
+ System.out.println("本机mac地址:" + mac);
return mac;
}
- public static String executeLinuxCmd(String cmd){
+ public static String executeLinuxCmd(String cmd) {
try {
Runtime run = Runtime.getRuntime();
Process process = null;
process = run.exec(cmd);
System.out.println(process.toString());
- if (process == null){
+ if (process == null) {
System.out.println("未获取到执行结果");
- }else {
+ } else {
System.out.println("读取执行结果");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
@@ -81,7 +84,7 @@ public class GetCpuInfo {
return line;
}
- }catch (Exception e) {
+ } catch (Exception e) {
e.printStackTrace();
}
return null;
diff --git a/dntd-tool/src/main/java/com/dky/security/SM4Utils.java b/dntd-tool/src/main/java/com/dky/security/SM4Utils.java
index 6bd5b63..72f9d69 100644
--- a/dntd-tool/src/main/java/com/dky/security/SM4Utils.java
+++ b/dntd-tool/src/main/java/com/dky/security/SM4Utils.java
@@ -4,12 +4,12 @@ import org.bouncycastle.jce.provider.BouncyCastleProvider;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
import java.nio.charset.StandardCharsets;
import java.security.Security;
-import java.util.ArrayList;
-import java.util.Base64;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
public class SM4Utils {
static {
@@ -28,13 +28,27 @@ public class SM4Utils {
return Base64.getEncoder().encodeToString(encrypted);
}
- public static Map decrypt(String encrypted) throws Exception {
- Cipher cipher = Cipher.getInstance(ALGORITHM, "BC");
- SecretKeySpec secretKey = new SecretKeySpec(SM4_KEY.getBytes(StandardCharsets.UTF_8), "AES");
- cipher.init(Cipher.DECRYPT_MODE, secretKey);
- byte[] decoded = Base64.getDecoder().decode(encrypted);
- byte[] decrypted = cipher.doFinal(decoded);
- return stringToMap(new String(decrypted, StandardCharsets.UTF_8));
+ public static List