Browse Source

缺陷反馈代码调整

songxinlu 3 năm trước cách đây
mục cha
commit
2c49c2483f

+ 65 - 22
src/main/java/com/diagbot/facade/MedDefectFeedbackFacade.java

@@ -5,6 +5,8 @@ import com.diagbot.dto.AnalyzeDTO;
 import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.entity.MedDefectFeedback;
 import com.diagbot.entity.MedQcresultInfo;
+import com.diagbot.entity.QcresultDetail;
+import com.diagbot.entity.QcresultInfo;
 import com.diagbot.entity.SysUser;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
@@ -39,7 +41,7 @@ public class MedDefectFeedbackFacade extends MedDefectFeedbackServiceImpl {
     @Autowired
     private SysUserFacade sysUserFacade;
     @Autowired
-    private MedQcresultInfoServiceImpl medQcresultInfoServiceImpl;
+    private QcresultDetailFacade qcresultDetailFacade;
 
 
     /**
@@ -75,24 +77,45 @@ public class MedDefectFeedbackFacade extends MedDefectFeedbackServiceImpl {
         AnalyzeDTO out = new AnalyzeDTO();
         QcresultVO qcresultVO = new QcresultVO();
         BeanUtil.copyProperties(changeQcResultVO, qcresultVO);
-        //非新增缺失
-        if (!"4".equals(changeQcResultVO.getOperationType())) {
-            out = qcresultInfoFacade.changeQcResult(qcresultVO);
-        }else {
-            //新增缺失拼装返回结果
-            //获取病历等级得分
-            MedQcresultInfo medQcresultInfo = medQcresultInfoServiceImpl
-                    .getOne(new QueryWrapper<MedQcresultInfo>().select("level,score_res")
-                    .eq("hospital_id",hospitalId)
-                    .eq("behospital_code",qcresultVO.getBehospitalCode())
-                    .eq("is_deleted",IsDeleteEnum.N.getKey()));
-            out.setBehospitalCode(qcresultVO.getBehospitalCode());
-            out.setIsSuccess(true);
-            out.setGradeType(2);
-            out.setGradeTypeName("人工");
-            out.setScoreRes(medQcresultInfo.getScoreRes());
-            out.setLevel(medQcresultInfo.getLevel());
-            out.setGradeTime(DateUtil.now());
+        switch (changeQcResultVO.getOperationType()) {
+            case "1"://修改
+                qcresultVO.setType(3);
+                out = qcresultInfoFacade.changeQcResult(qcresultVO);
+                break;
+            case "2"://删除
+                qcresultVO.setType(4);
+                qcresultVO.setDelStatus(0);
+                out = qcresultInfoFacade.changeQcResult(qcresultVO);
+                break;
+            case "3"://新增已有
+                qcresultVO.setType(1);
+                //判断该缺陷是否存在
+                havingCase(qcresultVO);
+                out = qcresultInfoFacade.changeQcResult(qcresultVO);
+                break;
+            case "4"://新增缺失
+                //新增缺失拼装返回结果
+                //获取病历等级得分
+                QcresultInfo qcresultInfo = qcresultInfoFacade
+                        .getOne(new QueryWrapper<QcresultInfo>().select("level,score_res")
+                                .eq("hospital_id", hospitalId)
+                                .eq("behospital_code", qcresultVO.getBehospitalCode())
+                                .eq("is_deleted", IsDeleteEnum.N.getKey()));
+                out.setBehospitalCode(qcresultVO.getBehospitalCode());
+                out.setIsSuccess(true);
+                out.setGradeType(2);
+                out.setGradeTypeName("人工");
+                out.setScoreRes(qcresultInfo.getScoreRes());
+                out.setLevel(qcresultInfo.getLevel());
+                out.setGradeTime(DateUtil.now());
+                break;
+            case "5"://恢复
+                qcresultVO.setType(4);
+                qcresultVO.setDelStatus(1);
+                out = qcresultInfoFacade.changeQcResult(qcresultVO);
+                break;
+            default:
+                break;
         }
 
         //3.人工修改病历成功后
@@ -102,9 +125,12 @@ public class MedDefectFeedbackFacade extends MedDefectFeedbackServiceImpl {
             insert.setDeptId(behospitalInfos.get(0).getBehDeptId());
             insert.setDeptName(behospitalInfos.get(0).getBehDeptName());
             insert.setName(behospitalInfos.get(0).getName());
-            insert.setCasesEntryId(changeQcResultVO.getOptResultAlgVO().getCasesEntryId());
-            insert.setQcresultDetailMsg(changeQcResultVO.getOptResultAlgVO().getMsg());
-            insert.setQcresultDetaiScore(changeQcResultVO.getOptResultAlgVO().getScore());
+            //除新增缺失以外都要记录条目、缺陷详情、分值信息
+            if (!"4".equals(changeQcResultVO.getOperationType())) {
+                insert.setCasesEntryId(changeQcResultVO.getOptResultAlgVO().getCasesEntryId());
+                insert.setQcresultDetailMsg(changeQcResultVO.getOptResultAlgVO().getMsg());
+                insert.setQcresultDetaiScore(changeQcResultVO.getOptResultAlgVO().getScore());
+            }
             insert.setHospitalId(hospitalId);
             insert.setGmtCreate(DateUtil.now());
             insert.setCreator(SysUserUtils.getCurrentPrincipleID());
@@ -123,6 +149,22 @@ public class MedDefectFeedbackFacade extends MedDefectFeedbackServiceImpl {
         return out;
     }
 
+    private void havingCase(QcresultVO qcresultVO) {
+        if (qcresultVO.getOptResultAlgVO().getCasesEntryId() == null) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "条目ID不存在!");
+        }
+        //判断机器是否有质控出该缺陷或人工添加过该缺陷
+        QueryWrapper<QcresultDetail> query = new QueryWrapper();
+        query.eq("hospital_id", SysUserUtils.getCurrentHospitalID());
+        query.eq("behospital_code", qcresultVO.getBehospitalCode());
+        query.eq("cases_entry_id", qcresultVO.getOptResultAlgVO().getCasesEntryId());
+        query.and(qw -> qw.eq("grade_type", 2)
+                .or().eq("is_deleted", IsDeleteEnum.N.getKey()).eq("grade_type", 1));
+        if (ListUtil.isNotEmpty(qcresultDetailFacade.list(query))) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "添加的缺陷条目已存在!");
+        }
+    }
+
     /**
      * 推送给his方
      *
@@ -146,6 +188,7 @@ public class MedDefectFeedbackFacade extends MedDefectFeedbackServiceImpl {
     public Boolean updDefectBackByID(UPdDefectBackByIDVO uPdDefectBackByIDVO) {
         MedDefectFeedback entity = new MedDefectFeedback();
         entity.setId(uPdDefectBackByIDVO.getId());
+        entity.setStatus("1");
         return this.updateById(entity);
     }
 }

+ 8 - 8
src/main/java/com/diagbot/vo/ChangeQcResultVO.java

@@ -16,14 +16,13 @@ import java.util.List;
 @Getter
 @Setter
 public class ChangeQcResultVO {
-    @ApiModelProperty(value = "病历id")
+    @ApiModelProperty(value = "病历id", required = true)
     @NotBlank(message = "病历编号为空")
     private String behospitalCode;
 
-    @ApiModelProperty(value = "医院ID",hidden = true)
+    @ApiModelProperty(value = "医院ID", hidden = true)
     private Long hospitalId;
 
-    //操作类型(0:基础评分,1:新增条目评分,2:删除条目,3:修改条目)
     @ApiModelProperty(hidden = true)
     private Integer type;
 
@@ -39,21 +38,22 @@ public class ChangeQcResultVO {
     @ApiModelProperty(value = "反馈说明")
     private String explainInfo;
 
-    @ApiModelProperty(value = "操作类型 1:修改|2:删除|3:新增已有|4:新增缺失|5:恢复")
+    @ApiModelProperty(value = "操作类型 1:修改|2:删除|3:新增已有|4:新增缺失|5:恢复", required = true)
     @NotBlank(message = "操作类型为空")
     private String operationType;
 
-    @ApiModelProperty(value = "接收人编号")
+    @ApiModelProperty(value = "接收人编号", required = true)
     @NotBlank(message = "接收人编号为空")
     private String receiverCode;
 
-    @ApiModelProperty(value = "接收人姓名")
+    @ApiModelProperty(value = "接收人姓名", required = true)
     @NotBlank(message = "接收人姓名为空")
     private String receiverName;
 
-    @ApiModelProperty(value = "抄送人集合")
+    @ApiModelProperty(value = "抄送人集合", required = true)
     @NotEmpty(message = "抄送人集合为空")
     private List<CCVO> ccs;
-    //操作条目
+
+    @ApiModelProperty(value = "操作条目 casesEntryId、msg、score必填-(新增缺失除外)")
     private QcResultAlgVO optResultAlgVO;
 }

+ 1 - 1
src/main/java/com/diagbot/vo/UPdDefectBackByIDVO.java

@@ -16,7 +16,7 @@ import javax.validation.constraints.NotEmpty;
 @Setter
 public class UPdDefectBackByIDVO {
 
-    @ApiModelProperty(value = "缺陷反馈编号")
+    @ApiModelProperty(value = "缺陷反馈编号", required = true)
     @NotEmpty(message = "缺陷反馈编号为空")
     private Long id;
 

+ 4 - 14
src/main/java/com/diagbot/web/MedDefectFeedbackController.java

@@ -49,12 +49,11 @@ public class MedDefectFeedbackController {
     }
 
     @ApiOperation(value = "新增已有质控条目[by:songxl]",
-            notes = "")
+            notes = "optResultAlgVO:操作条目,casesEntryId、msg、score必填<br>")
     @PostMapping("/addHavingCase")
     @SysLogger("addHavingCase")
     @Transactional
     public RespDTO<AnalyzeDTO> addHavingCase(@RequestBody ChangeQcResultVO changeQcResultVO) {
-        changeQcResultVO.setType(1);
         return RespDTO.onSuc(medDefectFeedbackFacade.changeQcResult(changeQcResultVO));
     }
 
@@ -69,37 +68,28 @@ public class MedDefectFeedbackController {
 
 
     @ApiOperation(value = "删除质控条目[by:songxl]",
-            notes = "behospitalCode:病历号,必填<br>" +
-                    "id:明细id,必填<br>" +
-                    "delStatus:逻辑删除接口(1-还原和0-删除)标志 必填<br>")
+            notes = "optResultAlgVO:操作条目,casesEntryId、msg、score必填<br>")
     @PostMapping("/delCase")
     @SysLogger("delCase")
     @Transactional
     public RespDTO<AnalyzeDTO> delCase(@RequestBody ChangeQcResultVO changeQcResultVO) {
-        changeQcResultVO.setType(4);
-        changeQcResultVO.setDelStatus(0);
         return RespDTO.onSuc(medDefectFeedbackFacade.changeQcResult(changeQcResultVO));
     }
     @ApiOperation(value = "恢复质控条目[by:songxl]",
-            notes = "behospitalCode:病历号,必填<br>" +
-                    "id:明细id,必填<br>" +
-                    "delStatus:逻辑删除接口(1-还原和0-删除)标志 必填<br>")
+            notes = "optResultAlgVO:操作条目,casesEntryId、msg、score必填<br>")
     @PostMapping("/recoverCase")
     @SysLogger("recoverCase")
     @Transactional
     public RespDTO<AnalyzeDTO> recoverCase(@RequestBody ChangeQcResultVO changeQcResultVO) {
-        changeQcResultVO.setType(4);
-        changeQcResultVO.setDelStatus(1);
         return RespDTO.onSuc(medDefectFeedbackFacade.changeQcResult(changeQcResultVO));
     }
 
     @ApiOperation(value = "修改质控条目[by:songxl]",
-            notes = "")
+            notes = "optResultAlgVO:操作条目,casesEntryId、msg、score必填<br>")
     @PostMapping("/updCase")
     @SysLogger("updCase")
     @Transactional
     public RespDTO<AnalyzeDTO> updCase(@RequestBody ChangeQcResultVO changeQcResultVO) {
-        changeQcResultVO.setType(3);
         return RespDTO.onSuc(medDefectFeedbackFacade.changeQcResult(changeQcResultVO));
     }