自动化立体仓库 - WMS系统
pang.jiabao
2024-11-26 e6ec6cd0e0fab11bf79f052be352a66db2dd51d3
src/main/java/com/zy/common/web/WcsController.java
@@ -6,6 +6,7 @@
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.EmptyPlateOutParam;
import com.zy.asrs.service.*;
import com.zy.common.CodeRes;
import com.zy.common.model.LocTypeDto;
@@ -17,9 +18,9 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
 * Created by vincent on 2020/10/30
@@ -45,6 +46,8 @@
    private  LocDetlService locDetlService;
    @Autowired
    private RowLastnoService rowLastnoService;
    @Autowired
    private WorkService workService;
    @PostMapping("/pakin/loc/v1")
    @ResponseBody
@@ -88,10 +91,10 @@
        switch (param.getIoType()) {
            case 1://满托盘入库
                assert waitPakins != null;
                dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins);
                dto = startupFullPutStore(sourceStaNo, param.getBarcode(), locTypeDto, waitPakins);
                break;
            case 10://空托盘入库
                dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode());
                dto = emptyPlateIn(sourceStaNo, locTypeDto, param.getBarcode());
                break;
            default:
                break;
@@ -107,7 +110,7 @@
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(12, true);
        // 检索库位
        StartupDto dto = commonService.getLocNo(rowLastnoService.selectNextWhsType(), 10, 15, null, locTypeDto,0);
        StartupDto dto = commonService.getLocNo( 10, 12, null,null,null, locTypeDto);
        Date now = new Date();
        // 生成工作档
        WrkMast wrkMast = new WrkMast();
@@ -133,16 +136,33 @@
        return wrkMastService.insert(wrkMast) ? R.ok("自动空托入库成功,工作号:"+wrkMast.getWrkNo()) : R.error("生成自动空托入库失败");
    }
    @PostMapping("auto/emptyOut/v1")
    @ResponseBody
    public R autoEmptyOut(){
        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
                .eq("loc_sts", "D"));
        if (Cools.isEmpty(locMast)) {
            return R.error("库存没有空板");
        }
        EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
        emptyPlateOutParam.setOutSite(12);
        emptyPlateOutParam.setLocNos(new ArrayList<String>(){{add(locMast.getLocNo()+"");}});
        WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam);
        return R.ok(!Cools.isEmpty(wrkMast)? R.ok("自动空托出库成功,工作号:" + wrkMast.getWrkNo()) : R.error("生成自动空托出库失败"));
    }
    /**
     * 全板入库
     */
    @Transactional
    public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins) {
    public StartupDto startupFullPutStore(BasDevp sourceStaNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins) {
        // 源站点状态检测
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
//        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
        // 检索库位
        List<String> matNos = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
        StartupDto dto = commonService.getLocNo(1, 1, devpNo, matNos, locTypeDto,0);
//        List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
//        List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
//        StartupDto dto = commonService.getLocNo( 1, devpNo, matnrs.get(0),batchs.get(0),null, locTypeDto);
        StartupDto dto = commonService.getLocNoRunNew(1, sourceStaNo.getDevNo(), Integer.valueOf(locTypeDto.getLocType1()));
        int workNo = dto.getWorkNo();
        Date now = new Date();
        // 生成工作档
@@ -213,11 +233,12 @@
    }
    @Transactional
    public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto, String barcode) {
    public StartupDto emptyPlateIn(BasDevp sourceStaNo, LocTypeDto locTypeDto, String barcode) {
        // 源站点状态检测
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
//        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
        // 检索库位
        StartupDto dto = commonService.getLocNo(1, 10, devpNo, null, locTypeDto,0);
//        StartupDto dto = commonService.getLocNo( 10, devpNo, null,null,null, locTypeDto);
        StartupDto dto = commonService.getLocNoRunNew(10, sourceStaNo.getDevNo(), Integer.valueOf(locTypeDto.getLocType1()));
        int workNo = dto.getWorkNo();
        // 生成工作档
        WrkMast wrkMast = new WrkMast();