FEM001Service.java 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package com.miniframe.bisiness.system;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import java.util.List;
  5. import java.util.Map;
  6. import com.miniframe.constant.MFConstant;
  7. import com.miniframe.core.ExecProcessFlow;
  8. import com.miniframe.core.exception.BusinessException;
  9. import com.miniframe.core.ext.UtilTools;
  10. import com.miniframe.generate.business.system.model.FEM001BaseModel;
  11. import com.miniframe.model.system.AdiModeling;
  12. import com.miniframe.model.system.AdiModelingSQLBuilder;
  13. import com.miniframe.model.system.SysFile;
  14. import com.miniframe.model.system.dao.AdiModelingMapper;
  15. import com.miniframe.model.system.dao.SysFileMapper;
  16. import com.miniframe.solverconfig.fem.VTK;
  17. import com.miniframe.tools.CaeFileUtils;
  18. import com.miniframe.tools.XIFileUtils;
  19. /**
  20. * 基础系统,“bdf文件绑定”逻辑处理(重新生成不覆盖)。
  21. */
  22. public class FEM001Service extends FEM001BaseModel implements ExecProcessFlow {
  23. private static final long serialVersionUID = -7051358269847459502L;
  24. /**
  25. * 基础系统,“bdf文件绑定”业务核心处理
  26. */
  27. public void transExecute() throws Exception {
  28. String pid =this.getA_fem001().getPid();
  29. String gridFileId =this.getA_fem001().getGridFileId();
  30. String usrId =this.getA_systemhead().getUserId();
  31. AdiModelingMapper modelingMapper = UtilTools.getBean(AdiModelingMapper.class);
  32. AdiModelingSQLBuilder sb = new AdiModelingSQLBuilder();
  33. AdiModelingSQLBuilder.Criteria sc =sb.createCriteria();
  34. sc.andPidEqualTo(pid);
  35. List<AdiModeling> modelings =modelingMapper.selectByExample(sb);
  36. SysFileMapper sysFileDAO = UtilTools.getBean(SysFileMapper.class);
  37. if(modelings.isEmpty()){
  38. AdiModeling modeling =new AdiModeling();
  39. modeling.setId(UtilTools.getUUid());
  40. modeling.setPid(pid);
  41. modeling.setFemGridFile(gridFileId);
  42. modeling.setGridFileType("bdf");
  43. modeling.setUid(usrId);
  44. String vtkfileId = bdfToVtk(gridFileId, usrId, sysFileDAO);
  45. modeling.setVtkFile(vtkfileId);
  46. modelingMapper.insert(modeling);
  47. }else{
  48. AdiModeling modeling =modelings.get(0);
  49. if(!gridFileId.equals(modeling.getFemGridFile())) {
  50. CaeFileUtils.deleFile(modeling.getFemGridFile());
  51. }
  52. CaeFileUtils.deleFile(modeling.getVtkFile());
  53. modeling.setFemGridFile(gridFileId);
  54. modeling.setFemGridFileType("bdf");
  55. String vtkfileId = bdfToVtk(gridFileId, usrId, sysFileDAO);
  56. modeling.setVtkFile(vtkfileId);
  57. modelingMapper.updateByPrimaryKey(modeling);
  58. }
  59. }
  60. private String bdfToVtk(String gridFileId, String usrId, SysFileMapper sysFileDAO) throws IOException, BusinessException {
  61. SysFile bdfFile = sysFileDAO.selectByPrimaryKey(gridFileId);
  62. String bdfFilePath = XIFileUtils.getRootPathStr() + MFConstant.separator + bdfFile.getFilepath();
  63. File bfile = new File(bdfFilePath);
  64. String vtkfileId = UtilTools.getUUid();
  65. String vtkfilePath = VTK.CreateVTKFile(bfile, vtkfileId);
  66. CaeFileUtils.saveFile(vtkfileId, vtkfilePath, usrId, "vtk", "");
  67. return vtkfileId;
  68. }
  69. /**
  70. * 基础系统,“bdf文件绑定”业务前处理
  71. */
  72. public void preTransFlow() throws Exception {
  73. this.validater();
  74. }
  75. /**
  76. * 基础系统,“bdf文件绑定”业务后处理
  77. */
  78. public void afterTransFlow() throws Exception {
  79. }
  80. /**
  81. * 基础系统,“bdf文件绑定”逻辑入口处理方法
  82. */
  83. @SuppressWarnings("rawtypes")
  84. @Override
  85. public Map execute(Map vars) throws Exception {
  86. this.setTransMap(vars);
  87. preTransFlow();// 执行业务开始的规则检查和校验
  88. transExecute();// 执行核心业务段
  89. afterTransFlow();// 执行核心逻辑完成后的收尾逻辑
  90. return this.getTransMap();
  91. }
  92. }