|
@@ -1,22 +1,34 @@
|
|
|
package com.diagbot.facade;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.diagbot.dto.ConceptBaseDTO;
|
|
|
import com.diagbot.dto.DiagnosePageDTO;
|
|
|
+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.InsertOrUpdateEnum;
|
|
|
import com.diagbot.enums.IsDeleteEnum;
|
|
|
import com.diagbot.enums.LexiconTypeEnum;
|
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
|
import com.diagbot.exception.CommonException;
|
|
|
+import com.diagbot.service.DiagnoseDetailService;
|
|
|
+import com.diagbot.service.DiagnoseQuestionService;
|
|
|
import com.diagbot.service.impl.DiagnoseServiceImpl;
|
|
|
+import com.diagbot.util.BeanUtil;
|
|
|
import com.diagbot.util.DateUtil;
|
|
|
import com.diagbot.vo.DeleteDiagnoseVO;
|
|
|
import com.diagbot.vo.DiagnosePageVO;
|
|
|
import com.diagbot.vo.DiseaseIndexVO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -25,6 +37,12 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
|
|
|
@Autowired
|
|
|
ConceptFacade conceptFacade;
|
|
|
+ @Autowired
|
|
|
+ @Qualifier("diagnoseDetailServiceImpl")
|
|
|
+ DiagnoseDetailService diagnoseDetailService;
|
|
|
+ @Autowired
|
|
|
+ @Qualifier("diagnoseQuestionServiceImpl")
|
|
|
+ DiagnoseQuestionService diagnoseQuestionService;
|
|
|
|
|
|
/**
|
|
|
* 诊断依据分页
|
|
@@ -76,4 +94,84 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
|
|
|
diseaseIndexVO.setLibType(LexiconTypeEnum.DIAGNOSIS.getKey());
|
|
|
return this.index(diseaseIndexVO);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 诊断依据新增或修改
|
|
|
+ *
|
|
|
+ * @param diagnoseWrapper
|
|
|
+ */
|
|
|
+ public void insertOrUpdate(DiagnoseWrapper diagnoseWrapper) {
|
|
|
+ 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());
|
|
|
+ }
|
|
|
+ diagnose.setGmtModified(param.getNow());
|
|
|
+ this.saveOrUpdate(diagnose);
|
|
|
+
|
|
|
+ // 新增明细
|
|
|
+ List<DiagnoseDetail> diagnoseDetailList = new ArrayList<>();
|
|
|
+ int i = 0;
|
|
|
+ // 遍历诊断特征
|
|
|
+ for (DiagnoseDetailSave bean : diagnoseWrapper.getDisFeature()) {
|
|
|
+ DiagnoseDetail diagnoseDetail = new DiagnoseDetail();
|
|
|
+ BeanUtil.copyProperties(bean, diagnoseDetail);
|
|
|
+ diagnoseDetail.setDiagnoseId(diagnose.getId());
|
|
|
+ diagnoseDetail.setCreator(param.getPerson());
|
|
|
+ diagnoseDetail.setGmtCreate(param.getNow());
|
|
|
+ diagnoseDetail.setModifier(param.getPerson());
|
|
|
+ diagnoseDetail.setGmtModified(param.getNow());
|
|
|
+ diagnoseDetail.setDisName(diagnose.getDisName());
|
|
|
+ diagnoseDetail.setOrderNo(++i);
|
|
|
+ // TODO 校验数据
|
|
|
+ diagnoseDetailList.add(diagnoseDetail);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 遍历诊断公式
|
|
|
+ for (DiagnoseDetailSave bean : diagnoseWrapper.getDisformula()) {
|
|
|
+ DiagnoseDetail diagnoseDetail = new DiagnoseDetail();
|
|
|
+ BeanUtil.copyProperties(bean, diagnoseDetail);
|
|
|
+ diagnoseDetail.setDiagnoseId(diagnose.getId());
|
|
|
+ diagnoseDetail.setCreator(param.getPerson());
|
|
|
+ diagnoseDetail.setGmtCreate(param.getNow());
|
|
|
+ diagnoseDetail.setModifier(param.getPerson());
|
|
|
+ diagnoseDetail.setGmtModified(param.getNow());
|
|
|
+ diagnoseDetail.setDisName(diagnose.getDisName());
|
|
|
+ diagnoseDetail.setOrderNo(++i);
|
|
|
+ // TODO 校验数据
|
|
|
+ diagnoseDetailList.add(diagnoseDetail);
|
|
|
+ }
|
|
|
+ diagnoseDetailService.saveBatch(diagnoseDetailList);
|
|
|
+
|
|
|
+
|
|
|
+ // 新增问题词
|
|
|
+ // TODO
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化参数
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public CommonParam initCommonParam() {
|
|
|
+ CommonParam param = new CommonParam();
|
|
|
+ param.setNow(DateUtil.now());
|
|
|
+ param.setInsertOrUpdate(InsertOrUpdateEnum.Insert.getKey());
|
|
|
+ return param;
|
|
|
+ }
|
|
|
}
|