|
@@ -0,0 +1,144 @@
|
|
|
+package com.diagbot.facade;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.diagbot.dto.KlDrugRegisterDTO;
|
|
|
+import com.diagbot.entity.CommonParam;
|
|
|
+import com.diagbot.entity.KlConcept;
|
|
|
+import com.diagbot.entity.KlDrugMapping;
|
|
|
+import com.diagbot.entity.KlDrugRegister;
|
|
|
+import com.diagbot.enums.InsertOrUpdateEnum;
|
|
|
+import com.diagbot.enums.IsDeleteEnum;
|
|
|
+import com.diagbot.exception.CommonErrorCode;
|
|
|
+import com.diagbot.exception.CommonException;
|
|
|
+import com.diagbot.service.impl.KlDrugRegisterServiceImpl;
|
|
|
+import com.diagbot.util.BeanUtil;
|
|
|
+import com.diagbot.util.DateUtil;
|
|
|
+import com.diagbot.util.ListUtil;
|
|
|
+import com.diagbot.util.StringUtil;
|
|
|
+import com.diagbot.util.UserUtils;
|
|
|
+import com.diagbot.vo.KlDrugRegisterDelVO;
|
|
|
+import com.diagbot.vo.KlDrugRegisterGetVO;
|
|
|
+import com.diagbot.vo.KlDrugRegisterPageVO;
|
|
|
+import com.diagbot.vo.KlDrugRegisterSaveVO;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author zhoutg
|
|
|
+ * @Description:
|
|
|
+ * @date 2021-04-13 10:41
|
|
|
+ */
|
|
|
+@Component
|
|
|
+public class KlDrugRegisterFacade extends KlDrugRegisterServiceImpl {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ KlDrugMappingFacade klDrugMappingFacade;
|
|
|
+ @Autowired
|
|
|
+ KlConceptFacade klConceptFacade;
|
|
|
+ @Autowired
|
|
|
+ UserFacade userFacade;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存或更新
|
|
|
+ *
|
|
|
+ * @param klDrugRegisterSaveVO
|
|
|
+ */
|
|
|
+ public void saveOrUpdate(KlDrugRegisterSaveVO klDrugRegisterSaveVO) {
|
|
|
+ CommonParam param = initCommonParam();
|
|
|
+ KlDrugRegister klDrugRegister = new KlDrugRegister();
|
|
|
+ if (klDrugRegisterSaveVO.getId() != null) {
|
|
|
+ klDrugRegister = this.getOne(new QueryWrapper<KlDrugRegister>()
|
|
|
+ .eq("id", klDrugRegisterSaveVO.getId())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()), false);
|
|
|
+ if (klDrugRegister == null) { //校验
|
|
|
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "数据不存在");
|
|
|
+ }
|
|
|
+ param.setInsertOrUpdate(InsertOrUpdateEnum.Update.getKey());
|
|
|
+ }
|
|
|
+ BeanUtil.copyProperties(klDrugRegisterSaveVO, klDrugRegister);
|
|
|
+ // 重复校验
|
|
|
+ int count = this.count(new QueryWrapper<KlDrugRegister>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("drug_code", klDrugRegisterSaveVO.getDrugCode())
|
|
|
+ .ne("id", klDrugRegisterSaveVO.getId() == null ? -1 : klDrugRegisterSaveVO.getId()));
|
|
|
+ if (count > 0) {
|
|
|
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "药品代码已存在");
|
|
|
+ }
|
|
|
+ if (InsertOrUpdateEnum.Insert.getKey() == param.getInsertOrUpdate()) {
|
|
|
+ klDrugRegister.setCreator(param.getPerson()); //创建人
|
|
|
+ klDrugRegister.setGmtCreate(param.getNow());//创建时间
|
|
|
+ }
|
|
|
+ klDrugRegister.setGmtModified(param.getNow());//修改时间
|
|
|
+ klDrugRegister.setModifier(param.getPerson());//修改人
|
|
|
+ this.saveOrUpdate(klDrugRegister);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化参数
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public CommonParam initCommonParam() {
|
|
|
+ CommonParam param = new CommonParam();
|
|
|
+ String person = UserUtils.getCurrentPrincipleID();
|
|
|
+ param.setNow(DateUtil.now());
|
|
|
+ param.setPerson(person);
|
|
|
+ param.setInsertOrUpdate(InsertOrUpdateEnum.Insert.getKey());
|
|
|
+ return param;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分页
|
|
|
+ *
|
|
|
+ * @param klDrugRegisterPageVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public IPage<KlDrugRegisterDTO> getPageFac(KlDrugRegisterPageVO klDrugRegisterPageVO) {
|
|
|
+ IPage<KlDrugRegisterDTO> res = this.getPage(klDrugRegisterPageVO);
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据id删除标签
|
|
|
+ *
|
|
|
+ * @param klDrugRegisterDelVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public void deleteByIdFac(KlDrugRegisterDelVO klDrugRegisterDelVO) {
|
|
|
+ List<KlDrugMapping> klDrugMappingList = klDrugMappingFacade.list(new QueryWrapper<KlDrugMapping>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("register_id", klDrugRegisterDelVO.getId()));
|
|
|
+ if (ListUtil.isNotEmpty(klDrugMappingList)) {
|
|
|
+ List<Long> idList = klDrugMappingList.stream().map(r -> r.getDrugConcept()).collect(Collectors.toList());
|
|
|
+ List<KlConcept> klConceptList = klConceptFacade.list(new QueryWrapper<KlConcept>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()).in("id", idList));
|
|
|
+ if (ListUtil.isNotEmpty(klConceptList)) {
|
|
|
+ String errMsg = klConceptList.stream().map(r -> r.getLibName()).distinct().collect(Collectors.joining(","));
|
|
|
+ if (StringUtil.isNotBlank(errMsg)) {
|
|
|
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "已关联药品通用名:" + errMsg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.remove(new QueryWrapper<KlDrugRegister>().eq("id", klDrugRegisterDelVO.getId()));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据参数返回数据
|
|
|
+ *
|
|
|
+ * @param klDrugRegisterGetVO 获取标签内容参数
|
|
|
+ * @return 标签内容
|
|
|
+ */
|
|
|
+ public KlDrugRegisterDTO getByParam(KlDrugRegisterGetVO klDrugRegisterGetVO) {
|
|
|
+ KlDrugRegisterDTO klDrugRegisterDTO = new KlDrugRegisterDTO();
|
|
|
+ KlDrugRegister klDrugRegister = this.getOne(new QueryWrapper<KlDrugRegister>()
|
|
|
+ .eq("id", klDrugRegisterGetVO.getId())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()), false);
|
|
|
+ if (klDrugRegister != null) {
|
|
|
+ BeanUtil.copyProperties(klDrugRegister, klDrugRegisterDTO);
|
|
|
+ }
|
|
|
+ return klDrugRegisterDTO;
|
|
|
+ }
|
|
|
+}
|