|
@@ -1,9 +1,11 @@
|
|
|
package com.miniframe.bisiness.es;
|
|
|
|
|
|
-import java.io.File;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.Map;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.nio.file.Files;
|
|
|
+import java.nio.file.Paths;
|
|
|
+import java.util.*;
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import com.github.dockerjava.api.async.ResultCallback;
|
|
|
import com.github.dockerjava.api.model.Frame;
|
|
@@ -11,13 +13,18 @@ import com.miniframe.core.ExecProcessFlow;
|
|
|
import com.miniframe.core.ext.UtilTools;
|
|
|
import com.miniframe.generate.business.es.model.ES0013BaseModel;
|
|
|
import com.miniframe.mappers.es.dao.EsMapper;
|
|
|
+import com.miniframe.model.es.EsProCom;
|
|
|
import com.miniframe.model.es.EsProJob;
|
|
|
+import com.miniframe.model.es.EsProResultKey;
|
|
|
+import com.miniframe.model.es.EsProResultValue;
|
|
|
+import com.miniframe.model.es.dao.EsProComConMapper;
|
|
|
import com.miniframe.model.es.dao.EsProJobMapper;
|
|
|
+import com.miniframe.model.es.dao.EsProResultKeyMapper;
|
|
|
+import com.miniframe.model.es.dao.EsProResultValueMapper;
|
|
|
import com.miniframe.tools.XIFileUtils;
|
|
|
import com.miniframe.tools.docker.DockerExe;
|
|
|
import es.service.LogService;
|
|
|
import es.template.TemplateGenerator;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
/**
|
|
|
* 无锡发动机,“项目求解”逻辑处理(重新生成不覆盖)。
|
|
@@ -40,7 +47,8 @@ public class ES0013Service extends ES0013BaseModel implements ExecProcessFlow {
|
|
|
|
|
|
EsProJobMapper epjDao = UtilTools.getBean(EsProJobMapper.class);
|
|
|
EsProJob esjob = new EsProJob();
|
|
|
- esjob.setJobId(UtilTools.getUUid());
|
|
|
+ String jobId = UtilTools.getUUid();
|
|
|
+ esjob.setJobId(jobId);
|
|
|
esjob.setPid(pid);
|
|
|
esjob.setStartTime(new Date());
|
|
|
esjob.setEndTime(new Date());
|
|
@@ -54,6 +62,8 @@ public class ES0013Service extends ES0013BaseModel implements ExecProcessFlow {
|
|
|
esjob.setRemark("");
|
|
|
epjDao.insert(esjob);
|
|
|
run(pid);
|
|
|
+
|
|
|
+ readFileSaveTb(pid,jobId);
|
|
|
}
|
|
|
private void run(String pid) throws Exception {
|
|
|
LogService.addLog(pid,"求解——————————————————开始");
|
|
@@ -101,6 +111,76 @@ public class ES0013Service extends ES0013BaseModel implements ExecProcessFlow {
|
|
|
return null;
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ private void readFileSaveTb(String pid,String jobId) throws Exception{
|
|
|
+ EsMapper esMapper = UtilTools.getBean(EsMapper.class);
|
|
|
+ List<EsProCom> epcList = esMapper.selectEsProComListByPid(pid);
|
|
|
+ int step = 0;
|
|
|
+ for(int i=0;i<epcList.size();i++){
|
|
|
+ String fileName = epcList.get(i).getIdCode();
|
|
|
+ if(fileName.isEmpty()) continue;
|
|
|
+ fileName = fileName + epcList.get(i).getSer().toString();
|
|
|
+ String comId = epcList.get(i).getComId();
|
|
|
+ List<String> lines = Files.readAllLines(Paths.get(XIFileUtils.getRootPathStr()+"/es/"+pid+"/Calculate/"+fileName));
|
|
|
+ List<List<String>> data = lines.stream()
|
|
|
+ .filter(line -> !line.trim().isEmpty()) // 跳过空行
|
|
|
+ .map(line -> {
|
|
|
+ return Arrays.stream(line.split(",")) // 分割逗号
|
|
|
+ .map(String::trim) // 去除空格
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ List<String> keyList = new ArrayList<>();
|
|
|
+ for(int j=0;j<data.size();j++){
|
|
|
+ for(int k=0;k<data.get(j).size();k++){
|
|
|
+ if(j==1){
|
|
|
+ String pcrId = insertIntoTbKey(data.get(j-1).get(k),data.get(j).get(k),jobId,comId);
|
|
|
+ keyList.add(pcrId);
|
|
|
+ }else if(j>1){
|
|
|
+ insertIntoTbValue(new BigDecimal(data.get(j).get(k)),jobId,Integer.valueOf(step),comId,keyList.get(k));
|
|
|
+ ++step;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void insertIntoTbValue(BigDecimal value,String job_id,Integer step,String comId,String pcrId) throws Exception{
|
|
|
+ EsProResultValueMapper eprvMapper = UtilTools.getBean(EsProResultValueMapper.class);
|
|
|
+ EsProResultValue eprv = new EsProResultValue();
|
|
|
+ eprv.setPcrvId(UtilTools.getUUid());
|
|
|
+ eprv.setPcrId(pcrId);
|
|
|
+ eprv.setPid(this.getA_es0013().getPid());
|
|
|
+ eprv.setComId(comId);
|
|
|
+ eprv.setJobId(job_id);
|
|
|
+ eprv.setValue(value);
|
|
|
+ eprv.setUid(this.getA_eshead().getUserId());
|
|
|
+ eprv.setCreateTime(new Date());
|
|
|
+ eprv.setUpdateTime(new Date());
|
|
|
+ eprv.setRemark("");
|
|
|
+ eprv.setStep(step);
|
|
|
+ eprvMapper.insert(eprv);
|
|
|
+ }
|
|
|
+
|
|
|
+ private String insertIntoTbKey(String key_en,String key_zh,String jobId,String comId) throws Exception{
|
|
|
+ EsProResultKeyMapper eprkMapper = UtilTools.getBean(EsProResultKeyMapper.class);
|
|
|
+ EsProResultKey eprk = new EsProResultKey();
|
|
|
+ String pcrId = UtilTools.getUUid();
|
|
|
+ eprk.setPcrId(pcrId);
|
|
|
+ eprk.setPid(this.getA_es0013().getPid());
|
|
|
+ eprk.setComId(comId);
|
|
|
+ eprk.setJobId(jobId);
|
|
|
+ eprk.setKeyEn(key_en);
|
|
|
+ eprk.setKeyZh(key_zh);
|
|
|
+ eprk.setUid(this.getA_eshead().getUserId());
|
|
|
+ eprk.setCreateTime(new Date());
|
|
|
+ eprk.setUpdateTime(new Date());
|
|
|
+ eprk.setRemark("");
|
|
|
+ eprkMapper.insert(eprk);
|
|
|
+ return pcrId;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 无锡发动机,“项目求解”业务前处理
|
|
|
*/
|