|
@@ -1,14 +1,26 @@
|
|
package com.diagbot.facade;
|
|
package com.diagbot.facade;
|
|
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
|
+import com.diagbot.dto.InquiryDTO;
|
|
|
|
+import com.diagbot.dto.InquiryPatDTO;
|
|
import com.diagbot.entity.InquiryDetail;
|
|
import com.diagbot.entity.InquiryDetail;
|
|
import com.diagbot.entity.InquiryInfo;
|
|
import com.diagbot.entity.InquiryInfo;
|
|
|
|
+import com.diagbot.enums.IdTypeEnum;
|
|
|
|
+import com.diagbot.enums.IsDeleteEnum;
|
|
|
|
+import com.diagbot.exception.CommonErrorCode;
|
|
|
|
+import com.diagbot.exception.CommonException;
|
|
import com.diagbot.service.impl.InquiryDetailServiceImpl;
|
|
import com.diagbot.service.impl.InquiryDetailServiceImpl;
|
|
import com.diagbot.service.impl.InquiryInfoServiceImpl;
|
|
import com.diagbot.service.impl.InquiryInfoServiceImpl;
|
|
import com.diagbot.util.BeanUtil;
|
|
import com.diagbot.util.BeanUtil;
|
|
import com.diagbot.util.DateUtil;
|
|
import com.diagbot.util.DateUtil;
|
|
import com.diagbot.util.HttpUtils;
|
|
import com.diagbot.util.HttpUtils;
|
|
|
|
+import com.diagbot.util.IdCard;
|
|
|
|
+import com.diagbot.util.ListUtil;
|
|
import com.diagbot.util.StringUtil;
|
|
import com.diagbot.util.StringUtil;
|
|
import com.diagbot.vo.HospitalVO;
|
|
import com.diagbot.vo.HospitalVO;
|
|
|
|
+import com.diagbot.vo.InquiryPatInquiryVO;
|
|
|
|
+import com.diagbot.vo.InquiryPatVO;
|
|
import com.diagbot.vo.SaveInquiryVO;
|
|
import com.diagbot.vo.SaveInquiryVO;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
@@ -28,6 +40,8 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
OptInfoFacade optInfoFacade;
|
|
OptInfoFacade optInfoFacade;
|
|
|
|
+ @Autowired
|
|
|
|
+ InquiryDetailFacade inquiryDetailFacade;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
@Qualifier("inquiryDetailServiceImpl")
|
|
@Qualifier("inquiryDetailServiceImpl")
|
|
@@ -38,17 +52,54 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
|
|
saveInquiryVO.setHospitalCode("朗通通用");
|
|
saveInquiryVO.setHospitalCode("朗通通用");
|
|
}
|
|
}
|
|
Date now = DateUtil.now();
|
|
Date now = DateUtil.now();
|
|
|
|
+ // 如果是身份证,获取性别和年龄
|
|
|
|
+ if (IdTypeEnum.IdentityCard.getKey() == saveInquiryVO.getIdType()) {
|
|
|
|
+ String idNum = saveInquiryVO.getIdNum();
|
|
|
|
+ if (StringUtil.isNotBlank(idNum)) {
|
|
|
|
+ saveInquiryVO.setPatAge(IdCard.getAgeByIdCardAddOne(idNum));
|
|
|
|
+ saveInquiryVO.setPatSex(IdCard.getGenderByIdCard(idNum));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- InquiryInfo inquiryInfo = new InquiryInfo();
|
|
|
|
- BeanUtil.copyProperties(saveInquiryVO, inquiryInfo);
|
|
|
|
- inquiryInfo.setGmtCreate(now);
|
|
|
|
- inquiryInfo.setGmtModified(now);
|
|
|
|
- inquiryInfo.setIp(HttpUtils.getIpAddress());
|
|
|
|
- save(inquiryInfo);
|
|
|
|
-
|
|
|
|
|
|
+ String dateStr = DateUtil.formatDate(now);
|
|
|
|
+ InquiryInfo inquiryInfo = this.getOne(new QueryWrapper<InquiryInfo>()
|
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
|
+ .eq("hospital_code", saveInquiryVO.getHospitalCode())
|
|
|
|
+ .eq("pat_name", saveInquiryVO.getPatName())
|
|
|
|
+ .eq("id_type", saveInquiryVO.getIdType())
|
|
|
|
+ .eq("id_num", saveInquiryVO.getIdNum())
|
|
|
|
+ .apply("date_format(gmt_modified, '%Y-%m-%d')={0}", dateStr), false
|
|
|
|
+ );
|
|
|
|
+ if (inquiryInfo == null) {
|
|
|
|
+ inquiryInfo = new InquiryInfo();
|
|
|
|
+ BeanUtil.copyProperties(saveInquiryVO, inquiryInfo);
|
|
|
|
+ inquiryInfo.setGmtCreate(now);
|
|
|
|
+ inquiryInfo.setGmtModified(now);
|
|
|
|
+ inquiryInfo.setIp(HttpUtils.getIpAddress());
|
|
|
|
+ save(inquiryInfo);
|
|
|
|
+ } else {
|
|
|
|
+ inquiryInfo.setGmtModified(now);
|
|
|
|
+ inquiryInfo.setIp(HttpUtils.getIpAddress());
|
|
|
|
+ inquiryInfo.setDiagnosis(saveInquiryVO.getDiagnosis());
|
|
|
|
+ inquiryInfo.setDegree(saveInquiryVO.getDegree());
|
|
|
|
+ this.update(new UpdateWrapper<InquiryInfo>()
|
|
|
|
+ .set("ip", HttpUtils.getIpAddress())
|
|
|
|
+ .set("gmt_modified", now)
|
|
|
|
+ .set("diagnosis", saveInquiryVO.getDiagnosis())
|
|
|
|
+ .set("degree", saveInquiryVO.getDegree())
|
|
|
|
+ .eq("id", inquiryInfo.getId())
|
|
|
|
+ );
|
|
|
|
+ // 删除原明细
|
|
|
|
+ inquiryDetailFacade.update(new UpdateWrapper<InquiryDetail>()
|
|
|
|
+ .set("gmt_modified", now)
|
|
|
|
+ .set("is_deleted", IsDeleteEnum.Y.getKey())
|
|
|
|
+ .eq("inquiry_id", inquiryInfo.getId())
|
|
|
|
+ );
|
|
|
|
+ }
|
|
|
|
+ Long id = inquiryInfo.getId();
|
|
List<InquiryDetail> inquiryDetailList = BeanUtil.listCopyTo(saveInquiryVO.getDetailList(), InquiryDetail.class);
|
|
List<InquiryDetail> inquiryDetailList = BeanUtil.listCopyTo(saveInquiryVO.getDetailList(), InquiryDetail.class);
|
|
inquiryDetailList.forEach(i -> {
|
|
inquiryDetailList.forEach(i -> {
|
|
- i.setInquiryId(inquiryInfo.getId());
|
|
|
|
|
|
+ i.setInquiryId(id);
|
|
i.setGmtCreate(now);
|
|
i.setGmtCreate(now);
|
|
i.setGmtModified(now);
|
|
i.setGmtModified(now);
|
|
});
|
|
});
|
|
@@ -60,4 +111,14 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
|
|
optInfoFacade.saveOptOnfo(hospitalVO, "2");
|
|
optInfoFacade.saveOptOnfo(hospitalVO, "2");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ public List<InquiryPatDTO> getPatListFac(InquiryPatVO inquiryPatVO) {
|
|
|
|
+ return this.getPatList(inquiryPatVO);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public List<InquiryDTO> getPatInquiryFac(InquiryPatInquiryVO inquiryPatInquiryVO) {
|
|
|
|
+ return this.getPatInquiryList(inquiryPatInquiryVO);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|