Browse Source

修改评分接口-原人工条目重复问题

songxinlu 3 years ago
parent
commit
f94f9d34a5
1 changed files with 16 additions and 2 deletions
  1. 16 2
      src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

+ 16 - 2
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -2310,7 +2310,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         Long hospitalId = analyzeVO.getHospitalId();
         List<QcResultAlgVO> qcResultAlgVOList = new ArrayList<>();
         //获取本用户原手动添加的扣分条目
-        addQcDetailHistory(analyzeVO, codeList);
+        List<Long> casesEntryIds = addQcDetailHistory(analyzeVO, codeList);
 
         if (ListUtil.isNotEmpty(codeList)) {
             // 根据质控结果获取质控条目
@@ -2376,6 +2376,18 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         String menuData = JSON.toJSONString(qcModeDTOList);
 
         // 保存评分结果信息
+        //删除原手工扣分条目
+        if(ListUtil.isNotEmpty(casesEntryIds)){
+            if(ListUtil.isNotEmpty(algorithmVO.getQcResultAlgVOList())){
+                List<QcResultAlgVO> qcResultAlgVOListTemp = new ArrayList<>();
+                algorithmVO.getQcResultAlgVOList().stream().forEach(qcResultAlgVO -> {
+                    if(!casesEntryIds.contains(qcResultAlgVO.getCasesEntryId())){
+                        qcResultAlgVOListTemp.add(qcResultAlgVO);
+                    }
+                });
+                algorithmVO.setQcResultAlgVOList(qcResultAlgVOListTemp);
+            }
+        }
         Date date = qcresultInfoFacade.saveQcResult(algorithmDTO, algorithmVO, analyzeVO, pageData, menuData, analyzeVO.getIsTask(), null);
 
         // 返回结果信息
@@ -2391,7 +2403,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
      * @Description添加原手动扣分分值条目
      * @Return void
      */
-    private void addQcDetailHistory(AnalyzeVO analyzeVO, List<String> codeList) {
+    private List<Long> addQcDetailHistory(AnalyzeVO analyzeVO, List<String> codeList) {
         try {
             List<Long> qcDetailIDHistory = medQcresultDetailService.list(new QueryWrapper<MedQcresultDetail>()
                     .eq("hospital_id", analyzeVO.getHospitalId())
@@ -2406,10 +2418,12 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
                 if (ListUtil.isNotEmpty(codes)) {
                     codeList.addAll(codes);
                 }
+                return qcDetailIDHistory;
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
+        return null;
     }
 
     /**