Browse Source

规则测试状态监控

zhaops 4 years ago
parent
commit
f78b7b44a7

+ 151 - 26
cdssman-service/src/main/java/com/diagbot/aggregate/RuleTestAggregate.java

@@ -26,15 +26,9 @@ import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.NeoEnum;
 import com.diagbot.enums.StatusEnum;
 import com.diagbot.enums.TypeEnum;
-import com.diagbot.facade.DiseaseConfigFacade;
-import com.diagbot.facade.DrugConfigFacade;
-import com.diagbot.facade.LisConfigFacade;
-import com.diagbot.facade.OperationConfigFacade;
-import com.diagbot.facade.PacsConfigFacade;
 import com.diagbot.facade.RuleConvertFacade;
+import com.diagbot.facade.RunningInfoFacade;
 import com.diagbot.facade.SearchDataFacade;
-import com.diagbot.facade.TransfusionConfigFacade;
-import com.diagbot.facade.UnUsedMappingFacade;
 import com.diagbot.repository.BillManRepository;
 import com.diagbot.repository.LisCriticalRepository;
 import com.diagbot.repository.LisRemindRepository;
@@ -60,9 +54,9 @@ import com.diagbot.util.StringUtil;
 import com.diagbot.vo.BillRuleVO;
 import com.diagbot.vo.CriticalRuleVO;
 import com.diagbot.vo.HighriskRuleVO;
-import com.diagbot.vo.HospitalIdVO;
 import com.diagbot.vo.IndicationPushVO;
 import com.diagbot.vo.OtherRuleVO;
+import com.diagbot.vo.RunningInfoVO;
 import com.google.common.collect.Lists;
 import io.github.lvyahui8.spring.annotation.DataConsumer;
 import io.github.lvyahui8.spring.annotation.DataProvider;
@@ -111,6 +105,8 @@ public class RuleTestAggregate {
     @Autowired
     @Qualifier("resultOtherTransfusionServiceImpl")
     private ResultOtherTransfusionService resultOtherTransfusionService;
+    @Autowired
+    private RunningInfoFacade runningInfoFacade;
 
     @Autowired
     private BillManRepository billManRepository;
@@ -139,15 +135,6 @@ public class RuleTestAggregate {
 
     @DataProvider("ruleTest")
     public Boolean ruleTest(
-            /*@InvokeParameter("billRuleVO") BillRuleVO billRuleVO,
-            @InvokeParameter("billTransfusionRuleVO") BillRuleVO billTransfusionRuleVO,
-            @InvokeParameter("criticalLisRuleVO") CriticalRuleVO criticalLisRuleVO,
-            @InvokeParameter("criticalPacsRuleVO") CriticalRuleVO criticalPacsRuleVO,
-            @InvokeParameter("highriskDrugRuleVO") HighriskRuleVO highriskDrugRuleVO,
-            @InvokeParameter("highriskOperationRuleVO") HighriskRuleVO highriskOperationRuleVO,
-            @InvokeParameter("otherLisRuleVO") OtherRuleVO otherLisRuleVO,
-            @InvokeParameter("otherPacsRuleVO") OtherRuleVO otherPacsRuleVO,
-            @InvokeParameter("otherTransfusionRuleVO") OtherRuleVO otherTransfusionRuleVO,*/
             @DataConsumer("billRuleTest") Boolean billRuleTest,
             @DataConsumer("billTransfusionRuleTest") Boolean billTransfusionRuleTest,
             @DataConsumer("criticalLisRuleTest") Boolean criticalLisRuleTest,
@@ -175,8 +162,25 @@ public class RuleTestAggregate {
      * @param billRuleVO
      */
     @DataProvider("billRuleTest")
-    @Transactional
     public Boolean billRuleTest(@InvokeParameter("billRuleVO") BillRuleVO billRuleVO) {
+        //开始运行
+        RunningInfoVO runningInfoVO = new RunningInfoVO();
+        runningInfoVO.setCaseId(billRuleVO.getCaseId());
+        runningInfoVO.setHospitalId(billRuleVO.getHospitalId());
+        runningInfoVO.setStatus(1);
+        runningInfoFacade.updateStatus(runningInfoVO);
+
+        billRuleTestExe(billRuleVO);
+
+        //结束运行
+        runningInfoVO.setStatus(0);
+        runningInfoFacade.updateStatus(runningInfoVO);
+
+        return true;
+    }
+
+    @Transactional
+    public Boolean billRuleTestExe(BillRuleVO billRuleVO) {
         Long hospitalId = billRuleVO.getHospitalId();
 
         List<BillItem> billRules = billManRepository.getAllRules();
@@ -198,8 +202,24 @@ public class RuleTestAggregate {
      * @param billRuleVO
      */
     @DataProvider("billTransfusionRuleTest")
-    @Transactional
     public Boolean billTransfusionRuleTest(@InvokeParameter("billTransfusionRuleVO") BillRuleVO billRuleVO) {
+        //开始运行
+        RunningInfoVO runningInfoVO = new RunningInfoVO();
+        runningInfoVO.setCaseId(billRuleVO.getCaseId());
+        runningInfoVO.setHospitalId(billRuleVO.getHospitalId());
+        runningInfoVO.setStatus(1);
+        runningInfoFacade.updateStatus(runningInfoVO);
+
+        billTransfusionRuleTestExe(billRuleVO);
+
+        //结束运行
+        runningInfoVO.setStatus(0);
+        runningInfoFacade.updateStatus(runningInfoVO);
+        return true;
+    }
+
+    @Transactional
+    public Boolean billTransfusionRuleTestExe(BillRuleVO billRuleVO) {
         Long hospitalId = billRuleVO.getHospitalId();
         List<TransfusionRemind> billRules_transfusion = transfusionRemindRepository.findByStatus(StatusEnum.Enable.getKey());
         //生成测试规则
@@ -220,8 +240,23 @@ public class RuleTestAggregate {
      * @param criticalRuleVO
      */
     @DataProvider("criticalLisRuleTest")
-    @Transactional
     public Boolean criticalLisRuleTest(@InvokeParameter("criticalLisRuleVO") CriticalRuleVO criticalRuleVO) {
+        //开始运行
+        RunningInfoVO runningInfoVO = new RunningInfoVO();
+        runningInfoVO.setCaseId(criticalRuleVO.getCaseId());
+        runningInfoVO.setHospitalId(criticalRuleVO.getHospitalId());
+        runningInfoVO.setStatus(1);
+        runningInfoFacade.updateStatus(runningInfoVO);
+
+        criticalLisRuleTestExe(criticalRuleVO);
+
+        runningInfoVO.setStatus(0);
+        runningInfoFacade.updateStatus(runningInfoVO);
+        return true;
+    }
+
+    @Transactional
+    public Boolean criticalLisRuleTestExe(CriticalRuleVO criticalRuleVO) {
         Long hospitalId = criticalRuleVO.getHospitalId();
         List<LisCritical> criticalRules_lis = lisCriticalRepository.findCustomByStatus(StatusEnum.Enable.getKey());
         //生成测试规则
@@ -239,8 +274,23 @@ public class RuleTestAggregate {
      * @param criticalRuleVO
      */
     @DataProvider("criticalPacsRuleTest")
-    @Transactional
     public Boolean criticalPacsRuleTest(@InvokeParameter("criticalPacsRuleVO") CriticalRuleVO criticalRuleVO) {
+        //开始运行
+        RunningInfoVO runningInfoVO = new RunningInfoVO();
+        runningInfoVO.setCaseId(criticalRuleVO.getCaseId());
+        runningInfoVO.setHospitalId(criticalRuleVO.getHospitalId());
+        runningInfoVO.setStatus(1);
+        runningInfoFacade.updateStatus(runningInfoVO);
+
+        criticalPacsRuleTestExe(criticalRuleVO);
+
+        runningInfoVO.setStatus(0);
+        runningInfoFacade.updateStatus(runningInfoVO);
+        return true;
+    }
+
+    @Transactional
+    public Boolean criticalPacsRuleTestExe(CriticalRuleVO criticalRuleVO) {
         Long hospitalId = criticalRuleVO.getHospitalId();
         List<PacsCritical> criticalRules_pacs = pacsCriticalRepository.findByStatus(StatusEnum.Enable.getKey());
         //生成测试规则
@@ -258,8 +308,23 @@ public class RuleTestAggregate {
      * @return
      */
     @DataProvider("highriskDrugRuleTest")
-    @Transactional
     public Boolean highriskDrugRuleTest(@InvokeParameter("highriskDrugRuleVO") HighriskRuleVO highriskRuleVO) {
+        //开始运行
+        RunningInfoVO runningInfoVO = new RunningInfoVO();
+        runningInfoVO.setCaseId(highriskRuleVO.getCaseId());
+        runningInfoVO.setHospitalId(highriskRuleVO.getHospitalId());
+        runningInfoVO.setStatus(1);
+        runningInfoFacade.updateStatus(runningInfoVO);
+
+        highriskDrugRuleTestExe(highriskRuleVO);
+
+        runningInfoVO.setStatus(0);
+        runningInfoFacade.updateStatus(runningInfoVO);
+        return true;
+    }
+
+    @Transactional
+    public Boolean highriskDrugRuleTestExe(HighriskRuleVO highriskRuleVO) {
         Long hospitalId = highriskRuleVO.getHospitalId();
         List<MedRegName> items = medRegNameRepository.findByStatusAndRisklevelExists(1);
         //生成测试规则
@@ -277,8 +342,23 @@ public class RuleTestAggregate {
      * @return
      */
     @DataProvider("highriskOperationRuleTest")
-    @Transactional
     public Boolean highriskOperationRuleTest(@InvokeParameter("highriskOperationRuleVO") HighriskRuleVO highriskRuleVO) {
+        //开始运行
+        RunningInfoVO runningInfoVO = new RunningInfoVO();
+        runningInfoVO.setCaseId(highriskRuleVO.getCaseId());
+        runningInfoVO.setHospitalId(highriskRuleVO.getHospitalId());
+        runningInfoVO.setStatus(1);
+        runningInfoFacade.updateStatus(runningInfoVO);
+
+        highriskOperationRuleTestExe(highriskRuleVO);
+
+        runningInfoVO.setStatus(0);
+        runningInfoFacade.updateStatus(runningInfoVO);
+        return true;
+    }
+
+    @Transactional
+    public Boolean highriskOperationRuleTestExe(HighriskRuleVO highriskRuleVO) {
         Long hospitalId = highriskRuleVO.getHospitalId();
         List<YiBaoOperationName> items = yiBaoOperationNameRepository.findByStatusAndOpgradeExists(1);
         //生成测试规则
@@ -297,8 +377,23 @@ public class RuleTestAggregate {
      * @return
      */
     @DataProvider("otherLisRuleTest")
-    @Transactional
     public Boolean otherLisRuleTest(@InvokeParameter("otherLisRuleVO") OtherRuleVO otherRuleVO) {
+        //开始运行
+        RunningInfoVO runningInfoVO = new RunningInfoVO();
+        runningInfoVO.setCaseId(otherRuleVO.getCaseId());
+        runningInfoVO.setHospitalId(otherRuleVO.getHospitalId());
+        runningInfoVO.setStatus(1);
+        runningInfoFacade.updateStatus(runningInfoVO);
+
+        otherLisRuleTestExe(otherRuleVO);
+
+        runningInfoVO.setStatus(0);
+        runningInfoFacade.updateStatus(runningInfoVO);
+        return true;
+    }
+
+    @Transactional
+    public Boolean otherLisRuleTestExe(OtherRuleVO otherRuleVO) {
         Long hospitalId = otherRuleVO.getHospitalId();
         List<LisRemind> items = lisRemindRepository.findByStatus(1);
         //生成测试规则
@@ -317,8 +412,23 @@ public class RuleTestAggregate {
      * @return
      */
     @DataProvider("otherPacsRuleTest")
-    @Transactional
     public Boolean otherPacsRuleTest(@InvokeParameter("otherPacsRuleVO") OtherRuleVO otherRuleVO) {
+        //开始运行
+        RunningInfoVO runningInfoVO = new RunningInfoVO();
+        runningInfoVO.setCaseId(otherRuleVO.getCaseId());
+        runningInfoVO.setHospitalId(otherRuleVO.getHospitalId());
+        runningInfoVO.setStatus(1);
+        runningInfoFacade.updateStatus(runningInfoVO);
+
+        otherPacsRuleTestExe(otherRuleVO);
+
+        runningInfoVO.setStatus(0);
+        runningInfoFacade.updateStatus(runningInfoVO);
+        return true;
+    }
+
+    @Transactional
+    public Boolean otherPacsRuleTestExe(OtherRuleVO otherRuleVO) {
         Long hospitalId = otherRuleVO.getHospitalId();
         List<PacsRemind> items = pacsRemindRepository.findByStatus(1);
         //生成测试规则
@@ -337,8 +447,23 @@ public class RuleTestAggregate {
      * @return
      */
     @DataProvider("otherTransfusionRuleTest")
-    @Transactional
     public Boolean otherTransfusionRuleTest(@InvokeParameter("otherTransfusionRuleVO") OtherRuleVO otherRuleVO) {
+        //开始运行
+        RunningInfoVO runningInfoVO = new RunningInfoVO();
+        runningInfoVO.setCaseId(otherRuleVO.getCaseId());
+        runningInfoVO.setHospitalId(otherRuleVO.getHospitalId());
+        runningInfoVO.setStatus(1);
+        runningInfoFacade.updateStatus(runningInfoVO);
+
+        otherTransfusionRuleTestExe(otherRuleVO);
+
+        runningInfoVO.setStatus(0);
+        runningInfoFacade.updateStatus(runningInfoVO);
+        return true;
+    }
+
+    @Transactional
+    public Boolean otherTransfusionRuleTestExe(OtherRuleVO otherRuleVO) {
         Long hospitalId = otherRuleVO.getHospitalId();
         List<TransfusionSuggest> items = transfusionSuggestRepository.findByStatus(1);
         //生成测试规则

+ 155 - 0
cdssman-service/src/main/java/com/diagbot/entity/RunningInfo.java

@@ -0,0 +1,155 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-01-22
+ */
+@TableName("test_running_info")
+public class RunningInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 测试用例id
+     */
+    private Long caseId;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 状态(1:运行中,0:非运行中)
+     */
+    private Integer status;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+
+    public Long getCaseId() {
+        return caseId;
+    }
+
+    public void setCaseId(Long caseId) {
+        this.caseId = caseId;
+    }
+
+    public Long getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Long hospitalId) {
+        this.hospitalId = hospitalId;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    @Override
+    public String toString() {
+        return "RunningInfo{" +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", caseId=" + caseId +
+                ", hospitalId=" + hospitalId +
+                ", status=" + status +
+                "}";
+    }
+}

+ 7 - 0
cdssman-service/src/main/java/com/diagbot/facade/ResultStaticKnowledgeFacade.java

@@ -39,11 +39,13 @@ import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.ConceptVO;
 import com.diagbot.vo.ResultStaticPageVO;
+import com.diagbot.vo.RunningInfoVO;
 import com.diagbot.vo.StaticKnowledgeTestVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
@@ -100,6 +102,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
      * @param testVO
      * @return
      */
+    @Transactional
     public Boolean lisTest(MultipartFile file, StaticKnowledgeTestVO testVO) {
         List<ResultStaticKnowledge> saveList = Lists.newLinkedList();
         //从Excel读取数据
@@ -268,6 +271,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
      * @param testVO
      * @return
      */
+    @Transactional
     public Boolean pacsTest(MultipartFile file, StaticKnowledgeTestVO testVO) {
         List<ResultStaticKnowledge> saveList = Lists.newLinkedList();
         //从Excel读取数据
@@ -424,6 +428,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
      * @param testVO
      * @return
      */
+    @Transactional
     public Boolean drugTest(MultipartFile file, StaticKnowledgeTestVO testVO) {
         List<ResultStaticKnowledge> saveList = Lists.newLinkedList();
         //从Excel读取数据
@@ -571,6 +576,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
      * @param testVO
      * @return
      */
+    @Transactional
     public Boolean diseaseTest(MultipartFile file, StaticKnowledgeTestVO testVO) {
         List<ResultStaticKnowledge> saveList = Lists.newLinkedList();
         //从Excel读取数据
@@ -694,6 +700,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
      * @param testVO
      * @return
      */
+    @Transactional
     public Boolean operationTest(MultipartFile file, StaticKnowledgeTestVO testVO) {
         List<ResultStaticKnowledge> saveList = Lists.newLinkedList();
         //从Excel读取数据

+ 1 - 1
cdssman-service/src/main/java/com/diagbot/facade/RuleTestFacade.java

@@ -118,7 +118,7 @@ public class RuleTestFacade {
         CriticalRuleVO criticalPacsRuleVO = new CriticalRuleVO();
         criticalPacsRuleVO.setHospitalId(hospitalIdVO.getHospitalId());
         criticalPacsRuleVO.setCriticalType(2);
-        criticalLisRuleVO.setCaseId(4L);
+        criticalPacsRuleVO.setCaseId(4L);
         //高危药品
         HighriskRuleVO highriskDrugRuleVO = new HighriskRuleVO();
         highriskDrugRuleVO.setHospitalId(hospitalIdVO.getHospitalId());

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

@@ -0,0 +1,81 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.RunningInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.RunningInfoService;
+import com.diagbot.service.impl.RunningInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.RunningInfoVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/1/22 15:05
+ */
+@Component
+public class RunningInfoFacade extends RunningInfoServiceImpl {
+    @Autowired
+    @Qualifier("runningInfoServiceImpl")
+    private RunningInfoService runningInfoService;
+
+    /**
+     * 更新运行状态
+     *
+     * @param runningInfoVO
+     * @return
+     */
+    @Transactional
+    public Boolean updateStatus(RunningInfoVO runningInfoVO) {
+        Date now = new Date();
+        QueryWrapper<RunningInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("case_id", runningInfoVO.getCaseId())
+                .eq("hospital_id", runningInfoVO.getHospitalId());
+        List<RunningInfo> list = this.list(queryWrapper);
+        //先删除原状态
+        if (ListUtil.isNotEmpty(list)) {
+            list.forEach(item -> {
+                item.setGmtModified(now);
+                item.setIsDeleted(IsDeleteEnum.Y.getKey());
+            });
+            runningInfoService.saveOrUpdateBatch(list);
+        }
+
+        //记录新状态
+        RunningInfo runningInfo = new RunningInfo();
+        BeanUtil.copyProperties(runningInfoVO, runningInfo);
+        runningInfo.setGmtCreate(now);
+        runningInfo.setGmtModified(now);
+        runningInfoService.save(runningInfo);
+
+        return true;
+    }
+
+    /**
+     * 查看运行状态
+     *
+     * @param runningInfoVO
+     * @return
+     */
+    public Integer getStatus(RunningInfoVO runningInfoVO) {
+        QueryWrapper<RunningInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("case_id", runningInfoVO.getCaseId())
+                .eq("hospital_id", runningInfoVO.getHospitalId());
+        List<RunningInfo> list = runningInfoService.list(queryWrapper);
+        if (ListUtil.isEmpty(list)) {
+            return 0;
+        } else {
+            return list.get(0).getStatus();
+        }
+    }
+}

+ 16 - 0
cdssman-service/src/main/java/com/diagbot/mapper/RunningInfoMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.RunningInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-01-22
+ */
+public interface RunningInfoMapper extends BaseMapper<RunningInfo> {
+
+}

+ 16 - 0
cdssman-service/src/main/java/com/diagbot/service/RunningInfoService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.RunningInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-01-22
+ */
+public interface RunningInfoService extends IService<RunningInfo> {
+
+}

+ 20 - 0
cdssman-service/src/main/java/com/diagbot/service/impl/RunningInfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.RunningInfo;
+import com.diagbot.mapper.RunningInfoMapper;
+import com.diagbot.service.RunningInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-01-22
+ */
+@Service
+public class RunningInfoServiceImpl extends ServiceImpl<RunningInfoMapper, RunningInfo> implements RunningInfoService {
+
+}

+ 34 - 0
cdssman-service/src/main/java/com/diagbot/vo/RunningInfoVO.java

@@ -0,0 +1,34 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/1/22 15:12
+ */
+@Getter
+@Setter
+public class RunningInfoVO {
+    /**
+     * 测试用例id
+     */
+    @NotNull(message = "请输入测试用例id")
+    private Long caseId;
+
+    /**
+     * 医院id
+     */
+    @NotNull(message = "请输入医院id")
+    private Long hospitalId;
+
+    /**
+     * 状态(1:运行中,0:非运行中)
+     */
+    @ApiModelProperty(hidden = true)
+    private Integer status;
+}

+ 38 - 0
cdssman-service/src/main/java/com/diagbot/web/RunningInfoController.java

@@ -0,0 +1,38 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.RunningInfoFacade;
+import com.diagbot.vo.RunningInfoVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/1/22 15:06
+ */
+@RestController
+@RequestMapping("/test/running")
+@Api(value = "执行测试相关API", tags = { "执行测试相关API" })
+public class RunningInfoController {
+    @Autowired
+    private RunningInfoFacade runningInfoFacade;
+
+    @ApiOperation(value = "查询测试用例运行状态[zhaops]",
+            notes = "hospitalId: 医院Id <br>" +
+                    "caseId: 测试用例id<br>")
+    @PostMapping("/getStatus")
+    @SysLogger("getStatus")
+    public RespDTO<Integer> getStatus(@Valid @RequestBody RunningInfoVO runningInfoVO) {
+        Integer data = runningInfoFacade.getStatus(runningInfoVO);
+        return RespDTO.onSuc(data);
+    }
+}

+ 13 - 0
cdssman-service/src/main/java/com/diagbot/web/StaticKnowledgeTestController.java

@@ -8,8 +8,10 @@ import com.diagbot.entity.ResultStaticKnowledge;
 import com.diagbot.enums.StaticKnowledgeEnum;
 import com.diagbot.facade.ResultStaticInfoFacade;
 import com.diagbot.facade.ResultStaticKnowledgeFacade;
+import com.diagbot.facade.RunningInfoFacade;
 import com.diagbot.vo.HospitalIdVO;
 import com.diagbot.vo.ResultStaticPageVO;
+import com.diagbot.vo.RunningInfoVO;
 import com.diagbot.vo.StaticKnowledgeTestVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -39,6 +41,8 @@ public class StaticKnowledgeTestController {
     private ResultStaticInfoFacade resultStaticInfoFacade;
     @Autowired
     private ResultStaticKnowledgeFacade resultStaticKnowledgeFacade;
+    @Autowired
+    private RunningInfoFacade runningInfoFacade;
 
     @ApiOperation(value = "静态知识测试总览列表[zhaops]",
             notes = "hospitalId: 医院Id <br>")
@@ -64,6 +68,12 @@ public class StaticKnowledgeTestController {
         testVO.setType(type);
         testVO.setCaseId(caseId);
         Boolean data = false;
+        //开始运行
+        RunningInfoVO runningInfoVO = new RunningInfoVO();
+        runningInfoVO.setCaseId(caseId);
+        runningInfoVO.setHospitalId(hospitalId);
+        runningInfoVO.setStatus(1);
+        runningInfoFacade.updateStatus(runningInfoVO);
         if (type.equals(StaticKnowledgeEnum.Lis.getKey())) {
             data = resultStaticKnowledgeFacade.lisTest(file, testVO);
         } else if (type.equals(StaticKnowledgeEnum.Pacs.getKey())) {
@@ -75,6 +85,9 @@ public class StaticKnowledgeTestController {
         } else if (type.equals(StaticKnowledgeEnum.Operation.getKey())) {
             data = resultStaticKnowledgeFacade.operationTest(file, testVO);
         }
+        //结束运行
+        runningInfoVO.setStatus(0);
+        runningInfoFacade.updateStatus(runningInfoVO);
         return RespDTO.onSuc(data);
     }
 

+ 18 - 0
cdssman-service/src/main/resources/mapper/RunningInfoMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.RunningInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.RunningInfo">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="case_id" property="caseId" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="status" property="status" />
+    </resultMap>
+
+</mapper>