自动化立体仓库 - WMS系统
zyx
2023-10-19 4a4d927a42b43ceb4f052e3d654792626946f774
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -9,15 +9,18 @@
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.result.StockVo;
import com.zy.asrs.mapper.LocDetlMapper;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.StaDescService;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.LocDto;
import com.zy.common.model.QueryStockPreDo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -28,6 +31,8 @@
    private StaDescService staDescService;
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private BasDevpService basDevpService;
    @Override
    public Page<LocDetl> getStockOut(Page<LocDetl> page) {
@@ -123,9 +128,49 @@
                int ioType = anfme > issued ? 103 : 101;
                anfme = anfme > issued ? issued : anfme;
                LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderNo, anfme);
                List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ioType);
                //List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ioType);
                List<Integer> outSite = basDevpService.getAvailableOutSite(101);
                locDto.setStaNos(staNos);
                locDto.setStaNos(outSite);
                locDto.setCsocode(csocode);
                locDto.setIsoseq(isoseq);
                locDto.setContainerCode(locDetl.getSuppCode());
                locDtoList.add(locDto);
                // 剩余待出数量递减
                issued = issued - locDetl.getAnfme();
            }
        }
        return issued;
    }
    //补货出库
    public double queryStockAndSetLocDto1(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq) {
        Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>().eq("matnr", matnr).orderBy("modi_time");
        wapperSetCondition(wrapper,"batch",batch);
        wapperSetCondition(wrapper,"three_code",csocode);
        wapperSetCondition(wrapper,"dead_time",isoseq);
//        if(Cools.isEmpty(batch)){
//            wrapper.isNull("batch");
//        }else {
//            wrapper.eq("batch",batch);
//        }
        List<LocDetl> locDetlList = this.selectList(wrapper);
        for (LocDetl locDetl : locDetlList) {
            //判断当前库位货物是否F在库
            LocMast locMast = locMastService.selectById(locDetl.getLocNo());
            if(!"F".equals(locMast.getLocSts())){
                continue;
            }
            if (issued > 0) {
                double anfme = locDetl.getAnfme();
                int ioType = anfme > issued ? 103 : 101;
                //anfme = anfme > issued ? issued : anfme;
                LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderNo, anfme);
                //List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ioType);
                List<Integer> outSite = basDevpService.getAvailableOutSite(101);
                locDto.setStaNos(outSite);
                locDto.setCsocode(csocode);
                locDto.setIsoseq(isoseq);
                locDto.setContainerCode(locDetl.getSuppCode());
@@ -186,6 +231,21 @@
        return this.baseMapper.selectLocNo(matnr);
    }
    public Set<String> selectLocNo(String matnr, String batch, String csocode, String isocode) {
        Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>().eq("matnr", matnr);
        Utils.confirmOnlyMat(wrapper,matnr,batch,csocode,isocode);
        List<LocDetl> locDetls = this.selectList(wrapper);
        Set<String> locNos = new HashSet<>();
        locDetls.forEach(locDetl -> {
            locNos.add(locDetl.getLocNo());
        });
        return locNos;
    }
    @Override
    public int updateStockFreeze(String matnr, String locNo, Integer stockFreeze) {
        return this.baseMapper.updateStockFreeze(matnr, locNo, stockFreeze);