Browse Source

erp型号模糊查询接口
erp类目模糊查询接口

liu 8 years ago
parent
commit
cb02721627

+ 36 - 4
src/main/java/com/uas/platform/b2c/external/erp/product/service/impl/KindServiceImpl.java

@@ -17,10 +17,7 @@ import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Transactional
 public class KindServiceImpl implements KindService {
@@ -69,6 +66,7 @@ public class KindServiceImpl implements KindService {
         return null;
     }
 
+
     public List<Kind> getParentsByChildId(Long childId) {
         List<Kind> kinds = new ArrayList<Kind>();
         kinds = getParentsByChildId(childId, kinds);
@@ -110,4 +108,38 @@ public class KindServiceImpl implements KindService {
         }
         return kindPropertyUas;
     }
+
+    @Override
+    public Map<String, List<KindUas>> getParentsByKindCode(String kindCode) {
+        Map<Long, Kind> maps = new HashMap<>();
+        // 第一步是模糊查询所有的叶子节点
+        Map<String, List<KindUas>> kindMaps = new HashMap<>();
+        List<Kind> kinds = kindDao.findByKindCode(kindCode);
+        for (Kind kind : kinds) {
+            List<Kind> list = getParentsByChildId(kind.getId());
+            List<KindUas> kindUass = new ArrayList<>();
+            for (Kind k : list) {
+                kindUass.add(ModelConverter.convertUas(k));
+            }
+            if (kindMaps.size() > 0 && kindMaps.containsKey(list.get(0).getId())) {
+                Map<Long, KindUas> map = new HashMap<>();
+                for (KindUas k : kindUass) {
+                    map.put(k.getId(), k);
+                }
+                List<KindUas> oldList = kindMaps.get(list.get(0).getId());
+                for (KindUas k : oldList) {
+                    map.put(k.getId(), k);
+                }
+                List<KindUas> newList = new ArrayList<>();
+                for (KindUas k : map.values()) {
+                    newList.add(k);
+                }
+                kindMaps.put(list.get(0).getId().toString(), newList);
+            } else {
+                kindMaps.put(list.get(0).getId().toString(), kindUass);
+            }
+        }
+        return kindMaps;
+    }
+
 }

+ 2 - 1
src/main/java/com/uas/platform/b2c/prod/product/component/dao/ComponentDao.java

@@ -46,8 +46,9 @@ public interface ComponentDao extends JpaSpecificationExecutor<Component>, JpaRe
 	 * @param code 原厂型号
 	 * @return 器件信息
 	 */
+	@Query("select c from Component c where c.code like %:code%")
 	@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value = "true") })
-	public List<Component> findByCode(String code);
+	public List<Component> findByCode(@Param("code") String code);
 
 	/**
 	 * 根据原厂型号code和品牌id(brandId)查找器件

+ 2 - 1
src/main/java/com/uas/platform/b2c/prod/product/component/dao/ComponentInfoDao.java

@@ -73,7 +73,8 @@ public interface ComponentInfoDao extends JpaSpecificationExecutor<ComponentInfo
 	 * @param code 原厂型号
 	 * @return 器件简易信息
 	 */
-	public List<ComponentInfo> findByKindidAndCode(Long kindid, String code);
+	@Query("select c from ComponentInfo c where c.kindid = :kindid and c.code like %:code%")
+	public List<ComponentInfo> findByKindidAndCode(@Param("kindid") Long kindid, @Param("code") String code);
 
 	/**
 	 * 获取一页有图片的器件

+ 15 - 9
src/main/java/com/uas/platform/b2c/prod/product/kind/dao/KindDao.java

@@ -1,9 +1,6 @@
 package com.uas.platform.b2c.prod.product.kind.dao;
 
-import java.util.List;
-
-import javax.persistence.QueryHint;
-
+import com.uas.platform.b2c.prod.product.kind.model.Kind;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
@@ -11,7 +8,8 @@ import org.springframework.data.jpa.repository.QueryHints;
 import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
-import com.uas.platform.b2c.prod.product.kind.model.Kind;
+import javax.persistence.QueryHint;
+import java.util.List;
 
 @Repository
 public interface KindDao extends JpaSpecificationExecutor<Kind>, JpaRepository<Kind, Long> {
@@ -56,10 +54,18 @@ public interface KindDao extends JpaSpecificationExecutor<Kind>, JpaRepository<K
 	public List<Kind> findByNameCn(String nameCn);
 
 	/**
-	* 根据批次号获取类目信息
-	* @param batchIds id批次号
-	* @return
-	*/
+	 * 根据批次号获取类目信息
+	 * @param batchIds id批次号
+	 * @return
+	 */
 	@Query(nativeQuery = true, value = "select * from product$kind where ki_id in :batchIds")
 	public List<Kind> findByBatchIds(@Param("batchIds") List<Long> batchIds);
+
+	/**
+	 * 根据类目名模糊查询对应所有的当前类目和父级类目(兄弟类目不用)
+	 * @param nameCn 类目中文名
+	 * @return
+	 */
+	@Query("select k from Kind k where k.nameCn like %:nameCn% and k.isLeaf = 1")
+	public List<Kind> findByKindCode(@Param("nameCn") String nameCn);
 }