自动化立体仓库 - WMS系统
ZY
2024-09-18 ff6d68f7c7e9fb4fd7b884eb282aa5f9e1a5d0ba
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -1,12 +1,245 @@
package com.zy.asrs.service.impl;
import com.zy.asrs.mapper.OrderDetlMapper;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.OrderDetlService;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
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;
@Service("orderDetlService")
public class OrderDetlServiceImpl extends ServiceImpl<OrderDetlMapper, OrderDetl> implements OrderDetlService {
    @Override
    public List<OrderDetl> selectByOrderId(Long orderId) {
        return this.selectList(new EntityWrapper<OrderDetl>().eq("order_id", orderId));
    }
    @Override
    public Page<OrderDetl> getPakoutPage(Page<OrderDetl> page) {
        page.setRecords(baseMapper.getPakoutPage(page.getCondition()));
        page.setTotal(baseMapper.getPakoutPageCount(page.getCondition()));
        return page;
    }
    @Override
    public List<OrderDetl> selectItem(String orderNo) {
        return this.baseMapper.listByOrderNo(orderNo);
    }
//    @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) {
        for (OrderDetl orderDetl : orderDetls) {
            if (orderDetl.getOrderId().equals(orderId) && orderDetl.getMatnr().equals(matnr)) {
                if (Cools.eq(batch, orderDetl.getBatch())) {
                    return orderDetl;
                }
            }
        }
        return null;
    }
    @Override
    public boolean increase(Long orderId, String matnr, String batch, Double qty) {
        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(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
    public boolean modifyStatus(Long orderId, Integer status) {
        return this.baseMapper.modifyStatus(orderId, status) > 0;
    }
    @Override
    public boolean addToLogTable(OrderDetl orderDetl) {
        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 orderDetl
     * @param workQty
     * @return
     */
    @Override
    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;
        }
    }
}