|
@@ -16,6 +16,7 @@ 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.DiagnoseFeatureTypeEnum;
|
|
|
import com.diagbot.enums.DiagnoseFieldEnum;
|
|
|
import com.diagbot.enums.DiagnoseTypeEnum;
|
|
|
import com.diagbot.enums.HasQuestionEnum;
|
|
@@ -43,6 +44,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -158,47 +160,70 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
CommonParam param = initCommonParam();
|
|
|
param.setPerson(diagnoseWrapper.getModifier());
|
|
|
|
|
|
- Diagnose diagnose = new Diagnose();
|
|
|
- BeanUtil.copyProperties(diagnoseWrapper, diagnose);
|
|
|
- if (diagnoseWrapper.getId() == null) { //新增
|
|
|
- diagnose.setCreator(param.getPerson());
|
|
|
- diagnose.setGmtCreate(param.getNow());
|
|
|
- } else { // 修改
|
|
|
- // 明细删除
|
|
|
- diagnoseDetailService.remove(new QueryWrapper<DiagnoseDetail>()
|
|
|
- .eq("diagnose_id", diagnoseWrapper.getId())
|
|
|
- );
|
|
|
- // 删除问题词
|
|
|
- diagnoseQuestionService.remove(new QueryWrapper<DiagnoseQuestion>()
|
|
|
- .eq("diagnose_id", diagnoseWrapper.getId())
|
|
|
- );
|
|
|
- param.setInsertOrUpdate(InsertOrUpdateEnum.Update.getKey());
|
|
|
+ // 更新主表业务(同时删除明细表和问题词表)
|
|
|
+ Long id = insertOrUpdateDiagnose(diagnoseWrapper, param);
|
|
|
+ diagnoseWrapper.setId(id);
|
|
|
+ // 加载词库数据
|
|
|
+ List<LibraryForDiagnoseDTO> libraryForDiagnoseDTOS = libraryInfoFacade.getLibraryForDiagnose();
|
|
|
+ // 明细数据
|
|
|
+ List<DiagnoseDetail> diagnoseDetailList = new ArrayList<>();
|
|
|
+ // 问题词数据
|
|
|
+ List<DiagnoseQuestion> diagnoseQuestionList = new ArrayList<>();
|
|
|
+
|
|
|
+ // 处理诊断特征业务(校验编码|标准词|关联词|结果)
|
|
|
+ doDisFuture(diagnoseWrapper, param, libraryForDiagnoseDTOS, diagnoseDetailList, diagnoseQuestionList);
|
|
|
+ // 处理诊断公式业务(校验公式)
|
|
|
+ doDisFormula(diagnoseWrapper, param, diagnoseDetailList, diagnoseQuestionList);
|
|
|
+
|
|
|
+ // 保存明细
|
|
|
+ diagnoseDetailService.saveBatch(diagnoseDetailList);
|
|
|
+ // 保存问题词
|
|
|
+ if (ListUtil.isNotEmpty(diagnoseQuestionList)) {
|
|
|
+ // 新增问题词数据
|
|
|
+ diagnoseQuestionService.saveBatch(diagnoseQuestionList);
|
|
|
}
|
|
|
- diagnose.setGmtModified(param.getNow());
|
|
|
- this.saveOrUpdate(diagnose);
|
|
|
|
|
|
+ // 更新主表状态
|
|
|
+ this.update(new UpdateWrapper<Diagnose>()
|
|
|
+ .set("has_question", ListUtil.isNotEmpty(diagnoseQuestionList) ? HasQuestionEnum.HAS_QUESTION.getKey() : HasQuestionEnum.NO_QUESTION.getKey())
|
|
|
+ .eq("id", diagnoseWrapper.getId())
|
|
|
+ );
|
|
|
+ verifyDataDTO.setHasQuestion(ListUtil.isNotEmpty(diagnoseQuestionList) ? HasQuestionEnum.HAS_QUESTION.getKey() : HasQuestionEnum.NO_QUESTION.getKey());
|
|
|
+ verifyDataDTO.setDiagnoseDetailList(diagnoseDetailList);
|
|
|
+ return verifyDataDTO;
|
|
|
+ }
|
|
|
|
|
|
- // 导入词库数据
|
|
|
- List<LibraryForDiagnoseDTO> libraryForDiagnoseDTOS = libraryInfoFacade.getLibraryForDiagnose();
|
|
|
|
|
|
- // 新增明细
|
|
|
- List<DiagnoseDetail> diagnoseDetailList = new ArrayList<>();
|
|
|
- // 新增问题词
|
|
|
- List<DiagnoseQuestion> diagnoseQuestionList = new ArrayList<>();
|
|
|
|
|
|
- int i = 0, j = 0;
|
|
|
+ /**
|
|
|
+ * 处理诊断特征业务(校验诊断名称|编码|标准词|关联词|结果)
|
|
|
+ *
|
|
|
+ * @param diagnoseWrapper
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public void doDisFuture(DiagnoseWrapper diagnoseWrapper, CommonParam param, List<LibraryForDiagnoseDTO> libraryForDiagnoseDTOS, List<DiagnoseDetail> diagnoseDetailList, List<DiagnoseQuestion> diagnoseQuestionList) {
|
|
|
+ int i = param.getI();
|
|
|
+ int j = param.getJ();
|
|
|
+
|
|
|
+ // 判断诊断名称是否在词库中
|
|
|
+ boolean flag = true;
|
|
|
+ flag = verifyExist(libraryForDiagnoseDTOS, diagnoseWrapper.getDisName(), Arrays.asList(LexiconTypeEnum.DIAGNOSIS.getKey()));
|
|
|
+ DiagnoseQuestion diagnoseQuestion1 = createDiagnoseQuestion(diagnoseWrapper.getId(), diagnoseWrapper.getDisName(), DiagnoseFeatureTypeEnum.Dis.getKey(),
|
|
|
+ diagnoseWrapper.getDisName(), DiagnoseFieldEnum.disName.getKey(), initCommonParam(), ++j);
|
|
|
+ diagnoseQuestionList.add(diagnoseQuestion1);
|
|
|
+
|
|
|
// 遍历诊断特征
|
|
|
for (DiagnoseDetailSave bean : diagnoseWrapper.getDisFeature()) {
|
|
|
DiagnoseDetail diagnoseDetail = new DiagnoseDetail();
|
|
|
BeanUtil.copyProperties(bean, diagnoseDetail);
|
|
|
- diagnoseDetail.setDiagnoseId(diagnose.getId());
|
|
|
+ diagnoseDetail.setDiagnoseId(diagnoseWrapper.getId());
|
|
|
diagnoseDetail.setCreator(param.getPerson());
|
|
|
diagnoseDetail.setGmtCreate(param.getNow());
|
|
|
diagnoseDetail.setModifier(param.getPerson());
|
|
|
diagnoseDetail.setGmtModified(param.getNow());
|
|
|
- diagnoseDetail.setDisName(diagnose.getDisName());
|
|
|
+ diagnoseDetail.setDisName(diagnoseWrapper.getDisName());
|
|
|
diagnoseDetail.setOrderNo(++i);
|
|
|
- boolean flag = true;
|
|
|
List<Integer> typeList = new ArrayList<>();
|
|
|
|
|
|
// 校验编码
|
|
@@ -210,7 +235,7 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
flag = verifyExist(libraryForDiagnoseDTOS, bean.getStandard(), typeList);
|
|
|
if (!flag) {
|
|
|
diagnoseDetail.setVerifyStandard("1");
|
|
|
- DiagnoseQuestion diagnoseQuestion = createDiagnoseQuestion(diagnose.getId(), diagnose.getDisName(), bean.getType(),
|
|
|
+ DiagnoseQuestion diagnoseQuestion = createDiagnoseQuestion(diagnoseWrapper.getId(), diagnoseWrapper.getDisName(), bean.getType(),
|
|
|
bean.getStandard(), DiagnoseFieldEnum.standard.getKey(), initCommonParam(), ++j);
|
|
|
diagnoseQuestionList.add(diagnoseQuestion);
|
|
|
}
|
|
@@ -224,7 +249,7 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
flag = verifyExist(libraryForDiagnoseDTOS, s.trim(), typeList);
|
|
|
if (!flag) {
|
|
|
diagnoseDetail.setVerifyRelation("1");
|
|
|
- DiagnoseQuestion diagnoseQuestion = createDiagnoseQuestion(diagnose.getId(), diagnose.getDisName(), bean.getType(),
|
|
|
+ DiagnoseQuestion diagnoseQuestion = createDiagnoseQuestion(diagnoseWrapper.getId(), diagnoseWrapper.getDisName(), bean.getType(),
|
|
|
s.trim(), DiagnoseFieldEnum.relation.getKey(), initCommonParam(), ++j);
|
|
|
diagnoseQuestionList.add(diagnoseQuestion);
|
|
|
}
|
|
@@ -237,44 +262,75 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
flag = verifyExist(libraryForDiagnoseDTOS, bean.getResult(), typeList);
|
|
|
if (!flag) {
|
|
|
diagnoseDetail.setVerifyResult("1");
|
|
|
- DiagnoseQuestion diagnoseQuestion = createDiagnoseQuestion(diagnose.getId(), diagnose.getDisName(), bean.getType(),
|
|
|
+ DiagnoseQuestion diagnoseQuestion = createDiagnoseQuestion(diagnoseWrapper.getId(), diagnoseWrapper.getDisName(), bean.getType(),
|
|
|
bean.getStandard(), DiagnoseFieldEnum.standard.getKey(), initCommonParam(), ++j);
|
|
|
diagnoseQuestionList.add(diagnoseQuestion);
|
|
|
}
|
|
|
}
|
|
|
diagnoseDetailList.add(diagnoseDetail);
|
|
|
}
|
|
|
+ param.setI(i);
|
|
|
+ param.setJ(j);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
+ /**
|
|
|
+ * 处理诊断公式业务(校验公式)
|
|
|
+ *
|
|
|
+ * @param diagnoseWrapper
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public void doDisFormula(DiagnoseWrapper diagnoseWrapper, CommonParam param, List<DiagnoseDetail> diagnoseDetailList, List<DiagnoseQuestion> diagnoseQuestionList) {
|
|
|
+ int i = param.getI();
|
|
|
+ int j = param.getJ();
|
|
|
// 遍历诊断公式
|
|
|
for (DiagnoseDetailSave bean : diagnoseWrapper.getDisformula()) {
|
|
|
DiagnoseDetail diagnoseDetail = new DiagnoseDetail();
|
|
|
BeanUtil.copyProperties(bean, diagnoseDetail);
|
|
|
- diagnoseDetail.setDiagnoseId(diagnose.getId());
|
|
|
+ diagnoseDetail.setDiagnoseId(diagnoseWrapper.getId());
|
|
|
diagnoseDetail.setCreator(param.getPerson());
|
|
|
diagnoseDetail.setGmtCreate(param.getNow());
|
|
|
diagnoseDetail.setModifier(param.getPerson());
|
|
|
diagnoseDetail.setGmtModified(param.getNow());
|
|
|
- diagnoseDetail.setDisName(diagnose.getDisName());
|
|
|
+ diagnoseDetail.setDisName(diagnoseWrapper.getDisName());
|
|
|
diagnoseDetail.setOrderNo(++i);
|
|
|
// 校验公式
|
|
|
// TODO
|
|
|
diagnoseDetailList.add(diagnoseDetail);
|
|
|
}
|
|
|
- diagnoseDetailService.saveBatch(diagnoseDetailList);
|
|
|
+ param.setI(i);
|
|
|
+ param.setJ(j);
|
|
|
+ }
|
|
|
|
|
|
- // 有问题词逻辑
|
|
|
- if (ListUtil.isNotEmpty(diagnoseQuestionList)) {
|
|
|
- // 新增问题词数据
|
|
|
- diagnoseQuestionService.saveBatch(diagnoseQuestionList);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新主表业务(同时删除明细表和问题词表)
|
|
|
+ *
|
|
|
+ * @param diagnoseWrapper
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Long insertOrUpdateDiagnose(DiagnoseWrapper diagnoseWrapper, CommonParam param) {
|
|
|
+ Diagnose diagnose = new Diagnose();
|
|
|
+ BeanUtil.copyProperties(diagnoseWrapper, diagnose);
|
|
|
+ if (diagnoseWrapper.getId() == null) { //新增
|
|
|
+ diagnose.setCreator(param.getPerson());
|
|
|
+ diagnose.setGmtCreate(param.getNow());
|
|
|
+ } else { // 修改
|
|
|
+ // 明细删除
|
|
|
+ diagnoseDetailService.remove(new QueryWrapper<DiagnoseDetail>()
|
|
|
+ .eq("diagnose_id", diagnoseWrapper.getId())
|
|
|
+ );
|
|
|
+ // 删除问题词
|
|
|
+ diagnoseQuestionService.remove(new QueryWrapper<DiagnoseQuestion>()
|
|
|
+ .eq("diagnose_id", diagnoseWrapper.getId())
|
|
|
+ );
|
|
|
+ param.setInsertOrUpdate(InsertOrUpdateEnum.Update.getKey());
|
|
|
}
|
|
|
- // 更新主表状态
|
|
|
- this.update(new UpdateWrapper<Diagnose>()
|
|
|
- .set("has_question", ListUtil.isNotEmpty(diagnoseQuestionList) ? HasQuestionEnum.HAS_QUESTION.getKey() : HasQuestionEnum.NO_QUESTION.getKey())
|
|
|
- .eq("id", diagnose.getId())
|
|
|
- );
|
|
|
- verifyDataDTO.setHasQuestion(ListUtil.isNotEmpty(diagnoseQuestionList) ? HasQuestionEnum.HAS_QUESTION.getKey() : HasQuestionEnum.NO_QUESTION.getKey());
|
|
|
- verifyDataDTO.setDiagnoseDetailList(diagnoseDetailList);
|
|
|
- return verifyDataDTO;
|
|
|
+ diagnose.setGmtModified(param.getNow());
|
|
|
+ this.saveOrUpdate(diagnose);
|
|
|
+ return diagnose.getId();
|
|
|
}
|
|
|
|
|
|
|
|
@@ -289,6 +345,11 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
if (HasQuestionEnum.HAS_QUESTION.getKey() == verifyDataDTO.getHasQuestion()) {
|
|
|
throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "有问题词存在,不能更新图谱");
|
|
|
}
|
|
|
+ // 更新时间
|
|
|
+ this.update(new UpdateWrapper<Diagnose>()
|
|
|
+ .eq("id", diagnoseWrapper.getId())
|
|
|
+ .set("neo_update", new Date())
|
|
|
+ );
|
|
|
// 更新图谱对接接口
|
|
|
NeoParamVO neoParamVO = new NeoParamVO();
|
|
|
neoParamVO.setId(diagnoseWrapper.getId());
|