自动化立体仓库 - WMS系统
ZY
2024-09-18 ff6d68f7c7e9fb4fd7b884eb282aa5f9e1a5d0ba
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -1,17 +1,31 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.StockStatisDTO;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.entity.result.StockVo;
import com.zy.asrs.mapper.LocDetlMapper;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.utils.MatCompareUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service("locDetlService")
public class LocDetlServiceImpl extends ServiceImpl<LocDetlMapper, LocDetl> implements LocDetlService {
    @Override
    public Page<LocDetl> getPage(Page<LocDetl> page) {
        page.setRecords(baseMapper.listByPage(page.getCondition()));
        page.setTotal(baseMapper.listByPageCount(page.getCondition()));
        return page;
    }
    @Override
    public Page<LocDetl> getStockOut(Page<LocDetl> page) {
@@ -21,13 +35,39 @@
    }
    @Override
    public boolean updateAnfme(Double anfme, String locNo, String matnr) {
        if (anfme <= 0) {
            return delete(new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr", matnr));
        } else {
            int res = baseMapper.updateAnfme(anfme, locNo, matnr);
            return res > 0;
    public boolean updateAnfme(Double anfme, String locNo, WrkDetl wrkDetl) {
        List<LocDetl> locDetls = this.baseMapper.selectItem3(locNo, wrkDetl.getMatnr());
        if (locDetls.isEmpty()) {
            return false;
        }
        for (LocDetl locDetl : locDetls) {
            if (MatCompareUtils.compare(locDetl, wrkDetl)) {
                if (anfme <= 0) {
                    return this.baseMapper.deleteItem(locDetl.getLocNo(), locDetl) > 0;
                } else {
                    return baseMapper.updateAnfme(anfme, locNo, locDetl) > 0;
                }
            }
        }
        return false;
    }
    @Override
    public boolean updateAnfme(Double anfme, String locNo, LocDetl wrkDetl) {
        List<LocDetl> locDetls = this.baseMapper.selectItem3(locNo, wrkDetl.getMatnr());
        if (locDetls.isEmpty()) {
            return false;
        }
        for (LocDetl locDetl : locDetls) {
            if (MatCompareUtils.compare(locDetl, wrkDetl)) {
                if (anfme <= 0) {
                    return this.baseMapper.deleteItem(locDetl.getLocNo(), locDetl) > 0;
                } else {
                    return baseMapper.updateAnfme(anfme, locNo, locDetl) > 0;
                }
            }
        }
        return false;
    }
    @Override
@@ -40,11 +80,16 @@
        return this.baseMapper.selectSameDetlToday(matnr, start, end);
    }
    @Override
    public List<String> getSameDetlToday(String matnr, String batch, Integer start, Integer end) {
        return this.baseMapper.selectSameDetlTodayBatch(matnr, batch, start, end);
    }
    @Override
    public Page<LocDetl> getStockStatis(Page<LocDetl> page) {
        page.setRecords(baseMapper.getStockStatis(page.getCondition()));
        page.setTotal(baseMapper.getStockStatisCount(page.getCondition()));
    public Page<StockStatisDTO> getStockStatis(Page<StockStatisDTO> page) {
        page.setRecords(baseMapper.asrsAndErpList(page.getCondition()));
        page.setTotal(baseMapper.asrsAndErpCount(page.getCondition()));
        return page;
    }
@@ -53,4 +98,135 @@
        return this.baseMapper.selectSumAnfmeByMatnr(matnr);
    }
    @Override
    public List<LocDetl> selectPakoutByRule(String matnr) {
        return this.baseMapper.selectPakoutByRule(matnr);
    }
    @Override
    public List<LocDetl> getAsrsLocDetl(String matnr) {
        return this.baseMapper.getAsrsLocDetl(matnr);
    }
    @Override
    public Integer countLocNoNum(String locNo) {
        return this.baseMapper.countLocNoNum(locNo);
    }
//    @Override
//    public List<LocDetl> queryStock(String matnr, String batch, String orderNo, Set<String> locNos) {
//        return this.baseMapper.queryStock(null, matnr, batch, orderNo, locNos);
//    }
    @Override
    public List<LocDetl> queryStock(OrderDetl orderDetl) {
        List<LocDetl> data = new ArrayList<>();
        List<LocDetl> locDetls = this.baseMapper.queryStock(null, orderDetl.getMatnr(), null, null, null);
        if (locDetls == null) {
            return null;
        }
        for (LocDetl locDetl : locDetls) {
            if (MatCompareUtils.compare(locDetl, orderDetl)) {
                data.add(locDetl);
            }
        }
        return data;
    }
//    @Override
//    public List<LocDetl> queryStockByModel(String model) {
//        return this.baseMapper.queryStock(null, model, null, null, null);
//    }
//    @Override
//    public Double queryStockAnfme(String matnr, String batch) {
//        return this.baseMapper.queryStockAnfme(matnr, batch);
//    }
    @Override
    public List<StockVo> queryStockTotal() {
        return this.baseMapper.queryStockTotal();
    }
    /**
     * 获取库存总数
     *
     * @return
     */
    @Override
    public Integer sum() {
        return this.baseMapper.sum();
    }
    @Override
    public List<LocDetl> unreason() {
        return this.baseMapper.unreason();
    }
//    @Override
//    public LocDetl selectItem(String locNo, String matnr, String batch) {
//        return this.baseMapper.selectItem(locNo, matnr, batch);
//    }
//
//    @Override
//    public LocDetl selectItem2(String locNo, String matnr) {
//        return this.baseMapper.selectItem2(locNo, matnr);
//    }
    @Override
    public Double getLocDetlSumQty(String locNo) {
        return this.baseMapper.selectLocDetlSumQty(locNo);
    }
    @Override
    public void updateMatTurn(String matnrOld, String matnr) {
        this.baseMapper.updateMatTurn(matnrOld, matnr);
    }
    @Override
    public List<Map<String, Object>> selectLocDetlUnilateralMoveShuttleMap(Integer crnNo) {
        if (crnNo == 1) {
            return this.baseMapper.selectLocDetlUnilateralMoveShuttleMapY(crnNo);
        }
        return this.baseMapper.selectLocDetlUnilateralMoveShuttleMapN(crnNo);
    }
    @Override
    public List<LocDetl> selectLocDetlUnilateralMoveShuttle(String matnr, String batch, String grade, Integer crnNo) {
        if (crnNo == 1) {
            return this.baseMapper.selectLocDetlUnilateralMoveShuttleY(matnr, batch, grade);
        }
        return this.baseMapper.selectLocDetlUnilateralMoveShuttleN(matnr, batch, grade);
    }
    @Override
    public LocDetl selectItem(String locNo, WrkDetl wrkDetl) {
        List<LocDetl> locDetls = this.baseMapper.selectItem3(locNo, wrkDetl.getMatnr());
        if (locDetls != null) {
            for (LocDetl locDetl : locDetls) {
                if (MatCompareUtils.compare(locDetl, wrkDetl)) {
                    return locDetl;
                }
            }
        }
        return null;
    }
    @Override
    public LocDetl selectItem(String locNo, StockOutParam.LocDetl locDetl) {
        List<LocDetl> locDetls = this.baseMapper.selectItem3(locNo, locDetl.getMatnr());
        if (locDetls != null) {
            for (LocDetl detl : locDetls) {
                if (MatCompareUtils.compare(locDetl, detl)) {
                    return detl;
                }
            }
        }
        return null;
    }
}