Test1.java 2.25 KB
package com.huaheng.test;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.huaheng.HuaHengApplication;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.pc.config.container.domain.Container;
import com.huaheng.pc.config.container.service.ContainerService;
import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author yiwenpeng
 * @date 2023/5/31 23:18
 */
//@BootstrapWith(Test1.class)
@SpringBootTest(classes = {HuaHengApplication.class})
public class Test1 {
    @Autowired
    ContainerService containerService;
    @Autowired
    InventoryDetailService inventoryDetailService;

    @Test
    public void test1() {
        List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(new LambdaQueryWrapper<InventoryDetail>()
                .eq(InventoryDetail::getMaterialCode, "E00005"));

        List<InventoryDetail> removeList = new ArrayList<>();
        List<String> containerCodes = inventoryDetailList.stream().map(InventoryDetail::getContainerCode).distinct().collect(Collectors.toList());
        ArrayList<String> lockContainerCode = new ArrayList<>();
        for (String containerCode : containerCodes) {
            Container container = containerService.getOne(new LambdaQueryWrapper<Container>()
                    .eq(Container::getStatus, QuantityConstant.STATUS_LOCATION_LOCK)
                    .eq(Container::getCode, containerCode));
            if (container != null) {
                lockContainerCode.add(containerCode);
            }
        }
        for (InventoryDetail inventoryDetail : inventoryDetailList) {
            for (String str : lockContainerCode) {
                if (inventoryDetail.getContainerCode().contains(str)) {
                    removeList.add(inventoryDetail);
                }
            }

        }
        inventoryDetailList.removeAll(removeList);


        System.out.println(inventoryDetailList);
    }
}