C00003Service.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package com.miniframe.bisiness.system;
  2. import com.fasterxml.jackson.core.JsonProcessingException;
  3. import com.miniframe.core.ExecProcessFlow;
  4. import com.miniframe.core.exception.BusinessException;
  5. import com.miniframe.core.ext.UtilTools;
  6. import com.miniframe.generate.business.system.model.C00003BaseModel;
  7. import com.miniframe.model.system.AdiSolver;
  8. import com.miniframe.model.system.AdiSolverConfig;
  9. import com.miniframe.model.system.AdiSolverConfigSQLBuilder;
  10. import com.miniframe.model.system.AdiSolverSQLBuilder;
  11. import com.miniframe.model.system.dao.AdiSolverConfigMapper;
  12. import com.miniframe.model.system.dao.AdiSolverMapper;
  13. import com.miniframe.solverconfig.SolverParam;
  14. import com.miniframe.solverconfig.fem.FEMParam;
  15. import com.miniframe.solverconfig.hcfd.HcfdParam;
  16. import com.miniframe.tools.XIDateTimeUtils;
  17. import java.util.Date;
  18. import java.util.List;
  19. import java.util.Map;
  20. /**
  21. * 基础系统,“项目求解查询”逻辑处理(重新生成不覆盖)。
  22. */
  23. public class C00003Service extends C00003BaseModel implements ExecProcessFlow {
  24. private static final long serialVersionUID = -7051358269847459502L;
  25. /**
  26. * 基础系统,“项目求解查询”业务核心处理
  27. */
  28. public void transExecute() throws Exception {
  29. String pid =getA_c00003().getPid();
  30. String uid =getA_systemhead().getUserId();
  31. String company =getA_c00003().getCompany();
  32. String solverModel =getA_c00003().getSolverModel();
  33. AdiSolverMapper solverMapper = UtilTools.getBean(AdiSolverMapper.class);
  34. AdiSolverSQLBuilder solversb= new AdiSolverSQLBuilder();
  35. AdiSolverSQLBuilder.Criteria solversc = solversb.createCriteria();
  36. solversc.andPidEqualTo(pid);
  37. solversc.andCompanyEqualTo(company);
  38. solversc.andSolverModelEqualTo(solverModel);
  39. List<AdiSolver> solverList =solverMapper.selectByExample(solversb);
  40. Date now = XIDateTimeUtils.getNowDate();
  41. AdiSolverConfigMapper configMapper = UtilTools.getBean(AdiSolverConfigMapper.class);
  42. AdiSolverConfigSQLBuilder configsb = new AdiSolverConfigSQLBuilder();
  43. AdiSolverConfigSQLBuilder.Criteria configsc = configsb.createCriteria();
  44. AdiSolver solver;
  45. AdiSolverConfig solverConfig = null;
  46. if(solverList.isEmpty()){
  47. solver = initAdiSolver(pid, uid, company, solverModel, solverMapper, now);
  48. solverConfig=initSolverConfig(pid, company, solverModel, now, configMapper, solver);
  49. }else if(solverList.size()==1){
  50. solver =solverList.get(0);
  51. configsc.andPidEqualTo(pid);
  52. configsc.andSolveridEqualTo(solver.getId());
  53. List<AdiSolverConfig> configList =configMapper.selectByExample(configsb);
  54. if(configList.isEmpty()){
  55. initSolverConfig(pid, company, solverModel, now, configMapper, solver);
  56. }else if(configList.size()==1){
  57. solverConfig = configList.get(0);
  58. }else{
  59. //统一求解多条配置 目前不支持
  60. throw new BusinessException("EB4000005");
  61. }
  62. }else{
  63. throw new BusinessException("EB4000004");
  64. }
  65. getD_c00003().setSolverConfigid(solverConfig.getId());
  66. getD_c00003().setCompany(company);
  67. getD_c00003().setParameterObj(solverConfig.getParameterObj());
  68. getD_c00003().setPid(pid);
  69. getD_c00003().setSolverid(solver.getId());
  70. getD_c00003().setSolverModel(solverModel);
  71. getD_c00003().setName(solverConfig.getName());
  72. getD_c00003().setState(solverConfig.getState());
  73. getD_c00003().setSolverNum(solverConfig.getSolverNum().intValue());
  74. getD_c00003().setSolverStime(XIDateTimeUtils.getStrFromDate(solverConfig.getSolverStime()));
  75. getD_c00003().setSolverEtime(XIDateTimeUtils.getStrFromDate(solverConfig.getSolverEtime()));
  76. }
  77. private AdiSolverConfig initSolverConfig(String pid, String company, String solverModel, Date now, AdiSolverConfigMapper configMapper, AdiSolver solver) throws BusinessException {
  78. AdiSolverConfig solverConfig;
  79. solverConfig =new AdiSolverConfig();
  80. solverConfig.setPid(pid);
  81. solverConfig.setId(UtilTools.getUUid());
  82. solverConfig.setSolverid(solver.getId());
  83. try {
  84. if(company.equals("ADI.SimWork")&& solverModel.equals("HCFDLab")){
  85. SolverParam param =new HcfdParam();
  86. solverConfig.setParameterObj(param.paramJson());
  87. }
  88. if(company.equals("ADI.SimWork")&& solverModel.equals("FEMLab(结构力学)")){
  89. SolverParam param = new FEMParam();
  90. solverConfig.setParameterObj(param.paramJson());
  91. }
  92. }catch (JsonProcessingException e){
  93. throw new BusinessException("EB4000006");
  94. }
  95. solverConfig.setCreateTime(now);
  96. solverConfig.setUpdateTime(now);
  97. solverConfig.setName("默认工况1");
  98. solverConfig.setState(new Short("0"));//未求解
  99. solverConfig.setSolverNum(0l);//未求解
  100. configMapper.insert(solverConfig);
  101. return solverConfig;
  102. }
  103. private AdiSolver initAdiSolver(String pid, String uid, String company, String solverModel, AdiSolverMapper solverMapper, Date now) {
  104. AdiSolver solver;
  105. solver =new AdiSolver();
  106. solver.setId(UtilTools.getUUid());
  107. solver.setPid(pid);
  108. solver.setCompany(company);
  109. solver.setSolverModel(solverModel);
  110. solver.setUid(uid);
  111. solver.setState(new Short("0"));
  112. solver.setCreateTime(now);
  113. solver.setUpdateTime(now);
  114. solverMapper.insert(solver);
  115. return solver;
  116. }
  117. /**
  118. * 基础系统,“项目求解查询”业务前处理
  119. */
  120. public void preTransFlow() throws Exception {
  121. this.validater();
  122. }
  123. /**
  124. * 基础系统,“项目求解查询”业务后处理
  125. */
  126. public void afterTransFlow() throws Exception {
  127. }
  128. /**
  129. * 基础系统,“项目求解查询”逻辑入口处理方法
  130. */
  131. @SuppressWarnings("rawtypes")
  132. @Override
  133. public Map execute(Map vars) throws Exception {
  134. this.setTransMap(vars);
  135. preTransFlow();// 执行业务开始的规则检查和校验
  136. transExecute();// 执行核心业务段
  137. afterTransFlow();// 执行核心逻辑完成后的收尾逻辑
  138. return this.getTransMap();
  139. }
  140. }