Ver Fonte

0613 结果键值表插入记录

caizm há 3 meses atrás
pai
commit
7ab6f0131b

+ 17 - 0
modelsrc/com/miniframe/model/es/EsProResultValue.java

@@ -9,6 +9,9 @@ import javax.persistence.*;
 @Table(name = "es_pro_result_value")
 public class EsProResultValue extends MiniserviceBaseModel implements Serializable {
     @Id
+    @Column(name = "pcrv_id")
+    private String pcrvId;
+
     @Column(name = "pcr_id")
     private String pcrId;
 
@@ -51,6 +54,20 @@ public class EsProResultValue extends MiniserviceBaseModel implements Serializab
 
     private static final long serialVersionUID = 1L;
 
+    /**
+     * @return pcrv_id
+     */
+    public String getPcrvId() {
+        return pcrvId;
+    }
+
+    /**
+     * @param pcrvId
+     */
+    public void setPcrvId(String pcrvId) {
+        this.pcrvId = pcrvId == null ? null : pcrvId.trim();
+    }
+
     /**
      * @return pcr_id
      */

+ 70 - 0
modelsrc/com/miniframe/model/es/EsProResultValueSQLBuilder.java

@@ -106,6 +106,76 @@ public class EsProResultValueSQLBuilder {
             criteria.add(new Criterion(condition, value1, value2));
         }
 
+        public Criteria andPcrvIdIsNull() {
+            addCriterion("pcrv_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPcrvIdIsNotNull() {
+            addCriterion("pcrv_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPcrvIdEqualTo(String value) {
+            addCriterion("pcrv_id =", value, "pcrvId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPcrvIdNotEqualTo(String value) {
+            addCriterion("pcrv_id <>", value, "pcrvId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPcrvIdGreaterThan(String value) {
+            addCriterion("pcrv_id >", value, "pcrvId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPcrvIdGreaterThanOrEqualTo(String value) {
+            addCriterion("pcrv_id >=", value, "pcrvId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPcrvIdLessThan(String value) {
+            addCriterion("pcrv_id <", value, "pcrvId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPcrvIdLessThanOrEqualTo(String value) {
+            addCriterion("pcrv_id <=", value, "pcrvId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPcrvIdLike(String value) {
+            addCriterion("pcrv_id like", value, "pcrvId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPcrvIdNotLike(String value) {
+            addCriterion("pcrv_id not like", value, "pcrvId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPcrvIdIn(List<String> values) {
+            addCriterion("pcrv_id in", values, "pcrvId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPcrvIdNotIn(List<String> values) {
+            addCriterion("pcrv_id not in", values, "pcrvId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPcrvIdBetween(String value1, String value2) {
+            addCriterion("pcrv_id between", value1, value2, "pcrvId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPcrvIdNotBetween(String value1, String value2) {
+            addCriterion("pcrv_id not between", value1, value2, "pcrvId");
+            return (Criteria) this;
+        }
+
         public Criteria andPcrIdIsNull() {
             addCriterion("pcr_id is null");
             return (Criteria) this;

+ 4 - 1
modelsrc/com/miniframe/model/es/dbconfig/MapperConfig-es.xml

@@ -5,7 +5,7 @@
     This file is generated by MyBatis Generator.
     This file is the shell of a Mapper Config file - in many cases you will need to add
       to this file before it is usable by MyBatis.
-    This file was generated on Fri May 30 15:01:21 CST 2025.
+    This file was generated on Thu Jun 12 11:44:20 CST 2025.
   -->
   <mappers>
     <mapper resource="com/miniframe/model/es/xml/EsProMapper.xml" />
@@ -17,5 +17,8 @@
     <mapper resource="com/miniframe/model/es/xml/EsDataMapper.xml" />
     <mapper resource="com/miniframe/model/es/xml/EsDataAttMapper.xml" />
     <mapper resource="com/miniframe/model/es/xml/EsProComAttDataMapper.xml" />
+    <mapper resource="com/miniframe/model/es/xml/EsProJobMapper.xml" />
+    <mapper resource="com/miniframe/model/es/xml/EsProResultKeyMapper.xml" />
+    <mapper resource="com/miniframe/model/es/xml/EsProResultValueMapper.xml" />
   </mappers>
 </configuration>

+ 1 - 1
modelsrc/com/miniframe/model/system/dbconfig/MapperConfig-system.xml

@@ -5,7 +5,7 @@
     This file is generated by MyBatis Generator.
     This file is the shell of a Mapper Config file - in many cases you will need to add
       to this file before it is usable by MyBatis.
-    This file was generated on Fri May 30 15:01:22 CST 2025.
+    This file was generated on Thu Jun 12 11:44:22 CST 2025.
   -->
   <mappers>
     <mapper resource="com/miniframe/model/system/xml/SysAppcodeMapper.xml" />

+ 85 - 5
src/main/java/com/miniframe/bisiness/es/ES0013Service.java

@@ -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;
+	}
+
 	/**
 	 * 无锡发动机,“项目求解”业务前处理
  	 */

+ 24 - 0
src/main/java/com/miniframe/mappers/es/dao/EsMapper.java

@@ -2,9 +2,11 @@ package com.miniframe.mappers.es.dao;
 
 import com.miniframe.mappers.es.model.ProComAttDto;
 import com.miniframe.model.es.EsDataAtt;
+import com.miniframe.model.es.EsProCom;
 import com.miniframe.model.system.SysUser;
 import com.miniframe.system.MiniserviceBaseDao;
 import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
@@ -58,6 +60,28 @@ public interface EsMapper extends MiniserviceBaseDao {
     @Select("select max(ser) from es_pro_job where pid =#{pid}")
     Integer getProJobSer(String pid);
 
+    /**
+     * 返回结构化DTO对象列表
+     * @param pid 产品ID
+     * @return 组件信息DTO列表
+     */
+    @Select("SELECT a.pc_id as pcId," +
+            "a.com_id as comId," +
+            "a.uid as uid," +
+            "a.remark as remark," +
+            "a.create_time as createTime," +
+            "a.update_time as updateTime," +
+            "a.pid as pid," +
+            "a.ser as ser," +
+            "a.id_code as idCode " +
+            "FROM es_pro_com a " +
+            "WHERE pid = #{pid} " +
+            "AND com_id != '-1'")
+            //"WHERE pid = #{pid} " +
+            //"  AND com_id != \"-1\"")
+    List<EsProCom> selectEsProComListByPid(@Param("pid") String pid);
+
+
     /**
      *  项目组件属性值数据
      * @param pcId

+ 4 - 1
系统设计/实体Bean/es(实体列表).csv

@@ -7,4 +7,7 @@
 6,ES_PRO_COM_CON,项目组件链接表,FALSE,
 7,ES_DATA,数据配置表,FALSE,
 8,ES_DATA_ATT,数据属性值配置表,FALSE,
-9,ES_PRO_COM_ATT_DATA,项目组件属性值数据表,FALSE,
+9,ES_PRO_COM_ATT_DATA,项目组件属性值数据表,FALSE,
+10,ES_PRO_JOB,项目任务表,FALSE,
+11,ES_PRO_RESULT_KEY,项目组件结果键表,FALSE,
+12,ES_PRO_RESULT_VALUE,项目组件结果值表,FLASE,