|
|
@@ -4225,51 +4225,8 @@ public class GoodsServiceImpl implements GoodsService {
|
|
|
List<KindHierarchicalCount> kindHierarchicals = jdbcTemplate.query(String.format(querySQL, startNumber, pageSize), new BeanPropertyRowMapper<>(KindHierarchicalCount.class));
|
|
|
long l3 = System.currentTimeMillis();
|
|
|
logger.info("获取KindHierarchicalCount需要多少时间:" + (l3 - l2));
|
|
|
- List<Long> ids = new ArrayList<>();
|
|
|
- for (KindHierarchicalCount kindHierarchical : kindHierarchicals) {
|
|
|
- if (kindHierarchical.getKindId() != null) {
|
|
|
- ids.add(kindHierarchical.getKindId());
|
|
|
- }
|
|
|
- }
|
|
|
long l4 = System.currentTimeMillis();
|
|
|
- Map<String, List<Long>> map = null;
|
|
|
- for (int i = 0; (i < 3) && CollectionUtils.isNotEmpty(ids); i++) {
|
|
|
- // i = 0 时表示 获取本级, = 1 时代表获取第二层,= 2 时代表获取顶层
|
|
|
- map = new HashMap<>();
|
|
|
- map.put("ids", ids);
|
|
|
- List<Map<String, Object>> mapQuery = namedParameterJdbcTemplate.queryForList("select c.ki_id as id, c.ki_name as name, c.ki_parentid as pid " +
|
|
|
- "from product$kind c where c.ki_id in (:ids)", map);
|
|
|
- ids = new ArrayList<>();
|
|
|
- for (Map<String, Object> mapRest : mapQuery) {
|
|
|
- Object id = mapRest.get("id");
|
|
|
-
|
|
|
- Object pid = mapRest.get("pid");
|
|
|
- if (pid != null) {
|
|
|
- ids.add(Long.valueOf(pid.toString()));
|
|
|
- }
|
|
|
- for (KindHierarchicalCount hierarchical : kindHierarchicals) {
|
|
|
- if (i == 0) {
|
|
|
- if (id.equals(hierarchical.getKindId())) {
|
|
|
- if (pid != null) {
|
|
|
- hierarchical.setSecondId(Long.valueOf(pid.toString()));
|
|
|
- }
|
|
|
- }
|
|
|
- } else if (i == 1) {
|
|
|
- if (id.equals(hierarchical.getSecondId())) {
|
|
|
- hierarchical.setSecondKind(StringUtilB2C.getStr(mapRest.get("name")));
|
|
|
- if (pid != null) {
|
|
|
- hierarchical.setFirstId(Long.valueOf(pid.toString()));
|
|
|
- }
|
|
|
- }
|
|
|
- } else if (i == 2) {
|
|
|
- if (id.equals(hierarchical.getFirstId())) {
|
|
|
- hierarchical.setFirstKind(StringUtilB2C.getStr(mapRest.get("name")));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
+ getParentKind(kindHierarchicals);
|
|
|
long l5 = System.currentTimeMillis();
|
|
|
logger.info("获取父级类目的时间:" + (l5 - l4));
|
|
|
|
|
|
@@ -4291,6 +4248,57 @@ public class GoodsServiceImpl implements GoodsService {
|
|
|
logger.info("批量导出类目", System.currentTimeMillis() + "结束时间");
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据物料id和类目信息,获取父级类目
|
|
|
+ * @param kindHierarchicals 类目信息
|
|
|
+ */
|
|
|
+ private void getParentKind(List<KindHierarchicalCount> kindHierarchicals) {
|
|
|
+ List<Long> ids = new ArrayList<>();
|
|
|
+ for (KindHierarchicalCount kindHierarchical : kindHierarchicals) {
|
|
|
+ if (kindHierarchical.getKindId() != null) {
|
|
|
+ ids.add(kindHierarchical.getKindId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Map<String, List<Long>> map = null;
|
|
|
+ for (int i = 0; (i < 3) && CollectionUtils.isNotEmpty(ids); i++) {
|
|
|
+ // i = 0 时表示 获取本级, = 1 时代表获取第二层,= 2 时代表获取顶层
|
|
|
+ map = new HashMap<>();
|
|
|
+ map.put("ids", ids);
|
|
|
+ List<Map<String, Object>> mapQuery = namedParameterJdbcTemplate.queryForList("select c.ki_id as id, c.ki_name as name, c.ki_parentid as pid " +
|
|
|
+ "from product$kind c where c.ki_id in (:ids)", map);
|
|
|
+ ids = new ArrayList<>();
|
|
|
+ for (Map<String, Object> mapRest : mapQuery) {
|
|
|
+ Object id = mapRest.get("id");
|
|
|
+
|
|
|
+ Object pid = mapRest.get("pid");
|
|
|
+ if (pid != null) {
|
|
|
+ ids.add(Long.valueOf(pid.toString()));
|
|
|
+ }
|
|
|
+ for (KindHierarchicalCount hierarchical : kindHierarchicals) {
|
|
|
+ if (i == 0) {
|
|
|
+ if (id.equals(hierarchical.getKindId())) {
|
|
|
+ if (pid != null) {
|
|
|
+ hierarchical.setSecondId(Long.valueOf(pid.toString()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (i == 1) {
|
|
|
+ if (id.equals(hierarchical.getSecondId())) {
|
|
|
+ hierarchical.setSecondKind(StringUtilB2C.getStr(mapRest.get("name")));
|
|
|
+ if (pid != null) {
|
|
|
+ hierarchical.setFirstId(Long.valueOf(pid.toString()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (i == 2) {
|
|
|
+ if (id.equals(hierarchical.getFirstId())) {
|
|
|
+ hierarchical.setFirstKind(StringUtilB2C.getStr(mapRest.get("name")));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 批量导出数据
|
|
|
* TODO 后续提成公共方法,暂时没写好
|