自动化立体仓库 - WMS系统
ZY
2024-09-18 ff6d68f7c7e9fb4fd7b884eb282aa5f9e1a5d0ba
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -2,11 +2,15 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.Cools;
import com.zy.asrs.mapper.OrderDetlMapper;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.OrderDetlService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.common.Cools;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.WaitPakin;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.mapper.OrderDetlMapper;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.utils.MatCompareUtils;
import com.zy.common.model.LocDto;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -27,14 +31,66 @@
    }
    @Override
    public OrderDetl selectItem(Long orderId, String matnr, String batch) {
        return this.baseMapper.selectItem(orderId, matnr, batch);
    public List<OrderDetl> selectItem(String orderNo) {
        return this.baseMapper.listByOrderNo(orderNo);
    }
    @Override
    public OrderDetl selectItem(String orderNo, String matnr, String batch) {
        return this.baseMapper.selectItemByOrderNo(orderNo, matnr, batch);
    }
//    @Override
//    public OrderDetl selectItem(Long orderId, String matnr, String batch, Double qty) {
//        List<OrderDetl> detlList = this.baseMapper.selectItem(orderId, matnr, batch);
//        if (detlList == null || detlList.isEmpty()) {
//            return null;
//        } else if (detlList.size() == 1) {
//            return detlList.get(0);
//        } else {
//            if (qty != null) {
//                for (OrderDetl orderDetl : detlList) {
//                    if (qty.equals(orderDetl.getAnfme())) {
//                        return orderDetl;
//                    }
//                }
//            }
//            return detlList.get(0);
//        }
//    }
//
//    @Override
//    public OrderDetl selectQtyItem(String orderNo, String matnr, String batch, Double qty) {
//        List<OrderDetl> detlList = this.baseMapper.selectItemByOrderNo(orderNo, matnr, batch);
//        if (detlList == null || detlList.isEmpty()) {
//            return null;
//        } else if (detlList.size() == 1) {
//            return detlList.get(0);
//        } else {
//            if (qty != null) {
//                for (OrderDetl orderDetl : detlList) {
//                    if (!orderDetl.getQty().equals(orderDetl.getWorkQty()) && qty.equals(orderDetl.getAnfme())) {
//                        return orderDetl;
//                    }
//                }
//            }
//            return detlList.get(0);
//        }
//    }
//
//    @Override
//    public OrderDetl selectItem(String orderNo, String matnr, String batch, Double qty) {
//        List<OrderDetl> detlList = this.baseMapper.selectItemByOrderNo(orderNo, matnr, batch);
//        if (detlList == null || detlList.isEmpty()) {
//            return null;
//        } else if (detlList.size() == 1) {
//            return detlList.get(0);
//        } else {
//            if (qty != null) {
//                for (OrderDetl orderDetl : detlList) {
//                    if (qty.equals(orderDetl.getAnfme())) {
//                        return orderDetl;
//                    }
//                }
//            }
//            return detlList.get(0);
//        }
//    }
    @Override
    public OrderDetl findByLook(List<OrderDetl> orderDetls, Long orderId, String matnr, String batch) {
@@ -53,14 +109,45 @@
        return this.baseMapper.increase(orderId, matnr, batch, qty) > 0;
    }
    //    @Override
//    public boolean decrease(String orderNo, String matnr, String batch, Double qty) {
//        int decrease = this.baseMapper.decrease(orderNo, matnr, batch, qty);
//        if (decrease == 0) {
//            return this.baseMapper.decrease(orderNo, matnr, null, qty) > 0;
//        } else {
//            return true;
//        }
//    }
    @Override
    public boolean decrease(String orderNo, String matnr, String batch, Double qty) {
        int decrease = this.baseMapper.decrease(orderNo, matnr, batch, qty);
        if (decrease == 0) {
            return this.baseMapper.decrease(orderNo, matnr, null, qty) > 0;
        } else {
            return true;
    public boolean decrease(WrkDetl wrkDetl, Double qty) {
        List<OrderDetl> detlList = selectItem(wrkDetl.getOrderNo());
        for (OrderDetl orderDetl : detlList) {
            if (MatCompareUtils.compare(orderDetl, wrkDetl)) {
                int decrease = this.baseMapper.decrease2(orderDetl.getId(), qty);
                if (decrease == 0) {
                    return false;
                } else {
                    return true;
                }
            }
        }
        return false;
    }
    @Override
    public boolean decrease(WaitPakin waitPakin, Double qty) {
        List<OrderDetl> detlList = selectItem(waitPakin.getOrderNo());
        for (OrderDetl orderDetl : detlList) {
            if (MatCompareUtils.compare(orderDetl, waitPakin)) {
                int decrease = this.baseMapper.decrease2(orderDetl.getId(), qty);
                if (decrease == 0) {
                    return false;
                } else {
                    return true;
                }
            }
        }
        return false;
    }
    @Override
@@ -73,16 +160,86 @@
        return this.baseMapper.addToLogTable(orderDetl) > 0;
    }
//    @Override
//    public boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, Double qty) {
//        return this.baseMapper.increaseQtyByOrderNo(orderNo, matnr, batch, qty) > 0;
//    }
    @Override
    public boolean increaseQtyByOrderNo(String orderNo, WrkDetl wrkDetl, Double qty) {
        List<OrderDetl> detlList = this.baseMapper.listByOrderNo(orderNo);
        if (detlList == null || detlList.isEmpty()){
            return false;
        }
        for (OrderDetl orderDetl : detlList){
            if (MatCompareUtils.compare(orderDetl, wrkDetl)){
                return this.baseMapper.increaseQtyById(orderDetl.getId(), qty) > 0;
            }
        }
        return false;
    }
    /**
     * 入出库任务生成时,更新单据表中作业数量
     * @param orderId
     * @param matnr
     * @param batch
     *
     * @param orderDetl
     * @param workQty
     * @return
     */
    @Override
    public boolean increaseWorkQty(Long orderId, String matnr, String batch, Double workQty) {
        return this.baseMapper.increaseWorkQty(orderId, matnr, batch, workQty) > 0;
    public boolean increaseWorkQty(OrderDetl orderDetl, Double workQty) {
        return this.baseMapper.increaseWorkQty(orderDetl.getId(), workQty) > 0;
    }
    @Override
    public OrderDetl selectItem(WaitPakin waitPakin) {
        List<OrderDetl> detlList = this.baseMapper.selectItemByOrderNo(waitPakin.getOrderNo(), waitPakin.getMatnr(), waitPakin.getBatch());
        if (detlList == null || detlList.isEmpty()) {
            return null;
        } else if (detlList.size() == 1) {
            return detlList.get(0);
        } else {
            for (OrderDetl orderDetl : detlList) {
                if (MatCompareUtils.compare(waitPakin, orderDetl)) {
                    return orderDetl;
                }
            }
            return null;
        }
    }
    @Override
    public OrderDetl selectItem(LocDto locDto) {
        List<OrderDetl> detlList = this.baseMapper.selectItemByOrderNo(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
        if (detlList == null || detlList.isEmpty()) {
            return null;
        } else if (detlList.size() == 1) {
            return detlList.get(0);
        } else {
            for (OrderDetl orderDetl : detlList) {
                if (MatCompareUtils.compare(locDto, orderDetl)) {
                    return orderDetl;
                }
            }
            return null;
        }
    }
    @Override
    public OrderDetl selectItem(WrkDetl wrkDetl) {
        List<OrderDetl> detlList = this.baseMapper.selectItemByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
        if (detlList == null || detlList.isEmpty()) {
            return null;
        } else if (detlList.size() == 1) {
            return detlList.get(0);
        } else {
            for (OrderDetl orderDetl : detlList) {
                if (MatCompareUtils.compare(wrkDetl, orderDetl)) {
                    return orderDetl;
                }
            }
            return null;
        }
    }
}