C00003Service.java 5.0 KB

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