自动化立体仓库 - WMS系统
#
tzsk
7 天以前 71592bfa6e09c482ba6c12d4bacedd470fedbec8
src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java
@@ -12,13 +12,16 @@
import com.zy.asrs.utils.Utils;
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service
public class AutoReplenishmentHandler extends AbstractHandler<String> {
@@ -44,6 +47,7 @@
    public ReturnT<String> create(Mat mat, double anfme) {
        //创建一个新的自动补货单据
        Order order = createOrder();
        orderService.insert(order);
        OrderDetl orderDetl = createOrderDetl(order);
        orderDetl.setMatnr(mat.getMatnr());
        orderDetl.setMaktx(mat.getMaktx());
@@ -51,7 +55,7 @@
        orderDetl.setAnfme(anfme);
        orderDetl.setQty(0.0);
        orderService.insert(order);
        orderDetlService.insert(orderDetl);
        return SUCCESS;
@@ -73,6 +77,7 @@
            List<LocDetl> locDetls = locDetlService.selectByLocNo(locNo);
            createWrkDetl(locDetls, wrkMast,order.getOrderNo(),now);
            //修改库位状态
            log.warn("Flag - 24,{}库位状态变更,{} => {}", locMast.getLocNo(), locMast.getLocSts(), "R");
            locMast.setLocSts("R");
            locMastService.updateByLocNo(locMast);
        }
@@ -157,7 +162,25 @@
            //List<String> locNosSearch = locDetlService.selectLocNo(matnr);
            Set<String> locNosSearch = locDetlService.selectLocNos(matnr);
            //重新排序 并且检测该库位是否含没有料箱码的物料,如有有则不允许出库
            //过滤库位货物为高货物
            locNosSearch = locNosSearch.stream().filter(locNo -> {
                LocMast locMast = locMastService.selectByLoc(locNo);
                if(locMast.getLocType1() == 3){
                    return false;
                }else {
                    //且检测该库位是否含没有料箱码的物料,如有有则不允许出库
//                    LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locNo)
//                            .andNew().eq("supp_code", "").or().isNull("supp_code"));
                    if(Cools.isEmpty(locDetlService.selectByLocWithoutContainer(locNo))){
                        return true;
                    }else {
                        return false;
                    }
                }
            }).collect(Collectors.toSet());
            //重新排序
            Set<String> resort = resort(locNosSearch);
            for(String locNo : resort){