TemplateServer.java 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package es.template;
  2. import com.miniframe.core.ext.UtilTools;
  3. import com.miniframe.mappers.es.dao.EsMapper;
  4. import com.miniframe.mappers.es.model.ProComAttDto;
  5. import com.miniframe.model.es.*;
  6. import com.miniframe.model.es.dao.*;
  7. import es.template.pipenet.Component;
  8. import es.template.pipenet.ComponetData;
  9. import es.template.pipenet.Node;
  10. import es.template.pipenet.Simulations;
  11. import tk.mybatis.mapper.entity.Example;
  12. import javax.rmi.CORBA.Util;
  13. import java.math.BigDecimal;
  14. import java.util.ArrayList;
  15. import java.util.List;
  16. import java.util.Objects;
  17. public class TemplateServer {
  18. public static List<Node> findNodes(String pid ){
  19. List<Node> nodes = new ArrayList<>();
  20. EsProComMapper cdao = UtilTools.getBean(EsProComMapper.class);
  21. EsProComSQLBuilder csb = new EsProComSQLBuilder();
  22. EsProComSQLBuilder.Criteria csc = csb.createCriteria();
  23. csc.andPidEqualTo(pid);
  24. csc.andComIdEqualTo("3");//节点
  25. csb.setOrderByClause("ser asc");
  26. List<EsProCom> cs =cdao.selectByExample(csb);
  27. for (EsProCom c:cs) {
  28. Node n =new Node();
  29. n.setNode(c);
  30. EsMapper esdao = UtilTools.getBean(EsMapper.class);
  31. List<ProComAttDto> atts = esdao.selectPrComAttList(c.getPcId());
  32. n.setAtts(atts);
  33. nodes.add(n);
  34. }
  35. return nodes;
  36. }
  37. public static List<Component> findComs(String pid ){
  38. List<Component> coms = new ArrayList<>();
  39. EsMapper esdao = UtilTools.getBean(EsMapper.class);
  40. EsProComMapper cdao = UtilTools.getBean(EsProComMapper.class);
  41. EsProComSQLBuilder csb = new EsProComSQLBuilder();
  42. EsProComSQLBuilder.Criteria csc = csb.createCriteria();
  43. csc.andPidEqualTo(pid);
  44. csc.andComIdNotEqualTo("3");//非节点
  45. csc.andComIdNotEqualTo("-1");//非模拟数据
  46. csb.setOrderByClause("ser asc");
  47. List<EsProCom> cs =cdao.selectByExample(csb);
  48. for (EsProCom c:cs) {
  49. EsComMapper comdao =UtilTools.getBean(EsComMapper.class);
  50. EsCom cm= comdao.selectByPrimaryKey(c.getComId());
  51. Component com = new Component();
  52. com.setCom(cm);
  53. com.setPcom(c);
  54. //获取非下拉值数据
  55. List<ProComAttDto> atts =esdao.selectPrComAttListNoData(c.getPcId());
  56. com.setAtts((atts));
  57. //获取下拉值数据
  58. List<ComponetData> datas = new ArrayList<>();
  59. List<String> cdIds = esdao.selectAttDataCdIds(c.getPcId());
  60. for (String cdId:cdIds) {
  61. EsDataMapper ddao = UtilTools.getBean(EsDataMapper.class);
  62. EsData d = ddao.selectByPrimaryKey(cdId);
  63. List<ProComAttDto> datts =esdao.selectPrComAttDataList(c.getPcId(),cdId);
  64. ComponetData data = new ComponetData();
  65. data.setCode(d.getCode());
  66. data.setAtts((datts));
  67. datas.add(data);
  68. }
  69. com.setDatas(datas);
  70. //获取链接数据
  71. List<String> nIds =esdao.selectComconNodeIdcodeSer(c.getPcId());
  72. com.setNodeIds(nIds);
  73. coms.add(com);
  74. }
  75. return coms;
  76. }
  77. /**
  78. * 获取模拟数据
  79. * @param pid
  80. * @return
  81. */
  82. public static Simulations findSimulations(String pid ){
  83. Simulations sim =new Simulations();
  84. EsMapper esdao = UtilTools.getBean(EsMapper.class);
  85. List<ProComAttDto> comatt = esdao.selectSimulationsPrComAttDataList(pid);
  86. sim.setType( comatt.get(0).getValue());//仿真类型
  87. comatt.remove(0);
  88. sim.setAtts((comatt));
  89. return sim;
  90. }
  91. /**
  92. * 转换单位
  93. * @param proComAttDtoList
  94. * @return
  95. */
  96. public static List<ProComAttDto> conversionUnit(List<ProComAttDto> proComAttDtoList){
  97. for(ProComAttDto proComAttDto:proComAttDtoList){
  98. if(proComAttDto.getUnitType() == null || proComAttDto.getUnitType().equals("无")|| proComAttDto.getUnitType().isEmpty()){
  99. continue;
  100. }
  101. String unit = proComAttDto.getUnit();
  102. String str = "无";
  103. if(unit == null) continue;
  104. if((!unit.isEmpty())&&(!str.equals(unit))){
  105. //查询目前单位在es_unit表的记录
  106. EsUnitMapper esmapper = UtilTools.getBean(EsUnitMapper.class);
  107. EsUnitSQLBuilder sqlbuilder = new EsUnitSQLBuilder();
  108. EsUnitSQLBuilder.Criteria criteria = sqlbuilder.createCriteria();
  109. criteria.andGutIdEqualTo(proComAttDto.getUnitType());//在es_unit表中查找gutid = unit_type
  110. criteria.andValueEqualTo(proComAttDto.getUnit());
  111. EsUnit esUnit = esmapper.selectOneByExample(sqlbuilder);
  112. //查询factor为1的单位在es_unit表中的记录
  113. Example example = new Example(EsUnit.class);
  114. example.createCriteria()
  115. .andEqualTo("gutId", proComAttDto.getUnitType())
  116. .andEqualTo("factor", new BigDecimal(1));
  117. List<EsUnit> esUnitList = esmapper.selectByExample(example);
  118. /*EsUnitSQLBuilder sqlbuilder_standardUnit = new EsUnitSQLBuilder();
  119. EsUnitSQLBuilder.Criteria criteria1 = sqlbuilder_standardUnit.createCriteria();
  120. criteria1.andGutIdEqualTo(proComAttDto.getUnitType());
  121. criteria1.andFactorEqualTo(new BigDecimal(1));
  122. //EsUnit esUnit_standardUnit = esmapper.selectOneByExample(sqlbuilder_standardUnit);
  123. List<EsUnit> esUnitList = esmapper.selectByExample(criteria1);*/
  124. EsUnit esUnit_standardUnit = esUnitList.get(0);
  125. if(Objects.equals(esUnit.getFactor(), new BigDecimal(1))){//factor为1时不变
  126. continue;
  127. }else if(proComAttDto.getValue().isEmpty()) {
  128. continue;
  129. } else if (proComAttDto.getValue()==null) {
  130. continue;
  131. } else{//计算value值
  132. double value = Double.parseDouble(proComAttDto.getValue());
  133. double factor = esUnit.getFactor().doubleValue();
  134. double offset = esUnit.getUtOffset().doubleValue();
  135. double conversionValue = value / factor + offset;
  136. proComAttDto.setValue(String.valueOf(conversionValue));
  137. proComAttDto.setUnit(esUnit_standardUnit.getValue());
  138. }
  139. }
  140. }
  141. return proComAttDtoList;
  142. }
  143. }