Explorar o código

分开2类器械器免检查

Guos hai 5 días
pai
achega
72b2bc0b0d

+ 3 - 1
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreProductScrmController.java

@@ -93,7 +93,9 @@ public class FsStoreProductScrmController extends BaseController {
     @PostMapping("/checkStoreDrugLicense")
     public R checkStoreDrugLicense(@RequestBody FsStoreProductAddEditParam fsStoreProduct) {
         return R.ok().put("data", fsStoreProductService.checkStoreDrugLicense(fsStoreProduct.getStoreId(), fsStoreProduct.getCateId(),
-                org.apache.commons.lang3.StringUtils.isEmpty(fsStoreProduct.getMedicalDeviceCode())?null:fsStoreProduct.getMedicalDeviceCode()));
+                org.apache.commons.lang3.StringUtils.isEmpty(fsStoreProduct.getMedicalDeviceCode())?null:fsStoreProduct.getMedicalDeviceCode(),
+                ObjectUtils.isNotNull(fsStoreProduct.getProductType())?fsStoreProduct.getProductType().toString():null)
+        );
     }
 
     /**

+ 36 - 0
fs-service/src/main/java/com/fs/hisStore/enums/StoreProductTypeEnum.java

@@ -0,0 +1,36 @@
+package com.fs.hisStore.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.stream.Stream;
+
+/**
+ * @description:
+ * @author: Guos
+ * @time: 2025/12/3 下午4:11
+ */
+@Getter
+@AllArgsConstructor
+public enum StoreProductTypeEnum {
+
+    OTC("1","OTC"),
+    RX("2","Rx"),
+    QI_XIE("4","器械"),
+    FYP("3","非药品"),
+    QI_MIAN("5","器免");
+
+    private String value;
+
+    private String desc;
+
+    public static AfterSalesStatusEnum toType(String value) {
+        return Stream.of(AfterSalesStatusEnum.values())
+                .filter(p -> p.getValue().equals(value))
+                .findFirst()
+                .orElse(null);
+    }
+
+
+
+}

+ 2 - 1
fs-service/src/main/java/com/fs/hisStore/service/IFsStoreProductScrmService.java

@@ -197,8 +197,9 @@ public interface IFsStoreProductScrmService
      * @param storeId 店铺Id
      * @param cateId 分类id
      * @param medicalDeviceCode 器械编码
+     * @param productType 商品分类
      */
-    ContainsResult checkStoreDrugLicense(Long storeId, Long cateId, String medicalDeviceCode);
+    ContainsResult checkStoreDrugLicense(Long storeId, Long cateId, String medicalDeviceCode, String productType);
 
     /**
      * 普通商品查询

+ 2 - 1
fs-service/src/main/java/com/fs/hisStore/service/categoryVal/AbstractHandler.java

@@ -15,8 +15,9 @@ public abstract class AbstractHandler implements InitializingBean {
      * @param cateName 分类名称
      * @param storeId 店铺id
      * @param medicalDeviceCode 器械编码
+     * @param productType 商品分类
      */
-    public ContainsResult check(String cateName, Long storeId, String medicalDeviceCode){
+    public ContainsResult check(String cateName, Long storeId, String medicalDeviceCode, String productType){
         throw new UnsupportedOperationException();
     }
 

+ 2 - 1
fs-service/src/main/java/com/fs/hisStore/service/categoryVal/CommonCheck.java

@@ -37,8 +37,9 @@ public class CommonCheck extends AbstractHandler {
      * @param cateName 分类名称
      * @param storeId  店铺id
      * @param medicalDeviceCode 器械编码
+     * @param productType 商品分类
      */
-    public ContainsResult check(String cateName, Long storeId, String medicalDeviceCode) {
+    public ContainsResult check(String cateName, Long storeId, String medicalDeviceCode, String productType) {
         FsStoreScrm fsStoreScrm = fsStoreScrmService.selectFsStoreByStoreId(storeId);
         //没有搜索到就调用一次识别
         ContainsResult result = new ContainsResult();

+ 2 - 1
fs-service/src/main/java/com/fs/hisStore/service/categoryVal/IIIMedicalDeviceCheck.java

@@ -34,8 +34,9 @@ public class IIIMedicalDeviceCheck extends AbstractHandler{
      * @param cateName
      * @param storeId
      * @param medicalDeviceCode 器械编码
+     * @param productType 商品分类
      */
-    public ContainsResult check(String cateName, Long storeId, String medicalDeviceCode){
+    public ContainsResult check(String cateName, Long storeId, String medicalDeviceCode, String productType){
         log.info("3类器械验证");
         FsStoreScrm fsStoreScrm = fsStoreScrmService.selectFsStoreByStoreId(storeId);
         ContainsResult result = new ContainsResult();

+ 4 - 6
fs-service/src/main/java/com/fs/hisStore/service/categoryVal/IIMedicalDeviceCheck.java

@@ -5,6 +5,7 @@ import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.txocr.ContainsResult;
 import com.fs.common.utils.txocr.TxOcrClient;
 import com.fs.hisStore.domain.FsStoreScrm;
+import com.fs.hisStore.enums.StoreProductTypeEnum;
 import com.fs.hisStore.service.impl.FsStoreScrmServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -12,7 +13,6 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Component;
 
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 
 /**
@@ -30,9 +30,6 @@ public class IIMedicalDeviceCheck extends AbstractHandler{
 
     private static final List<String> medicalDeviceCodes = Arrays.asList("07", "14", "6840", "18", "19", "22");
 
-
-
-
     @Override
     public void afterPropertiesSet() throws Exception {
         ProductCategoryCheckFactory.register("232", this);
@@ -43,8 +40,9 @@ public class IIMedicalDeviceCheck extends AbstractHandler{
      * @param cateName
      * @param storeId
      * @param medicalDeviceCode 器械编码
+     * @param productType 商品分类
      */
-    public ContainsResult check(String cateName, Long storeId, String medicalDeviceCode){
+    public ContainsResult check(String cateName, Long storeId, String medicalDeviceCode, String productType){
         log.info("2类器械验证");
         FsStoreScrm fsStoreScrm = fsStoreScrmService.selectFsStoreByStoreId(storeId);
         ContainsResult result = new ContainsResult();
@@ -58,7 +56,7 @@ public class IIMedicalDeviceCheck extends AbstractHandler{
             result.setMessage("没有上传2类证书不允许选择该分类!");
             return result;
         }
-        if(medicalDeviceCodes.contains(medicalDeviceCode)){
+        if(StoreProductTypeEnum.QI_MIAN.getValue().equals(productType) && medicalDeviceCodes.contains(medicalDeviceCode)){
             result.setFlag(true);
             result.setMessage("符合所选商品分类标准");
             return result;

+ 2 - 1
fs-service/src/main/java/com/fs/hisStore/service/categoryVal/IMedicalDeviceCheck.java

@@ -40,8 +40,9 @@ public class IMedicalDeviceCheck extends AbstractHandler{
      * @param cateName
      * @param storeId
      * @param medicalDeviceCode 器械编码
+     * @param productType 商品分类
      */
-    public ContainsResult check(String cateName, Long storeId, String medicalDeviceCode){
+    public ContainsResult check(String cateName, Long storeId, String medicalDeviceCode, String productType){
         log.info("第一类医疗器械销售检查");
         FsStoreScrmOcr fsStoreScrmOcr = fsStoreScrmOcrMapper.selectById(storeId);
         if (ObjectUtil.isEmpty(fsStoreScrmOcr)) {

+ 2 - 1
fs-service/src/main/java/com/fs/hisStore/service/categoryVal/WellnessFoodCheck.java

@@ -30,8 +30,9 @@ public class WellnessFoodCheck extends AbstractHandler{
      * @param cateName 分类名称
      * @param storeId 店铺id
      * @param medicalDeviceCode 器械编码
+     * @param productType 商品分类
      */
-    public ContainsResult check(String cateName, Long storeId, String medicalDeviceCode){
+    public ContainsResult check(String cateName, Long storeId, String medicalDeviceCode, String productType){
         FsStoreScrm fsStoreScrm = fsStoreScrmService.selectFsStoreByStoreId(storeId);
         ContainsResult result = new ContainsResult();
         boolean flag = StringUtils.isNotEmpty(fsStoreScrm.getFoodLicense());

+ 4 - 3
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreProductScrmServiceImpl.java

@@ -1414,9 +1414,10 @@ public class FsStoreProductScrmServiceImpl implements IFsStoreProductScrmService
      * @param storeId 店铺Id
      * @param cateId 分类id
      * @param medicalDeviceCode 器械编码
+     * @param productType 商品分类
      */
     @Override
-    public ContainsResult checkStoreDrugLicense(Long storeId, Long cateId, String medicalDeviceCode) {
+    public ContainsResult checkStoreDrugLicense(Long storeId, Long cateId, String medicalDeviceCode, String productType) {
         //先通过分类id获取具体的分类名称
         FsStoreProductCategoryScrm fsStoreProductCategoryScrm = fsStoreProductCategoryService.selectFsStoreProductCategoryById(cateId);
         String cateName = fsStoreProductCategoryScrm.getCateName();//分类名称
@@ -1425,10 +1426,10 @@ public class FsStoreProductScrmServiceImpl implements IFsStoreProductScrmService
         //新增分类校验就去 categoryVal 包下面去新加
         try{
             AbstractHandler invokeStrategy = ProductCategoryCheckFactory.getInvokeStrategy(String.valueOf(cateId));
-            return invokeStrategy.check(cateName, storeId, medicalDeviceCode);
+            return invokeStrategy.check(cateName, storeId, medicalDeviceCode, productType);
         }catch (NullPointerException e){
             AbstractHandler invokeStrategy = ProductCategoryCheckFactory.getInvokeStrategy(String.valueOf("1101165230"));
-            return invokeStrategy.check(cateName, storeId, medicalDeviceCode);
+            return invokeStrategy.check(cateName, storeId, medicalDeviceCode, productType);
         }
     }
 

+ 4 - 1
fs-store/src/main/java/com/fs/hisStore/controller/store/FsStoreProductScrmController.java

@@ -1,6 +1,7 @@
 package com.fs.hisStore.controller.store;
 
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.fs.common.annotation.Log;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
@@ -84,7 +85,9 @@ public class FsStoreProductScrmController extends BaseController
         StoreLoginUserScrm loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         fsStoreProduct.setStoreId(loginUser.getFsStore().getStoreId());
         return R.ok().put("data", fsStoreProductService.checkStoreDrugLicense(fsStoreProduct.getStoreId(), fsStoreProduct.getCateId(),
-                org.apache.commons.lang3.StringUtils.isEmpty(fsStoreProduct.getMedicalDeviceCode())?null:fsStoreProduct.getMedicalDeviceCode()));
+                org.apache.commons.lang3.StringUtils.isEmpty(fsStoreProduct.getMedicalDeviceCode())?null:fsStoreProduct.getMedicalDeviceCode(),
+                ObjectUtils.isNotNull(fsStoreProduct.getProductType())?fsStoreProduct.getProductType().toString():null)
+        );
     }