Browse Source

规则测试状态监控

zhaops 4 years ago
parent
commit
62956567fb

+ 44 - 0
cdssman-service/src/main/java/com/diagbot/facade/RunningInfoFacade.java

@@ -1,12 +1,16 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.CaseInfo;
 import com.diagbot.entity.RunningInfo;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.CaseInfoService;
 import com.diagbot.service.RunningInfoService;
 import com.diagbot.service.impl.RunningInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
+import com.diagbot.vo.HospitalIdVO;
 import com.diagbot.vo.RunningInfoVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -14,7 +18,9 @@ import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description:
@@ -27,6 +33,9 @@ public class RunningInfoFacade extends RunningInfoServiceImpl {
     @Qualifier("runningInfoServiceImpl")
     private RunningInfoService runningInfoService;
 
+    @Autowired
+    private CaseInfoService caseInfoService;
+
     /**
      * 更新运行状态
      *
@@ -78,4 +87,39 @@ public class RunningInfoFacade extends RunningInfoServiceImpl {
             return list.get(0).getStatus();
         }
     }
+
+    /**
+     * 查看所有测试用例执行状态
+     *
+     * @param hospitalIdVO
+     * @return
+     */
+    public Map<Long, Integer> getStatusByHospitalId(HospitalIdVO hospitalIdVO) {
+        Map<Long, Integer> retMap = new LinkedHashMap<>();
+        List<CaseInfo> caseList = caseInfoService.list(new QueryWrapper<CaseInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey()));
+        if (ListUtil.isEmpty(caseList)) {
+            return retMap;
+        }
+        List<RunningInfo> list = runningInfoService.list(new QueryWrapper<RunningInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", hospitalIdVO.getHospitalId()));
+        if (ListUtil.isEmpty(list)) {
+            caseList.forEach(item -> {
+                retMap.put(item.getId(), 0);
+            });
+            return retMap;
+        }
+
+        Map<Long, Integer> runningMap = EntityUtil.makeMapWithKeyValue(list, "caseId", "status");
+
+        caseList.forEach(item -> {
+            if (runningMap.containsKey(item.getId())) {
+                retMap.put(item.getId(), runningMap.get(item.getId()));
+            } else {
+                retMap.put(item.getId(), 0);
+            }
+        });
+        return retMap;
+    }
 }

+ 12 - 1
cdssman-service/src/main/java/com/diagbot/web/RunningInfoController.java

@@ -3,6 +3,7 @@ package com.diagbot.web;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.RunningInfoFacade;
+import com.diagbot.vo.HospitalIdVO;
 import com.diagbot.vo.RunningInfoVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -13,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
+import java.util.Map;
 
 /**
  * @Description:
@@ -26,7 +28,7 @@ public class RunningInfoController {
     @Autowired
     private RunningInfoFacade runningInfoFacade;
 
-    @ApiOperation(value = "查测试用例运行状态[zhaops]",
+    @ApiOperation(value = "查测试用例运行状态[zhaops]",
             notes = "hospitalId: 医院Id <br>" +
                     "caseId: 测试用例id<br>")
     @PostMapping("/getStatus")
@@ -35,4 +37,13 @@ public class RunningInfoController {
         Integer data = runningInfoFacade.getStatus(runningInfoVO);
         return RespDTO.onSuc(data);
     }
+
+    @ApiOperation(value = "查拉面所有测试用例运行状态[zhaops]",
+            notes = "hospitalId: 医院Id <br>")
+    @PostMapping("/getStatusByHospitalId")
+    @SysLogger("getStatusByHospitalId")
+    public RespDTO<Map<Long, Integer>> getStatusByHospitalId(@Valid @RequestBody HospitalIdVO hospitalIdVO) {
+        Map<Long, Integer> data = runningInfoFacade.getStatusByHospitalId(hospitalIdVO);
+        return RespDTO.onSuc(data);
+    }
 }