|
@@ -6,12 +6,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.diagbot.dto.ConceptBaseDTO;
|
|
|
import com.diagbot.dto.DiagnoseDetailSaveDTO;
|
|
|
import com.diagbot.dto.DiagnosePageDTO;
|
|
|
+import com.diagbot.dto.LibraryForDiagnoseDTO;
|
|
|
import com.diagbot.entity.CommonParam;
|
|
|
import com.diagbot.entity.Diagnose;
|
|
|
import com.diagbot.entity.DiagnoseDetail;
|
|
|
import com.diagbot.entity.DiagnoseDetailSave;
|
|
|
import com.diagbot.entity.DiagnoseQuestion;
|
|
|
import com.diagbot.entity.wrapper.DiagnoseWrapper;
|
|
|
+import com.diagbot.enums.DiagnoseFieldEnum;
|
|
|
import com.diagbot.enums.DiagnoseTypeEnum;
|
|
|
import com.diagbot.enums.InsertOrUpdateEnum;
|
|
|
import com.diagbot.enums.IsDeleteEnum;
|
|
@@ -23,6 +25,9 @@ import com.diagbot.service.DiagnoseQuestionService;
|
|
|
import com.diagbot.service.impl.DiagnoseServiceImpl;
|
|
|
import com.diagbot.util.BeanUtil;
|
|
|
import com.diagbot.util.DateUtil;
|
|
|
+import com.diagbot.util.DiagnoseTypeConvertUtil;
|
|
|
+import com.diagbot.util.ListUtil;
|
|
|
+import com.diagbot.util.StringUtil;
|
|
|
import com.diagbot.vo.DeleteDiagnoseVO;
|
|
|
import com.diagbot.vo.DiagnosePageVO;
|
|
|
import com.diagbot.vo.DiseaseIndexVO;
|
|
@@ -48,6 +53,8 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
DiagnoseQuestionService diagnoseQuestionService;
|
|
|
@Autowired
|
|
|
DiagnoseDetailFacade diagnoseDetailFacade;
|
|
|
+ @Autowired
|
|
|
+ LibraryInfoFacade libraryInfoFacade;
|
|
|
|
|
|
/**
|
|
|
* 诊断依据分页
|
|
@@ -129,11 +136,11 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * 诊断依据新增或修改
|
|
|
+ * 诊断依据校验数据,新增或更新主表信息,覆盖明细表和问题词表
|
|
|
*
|
|
|
* @param diagnoseWrapper
|
|
|
*/
|
|
|
- public void insertOrUpdate(DiagnoseWrapper diagnoseWrapper) {
|
|
|
+ public List<DiagnoseDetail> verifyData(DiagnoseWrapper diagnoseWrapper) {
|
|
|
CommonParam param = initCommonParam();
|
|
|
param.setPerson(diagnoseWrapper.getModifier());
|
|
|
|
|
@@ -156,9 +163,16 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
diagnose.setGmtModified(param.getNow());
|
|
|
this.saveOrUpdate(diagnose);
|
|
|
|
|
|
+
|
|
|
+ // 导入词库数据
|
|
|
+ List<LibraryForDiagnoseDTO> libraryForDiagnoseDTOS = libraryInfoFacade.getLibraryForDiagnose();
|
|
|
+
|
|
|
// 新增明细
|
|
|
List<DiagnoseDetail> diagnoseDetailList = new ArrayList<>();
|
|
|
- int i = 0;
|
|
|
+ // 新增问题词
|
|
|
+ List<DiagnoseQuestion> diagnoseQuestionList = new ArrayList<>();
|
|
|
+
|
|
|
+ int i = 0, j = 0;
|
|
|
// 遍历诊断特征
|
|
|
for (DiagnoseDetailSave bean : diagnoseWrapper.getDisFeature()) {
|
|
|
DiagnoseDetail diagnoseDetail = new DiagnoseDetail();
|
|
@@ -170,7 +184,50 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
diagnoseDetail.setGmtModified(param.getNow());
|
|
|
diagnoseDetail.setDisName(diagnose.getDisName());
|
|
|
diagnoseDetail.setOrderNo(++i);
|
|
|
- // TODO 校验数据
|
|
|
+ boolean flag = true;
|
|
|
+ List<Integer> typeList = new ArrayList<>();
|
|
|
+
|
|
|
+ // 校验编码
|
|
|
+ // TODO
|
|
|
+
|
|
|
+ // 校验标准词
|
|
|
+ if (StringUtil.isNotEmpty(bean.getStandard())) {
|
|
|
+ typeList = DiagnoseTypeConvertUtil.diagnoseType2LibType(bean.getType(), DiagnoseFieldEnum.standard.getKey());
|
|
|
+ flag = verifyExist(libraryForDiagnoseDTOS, bean.getStandard(), typeList);
|
|
|
+ if (!flag) {
|
|
|
+ diagnoseDetail.setVerifyStandard("1");
|
|
|
+ DiagnoseQuestion diagnoseQuestion = createDiagnoseQuestion(diagnose.getId(), diagnose.getDisName(), bean.getType(),
|
|
|
+ bean.getStandard(), DiagnoseFieldEnum.standard.getKey(), initCommonParam(), ++j);
|
|
|
+ diagnoseQuestionList.add(diagnoseQuestion);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 校验关联词
|
|
|
+ if (StringUtil.isNotEmpty(bean.getRelation())) {
|
|
|
+ String[] arr = bean.getRelation().split("、");
|
|
|
+ for (String s : arr) {
|
|
|
+ typeList = DiagnoseTypeConvertUtil.diagnoseType2LibType(bean.getType(), DiagnoseFieldEnum.relation.getKey());
|
|
|
+ flag = verifyExist(libraryForDiagnoseDTOS, s.trim(), typeList);
|
|
|
+ if (!flag) {
|
|
|
+ diagnoseDetail.setVerifyRelation("1");
|
|
|
+ DiagnoseQuestion diagnoseQuestion = createDiagnoseQuestion(diagnose.getId(), diagnose.getDisName(), bean.getType(),
|
|
|
+ s.trim(), DiagnoseFieldEnum.relation.getKey(), initCommonParam(), ++j);
|
|
|
+ diagnoseQuestionList.add(diagnoseQuestion);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 校验结果
|
|
|
+ if (StringUtil.isNotEmpty(bean.getResult())) {
|
|
|
+ typeList = DiagnoseTypeConvertUtil.diagnoseType2LibType(bean.getType(), DiagnoseFieldEnum.result.getKey());
|
|
|
+ flag = verifyExist(libraryForDiagnoseDTOS, bean.getResult(), typeList);
|
|
|
+ if (!flag) {
|
|
|
+ diagnoseDetail.setVerifyResult("1");
|
|
|
+ DiagnoseQuestion diagnoseQuestion = createDiagnoseQuestion(diagnose.getId(), diagnose.getDisName(), bean.getType(),
|
|
|
+ bean.getStandard(), DiagnoseFieldEnum.standard.getKey(), initCommonParam(), ++j);
|
|
|
+ diagnoseQuestionList.add(diagnoseQuestion);
|
|
|
+ }
|
|
|
+ }
|
|
|
diagnoseDetailList.add(diagnoseDetail);
|
|
|
}
|
|
|
|
|
@@ -185,16 +242,26 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
diagnoseDetail.setGmtModified(param.getNow());
|
|
|
diagnoseDetail.setDisName(diagnose.getDisName());
|
|
|
diagnoseDetail.setOrderNo(++i);
|
|
|
- // TODO 校验数据
|
|
|
+ // 校验公式
|
|
|
+ // TODO
|
|
|
diagnoseDetailList.add(diagnoseDetail);
|
|
|
}
|
|
|
diagnoseDetailService.saveBatch(diagnoseDetailList);
|
|
|
|
|
|
-
|
|
|
- // 新增问题词
|
|
|
- // TODO
|
|
|
+ // 有问题词逻辑
|
|
|
+ if (ListUtil.isNotEmpty(diagnoseQuestionList)) {
|
|
|
+ // 新增问题词数据
|
|
|
+ diagnoseQuestionService.saveBatch(diagnoseQuestionList);
|
|
|
+ }
|
|
|
+ // 更新主表状态
|
|
|
+ this.update(new UpdateWrapper<Diagnose>()
|
|
|
+ .set("has_question", ListUtil.isNotEmpty(diagnoseQuestionList)? 1 : 0)
|
|
|
+ .eq("id", diagnose.getId())
|
|
|
+ );
|
|
|
+ return diagnoseDetailList;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 初始化参数
|
|
|
*
|
|
@@ -206,4 +273,53 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
param.setInsertOrUpdate(InsertOrUpdateEnum.Insert.getKey());
|
|
|
return param;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 校验词库中是否存在
|
|
|
+ *
|
|
|
+ * @param library 词库数据
|
|
|
+ * @param name 界面输入
|
|
|
+ * @param type 转换类型
|
|
|
+ * @return 校验结果
|
|
|
+ */
|
|
|
+ public boolean verifyExist(List<LibraryForDiagnoseDTO> library, String name, List<Integer> type) {
|
|
|
+ for(Integer integer : type) {
|
|
|
+ LibraryForDiagnoseDTO libraryForDiagnoseDTO = new LibraryForDiagnoseDTO();
|
|
|
+ libraryForDiagnoseDTO.setName(name);
|
|
|
+ libraryForDiagnoseDTO.setTypeId(integer);
|
|
|
+ if (library.contains(libraryForDiagnoseDTO)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成问题词
|
|
|
+ *
|
|
|
+ * @param disName
|
|
|
+ * @param type
|
|
|
+ * @param questionName
|
|
|
+ * @param commonParam
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public DiagnoseQuestion createDiagnoseQuestion(Long diagnoseId, String disName, Integer type, String questionName, Integer questionType, CommonParam commonParam, Integer orderNo) {
|
|
|
+ DiagnoseQuestion dq = new DiagnoseQuestion();
|
|
|
+ dq.setCreator(commonParam.getPerson());
|
|
|
+ dq.setGmtCreate(commonParam.getNow());
|
|
|
+ dq.setModifier(commonParam.getPerson());
|
|
|
+ dq.setGmtModified(commonParam.getNow());
|
|
|
+ dq.setDisName(disName);
|
|
|
+ dq.setDiagnoseId(diagnoseId);
|
|
|
+ dq.setType(type);
|
|
|
+ dq.setQuestionName(questionName);
|
|
|
+ dq.setQuestionType(questionType);
|
|
|
+ dq.setOrderNo(orderNo);
|
|
|
+ return dq;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|