C00003Service.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  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,
  78. String solverModel, Date now,
  79. AdiSolverConfigMapper configMapper,
  80. AdiSolver solver) throws BusinessException {
  81. AdiSolverConfig solverConfig;
  82. solverConfig =new AdiSolverConfig();
  83. solverConfig.setPid(pid);
  84. solverConfig.setId(UtilTools.getUUid());
  85. solverConfig.setSolverid(solver.getId());
  86. try {
  87. if(company.equals("ADI.SimWork")&& solverModel.equals("HCFDLab")){
  88. SolverParam param =new HcfdParam();
  89. solverConfig.setParameterObj(param.paramJson());
  90. }
  91. if(company.equals("ADI.SimWork")&& solverModel.equals("FEMLab(结构力学)")){
  92. SolverParam param = new FEMParam();
  93. solverConfig.setParameterObj(param.paramJson());
  94. }
  95. }catch (JsonProcessingException e){
  96. throw new BusinessException("EB4000006");
  97. }
  98. solverConfig.setCreateTime(now);
  99. solverConfig.setUpdateTime(now);
  100. solverConfig.setName("默认工况1");
  101. solverConfig.setState(new Short("0"));//未求解
  102. solverConfig.setSolverNum(0l);//未求解
  103. configMapper.insert(solverConfig);
  104. return solverConfig;
  105. }
  106. private AdiSolver initAdiSolver(String pid, String uid, String company, String solverModel, AdiSolverMapper solverMapper, Date now) {
  107. AdiSolver solver;
  108. solver =new AdiSolver();
  109. solver.setId(UtilTools.getUUid());
  110. solver.setPid(pid);
  111. solver.setCompany(company);
  112. solver.setSolverModel(solverModel);
  113. solver.setUid(uid);
  114. solver.setState(new Short("0"));
  115. solver.setCreateTime(now);
  116. solver.setUpdateTime(now);
  117. solverMapper.insert(solver);
  118. return solver;
  119. }
  120. /**
  121. * 基础系统,“项目求解查询”业务前处理
  122. */
  123. public void preTransFlow() throws Exception {
  124. this.validater();
  125. }
  126. /**
  127. * 基础系统,“项目求解查询”业务后处理
  128. */
  129. public void afterTransFlow() throws Exception {
  130. }
  131. /**
  132. * 基础系统,“项目求解查询”逻辑入口处理方法
  133. */
  134. @SuppressWarnings("rawtypes")
  135. @Override
  136. public Map execute(Map vars) throws Exception {
  137. this.setTransMap(vars);
  138. preTransFlow();// 执行业务开始的规则检查和校验
  139. transExecute();// 执行核心业务段
  140. afterTransFlow();// 执行核心逻辑完成后的收尾逻辑
  141. return this.getTransMap();
  142. }
  143. }