Browse Source

adflow 气弹模版

huangxingxing 3 months ago
parent
commit
ae63165f89

+ 43 - 0
modelsrc/com/miniframe/model/mdo/dao/MdoMapper.java

@@ -2,11 +2,54 @@ package com.miniframe.model.mdo.dao;
 
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
 import org.apache.poi.ss.formula.functions.T;
 
 import java.util.List;
 
 public interface MdoMapper extends Mapper {
+    /**
+     * 模版复制 修改 mdo_pro_inout_para fatherid
+     */
+    @Update("update mdo_pro_inout_para set fatherid=#{ncomId}   where pid =#{pid} and fatherid=#{ocomId} ")
+    void updateInOutFatherId(String pid,String ocomId,String ncomId);
+
+    /**
+     * 模版复制 修改 mdo_pro_inout_para fcomid
+     */
+    @Update("update mdo_pro_inout_para set fcomid=#{ncomId}  where pid =#{pid} and fcomid=#{ocomId} ")
+    void updateInOutFcomId(String pid,String ocomId,String ncomId);
+
+    /**
+     * 模版复制 修改 mdo_project_variate comid
+     */
+    @Update("update mdo_project_variate set comid=#{ncomId}  where pid =#{pid} and comid=#{ocomId} ")
+    void updateVarComId(String pid,String ocomId,String ncomId);
+
+    /**
+     * 模版复制 修改 mdo_project_objfun comid
+     */
+    @Update("update mdo_project_objfun set comid=#{ncomId}  where pid =#{pid} and comid=#{ocomId} ")
+    void updateObjComId(String pid,String ocomId,String ncomId);
+
+    /**
+     * 模版复制 修改 mdo_project_constraint comid
+     */
+    @Update("update mdo_project_constraint set comid=#{ncomId}  where pid =#{pid} and comid=#{ocomId} ")
+    void updateConComId(String pid,String ocomId,String ncomId);
+
+    /**
+     * 模版复制 修改 mdo_project_objfun paraId
+     */
+    @Update("update mdo_project_objfun set paraid=#{nparaId}  where pid =#{pid} and paraid=#{oparaId} ")
+    void updateObjParaId(String pid,String oparaId,String nparaId);
+
+    /**
+     * 模版复制 修改 mdo_project_constraint paraId
+     */
+    @Update("update mdo_project_constraint set paraid=#{nparaId}  where pid =#{pid} and paraid=#{oparaId} ")
+    void updateConParaId(String pid,String oparaId,String nparaId);
+
     /**
      *  fsi 输入参数查询 FFD,TACS,ADFLOW
      * @param pid

+ 150 - 40
src/main/java/com/miniframe/mdo/service/ModService.java

@@ -4,94 +4,204 @@ import com.miniframe.core.ext.UtilTools;
 import com.miniframe.model.mdo.*;
 import com.miniframe.model.mdo.dao.*;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 public class ModService {
 
     public static  void saveNewProByMod(String pid, String mid, Map<String,String> owid_nwidMap){
+        saveEvolutionByMod(pid,mid,owid_nwidMap);
+        saveSurroByMod(pid,mid,owid_nwidMap);
+        saveGradByMod(pid,mid,owid_nwidMap);
+        savePyByMod(pid,mid,owid_nwidMap);
+        Map<String,String> comOldNewIds = new HashMap<>();
+        Map<String,String> cstCIds=  saveCstByMod(pid,mid,owid_nwidMap);
+        Map<String,String> xfoilCIds= saveXfoilByMod(pid,mid,owid_nwidMap);
+        Map<String,String> ffdCIds= saveFFdByMod(pid,mid,owid_nwidMap);
+        Map<String,String> adflowCIds= saveAdflowByMod(pid,mid,owid_nwidMap);
+        Map<String,String> fsiCIds=  saveFsiByMod(pid,mid,owid_nwidMap);
+        Map<String,String> mathCIds=  saveMathFuncByMod(pid,mid,owid_nwidMap);
+        comOldNewIds.putAll(cstCIds);
+        comOldNewIds.putAll(xfoilCIds);
+        comOldNewIds.putAll(ffdCIds);
+        comOldNewIds.putAll(adflowCIds);
+        comOldNewIds.putAll(fsiCIds);
+        comOldNewIds.putAll(mathCIds);
+        Map<String,String> paraONIds = saveParaByMod(pid,mid);
         saveVarByMod(pid,mid);
         saveConByMod(pid,mid);
         saveObjByMod(pid,mid);
+        updateComid(pid,comOldNewIds);
+        updateParaid(pid,paraONIds);
+    }
 
-        saveEvolutionByMod(pid,mid,owid_nwidMap);
-        saveSurroByMod(pid,mid,owid_nwidMap);
-        saveGradByMod(pid,mid,owid_nwidMap);
+    private static void updateParaid(String pid, Map<String, String> paraONIds) {
+        MdoMapper dao = UtilTools.getBean(MdoMapper.class);
+        Set<String> oparaids= paraONIds.keySet();
+        for (String oparaid:oparaids) {
+            dao.updateConParaId(pid,oparaid,paraONIds.get(oparaid));
+            dao.updateObjParaId(pid,oparaid,paraONIds.get(oparaid));
+        }
+    }
 
-        savePyByMod(pid,mid,owid_nwidMap);
-        saveXfoilByMod(pid,mid,owid_nwidMap);
-        saveCstByMod(pid,mid,owid_nwidMap);
+    private static void updateComid(String pid,Map<String, String> comOldNewIds) {
+        MdoMapper dao = UtilTools.getBean(MdoMapper.class);
+        Set<String> oComids = comOldNewIds.keySet();
+        for (String ocomid:oComids) {
+            dao.updateInOutFatherId(pid,ocomid,comOldNewIds.get(ocomid));
+            dao.updateInOutFcomId(pid,ocomid,comOldNewIds.get(ocomid));
+            dao.updateVarComId(pid,ocomid,comOldNewIds.get(ocomid));
+            dao.updateConComId(pid,ocomid,comOldNewIds.get(ocomid));
+            dao.updateObjComId(pid,ocomid,comOldNewIds.get(ocomid));
+        }
+    }
 
-        saveParaByMod(pid,mid);
+    private static Map<String,String> saveMathFuncByMod(String pid, String mid, Map<String, String> owid_nwidMap) {
+        Map<String,String> comOnIds = new HashMap<>();
+        MdoProMathfuncMapper sdo = UtilTools.getBean(MdoProMathfuncMapper.class);
+        MdoProMathfuncSQLBuilder ssb = new MdoProMathfuncSQLBuilder();
+        ssb.createCriteria().andPidEqualTo(mid);
+        List<MdoProMathfunc> sList = sdo.selectByExample(ssb);
+        if(sList!=null && !sList.isEmpty()){
+            for (MdoProMathfunc s :sList) {
+                s.setPid(pid);
+                String oldId = s.getId();
+                s.setId(UtilTools.getUUid());
+                s.setWid(owid_nwidMap.get(s.getWid()));
+                sdo.insert(s);
+                comOnIds.put(oldId,s.getId());
+            }
+        }
+        return comOnIds;
+    }
 
+    private static Map<String,String>  saveFsiByMod(String pid, String mid, Map<String, String> owid_nwidMap) {
+        Map<String,String> comOnIds = new HashMap<>();
+        MdoProFsiMapper sdo = UtilTools.getBean(MdoProFsiMapper.class);
+        MdoProFsiSQLBuilder ssb = new MdoProFsiSQLBuilder();
+        ssb.createCriteria().andPidEqualTo(mid);
+        List<MdoProFsi> sList = sdo.selectByExample(ssb);
+        if(sList!=null && !sList.isEmpty()){
+            for ( MdoProFsi s :sList) {
+                s.setPid(pid);
+                String oldId = s.getId();
+                s.setId(UtilTools.getUUid());
+                s.setWid(owid_nwidMap.get(s.getWid()));
+                sdo.insert(s);
+                comOnIds.put(oldId,s.getId());
+            }
+        }
+        return comOnIds;
     }
-    /**
-     * cst
-     * @param pid
-     * @param mid
-     */
-    public static void saveCstByMod(String pid,String mid,Map<String,String> owid_nwidMap){
-        MdoProCstMapper sdo = UtilTools.getBean(MdoProCstMapper.class);
-        MdoProCstSQLBuilder ssb = new MdoProCstSQLBuilder();
+
+    private static Map<String,String>  saveAdflowByMod(String pid, String mid, Map<String, String> owid_nwidMap) {
+        Map<String,String> comOnIds = new HashMap<>();
+        MdoProAdflowMapper sdo = UtilTools.getBean(MdoProAdflowMapper.class);
+        MdoProAdflowSQLBuilder ssb = new MdoProAdflowSQLBuilder();
         ssb.createCriteria().andPidEqualTo(mid);
-        List<MdoProCst> sList = sdo.selectByExample(ssb);
+        List<MdoProAdflow> sList = sdo.selectByExample(ssb);
         if(sList!=null && !sList.isEmpty()){
-            for (MdoProCst s :sList) {
+            for (MdoProAdflow s :sList) {
                 s.setPid(pid);
+                String oldId = s.getId();
                 s.setId(UtilTools.getUUid());
                 s.setWid(owid_nwidMap.get(s.getWid()));
                 sdo.insert(s);
+                comOnIds.put(oldId,s.getId());
             }
         }
+        return comOnIds;
     }
     /**
-     * inoutpara
+     * xfoil
      * @param pid
      * @param mid
      */
-    public static void saveParaByMod(String pid,String mid){
+    public static Map<String,String>  saveXfoilByMod(String pid,String mid,Map<String,String> owid_nwidMap){
+        Map<String,String> comOnIds = new HashMap<>();
         MdoProXfoilMapper sdo = UtilTools.getBean(MdoProXfoilMapper.class);
         MdoProXfoilSQLBuilder ssb = new MdoProXfoilSQLBuilder();
-        ssb.createCriteria().andPidEqualTo(pid);
+        ssb.createCriteria().andPidEqualTo(mid);
         List<MdoProXfoil> sList = sdo.selectByExample(ssb);
         if(sList!=null && !sList.isEmpty()){
             for (MdoProXfoil s :sList) {
-                MdoProInoutParaMapper indao = UtilTools.getBean(MdoProInoutParaMapper.class);
-                MdoProInoutParaSQLBuilder insb = new MdoProInoutParaSQLBuilder();
-                insb.createCriteria().andPidEqualTo(mid);
-                List<MdoProInoutPara> inList = indao.selectByExample(insb);
-                if(sList!=null && !sList.isEmpty()){
-                    for (MdoProInoutPara in :inList) {
-                        in.setPid(pid);
-                        in.setId(UtilTools.getUUid());
-                        in.setFatherid(s.getId());
-                        indao.insert(in);
-                    }
-                }
+                s.setPid(pid);
+                String oldId = s.getId();
+                s.setId(UtilTools.getUUid());
+                s.setWid(owid_nwidMap.get(s.getWid()));
+                sdo.insert(s);
+                comOnIds.put(oldId,s.getId());
             }
         }
-
-
+        return comOnIds;
     }
+    private static  Map<String,String>  saveFFdByMod(String pid, String mid, Map<String, String> owid_nwidMap) {
+        Map<String,String> comOnIds = new HashMap<>();
+        MdoProFfdMapper sdo = UtilTools.getBean(MdoProFfdMapper.class);
+        MdoProFfdSQLBuilder ssb = new MdoProFfdSQLBuilder();
+        ssb.createCriteria().andPidEqualTo(mid);
+        List< MdoProFfd> sList = sdo.selectByExample(ssb);
+        if(sList!=null && !sList.isEmpty()){
+            for (MdoProFfd s :sList) {
+                s.setPid(pid);
+                String oldId = s.getId();
+                s.setId(UtilTools.getUUid());
+                s.setWid(owid_nwidMap.get(s.getWid()));
+                sdo.insert(s);
+                comOnIds.put(oldId,s.getId());
+            }
+        }
+        return comOnIds;
+    }
+
     /**
-     * xfoil
+     * cst
      * @param pid
      * @param mid
      */
-    public static void saveXfoilByMod(String pid,String mid,Map<String,String> owid_nwidMap){
-        MdoProXfoilMapper sdo = UtilTools.getBean(MdoProXfoilMapper.class);
-        MdoProXfoilSQLBuilder ssb = new MdoProXfoilSQLBuilder();
+    public static  Map<String,String> saveCstByMod(String pid,String mid,Map<String,String> owid_nwidMap){
+        Map<String,String> comOnIds = new HashMap<>();
+        MdoProCstMapper sdo = UtilTools.getBean(MdoProCstMapper.class);
+        MdoProCstSQLBuilder ssb = new MdoProCstSQLBuilder();
         ssb.createCriteria().andPidEqualTo(mid);
-        List<MdoProXfoil> sList = sdo.selectByExample(ssb);
+        List<MdoProCst> sList = sdo.selectByExample(ssb);
         if(sList!=null && !sList.isEmpty()){
-            for (MdoProXfoil s :sList) {
+            for (MdoProCst s :sList) {
                 s.setPid(pid);
+                String oldId = s.getId();
                 s.setId(UtilTools.getUUid());
                 s.setWid(owid_nwidMap.get(s.getWid()));
                 sdo.insert(s);
+                comOnIds.put(oldId,s.getId());
+            }
+        }
+        return comOnIds;
+    }
+    /**
+     * inoutpara
+     * @param pid
+     * @param mid
+     */
+    public static Map<String,String> saveParaByMod(String pid,String mid){
+        Map<String,String> paraOnIds = new HashMap<>();
+        MdoProInoutParaMapper sdo = UtilTools.getBean(MdoProInoutParaMapper.class);
+        MdoProInoutParaSQLBuilder ssb = new MdoProInoutParaSQLBuilder();
+        ssb.createCriteria().andPidEqualTo(mid);
+        List<MdoProInoutPara> sList = sdo.selectByExample(ssb);
+        if(sList!=null && !sList.isEmpty()){
+            for (MdoProInoutPara s :sList) {
+                s.setPid(pid);
+                String oldid = s.getId();
+                s.setId(UtilTools.getUUid());
+                sdo.insert(s);
+                paraOnIds.put(oldid,s.getId());
             }
         }
+        return  paraOnIds;
     }
+
     /**
      * 代理优化器
      * @param pid