自动化立体仓库 - WMS系统
#
zjj
2023-12-26 79f209a5ec9236adfd4576285d50a7b860da7230
src/main/java/com/zy/common/web/WcsController.java
@@ -8,6 +8,7 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.EmptyPlateOutParam;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.CodeRes;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.StartupDto;
@@ -49,6 +50,8 @@
    private RowLastnoService rowLastnoService;
    @Autowired
    private WorkService workService;
    @Autowired
    private BasCrnpService basCrnpService;
    @PostMapping("/pakin/loc/v1")
    @ResponseBody
@@ -74,7 +77,9 @@
                return R.parse(CodeRes.NO_COMB_700);
            }
            int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
            int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
            int countWrk = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode",param.getBarcode())
                    .le("io_type",100));
            if (countLoc > 0 || countWrk > 0) {
                return R.error(CodeRes.EXIST_500);
            }
@@ -111,7 +116,7 @@
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(12, true);
        // 检索库位
        StartupDto dto = commonService.getLocNo(rowLastnoService.selectNextWhsType(), 10, 15, null, locTypeDto,0);
        StartupDto dto = commonService.getLocNo(rowLastnoService.selectNextWhsType(), 10, 12, null, locTypeDto,0);
        Date now = new Date();
        // 生成工作档
        WrkMast wrkMast = new WrkMast();
@@ -139,17 +144,42 @@
    @PostMapping("auto/emptyOut/v1")
    @ResponseBody
    public R autoEmptyOut(){
        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
                .eq("loc_sts", "D"));
        if (Cools.isEmpty(locMast)) {
    public R autoEmptyOut(@RequestParam("crnNo") Integer crnNo) {
        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                .eq("loc_sts", "D")
                .eq("crn_no", crnNo)
                .orderBy("lev1,bay1,row1"));
        if (locMasts.isEmpty()) {
            return R.error("库存没有空板");
        }
        EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
        emptyPlateOutParam.setOutSite(11);
        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("生成自动空托出库失败"));
        for (LocMast locMast : locMasts) {
            LocMast locMast0 = null;
            List<String> outerLocNo = Utils.getGroupLocNo(locMast.getLocNo(), false);
            for (String loc : outerLocNo) {
                LocMast locMast1 = locMastService.selectByLoc(loc);
                if (locMast1 == null) {
                    continue;
                }
                if (locMast1.getLocSts().equals("D")) {
                    locMast0 = locMast1;
                    break;
                }
            }
            if (locMast0 == null) {
                continue;
            }
            EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
            ArrayList<String> locNos = new ArrayList<>();
            locNos.add(locMast0.getLocNo());
            emptyPlateOutParam.setLocNos(locNos);
            WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam);
            return R.ok(!Cools.isEmpty(wrkMast) ? R.ok("自动空托出库成功,工作号:" + wrkMast.getWrkNo()) : R.error("生成自动空托出库失败"));
        }
        return R.error("生成自动空托出库失败");
    }
    /**
@@ -161,7 +191,18 @@
        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);
        int rowCount = rowLastnoService.selectCount(null);
        Integer integer = 2;
        for (int i = 1; i <= rowCount; i++) {
            integer = rowLastnoService.selectNextWhsType();
            BasCrnp crn_no = basCrnpService.selectOne(new EntityWrapper<BasCrnp>()
                    .eq("crn_no", integer));
            if (crn_no.getInEnable().equals("Y") && crn_no.getCrnSts() == 3){
                break;
            }
        }
        StartupDto dto = commonService.getLocNo(integer, 1, devpNo, matNos, locTypeDto,0);
        int workNo = dto.getWorkNo();
        Date now = new Date();
        // 生成工作档
@@ -191,12 +232,17 @@
        }
        // 生成工作档明细
        waitPakins.forEach(waitPakin -> {
            String uuid = String.valueOf(System.currentTimeMillis());
            WrkDetl wrkDetl = new WrkDetl();
            wrkDetl.sync(waitPakin);
            wrkDetl.setWrkNo(wrkMast.getWrkNo());
            wrkDetl.setIoTime(wrkMast.getIoTime());
            wrkDetl.setAppeTime(now);
            wrkDetl.setModiTime(now);
            wrkDetl.setUuid(uuid);
            wrkDetl.setWeight(waitPakin.getWeight());
            wrkDetl.setOwner(waitPakin.getOwner());
            wrkDetl.setPayment(waitPakin.getPayment());
            if (!wrkDetlService.insert(wrkDetl)) {
                throw new CoolException("保存工作明细失败");
            }
@@ -235,8 +281,19 @@
    public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto, String barcode) {
        // 源站点状态检测
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
        int rowCount = rowLastnoService.selectCount(null);
        Integer integer = 2;
        for (int i = 1; i <= rowCount; i++) {
            integer = rowLastnoService.selectNextWhsType();
            BasCrnp crn_no = basCrnpService.selectOne(new EntityWrapper<BasCrnp>()
                    .eq("crn_no", integer));
            if (crn_no.getInEnable().equals("Y")
                    && crn_no.getCrnSts() == 3){
                break;
            }
        }
        // 检索库位
        StartupDto dto = commonService.getLocNo(1, 10, devpNo, null, locTypeDto,0);
        StartupDto dto = commonService.getLocNo(integer, 10, devpNo, null, locTypeDto,0);
        int workNo = dto.getWorkNo();
        // 生成工作档
        WrkMast wrkMast = new WrkMast();