|
|
@@ -52,6 +52,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import java.util.stream.IntStream;
|
|
|
|
|
|
import static com.github.zuihou.utils.BizAssert.isFalse;
|
|
|
import static java.util.stream.Collectors.groupingBy;
|
|
|
@@ -97,7 +98,7 @@ public class StockInfoServiceImpl extends SuperServiceImpl<StockInfoMapper, Stoc
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
- private ToolDisplayMapper toolDisplayMapper ;
|
|
|
+ private ToolDisplayMapper toolDisplayMapper;
|
|
|
|
|
|
@Override
|
|
|
// 启用属性自动注入
|
|
|
@@ -1035,121 +1036,25 @@ public class StockInfoServiceImpl extends SuperServiceImpl<StockInfoMapper, Stoc
|
|
|
paramsMap.put("orgIds", orgIdsStr);
|
|
|
}
|
|
|
List<Map> listMap = new ArrayList<>();
|
|
|
- //根据货架查询里面数量
|
|
|
-// List<ToolManagement> toolManagementList = baseMapper.getToolManagement();
|
|
|
|
|
|
+ //获取所有刀库库位
|
|
|
List<ToolDisplay> toolList = toolDisplayMapper.selectList(null);
|
|
|
|
|
|
+ //10元素为一组
|
|
|
+ Map<Integer, List<ToolDisplay>> groupedMap = IntStream.range(0, toolList.size())
|
|
|
+ .boxed()
|
|
|
+ .collect(Collectors.groupingBy(
|
|
|
+ i -> i / 10, // 分组键:索引除以10(整数除法),每10个一组
|
|
|
+ LinkedHashMap::new, // 使用 LinkedHashMap 保持顺序
|
|
|
+ Collectors.mapping(
|
|
|
+ toolList::get, // 把索引 i 映射为 toolList.get(i)
|
|
|
+ Collectors.toList()
|
|
|
+ )
|
|
|
+ ));
|
|
|
|
|
|
-// List<Map> toolStorgeCountMap = baseMapper.getToolStorgeCount(); //库位数量
|
|
|
- List<Map> toolStorgeCountMap = baseMapper.getToolStorgeCountByDisplayId(); //库位数量
|
|
|
-
|
|
|
-// List<Map> inToolStorgeCountMap = baseMapper.getInToolStorgeCount();
|
|
|
- List<Map> inToolStorgeCountMap = baseMapper.getInToolStorgeCountByDisplayId(); //已存库位数量
|
|
|
-
|
|
|
-
|
|
|
-// List<Map> freeToolStorgeCountMap = baseMapper.getFreeToolStorgeCount();
|
|
|
- List<Map> freeToolStorgeCountMap = baseMapper.getFreeToolStorgeCountByDisplayId();
|
|
|
-
|
|
|
-
|
|
|
-// List<Map> lockToolStorgeCountMap = baseMapper.getLockToolStorgeCount();
|
|
|
- List<Map> lockToolStorgeCountMap = baseMapper.getLockToolStorgeCountByDisplayId();//锁定库位数量
|
|
|
-
|
|
|
-
|
|
|
- toolList.stream().forEach(vo -> {
|
|
|
-// List<ToolStorge> toolStorgeByToolId = baseMapper.getToolStorgeByToolId(vo.getId());
|
|
|
- //所有刀库库位
|
|
|
- List<ToolStorge> toolStorgeByToolId = baseMapper.getToolStorgeByTooDisplayId(vo.getId());
|
|
|
-
|
|
|
- Map<Integer, List<ToolStorge>> groupedToolStorges =
|
|
|
- toolStorgeByToolId.stream()
|
|
|
- .collect(Collectors.groupingBy(e -> toolStorgeByToolId.indexOf(e) / 10));
|
|
|
-
|
|
|
-
|
|
|
- Collection<List<ToolStorge>> values = groupedToolStorges.values();
|
|
|
- List<ToolStorge> childrenList = new ArrayList<>();
|
|
|
- values.stream().forEach(it -> {
|
|
|
- ToolStorge toolStorge = new ToolStorge();
|
|
|
- toolStorge.setChildren(it);
|
|
|
- childrenList.add(toolStorge);
|
|
|
- });
|
|
|
- // 将分组后的值设置为 vo 的 children
|
|
|
- vo.setChildren(childrenList);
|
|
|
-
|
|
|
- Map<String, Object> stringObjectMap = BeanUtil.beanToMap(vo);
|
|
|
-
|
|
|
- Optional<Map> toolStorgeOptionalMap = toolStorgeCountMap.stream()
|
|
|
- .filter(item -> vo.getId().equals(item.get("tooDisplayId"))) // 匹配 tooDisplayId
|
|
|
- .findFirst(); // 找到第一个匹配的 Map
|
|
|
- Optional<Map> inToolStorgeOptionalMap = inToolStorgeCountMap.stream()
|
|
|
- .filter(item -> vo.getId().equals(item.get("tooDisplayId"))) // 匹配 tooDisplayId
|
|
|
- .findFirst(); // 找到第一个匹配的 Map
|
|
|
- Optional<Map> freeToolStorgeOptionalMap = freeToolStorgeCountMap.stream()
|
|
|
- .filter(item -> vo.getId().equals(item.get("tooDisplayId"))) // 匹配 tooDisplayId
|
|
|
- .findFirst(); // 找到第一个匹配的 Map
|
|
|
- Optional<Map> lockToolStorgeOptionalMap = lockToolStorgeCountMap.stream()
|
|
|
- .filter(item -> vo.getId().equals(item.get("tooDisplayId"))) // 匹配 tooDisplayId
|
|
|
- .findFirst(); // 找到第一个匹配的 Map
|
|
|
-
|
|
|
-
|
|
|
- stringObjectMap.put("allCount", toolStorgeOptionalMap.isPresent() ? toolStorgeOptionalMap.get().get("num") : 0);
|
|
|
- stringObjectMap.put("freeCount", freeToolStorgeOptionalMap.isPresent() ? freeToolStorgeOptionalMap.get().get("num") : 0);
|
|
|
- stringObjectMap.put("lockCount", lockToolStorgeOptionalMap.isPresent() ? lockToolStorgeOptionalMap.get().get("num") : 0);
|
|
|
- stringObjectMap.put("stockCount", inToolStorgeOptionalMap.isPresent() ? inToolStorgeOptionalMap.get().get("num") : 0);
|
|
|
- listMap.add(stringObjectMap);
|
|
|
- });
|
|
|
-
|
|
|
- int storgeCount = toolStorgeCountMap.stream() // 库位数量
|
|
|
- .mapToInt(item -> {
|
|
|
- Object numObj = item.get("num");
|
|
|
- if (numObj instanceof Integer) {
|
|
|
- return (Integer) numObj;
|
|
|
- } else if (numObj instanceof Long) {
|
|
|
- return ((Long) numObj).intValue();
|
|
|
- } else {
|
|
|
- return 0; // 其他类型默认为 0,可以根据实际情况处理
|
|
|
- }
|
|
|
- }).sum(); // 对所有值求和
|
|
|
- int instockCount = inToolStorgeCountMap.stream() // 创建流
|
|
|
- .mapToInt(item -> {
|
|
|
- Object numObj = item.get("num");
|
|
|
- if (numObj instanceof Integer) {
|
|
|
- return (Integer) numObj;
|
|
|
- } else if (numObj instanceof Long) {
|
|
|
- return ((Long) numObj).intValue();
|
|
|
- } else {
|
|
|
- return 0; // 其他类型默认为 0,可以根据实际情况处理
|
|
|
- }
|
|
|
- }).sum(); // 对所有值求和
|
|
|
- int freeToolStockCount = freeToolStorgeCountMap.stream() // 创建流
|
|
|
- .mapToInt(item -> {
|
|
|
- Object numObj = item.get("num");
|
|
|
- if (numObj instanceof Integer) {
|
|
|
- return (Integer) numObj;
|
|
|
- } else if (numObj instanceof Long) {
|
|
|
- return ((Long) numObj).intValue();
|
|
|
- } else {
|
|
|
- return 0; // 其他类型默认为 0,可以根据实际情况处理
|
|
|
- }
|
|
|
- }).sum(); // 对所有值求和
|
|
|
- int lockstockCount = lockToolStorgeCountMap.stream() // 创建流
|
|
|
- .mapToInt(item -> {
|
|
|
- Object numObj = item.get("num");
|
|
|
- if (numObj instanceof Integer) {
|
|
|
- return (Integer) numObj;
|
|
|
- } else if (numObj instanceof Long) {
|
|
|
- return ((Long) numObj).intValue();
|
|
|
- } else {
|
|
|
- return 0; // 其他类型默认为 0,可以根据实际情况处理
|
|
|
- }
|
|
|
- }).sum(); // 对所有值求和
|
|
|
|
|
|
returnMap.put("shelvesCount", toolList.size()); //仓库个数
|
|
|
- returnMap.put("storgeCount", storgeCount); //库位数量
|
|
|
- returnMap.put("instockCount", instockCount); //已存在库位数量
|
|
|
- returnMap.put("freestockCount", freeToolStockCount); //空库位数量
|
|
|
- returnMap.put("lockstockCount", lockstockCount); //锁定库位数量
|
|
|
- returnMap.put("shelvesTreeList", listMap);
|
|
|
+ returnMap.put("shelvesTreeList", groupedMap);
|
|
|
return returnMap;
|
|
|
}
|
|
|
|
|
|
@@ -1158,7 +1063,8 @@ public class StockInfoServiceImpl extends SuperServiceImpl<StockInfoMapper, Stoc
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public List<CuttingTool> getToolById(Map map) {
|
|
|
- return baseMapper.getToolById(map);
|
|
|
+ public ToolDisplay getToolByNo(Map map) {
|
|
|
+
|
|
|
+ return baseMapper.gettoolByNo(map);
|
|
|
}
|
|
|
}
|