瀏覽代碼

注册药品

zhoutg 4 年之前
父節點
當前提交
b5b87cd007

+ 6 - 1
cdssman-service/src/main/java/com/diagbot/dto/KlDrugRegisterDTO.java

@@ -126,5 +126,10 @@ public class KlDrugRegisterDTO implements Serializable {
     /**
      * 药品通用名
      */
-    private String commonName;
+    private Long drugConceptId;
+
+    /**
+     * 药品通用名
+     */
+    private String drugName;
 }

+ 27 - 13
cdssman-service/src/main/java/com/diagbot/facade/KlDrugRegisterFacade.java

@@ -21,11 +21,11 @@ import com.diagbot.vo.KlDrugRegisterDelVO;
 import com.diagbot.vo.KlDrugRegisterGetVO;
 import com.diagbot.vo.KlDrugRegisterPageVO;
 import com.diagbot.vo.KlDrugRegisterSaveVO;
+import com.diagbot.vo.KlDrugSearchVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * @author zhoutg
@@ -82,15 +82,17 @@ public class KlDrugRegisterFacade extends KlDrugRegisterServiceImpl {
         klDrugMappingFacade.remove(new QueryWrapper<KlDrugMapping>()
                 .eq("register_id", klDrugRegister.getId()));
 
-        // 保存药品通用
-        KlDrugMapping klDrugMapping = new KlDrugMapping();
-        klDrugMapping.setRegisterId(klDrugRegister.getId());
-        klDrugMapping.setDrugConcept(klDrugRegisterSaveVO.getDrugConceptId());
-        klDrugMapping.setCreator(param.getPerson());
-        klDrugMapping.setModifier(param.getPerson());
-        klDrugMapping.setGmtModified(param.getNow());
-        klDrugMapping.setGmtCreate(param.getNow());
-        klDrugMappingFacade.save(klDrugMapping);
+        // 保存药品通用名和注册药品的关联
+        if (klDrugRegister.getId() != null) {
+            KlDrugMapping klDrugMapping = new KlDrugMapping();
+            klDrugMapping.setRegisterId(klDrugRegister.getId());
+            klDrugMapping.setDrugConcept(klDrugRegisterSaveVO.getDrugConceptId());
+            klDrugMapping.setCreator(param.getPerson());
+            klDrugMapping.setModifier(param.getPerson());
+            klDrugMapping.setGmtModified(param.getNow());
+            klDrugMapping.setGmtCreate(param.getNow());
+            klDrugMappingFacade.save(klDrugMapping);
+        }
     }
 
     /**
@@ -129,9 +131,8 @@ public class KlDrugRegisterFacade extends KlDrugRegisterServiceImpl {
                 .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());
-            klDrugMappingFacade.remove(new QueryWrapper<KlDrugMapping>().in("register_id", idList));
             // 校验是否有关联
+            // 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)) {
@@ -140,6 +141,7 @@ public class KlDrugRegisterFacade extends KlDrugRegisterServiceImpl {
             //         throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "已关联药品通用名:" + errMsg);
             //     }
             // }
+            klDrugMappingFacade.remove(new QueryWrapper<KlDrugMapping>().in("register_id", klDrugRegisterDelVO.getId()));
         }
         this.remove(new QueryWrapper<KlDrugRegister>().eq("id", klDrugRegisterDelVO.getId()));
     }
@@ -164,8 +166,20 @@ public class KlDrugRegisterFacade extends KlDrugRegisterServiceImpl {
         klDrugMappingGetVO.setRegisterId(klDrugRegister.getId());
         List<KlConceptSimDTO> klConceptSimDTOList = klDrugRegisterFacade.getMappingDrug(klDrugMappingGetVO);
         if (ListUtil.isNotEmpty(klConceptSimDTOList)) {
-            klDrugRegisterDTO.setCommonName(klConceptSimDTOList.get(0).getLibName());
+            KlConceptSimDTO conceptSimDTO = klConceptSimDTOList.get(0);
+            klDrugRegisterDTO.setDrugName(conceptSimDTO.getLibName());
+            klDrugRegisterDTO.setDrugConceptId(conceptSimDTO.getId());
         }
         return klDrugRegisterDTO;
     }
+
+    /**
+     * 药品注册名检索药品通用名
+     *
+     * @param klDrugSearchVO
+     * @return
+     */
+    public List<KlConceptSimDTO> searchDrugFac(KlDrugSearchVO klDrugSearchVO) {
+        return this.searchDrug(klDrugSearchVO);
+    }
 }

+ 3 - 0
cdssman-service/src/main/java/com/diagbot/mapper/KlDrugRegisterMapper.java

@@ -8,6 +8,7 @@ import com.diagbot.dto.KlDrugRegisterDTO;
 import com.diagbot.entity.KlDrugRegister;
 import com.diagbot.vo.KlDrugMappingGetVO;
 import com.diagbot.vo.KlDrugRegisterPageVO;
+import com.diagbot.vo.KlDrugSearchVO;
 
 import java.util.List;
 
@@ -26,4 +27,6 @@ public interface KlDrugRegisterMapper extends BaseMapper<KlDrugRegister> {
     List<KlDrugMappingDTO> getMappingRegister(KlDrugMappingGetVO klDrugMappingGetVO);
 
     List<KlConceptSimDTO> getMappingDrug(KlDrugMappingGetVO klDrugMappingGetVO);
+
+    List<KlConceptSimDTO> searchDrug(KlDrugSearchVO klDrugSearchVO);
 }

+ 3 - 0
cdssman-service/src/main/java/com/diagbot/service/KlDrugRegisterService.java

@@ -8,6 +8,7 @@ import com.diagbot.dto.KlDrugRegisterDTO;
 import com.diagbot.entity.KlDrugRegister;
 import com.diagbot.vo.KlDrugMappingGetVO;
 import com.diagbot.vo.KlDrugRegisterPageVO;
+import com.diagbot.vo.KlDrugSearchVO;
 
 import java.util.List;
 
@@ -26,4 +27,6 @@ public interface KlDrugRegisterService extends IService<KlDrugRegister> {
     List<KlDrugMappingDTO> getMappingRegister(KlDrugMappingGetVO klDrugMappingGetVO);
 
     List<KlConceptSimDTO> getMappingDrug(KlDrugMappingGetVO klDrugMappingGetVO);
+
+    List<KlConceptSimDTO> searchDrug(KlDrugSearchVO klDrugSearchVO);
 }

+ 6 - 0
cdssman-service/src/main/java/com/diagbot/service/impl/KlDrugRegisterServiceImpl.java

@@ -11,6 +11,7 @@ import com.diagbot.mapper.KlDrugRegisterMapper;
 import com.diagbot.service.KlDrugRegisterService;
 import com.diagbot.vo.KlDrugMappingGetVO;
 import com.diagbot.vo.KlDrugRegisterPageVO;
+import com.diagbot.vo.KlDrugSearchVO;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -41,4 +42,9 @@ public class KlDrugRegisterServiceImpl extends ServiceImpl<KlDrugRegisterMapper,
     public List<KlConceptSimDTO> getMappingDrug(KlDrugMappingGetVO klDrugMappingGetVO) {
         return baseMapper.getMappingDrug(klDrugMappingGetVO);
     }
+
+    @Override
+    public List<KlConceptSimDTO> searchDrug(KlDrugSearchVO klDrugSearchVO) {
+        return baseMapper.searchDrug(klDrugSearchVO);
+    }
 }

+ 1 - 1
cdssman-service/src/main/java/com/diagbot/vo/KlDrugRegisterSaveVO.java

@@ -98,7 +98,7 @@ public class KlDrugRegisterSaveVO implements Serializable {
     private String remark;
 
     /**
-     * 药品通用名
+     * 药品通用名Id
      */
     private Long drugConceptId;
 }

+ 24 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlDrugSearchVO.java

@@ -0,0 +1,24 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 药品注册名搜索药品通用名
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+@Data
+public class KlDrugSearchVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 搜索名
+     */
+    private String name;
+}

+ 29 - 1
cdssman-service/src/main/java/com/diagbot/web/KlDrugRegisterController.java

@@ -4,6 +4,7 @@ package com.diagbot.web;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.KlConceptSimDTO;
 import com.diagbot.dto.KlDrugRegisterDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.KlDrugRegisterFacade;
@@ -11,6 +12,7 @@ import com.diagbot.vo.KlDrugRegisterDelVO;
 import com.diagbot.vo.KlDrugRegisterGetVO;
 import com.diagbot.vo.KlDrugRegisterPageVO;
 import com.diagbot.vo.KlDrugRegisterSaveVO;
+import com.diagbot.vo.KlDrugSearchVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -19,6 +21,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * <p>
  * 标签基础表 前端控制器
@@ -37,7 +41,23 @@ public class KlDrugRegisterController {
     KlDrugRegisterFacade klDrugRegisterFacade;
 
     @ApiOperation(value = "新增或更新[by:zhoutg]",
-            notes = "")
+            notes = "id:主键\n" +
+                    "drugCode:药品代码\n" +
+                    "name:注册名称\n" +
+                    "enName:英文名称\n" +
+                    "tradeName:商品名称\n" +
+                    "form:药品剂型\n" +
+                    "specification:注册规格\n" +
+                    "minPackQuantity:最小包装数量\n" +
+                    "minPackUnit:最小包装单位\n" +
+                    "company:药品企业\n" +
+                    "approval:批准文号\n" +
+                    "standardCode:药品本位码\n" +
+                    "insuranceType:医保类型\n" +
+                    "insuranceRemrk:医保备注\n" +
+                    "drugType:药品类别\n" +
+                    "remark:备注\n" +
+                    "drugConceptId:药品通用名Id")
     @PostMapping("/saveOrUpdate")
     @SysLogger("saveOrUpdate")
     @DSTransactional
@@ -72,4 +92,12 @@ public class KlDrugRegisterController {
         KlDrugRegisterDTO data = klDrugRegisterFacade.getByParam(klDrugRegisterGetVO);
         return RespDTO.onSuc(data);
     }
+
+    @ApiOperation(value = "药品注册名检索药品通用名,已经关联的需要过滤[by:zhoutg]",
+            notes = "name: 检索名")
+    @PostMapping("/searchDrug")
+    public RespDTO<List<KlConceptSimDTO>> searchDrug(@RequestBody KlDrugSearchVO klDrugSearchVO) {
+        List<KlConceptSimDTO> data = klDrugRegisterFacade.searchDrugFac(klDrugSearchVO);
+        return RespDTO.onSuc(data);
+    }
 }

+ 14 - 0
cdssman-service/src/main/resources/mapper/KlDrugRegisterMapper.xml

@@ -94,4 +94,18 @@
         and a.register_id = #{registerId}
         order by a.order_no
     </select>
+
+    <select id="searchDrug" resultType="com.diagbot.dto.KlConceptSimDTO" parameterType="com.diagbot.vo.KlDrugSearchVO">
+        SELECT
+            a.*
+        FROM
+            kl_concept a
+        WHERE
+            a.is_deleted = 'N'
+        AND a.lib_type = 101
+        AND a.lib_name LIKE concat('%',#{name}, '%')
+        and a.id not in (
+            SELECT b.drug_concept FROM `kl_drug_mapping` b where a.is_deleted = 'N'
+        )
+    </select>
 </mapper>