|
@@ -237,7 +237,7 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
// 加载词库数据
|
|
|
// List<LibraryForDiagnoseDTO> libraryForDiagnoseDTOS = libraryInfoFacade.getLibraryForDiagnose();
|
|
|
// Set<String> set = libraryForDiagnoseDTOS.stream().map(row -> row.getName()+ "_"+row.getTypeId()).collect(Collectors.toSet());
|
|
|
- Set<String> set = libraryInfoFacade.getLibraryForDiagnose2();
|
|
|
+ Set<String> libSet = libraryInfoFacade.getLibraryForDiagnose2();
|
|
|
// 明细数据
|
|
|
List<DiagnoseDetail> diagnoseDetailList = new ArrayList<>();
|
|
|
List<DiagnoseDetail> disFeature = new ArrayList<>(); // 诊断特征
|
|
@@ -247,7 +247,7 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
List<DiagnoseQuestion> diagnoseQuestionList = new ArrayList<>();
|
|
|
|
|
|
// 处理诊断特征业务(校验编码|标准词|关联词|结果)
|
|
|
- doDisFuture(diagnoseWrapper, param, set, disFeature, diagnoseQuestionList);
|
|
|
+ doDisFuture(diagnoseWrapper, param, libSet, disFeature, diagnoseQuestionList);
|
|
|
// 处理诊断公式业务(校验公式)
|
|
|
doDisFormula(diagnoseWrapper, param, disformula, diagnoseQuestionList);
|
|
|
|
|
@@ -280,7 +280,8 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
public String verifyAllData() {
|
|
|
StringBuffer res = new StringBuffer();
|
|
|
Long time1 = System.currentTimeMillis();
|
|
|
- Set<String> questionSet = new HashSet<>(); // 问题词去重变量
|
|
|
+ Set<String> diagnosetQuestionSet = new HashSet<>(); // 问题词去重变量
|
|
|
+ Set<String> diagnoseName = new HashSet<>(); // 诊断依据主表修改变量
|
|
|
if (!verifyFlag) {
|
|
|
throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "其他人正在执行此操作,请稍后再试!");
|
|
|
}
|
|
@@ -308,7 +309,7 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
// 加载词库数据
|
|
|
// List<LibraryForDiagnoseDTO> libraryForDiagnoseDTOS = libraryInfoFacade.getLibraryForDiagnose();
|
|
|
// Set<String> set = libraryForDiagnoseDTOS.stream().map(row -> row.getName()+ "_"+row.getTypeId()).collect(Collectors.toSet());
|
|
|
- Set<String> set = libraryInfoFacade.getLibraryForDiagnose2();
|
|
|
+ Set<String> libSet = libraryInfoFacade.getLibraryForDiagnose2();
|
|
|
Long time3 = System.currentTimeMillis();
|
|
|
res.append("加载词库:" + (time3-time2)/1000.0).append("秒,");
|
|
|
Boolean flag = true;
|
|
@@ -316,46 +317,67 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
// 校验明细数据
|
|
|
for (String key : map.keySet()) {
|
|
|
List<DiagnoseDetail> detail = map.get(key);
|
|
|
+ List<String> codeList = detail.stream().map(row -> row.getCode()).distinct().collect(Collectors.toList());
|
|
|
int j = 0;
|
|
|
if (ListUtil.isNotEmpty(detail)) {
|
|
|
// 判断诊断名称是否在词库中
|
|
|
- flag = verifyExist(set, detail.get(0).getDisName(), Arrays.asList(LexiconTypeEnum.DIAGNOSIS.getKey()));
|
|
|
+ flag = verifyExist(libSet, detail.get(0).getDisName(), Arrays.asList(LexiconTypeEnum.DIAGNOSIS.getKey()));
|
|
|
if (!flag) {
|
|
|
DiagnoseQuestion diagnoseQuestion1 = createDiagnoseQuestion(detail.get(0).getId(), detail.get(0).getDisName(), DiagnoseFeatureTypeEnum.Dis.getKey(),
|
|
|
detail.get(0).getDisName(), DiagnoseFieldEnum.disName.getKey(), initCommonParam(), ++j);
|
|
|
diagnoseQuestionList.add(diagnoseQuestion1);
|
|
|
+ diagnoseName.add(diagnoseQuestion1.getDisName());
|
|
|
}
|
|
|
|
|
|
for (DiagnoseDetail bean : detail) {
|
|
|
boolean updateFlag = false;
|
|
|
if (DiagnoseTypeEnum.Confirmed.getKey() == bean.getType() || (DiagnoseTypeEnum.Examination.getKey() == bean.getType() || (DiagnoseTypeEnum.Vigilant.getKey() == bean.getType()))) {
|
|
|
- // 不需要校验公式
|
|
|
+ // 校验公式
|
|
|
+ String oldVerifyFormula = bean.getVerifyFormula();
|
|
|
+ String errMsg = VerifyUtil.verifyFormula(codeList, bean.getFormula());
|
|
|
+ if (StringUtil.isNotEmpty(errMsg)) {
|
|
|
+ bean.setVerifyFormula(errMsg);
|
|
|
+ diagnoseName.add(bean.getDisName());
|
|
|
+ // 不需要添加问题词
|
|
|
+ } else {
|
|
|
+ bean.setVerifyFormula("");
|
|
|
+ }
|
|
|
+ if (!oldVerifyFormula.equals(bean.getVerifyFormula())) {
|
|
|
+ updateFlag = true;
|
|
|
+ }
|
|
|
} else {
|
|
|
// 校验编码
|
|
|
-// if (StringUtil.isNotEmpty(bean.getCode())) {
|
|
|
-// flag = VerifyUtil.verifyCode(String.valueOf(bean.getType()), bean.getCode());
|
|
|
-// if (!flag) {
|
|
|
-// bean.setVerifyCode(bean.getCode());
|
|
|
+ String oldVerifyCode = bean.getVerifyCode();
|
|
|
+ if (StringUtil.isNotEmpty(bean.getCode())) {
|
|
|
+ flag = VerifyUtil.verifyCode(String.valueOf(bean.getType()), bean.getCode());
|
|
|
+ if (!flag) {
|
|
|
+ bean.setVerifyCode(bean.getCode());
|
|
|
+ diagnoseName.add(bean.getDisName());
|
|
|
+ // 不需要添加问题词
|
|
|
// DiagnoseQuestion diagnoseQuestion = createDiagnoseQuestion(bean.getDiagnoseId(), bean.getDisName(), bean.getType(),
|
|
|
// bean.getCode(), DiagnoseFieldEnum.code.getKey(), param, ++j);
|
|
|
// diagnoseQuestionList.add(diagnoseQuestion);
|
|
|
-// } else {
|
|
|
-// bean.setVerifyCode(""); // 将原值清空
|
|
|
-// }
|
|
|
-// }
|
|
|
+ } else {
|
|
|
+ bean.setVerifyCode(""); // 将原值清空
|
|
|
+ }
|
|
|
+ if (!oldVerifyCode.equals(bean.getVerifyCode())) {
|
|
|
+ updateFlag = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
// 校验标准词
|
|
|
if (StringUtil.isNotEmpty(bean.getStandard())) {
|
|
|
String oldVerifyStandard = bean.getVerifyStandard();
|
|
|
typeList = DiagnoseTypeConvertUtil.diagnoseType2LibType(bean.getType(), DiagnoseFieldEnum.standard.getKey());
|
|
|
- flag = verifyExist(set, bean.getStandard(), typeList);
|
|
|
+ flag = verifyExist(libSet, bean.getStandard(), typeList);
|
|
|
if (!flag) {
|
|
|
bean.setVerifyStandard(bean.getStandard());
|
|
|
DiagnoseQuestion diagnoseQuestion = createDiagnoseQuestion(bean.getDiagnoseId(), bean.getDisName(), bean.getType(),
|
|
|
bean.getStandard(), DiagnoseFieldEnum.standard.getKey(), param, ++j);
|
|
|
- if (addDiagnoseQuestion(set, diagnoseQuestion)) {
|
|
|
+ if (addDiagnoseQuestion(diagnosetQuestionSet, diagnoseQuestion)) {
|
|
|
diagnoseQuestionList.add(diagnoseQuestion);
|
|
|
}
|
|
|
+ diagnoseName.add(bean.getDisName());
|
|
|
} else {
|
|
|
bean.setVerifyStandard(""); // 将原值清空
|
|
|
}
|
|
@@ -371,15 +393,16 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
StringBuffer sb = new StringBuffer();
|
|
|
for (String s : arr) {
|
|
|
typeList = DiagnoseTypeConvertUtil.diagnoseType2LibType(bean.getType(), DiagnoseFieldEnum.relation.getKey());
|
|
|
- flag = verifyExist(set, s.trim(), typeList);
|
|
|
+ flag = verifyExist(libSet, s.trim(), typeList);
|
|
|
if (!flag) {
|
|
|
sb.append(s).append("、");
|
|
|
bean.setVerifyRelation(bean.getRelation());
|
|
|
DiagnoseQuestion diagnoseQuestion = createDiagnoseQuestion(bean.getDiagnoseId(), bean.getDisName(), bean.getType(),
|
|
|
s.trim(), DiagnoseFieldEnum.relation.getKey(), param, ++j);
|
|
|
- if (addDiagnoseQuestion(set, diagnoseQuestion)) {
|
|
|
+ if (addDiagnoseQuestion(diagnosetQuestionSet, diagnoseQuestion)) {
|
|
|
diagnoseQuestionList.add(diagnoseQuestion);
|
|
|
}
|
|
|
+ diagnoseName.add(bean.getDisName());
|
|
|
}
|
|
|
}
|
|
|
String errWord = sb.toString();
|
|
@@ -397,14 +420,15 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
if (StringUtil.isNotEmpty(bean.getResult())) {
|
|
|
String oldVerifyResult = bean.getVerifyResult();
|
|
|
typeList = DiagnoseTypeConvertUtil.diagnoseType2LibType(bean.getType(), DiagnoseFieldEnum.result.getKey());
|
|
|
- flag = verifyExist(set, bean.getResult(), typeList);
|
|
|
+ flag = verifyExist(libSet, bean.getResult(), typeList);
|
|
|
if (!flag) {
|
|
|
bean.setVerifyResult(bean.getResult());
|
|
|
DiagnoseQuestion diagnoseQuestion = createDiagnoseQuestion(bean.getDiagnoseId(), bean.getDisName(), bean.getType(),
|
|
|
bean.getStandard(), DiagnoseFieldEnum.standard.getKey(), param, ++j);
|
|
|
- if (addDiagnoseQuestion(set, diagnoseQuestion)) {
|
|
|
+ if (addDiagnoseQuestion(diagnosetQuestionSet, diagnoseQuestion)) {
|
|
|
diagnoseQuestionList.add(diagnoseQuestion);
|
|
|
}
|
|
|
+ diagnoseName.add(bean.getDisName());
|
|
|
} else {
|
|
|
bean.setVerifyResult(""); // 将原值清空
|
|
|
}
|
|
@@ -440,13 +464,11 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
Long time6 = System.currentTimeMillis();
|
|
|
res.append("新增问题词" + diagnoseQuestionList.size() + "条:" + (time6-time5)/1000.0).append("秒,");
|
|
|
|
|
|
- List<String> disNameList = diagnoseQuestionList.stream().map(row -> row.getDisName()).distinct().collect(Collectors.toList());
|
|
|
-
|
|
|
// 修改问题词表的状态
|
|
|
List<Diagnose> updateDiagnose = new ArrayList<>();
|
|
|
for (Diagnose diagnose : diagnoseListWithDB) {
|
|
|
String oldHasQueston = diagnose.getHasQuestion();
|
|
|
- if (disNameList.contains(diagnose.getDisName())) {
|
|
|
+ if (diagnoseName.contains(diagnose.getDisName())) {
|
|
|
diagnose.setHasQuestion(String.valueOf(HasQuestionEnum.HAS_QUESTION.getKey()));
|
|
|
} else {
|
|
|
diagnose.setHasQuestion(String.valueOf(HasQuestionEnum.NO_QUESTION.getKey()));
|
|
@@ -525,17 +547,19 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
List<Integer> typeList = new ArrayList<>();
|
|
|
|
|
|
// 校验编码
|
|
|
-// if (StringUtil.isNotEmpty(bean.getCode())) {
|
|
|
-// flag = VerifyUtil.verifyCode(String.valueOf(bean.getType()), bean.getCode());
|
|
|
-// if (!flag) {
|
|
|
-// diagnoseDetail.setVerifyCode(bean.getCode());
|
|
|
+ if (StringUtil.isNotEmpty(bean.getCode())) {
|
|
|
+ flag = VerifyUtil.verifyCode(String.valueOf(bean.getType()), bean.getCode());
|
|
|
+ if (!flag) {
|
|
|
+ diagnoseDetail.setVerifyCode(bean.getCode());
|
|
|
+ param.setFlag(HasQuestionEnum.HAS_QUESTION.getKey());
|
|
|
+ // 不需要添加问题词
|
|
|
// DiagnoseQuestion diagnoseQuestion = createDiagnoseQuestion(diagnoseWrapper.getId(), diagnoseWrapper.getDisName(), bean.getType(),
|
|
|
// bean.getCode(), DiagnoseFieldEnum.code.getKey(), param, ++j);
|
|
|
// if (addDiagnoseQuestion(questionSet, diagnoseQuestion)) {
|
|
|
// diagnoseQuestionList.add(diagnoseQuestion);
|
|
|
// }
|
|
|
-// }
|
|
|
-// }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
// 校验标准词
|
|
|
if (StringUtil.isNotEmpty(bean.getStandard())) {
|