package com.zy.asrs.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.zy.asrs.entity.BasMap; import com.zy.asrs.entity.LocMast; import com.zy.asrs.service.BasMapService; import com.zy.asrs.utils.Utils; import com.zy.common.utils.RedisUtil; import com.zy.core.enums.MapNodeType; import com.zy.core.enums.RedisKeyType; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * 立体仓库WCS系统主流程业务 */ @Slf4j @Service("mainService") public class MainServiceImpl { @Autowired private BasMapService basMapService; @Autowired private RedisUtil redisUtil; //初始化库位地图数据结构 public void initLocMap() { Object object = redisUtil.get(RedisKeyType.LOC_MAP_BASE.key); if (object != null) { return; } BasMap basMap = basMapService.selectOne(new EntityWrapper().eq("lev", 1)); if (Cools.isEmpty(basMap)){ //缺少初始化库位地图 return; } List> dataList = JSON.parseObject(basMap.getData(), List.class); List>> mapNodeList = new ArrayList<>(); for (int i = 0; i < dataList.size(); i++) { List row = dataList.get(i); List> mapNodeRow = new ArrayList<>(); for (int j = 0; j < row.size(); j++) { JSONObject map = row.get(j); HashMap mapNode = new HashMap<>(); mapNode.put("id", i + "-" + j); String nodeType = map.getString("type"); if("shelf".equals(nodeType)) { mapNode.put("value", MapNodeType.NORMAL_PATH.id); }else { mapNode.put("value", MapNodeType.DISABLE.id); } mapNodeRow.add(mapNode); } mapNodeList.add(mapNodeRow); } redisUtil.set(RedisKeyType.LOC_MAP_BASE.key, mapNodeList); } }