wanggaokun 1 rok pred
rodič
commit
1042a5a84d

+ 28 - 17
PHM-admin/phm-manage/src/main/java/com/phm/manage/service/impl/ModelServiceImpl.java

@@ -7,8 +7,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
-import com.phm.manage.enums.DataTypeEnum;
-import com.phm.manage.service.IFaultCaseService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -18,10 +16,13 @@ import com.phm.common.constant.Constants;
 import com.phm.common.exception.GlobalException;
 import com.phm.common.utils.file.FileUploadUtils;
 import com.phm.common.utils.ip.IpUtils;
+import com.phm.manage.domain.FaultCase;
 import com.phm.manage.domain.ModelInfo;
 import com.phm.manage.domain.SortieParameter;
 import com.phm.manage.domain.dto.ModelRequest;
+import com.phm.manage.enums.DataTypeEnum;
 import com.phm.manage.mapper.ModelInfoMapper;
+import com.phm.manage.service.IFaultCaseService;
 import com.phm.manage.service.IModelService;
 import com.phm.manage.service.ISortieParameterService;
 import com.phm.manage.util.CsvUtils;
@@ -31,6 +32,7 @@ import com.phm.manage.util.SnowFlakeIdGenerator;
 
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
@@ -114,27 +116,36 @@ public class ModelServiceImpl implements IModelService {
             log.error(e.getMessage());
             throw new GlobalException("上传文件失败");
         }
-        Map<String, String> parms = new HashMap<>();
-        parms.put("data_url", url);
-        String result = HttpClientUtils.postJson(modelInfo.getUrl(), parms);
+        // Map<String, String> parms = new HashMap<>();
+        parmsMap.put("data_url", url);
+        String result = HttpClientUtils.postJson(modelInfo.getUrl(), parmsMap);
         // TODO 需要判断结果状态
         JSONObject jsonObject = JSONUtil.parseObj(result);
+        String status = jsonObject.getStr("status");
         String jsonString = jsonObject.getStr("data");
         // 故障深度隔离无结果。需要匹配故障案例
-        if (Objects.equals(modelInfo.getType(), DataTypeEnum.DEEP_ISOLATION.getType())) {
+        if (StrUtil.equals(status, "210")
+            && Objects.equals(modelInfo.getType(), DataTypeEnum.DEEP_ISOLATION.getType())) {
             // TODO 故障案例 传入故障要素
-            faultCaseService.findFaultCaseList(jsonString);
+            List<FaultCase> faultCaseList = faultCaseService.findFaultCaseList(jsonString);
+            return JSONUtil.parse(faultCaseList).toString();
         }
-        // CSV文件路径
-        String csvFilePath =
+        if (!StrUtil.equals(status, "200")) {
+            String error = jsonObject.getStr("message");
+            log.error("调用模型异常:{}", error);
+            throw new GlobalException("调用模型异常:" + error);
+        }
+        if (JSONUtil.isTypeJSON(jsonString)) {
+            // CSV文件路径
+            String csvFilePath =
                 PHMConfig.getCsvFilePath() + CsvUtils.RESULT_DATA_PATH + CsvUtils.extractFilename("model_result");
-
-        // 将csv文件持久化到磁盘
-        CsvUtils.jsonToFileCsv(jsonString, csvFilePath);
-        SortieParameter parameter = new SortieParameter();
-        parameter.setDataPath(csvFilePath).setSortieNo(sortieParameter.getSortieNo())
-            .setBatchNo(IdUtil.getSnowflakeNextIdStr()).setType(modelInfo.getType());
-        sortieParameterService.insertSortieParameter(parameter);
+            // 将csv文件持久化到磁盘
+            CsvUtils.jsonToFileCsv(jsonString, csvFilePath);
+            SortieParameter parameter = new SortieParameter();
+            parameter.setDataPath(csvFilePath).setSortieNo(sortieParameter.getSortieNo())
+                .setBatchNo(IdUtil.getSnowflakeNextIdStr()).setType(modelInfo.getType());
+            sortieParameterService.insertSortieParameter(parameter);
+        }
         return jsonString;
     }
 
@@ -169,7 +180,7 @@ public class ModelServiceImpl implements IModelService {
         // 上传并返回新文件名称以及路径
         String fileName = FileUploadUtils.upload(PHMConfig.getUploadPath(), FileUtil.fileToMultipartFile(file));
         log.info("上传的文件名称:{}", fileName);
-        String url = Constants.HTTP + IpUtils.getIpAddr() + ":" +port + fileName;
+        String url = Constants.HTTP + IpUtils.getIpAddr() + ":" + port + fileName;
         log.info("上传的文件地址:{}", url);
         return url;
     }

+ 10 - 5
PHM-admin/phm-manage/src/main/java/com/phm/manage/util/CsvUtils.java

@@ -30,7 +30,7 @@ import lombok.extern.slf4j.Slf4j;
 public class CsvUtils {
 
     // 模型需要的数据
-    public static final String MODEL_DATA_PATH = "/modelData";
+    public static final String MODEL_DATA_PATH = "/modelData/";
 
     // 执行模型后的结果数据
     public static final String RESULT_DATA_PATH = "/resultData/";
@@ -180,9 +180,14 @@ public class CsvUtils {
     }
 
     private static List<CsvRow> getCsvRowList(String csvFilePath) {
-        CsvReader reader = CsvUtil.getReader();
-        // 从文件中读取CSV数据
-        CsvData data = reader.read(FileUtil.file(csvFilePath), CharsetUtil.CHARSET_GBK);
-        return data.getRows();
+        try {
+            CsvReader reader = CsvUtil.getReader();
+            // 从文件中读取CSV数据
+            CsvData data = reader.read(FileUtil.file(csvFilePath), CharsetUtil.CHARSET_GBK);
+            return data.getRows();
+        } catch (Exception e) {
+            log.error(e.getMessage());
+        }
+        return null;
     }
 }

+ 1 - 1
PHM-admin/phm-manage/src/main/resources/mapper/manage/ModelInfoMapper.xml

@@ -7,7 +7,7 @@
     <resultMap type="ModelInfo" id="ModelResult">
         <result property="id" column="id"/>
         <result property="name" column="name"/>
-        <result property="type" column="tye"/>
+        <result property="type" column="type"/>
         <result property="url" column="url"/>
         <result property="modelParams" column="model_params"/>
         <result property="dataParams" column="data_params"/>