123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- package com.miniframe.bisiness.system;
- import com.fasterxml.jackson.core.JsonProcessingException;
- import com.miniframe.core.ExecProcessFlow;
- import com.miniframe.core.exception.BusinessException;
- import com.miniframe.core.ext.UtilTools;
- import com.miniframe.generate.business.system.model.C00003BaseModel;
- import com.miniframe.model.system.AdiSolver;
- import com.miniframe.model.system.AdiSolverConfig;
- import com.miniframe.model.system.AdiSolverConfigSQLBuilder;
- import com.miniframe.model.system.AdiSolverSQLBuilder;
- import com.miniframe.model.system.dao.AdiSolverConfigMapper;
- import com.miniframe.model.system.dao.AdiSolverMapper;
- import com.miniframe.solverconfig.SolverParam;
- import com.miniframe.solverconfig.fem.FEMParam;
- import com.miniframe.solverconfig.hcfd.HcfdParam;
- import com.miniframe.tools.XIDateTimeUtils;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- /**
- * 基础系统,“项目求解查询”逻辑处理(重新生成不覆盖)。
- */
- public class C00003Service extends C00003BaseModel implements ExecProcessFlow {
-
- private static final long serialVersionUID = -7051358269847459502L;
-
- /**
- * 基础系统,“项目求解查询”业务核心处理
- */
- public void transExecute() throws Exception {
- String pid =getA_c00003().getPid();
- String uid =getA_systemhead().getUserId();
- String company =getA_c00003().getCompany();
- String solverModel =getA_c00003().getSolverModel();
- AdiSolverMapper solverMapper = UtilTools.getBean(AdiSolverMapper.class);
- AdiSolverSQLBuilder solversb= new AdiSolverSQLBuilder();
- AdiSolverSQLBuilder.Criteria solversc = solversb.createCriteria();
- solversc.andPidEqualTo(pid);
- solversc.andCompanyEqualTo(company);
- solversc.andSolverModelEqualTo(solverModel);
- List<AdiSolver> solverList =solverMapper.selectByExample(solversb);
- Date now = XIDateTimeUtils.getNowDate();
- AdiSolverConfigMapper configMapper = UtilTools.getBean(AdiSolverConfigMapper.class);
- AdiSolverConfigSQLBuilder configsb = new AdiSolverConfigSQLBuilder();
- AdiSolverConfigSQLBuilder.Criteria configsc = configsb.createCriteria();
- AdiSolver solver;
- AdiSolverConfig solverConfig = null;
- if(solverList.isEmpty()){
- solver = initAdiSolver(pid, uid, company, solverModel, solverMapper, now);
- solverConfig=initSolverConfig(pid, company, solverModel, now, configMapper, solver);
- }else if(solverList.size()==1){
- solver =solverList.get(0);
- configsc.andPidEqualTo(pid);
- configsc.andSolveridEqualTo(solver.getId());
- List<AdiSolverConfig> configList =configMapper.selectByExample(configsb);
- if(configList.isEmpty()){
- initSolverConfig(pid, company, solverModel, now, configMapper, solver);
- }else if(configList.size()==1){
- solverConfig = configList.get(0);
- }else{
- //统一求解多条配置 目前不支持
- throw new BusinessException("EB4000005");
- }
- }else{
- throw new BusinessException("EB4000004");
- }
- getD_c00003().setSolverConfigid(solverConfig.getId());
- getD_c00003().setCompany(company);
- getD_c00003().setParameterObj(solverConfig.getParameterObj());
- getD_c00003().setPid(pid);
- getD_c00003().setSolverid(solver.getId());
- getD_c00003().setSolverModel(solverModel);
- getD_c00003().setName(solverConfig.getName());
- getD_c00003().setState(solverConfig.getState());
- getD_c00003().setSolverNum(solverConfig.getSolverNum().intValue());
- getD_c00003().setSolverStime(XIDateTimeUtils.getStrFromDate(solverConfig.getSolverStime()));
- getD_c00003().setSolverEtime(XIDateTimeUtils.getStrFromDate(solverConfig.getSolverEtime()));
- }
- 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);
- solverConfig.setId(UtilTools.getUUid());
- solverConfig.setSolverid(solver.getId());
- try {
- if(company.equals("ADI.SimWork")&& solverModel.equals("HCFDLab")){
- SolverParam param =new HcfdParam();
- solverConfig.setParameterObj(param.paramJson());
- }
- if(company.equals("ADI.SimWork")&& solverModel.equals("FEMLab(结构力学)")){
- SolverParam param = new FEMParam();
- solverConfig.setParameterObj(param.paramJson());
- }
- }catch (JsonProcessingException e){
- throw new BusinessException("EB4000006");
- }
- solverConfig.setCreateTime(now);
- solverConfig.setUpdateTime(now);
- solverConfig.setName("默认工况1");
- solverConfig.setState(new Short("0"));//未求解
- solverConfig.setSolverNum(0l);//未求解
- configMapper.insert(solverConfig);
- return solverConfig;
- }
- private AdiSolver initAdiSolver(String pid, String uid, String company, String solverModel, AdiSolverMapper solverMapper, Date now) {
- AdiSolver solver;
- solver =new AdiSolver();
- solver.setId(UtilTools.getUUid());
- solver.setPid(pid);
- solver.setCompany(company);
- solver.setSolverModel(solverModel);
- solver.setUid(uid);
- solver.setState(new Short("0"));
- solver.setCreateTime(now);
- solver.setUpdateTime(now);
- solverMapper.insert(solver);
- return solver;
- }
- /**
- * 基础系统,“项目求解查询”业务前处理
- */
- public void preTransFlow() throws Exception {
- this.validater();
- }
-
- /**
- * 基础系统,“项目求解查询”业务后处理
- */
- public void afterTransFlow() throws Exception {
- }
-
- /**
- * 基础系统,“项目求解查询”逻辑入口处理方法
- */
- @SuppressWarnings("rawtypes")
- @Override
- public Map execute(Map vars) throws Exception {
- this.setTransMap(vars);
- preTransFlow();// 执行业务开始的规则检查和校验
- transExecute();// 执行核心业务段
- afterTransFlow();// 执行核心逻辑完成后的收尾逻辑
- return this.getTransMap();
- }
- }
|