소스 검색

文件数据关联

hxx 2 년 전
부모
커밋
d236b37d17

+ 2 - 0
dbscript/init/generate/03-functionInit.sql

@@ -31,4 +31,6 @@ INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('C0
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('C00006', '基础系统','项目求解日志',true);
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('C00007', '基础系统','项目求解每步数据',true);
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('C00008', '基础系统','求解任务状态更新',true);
+INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('D00001', '基础系统','HCFDUgrid绑定',true);
+INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('D00002', '基础系统','HCFDMapbc绑定',true);
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('AFT001', '基础系统','后处理消息发送',true);

+ 1 - 0
definitionsrc/returncode/returncode-business.properties

@@ -85,3 +85,4 @@ EB4000007 = \u914D\u7F6EID\u672A\u67E5\u5230\u914D\u7F6E\u5DE5\u51B5\u6570\u636E
 EB4000008 = \u914D\u7F6EID\u672A\u67E5\u5230\u9879\u76EE\u6570\u636E\uFF01
 EB4000009 = \u914D\u7F6EID\u672A\u67E5\u5230solver\u6570\u636E\uFF01
 EB4000010 = \u65E0\u51E0\u4F55\u6570\u636E\uFF01
+EB4000011 = \u914D\u7F6EID\u9519\u8BEF\uFF01

+ 1 - 0
definitionsrc/returncode/returncode-business_zh_CN.properties

@@ -85,3 +85,4 @@ EB4000007 = \u914D\u7F6EID\u672A\u67E5\u5230\u914D\u7F6E\u5DE5\u51B5\u6570\u636E
 EB4000008 = \u914D\u7F6EID\u672A\u67E5\u5230\u9879\u76EE\u6570\u636E\uFF01
 EB4000009 = \u914D\u7F6EID\u672A\u67E5\u5230solver\u6570\u636E\uFF01
 EB4000010 = \u65E0\u51E0\u4F55\u6570\u636E\uFF01
+EB4000011 = \u914D\u7F6EID\u9519\u8BEF\uFF01

+ 24 - 0
modelsrc/com/miniframe/model/system/AdiModeling.java

@@ -46,6 +46,12 @@ public class AdiModeling extends MiniserviceBaseModel implements Serializable {
     @Column(name = "grid_file")
     private String gridFile;
 
+    /**
+     * 文件类型
+     */
+    @Column(name = "grid_file_type")
+    private String gridFileType;
+
     private static final long serialVersionUID = 1L;
 
     /**
@@ -173,4 +179,22 @@ public class AdiModeling extends MiniserviceBaseModel implements Serializable {
     public void setGridFile(String gridFile) {
         this.gridFile = gridFile == null ? null : gridFile.trim();
     }
+
+    /**
+     * 获取文件类型
+     *
+     * @return grid_file_type - 文件类型
+     */
+    public String getGridFileType() {
+        return gridFileType;
+    }
+
+    /**
+     * 设置文件类型
+     *
+     * @param gridFileType 文件类型
+     */
+    public void setGridFileType(String gridFileType) {
+        this.gridFileType = gridFileType == null ? null : gridFileType.trim();
+    }
 }

+ 70 - 0
modelsrc/com/miniframe/model/system/AdiModelingSQLBuilder.java

@@ -593,6 +593,76 @@ public class AdiModelingSQLBuilder {
             addCriterion("grid_file not between", value1, value2, "gridFile");
             return (Criteria) this;
         }
+
+        public Criteria andGridFileTypeIsNull() {
+            addCriterion("grid_file_type is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andGridFileTypeIsNotNull() {
+            addCriterion("grid_file_type is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andGridFileTypeEqualTo(String value) {
+            addCriterion("grid_file_type =", value, "gridFileType");
+            return (Criteria) this;
+        }
+
+        public Criteria andGridFileTypeNotEqualTo(String value) {
+            addCriterion("grid_file_type <>", value, "gridFileType");
+            return (Criteria) this;
+        }
+
+        public Criteria andGridFileTypeGreaterThan(String value) {
+            addCriterion("grid_file_type >", value, "gridFileType");
+            return (Criteria) this;
+        }
+
+        public Criteria andGridFileTypeGreaterThanOrEqualTo(String value) {
+            addCriterion("grid_file_type >=", value, "gridFileType");
+            return (Criteria) this;
+        }
+
+        public Criteria andGridFileTypeLessThan(String value) {
+            addCriterion("grid_file_type <", value, "gridFileType");
+            return (Criteria) this;
+        }
+
+        public Criteria andGridFileTypeLessThanOrEqualTo(String value) {
+            addCriterion("grid_file_type <=", value, "gridFileType");
+            return (Criteria) this;
+        }
+
+        public Criteria andGridFileTypeLike(String value) {
+            addCriterion("grid_file_type like", value, "gridFileType");
+            return (Criteria) this;
+        }
+
+        public Criteria andGridFileTypeNotLike(String value) {
+            addCriterion("grid_file_type not like", value, "gridFileType");
+            return (Criteria) this;
+        }
+
+        public Criteria andGridFileTypeIn(List<String> values) {
+            addCriterion("grid_file_type in", values, "gridFileType");
+            return (Criteria) this;
+        }
+
+        public Criteria andGridFileTypeNotIn(List<String> values) {
+            addCriterion("grid_file_type not in", values, "gridFileType");
+            return (Criteria) this;
+        }
+
+        public Criteria andGridFileTypeBetween(String value1, String value2) {
+            addCriterion("grid_file_type between", value1, value2, "gridFileType");
+            return (Criteria) this;
+        }
+
+        public Criteria andGridFileTypeNotBetween(String value1, String value2) {
+            addCriterion("grid_file_type not between", value1, value2, "gridFileType");
+            return (Criteria) this;
+        }
     }
 
     public static class Criteria extends GeneratedCriteria {

+ 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 Oct 21 11:58:04 CST 2022.
+    This file was generated on Tue Apr 11 13:40:39 CST 2023.
   -->
   <mappers>
     <mapper resource="com/miniframe/model/system/xml/SysAppcodeMapper.xml" />

+ 14 - 15
src/main/java/com/miniframe/bisiness/system/B00029Service.java

@@ -1,5 +1,17 @@
 package com.miniframe.bisiness.system;
 
+import com.miniframe.constant.MFConstant;
+import com.miniframe.core.ExecProcessFlow;
+import com.miniframe.core.exception.BusinessException;
+import com.miniframe.core.ext.UtilTools;
+import com.miniframe.generate.business.system.model.B00029BaseModel;
+import com.miniframe.model.system.SysFile;
+import com.miniframe.model.system.SysFileSQLBuilder;
+import com.miniframe.model.system.dao.SysFileMapper;
+import com.miniframe.solverconfig.hcfd.HcfdParam;
+import com.miniframe.solverconfig.hcfd.NmlParam;
+import com.miniframe.tools.XIFileUtils;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
@@ -8,22 +20,10 @@ import java.math.BigDecimal;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import com.miniframe.constant.MFConstant;
-import com.miniframe.core.ExecProcessFlow;
-import com.miniframe.core.exception.BusinessException;
-import com.miniframe.core.ext.UtilTools;
-import com.miniframe.generate.appcode.UserState;
-import com.miniframe.generate.business.system.model.B00029BaseModel;
-import com.miniframe.model.system.SysFile;
-import com.miniframe.model.system.SysFileSQLBuilder;
-import com.miniframe.model.system.SysUser;
-import com.miniframe.model.system.SysUserSQLBuilder;
-import com.miniframe.model.system.dao.SysFileMapper;
-import com.miniframe.tools.XIFileUtils;
-
 /**
  * 基础系统,“文件分片合并”逻辑处理(重新生成不覆盖)。
  */
@@ -54,8 +54,6 @@ public class B00029Service extends B00029BaseModel implements ExecProcessFlow {
 			throw new BusinessException("EB4000003");
 		}
 		merge(bfile, sonFiles);
-
-
 		for (SysFile tmp:sonFiles) {
 			File file =new File(XIFileUtils.getRootPathStr()+ MFConstant.separator+tmp.getFilepath());
 			file.delete();
@@ -67,6 +65,7 @@ public class B00029Service extends B00029BaseModel implements ExecProcessFlow {
 		sysFileDAO.updateByPrimaryKey(bfile);
 	}
 
+
 	private void merge(SysFile bfile, List<SysFile> sonFiles) throws BusinessException, IOException {
 		FileOutputStream outputStream = null;
 		FileInputStream fileInputStream = null; //分片文件

+ 4 - 1
src/main/java/com/miniframe/bisiness/system/C00003Service.java

@@ -80,7 +80,10 @@ public class C00003Service extends C00003BaseModel implements ExecProcessFlow {
 		getD_c00003().setSolverEtime(XIDateTimeUtils.getStrFromDate(solverConfig.getSolverEtime()));
 	}
 
-	private AdiSolverConfig initSolverConfig(String pid, String company, String solverModel, Date now, AdiSolverConfigMapper configMapper, AdiSolver solver) throws BusinessException {
+	private AdiSolverConfig initSolverConfig(String pid, String company,
+											 String solverModel, Date now,
+											 AdiSolverConfigMapper configMapper,
+											 AdiSolver solver) throws BusinessException {
 		AdiSolverConfig solverConfig;
 		solverConfig =new AdiSolverConfig();
 		solverConfig.setPid(pid);

+ 67 - 4
src/main/java/com/miniframe/tools/CaeFileUtils.java

@@ -5,17 +5,18 @@ import com.miniframe.core.exception.BusinessException;
 import com.miniframe.core.ext.UtilTools;
 import com.miniframe.model.system.SysFile;
 import com.miniframe.model.system.dao.SysFileMapper;
+import com.miniframe.solverconfig.hcfd.HcfdBoundary;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.thymeleaf.util.DateUtils;
 
+import java.io.BufferedReader;
 import java.io.File;
+import java.io.FileReader;
 import java.io.IOException;
-import java.math.BigDecimal;
-import java.net.BindException;
-import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 大文件上传
@@ -105,4 +106,66 @@ public class CaeFileUtils {
         sysFile.setNeedop("1");//未合并
         sysFileDAO.insertSelective(sysFile);
     }
+
+    /**
+     * 以行为单位读取文件,常用于读面向行的格式化文件
+     */
+    public static ArrayList<String> readFileByLines(String fileName) {
+        File file = new File(fileName);
+        ArrayList<String> fileStr = new ArrayList<String>();
+        BufferedReader reader = null;
+        try {
+            reader = new BufferedReader(new FileReader(file));
+            String tempString = null;
+            while ((tempString = reader.readLine()) != null) {
+                fileStr.add(tempString);
+            }
+            reader.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            if (reader != null) {
+                try {
+                    reader.close();
+                } catch (IOException e1) {
+                }
+            }
+        }
+        return fileStr;
+    }
+    /**
+     * mpbc line 数据封装
+     * @param mapbcStr
+     * @return
+     */
+    public static List<HcfdBoundary> readMapbcBoundary(ArrayList<String> mapbcStr){
+        List<HcfdBoundary> hcfdBoundarys = new ArrayList<HcfdBoundary>();
+        if(!mapbcStr.isEmpty()){
+            for (int i = 1; i < mapbcStr.size(); i++) {
+                String line =CaeFileUtils.stringLessDouble(mapbcStr.get(i)).trim();
+                if(line.length()>0){
+                    String[] eles =line.split(" ");
+                    HcfdBoundary hcfdBoundary =new HcfdBoundary();
+                    hcfdBoundary.setId(Integer.valueOf(eles[0]));
+                    hcfdBoundary.setConditionsCode(Integer.valueOf(eles[1]));
+                    hcfdBoundary.setName(eles[2]);
+                    hcfdBoundarys.add(hcfdBoundary);
+                }
+            }
+        }
+        return hcfdBoundarys;
+    }
+
+    /**
+     * 替换双空格
+     * @param line
+     * @return
+     */
+    public static String stringLessDouble(String line){
+        line =line.trim();
+        while (line.indexOf("  ")>0){
+            line = line.replace("  "," ");
+        }
+        return line;
+    }
 }

+ 1 - 1
src/main/java/com/miniframe/tools/XIFileUtils.java

@@ -32,7 +32,7 @@ import java.util.stream.Collectors;
 public class XIFileUtils {
     private static Logger logger = LoggerFactory.getLogger(XIFileUtils.class);
 
-    private final static String fileRootPathStr = "/opt/files";
+    private final static String fileRootPathStr = "/cephfs";
 
     static {
 

+ 1 - 2
系统设计/数据定义/返 回 码/business(业务系统).csv

@@ -97,6 +97,5 @@
 4000008,EB4000008,配置ID未查到项目数据!
 4000009,EB4000009,配置ID未查到solver数据!
 4000010,EB4000010,无几何数据!
-
-
+4000011,EB4000011,配置ID错误!
 

+ 3 - 0
系统设计/系统模块/SYSTEM(基础系统).csv

@@ -31,4 +31,7 @@
 300007,C00007,项目求解每步数据,service,,
 300008,C00008,求解任务状态更新,service,,
 
+400001,D00001,HCFDUgrid绑定,service,,
+400002,D00002,HCFDMapbc绑定,service,,
+
 400008,AFT001,后处理消息发送,service,,

+ 4 - 0
系统设计/通信设计/通讯报文/system(系统服务)/报文体/D00001_A(HCFDUgrid绑定).csv

@@ -0,0 +1,4 @@
+序号,英文名称,中文名称,数据类型,默认值,格式化,非空/引用,最小(长度/值),最大(长度/值),验证规则,标准数据ID,XML样式,TAG标签,映射/子标签,CDATA
+1,pid,项目ID,string,,,是,,,,,,,,
+2,gridFileId,上传文件ID,string,,,是,,,,,,,,
+3,gridFileType,上传文件类型(Binary ASCII),string,,,是,,,,,,,,

+ 1 - 0
系统设计/通信设计/通讯报文/system(系统服务)/报文体/D00001_D(HCFDUgrid绑定).csv

@@ -0,0 +1 @@
+序号,英文名称,中文名称,数据类型,默认值,格式化,非空/引用,最小(长度/值),最大(长度/值),验证规则,标准数据ID,XML样式,TAG标签,映射/子标签,CDATA

+ 3 - 0
系统设计/通信设计/通讯报文/system(系统服务)/报文体/D00002_A(HCFDMapbc绑定).csv

@@ -0,0 +1,3 @@
+序号,英文名称,中文名称,数据类型,默认值,格式化,非空/引用,最小(长度/值),最大(长度/值),验证规则,标准数据ID,XML样式,TAG标签,映射/子标签,CDATA
+1,solverConfigId,求解配置Id,string,,,是,,,,,,,,
+2,mapbcFileId,边界文件ID,string,,,是,,,,,,,,

+ 2 - 0
系统设计/通信设计/通讯报文/system(系统服务)/报文体/D00002_D(HCFDMapbc绑定).csv

@@ -0,0 +1,2 @@
+序号,英文名称,中文名称,数据类型,默认值,格式化,非空/引用,最小(长度/值),最大(长度/值),验证规则,标准数据ID,XML样式,TAG标签,映射/子标签,CDATA
+1,solverConfigId,求解配置Id,string,,,是,,,,,,,,