Browse Source

王耀栋--工作台模块代码,修改得分显示数据列表

wangyaodong 3 năm trước cách đây
mục cha
commit
3eb39d92ec

+ 179 - 16
simulation-resource-server/src/main/java/com/css/simulation/resource/project/impl/SimulationProjectServiceImpl.java

@@ -491,15 +491,16 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         projectReportVo.setSceneScoreList(scenePackageSubListVOS1);*/
 
         //查询场景包所有数据
-        List<SublistScoreVo> pos = simulationProjectMapper.selectSubScore(po.getScene());
+//        List<SublistScoreVo> pos = simulationProjectMapper.selectSubScore(po.getScene());
 
         //指标得分列表
-        Map<String, Object> stringObjectMap = selectScenePackageSubListAndSetScore(pos, po.getScene());
+        Map<String, Object> stringObjectMap = selectScenePackageSubListAndSetScore(po.getScene());
         projectReportVo.setSubListScoreLiTitle((List<Map>) stringObjectMap.get("cloums"));
         projectReportVo.setSubListScoreLi((List<SubScListVo>) stringObjectMap.get("result"));
 
         //场景得分列表
-        Map<String, Object> maps = selectSceneScore(pos, po.getId());
+//        Map<String, Object> maps = selectSceneScore(pos, po.getId());
+        Map<String, Object> maps = selectSceneScore(po.getScene(), po.getId());
         projectReportVo.setSceneScoreLiTitle((List<Map>) maps.get("cloums"));
         projectReportVo.setSceneScoreLi((List<SublistScoreVo>) maps.get("result"));
 
@@ -1016,7 +1017,10 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
     }
 
 
-    private Map<String, Object> selectSceneScore(List<SublistScoreVo> pos, String projectId) {
+    private Map<String, Object> selectSceneScore(String scenePackageId, String projectId) {
+
+        //查询场景包所有数据
+        List<SublistScoreVo> pos = simulationProjectMapper.selectSubScore(scenePackageId);
 
         HashMap<String, Object> hashMap = new HashMap<>();
 
@@ -1064,7 +1068,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         List<List<String>> result = new ArrayList<>();
         //末级指标
         for(SublistScoreVo sp : lastSubList){
-            setParentSub(sp,pos);
+            setParentSub(sp, null, pos);
             String sublistName = sp.getSublistName();
             sublistName += ","+sp.getReturnSceneId()+","+sp.getSceneType()+","+sp.getSceneScore()+","+sp.getTargetEvaluate()+","+sp.getScoreExplain();
 
@@ -1084,9 +1088,9 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         for(List<String> list : result){
             int offset = size - list.size();
             int start = list.size() - 5;
-            for(int i=0;i<offset;i++){
-                list.add(start+i,"");
-            }
+//            for(int i=0;i<offset;i++){
+//                list.add(start+i,"");
+//            }
             SceneScListVo sceneScListVo = new SceneScListVo();
             for(int i=0;i<start;i++){
                 if(0 == i){
@@ -1116,7 +1120,8 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
 
         List<Map<String, String>> cloums = new ArrayList<>();
         for(int i=0; i<size-5;i++){
-            if(0 == i){
+            setCloums(i,cloums);
+            /*if(0 == i){
                 Map<String, String> map = new HashMap<>();
                 map.put("label","一级指标");
                 map.put("prop","sublistName1");
@@ -1146,7 +1151,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
                 map.put("label","六级指标");
                 map.put("prop","sublistName6");
                 cloums.add(map);
-            }
+            }*/
         }
 
         Map<String, String> map1 = new HashMap<>();
@@ -1182,18 +1187,59 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
 
     }
 
-    private void setParentSub(SublistScoreVo po, List<SublistScoreVo> pos) {
-        for(SublistScoreVo p : pos){
+    /**
+     *
+     * @param po 末级指标
+     * @param parentPo 上级指标
+     * @param pos 所有指标
+     */
+    private void setParentSub(SublistScoreVo po, SublistScoreVo parentPo, List<SublistScoreVo> pos) {
+        /*for(SublistScoreVo p : pos){
             if(po.getParentId().equals(p.getId())){
                 po.setSublistName(p.getSublistName()+","+po.getSublistName());
                 setParentSub(p, pos);
             }
 
+        }*/
+        if(parentPo == null){
+            for(SublistScoreVo p : pos){
+                setSc(po,p,po,pos);
+            }
+
+        }else{
+            for(SublistScoreVo p : pos){
+                setSc(parentPo,p,po,pos);
+            }
+        }
+    }
+
+    /**
+     *
+     * @param p1 上级指标
+     * @param p2 比对指标
+     * @param p3 末级指标
+     * @param pos 所有指标
+     */
+    private void setSc(SublistScoreVo p1, SublistScoreVo p2, SublistScoreVo p3, List<SublistScoreVo> pos){
+        //上级指标
+        if(p1.getParentId().equals(p2.getId())){
+
+            //末级指标拼接指标名
+            p3.setSublistName(p2.getSublistName()+","+p3.getSublistName());
+            //查找上级指标,继续拼接
+            setParentSub(p3,p2, pos);
         }
+
+
     }
 
 
-    private Map<String,Object> selectScenePackageSubListAndSetScore(List<SublistScoreVo> pos, String scenePackageId){
+
+
+    private Map<String,Object> selectScenePackageSubListAndSetScore(String scenePackageId){
+
+        //查询场景包所有数据
+        List<SublistScoreVo> pos = simulationProjectMapper.selectSubScore(scenePackageId);
 
         HashMap<String, Object> hashMap = new HashMap<>();
 
@@ -1203,7 +1249,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         for(SublistScoreVo po : pos){
             if(ObjectUtil.isNotNull(po.getPackageAndRules())){
                 //末级指标
-                setParent(po,pos,scenePackageId);
+                setParent(po,null,pos,scenePackageId);
 
                 String sublistName = po.getSublistName();
                 String firstScore = po.getFirScore();//first得分
@@ -1266,7 +1312,8 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
 
         List<Map<String, String>> cloums = new ArrayList<>();
         for(int i=0; i<size-4;i++){
-            if(0 == i){
+            setCloums(i,cloums);
+            /*if(0 == i){
                 Map<String, String> map = new HashMap<>();
                 map.put("label","一级指标");
                 map.put("prop","sublistName1");
@@ -1296,7 +1343,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
                 map.put("label","六级指标");
                 map.put("prop","sublistName6");
                 cloums.add(map);
-            }
+            }*/
         }
         Map<String, String> map1 = new HashMap<>();
         map1.put("label","场景数量");
@@ -1327,6 +1374,12 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
 
     }
 
+    /**
+     *
+     * @param po 末级指标
+     * @param pos 场景包下所有指标
+     * @param rootId 场景包id,用于判断是否根指标
+     */
     private void setParent(SublistScoreVo po, List<SublistScoreVo> pos, String rootId) {
         for(SublistScoreVo p : pos){
 
@@ -1343,6 +1396,82 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         }
     }
 
+    /**
+     *
+     * @param po 末级指标
+     * @param pos 场景包下所有指标
+     * @param rootId 场景包id,用于判断是否一级指标
+     */
+    private void setParent(SublistScoreVo po, SublistScoreVo parentPo, List<SublistScoreVo> pos, String rootId) {
+        //第一次查找
+        if(parentPo == null){
+            for(SublistScoreVo p : pos){
+
+                setSubSc(po,p,po,pos,rootId);
+/*                if(po.getParentId().equals(p.getId())){
+                    //根指标给一级指标添加末级指标得分,给末级指标添加一级指标得分
+                    if(p.getParentId().equals(rootId)){
+                        p.setLasScore(po.getLasScore());
+                        po.setFirScore(p.getFirScore());
+                    }
+                    //末级指标拼接指标名
+                    po.setSublistName(p.getSublistName()+","+po.getSublistName());
+                    //查找上级指标,继续拼接
+                    setParent(po,p, pos, rootId);
+
+                }*/
+            }
+
+        }else{
+            for(SublistScoreVo p : pos){
+
+                setSubSc(parentPo,p,po,pos,rootId);
+
+/*                //上级指标
+                if(parentPo.getParentId().equals(p.getId())){
+                    //根指标给一级指标添加末级指标得分,给末级指标添加一级指标得分
+                    if(p.getParentId().equals(rootId)){
+                        p.setLasScore(po.getLasScore());
+                        po.setFirScore(p.getFirScore());
+                    }
+                    //末级指标拼接指标名
+                    po.setSublistName(p.getSublistName()+","+po.getSublistName());
+                    //查找上级指标,继续拼接
+                    setParent(po,p, pos, rootId);
+                }*/
+
+            }
+        }
+
+    }
+
+
+    /**
+     *
+     * @param p1 上级指标
+     * @param p2 比对指标
+     * @param p3 末级指标
+     * @param pos 所有指标
+     * @param rootId 场景包id
+     */
+    private void setSubSc(SublistScoreVo p1, SublistScoreVo p2, SublistScoreVo p3, List<SublistScoreVo> pos, String rootId){
+        //上级指标
+        if(p1.getParentId().equals(p2.getId())){
+            //根指标给一级指标添加末级指标得分,给末级指标添加一级指标得分
+            if(p2.getParentId().equals(rootId)){
+                p2.setLasScore(p3.getLasScore());
+                p3.setFirScore(p2.getFirScore());
+            }
+            //末级指标拼接指标名
+            p3.setSublistName(p2.getSublistName()+","+p3.getSublistName());
+            //查找上级指标,继续拼接
+            setParent(p3,p2, pos, rootId);
+        }
+
+
+    }
+
+
 /*
     *//**
      * 查询所有指标和得分
@@ -1621,5 +1750,39 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
 
     }
 
+    private void setCloums(Integer i, List<Map<String, String>> cloums){
+        if(0 == i){
+            Map<String, String> map = new HashMap<>();
+            map.put("label","一级指标");
+            map.put("prop","sublistName1");
+            cloums.add(map);
+        }else if(1 == i){
+            Map<String, String> map = new HashMap<>();
+            map.put("label","二级指标");
+            map.put("prop","sublistName2");
+            cloums.add(map);
+        }else if(2 == i){
+            Map<String, String> map = new HashMap<>();
+            map.put("label","三级指标");
+            map.put("prop","sublistName3");
+            cloums.add(map);
+        }else if(3 == i){
+            Map<String, String> map = new HashMap<>();
+            map.put("label","四级指标");
+            map.put("prop","sublistName4");
+            cloums.add(map);
+        }else if(4 == i){
+            Map<String, String> map = new HashMap<>();
+            map.put("label","五级指标");
+            map.put("prop","sublistName5");
+            cloums.add(map);
+        }else if(5 == i){
+            Map<String, String> map = new HashMap<>();
+            map.put("label","六级指标");
+            map.put("prop","sublistName6");
+            cloums.add(map);
+        }
+    }
+
 
 }