|
@@ -0,0 +1,104 @@
|
|
|
+package com.miniframe.bisiness.ac;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+import ac.template.model.gui.ProResultVo;
|
|
|
+import com.miniframe.core.ExecProcessFlow;
|
|
|
+import com.miniframe.core.ext.UtilTools;
|
|
|
+import com.miniframe.generate.business.ac.model.AC00010BaseModel;
|
|
|
+import com.miniframe.generate.comm.ac.D_AC00010_RANKEYS_KEYS_RECODE;
|
|
|
+import com.miniframe.generate.comm.ac.D_AC00010_RANKEYS_RECODE;
|
|
|
+import com.miniframe.mappers.ac.dao.ExtAcMapper;
|
|
|
+import com.miniframe.model.ac.AcProResult;
|
|
|
+import com.miniframe.model.ac.AcProResultSQLBuilder;
|
|
|
+import com.miniframe.model.ac.dao.AcProResultMapper;
|
|
|
+import com.miniframe.tools.XiJsonUtil;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 气动设计系统,“结果曲线查询”逻辑处理(重新生成不覆盖)。
|
|
|
+ */
|
|
|
+public class AC00010Service extends AC00010BaseModel implements ExecProcessFlow {
|
|
|
+
|
|
|
+ private static final long serialVersionUID = -7051358269847459502L;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 气动设计系统,“结果曲线查询”业务核心处理
|
|
|
+ */
|
|
|
+ public void transExecute() throws Exception {
|
|
|
+ String pid = this.getA_ac00010().getPid();
|
|
|
+ Integer type =this.getA_ac00010().getType();
|
|
|
+ ExtAcMapper acdao = UtilTools.getBean(ExtAcMapper.class);
|
|
|
+ List<String> ranktypes = acdao.getProResultRankTypes(pid,type);
|
|
|
+ List<D_AC00010_RANKEYS_RECODE> rows = new ArrayList<>();
|
|
|
+ for (String ranktype:ranktypes) {
|
|
|
+ D_AC00010_RANKEYS_RECODE row = new D_AC00010_RANKEYS_RECODE();
|
|
|
+ row.setRankey(ranktype);
|
|
|
+ List<String> keys = acdao.getProResultKeys(pid,type,ranktype);
|
|
|
+ List <D_AC00010_RANKEYS_KEYS_RECODE> dkeys =new ArrayList<>();
|
|
|
+ for (String key :keys) {
|
|
|
+ D_AC00010_RANKEYS_KEYS_RECODE dkey =new D_AC00010_RANKEYS_KEYS_RECODE();
|
|
|
+ List<ProResultVo> vos = getProResultVos(pid, type, ranktype, key);
|
|
|
+ dkey.setKey(key);
|
|
|
+ dkey.setSvJson(XiJsonUtil.objectToJson(vos));
|
|
|
+ dkeys.add(dkey);
|
|
|
+ }
|
|
|
+ row.setKeys(dkeys);
|
|
|
+ rows.add(row);
|
|
|
+ }
|
|
|
+ this.getD_ac00010().setRankeys(rows);
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<ProResultVo> getProResultVos(String pid, Integer type, String ranktype, String key) {
|
|
|
+ AcProResultMapper acrdao = UtilTools.getBean(AcProResultMapper.class);
|
|
|
+ AcProResultSQLBuilder acrsb = new AcProResultSQLBuilder();
|
|
|
+ AcProResultSQLBuilder.Criteria acrsc = acrsb.createCriteria();
|
|
|
+ acrsc.andPidEqualTo(pid);
|
|
|
+ acrsc.andRankTypeEqualTo(ranktype);
|
|
|
+ acrsc.andAstTypeEqualTo(type);
|
|
|
+ acrsc.andKeyEqualTo(key);
|
|
|
+ acrsb.setOrderByClause("step asc");
|
|
|
+ List<AcProResult> prs = acrdao.selectByExample(acrsb);
|
|
|
+ List<ProResultVo> vos = new ArrayList<>();
|
|
|
+ for (AcProResult pr:prs ) {
|
|
|
+ String[] vls = pr.getValue().split(",");
|
|
|
+ for (int i = 0; i < vls.length; i++) {
|
|
|
+ ProResultVo vo = new ProResultVo();
|
|
|
+ vo.setKey(key +i);
|
|
|
+ vo.setStep(pr.getStep());
|
|
|
+ vo.setValue(Double.valueOf(vls[i].trim()));
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return vos;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 气动设计系统,“结果曲线查询”业务前处理
|
|
|
+ */
|
|
|
+ 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();
|
|
|
+ }
|
|
|
+
|
|
|
+}
|