|
@@ -219,16 +219,19 @@ public class ProductDirServiceImpl extends BaseServiceImpl<IProductDirDao, Produ
|
|
|
|
|
|
@Override
|
|
|
public List<Map<String, Object>> findSupplierCountGroupByProduct(boolean filterCount0){
|
|
|
- //SELECT a.id,A.name,COUNT ( b.sid ) AS c FROM product_dir AS a LEFT JOIN ( SELECT SUBSTRING (
|
|
|
- // json_array_elements ( product :: json ) :: TEXT, 2, 36 ) AS pid, id AS sid FROM srm_supplier ) AS b ON a
|
|
|
- // .id = b.pid GROUP BY a.id, a.name HAVING COUNT ( b.sid ) > 0;
|
|
|
- QueryWrapper wrapper =
|
|
|
- QueryWrapper.create().select("a.id", "A.name", "COUNT ( b.sid ) AS c").from(PRODUCT_DIR).as("a")
|
|
|
- .leftJoin(QueryWrapper.create()
|
|
|
- .select("SUBSTRING ( json_array_elements ( product :: json ) :: TEXT, 2, 36 ) AS pid",
|
|
|
- "id AS sid").from("srm_supplier")).as("b").on("a.id = b.pid")
|
|
|
- .groupBy("a.id", "a.name")
|
|
|
- .having(QueryCondition.createEmpty().and("COUNT ( b.sid ) > 0").when(filterCount0));
|
|
|
+ //SELECT a.ID, a.NAME, COUNT ( b.sid ) AS c
|
|
|
+ //FROM( SELECT id, name FROM product_dir WHERE id NOT IN ( SELECT DISTINCT parent_id FROM product_dir ) ) AS a
|
|
|
+ //LEFT JOIN ( SELECT SUBSTRING ( json_array_elements ( product :: JSON ) :: TEXT, 2, 36 ) AS pid, id AS sid
|
|
|
+ // FROM srm_supplier ) AS b ON a.ID = b.pid
|
|
|
+ //GROUP BY a.ID, a.NAME HAVING COUNT ( b.sid ) > 0 ORDER BY c DESC;
|
|
|
+ QueryWrapper wrapper = QueryWrapper.create().select("a.id", "a.name", "COUNT ( b.sid ) AS c")
|
|
|
+ .from(QueryWrapper.create().select("id,name").from("product_dir").where("id not in(select DISTINCT parent_id from product_dir)")).as("a")
|
|
|
+ .leftJoin(QueryWrapper.create()
|
|
|
+ .select("SUBSTRING ( json_array_elements ( product :: json ) :: TEXT, 2, 36 ) AS pid","id AS sid")
|
|
|
+ .from("srm_supplier")).as("b").on("a.id = b.pid")
|
|
|
+ .groupBy("a.id", "a.name")
|
|
|
+ .having(QueryCondition.createEmpty().and("COUNT ( b.sid ) > 0").when(filterCount0))
|
|
|
+ .orderBy("c desc");
|
|
|
List<Row> objects = mapper.selectRowsByQuery(wrapper);
|
|
|
return objects.stream().map(HashMap::new).collect(Collectors.toList());
|
|
|
}
|